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

相关推荐
hh95016 小时前
Agent Plan x DeepSeek Harness — Token 预算管理与成本追踪体系技术
人工智能·学习·adg·火山引擎·adg成都社区
丰锋ff17 小时前
基于 Qt 的智能门禁系统
qt·学习
小小帅呀17 小时前
学习 VLA 第 2 天:深度学习基础
人工智能·深度学习·学习
具身AGI17 小时前
人类第一视角数据走上评测台:物理AI 人类学习路线
学习
dadaobusi18 小时前
5G核心网概念复习
学习
慧福堂19 小时前
偏印详解:十神中的智慧与孤影,如何善用偏印成就人生
大数据·学习·学习方法·八字·风水
2601_9499506319 小时前
成绩提升不靠盲目刷题:用练题簿找准真正的薄弱知识点
学习·小程序·刷题·小程序推荐
步十人19 小时前
DeepRead-项目介绍
学习
unicrom_深圳市由你创科技19 小时前
国产FPGA的芯片选型应该考虑哪些因素?
fpga开发
YM52e19 小时前
鸿蒙 ArkTS 实战|网络常用漫剧主角名称分类表:26 位主角 8 大分类 + 搜索筛选
学习·华为·harmonyos