数字逻辑电路基础-组合逻辑电路之加法器

文章目录

    • 一、加法器
    • 二、verilog源码
    • 三、综合及仿真结果


一、加法器

本文介绍数字逻辑电路中常用的基础组合逻辑电路加法器。它是处理器内部ALU算术逻辑单元的基础构件。

加法器定义

最常见加法器有半加器及全加器,区别在于全加器考虑了低位进位情况。

半加器的门级电路如下:
数字逻辑电路基础-组合逻辑电路之加法器_第1张图片
半加器真值表如下:
输入 输出
A B C S
0 0 0 0
1 0 0 1
0 1 0 1
1 1 1 0

半加器的逻辑表达式如下:
S = A xor B
C = A and B

全加器的门级电路如下:
全加器门级电路
全加器真值表如下:
输入 输出
A B Cin Cout S
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1

全加器的逻辑表达式如下:
S = A xor B xor Cin
Cout = (A and B) or ((A xor B) and Cin)


二、verilog源码

// half adder

module half_adder(a, b, s, cout);

   input a, b;
   output s, cout;

   assign s = a ^ b;
   assign cout = a & b;
   
endmodule // half_adder

// full_adder
module full_adder(a, b, cin, s, cout);

   input a, b, cin;
   output s, cout;

   assign s = a ^ b ^ cin;
   assign cout = (a & b) | ((a ^ b) & cin);
endmodule // full_adder


	

三、综合及仿真结果

本文使用的综合工具为quartus13.1,软件的使用请搜索相关教程。综合生成的RTL层次网表如下,可以看出它生成的门级电路和上面的图相同。
数字逻辑电路基础-组合逻辑电路之加法器_第2张图片

仿真结果如下:

数字逻辑电路基础-组合逻辑电路之加法器_第3张图片

你也可以试着修改上述的输入值或者添加更多的输入值进行试验,观察仿真结果是否和你预期的一致!


转载请注明出处!

你可能感兴趣的:(数字电路,fpga开发)