10位加法器 FPGA 设计 Verilog Vivado
名称:10位加法器 FPGA 设计 Verilog Vivado
软件:Vivado
语言:Verilog
功能介绍
本设计为 10 位加法器 FPGA 工程,核心功能是完成两路输入数据的加法运算,并通过分层逻辑单元组织进位生成、进位传播和最终输出。工程采用 Verilog/SystemVerilog 源码形式组织,适合用于学习加法器结构、组合逻辑设计、层次化模块调用以及 Vivado 仿真流程。 设计主体围绕 Add10 模块展开,配合 InputCell、BlackCell、GreyCell、OutputCell 等基础单元构建加法逻辑。相比单纯用一条加法赋值语句完成运算,本设计更强调加法器内部结构的展开,便于观察进位链路、单元连接方式以及不同层级模块之间的信号传递关系。 工程包含 Add10_tb 测试文件,可在 Vivado 中进行行为级仿真验证。配套文档给出了工程文件、testbench 文件以及仿真图和结果说明,适合作为课程设计、数字逻辑实验、FPGA 加法器结构学习和 Vivado 仿真练习参考。运行环境
开发软件:Vivado 设计语言:Verilog 工程类型:FPGA 逻辑设计与行为级仿真工程 主要文件:ADD_bug.xpr、Add10.sv、Add10_tb.sv 仿真方式:Vivado XSim 行为级仿真设计思路
设计采用层次化加法器结构,将 10 位加法运算拆分为多个功能明确的基础逻辑单元。输入端首先通过 InputCell 对每一位输入信号进行处理,形成后续进位计算所需的生成信号和传播信号;中间层通过 BlackCell、GreyCell 等模块完成进位相关逻辑的级联计算;输出端再由 OutputCell 结合进位信息得到最终求和结果。 这种结构化写法有助于把加法器的内部运算过程展开,而不是把全部逻辑隐藏在高级运算符中。对于学习者来说,可以更直观地理解加法器中进位生成、进位传递和求和输出之间的关系,也便于在仿真波形中逐级观察关键中间信号。 测试平台 Add10_tb 用于驱动 Add10 模块进行功能仿真,验证输入激励下的输出变化。Vivado 工程中已包含仿真配置和波形配置文件,可用于复现实验过程并查看仿真结果。整体设计重点在于 Verilog 层次化建模、组合逻辑模块复用以及 Vivado 仿真验证流程。模块结构
主要模块结构如下: 1. Add10:10 位加法器核心模块,负责组织各基础单元并完成整体加法逻辑。 2. InputCell:输入处理单元,用于产生后续进位计算所需的基础信号。 3. BlackCell:黑单元,用于组合和传递进位生成/传播相关信号。 4. GreyCell:灰单元,用于生成特定层级的进位输出信号。 5. OutputCell:输出处理单元,根据输入和进位信息生成最终结果位。 6. Add10_tb:仿真测试平台,用于给 Add10 提供测试激励并观察仿真输出。 7. glbl:Vivado 仿真全局模块,用于仿真环境中的全局复位、三态和 JTAG 等全局信号建模。演示视频
包含仿真演示视频,可用于查看 Vivado 仿真运行过程和输出结果展示。该视频适合配合工程文件与仿真波形一起学习,帮助理解测试平台如何驱动 Add10 模块以及仿真结果如何呈现。仿真图/仿真说明/设计文档图片
设计文档包含工程文件说明、testbench 文件说明、仿真图及结果等内容,并配有多张仿真相关图片。文档可用于快速了解工程组成、仿真入口以及结果观察方式。



部分代码
以下展示顶层模块 glbl 的部分代码,完整源码请下载压缩包查看。
module glbl ();
parameter ROC_WIDTH = 100000;
parameter TOC_WIDTH = 0;
//-------- STARTUP Globals --------------
wire GSR;
wire GTS;
wire GWE;
wire PRLD;
tri1 p_up_tmp;
tri (weak1, strong0) PLL_LOCKG = p_up_tmp;
wire PROGB_GLBL;
wire CCLKO_GLBL;
wire FCSBO_GLBL;
wire [3:0] DO_GLBL;
wire [3:0] DI_GLBL;
reg GSR_int;
reg GTS_int;
reg PRLD_int;
//-------- JTAG Globals --------------
wire JTAG_TDO_GLBL;
wire JTAG_TCK_GLBL;
wire JTAG_TDI_GLBL;
wire JTAG_TMS_GLBL;
wire JTAG_TRST_GLBL;
reg JTAG_CAPTURE_GLBL;
reg JTAG_RESET_GLBL;
reg JTAG_SHIFT_GLBL;
reg JTAG_UPDATE_GLBL;
reg JTAG_RUNTEST_GLBL;
reg JTAG_SEL1_GLBL = 0;
reg JTAG_SEL2_GLBL = 0 ;
reg JTAG_SEL3_GLBL = 0;
reg JTAG_SEL4_GLBL = 0;
reg JTAG_USER_TDO1_GLBL = 1'bz;
reg JTAG_USER_TDO2_GLBL = 1'bz;
reg JTAG_USER_TDO3_GLBL = 1'bz;
reg JTAG_USER_TDO4_GLBL = 1'bz;
assign (weak1, weak0) GSR = GSR_int;
assign (weak1, weak0) GTS = GTS_int;
assign (weak1, weak0) PRLD = PRLD_int;
initial begin
GSR_int = 1'b1;
PRLD_int = 1'b1;
#(ROC_WIDTH)
GSR_int = 1'b0;
PRLD_int = 1'b0;
end
initial begin
GTS_int = 1'b1;
#(TOC_WIDTH)
GTS_int = 1'b0;
end
endmodule
代码文件(付费下载)
📥
付费后此处显示完整工程压缩包下载链接。
1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 10位加法器 FPGA 设计 Verilog Vivado
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 10位加法器 FPGA 设计 Verilog Vivado