FPGA学习(一) —— 四位全加器

FPGA学习(一) ------ 四位全加器

文章目录

一、半加器

1、半加器的真值表

输出a 输入b 输出个位(s) 输出十位©
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1

2、Verilog代码实现

复制代码
module one_bit_adder (
	input wire a,
	input wire b,
	output wire c,
	output wire s
);
	
	assign s = a ^ b;//个位
	assign c = a & b;//十位
	
endmodule 

3、RTL原理图

4、波形仿真

二、一位全加器

1、一位全加器真值表

输入 A 输入 B 进位输入 Cin 输出和 Sum 进位输出 Cout
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1

2、Verilog代码实现

复制代码
module full_adder(
	input A,
	input B,
	input Cin,//进位
	output sum,//个位
	output cout//十位 
);
	assign sum = A ^ B ^ Cin;
	assign cout = (A & B) | (Cin & ( A ^ B ) );

endmodule 

3、RTL原理图

4、波形仿真

三、四位加法器

1、创建工程

2、创建Verilog文件

3、Verilog代码实现

复制代码
module full_add_4(a, b, cin, cout, sum);

    // 输入信号,a 和 b 是 4 位宽的输入,表示两个 4 位二进制数
    input [3:0] a, b; // a[3] 是最高位,a[0] 是最低位
    input       cin;  // 进位输入,表示来自低位的进位

    // 输出信号,sum 是 4 位宽的输出,表示 a 和 b 的和
    output [3:0] sum;
    // 输出信号,cout 是 1 位宽的输出,表示向高位的进位
    output       cout;

    // 使用连续赋值语句计算 a + b + cin 的结果
    // {cout, sum} 表示将进位 cout 和和 sum 拼接成一个 5 位的结果
    // a + b + cin 的结果会自动扩展到 5 位,其中最高位是进位 cout,低 4 位是和 sum
    assign {cout, sum} = a + b + cin;

endmodule

3、保存并编译

4、RTL原理图

5、波形仿真

5、引脚配置

1)输入引脚

2)输出引脚

3)设置引脚

6、下载


7、结果

FPGA实现4位全加器

相关推荐
2303_Alpha4 天前
SpringBoot
笔记·学习
萘柰奈4 天前
Unity学习----【进阶】TextMeshPro学习(三)--进阶知识点(TMP基础设置,材质球相关,两个辅助工具类)
学习·unity
沐矢羽4 天前
Tomcat PUT方法任意写文件漏洞学习
学习·tomcat
好奇龙猫4 天前
日语学习-日语知识点小记-进阶-JLPT-N1阶段蓝宝书,共120语法(10):91-100语法+考え方13
学习
向阳花开_miemie4 天前
Android音频学习(十八)——混音流程
学习·音视频
工大一只猿4 天前
51单片机学习
嵌入式硬件·学习·51单片机
风_峰4 天前
Ubuntu Linux SD卡分区操作
嵌入式硬件·ubuntu·fpga开发
c0d1ng4 天前
量子计算学习(第十四周周报)
学习·量子计算
FPGA_Linuxer4 天前
FPGA 40 DAC线缆和光模块带光纤实现40G UDP差异
网络协议·fpga开发·udp
Hello_Embed4 天前
STM32HAL 快速入门(二十):UART 中断改进 —— 环形缓冲区解决数据丢失
笔记·stm32·单片机·学习·嵌入式软件