ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:578.67KB ,
资源ID:14547552      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-14547552.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于FPGA的采样状态机的设计与仿真本科毕业论文.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

基于FPGA的采样状态机的设计与仿真本科毕业论文.docx

1、基于FPGA的采样状态机的设计与仿真本科毕业论文 南京林业大学本科毕业设计(论文)题 目:基于FPGA的采样状态机的设计与仿真学 院:机械电子工程学院专 业: 测控技术与仪器学 号: 070307114学生姓名: 万海洋指导教师: 黄石红职 称: 副教授二O一一年 5月24日 摘要采样是数字系统设计中的重要环节,而传统的A/D器件采样多是用CPU或单片机完成的。这些方法编程简单,但控制周期长,速度慢。而有限状态机(Finite State Machine,FSM)在数字系统设计中应用十分广泛,随着电子技术日新月异的发展。大规模系统与电路的出现,传统的手工设计状态机已经不可能,而基于FPGA的V

2、HDL语言描述状态机是大势所趋。基于FPGA语言描述的硬件设计,能够充分利用A/D采样的速度快的高性能,有效提高工作效率与精度。关键词:EDA VHDL FPGA 采样状态机 数码管显示Abstract Digital sampling is an important part of system design, and traditional A / D sampling device with a CPU or microcontroller mostly completed. These methods are simple to program, but the control cyc

3、le is long and slow. The FSM (Finite State Machine, FSM) in the design of digital systems is widely used, with the rapid development of electronic technology. The emergence of large-scale systems and circuits, the traditional manual design state machines have been impossible, and FPGA-based VHDL lan

4、guage to describe the state machine is a general trend. FPGA-based hardware description language designed to take full advantage of A / D sampling speed, high-performance, higher efficiency and accuracy.Key words: EDA VHDL FPGA state machine digital display 第一章:绪论1.1研究目的及意义:从小型电子系统到大规模电路系统设计中,状态机是最典

5、型、应用最广泛的时序电路模块,如何设计一个稳定可靠的状态机是我们必须面对的问题. 传统的状态机设计方法复杂,首先要进行繁琐的状态化简,状态分配,状态编码,然后求输出与激励函数,最后画时序图或波形图。而利用VHDL硬件设计描述语言设计状态机,只需利用状态转移图进行状态机的描述即可。且由于状态机能构成性能良好的同步时序逻辑模块,能够做到结构相对简单,设计方案相对固定。而基于FPGA的FSM设计使用同步时序方式设计,提高设计的稳定性,消除毛刺。通过VHDL语言的描述,不仅仅便于阅读,理解,维护,更重要的是利于综合器优化代码,利于用户添加合适的时序约束条件,利于布局布线器实现设计。1.2国内外同类研究

6、概况: 在国外,目前利用EDA技术设计电路已成为主流,其中, Verilog公司开发的Verilog HDL作为当今国际主流的HDL语言,在芯片的前端设计中有着广泛的应用。而最具代表性的是美国国防部开发的VHDL语言。国内外利用VHDL语言设计状态机例子有很多,因为大部分数字系统都可以分为控制单元和数据单元两个部分,控制单元的主体是一个状态机,它接收外部信号以及数据单元产生的状态信息,产生控制信号,因而状态机性能的好坏对系统性能有很大的影响。故国内外电路方向的同行都把状态机作为电路设计的核心,目前有很多出色的VHLD/FPGA程序的状态机描述。如现在十字路口的自动交通控制系统就是用基于FPGA

7、的状态机来控制红黄绿三灯的有序亮灭,来保证车辆行人的安全出行。再如加州技术大学的电脑科学博士后Eric Klavic 研究的状态机在机器人中的应用,这种即时环境能够管理机器人在现实世界中获取感知和做出行动所要执行的多重任务,也能作为API共编程人员方便的进行编码和整合新的行为及它其组件。东华理工学院机械与电子学院的翟燕磊等人研究的VHDL描述的状态机在内存控制器中应用就很好的说明了有些芯片完全能够用VHDL语言在FPGA或CPLD上实现。1.3研究内容: 熟悉数字电路与系统的EDA的设计流程,深入学习VHDL语句的硬件含义,理解状态机在电路中的关键作用。写出正确高效的VHDL语言,达到仿真运行

8、的目的。 第二章:EDA技术及其开发工具简介2.1 EDA技术简介 随着电子电路的复杂化,设计人员将硬件的设计交给计算机去完成,于是电子设计自动化技术产生了。这就是EDA(Electronic Design Automatic)技术1。对于EDA技术,可以理解于以大规模可编程器件为载体,以硬件描述语言(HDL,Hardware Description Language)为系统逻辑描述的主要方式,借助计算机和可编程逻辑器件的软,硬开发系统等工具,通过相关的软件开发,自动完成用软件方式设计的电子系统到硬件系统的逻辑编译,逻辑简化,逻辑分割,逻辑总合计优化,逻辑布局布线,逻辑仿真,直至对特定目标芯片

