Verilog HL数字设计与综合(第二版) 第六章课后习题答案.docVIP

Verilog HL数字设计与综合(第二版) 第六章课后习题答案.doc

  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文档。上传文档
查看更多
Verilog HL数字设计与综合(第二版) 第六章课后习题答案

1.一个全减器具有三个一位输入:x,y和z(前面的借位),两个一位输出D(差)和B(借位)。计算D和B的逻辑等式如下所示: D = x’( y’( z’ + x’( y ( z’ + x ( y’( z’ + x ( y ( z B = x’( y + x’( z + y ( z 根据上面的定义写出Verilog描述,包括I/O端口(注意:逻辑等式中的+对应于数据流建模中的逻辑或(| |)操作符)。编写激励块,在模块中实例引用全减器。对x,y和z这三个输入的8种组合及其对应的输出进行测试。 x y z B D 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 0 1 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1 答:代码及测试激励如下:(D 应该= x’( y’( z + x’( y ( z’ + x ( y’( z’ + x ( y ( z) `timescale 1ns/1ns module full_sub(x,y,z,D,B); input x,y,z; output D,B; assign D=((!x)(!y)(z))||((!x)y(!z))||(x(!y)(!z))||(xyz); assign B=((!x)y)||((!x)z)||(yz); endmodule module test61; reg x,y,z; wire D,B; initial begin x=0;y=0;z=0; #10 x=0;y=0;z=1; #10 x=0;y=1;z=0; #10 x=0;y=1;z=1; #10 x=1;y=0;z=0; #10 x=1;y=0;z=1; #10 x=1;y=1;z=0; #10 x=1;y=1;z=1; #10 $stop; end full_sub fsubtracter(x,y,z,D,B); initial $monitor($time,x= %b,y= %b,z= %b,B= %b,D= %b,x,y,z,B,D); endmodule 最终输出观测结果: # 0x= 0,y= 0,z= 0,B= 0,D= 0 # 10x= 0,y= 0,z= 1,B= 1,D= 1 # 20x= 0,y= 1,z= 0,B= 1,D= 1 # 30x= 0,y= 1,z= 1,B= 1,D= 0 # 40x= 1,y= 0,z= 0,B= 0,D= 1 # 50x= 1,y= 0,z= 1,B= 0,D= 0 # 60x= 1,y= 1,z= 0,B= 0,D= 0 # 70x= 1,y= 1,z= 1,B= 1,D= 1 2.大小比较器的功能是比较两个数之间的关系:大于、小于或等于。一个四位大小比较器的输入是两个四位数A和B。我们可以将它们写成下面的形式,最左边的位为最高有效位: A =A(3) ( A(2) ( A(1) ( A(0) B =B(3) ( B(2) ( B(1) ( B(0) 两个数的比较可以从最高有效位开始,逐位进行。如果两个位不相等,则该位值为0的数为较小的数。为了用逻辑等式实现这个功能,我们需要定义一个中间变量x。注意下面实现的是同或(xnor)的功能。 x (i) = A(i) ( B (i) + A (i)’ ( B (i)’ 大小比较器的三个输出为:A_gt_B,A_lt_B和A_eq_B。其计算公式为: A_gt_B = A(3) ( B(3)’ + x(3) ( A(2) ( B(2)’ + x(3) ( x(2) ( A(1) ( B(1)’ + x(3) ( x(2) ( x(1) ( A(0) ( B(0)’ A_lt_B = A(3)’ ( B(3) + x(3) ( A(2)’( B(2) + x(3) ( x(2) ( A(1)’ ( B(1) + x(3) ( x(2) ( x(1)( A(0)’( B(0) A_eq_B = x (3) ( x (2) ( x (1) ( x (0) 写出模块magnitude_comparator的Verilog描述。写出激励模块并在模块中实例引用magnitude_ comparator模块。选择A和B的几种组合,对模块的功能进行测试。 答:代码以及测试激励: `timescale 1ns/1n

文档评论(0)

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

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

1亿VIP精品文档

相关文档