news 2026/7/24 14:00:47

16位二进制加法器 Verilog Quartus

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
16位二进制加法器 Verilog Quartus

名称:16位二进制加法器 Verilog Quartus

软件:Quartus

语言:Verilog

功能介绍

该工程实现一个16位二进制加法器,支持两个16位输入数据adder_A和adder_B,以及1位输入进位CIN。运算结果通过16位输出S给出,同时由COUT输出最高位进位,能够覆盖带进位输入的常规无符号多位加法场景。 设计没有直接以单一表达式完成全部运算,而是由4个4位加法器级联构成。每一级负责连续的4位数据计算,并将本级产生的进位传递至下一级,因此可以直观观察从低位到高位的进位传播过程。顶层模块接口简洁,既可作为组合逻辑设计练习,也可作为更大算术运算单元中的基础模块。 工程包含Quartus工程配置、Verilog源文件以及ModelSim RTL仿真相关文件。对于需要理解层次化组合逻辑、子模块例化和位选切片连接的学习者,本设计具有直接的参考价值。

运行环境

开发语言:Verilog。 工程适用于Quartus,工程文件包含adder_16.qpf与adder_16.qsf,可用于查看、编译和管理设计。仿真部分提供ModelSim RTL工作库、仿真执行脚本和波形配置文件,可作为RTL功能仿真的工程参考。

设计思路

本设计采用层次化的串行进位结构实现16位二进制加法。顶层将16位操作数按位段划分为4组,每组交由一个4位加法器完成局部加法;低位加法器产生的进位依次传递到更高位加法器,最终得到16位和S及最高位进位COUT。 这种实现方式把16位运算拆分为可复用的4位基本单元,信号路径和模块职责清晰。输入端adder_A、adder_B分别提供两个16位操作数,CIN作为初始进位参与最低4位计算;CIN_1、CIN_2、CIN_3用于连接四级4位加法器,S_signal汇总各段和结果后输出到S。该工程适合学习多位加法器的模块化设计、端口连接方式以及进位级联关系。

模块结构

顶层模块为adder_16,端口包括16位输入adder_A、adder_B,输入进位CIN,16位和输出S以及输出进位COUT。 内部模块adder_4bit被例化4次:i1_adder_4bit处理adder_A[3:0]与adder_B[3:0],i2_adder_4bit处理[7:4]位,i3_adder_4bit处理[11:8]位,i4_adder_4bit处理[15:12]位。CIN、CIN_1、CIN_2、CIN_3依次构成级联进位链,各级结果分别写入S_signal对应的4位区间,最后统一输出S和COUT。

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

工程提供adder_16_vlg_tst测试平台及ModelSim RTL仿真配置,包括仿真执行脚本、wave.do波形配置和仿真工作库文件。可在ModelSim环境中加载顶层设计与测试平台,观察两个16位输入、输入进位、16位和及输出进位之间的时序变化,并核对四级4位加法器的进位级联关系。

部分代码

以下展示顶层模块adder_16的部分代码,完整代码可关注下方公众号卡片获取。

module adder_16(adder_A, adder_B, CIN, COUT, S); input [15:0] adder_A;//输入A input [15:0] adder_B;//输入B input CIN;//输入进位 output COUT;//输出进位 output [15:0] S;//输出和 //定义中间进位 wire CIN_1; wire CIN_2; wire CIN_3; wire COUT_signal; wire [15:0] S_signal; assign COUT = COUT_signal;//输出进位 assign S = S_signal;//输出和 //调用4位加法器 adder_4bit i1_adder_4bit ( .A(adder_A[3:0]), .B(adder_B[3:0]), .CIN(CIN), .COUT(CIN_1), .S(S_signal[3:0]) ); //调用4位加法器 adder_4bit i2_adder_4bit ( .A(adder_A[7:4]), .B(adder_B[7:4]), .CIN(CIN_1), .COUT(CIN_2), .S(S_signal[7:4]) ); //调用4位加法器 adder_4bit i3_adder_4bit ( .A(adder_A[11:8]), .B(adder_B[11:8]), .CIN(CIN_2), .COUT(CIN_3), .S(S_signal[11:8]) ); //调用4位加法器 adder_4bit i4_adder_4bit ( .A(adder_A[15:12]), .B(adder_B[15:12]), .CIN(CIN_3), .COUT(COUT_signal), .S(S_signal[15:12]) ); endmodule

代码获取:下方公众号
“FPGA代码设计学习资料”

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/24 13:57:43

适配 Microsoft 365 的内联邮件安全架构部署与风险防控研究

摘要 云办公普及背景下,Microsoft 365 已成为企业主流邮件协作载体,第三方邮件安全网关的接入方式直接决定整体邮件防护能力。当前企业普遍存在两类部署模式:内联前置检测架构与后置 API 查杀架构,二者在邮件流处理时序、认证完整…

作者头像 李华
网站建设 2026/7/24 13:57:42

把喇叭贴在麦克风边上,还能全双工通话?——AU-60把“不可能”变成了“常规操作”

——硬件工程师与音频算法工程师的“减负”利器在嵌入式音频产品的研发中,我们常常陷入这样的困境:麦克风拾音距离不够、喇叭音量一大就啸叫、环境噪声比人声还突出、结构受限导致麦克风和喇叭无法物理隔离……这些问题往往不是靠换一颗Codec或调一版EQ就…

作者头像 李华
网站建设 2026/7/24 13:57:26

零基础用户必看:5款大模型工具实战指南

1. 大模型工具入门指南:零基础用户必备利器作为一名长期跟踪AI技术发展的从业者,我经常遇到非技术背景的朋友询问:"大模型听起来很厉害,但我完全不会编程,该怎么上手?"这促使我整理了这份完全面向…

作者头像 李华
网站建设 2026/7/24 13:55:24

AI API 中转别只看能不能连通,先看第一次调用有没有“回执”

接入 AI API 中转或多模型网关时,很多人只验证“改 base_url 后能不能返回内容”。 但长期项目里,更重要的是第一次真实调用之后有没有可复盘的回执: 实际走的是哪个模型、哪个路由;请求有没有进入日志;token 和余额有…

作者头像 李华
网站建设 2026/7/24 13:52:57

同平台多账号怎么管:会话隔离的正确姿势

同平台多账号怎么管:会话隔离的正确姿势 做内容矩阵时,很多团队以为多账号管理只是"多登几个号"。真正跑起来后,最常见的问题却不是发文命令,而是会话没有隔离:共享 Cookie、默认账号漂移、草稿串号、掉登录…

作者头像 李华
网站建设 2026/7/24 13:52:46

ADS7851EVM-PDK评估套件:一站式双通道同步采样ADC性能验证平台

1. 项目概述与核心价值在精密测量、工业自动化或者医疗成像这类对信号保真度要求极高的领域,工程师们常常面临一个核心挑战:如何精准、同步地捕获多路模拟信号,并将其转换为高质量的数字数据。这不仅仅是选一颗高性能ADC芯片那么简单&#xf…

作者头像 李华