• 方案介绍
  • 相关推荐
申请入驻 产业图谱

两位全加器 FPGA 设计 VHDL Quartus

06/25 11:48
23
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

名称:两位全加器 FPGA 设计 VHDL Quartus

软件:Quartus

语言:VHDL

开发板/平台:Cyclone IV FPGA开发板

功能介绍

本设计实现一个两位全加器 FPGA 工程,使用 VHDL 语言在 Quartus 环境下完成。电路支持两个 2 位二进制输入 a、b,以及一个低位进位输入 cin,输出 2 位求和结果 sum 和最终进位 cout,可用于验证二进制加法器的基本工作原理。

设计内容覆盖半加器一位全加器和两位全加器三个层次。半加器用于完成最基础的一位无进位加法;一位全加器在半加器基础上加入进位输入;两位全加器再通过两个一位全加器级联,实现从低位到高位的进位传递。整体结构适合 EDA 技术课程实验、期末设计、Quartus 入门工程和 FPGA 基础组合逻辑练习。

工程包含 Quartus 项目文件、VHDL 源码、仿真相关文件和管脚约束文件,能够用于代码学习、编译综合、功能仿真以及开发板下载验证。对于需要完成“两位全加器,其中半加器用代码实现”这一类题目的用户,该设计具有较直接的参考价值。

运行环境

开发语言:VHDL

开发软件:Quartus

工程目标:两位全加器 FPGA 设计、编译、仿真与开发板验证

适用方向:EDA 课程设计、组合逻辑实验、FPGA 基础入门、加法器结构化设计练习

设计思路

设计采用结构化建模思路完成两位全加器。最底层先实现半加器 half_adder,利用异或逻辑得到本位和 sum,利用与逻辑得到进位 carry。半加器只处理两个一位输入,不包含进位输入,逻辑关系直观,便于单独仿真和检查。

在半加器基础上构建一位全加器 full_adder。一位全加器由两个半加器和一个或逻辑组成:第一个半加器完成 a 与 b 的相加,第二个半加器再将中间和与 cin 相加,两个半加器产生的进位通过或逻辑合成为 cout。这种写法符合数字电路中全加器的经典实现方式,层次关系清楚,也便于课程设计答辩时说明电路组成。

顶层 two_bit_full_adder 使用两个一位全加器级联实现两位二进制加法。低位全加器处理 a(0)、b(0)、cin,输出 sum(0) 和内部进位 carry_internal;高位全加器处理 a(1)、b(1) 以及低位传来的进位,输出 sum(1) 和最终 cout。通过这种级联方式,可以完整体现多位加法器的进位传递过程。

模块结构

顶层模块:two_bit_full_adder,定义 2 位输入 a、b,进位输入 cin,2 位输出 sum 和最终进位 cout。

子模块 full_adder:一位全加器模块,接收 a、b、cin,输出 sum、cout,由两个 half_adder 组合实现。

子模块 half_adder:半加器模块,完成两个一位输入的异或求和与与逻辑进位输出。

主要工程文件包括 two_bit_full_adder.vhd、full_adder.vhd、half_adder.vhd、two_bit_full_adder.qpf 和 two_bit_full_adder.qsf。

开发板验证

工程包含 two_bit_full_adder.qsf 管脚约束文件,并已生成 Quartus 编译输出文件,可用于 Cyclone IV FPGA 开发板下载验证。两位全加器的输入 a[1:0]、b[1:0] 和 cin 可绑定到开发板开关或按键,输出 sum[1:0] 与 cout 可绑定到 LED 等显示资源,用于观察两位二进制加法结果和最终进位。

硬件验证重点是检查低位加法进位能否正确传递到高位:当低位 a(0)、b(0)、cin 产生进位时,高位 full_adder 应接收内部进位 carry_internal,并影响 sum(1) 与 cout。该设计结构清晰,适合作为 EDA 课程中“管脚绑定和下载验证”环节的参考工程。

仿真图/仿真说明/设计文档图片

工程包含半加器与两位全加器相关仿真文件,可用于在 Quartus/仿真流程中观察输入组合变化时 sum、carry、cout 等信号的响应关系。仿真验证重点包括半加器的异或求和、与逻辑进位,以及两位全加器中低位进位向高位传递后的输出变化。

设计文档内容覆盖题目要求、工程建立、半加器代码设计、两位全加器代码设计、仿真说明、管脚绑定和硬件下载验证等部分,适合作为课程实验报告或期末 EDA 设计说明的参考。

两位全加器 FPGA 设计 VHDL Quartus 设计文档图片 image1.png

两位全加器 FPGA 设计 VHDL Quartus 设计文档图片 image2.png

两位全加器 FPGA 设计 VHDL Quartus 设计文档图片 image3.png

两位全加器 FPGA 设计 VHDL Quartus 设计文档图片 image4.png

两位全加器 FPGA 设计 VHDL Quartus 设计文档图片 image5.png

两位全加器 FPGA 设计 VHDL Quartus 设计文档图片 image6.png

两位全加器 FPGA 设计 VHDL Quartus 设计文档图片 image1.png

两位全加器 FPGA 设计 VHDL Quartus 设计文档图片 image10.png

两位全加器 FPGA 设计 VHDL Quartus 设计文档图片 image11.png

两位全加器 FPGA 设计 VHDL Quartus 设计文档图片 image12.png

两位全加器 FPGA 设计 VHDL Quartus 设计文档图片 image13.png

两位全加器 FPGA 设计 VHDL Quartus 设计文档图片 image2.png

两位全加器 FPGA 设计 VHDL Quartus 设计文档图片 image3.png

两位全加器 FPGA 设计 VHDL Quartus 设计文档图片 image4.png

两位全加器 FPGA 设计 VHDL Quartus 设计文档图片 image5.png

两位全加器 FPGA 设计 VHDL Quartus 设计文档图片 image6.png

两位全加器 FPGA 设计 VHDL Quartus 设计文档图片 image7.png

两位全加器 FPGA 设计 VHDL Quartus 设计文档图片 image8.png

两位全加器 FPGA 设计 VHDL Quartus 设计文档图片 image9.png

两位全加器 FPGA 设计 VHDL Quartus 设计文档图片 image1.png

两位全加器 FPGA 设计 VHDL Quartus 设计文档图片 image10.png

两位全加器 FPGA 设计 VHDL Quartus 设计文档图片 image2.png

两位全加器 FPGA 设计 VHDL Quartus 设计文档图片 image3.png

两位全加器 FPGA 设计 VHDL Quartus 设计文档图片 image4.png

两位全加器 FPGA 设计 VHDL Quartus 设计文档图片 image5.png

两位全加器 FPGA 设计 VHDL Quartus 设计文档图片 image6.png

两位全加器 FPGA 设计 VHDL Quartus 设计文档图片 image7.png

两位全加器 FPGA 设计 VHDL Quartus 设计文档图片 image8.png

两位全加器 FPGA 设计 VHDL Quartus 设计文档图片 image9.png

部分代码

以下展示顶层模块 two_bit_full_adder 的部分代码,完整源码请下载压缩包查看。

entity two_bit_full_adder is
    Port (
        a    : in  STD_LOGIC_VECTOR(1 downto 0);
        b    : in  STD_LOGIC_VECTOR(1 downto 0);
        cin  : in  STD_LOGIC;
        sum  : out STD_LOGIC_VECTOR(1 downto 0);
        cout : out STD_LOGIC
    );
end two_bit_full_adder;

代码文件(付费下载)

相关推荐