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

相关推荐
LabVIEW开发31 分钟前
LabVIEW FPGA 编程:少编译几次的办法(系列 04/05)
fpga开发·labview
橙橙笔记2 小时前
QT的学习第四部分
linux·qt·学习·音视频
叼烟扛炮2 小时前
Linux 学习笔记(五十四):内网穿透实战——用 frp 让外网访问你的私人电脑
linux·服务器·网络·笔记·学习
在猴站学算法2 小时前
(《统计学习方法》(第2版) 李航)第2章 感知机算法
学习·算法·机器学习·统计学习
旖旎夜光2 小时前
【C++ 基础入门】C++ 继承(上):概念、切片、隐藏、默认成员函数与友元
c++·笔记·学习
Godspeed Zhao2 小时前
从零开始学AI24——无监督学习之K均值
学习·机器学习
叼烟扛炮3 小时前
[LangChain] 学习笔记(05):提示词模板(Prompt)与少样本注入(Few-Shot)实战
linux·人工智能·笔记·学习·langchain·prompt
cmc102811 小时前
318.关于在ip内部封装PLL,MMCM的注意事项
fpga开发
LabVIEW开发14 小时前
LabVIEW CompactRIO 编程模式怎么选(系列 02/05)
fpga开发·labview
La Pulga15 小时前
【FreeRTOS源码学习笔记】任务延时列表
笔记·mcu·学习·嵌入式·freertos·实时操作系统