名称两位全加器 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进位输入 cin2 位输出 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 设计说明的参考。部分代码以下展示顶层模块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;代码获取下方公众号“FPGA代码设计学习资料”