Verilog基础之三、减法器实现

目录

一、减法器

二、减法器实现

2.1 工程代码

2.2 综合结果


一、减法器

    ​减法器的实现与加法器类似,根据是否考虑借位分为半减器和全减器。

二、减法器实现

2.1 工程代码

 设计2个4位数的减法器,包括全减器和半减器,同时分别采用always和assign语句来实现。

module substract( a,b,ci,co,co_half,subs_half,subs );
input [3:0] a,b;
input ci;  //借位标志
output reg [3:0] subs;
output reg co;   //借位输出
output co_half;
output [3:0] subs_half;
assign {co_half,subs_half}=a-b;  //半器
always@(*)    //全减器
begin
{co,subs}=a-b-ci;
end
endmodule

对于N位的减法,可以通过定义一个参数N,需要修改位数时,只需修改N的值即可

module substract( a,b,ci,co,co_half,subs_half,subs );
parameter N=6;   //数据位宽为N,此处N为6
input [N-1:0] a,b;
input ci;  //借位标志
output reg [N-1:0] subs;
output reg co;   //借位输出
output co_half;
output [N-1:0] subs_half;
assign {co_half,subs_half}=a-b;  //半器
always@(*)    //全减器
begin
{co,subs}=a-b-ci;
end
endmodule

2.2 综合结果

对比加法器和半加器综合图,可见二者使用的资源一致,差异点为LUT的INIT值不同。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值