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位全加器

相关推荐
凉、介9 小时前
Armv8-A virtualization 笔记 (二)
笔记·学习·嵌入式·arm·gic
JoneBB10 小时前
ABAP Webservice连接
运维·开发语言·数据库·学习
嵌入式小企鹅11 小时前
UiPath推出AI编程“总指挥台”,SiFive发布RISC-V第三代猛兽
人工智能·学习·google·程序员·ai编程·risc-v·开源工具
Ada大侦探12 小时前
新手小白学习数据分析03----Excel 报表之大厂周报(2026最新版实操,包教包会!)
学习·数据分析·excel
Coder-hong12 小时前
TopJTAG Probe连接zynq
fpga开发
-To be number.wan13 小时前
进程与线程的区别
学习·操作系统
llhm13 小时前
tsp学习笔记——LINUX SDK编译2(2)Kernel6.1 Linux
linux·笔记·学习
李白不吃坚果15 小时前
沟道电荷的思考
学习·cmos·集成电路·模拟集成电路设计·沟道电荷
学会870上岸华师15 小时前
C 语言程序设计——第一章课后编程题
c语言·开发语言·学习·算法
nashane15 小时前
HarmonyOS 6学习:AI攻略长截图“防抖”与像素级拼接术
学习·华为·harmonyos