一、任务
1、基于Quartus件完成一个1位全加器的设计,分别采用:1)原理图输入 以及 2)Verilog编程 这两种设计方法。开发板基于Intel DE2-115。
2、在此基础上,用原理图以及Verilog 编程两种方式,完成4位全加器的设计,对比二者生成的 RTL差别;使用modelsim验证逻辑设计的正确性,并在DE2-115开发板上实际验证。
二、全加器
全加器英语名称为full-adder,是用门电路实现两个二进制数相加并求出和的组合线路,称为一位全加器。一位全加器可以处理低位进位,并输出本位加法进位。多个一位全加器进行级联可以得到多位全加器。常用二进制四位全加器74LS283。
一位全加器的真值表如下图,其中Ai为被加数,Bi为加数,相邻低位来的进位数为Ci-1,输出本位和为Si。向相邻高位进位数为Ci
三、输入原理图实现1位加法器
创建工程过程
启动 Quartus II 软件,选择File->New Project Wizard,在出现的界面下先Next,填写工程的路径和名称,然后接着Next,直到出现下面界面并进行相应操作。接着一路Next,直到Finish,完成工程的创建。
(一)半加器原理图输入
1.绘制过程实现
首先选择File->New,进入后选择Block Diagram/Schematic File
选择元件
保存文件,并编译
通过tool->Netlist Viewers->RTL Viewer,查看电路图
2.仿真实现
创建一个向量波形文件,选择菜单项 File→New->VWF
添加信号
编辑信号
保存文件并启动功能仿真,出现错误,进行仿真配置,选择tool->launch simulation library complier
功能仿真
时序仿真
(二)全加器原理图输入
1.将设计项目设置为可调用的元件
在打开半加器原理图文件half_adder.bdf的情况下,选择菜中File中的Create/Update→CreateSymbolFilesforCurrentFile项,即可将当前文件h_adder.bdf变成一个元件符号存盘,以待在高层次设计中调用
2.绘制过程实现
首先选择File->New,进入后选择Block Diagram/Schematic File
选择元件
添加输入输出
保存文件,并编译
通过tool->Netlist Viewers->RTL Viewer,查看电路图
仿真实现
创建一个向量波形文件,选择菜单项 File→New->VWF
仿真实现
创建一个向量波形文件,选择菜单项 File→New->VWF
添加信号
编辑信号
保存文件并启动功能仿真,出现错误,进行仿真配置,选择tool->launch simulation library complier
功能仿真结果
时序仿真结果
通过仿真结果,可以发现得到的结果与真值表中是相吻合的。
四、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
添加信号
编辑信号
保存文件并启动功能仿真,出现错误,进行仿真配置,选择tool->launch simulation library complier
功能仿真结果
时序仿真结果
通过仿真结果,可以发现得到的结果与真值表中是相吻合的。
五、总结
仿真过程中出现了些小插曲,不管通过查阅资料得以解决。