目录
一、原理图设计全加器1.1 半加器设计1.2 全加器设计
二、Verilog实现全加器三、下载文件到开发板上3.1 引脚绑定3.2 烧录文件
四、总结五、参考资料
本文内容:基于 Quartus-II 软件完成一个 1 位全加器的设计,分别采用 1)原理图设计; 2)Verilog 编程 实现方法。 软件基于 quartusII 13.0 版本,开发板基于 Intel DE2-115。
一、原理图设计全加器
1.1 半加器设计
说明:1 位全加器可以用两个半加器及一个或门连接而成, 因此需要先完成半加器的设计。
①新建工程
【File】→【New Project Wizard…】。 点击【Next】后进入如下界面:选择保存路径及工程名,然后点击【Next】。 点击【Next】后进入如下界面:选择【Cyclone IV E】,勾选第二个,选择【EP4CE115F29C7】系列,然后点击【Next】。 点击【Next】【Finish】后即可完成创建。
②新建原理图文件
【File】→【New…】。 选择【Block Diagram/Schematic File】后点击【OK】。 摆放元件:点击插头图样或者双击原理图空白处,调出新窗口。 在元件搜索框内输入 and2 和 xor 并摆放到图上。 分别摆放两个输入和输出。 双击【pin name】修改管脚名,然后用鼠标连接管脚。 点击保存按钮,然后点击【保存】。 点击【编译按钮】(无错误即可,忽略警告)。
③将设计项目设置成可调用的元件
在打开半加器原理图文件【Demo1.bdf】的情况下,选择菜中【File】→【Create/Update】→【Create Symbol Files for Current File】项,即可将当前文件【Demo1. bdf】变成一个元件符号存盘,以待在高层次设计中调用。 使用完全相同的方法也可以将 VHDL 文本文件变成原理图中的一个元件符号,实现 VHDL 文本设计与原理图的混合输入设计方法。转换中需要注意以下两点:
转换好的元件必须存在当前工程的路径文件夹中;该方法只能针对被打开的当前文件。
④半加器仿真
新建波形文件:【File】→【New…】。 选择【University Program VWF】,点击【OK】。 【Edit】→【Insert】→【Insert Node or Bus…】。 点击【Node Finder】→【List】→【>>】→【OK】→【OK】。 选中要改变电平的区域,然后点击左上方的 “0” “1” 图样即可。 保存 .vwf 文件。 点击编译按钮,出现如下错误。
解决方法:
点击【Tools】→【Lauch Simulation Library Compiler】。 选择工程目录下的 ...\simulation\qsim 文件夹,然后点击【Start Compilation】。 无错误,然后点击【Close】关闭窗口。 再次编译,就成功了。
1.2 全加器设计
①新建原理图
新建一个原理图文件,方法同上。添加上面创建的半加器,我的文件名为 Demo1 。 编辑原理图如下: 保存文件。
②将设计项目设置成顶层文件并编译仿真 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210407155717659.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NzajkyNTMxOQ==,size_16,color_FFFFFF,t_70)
③全加器仿真 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210407160215927.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NzajkyNTMxOQ==,size_16,color_FFFFFF,t_70)
二、Verilog实现全加器
①创建 Verilog 文件
【File】→【New…】。 选择【Verilog HDL File】,点击【OK】。 代码如下:
module Verilog1(
//输入信号,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
然后保存文件。说明:需要将第一行的 Verilog1 更改为自己的 Verilog 文件名才行,否则会报错。 记得将 Verilog 文件设置为顶部文件,否则编译不到。 编译 Verilog 文件。 通过【Tools】→【Netlist Viewers】→【RTL Viewer】查看电路图。 ②仿真实现步骤和上面的仿真步骤一样,这里就不再重复了。结果如下:
三、下载文件到开发板上
3.1 引脚绑定
开发板上的18个拨码开关选其中三个:SW0、SW1、SW2 分别接 ain、bin、cin(开关向上拨和向下拨分别显示输入是高还是低电平)LED0、LED1 分别接 cout 和 sum,灯亮表示输出为 “1”,灯灭表示输出为 “0”。硬件设计好后,还需要查引脚图进行引脚绑定,如图: 开始绑定引脚:点击【Assignments】→【Pin Planner】。 在【location】栏填入对应的 FPGA 引脚。 选定了引脚之后原理图文件一定要再编译一次,才能真正把引脚绑定上。
3.2 烧录文件
现在可以下载到硬件上进行测试了。把开发板接上电源,USB 接口接电脑。打开电源开关(注意不用下载时请一定关闭开关,以免烧坏板子)。点击【下载按钮】。 第一次下载需安装硬件:即在下载界面中点击按钮【hardware setup…】,然后在弹出的对话框中选择【USB blaster】,再点击【ok】,则硬件被安装上。 勾选上,点击【Start】,烧录成功。 真机显示:
四、总结
使用 Quartus-ll 来仿真十分的方便,整个过程也并不复杂,配置开发板使用更加的直观,有一定的数字电路基础后,再来使用这个软件来仿真,就会得心应手。
五、参考资料
[1] https://blog.csdn.net/qq_43279579/article/details/115480406
|