16位多级先行进位加法器 FPGA 设计 Verilog Vivado

名称:16位多级先行进位加法器 FPGA 设计 Verilog Vivado

软件:Vivado

语言:Verilog

功能介绍

本设计实现一个16位多级先行进位加法器,用于完成两个16位二进制输入与进位输入的加法运算,输出16位求和结果以及最高位进位输出。设计面向FPGA数字逻辑实验、组合逻辑电路课程设计以及加法器结构学习,重点展示先行进位思想在多位加法运算中的层次化实现方式。 普通串行进位加法器需要等待低位进位逐级传递,位宽增加后组合延迟会随级数增长。该设计将16位加法拆分为多个4位先行进位加法单元,再通过组间先行进位模块统一产生各组进位信号,使组内进位和组间进位都采用并行推导方式,便于理解多级CLA结构相对串行进位结构的优势。 工程包含顶层16位加法模块、4位先行进位加法模块、进位生成/传播逻辑模块、求和模块以及Testbench。可用于查看Verilog层次化例化、组合逻辑连线、Vivado综合结果、RTL结构图、资源消耗、功耗信息和最大延迟分析。

运行环境

开发语言:Verilog 开发软件:Vivado 工程类型:FPGA逻辑设计工程,包含Vivado工程文件、Verilog源代码、Testbench仿真文件以及编译综合相关结果。

设计思路

设计采用“4位组内先行进位 + 16位组间先行进位”的多级结构。顶层模块接收A[15:0]、B[15:0]和Cin,将16位输入按低位到高位划分为4组,每组4位分别送入4位先行进位加法器。每个4位单元不仅输出本组的4位和,还输出组传播信号P和组产生信号G,供上一级组间进位逻辑使用。 组间先行进位模块根据4个4位加法组的P、G以及输入进位Cin,直接计算C[1]到C[4]。其中C[1]作为第2个4位加法器的输入进位,C[2]作为第3个4位加法器的输入进位,C[3]作为第4个4位加法器的输入进位,C[4]作为最终Cout输出。这样可以避免4个4位加法器之间完全串行等待进位传播。 在模块划分上,PU、GU用于产生传播/产生相关信号,SUM用于求和逻辑,CarryLookAheadAdder_4用于构成4位先行进位加法器,CarryLookAhead_4用于完成组间进位推导,MultistageCarryLookAheadAdder_16作为顶层完成16位整体连接。该结构清晰,适合学习从基本门级逻辑到层次化多位运算模块的设计过程。 Testbench用于对加法器输入组合进行仿真验证,配合Vivado仿真波形可观察输入A、B、Cin与输出S、Cout之间的对应关系。文档内容还包含RTL图、综合后原理图、功耗图、资源消耗和最大延迟等结果,便于对设计功能和综合质量进行参考分析。

模块结构

顶层模块:MultistageCarryLookAheadAdder_16 主要子模块包括: PU:传播信号相关逻辑模块。 GU:产生信号相关逻辑模块。 SUM:求和逻辑模块。 CarryLookAheadAdder_4:4位先行进位加法器模块。 CarryLookAhead_4:4组之间的先行进位产生模块。 test:仿真测试模块。 顶层结构由4个CarryLookAheadAdder_4单元组成16位加法数据通路,再通过CarryLookAhead_4生成各4位分组之间的进位信号,最终输出16位求和结果S和进位输出Cout。

演示视频

配套演示视频展示16位多级先行进位加法器工程相关内容,可用于快速了解工程文件、程序编译、Testbench仿真、仿真波形以及相关分析结果的查看过程。

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

设计文档包含工程文件、程序文件、程序编译、Testbench、仿真图、RTL图、综合后原理图、功耗图、资源消耗和最大延迟等内容。可结合Vivado工程查看仿真结果、RTL层次结构、综合后逻辑结构以及资源与时序相关报告,适合作为课程设计说明和工程分析参考。

16位多级先行进位加法器 FPGA 设计 Verilog Vivado 设计文档图片 image9.png

16位多级先行进位加法器 FPGA 设计 Verilog Vivado 设计文档图片 image8.png

16位多级先行进位加法器 FPGA 设计 Verilog Vivado 设计文档图片 image7.png

16位多级先行进位加法器 FPGA 设计 Verilog Vivado 设计文档图片 image6.png

16位多级先行进位加法器 FPGA 设计 Verilog Vivado 设计文档图片 image10.png

16位多级先行进位加法器 FPGA 设计 Verilog Vivado 设计文档图片 image5.png

16位多级先行进位加法器 FPGA 设计 Verilog Vivado 设计文档图片 image4.png

16位多级先行进位加法器 FPGA 设计 Verilog Vivado 设计文档图片 image3.png

16位多级先行进位加法器 FPGA 设计 Verilog Vivado 设计文档图片 image2.png

16位多级先行进位加法器 FPGA 设计 Verilog Vivado 设计文档图片 image1.png

部分代码

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

module MultistageCarryLookAheadAdder_16 (A, B, Cin, S, Cout);//16位多级先行进位加法器
	input wire [15:0]  A, B;
	input wire Cin;
	output wire [15:0] S;
	output wire Cout;
	
	wire [4:1] C, P, G;
	
	CarryLookAheadAdder_4 U_CLAA4_1 (A[3:0], B[3:0], Cin, S[3:0], P[1], G[1]);
	CarryLookAheadAdder_4 U_CLAA4_2 (A[7:4], B[7:4], C[1], S[7:4], P[2], G[2]);
	CarryLookAheadAdder_4 U_CLAA4_3 (A[11:8], B[11:8], C[2], S[11:8], P[3], G[3]);
	CarryLookAheadAdder_4 U_CLAA4_4 (A[15:12], B[15:12], C[3], S[15:12], P[4], G[4]);
	
	CarryLookAhead_4 U_CLA_4 (P, G, Cin, C);//组间超前进位产生部件
	
	assign Cout = C[4];
endmodule

代码文件(付费下载)

📥 付费后此处显示完整工程压缩包下载链接。
1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 16位多级先行进位加法器 FPGA 设计 Verilog Vivado

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员