9、的适配编译,逻辑映射,编程下载等工作,最终形成集成电子系统或专用集成芯片ASICA的一门技术2。目前,EDA已将逐渐成为电子电路系统的设计重要设计手段,目前广泛用于模拟与数字电路系统等许多领域。而从广义上来看,EDA研究的对象是电子设计的全过程,从某一角度看,电子设计可分为三个层次:即系统级,电路级和物理实现级。2.2 Quartus 简介本毕业设计采用的EDA工具是Alter公司的Quartus ii9.0开发软件。Quartus ii是Altera公司在21世纪初推出的CPLD/FPGA集成开发环境,它是该公司前一代CPLD/FPGA集成开发环境MAX+PLUS II的更新换代产品3。图1

10、 QUARTUS II 9.0的界面截图2.3 设计的基本逻辑门例子 如用Quartus II原理图输入设计方式设计一个组合逻辑电路过程。该程序实现的是与门,或门,非门,与非门,异或门,同或门。图2 程序截图如下图3 时序仿真图图4 生成的RTL电路图图四中a,b代表输入端口,f5表示与非门,f4表示异或门,f3表示非门,f2表示或门。f1表示与门。2.4 本章小结 本章熟悉了EDA技术的基本概念与FPGA设计的软件QUARTUS的使用的简单介绍。并且通过举一个简单的例子了解怎样去设计FPGA电路。 第三章:VHDL语言基础 3.1 VHDL语言简介VHDL语言即very high Speed

11、 integrated cricuit hardware description language(超高速集成电路硬件描述语言),是电子设计的新技术,它符合美国电气和电子工程师协会标准(IEEE标准1076),利用一种和数字电路基本知识结合比较密切的语言来描述数字电路和设计数字电路系统4。利用VHDL进行分块单元电路设计和整个系统设计,并结合一些先进的EDA工具软件(如Quartus II),通过计算机下载到硬件芯片上,实现电路功能,可以节省大量的设计周期。VHDL语言不一定按顺序一条一条执行每一条语句,而是并行执行的语句同时也有按顺序执行的语句,来描述在同一时刻中可能发生的事件,这要求数字电

12、路设计人员摆脱一维的思维模式,以多维并发的思路来完成VHDL语言的程序设计。3.2 VHDL语言设计例子 以上章的基本门电路为例,用VHDL语言描述的程序代码如下: Library ieee; Use iee.std_logic_164.all - -库说明Entity fadder is Port(a,b,ci:IN Std_ogic; - -实体说明 s,co:OUT Std_ogic);END Fadder;Architecture struc of fadder is Component or2gate - -结构体说明Port(a,b:In Std_ogic; f:OUT Std_o

13、gic);End component;Componet hadder - -元件例化语句Port(a,b:In Std_ogic; s,co:Out Std_ogic);End component;Signal:tepms,tempcol2:Std_logic;Begin U0:hadder Port MAP(a,b,temps,tempco1);U1:hadder Port MAP(ci,tmps,s,tempco2);U2:or2gate Port map(ci,tempco2,co);End struc;从该程序可以看出,一个完整的VHDL从描述层次上可以包括库说明,实体说明,结构体说明

14、三个部分5。例外,VHDL语言和其他软件一样,也有严格的标识符、数据对象,数据类型定义。准确、熟练掌握基本的数据定义,对于初学者是非常必要的。3.3 本章小结 本章介绍了VHDL语言的概念进行了综述,然后对其结构进行了详细的说明。通过这些内容,对FPGA设计的硬件描述语言VHDL有了大致了解第四章:FPGA基础4.1 CPLD分类复杂的可编程逻辑器件CPLD(Complex Programmable Logic Device)是由PAL或GAL发展而来的,基本上是扩充原始的可编程逻辑器件,它通常是由可编程逻辑的功能块围绕一个位于中心和延时固定的可编程互联矩阵构成。为了增加电路密度而不使性能或功

15、耗受到损失,复杂的可编程逻辑器件CPLD在结构上引入了各种特性。从目前的趋势来看,CPLD又延伸出二大分支:即可擦除可编程的逻辑器件EPLD(Erasable programmable logic device)和现场可编程门阵列器件FPGA(Field programmable gate qrrery)6.总的来说,CPLD与FPGA的定义有所不同,根据结构特点和工作原理,CPLD与FPGA的分类方法是:以乘积项结构方式构成逻辑行为的器件称为CPLD,以查表法结构方式构成逻辑行为的器件称为FPGA.4.2 FPGA简介FPGA是由掩膜可编程门阵列和可编程逻辑器件演变而来的,将它们的特性结合在

