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

相关推荐
斯维赤32 分钟前
AI Agent学习之路 | Prompt Engineering(提示词工程)的三板斧核心技巧
人工智能·学习·prompt
2301_802651083 小时前
imx6ull裸机开发:UART
学习
FPGA小迷弟3 小时前
FPGA 应用技术能力的完整闭环(1-4)
fpga开发·dsp开发·fpga·sdr·无线电
辣知3 小时前
辣知·化智56 良渚神权与夏朝颠覆
学习
dadaobusi4 小时前
学习:三层交换机
学习
笨鸟先飞的橘猫4 小时前
树结构在游戏行业中的应用
学习·游戏
Eloudy5 小时前
FPGA 开发与 IC 数字前端设计
fpga开发
yangmu32035 小时前
从显像管到Micro-LED:屏幕的光之进化
学习·显示器
半生过往6 小时前
前端工程师学习智能体开发(一)
前端·学习·状态模式
tju新生代魔迷7 小时前
Verilog HDL 学习笔记(十八)| 附录C:关键字、系统任务和编译指令
fpga开发