当前位置: 首页 > article >正文

FPGA学习(一) —— 四位全加器

FPGA学习(一) —— 四位全加器

文章目录

  • FPGA学习(一) —— 四位全加器
    • 一、半加器
      • 1、半加器的真值表
      • 2、Verilog代码实现
      • 3、RTL原理图
      • 4、波形仿真
    • 二、一位全加器
      • 1、一位全加器真值表
      • 2、Verilog代码实现
      • 3、RTL原理图
      • 4、波形仿真
    • 三、四位加法器
      • 1、创建工程
      • 2、创建Verilog文件
      • 3、Verilog代码实现
      • 3、保存并编译
      • 4、RTL原理图
      • 5、波形仿真
      • 5、引脚配置
      • 6、下载
      • 7、结果

一、半加器

1、半加器的真值表

输出a输入b输出个位(s)输出十位©
0000
0110
1010
1101

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
00000
00110
01010
01101
10010
10101
11001
11111

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


http://www.kler.cn/a/570127.html

相关文章:

  • 数据挖掘工程师的技术图谱和学习路径
  • 中间件专栏之MySQL篇——MySQL的索引原理
  • 【架构】信息系统战略规划的三阶段演进及核心方法
  • 通过多线程同时获取H264和H265码流
  • scala基础学习-匹配模式
  • Kettle 最常见的性能优化面试题
  • 计算机网络——因特网和互联网
  • 【AI论文】MedVLM-R1:通过强化学习激励视觉语言模型(VLMs)的医疗推理能力
  • 鸿蒙5.0实战案例:基于hvigor插件定制构建
  • 深入探索像ChatGPT这样的大语言模型-01-Base Model-Pretraining阶段
  • ArcGIS Pro应用指南:如何为栅格图精确添加坐标信息
  • 拓扑排序_走多远
  • SQL Server下载和安装细节
  • 4.Linux操作系统命令
  • Microk8s Ingress实现七层负载均衡
  • 玩转ChatGPT:Claude 3.7 Sonnet进行数据分析(分类)
  • 如何评估大语言模型(LLMs)
  • LLM - Attention Is All You Need 的理解
  • C++ 二叉树代码
  • SQL 中为什么参数多了not in 比 in 慢多了,怎么优化