16、一起,使得FPGA具有门阵列的高逻辑密度和通用性,又有可编程逻辑器件的用户可编程特性。而且,FPGA可以分成二大类:即细粒度(Fine-grain)和粗粒度(coarce-grain)。细粒度逻辑块是与半定制门阵列的基本单元相同,它由可以用可编程互连来连接的少数晶体管组成,规模都较小,主要优点是可用的功能块可以完全被利用;缺点是采用它通常需要大量的连线和可编程开光,使相对速度变慢。而基于FPGA设计的硬件系统具有以下特点:(1)无需投片生产,即可得到芯片(2)可做ASIC的中试样片 (3)有丰富的触发器和IO引脚 (4)设计周期最短、开发费用最低、风险最小 (5)采用高速CHMOS工艺,功耗低

17、,可以与CMOS、TTL电平兼容 图5 FPGA设计流程7FPGA的设计与传统的通用IC设计在许多方面有区别,可以归纳表格如下:项目 方法通用IC设计CPLD/FPGA设计设计方向从片子到系统从系统到片子成本限制元件数量工作量及芯片价格性能限制功能单元设计设计及开发工具性能设计方案选择主要元件FPGA芯片可测试要求 可连接到PCB板上只需要功能测试(注)验证制作印刷电路板模拟样机制作通常在实验室内完成 可在实验室内完成后期更改计划不方便方便设计方法不灵活有很大的灵活性工具可以不依赖与CAE强烈依赖于CAE图6 FPGA设计与传统IC设计区别4.3 本章小结 本章介绍了CPLD与FPGA的分类方

18、法,详细做表介绍了一般FPGA的设计流程,并且比较了FPGA与传统IC设计的区别。通过比较很容易得出FPGA设计比其它设计更有优势的结论。从而在大型电路设计会考虑FPGA设计来提高效率。第四章:有限状态机的基本概念5.1有限状态机设计硬件的优势当前以硬件描述语言为工具,逻辑器件为载体的系统设计越来越广泛。在设计中,状态机是最典型、应用最广泛的电路模块,其运行速度的高效、执行时间的确定性和高可靠性方面都显示出强大的优势。有限状态机是一种时序逻辑电路,常用于数字电路中的控制单元。有限状态机中的每一个状态对应控制单元中的一个控制步骤,有限状态机的次态对应控制单元中与每一个控制步骤有关的转移条件。只要

19、遵循这二条对应关系,就很容易利用有限状态机来描述数字电路系统中的控制单元了。有限状态机的输出信号仅与当前状态有关时,称为Moore型有限状态机。其输出不仅与当前状态有关,而且与所有的输入信号有关时。这样的状态机称为Mealy型有限状态机8有限状态机可应用于各种系统控制,如:微处理机中的总线总裁、微处理机与外设之间的控制、工业控制、数据的加密与解密,数字信号与处理中的时序控制等。5.2 有限状态机的设计的一个代码例子组合逻辑进程中有关状态机的代码:PROCESS (input, current_state)BEGINCASE current_state ISWHEN state isIF(inp

20、ut=.) THENOutput =;Next_stateIF (input=.) THENOutput =;Next_stateIF (input=.)THENOuput =;Next_state=state3;ELSE .END IF;.END CASE;END PROCESS;这段代码做了二件事:对输出端口赋值和确定状态机的下一状态。同样可以看出,它采用顺序代码设计组合逻辑电路的基本要求,即所有输入信号必须出现在PROCESS的敏感信号中,并且所有输入/输出信号的组合都必须完整列出。在整个代码中,由于没有任何信号的赋值是通过其他某个信号的跳变来触发的,所以不会生成寄存器。5.3状态机的时

21、序逻辑进程时序逻辑进程主要用于实现状态机的状态转化。一般状态机是随外部时钟信号clock.以同步时序方式工作的。该进程就是保证状态机的跳变与时钟信号同步,保证在时钟发生有效跳变时,状态机的状态发生变化。时序逻辑进程的代码如下:PROCESS(reset,clock)BEGINIF(reset=1)THENcurrent_state=state0;ELSE (CLOCKevent and clock=1)THENCurrent_state=next_state;END IF;END PROCESS;5.4本章小结 本章纤细的介绍了状态机的基本内容,包括状态机包括moore型与mealy型的区别,

