FPGA—基于HDL的十进制计数器设计.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
FPGA—基于HDL的十进制计数器设计

基于HDL的十进制计数器设计实验目的1、掌握基于语言的ISE设计全流程;2、熟悉、应用VerilogHDL描述数字电路;3、掌握基于Verilog的组合和时序逻辑电路的设计方法。4、掌握chipscope片内逻辑分析仪的使用与调试方法。5、设计具有异步复位、同步使能的十进制计数器,其计数结果可以通过七段数码管、发光二极管等进行显示。实验原理1、十进制计数器的设计即是设置一变量,当计数脉冲上升沿到来时,先判断是否为9,若是则置零,否则就进行加一操作。将变量再进行一个译码操作输出到数码管显示即可。图1 实验原理图2、数码管分为7 段和8 段,七段数码管由7段二极管组成。8段数码管比起7段数码管多了一个显示小数点的LED。数码管按发光二极管单元衔接方式分为共阳极数码管和共阴极数码管。本实验使用共阳数码管。它是指将一切发光二极管的阳极接到一同构成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到电源VCC 上,当某一字段发光二极管的阴极为低电平相应字段就点亮。当某一字段的阴极为高电平相应字段就不亮。共阳端可以作为位选端,实现动态扫描。动态扫描即是利用了人眼睛的视觉暂留现象,以合适的频率显示每一位数码管,便会产生所有数码管是一起点亮的错觉,数码管原理图如图:图2共阳数码管示意图3、数码管显示数字与对应的输入数据的关系如表所示:08hc018hf928ha438hb048h9958h9268h8278hf888h8098h90表1 数码管显示表4、本次设计一共有11个端口:输入信号:clk -------待计数的时钟。clr ---------异步清零信号,当clr=1,输出复位为0,当clr=0,正常计数。ena---------使能控制信号,当ena=1,电路正常累加计数,否则电路不工作。输出信号:q[6:0]---------驱动数码管,显示计数值的个位。cout -----------1bit数据,显示计数值向十位的进位图。实验步骤1、整个系统主要设计的模块是:十进制计数模块和数码管驱动模块,由于实验板的按键为实现硬件防抖,则需要将按键输入的时钟clk,先通过消抖模块消抖后,再输出至后续使用。图3系统结构图分别进行各个模块的设计并进行仿真测试。1)十进制计数器模块设计输入:CLK -------待计数的时钟。CLR ---------异步清零信号,当CLR =1,输出复位为0,当CLR =0,正常计数。ENA---------使能控制信号,当ENA=1,电路正常累加计数,否则电路不工作。输出:SUM[3:0]---------- 计数值的个位,即在CLK上升沿检测到SUM=9时,SUM将被置0,开始新一轮的计数。COUT ------------计数值的十位进位,即只有在时钟CLK上升沿检测到SUM=9时,COUT将被置1,其余情况下COUT=0。2)数码管显示驱动模块输入:sum[3:0] -------待显示的数值。输出:out[6:0] ----------驱动数码管的七位数值(注意下表中out的对应位3)消抖模块(1)按键抖动的产生原因:通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动,为了不产生这种现象而作的措施就是按键消抖。图4 按键抖动波形图(2)本次实验提供的消抖模块简介图5 消抖模块框图(3)电平检查模块:检测输入的按键是否被按下或者释放,并分别将H2L_Sig,L2H_Sig拉高,并随后拉低,给出按键的操作信息。(4)延时模块:对输入的信号变化进行计时并观察信号的变换情况,对输出端口进行恰当地赋值。注:实验资料中将给出消抖模块设计源代码。对模块的具体设计细节不需理解,消抖模块不要求仿真。根据板子锁定引脚,并生成下载文件。数码管驱动的七位信号可输出到电路板上相关引脚。为简化设计,可将消抖模块的复位信号、使能信号与cnt10模块共用。根据下载板资料,完成引脚锁定,生成相关的用户约束文件(ucf)。注意:由于clk没锁在ISE默认的时钟输入引脚上,需要添加代码:“CLOCK_DEDICATED_ROUTE = FALSE;”锁引脚代码:NET CLK LOC = P57| CLK_DEDICATED_ROUTE = FALSE ;NET CLK_50 LOC = P80;NET COUT LOC = P23;NET ENA LOC = P32;NET CLR LOC = P26;NET DATA_OUT[6] LOC = P102;NET DATA_OUT[5] LOC = P99;NET DATA_OUT[4] LOC = P107;NET DATA_OU

文档评论(0)

ctuorn0371 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档