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

文章目录


一、加法器

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

加法器定义

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

半加器的门级电路如下:

半加器真值表如下:

输入 输出

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源码

c 复制代码
// 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层次网表如下,可以看出它生成的门级电路和上面的图相同。

仿真结果如下:

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


转载请注明出处!

相关推荐
szxinmai主板定制专家18 小时前
Zynq MPSoC半导体高精度运动控制方案|FPGA硬件插补实现亚微米级伺服实时控制
人工智能·嵌入式硬件·fpga开发·zynq·运动控制·ethercat
星夜离尘562 天前
ILA 在线调试:Vivado 抓取片内信号与定位下板问题(附完整实操)
fpga开发
jz_ddk2 天前
[学习] 深入理解 USB 通信与 FPGA 实现:从协议到逻辑设计
学习·fpga开发·xilinx·usb2.0
星夜离尘562 天前
PWM 信号生成与呼吸灯:占空比控制、按键调光与舵机扩展(附完整 Verilog 实操)
fpga开发
zlinear数据采集卡2 天前
ZLinear DABM-D223 通信协议与软件开发全解析:从 USB CDC 到 DDS 波形输出
arm开发·嵌入式硬件·fpga开发·开源
LCMICRO-133108477463 天前
国产长芯微LD3092完全pin-pin替代LT3092,是一款可编程两端电流源
arm开发·单片机·嵌入式硬件·fpga开发·硬件工程·恒流源·lt3092
nuoxin1143 天前
BL-M8812CU3 无线 WiFi 模块-富利威
人工智能·嵌入式硬件·fpga开发·硬件工程·dsp开发
xiaojiaohuazi3 天前
基于Zynq UltraScale+ MPSoC的PL DDR4直写多NVMe条带阵列(RAID 0)与exFAT高速采集存储系统
fpga开发
ALINX技术博客3 天前
【黑金云课堂】FPGA技术教程Vitis开发:AXI总线
fpga开发·vitis