网站大量收购独家精品文档,联系QQ:2885784924

Verilog24小时计数器.docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Verilog24小时计数器

VERILOG24小时多功能数字钟的设计班级:自动化学生:XXXXX学号:XXXXXX1 设计目标掌握可编程逻辑器件的应用开发技术——设计输入、编译、仿真和器件编程;熟悉一种EDA软件使用与实验系统介绍;掌握Verilog HDL设计方法,设计一个多功能数字钟,满足以下要求:①能显示小时、分钟、秒钟(小时以24进制,时、分用显示器,秒用LED);②能调整小时、分钟的时间;③复位;2 实验装置586计算机,MAX+plusⅡ 10.2软件,专用编程电缆,EDA Pro2K数字实验装置等。3 设计步骤和要求①在MAX+plusⅡ 10.2软件中,输入设计的原理图,采用Verilog HDL输入方式,采用分层模块的设计方法设计电路② 对电路进行仿真分析;③ 选择器件,分配引脚,重新对设计项目进行编译和逻辑综合;④ 对EDA Pro2K数字实验装置中的FPGA器件进行在系统编程,并实际测试电路的逻辑功能(用实验板上的译码显示电路显示结果);4 具体步骤4.1 建立 Quartus 工程;1.打开 Quartus II 工作环境2.点击菜单项 File-New Project Wizard 帮助新建工程3.输入工程工作路径、工程文件名以及顶层实体名4.添加设计文件5.选择设计所用器件6.设置EDA工具7.查看新建工程总结在完成新建后,Quartus II 界面中Project Navigator 的Hierarchy 标签栏中会出现用户正在设计的工程名以及所选用的器件型号4.2 使用 Verilog HDL 完成设计输入代码如下:(1)数字钟顶层模块://*****************timeclock top block(top_clock.v)***************module clock_24(CLK,CP,nCR,EN,Adj_Min,Adj_Hour,SEG7_1,SEG7_2,SEG7_3,SEG7_4);input CLK,nCR,EN,Adj_Min,Adj_Hour;//定义输入端口变量output[7:0]SEG7_1,SEG7_2,SEG7_3,SEG7_4;output CP;wire CP;wire[7:0]Hour,Minute,Second;//说明变量的类型supply1Vdd;wire MinL_EN,MinH_EN,Hour_EN;//定义中间变量freqDiv UO(CLK,CP);counter10 U1(Second[3:0],nCR,EN,CP); //秒计数器个位counter6 U2(Second[7:4],nCR,(Second[3:0]==4h9),CP); //秒计数器十位assignMinL_EN=Adj_Min?Vdd:(Second==8h59);assignMinH_EN=(Adj_Min(Minute[3:0]==4h9))||(Minute[3:0]==4h9)(Second==8h59);counter10 U3(Minute[3:0],nCR,MinL_EN,CP); //分计数器个位counter6 U4(Minute[7:4],nCR,MinH_EN,CP); //分计数器十位//产生小时计数器使能信号。Adj_Hour=1,校正小时;Adj_Hour=0,小时正常计时assign Hour_EN=Adj_Hour?Vdd:((Minute==8h59)(Second==8h59));//24进制小时计数器:调用24进制底层模块构成counter24 U5(Hour[7:4],Hour[3:0],nCR,Hour_EN,CP);//小时计数器SEG7_LUT U6(SEG7_1,Hour[7:4]);SEG7_LUT U7(SEG7_2,Hour[3:0]);SEG7_LUT U8(SEG7_3,Minute[7:4]);SEG7_LUT U9(SEG7_4,Minute[3:0]);endmodule(2)十进制计数器模块://***********counter10.v(BCD:0~5)********************************module counter10(Q,nCR,EN,CP);inputCP,nCR,EN;output[3:0]Q;reg [3:0] Q;always@(posedge CP or negedgenCR)beginif(~nCR)Q=4b0000;//nCR=0,计数器被异步清零else if(~EN)Q=Q;//EN=0,暂停计数else if(Q==4b1001)Q=4b0000;else Q=Q+1b1;//计数器增1计数endendmodule(3)六

文档评论(0)

2017ll + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档