实验二基于HDL十进制计数器设计_第1页
实验二基于HDL十进制计数器设计_第2页
实验二基于HDL十进制计数器设计_第3页
实验二基于HDL十进制计数器设计_第4页
实验二基于HDL十进制计数器设计_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于基于HDL十进制计数、显示系统设计十进制计数、显示系统设计 实验目的实验目的n掌握基于语言的ISE设计全流程;n熟悉、应用VerilogHDL描述数字电路;n掌握基于Verilog的组合和时序逻辑电路的设计方法。n掌握chipscope片内逻辑分析仪的使用与调试方法。n设计准备n设计输入n设计处理n器件编程功能仿真器件测试时序仿真设计准备设计准备n设计任务:具有数显输出的十进制计数器的设计设计准备设计准备n设计任务表述:输入信号:clk_50m -系统采样时钟clk -待计数的时钟clr -异步清零信号,当clr=1,输出复位为0,当clr=0,正常计数ena-使能控制信号,当ena=1,

2、电路正常累加计数,否则电路不工作输出信号:q6:0-驱动数码管,显示计数值的个位COM-共阳级数码管公共端(接VCC)设计准备设计准备n需主要设计完成两个子模块,一个是十进制计数器(cnt10.v),一个是驱动七段数码管的模块(led.v)。n由于实验板上的按键需要消抖,增加一个消抖模块debounce_module,待计数的时钟clk输入至计数器前,先通过消抖模块。n本设计共包括3个模块。设计准备设计准备n十进制计数器:对输入时钟进行计数输入:CLK -待计数的时钟CLR -异步清零信号,当CLR =1,输出复位为0,当CLR =0,正常计数ENA-使能控制信号,当ENA=1,电路正常累加计

3、数,否则电路不工作输出:SUM3:0- 计数值的个位。即,在CLK上升沿检测到SUM=9时,SUM将被置0,开始新一轮的计数。COUT -计数值的十位进位,即:只有在时钟CLK上升沿检测到SUM=9时,COUT将被置1,其余情况下COUT=0;设计准备设计准备nLED显示驱动模块(led.v)输入:sum3:0 -待显示的数值out6:0 -驱动数码管的七位数值(注意下表中out的对应位) 数码输入sum输出out对应码(h)3210Aout0Bout1Cout2Dout3Eout4Fout5Gout600000000000181100011001111CF200100010010923001

4、1000011086 401001001100CC501010100100A4601100100000A07011100011118F8100000000008091001000010084A1010000100088b10111100000E0C11000110001B1d11011000010C2E11100110000B0F11110111000B8设计准备设计准备电源按键消抖:通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动,为了不产生这种现象而

5、作的措施就是按键消抖。根据实验板的资料,对按键输入信号需进行消抖处理。设计准备设计准备n消抖模块n电平检查模块:检测输入的按键是否被按下或者释放,并分别将H2L_Sig,L2H_Sig拉高,并随后拉低,给出按键的操作信息。n延时模块,对输入的信号变化时刻进行计时并观察信号的变换情况,对输出端口进行恰当地赋值n实验资料中给出消抖模块设计源代码。n消抖模块不要求仿真n下面分别设计1、十进制计数器cnt10.v.2、LED驱动模块led.v3、按键消抖模块4、顶层模块设计n设计准备n设计输入n设计处理n器件编程功能仿真器件测试时序仿真十进制计数器十进制计数器cnt10.v的设计的设计设计输入设计输入

6、n建立工程:file-New Project要求:同学们在E盘或者DATA盘的根目录下,以自己的学号为文件名建立工程选择Top-level的类型是HDL设计输入设计输入n注意器件、EDA工具的正确选择设计输入设计输入n建立工程后,开始模块的设计。ncnt10.v模块设计1、建立新Verilog HDL模块编辑窗口设计输入设计输入n选择Verilog Module ,并输入合法文件名设计输入设计输入n在文本编辑窗口输入代码设计处理设计处理n在sources窗口选中待综合模块cnt10,在process窗口双击Synthesize-XSTn综合完后可以双击Synthesize-XST下的View