22、并且举了一个状态机的例子。由于状态机的启动必须要有启动的时序逻辑进程,故本章还对逻辑启动进程的程序作了些讲解。第五章:基于FPGA的采样状态机6.1 设计总体思路 图7 设计思路框图本次课题研究的是由温度传感器得到数据后,怎样由AD采样,其中AD采样使用AD0809。 图8 ADC0809的元器件内部结构图6.2 采样模块的设计6.2.1 AD0809的整体功能说明本次设计采用ADC0809。ADC0809是28引脚双列直插式,它是8通道a/d转换器,ADC0809是带8位a/d转换器,8路多路开关以及微处理机兼容的控制逻辑的cmos组件。它是逐次逼近式A/D转换器,adc0809由一个8路模

23、拟开关,一个地址锁存与译码组,一个ad转换器和一个三态三态锁存器组成。多路开关可选通8个模拟通道,允许8路模拟分量分时输入,共用啊A/D转换器进行转换。三态输出锁存器用于锁存A/D转换完的数字量,当oe端为高电平时,才可以从三态输出锁存器取走转换完的数据。图9 ADC0809芯片引脚 6.2.2 0809的引脚功能说明ADC0809主要信号引脚功能说明如下9:ALE地址锁存信号。对应ALE上跳沿时。A,B,C地址状态送入地址锁存器.START转换启动信号,该信号上升沿时,复位ADC0809,该信号下降沿时,启动芯片,开始进行A/D转换。EOC转换结束信号。EOC=0.正在进行转换,EOC=1,

24、转换结束。使用中该信号状态即可作为查询的状态标志,又可作为中断信号使用。OE输出允许信号。用于控制三态输出锁存器向单片机输出转换得到的数据。OE=0,输出数据线呈高阻,0E=1,输出转换得到的数据。图10 ADC0809的元器件工作时序图6.2.3 AD0809的VHDL语言说明ADC0809采样控制器的程序采用VHDL语言来描述。由前面第二章有限状态机的设计知。该程序语言必定包含二部分:其中一部分REG是时序进程, 它在时钟信号CLK的驱动下, 将不断将next_state中的内容赋给current_state, 并由此信号将状态变量传输给组合进程COM。组合进程COM有两个功能:首先是状态

25、译码功能, 即根据从current_state 信号中获得的状态变量以及来自ADC0809的状态线信号EOC来决定下一状态的转移方向,即确定次态的状态变量; 其次采样控制功能, 即根据current_state中的状态变量确定对ADC0809的控制信号线ALE、START、OE等输出相应的控制信号, 在本次设计中,为便将由ADC0809的std_logic_vector(0,1,.7)中的数据输出口输出的8位转换数据锁存起来。在采样结束后增加一个通过通过LOCK向锁存器件进程LATCH1发出锁存信号的程序描述段10。图11 采样状态机图12 采样模块RTL viewer6.3 分频模块 分频模

26、块在此此设计中用到二次,第一次是将系统的高频变为适当的低频控制采样的状态机的转换,第二次是变为适当的低频控制数码管的扫描,使数码管上的数字能够清楚显示。图13 分频 RTL VIEWER6.4 显示模块 本次设计利用七段译码器驱动七段数码管将AD的七个端口的数据动态显示出来11。 图14 七段译码器RTL VIEWER6.5 程序及仿真6.5.1 程序利用ADC0809采集模拟信号的VHDL语言程序及其显示程序如下:定程序名为 bishe.vhd: Library ieee; - -库说明use ieee.std_logic_1164.all;use ieee.std_logic_unsign

27、ed.all;entity bishe is - -实体说明 port( d :in std_logic_vector(7 downto 0); clk,eoc ,rst :in std_logic; ale,start,oe:out std_logic; shuma,scan :out std_logic_vector(7 downto 0); lamp :out std_logic_vector(3 downto 0) ); end;architecture a of bishe is - -结构体说明 signal regl ,q :std_logic_vector(7 downto 0

28、); signal xian_clkd:std_logic; signal ad_clk :std_logic; signal clock0 :std_logic; type states is(idle,s0,s1,s2,s3,s4); signal lock :std_logic; signal current_state,next_state:states; signal cnt3 :std_logic_vector(3 downto 0); begin lamp=1111; - -将发光二极管熄灭 cae:process(clk) - -总进程 variable cnt2: integ

29、er range 0 to 32; begin if clkevent and clk=1 then if cnt232 then cnt2:=cnt2+1; else cnt2:=0; ad_clk=not ad_clk; end if; end if; end process cae; - -采样的分频 cma: process(clk) variable cnt0: integer range 0 to 15000000; begin if clkevent and clk=1 then if cnt015000000 then cnt0:=cnt0+1; else cnt0:=0; xian_clkdif (rst=0) then next_state=s0;else next_stateale=0;start=0;oe=0;lock=0;next_stateale=1;start=1;oe=0;lock=0;next_stateale=0;oe=0;lock=0;if (eoc=0)thennext_state=s2;elsenext

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2