verilog HDL期末考试.docVIP

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

硬件语言与FPGA期末测试 开课时间: 20~20第学期 学生姓名:班级学号: 硬件语言与FPGA 期末测试 姓 名: 学号: 第一题:计数器设计 设计一个最基本的计数器,功能每个时钟上升沿实现加1的功能。(工程名cnt1+学号后两位)(10) module cnt1_42(CLK,Q); input CLK; output[2:0] Q; reg[2:0] Q1; always@(posedge CLK)begin //实现0-4加法计数 if(Q14) Q1=Q1+1; else Q1=0; end assign Q=Q1; endmodule 对上诉计数器进行功能扩展,要求有复位、数据加载、加减计数选择功能(如有无法实现功能,会适当扣分)(20) module cnt1_42(CLK,RST,LOAD,CHNG,DOUT,COUT,DATA); input CLK,RST,LOAD,CHNG; //CLK为时钟信号,LOAD为数据加载使能, CHN为加减计数选择,COUT为进位 DOUT为输出,DATA为数据加载,RST为复 位 input[2:0] DATA; output[2:0] DOUT; output COUT; reg[2:0] Q=0; reg COUT; always@(posedge CLK or negedge RST)begin if(!RST)Q=0; else if(LOAD)Q=DATA; else if(CHNG)begin if(Q4) Q=Q+1; else Q=0; end else begin if(Q0) Q=Q-1; else Q=0; end end always@(Q) if(Q==3b100) COUT=1; else COUT=0; assign DOUT=Q; endmodule 第二题:分频器设计 设计一个奇数分频器,要求可以通过参数完成任意奇数分频。(工程名div1+学号后两位) module div1_42(CLK,K,k1,k2); parameter M=4; input CLK; output K,k1,k2; reg k1,k2; reg[2:0] Q,S; always@(posedge CLK)begin if(QM) Q=Q+1; else Q=0; end always@(negedge CLK)begin if(SM) S=S+1; else S=0; end always@(Q)begin if(Q2) k1=1; else k1=0; end always@(S)begin if(S2) k2=1; else k2=0; end assign K=k1|k2; endmodule 第三题:状态机设计 使用三段状态机进行控制ADC0809的设计。(工程名sta1+学号后两位)(30) module sta1_42(CLK,ALE,START,OE,ADDA,EOC,LOCK_T,RST,Q,D); input CLK,RST,EOC; input[7:0] D; output[7:0] Q; output ALE,START,OE,ADDA,LOCK_T; reg[7:0] REGL; reg LOCK,ALE,START,OE; reg[4:0] cs,ns; parameter s0=0,s1=1,s2=2,s3=3,s4=4; always@(posedge CLK or posedge RST)begin if(RST) cs=s0; else cs=ns; end always@(posedge LOCK)begin if(LOCK) REGL=D; end always@(cs or EOC)begin case(cs) s0:begin ALE=0;START=0;OE=0;LOCK=0; ns=s1; end s1:begin ALE=1;START=1;OE=0;LOCK=0; ns=s2; end s2:begin ALE=0;START=0;OE=0;LOCK=0; if(EOC) ns=s3; else ns=s2; end s3:begin ALE=0;START=0;OE=1;LOCK=0; ns=s4; end s4:begin ALE=0;START=0;OE=1;LOCK=1;

文档评论(0)

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

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

1亿VIP精品文档

相关文档