一、输入原理图实现1位加法器
创建工程过程
启动 Quartus II 软件,选择File->New Project Wizard,在出现的界面下先Next,填写工程的路径和名称,然后接着Next,直到出现下面界面并进行相应操作。接着一路Next,直到Finish,完成工程的创建。
(一)半加器原理图输入
绘制过程实现
首先选择File->New,进入后选择Block Diagram/Schematic File

选择元件
添加输入输出,完成效果

保存文件,并编译
通过tool->Netlist Viewers->RTL Viewer,查看电路图

仿真实现
创建一个向量波形文件,选择菜单项 File→New->VWF
添加信号

编辑信号
保存文件并启动功能仿真
时序仿真

(二)全加器原理图输入
利用半加器元件实现全加器
将设计项目设置为可调用的元件
在打开半加器原理图文件half_adder.bdf的情况下,选择菜中File中的Create/Update→CreateSymbolFilesforCurrentFile项,即可将当前文件h_adder.bdf变成一个元件符号存盘,以待在高层次设计中调用
绘制过程实现
首先选择File->New,进入后选择Block Diagram/Schematic File
选择元件

保存文件,并编译
通过tool->Netlist Viewers->RTL Viewer,查看电路图
仿真实现
创建一个向量波形文件,选择菜单项 File→New->VWF

保存文件并启动功能仿真
时序功能
二、Verilog实现1位加法器
创建Verilog文件
module full_adder(
//输入信号,ain表示被加数,bin表示加数,cin表示低位向高位的进位
input ain,bin,cin,
//输出信号,cout表示向高位的进位,sum表示本位的相加和
output reg cout,sum
);
reg s1,s2,s3;
always @(ain or bin or cin) begin
sum=(ain^bin)^cin;//本位和输出表达式
s1=ain&cin;
s2=bin&cin;
s3=ain&bin;
cout=(s1|s2)|s3;//高位进位输出表达式
end
endmodule
保存并编译文件
通过tool->Netlist Viewers->RTL Viewer,查看电路图
仿真实现
创建一个向量波形文件,选择菜单项 File→New->VWF

编辑信号
保存文件并启动功能仿真
时序仿真
配置引脚
使用3个SW作为输入信号,2个LED作为输出信号

下载
四位全加器原理图
利用上一个1位全加器的元件

编译保存,通过tool->Netlist Viewers->RTL Viewer,查看电路图
创建一个向量波形文件,选择菜单项 File→New->VWF
添加信号


保存文件并启动功能仿真
时序仿真
四位全加器Verilog实现
代码
module adder_4(a,b,cin,cout,dout);
input [3:0] a,b; //a,b为4位输入
input cin; //cin为进位输入
output cout;
output [3:0] dout;
assign {cout,dout} = a+b+cin; //a+b+cin 加法操作
//使用拼接运算符将cout、dout拼接,dout取结果中的低四位
endmodule
保存并编译文件
通过tool->Netlist Viewers->RTL Viewer,查看电路图

仿真实现
创建一个向量波形文件,选择菜单项 File→New->VWF
添加信号

仿真结果
文章详细介绍了如何在QuartusII环境中通过原理图输入方法实现1位半加器和全加器,以及如何用Verilog语言编写1位和四位全加器的代码,并进行了功能仿真和时序仿真。此外,还展示了如何创建元件符号并在更高层次设计中调用。
676

被折叠的 条评论
为什么被折叠?



