版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 FPGA实验 报告二 实验名称: 基于HDL十进制计数器设计 姓 名: 学 号: 班 级: 指导老师: 时 间: 2013年3月18日 实验二:基于HDL十进制计数器设计一、实验目的1、掌握基于语言的ISE设计全流程;2、熟悉、应用VerilogHDL描述数字电路;3、掌握基于Verilog的组合和时序逻辑电路的设计方法二、实验要求1、用HDL语言设计七段显示译码电路,以及十进制加法计数器。2、要求LED定位显示。3、完成LED七段码波形的仿真分析4、在目标板按要求显示译码结果。三、实验原理本次试验将完成的设计是一个具有数显输出的十进制计数器。示意图如2.1所示。图2.1七段数码管属于数码管
2、的一种,是由7段二极管组成。按发光二极管单元衔接方式分为共阳极数码管和共阴极数码管。本实验使用共阴数码管。它是指将一切发光二极管的阴极接到一同构成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平相应字段就点亮,当某一字段的阳极为低电平相应字段就不亮。显示译码器,用HDL语言判断CLK的上升沿信号,每次收到一次上升沿信号,计数器的值加一并显示在数码管上,所以本次实验会将十进制计数与七段数码管的显示分别写在两个模块里面。消抖模块,这次不用学生完成,只用在最后的top文件中调用就行。本实验可以采用ISE软件的HDL语言描述七段数码管的
3、功能与十进制计数功能。完成的设计是一个具有数显输出的十进制计数器。四、实验步骤1、设计准备(1)设计任务表述: 输入信号: clk -待计数的时钟clr -异步清零信号,当clr=1,输出复位为0,当clr=0,正常计数ce-使能控制信号,当ce=1,电路正常累加计数,否则电路不工作输出信号:q6:0-驱动数码管,显示计数值的个位cout -驱动发光二极管,显示计数值向十位的进位(2)本实验共包括3个模块:十进制计数器驱动七段数码管模块消抖模块,待计数的时钟clk输入至计数器前,先通过消抖模块。(3)十进制计数器:对输入时钟进行计数输入:CLK-待计数的时钟 CLR -异步清零信号,当CLR
4、=1,输出复位为0;当CLR =0,正常计数ENA-使能控制信号,当ENA=1,电路正常累加计数,否则电路不工作输出:SUM3:0-计数值的个位COUT -计数值的十位进位(4)LED显示驱动模块输入:SUM3:0待显示的数值OUT6:0驱动数码管的七位数值(5)电源按键消抖模块通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动,为了不产生这种现象而作的措施就是按键消抖。 根据实验板的资料,对按键输入信号需进行消抖处理。电平检查模块:检测输入的按键是否被按
5、下或者释放,并分别将H2L_Sig,L2H_Sig拉高,并随后拉低,给出按键的操作信息。延时模块,对输入的信号变化时刻进行计时并观察信号的变换情况,对输出端口进行恰当的赋值。实验资料中给出消抖模块设计源代码。消抖模块不要求仿真。2、十进制计数器TEN_CLK.v的设计(1)设计输入1)建立工程:file->New Project。在E盘的根目录下,以学号20105391为文件名建立工程,选择Top-level的类型是HDL2) 正确选择EDA工具与器件3)建立工程后,开始模块的设计,TEN_CLK.v模块设计。建立新Verilog HDL模块编辑窗口4) 选择Verilog Module
6、 ,并输入合法文件名5)在文本编辑窗口输入代码以下是我编写十进制计数器的代码:timescale 1ns / 1psmodule Ten_CLK(CLK,CLR,ENA,ADD,SUM);input CLK;input ENA;input CLR;output3:0 SUM;output ADD;reg3:0 SUM = 4'b0000;reg ADD = 0;always (posedge CLK or posedge CLR)beginif(CLR)beginSUM=4'b0000;ADD=1'b0; endelsebeginif(ENA)if(SUM = 4
7、9;b1001)begin SUM = 4'b0000;ADD = 1'b1; endelsebeginSUM = SUM+1'b1;ADD = 1'b0;endelsebeginSUM = SUM;ADD = ADD;endendendendmodule程序主要思路是用always等待CLK与CLR的上升沿信号,因为是异步清零所以在always中也要等待CLR的清零信号。用if语句判断CLR信号,为1则清零。判断ENA信号,为1进行计数操作,为0输出保持不变。计数中,判断SUM的值如果为9时,进行进位操作,并将SUM值赋值为0。(2)设计处理综合:1) 在so
8、urces窗口选中待综合模块cnt10,在process窗口双击Synthesize-XST2) 综合完后可以双击Synthesize-XST下的View RTL Schematic,得到综合 后的电路图。(3)功能仿真1)建立仿真激励文件2)考虑完备性测试和减短仿真耗时,将时钟周期改为100ns,测试文件时间长度2000ns 3)根据所设计的十进制计数器的各种工作状态,完成激励信号的编辑 4)进行仿真:选择sources for:Behavioral Simulation选中激励文件双击simulate Behavioral Model5) 分析得到的仿真波形,如有问题,对设计进行修正。由于
9、本次设计的时钟周期长,对时序没有要求,故可以省略各子模块的时序仿真。3、LED驱动模块LED_Ten.v的设计(1)分析理解七段数码管的真值表,完成输入输出的转换(2)与TEN_CLK.v的设计步骤相同,完成这个模块的设计输入综合、功能、仿真。下面我主要介绍代码的思路与我写的代码以及激励文件截图和仿真。timescale 1ns / 1psmodule LED_Ten(data_in,data_out);input3:0 data_in;output6:0 data_out;reg6:0 data_out;always (data_in)beginbegincase(data_in)4'
10、;b0000: data_out <= 7'b1111110;4'b0001: data_out <= 7'b0110000;4'b0010: data_out <= 7'b1101101;4'b0011: data_out <= 7'b1111001;4'b0100: data_out <= 7'b0110011;4'b0101: data_out <= 7'b1011011;4'b0110: data_out <= 7'b1011111;4
11、9;b0111: data_out <= 7'b1110000;4'b1000: data_out <= 7'b1111111;4'b1001: data_out <= 7'b1111011;4'b1010: data_out <= 7'b1110111;4'b1011: data_out <= 7'b0011111;4'b1100: data_out <= 7'b1001110;4'b1101: data_out <= 7'b0111101;4
12、39;b1110: data_out <= 7'b1001111;default: data_out <= 7'b1000111;endcaseendendendmodule代码本身思路很简单,用一个case语句判断输入的data_in的值,选择data_out的输出,这样比用原理图设计数码管要大大的减少工作量。激励文件:仿真结果:4、消抖模块设计(1)了解消抖模块的功能,拷贝相关代码(2)拟采用实验板上的50MHZ时钟为延迟计数时钟(3)为设计简单,cnt10模块中的复位信号和使能信号通过拨动开关输入,仅有做时钟的按键信号通过消抖模块处理(4)消抖模块的复位信号、
13、使能信号与cnt10模块共用5、顶层模块设计(1)用verilog HDL代码描述模块的连接,构成如下图所示的系统:timescale 1ns / 1psmodule top_LED(clk_50,clk,clr,ena,cout,data_Out);input clk,clr,ena,clk_50;output cout;output6:0 data_Out;wire3:0 temp;Ten_CLK U1(Pin_Out,clr,ena,cout,temp);LED_Ten U2(temp,data_Out);debounce_module U3(clk_50,clk,clr,Pin_Out
14、);endmodule 顶层模块的代码并不复杂,主要注意调用各个模块,并对其的连线不能出错,综合以后出现下图,如与符合要求就继续进行之后的操作。(2)HDL代码完成后,综合,功能仿真,分析仿真波形,修正代码,确认设计正确。(3)引脚锁定:由于clk没锁于默认的时钟输入引脚上,需在生成的约束文件(.ucf)中clk的锁定改为:NET "clk" LOC = "K16" | CLOCK_DEDICATED_ROUTE = FALSE;或另加一行:NET "clk" CLOCK_DEDICATED_ROUTE=FALSE;(4)双击Impl
15、ement Design,进行布局布线(5)进行时序仿真激励文件:仿真文件:(6)分析波形,修正设计,直至设计正确。6、下载(1)双击Generate Programming File生成下载文件(2)双击Configure Target Device(3)点击OK,点击Finish(4) 对随后的两个器件,一个是Prom,一个是CPLD,选择Bypass(5) 弹出对话框,点击OK(6)下载后,改变波动开关盒按键,观察结果五、思考题1、如何用两个或一个always 实现十进制计数模块?写出相应代码。一个always如下:always (posedge CLK or posedge CLR)b
16、eginif(CLR)beginSUM=4'b0000;ADD=1'b0; endelsebeginif(ENA)if(SUM = 4'b1001)begin SUM = 4'b0000;ADD = 1'b1; endelsebeginSUM = SUM+1'b1;ADD = 1'b0;endelsebeginSUM = SUM;ADD = ADD;endendendendmodule两个always如下:always (CLR)beginif(CLR)flag = 1;elseflag = 0;endalways (posedge CL
17、K)beginif(flag)beginSUM=4'b0000;ADD=1'b0; endelsebeginif(ENA)if(SUM = 4'b1001)begin SUM = 4'b0000;ADD = 1'b1; endelsebeginSUM = SUM+1'b1;ADD = 1'b0;endelsebeginSUM = SUM;ADD = ADD;endendendendmodule 2、如何用always,或assign实现数码管的驱动设计?写出相应代码always如下:always (data_in)beginbeginca
18、se(data_in)4'b0000: data_out <= 7'b1111110;4'b0001: data_out <= 7'b0110000;4'b0010: data_out <= 7'b1101101;4'b0011: data_out <= 7'b1111001;4'b0100: data_out <= 7'b0110011;4'b0101: data_out <= 7'b1011011;4'b0110: data_out <= 7'b1011111;4'b0111: data_out <= 7'b1110000;4'b1000: data_out <= 7'b1111111;4'b1001: data_out <= 7'b1111011;4'b1010: data_out <= 7'b1110111;4'b1011: data_out <= 7'b0011111;4&
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年航天器零部件制造及供应合同
- 2024一年级小朋友零花钱管理与使用规范协议3篇
- 2024年脚手架搭建项目承包具体合同书版B版
- 2024年股权激励合同范本
- 2024年汽车4S店驾驶员客户服务及销售聘用合同3篇
- 2024年度物流居间服务协议范本3篇
- 2024年管理咨询合同:优化管理提升效率3篇
- 2024年煤矿企业与物流企业煤炭运输与配送合同
- 2024年商业活动模特肖像使用授权合同范本3篇
- 2024年度金融科技研发委托投资协议3篇
- 肾病科主任述职报告
- 2023-2024全国初中物理竞赛试题第11讲压强(解析版)
- 扩大高水平对外开放课件
- 卫生院年度工作总结
- 遗传学-第二版-课后答案(1-8章)
- 2024年供应链管理师(一级)资格考试复习题库(含答案)
- 《地理信息系统》课程中的思政元素科技服务于人与自然和谐共生
- 校招面试官培训课件
- 资产管理基础知识
- 医院采购遴选方案
- GB/T 7260.1-2023不间断电源系统(UPS)第1部分:安全要求
评论
0/150
提交评论