7、RTL Schematic,得到综合后的电路图。1、综合:功能仿真功能仿真1)建立仿真激励文件功能仿真功能仿真n考虑完备性测试和减短仿真耗时,将时钟周期改为100ns,测试文件时间长度2000ns功能仿真功能仿真n根据所设计的十进制计数器的各种工作状态,完成激励信号的编辑功能仿真功能仿真n进行仿真:1、选择sources for:Behavioral Simulation2、选中激励源文件3、双击simulate Bahavioral Model功能仿真功能仿真n分析得到的仿真波形,如有问题,对设计进行修正n由于本次设计的时钟周期长,对时序没有要求,故可以省略各子模块的时序仿真。LED驱动模块

8、驱动模块led.v的设计的设计n分析下表,(注意输出out6:0与下表数据的对应关系)理解led.v模块的功能 数码输入sum输出out对应码(h)3210Aout0Bout1Cout2Dout3Eout4Fout5Gout600000000000181100011001111CF2001000100109230011000011086 401001001100CC501010100100A4601100100000A07011100011118F8100000000008091001000010084A1010000100088b10111100000E0C11000110001B1d110

9、11000010C2E11100110000B0F11110111000B8LED驱动模块驱动模块led.v的设计的设计n按照与cnt10.v相同的设计步骤完成led.v模块的设计输入、综合、功能仿真cnt10.v和和led.v组合为一个系统组合为一个系统 用Verilog HDL将cnt10.v和led.v组合为一个模块,完成综合、功能仿真,分析波形,修正设计。消抖模块设计消抖模块设计n了解消抖模块的功能,拷贝相关代码n拟采用实验板上的50MHZ时钟为延迟计数时钟n消抖模块端口说明: debounce_module ( CLK, RSTn, Pin_In, Pin_Out);CLK-50MH

10、Z板上时钟,提供给延时模块计时使用。RSTn-异步复位信号, RSTn=1,复位Pin_In-待消抖信号,在本次设计是输入给十进制的时钟信号。Pin_Out-消抖后输出信号,输到十进制计数模块的时钟信号。顶层模块设计顶层模块设计n硬件测试平台设计: 系统输入:系统输入: 十进制计数器cnt10模块中的复位信号(clr)通过拨动开关SW3输入,使能信号(ena)通过拨动开关SW2输入,待计数时钟clk通过按键V16输入,为保证设计效果,将clk通过消抖模块处理后,生成的clk_out送到后续模块。 系统输出系统输出: 向十位的进位可以锁于发光二极管(比如:LD4) 数码管驱动的七位信号可输出到D

11、5,B6,E7,F7,B4,A4,C5等引脚。n为简化设计,消抖模块的复位信号、使能信号与cnt10模块共用顶层模块设计顶层模块设计n用Verilog HDL代码描述模块的连接,构成如下图所示的系统:顶层模块处理顶层模块处理nHDL代码完成后,综合。n顶层模块不需要仿真。顶层模块处理顶层模块处理n引脚锁定:信号名引脚号信号名引脚号信号名引脚号clrN17AC5EB6enaH18BB4FE7clkV16CA4GA6clk_50mC9DF7COMD5顶层模块处理顶层模块处理n由于clk没锁于ISE默认的时钟输入引脚上,需要添加“CLOCK_DEDICATED_ROUTE = FALSE;”n为了更

12、好的消抖效果,需要在V16输入端口加入下拉电阻,即需加“PULLDOWN”。n所以在约束文件(.ucf)中clk的锁定应为为:1)、NET “clk” LOC = “V16” |PULLDOWN | CLOCK_DEDICATED_ROUTE = FALSE;” :或者2) NET “clk” LOC = “V16” |PULLDOWN ; NET clk CLOCK_DEDICATED_ROUTE=FALSE;用户约束文件(用户约束文件(*.ucf)参考:)参考:nNET clk LOC = V16 | IOSTANDARD = LVCMOS33 | PULLDOWN ;nNET clk_5

