基于FPGA数字跑表的设计(16页).docx
《基于FPGA数字跑表的设计(16页).docx》由会员分享,可在线阅读,更多相关《基于FPGA数字跑表的设计(16页).docx(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-基于FPGA数字跑表的设计-第 16 页现代电子技术实验报告数字跑表的设计 目 录 2 一、基于FPGA的VHDL设计流程.3 1.1 VHDL语言介绍.3 1.1.1 VHDL的特点. 3 1.2 FPGA开发介绍. 4 1.2.1 FPGA简介. 4 1.2.2 FPGA设计流程. 4 1.2.3 实验板使用芯片XC3S200A介绍 6 二、总体电路的设计6 2.1设计要求 .6 2.2系统工作原理6 2.3单元电路的划分.6 三、电子秒表的单元电路设计.7 3.1 电子秒表的设计过程及结果分析.7 3.1.1 分频器.7 3.1.2按键消抖.8 3.1.3 控制电路.8 3.1.4 计
2、数器.9 3.1.5 寄存器.12 3.1.6 显示模块.15 3.1.7 使能模块.17 四、 顶层设计.18 4.1 顶层设计.18 4.2 分配引脚和下载实现.19 4.3 测试结果及结论.20 五、 经验及收获.22一、基于FPGA的VHDL设计流程1.1 VHDL语言介绍VHDL(Very-high-speed Integrated Circuit Hardware Description Language)诞生于1982年.1987年底,VHDL被IEEE(The Institute of Electrical and Electronics Engineers)和美国国防部确认为
3、标准硬件描述语言.自IEEE公布了VHDL的标准版本(IEEE-1076)之后,各EDA公司相继推出了自己的VHDL设计环境,并宣布自己的设计工具可以和VHDL接口.此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准硬件描述语言.1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本.现在,VHDL和VERILOG作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言.有专家认为,在新的世纪中,VHDL和VERILOG语
4、言将承担起几乎全部的数字系统设计任务.1.1.1 VHDL语言的特点与其他硬件描述语言相比,VHDL具有以下特点:1、功能强大、设计灵活:VHDL具有功能强大的语言结构,可以用简洁明确的源代码来描述复杂的逻辑控制.它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述.VHDL支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言所不能比拟的.VHDL还支持各种设计方法,既支持自底向上的设计,又支持自顶向下的设计;既支持模块化设计,又支持层次化设计.2、支持广泛、易于修改:由于VHDL已经成为IEEE标准所规范的硬件描述语言,大多数EDA工几乎都支持VHDL,这为VHDL的进一步
5、推广和广泛应用奠定了基础.在硬件电路设计过程中,主要的设计文件是用VHDL编写的源代码,因为VHDL易读和结构化,所以易于修改设计.3、强大的系统硬件描述能力:VHDL具有多层次的设计描述功能,既可以描述系统级电路,又可以描述门级电路.而描述既可以采用行为描述、寄存器传输描述或结构描述,也可以采用三者混合的混合级描述.另外,VHDL支持惯性延迟和传输延迟,还可以准确地建立硬件电路模型.VHDL支持预定义的和自定义的数据类型,给硬件描述带来较大的自由度,使设计人员能够方便地创建高层次的系统模型.4、独立于器件的设计、与工艺无关:设计人员用VHDL进行设计时,不需要首先考虑选择完成设计的器件,就可
6、以集中精力进行设计的优化.当设计描述完成后,可以用多种不同的器件结构来实现其功能.5、很强的移植能力:VHDL是一种标准化的硬件描述语言,同一个设计描述可以被不同的工具所支持,使得设计描述的移植成为可能.6、易于共享和复用:VHDL采用基于库(Library)的设计方法,可以建立各种可再次利用的模块.这些模块可以预先设计或使用以前设计中的存档模块,将这些模块存放到库中,就可以在以后的设计中进行复用,可以使设计成果在设计人员之间进行交流和共享,减少硬件电路设计.1.2 FPGA开发介绍现场可编程门阵列(FPGA)器件是八十年代中期出现的新产品,它的应用大大地方便了IC的设计,因而随着数字技术日益
7、广泛的应用,以FPGA为代表的ASIC器件得到了迅速的普及和发展,器件集成度和速度都在高速增长.传统的电路设计过程是:先画原理图、把原理图绘制成印制电路板图、再制版、安装、调试.有了FPGA,我们只需要在计算机上绘出原理图,再运行相应的软件,就可把所设计的逻辑电路在FPGA中实现.所有步骤均可自动完成.电子设计工程师自己设计专用集成电路成为了一件很容易的事情.FPGA作为专用集成电路(ASIC)概念上的一个新型范畴和门类,以其高度灵活的用户现场编程方式,现场定义高容量数字单片系统的能力,能够重复定义、反复改写的新颖功能,为复杂数字系统设计、研制以及产品开发提供了有效的技术手段.电子应用设计工程
8、师应用FPGA技术不仅可避免通常ASIC单片系统设计周期长,前期投资风险大的弱点,而且克服了过去板级通用数字电路应用设计的落后,繁琐和不可靠性.目前FPGA的两个重要发展与突破是,大多数厂商在其高端器件上都提供了片上的处理器(如CPU、DSP)等硬核(Hard Core)或固化核(Fixed Core).比如Xilinx的Virtex II Pro芯片可以提供Power PC,而Altera的Stratix、Excalibur等系列芯片可以提供Nios、DSP和Arm等模块.在FPGA上集成微处理器,使SOPC设计更加便利与强大.另一个发展是在不同器件商推出的高端芯片上大都集成了高速串行收发器
9、,一般能够达到3Gb/s以上的数据处理能力,在Xilinx、Altera、Lattice都有相应的器件型号提供该功能.这些新功能使FPGA的数据吞吐能力大幅度增强.1.2.2 FPGA设计流程对于目标器件为FPGA和CPLD的HDL设计,其工程设计的基本流程如图: 图1FPGA设计流程图1、文本编辑用任何文本编辑器都可以进行,通常VHDL文件保存为vhd文件,Verilog文件保存为v文件.2、使用编译工具编译源文件HDL的编译器有很多,ACTIVE公司,MODELSIM公司,SYNPLICITY公司,SYNOPSYS公司,VERIBEST公司等都有自己的编译器.3、逻辑综合将源文件调入逻辑综
10、合软件进行综合.综合的目的是在于将设计的源文件由语言转换为实际的电路.但是此时还没有在芯片中形成真正的电路.这一步的最终目的是生成门电路级的网表(Netlist).4、布局、布线将第3步生成的网表文件调入PLD厂家提供的软件中进行布线,即把设计好的逻辑安放到CPLDFPGA内.这一步的目的是生成用于下载(编程Programming)的编程文件.在这一步,将用到第3步生成的网表,并根据CPLDFPGA厂商的器件容量,结构等进行布局、布线.这就好像在设计PCB时的布局布线一样.先将各个设计中的门根据网表的内容和器件的结构放在器件的特定部位.然后,在根据网表中提供的各门的连接,把各个门的输入输出连接
11、起来.最后,生成一个供编程的文件.这一步同时还会加一些时序信息(Timing)到你的设计项目中去,以便于你做后仿真.5、后仿真利用在布局布线中获得的精确参数,用仿真软件验证电路的时序.(也叫布局布线仿真或时序仿真).这一步主要是为了确定你的设计在经过布局布线之后,是不是还满足你的设计要求.6、编程,下载如果前几步都没有发生错误,并且符合设计要求,这一步就可以将由适配器等产生的配置或下载文件通过编程器或下载电缆下载到目标芯片中.7、硬件测试硬件测试的目的是为了在更真实的环境中检验HDL设计的运行情况,特别是对于HDL程序设计上不是十分规范,语义上含有一定歧义的程序.1.2.3 实验板使用芯片XC
12、3S200A介绍本实验设计中采用的是Xilinx公司的ETL-001 FPGA开发板进行开发设计,该开发板所提供的主芯片XC3S200A是Xilinx公司最新推出的90nm半导体工艺的低端低成本的FPGA芯片,可以广泛地运用在通信,军事,电力,控制,消费电子,汽车电子绝大多数电子应用领域.芯片主要特性如下表1所示:表1实验板XC3S200A该芯片是基于SRAM工艺的超大规模可编程逻辑芯片,提供了高达20万的等效系统门,3854个查找表(LUT),3854个寄存器(FF),288Kbit的块状SRAM以及16个18*18的乘法器,以及60对差分I/O,LVD.芯片主要特性如上表示.二、系统总体设
13、计2.1 电子秒表的设计任务目标 1、跑表精度为0.01秒 2、跑表计时范围为:1小时 3、设置开始计时/停止计时、复位两个按钮 4、显示工作方式:用六位BCD七段数码管显示读数.显示格式:00:00:00 扩展功能: 按键消抖; 选手时间分时显示;2.2系统工作原理 系统基本流程图如图:图1系统基本流程图2.3单元电路的划分根据要求设计的电路包括以下几个模块:1.分频器:由于我们要以1ms为最小单位进行计时.分频器的功能是对晶体振荡器产生的48MHz时钟信号进行分频,产生1KHz的基准信号,对晶体振荡器产生的时钟信号进行分频,产生时间基准信号.2.计数锁存器:由于我们要实现按不同的键让秒表产
14、生不同的反应.所以需要这个模块对时间基准脉冲进行计数,完成计时功能.并完成对数据的锁存使显示保持暂停.3.控制器:由于我们要实现按不同的键让秒表产生不同的反应.所以需要这个模块控制计数器的运行、停止以及复位,产生锁存器的使能信号.4.按键消抖电路:由于普通按键会产生抖动现象,只按一下,可能出现多次抖动的现象,使按键不灵敏.所以需要消除按键输入信号抖动的影响,输出单脉冲.5.扫描显示的控制电路:包括扫描计数器、数据选择器和7段译码器,控制8个数码管以扫描方式显示计时结果.单元电路划分总框图如下图2:图2单元电路划分总框图三、单元电路设计3.1单元电路设计思路3.1.1分频器分频器的功能是对晶体振
15、荡器产生的48MHz时钟信号进行分频,产生1KHz和100Hz的基准信号.对于频率为1khz的信号,分频系数为48000,因此需要一个24000进制的计数器,每当计数24000个时钟,分频输出信号c1000取反一次,c1000取反两次得到一个周期的信号.这样可实现对输入时钟信号的4800次分频,从而得到1khz的信号.对于频率为100hz的信号,原理相同,分频系数为480000.生成的分频器模块如图3所示:图3分频器模块其中,clkin为48MHz晶振时钟信号;c1000为分频输出的1KHz时钟信号,c100为分频输出的100Hz时钟信号.设计程序如下:library IEEE;use IEE
16、E.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_arith.ALL;use IEEE.STD_LOGIC_unsigned.ALL;entity fdiv is Port ( clkin : in STD_LOGIC; c1000 : out STD_LOGIC; c100 : out STD_LOGIC);end fdiv;architecture Behavioral of fdiv issignal c1000_temp:integer range 0 to 23999:=0;signal c100_temp:integer range 0 to 2399
17、99:=0;signal fd1000,fd100:STD_LOGIC:=0;begin process (clkin) is begin if rising_edge(clkin) then if c1000_temp=23999 then c1000_temp=0;fd1000= not fd1000;else c1000_temp=c1000_temp+1; end if;end if;end process;c1000 =fd1000;process (clkin) isbegin if rising_edge(clkin) then if c100_temp=239999 then
18、c100_temp=0;fd100= not fd100; else c100_temp=c100_temp+1; end if; end if;end process;c100 =fd100;end Behavioral;仿真波形图4如下图4分频器仿真波形由仿真波形可知,分频器的设计是符合预期期望的,当产生输入晶振信号时,经过分频器内部处理的信号最终产生两个输出信号,分别是1KHz和100Hz,由波形图可以看出,当时钟信号计数24000个脉冲时,1KZ的波形翻转一次,从而产生1KZ的信号;同理,100Hz的信号也符合预期设计.3.1.2按键消抖由于实验板上的按键,在按下和松开的短暂时间里,会
19、出现抖动现象,这样会严重影响按键的效果,故此需要设计一个消抖电路,来消除这种不利的影响,按键消抖电路不仅可以消除按键抖动的影响,而且每按一次键,只输出一个脉冲,其宽度为一个时钟周期,达到整形的作用, 按键消抖电路是利用时间基准信号对按键按下时产生的抖动进行整形,使其输出为正常的脉冲信号的.消抖设计框图5如下:图5消抖模块设计原理图程序设计如下:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_unsigned.ALL;use IEEE.STD_LOGIC_arith.ALL;entity XD is Port ( clk1k
20、 : in STD_LOGIC; keyin : in STD_LOGIC; keyout : out STD_LOGIC);end XD;architecture Behavioral of XD issignal key1,key2:std_logic;signal count:integer range 1 to 3:=1beginprocess(clk1k,keyin) begin if clk1kevent and clk1k=1 then if count=3 then key1=1; else key1=0; count=count+1; end if; key2=key1;en
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 数字 跑表 设计 16
限制150内