问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

FPGA入门:从半加器到四位全加器的设计与实现

创作时间:
作者:
@小白创作中心

FPGA入门:从半加器到四位全加器的设计与实现

引用
CSDN
1.
https://blog.csdn.net/qq_73050400/article/details/145999527

本文将从基础的半加器开始,逐步介绍一位全加器和四位全加器的设计原理和Verilog代码实现。通过本文的学习,读者将能够掌握FPGA设计中的基本加法器电路,并能够进行实际的代码编写和仿真验证。

一、半加器

1、半加器的真值表

半加器是最简单的加法器,用于计算两个一位二进制数的和。其真值表如下:

输入a
输入b
输出个位(s)
输出十位(c)
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原理图

波形仿真图缺失

三、四位加法器

四位加法器由多个一位全加器级联而成,可以实现两个四位二进制数的加法运算。

1、创建工程

在FPGA开发环境中创建一个新的工程。

2、创建Verilog文件

在工程中创建一个新的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

4、RTL原理图

5、波形仿真

波形仿真图缺失

6、引脚配置

1)输入引脚

2)输出引脚

3)设置引脚

7、下载

将编译后的比特流文件下载到FPGA开发板上。

8、结果

通过FPGA实现的四位全加器可以正确完成两个四位二进制数的加法运算。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号