第四章VerilogHDL设计初步习题.pptVIP

  1. 1、本文档共27页,可阅读全部内容。
  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文档。上传文档
查看更多
第四章VerilogHDL设计初步习题

第4章  Verilog HDL设计初步 ;习 题 ;习 题 ;4-4 举例说明,为什么使用条件叙述不完整的条件句能导致产生时序模块的综合结果? 答:● 当CLK发生了电平变化,但是从1变到0。这时无论D是否变化,都将启动过程去执行if语句;但此时CLK=0,无法执行if语句,从而无法执行赋值语句Q=D,于是Q只能保持原值不变(这就意味着需要在设计模块中引入存储元件)。 ● 当CLK没有发生任何变化,且CLK一直为0,而敏感信号D发生了变化。这时也能启动过程,但由于CLK=0,无法执行if语句,从而也就无法执行赋值语句Q=D,导致Q只能保持原值(这也意味着需要在设计模块中引入存储元件)。 在以上两种情况中,由于if语句不满足条件,于是将跳过赋值表达式Q=D,不执行此赋值表达式而结束if语句和过程.对于这种语言现象,Velilog综合器解释为,对于不满足条件,跳过赋值语句Q=D不予执行,即意味着保持Q的原值不变(保持前一次满足if条件时Q被更新的值)。对于数字电路来说,当输入改变后试图保持一个值不变,就意味着使用具有存储功能的元件,就是必须引进时序元件来保存Q中的原值,直到满足if语句的判断条件后才能更新Q中的值,于是便产生了时序元件。 ;4-5 用Verilog设计一个3-8译码器,要求分别用case语句和if_else语句。比较这两种方式。; 4-5 用Verilog设计一个3-8译码器,要求分别用case语句和if_else语句。比较这两种方式。; 4-5 用Verilog设计一个3-8译码器,要求分别用case语句和if_else语句。比较这两种方式。;//测试文件,??部分请根据被测试的文件修改 module stimulus; reg [2:0]A ; wire[7:0]Y ; reg G1 ,G2 ,G3; decoder3_8 DUT ( G1 ,Y ,G2 ,A ,G3 ); initial begin $monitor($time,A=%d,G1=%b,G2=%b, G3=%b,Y= %d\n,A, G1, G2, G3, Y); end;习 题 ;习 题 ;x;习 题;4-9 把例4-21改成一异步清0,同步时钟使能和异步数据加载型8位二进制加法计数器。;习 题 ;module CNT10(CLK,RST,EN,COUT,DOUT,DATA); input CLK,RST,EN; //时钟,时钟使能,复位,数据加载控制信号输入口 input[3:0]DATA; // 4位并行加载数据输入口 output[3:0]DOUT; //计数数据输出信号口 output COUT; //计数进位输出 reg FULL; wire LD ; reg[3:0] Q1; always @(posedge CLK or posedge LD or negedge RST) //时序过程 begin if(!RST)begin Q1=0;FULL=0;end else if(LD) begin Q1=DATA;FULL=1;end else if(EN)begin Q1=Q1+1;FULL=0;end end assign LD=(Q1==4B0000); assign DOUT=Q1; //将内部寄存器的计数结果输出至DOUT assign COUT=FULL; //输出进位标志0 endmodule ;module CNT16(CLK,RST,EN,COUT,DOUT,DATA); input CLK,RST,EN; //时钟,时钟使能,复位,数据加载控制信号输入口 input[15:0]DATA; // 4位并行加载数据输入口 output[15:0]DOUT; //计数数据输出信号口 output COUT; //计数进位输出 reg FULL; wire LD ; reg[15:0] Q1; always @(posedge CLK or posedge LD or negedge RST) //时序过程 begin if(!RST)begin Q1=0;FULL=0;end else if(LD) begin Q1=DATA;FULL=1;end else if(EN)begin Q1=Q1+1;FULL=0;end end assi

文档评论(0)

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

分享好文档!

1亿VIP精品文档

相关文档