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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

FPGA实验二基于HDL的十进制计数器.docx

1、FPGA实验二基于HDL的十进制计数器FPGA课程报告设计题目:基于HDL的十进制计数器学生班级:学生学号:学生姓名:指导教师:时 间:成 绩:一、实验目的:1.掌握基于语言的ISE设计全流程;2.熟悉、应用VerilogHDL描述数字电路;3.掌握基于Verilog的组合和时序逻辑电路的设计方法。二、实验原理:本次实验是使用Verilog HDL进行编写十进制计数器与显示器代码而进行的实验,实验原理图如下: 本次实验的内容包括十进制计数器模块,七段译码显示器模块,以及消抖模块。 十进制计数器:对输入时钟进行计数 输入:CLK -待计数的时钟CLR -异步清零信号,当CLR =1,输出复位为0

2、,当CLR =0,正常计数ENA-使能控制信号,当ENA=1,电路正常累加计数,否则电路不工作输出:SUM3:0- 计数值的个位。即,在CLK上升沿检测到SUM=9时,SUM将被置0,开始新一轮的计数。COUT -计数值的十位进位,即:只有在时钟CLK上升沿检测到SUM=9时,COUT将被置1,其余情况下COUT=0;LED显示驱动模块:输入:sum3:0 -待显示的数值out6:0 -驱动数码管的七位数值七段数码管的字符显示真值表如下:消抖模块:三、实验过程:1.首先建立一个新的工程,添加一个新的Verilog Module,在其中编写十进制计数模块的代码,如下:module liao1(C

3、LR,CLK,ENA,SUM,COUT ); input CLR,CLK,ENA;output3:0 SUM;output COUT;reg3:0 SUM;reg COUT;always(posedge CLK or posedge CLR) if(CLR) begin SUM=4b0000; COUT=1b0; end else if(ENA) beginif(SUM=9) begin SUM=4b0000; COUT=1b1; end else begin SUM=SUM+1b1; COUT=1b0; end endendmodule然后执行综合,确认无误后,新建一个Test Bench

4、WaveForm文件,进行仿真,仿真图如下:2.再新建一个Verilog Module,在其中编写七段数码显示模块的代码,如下:module liao2(SUM,out );input3:0 SUM;output6:0 out;reg 6:0 out;always (SUM) begin case(SUM) 4b0000: out=7b0000001; 4b0001: out=7b1001111; 4b0010: out=7b0010010; 4b0011: out=7b0000110; 4b0100: out=7b1001100; 4b0101: out=7b0100100; 4b0110:

5、 out=7b0100000; 4b0111: out=7b0001111; 4b1000: out=7b0000000; 4b1001: out=7b0000100; default :out=7b0000001; endcase endendmodule执行综合,确认无误后新建一个Test Bench WaveForm文件,进行仿真,仿真图如下:3.添加消抖模块,然后再新建一个Verilog Module,编写例化文件,制成顶层文件,其例化文件代码如下:module liao(CLK_50M,CLK,CLR,ENA,COUT,out );input CLR,CLK,ENA;input CL

6、K_50M;output6:0 out;output COUT;wire3:0 SUM;debounce_module u1(CLK_50M,CLR,CLK,clk_out);liao1 u2(CLR,clk_out,ENA,SUM,COUT);liao2 u3(SUM,out);endmodule保存之后形成顶层文件:4.执行综合,确认无误后,根据实验指导书进行锁引脚操作: 锁引脚完成后,修改、编辑约束文件: 5. 生成下载配置文件,下载到开发板进行经行验证。四、实验思考题:1. 如何用两个或一个always 实现十进制计数模块?写出相应代码。module liao1(CLR,CLK,ENA

7、,SUM,COUT ); input CLR,CLK,ENA;output3:0 SUM;output COUT;reg3:0 SUM;reg COUT;always(posedge CLK or posedge CLR) if(CLR) begin SUM=4b0000; COUT=1b0; end else if(ENA) beginif(SUM=9) begin SUM=4b0000; COUT=1b1; end else begin SUM=SUM+1b1; COUT=1b0; end endendmodule2.如何用always,或assign实现数码管的驱动设计? 写出相应代码。

8、module liao2(SUM,out );input3:0 SUM;output6:0 out;reg 6:0 out;always (SUM) begin case(SUM) 4b0000: out=7b0000001; 4b0001: out=7b1001111; 4b0010: out=7b0010010; 4b0011: out=7b0000110; 4b0100: out=7b1001100; 4b0101: out=7b0100100; 4b0110: out=7b0100000; 4b0111: out=7b0001111; 4b1000: out=7b0000000; 4b

9、1001: out=7b0000100; default :out=7b0000001; endcase endendmodule3.比较实验一与实验二的实验过程,说明原理图输入法与HDL输入法的不同的应用环境。答:通过做实验一与实验二,可以看出原理图输入法非常直观,而且便于理解,但是需要大量的时间来寻找元器件并进行布线;HDL输入法可以按功能分成多个模块,按需调用,有利于自顶向下的设计,但需要较强的逻辑理解能力。五、实验体会: 通过本次实验,我基本上掌握了基于HDL语言的ISE设计流程,也熟悉了应用Verilog HDL来描述数字电路,而且也掌握了基于Verilog HDL的组合和时序逻辑电路的设计方法。在本次实验中因为在写例化文件时出了一个小错误,结果使得我最后结果错误,真是让我意识到了在实验中不能忽视任何一个细节,必须面面俱到才能保证最后的成功,通过这次实验相信对我以后的学习生活都会有很大的帮助。

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

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