FPGA数字跑表程序设计与防仿真

FPGA数字跑表程序设计与防仿真

ID:40538416

大小:190.50 KB

页数:12页

时间:2019-08-04

FPGA数字跑表程序设计与防仿真_第1页
FPGA数字跑表程序设计与防仿真_第2页
FPGA数字跑表程序设计与防仿真_第3页
FPGA数字跑表程序设计与防仿真_第4页
FPGA数字跑表程序设计与防仿真_第5页
资源描述:

《FPGA数字跑表程序设计与防仿真》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、一、设计名称:基于FPGA的数字系统设计(数字跑表)二、设计指标:1、跑表精度为0.01秒2、跑表计时范围为:1小时3、设置开始计时/停止计时、复位两个按钮4、显示工作方式:用六位BCD七段数码管显示读数。显示格式为xx分xx秒xx0.01秒三、设计要求:1、设计出符合设计要求的解决方案2、设计出单元电路3、利用EDA软件对各单元电路及整体电路进行仿真4、利用EDA软件在实验板上实现设计四、方案设计:1、由石英振荡器产生正弦信号,然后通过分频器分频产生需要的分频信号2、由开关通过使能控制对计数器的工作状态进行控制3

2、、分频信号控制计数器计数4、将计数器结果输入显示模块,完成在七段数码管上的显示五、系统设计框图:六、单元电路划分1分频器(1)设计思路:由于显示最末位为0.01秒故需给计数器提供100Hz的时钟信号;显示部分由于一次只能显示单只数码管,为满足设计要求一次显示六位则需提高显示模块时钟信号频率,利用视觉效应使人一次看到六位显示,故分频器需要提供100Hz和1KHz两个输出信号。分频器通过计数的方法实现分频功能。(2)元件符号:(3)源程序:libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;u

3、seIEEE.STD_LOGIC_ARITH.ALL;useIEEE.STD_LOGIC_UNSIGNED.ALL;entityclockisPort(clk:inSTD_LOGIC;clk1:outSTD_LOGIC;clk2:outSTD_LOGIC);endclock;architectureBehavioralofclockissignalfcount1:integerrange1to24000:=1;signalfcount2:integerrange1to5:=1;signalclk1_tmp:STD_

4、LOGIC:='0';signalclk2_tmp:STD_LOGIC:='0';beginprocess(clk,fcount1,clk1_tmp)beginifclk'eventandclk='1'theniffcount1=24000thenfcount1<=1;clk1_tmp<=notclk1_tmp;elsefcount1<=fcount1+1;endif;endif;endprocess;clk1<=clk1_tmp;process(clk1_tmp,clk1_tmp,fcount2,clk2_tmp

5、)beginifclk1_tmp'eventandclk1_tmp='1'theniffcount2=5thenfcount2<=1;clk2_tmp<=notclk2_tmp;elsefcount2<=fcount2+1;endif;endif;endprocess;clk2<=clk2_tmp;endBehavioral;(4)仿真结果:(5)结果分析:仿真结果显示分频程序正确的产出了实验所需频率信号.2十进制计数器(1)源程序:libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;us

6、eIEEE.STD_LOGIC_ARITH.ALL;useIEEE.STD_LOGIC_UNSIGNED.ALL;entitycounter10isPort(rst:inSTD_LOGIC;clk:inSTD_LOGIC;carry_in:inSTD_LOGIC;carry_out:outSTD_LOGIC;count_out:outSTD_LOGIC_VECTOR(3downto0));endcounter10;architectureBehavioralofcounter10issignalcount_tmp:

7、STD_LOGIC_VECTOR(3downto0):="0000";signalpause:STD_LOGIC:='1';beginprocess(clk,rst,carry_in,count_tmp)beginifrising_edge(carry_in)thenpause<=notpause;endif;ifrst='0'thencount_tmp<="0000";carry_out<='0';elsifclk'eventandclk='1'thenifpause='1'thenifcount_tmp="10

8、01"thencount_tmp<="0000";carry_out<='1';ELSEcount_tmp<=count_tmp+1;carry_out<='0';endif;endif;endif;count_out<=count_tmp;endprocess;endBehavioral;(2)仿真结果:(3)结果分析:仿真结果显示当无reset信号输入时

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。