13、0m LOC = C9 | IOSTANDARD = LVCMOS33 ;nNET clr LOC = N17 | IOSTANDARD = LVCMOS33;nNET ena LOC = H18| IOSTANDARD = LVCMOS33;nNET q0 LOC = C5 | IOSTANDARD = LVCMOS33; # DATA0anNET q1 LOC = B4 | IOSTANDARD = LVCMOS33; # DATA1bnNET q2 LOC = A4 | IOSTANDARD = LVCMOS33; # DATA2cnNET q3 LOC = F7 | IOSTANDAR

14、D = LVCMOS33; # DATA3dnNET q4 LOC = B6 | IOSTANDARD = LVCMOS33; # DATA4 enNET q5 LOC = E7 | IOSTANDARD = LVCMOS33; # DATA5fnNET q6 LOC = A6 | IOSTANDARD = LVCMOS33; # DATA6gnNET COM LOC = D5 | IOSTANDARD = LVCMOS33; # DATA7 DIG顶层模块处理顶层模块处理n双击Implement Design,进行布局布线下载下载n双击Generate Programming File生成下

15、载文件n双击Configure Target Device点击OK下载下载n点击Finish下载下载下载下载n对随后的两个器件,一个是Prom,一个是CPLD,选择Bypass。下载下载n弹出对话框,点击OK下载下载n下载后,改变拨动开关和按键,观察结果Chipscope在线调试在线调试nChipscope是Xilinx推出的一款在线调试软件,如图,通过JTAG仿真器将FPGA芯片中实际运行的各种参数通过配置,传回 ISE套件中的chipscope软件n类似于示波器,chipscope提供触发深度,触发方式等一系列设置,同时提供数据采样观察窗口Chipscope调试开始调试开始 新建新建.cd

16、c文件文件n在HDL工程中添加chipscope file,选择ChipScope Definition and Connection File,file name 取名segChipscope-配置配置 .cdc文件文件n在原有的HDL工程下出现新建seg.cdc文件,可以在chipscope植入 ILA 和 ICON IP核,双击seg.cdc文件,进入配置界面。Chipscope-设置触发端口、类型等设置触发端口、类型等n进入配置界面,每个触发端口ILA核可支持多路比特数据,最多可有16个端口,触发匹配类型共有6种。这里配置根据需要调试的数据个数、类型决定。Chipscope-设置采样深

17、度设置采样深度n设置采样深度,即为一次采样数据所显示的深度、个数。深度范围512-16384,采样深度越深,耗费资源越多。然后点击Net Connections标签,设置设置触发时钟与触发信号界面。Chipscope-设置采样信号设置采样信号n选择Modify Connections 选项,进入采样时钟和触发信号设置,采样时钟用于捕捉触发信号Chipscope-设置采样时钟设置采样时钟n设置触发时钟,一般选择系统频率最高的主时钟n注:Net selections中每个channel必须有添加有信号,否则综合要报错n同样设置触发信号,将TPO与TP1端口中的每个channel都添加,此处TP0监

18、测clk、clr、ena、coutnTP1监测的数码管七段信号q7:0、以及COMChipscope-设置触发数据设置触发数据注:一般选择缓冲后的信号,例如q_0_OBUFChipscope-JTAG扫描扫描n设置好以后保存退出,综合与实现,双击图中Analyze Design Using Chipscope。n进入chipscope软件,单击 按钮开始JTAG扫描,查找FPGA器件。Chipscope-装载装载.bit文件文件nJTAG扫描以后会发现三个设备,选择XC3S500E,在DEV:0 MyDevice(XC3S500E)右击configure按以下图进行操作,选择下载的bit流文件。Chipscope-装载装载.cdc文件文件n按以下步骤加载.cdc文件,此文件里包含了所有触发端口。Chipscope-开始采样开始采样n开始调试 ,选择重复触发,然后点击开始采样,采样数据将会显示在waveform窗口。触发深度,可选Chipscope-分析数据分析数据n分析数据,在开发板上数码管显示为0,统通过计算得出七段输出q6:0 = 7b1000000,加上C

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论