模可变计数器设计(Verilog语言).doc

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

模可变计数器设计 实验目的 进一步熟悉实验装置和QuartusⅡ软件的使用; 进一步熟悉和掌握EDA设计流程; 学习简单组合、时序电路的EDA设计; 学习计数器中二进制码到BCD码的转换技巧; 学习实验装置上数码管的输出方法。 设计要求 完成设计、仿真、调试、下载、硬件测试等环节,在EDA实验装置上实现模可变计数器功能,具体要求如下: 设置一个按键控制改变模值,按键按下时模为10-99之间(具体数值自行确定)的数,没按下时模为100-199之间(具体数值自行确定)的数; 计数结果用三位数码管十进制显示。 主要仪器设备 微机 1台 QuartusII集成开发软件 1套 EDA实验装置 1套 实验步骤 主要有三个模块 1:一个模20和模119的计数器 2:数码管的显示 3:BCD的调整 源程序: module count (clk,m,en,rst,a,sel,SG,d); input clk,m,en,rst; output [7:0] SG; output [2:0] sel; output a; (* synthesis, keep *) reg clk1; (* synthesis, keep *) wire [3:0] gw,sw,bw; /*(* synthesis, keep *) */reg [3:0]a; reg [11:0] q; reg [11:0] model; reg [7:0] cnt,SG; reg [2:0] sel; reg [0:0]d; output [0:0]d; always @(posedge clk) begin cnt=cnt+1; if (cnt==200) begin clk1=1b1; cnt=0; end else clk1=1b0; //200分频,CLK为数码管扫描频率,CLK1为计数频率 if (sel2) sel=sel+1; else sel=0; end //sel为数码管选择 always @(sel) begin case (sel) 0: a=bw; //0数码管为百位 1: a=sw; //1数码管为十位 2: a=gw; //2数码管为个位 default: a=0; endcase case (a) 0:SG=8 1:SG=8 2:SG=8 3:SG=8 4:SG=8 5:SG=8 6:SG=8 7:SG=8 8:SG=8 9:SG=8 //8段译码值 default: SG=8 endcase end always @(m) if (m) model=12b000000100000; //模值20 else model=12b000100011001; //模值119 assign gw=q[3:0]; assign sw=q[7:4]; assign bw=q[11:8]; always @(posedge clk1,negedge rst) begin if (!rst) q=0; else if (en) begin if (qmodel) begin if (gw==9) begin q=q+7; if (sw==9) q=q+96; end //BCD调整 else q=q+1; end else q=0; end end al

文档评论(0)

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

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

1亿VIP精品文档

相关文档