HDL刷题 Exams/m2014 q4j

1.原题

补充:Ripple carry adder :行波进位加法器 又称为逐位进位加法器
在这里插入图片描述

2.解答

方法1:当时拿着这道题,就想到的是利用 直接相加的方法来做
本质上是因为verilog中,如果 x+y产生了进位,那么verilog的语法会自动将x+y扩展成5位数。
在这里插入图片描述
方法2:利用生成块方法:
需要注意的地方:生成块里面的generate endgenerate中的begin end 必须要使用一个名称来称呼在这里插入图片描述
在网上看到的其他方法:
1.采用实例化模块的方式进行的:

   module top_module (
    input [3:0] x,
    input [3:0] y, 
    output [4:0] sum);
    wire cout0,cout1,cout2;
    fadd U1(x[0],y[0],0,cout0,sum[0]);
    fadd U2(x[1],y[1],cout0,cout1,sum[1]);
    fadd U3(x[2],y[2],cout1,cout2,sum[2]);
    fadd U4(x[3],y[3],cout2,sum[4],sum[3]);
endmodule
 
module fadd ( 
    input a, b, cin,
    output cout, sum );
    assign {cout,sum} = a + b + cin;
 
endmodule
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值