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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(基于FPGAVerilog的数字式秒表设计Word下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于FPGAVerilog的数字式秒表设计Word下载.docx

1、二、系统原理框图 1000Hz 100Hz 50MHz 三、电路实现四、功能模块1、分频器(以10分频器为例)(1)Verilog HDL语言程序module fp10(Clk,Out);input Clk;output Out;reg Out;reg 3:0 Cout;reg Clk_En;initialOut=0;always (posedge Clk )beginCout = (Cout = 4d10) ? 4d0 : (Cout + 4d1);Clk_En = 4d5) ? 1d1 :d0;=Clk_En;endEndmodule(2)模块化电路 (3)波形仿真 由波形仿真图可以看出,

2、10分频器将1000Hz的脉冲分频成100Hz的脉冲。2、计数器(以模10计数器为例)module counter10( Clk,EN,RET,CQ,OUTinput EN,RET;output 3:0 CQ;output OUT;reg OUT;/*-*/wire Rst_n;assignRst_n = RET;reg3:0 Led;always (posedge Clk or negedge Rst_n)if(Rst_n)OUT=0;Led = 4elseClk_En = Clk;if(Clk_En&EN)if(Ledd9)OUT=1CQ = Led;endmodule (2)模块化电路(

3、3)波形仿真由波形图可以看出,100Hz的脉冲源,模10计数器D3-D0输出0000-1001,每10个脉冲进位位OUT输出一个单脉冲。3、数据选择器 (1)Verilog HDL语言程序module numchoose(sel,num4,num5,num6,num7,k);input2:0sel;input3:0num4;0num5;0num6;0num7;output reg3:0 k;always begincase(sel)3b000: kb001:d3;b010:b011:b100:=num4;b101:=num5;b110:=num6;b111:=num7;endcaseenden

4、dmodule 由波形图可以看出,在1000Hz的扫描信号及100Hz的计时信号下,数据选择器输出前四位输出学号后四位0311(0000,0011,0001,0001),后四位输出范围00009999(0000,0000,0000,00001001,1001,1001,1001)。4、显示译码器(带小数点)module xianshiyimaqi( k, Sev_Seg_Led_Data_n, del );input 3:output 7:0 Sev_Seg_Led_Data_n;input 2:0 del;reg 7:reg 3:0D,C,A,B; always(k) begin if(de

5、l=3b101) case (k) 4b0000: Led = 8b0111_1111;b0001:b0000_1101;b0010:b1011_0111; 4b0011:b1001_1111;b0100:b1100_1101;b0101:b1101_1011;b0110:b1111_1011;b0111:b0000_1111;b1000:b1111_1111;b1001:b1101_1111; default :b0000_000; endcase else case (k)b0111_1110;b0000_1100;b1011_0110;b1001_1110;b1100_1100;b110

6、1_1010;b1111_1010;b0000_1110;b1111_1110;b1101_1110; endcase endassign Sev_Seg_Led_Data_n = Led; (3)小数点问题 由于是只在第六个数码管(S5)上加小数点,且一直存在,故编写显示译码器程序时,在其输出8位段码时,再加一个位控选择器,即当位码为101(S5)时,段码最后一位(D0)总为1。5、计数控制器 module control(S1,S2,P,CR);input S1,S2;output P,CR;wire S1,S2;reg P;reg CR;initialP=0;always (negedg

7、e S1 or negedge S2 )if(S2)CR=0;elseCR=1;P=P;Endmodule 由波形可以看出,初始时刻S1,S2皆为高电平,CR(清零)和P(使能)皆为低电平,计数器不工作;按S1,CR和P变为高,计数器开始计数;再按S1,P变为低,计数器使能端为低,暂停计数;按S2,CR和P都变为低,计数器清零且暂停计数。五、 仿真与测试结果(1)按S1使计数器开始计数,计数器正常工作时,数码管的输出即为数据选择器的输出经过显示译码器得到的结果,显示范围为031100.00031199.99。(2)按S1一下,计数器暂停计数,因此数据选择器输出,显示译码器输出,数码管显示信号皆

8、保持不变。(3)按S2一下,计数器清零且暂停计数,数码管显示(031100.00)。六、 实验总结与心得体会开始进行设计时,对整个设计的原理和用Verilog语言编写程序不是非常熟悉,因此采用直接调用集成模块画原理图的方法进行设计,结果发现像74160和74151这种模块都具有许多不必要的控制端口,因此连线不仅繁多而且还极容易出错。特别是8选1数据选择器74151,由于显示译码器需要4位信号输入,所需要的4个数据选择器也就需要更多的连线。随着设计的进行,发现采用自顶而下的方式,用Verilog语言编写每一个模块,在原理图中直接调用生成的图形文件,不仅没有了很多的控制端口和由此带来的连线,而且像数据选择器这种输入与输出之间逻辑很清晰的模块不仅可以直接编写成为一个大模块,而且这样程序编写起来也很简单。尽管十进制计数器也可以编写成一个大模块,但由于存在进位问题,程序编写起来不算容易,逻辑性也不是很强,因此还是选择采用四个单独的计数器。第一次在试验箱上测试存在进位问题,即由低位的8到9时直接跳到高位的9然后再到高位的0。分析认为是由于十进制计数器存在着进位问题,其程序片段如下:可以看出,对于OUT进位输出,0到8时是低电平,9为高电平,即8到9时有上升沿,9回到0时是下降沿,而计数器的Clk是上升沿触发。除了修改程序的方法,还可以采用直接在OUT后接非门将上升沿与下降沿互换。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1