欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    FPGA电子秒表计时器verilog实验报告.docx

    • 资源ID:13613354       资源大小:359.16KB        全文页数:14页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    FPGA电子秒表计时器verilog实验报告.docx

    1、FPGA电子秒表计时器verilog实验报告华中科技大学电子线路设计、测试与实验实验报告实验名称:用EDA技术设计多功能数字钟院(系):电子信息与通信学院专业班级:姓名:学号:时间:地点:实验成绩:指导教师:2018 年 3 月 27 日一.实验任务及要求基本要求:电子秒表1)可计时的范围0.00s99.99s(显示用七段数码管,显示小数点)。2)能够暂停,能够在计时结束使用灯光或者声音报警提示。提高要求: PWM波产生器1)可输出占空比按10%递进的PWM波(示波器测量查看)。二.实验条件实验板:Nexys4 DDR实验软件:ISE14.7,ModelSim三.预习要求1.NEXYS 4 D

    2、DR开发板说明 。2.有限状态机。3.数码管扫描显示。四.实验原理1.电子秒表设计框图模块分析1)分频模块(Divider.v)将系统给定的100MHZ 的频率通过分频模块变成100Hz 的clk(用来计时)和4000Hz的clk_seg(用来扫描数码管)。代码如下:原理:输入的100MHz 的信号为CLK_100MHz,每当CLK_100MHz 上升沿来时,Count_DIV 计数加1,且每当Count_DIV =100M/(2*100)=0.5M 时,CLK_Out取反一次并且Count_DIV =0,这样会得到一个100Hz 的信号。当需要得到4000Hz的clk_seg时,在顶层模块中

    3、修改parameter OUT_Freq=4000;这样,每当Count_DIV=100M/(2*4000)=12500时,CLK_Out取反一次并且Count_DIV =0,这样会得到一个4000Hz 的信号。 在主程序中修改参数如下:仿真时,为便于观察,在testbench中,将CLK_100MHz的周期设为2ns:always #1 CLK_100MHz = CLK_100MHz;并修改参数如下,验证分频模块的正确性(图中数字16,8,1只表示频率的倍数关系,并非真正的频率)其仿真图如下图: 从图中可以看出,CLK_100MHz的周期为2ns,clk_seg的周期为4ns,clk的周期为

    4、32ns,符合倍数关系,故分频模块的正确性得到验证。2)七段数码管显示模块运用4个七段数码管,前两个显示秒的十位和个位,后两个显示小数点后两位,因为要显示4个数码管,因此用4000Hz的频率扫描4个数码管,使每个数码管每隔1ms亮一次。代码如下:3)十进制计数器模块因为每个数码管的计数规律都为:0-1-2-3-4-5-6-7-8-9-0-1,所以采用十进制计数器。传入的参数stop表示暂停信号,若有暂停信号或没有使能,则保持计数不变。代码如下:4)主程序模块代码如下:代码分析:Second03:0表示百分位的数字,Second07:4表示十分位的数字,Second13:0表示个位的数字,Sec

    5、ond17:4表示十位的数字。如果start为1,即计时开始,则开启数码管使能,数码管开始显示计数值,如果finish等于1,表示计时完成,则alarm=1;点亮报警灯。 接下来调用四个counter10模块,通过控制其使能信号实现正确计时,第一个(C1)的使能信号为start,也就是按下开启键便开始计时,第二个(C2)的使能信号为Second03:0=4d9,也就是当百分位计时到了9,且下一个时钟的上升沿到来时,则十分位加1;第三个(C3)的使能信号为Second0=8h99,也就是当小数点后计时到了99,且下一个时钟的上升沿到来时,则个位加1;第四个(C4)的使能信号为Second13:0

    6、=4h9 & Second0=8h99,也就是当小数点后计时到了99而且个位计数到了9,且下一个时钟的上升沿到来时,则十位加1;这样,就能确保计时的准确性。TestBenchtimescale 1ns / 1nsmodule stopwatch_test; reg CLK_100MHz; reg rst; reg start; reg stop; reg finish; wire 6:0 HEX0; wire 7:0 scan; wire alarm; wire dot; stopwatch uut ( .CLK_100MHz(CLK_100MHz), .rst(rst), .start(st

    7、art), .stop(stop), .finish(finish), .HEX0(HEX0), .scan(scan), .alarm(alarm), .dot(dot) ); initial begin CLK_100MHz = 0; rst = 0; start = 0; stop = 0; finish = 0; #5;rst=1;#5;rst=0; start=1b1; #64;stop=1b1;#64;stop=0; #6400;finish=1b1; #700; end always #1 CLK_100MHz=CLK_100MHz;endmodule仿真波形1.暂停键从图中可以

    8、看出,当stop=0即暂停键没有按下的时候,只要clk上升沿一到,Second0的数值就加一;当stop=1即暂停键按下的时候,即使clk上升沿到了,Second0也不变,也就是暂停计时了。2.结束键从图中可以看出,当finish=1也就是结束键按下的时候,警报灯亮起(alarm=1),同时计时停止。3.进位1)这是从Second03:0向Second07:4进位,从图中可以看出,Second0=8b0000_1001时,当下一个clk上升沿到来的时候,Second0变为8b0001_0000,即实现了从0.09到0.10的进位。2)这是从Second0向Second13:0进位,从图中可以看

    9、出,Second0=8b1001_1001时(也就是计时到了99),当下一个clk上升沿到来的时候,Second0变为8b0000_0000, Second13:0由0变成了1,即实现了从0.99到1.00进位。2. PWM波产生器本实验的思路较简单,在一个固定的时间间距内,当Count_DIV的值从0计数到duty时,输出电平反转;计数到这个时间间距后,电平再反转,将Count_DIV置零,并将duty的值增加10%。然后下一个循环开始,以此达到输出占空比按10%递进的PWM波的目的。实验代码:Testbench:仿真波形:从图中可以看出,输出波形的占空比以10%逐渐增加,可知代码正确。 五

    10、.调试过程及实验结果1. 电子秒表引脚分配如下:调试过程及结果在调试过程中,我碰到了如下问题,并找到了相应的解决方案:1.问题:按下start按钮后,数码管没有显示。解决方案:检查代码后发现,原来是忘记开启数码管使能(EN_SEG=1),于是在原代码中加上后解决了这个问题。2.问题:实验中发现,本来只要一个小数点亮,但四个数码管的小数点都亮了起来。 解决方案:在SEG7_LUT.v(数码管模块)中,扫描数码管时,将其他三个数码管的小数点的电平设为无效电平(dot=1),而需要显示小数点的那个数码管的dot= EN_SEG_in,也就是当数码管使能(EN_SEG_in=1)时,小数点亮;不使能则不亮。修改后的代码如下:2.PWM波产生器引脚分配如下:调试过程及结果调试步骤:1.将开发板与示波器共地,并将开发板的G6引出与示波器的CH1相连,在示波器上观察波形,实现了预期结果。六实验的收获、体会与改进建议在这次实验过程中,我掌握了verilog程序的模块化设计方法和数码管的扫描。 以下是我的一些感悟:1.电子秒表实验中,通过使能信号的灵活运用从而达到控制计数的目的,可谓巧妙。不仅代码简洁,由此设计出的电路也更简单和易于调试。2.模块化设计能减轻开发人员的难度,逻辑更清晰。


    注意事项

    本文(FPGA电子秒表计时器verilog实验报告.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


    收起
    展开