HDLBITS笔记20:adder(以FA命名的加法器题)

本文详细介绍了如何利用四个1位加法器FA构建一个4位加法器的电路设计。通过模块化编程,将FA的逻辑结构与top_module的输入输出连接,并展示了内部加法器的逻辑。重点在于电路的完整性和正确性,以及Quartus II工具的应用。
摘要由CSDN通过智能技术生成

实现以下电路:

(“FA”是一个完整的加法器)

模块声明

module top_module (
    input [3:0] x,
    input [3:0] y, 
    output [4:0] sum);

分析:图中所示的FA是一个1位加法器,图中所给的电路由四个这样的1位加法器组成,sum和输入输出分别连接着对应的位。由模块声明可知:该电路没有画出进位cin和cout,但实际上要有的,否则将会导致结果不正确。要实现上述电路只需要写出FA的描述电路并对其进行模块调用即可。

代码编写如下:

module top_module (
    input [3:0] x,
    input [3:0] y, 
    output [4:0] sum);
    wire [2:0]cout;
    wire cin;
    add1 u1(.x(x[0]),.cin(cin),.y(y[0]),.sum(sum[0]),.cout(cout[0]));
            add1 u2(.x(x[1]),.cin(cout[0]),.y(y[1]),.sum(sum[1]),.cout(cout[1]));
    add1 u3(.x(x[2]),.cin(cout[1]),.y(y[2]),.sum(sum[2]),.cout(cout[2]));
    add1 u4(.x(x[3]),.cin(cout[2]),.y(y[3]),.sum(sum[3]),.cout(sum[4]));
            assign sum = {sum[4],sum[3],sum[2],sum[1],sum[0]};
            
endmodule
//1位加法器
module add1(  x,y,cin, sum,cout);
    input x,y,cin;
    output sum,cout;
    assign sum =x^y^cin;
    assign cout = x&y | (cin&(x^y));
endmodule

使用quartus ii画出逻辑图:

add1的内部逻辑如下图所示:

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值