半加器是能够对两个一位的二进制数进行相加得到半加和以及半加进位的组合电路,其真值表如下
也就是说,这个半加器的输出表达式为S=A⊕B,C=AB,逻辑电路图如下
全加器的真值表如下,其中Ain表示被加数,Bin表示加数,Cin表示低位进位,Cout表示高位进位,Sum表示本位和
即输出表达式为
Sum=Ain⊕Bin⊕Cin
Cout=(Ain⊕Bin)⋅Cin+Ain·Bin=(Ain&Bin)∣(Bin&Cin)∣(Ain&Cin)
首先启动quartus软件,选择file,找到new project wizard,在填写工程的路径和名称之后的地方都直接下一步,知道出现以family为标题开头的地方。
EP4CE115F29C7芯片
首先选择file,选择new,进入选择Block Diagram/Schematic File
选择元件,添加一个and2,一个xor,两个input,两个output,组成如下图的电路
通过Tools->Netlist Viewers->RTL Viewer查看电路图
得到如图,便是成功
创建一个向量波形文件,选择菜单项File->New->University Program VWF
按照如下图所示操作,我这里截图尽量详细一点
编辑并保存
功能仿真结果
时序仿真结果
通过仿真可以看见结果是吻合的
将设计项目设置为可调用的元件
在打开半加器原理图文件half_adder.bdf的情况下,选择菜中File中的Create/Update→CreateSymbolFilesforCurrentFile项,即可将当前文件h_adder.bdf变成一个元件符号存盘,以待在高层次设计中调用,当然这里有点尴尬的地方是我刚刚不小心把半加器命名成的all_adder,这里如果影响了观感求谅解。
接下来我们再绘制一个,还是老样子,选择file->new,选择Block Diagram/Schematic File
加入元件
做成如图所示
这里是如上相同的方式,保存编译查看电路图,仿真实现
功能仿真
时序仿真
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
还是打开这个界面,显示这样就是成功编译
还是创建波形图文件,这里不多赘述了,依然是编辑成如下图的样式,编译运行
功能仿真
时序仿真
成功~
芯片引脚配置表
找到quartus的pin planner
打开,设置引脚
接下来电脑接入FPGA开发板。
如果是原理图进行实现的话,绘制的原理图会出现以下变化,输入输出旁边会标注刚刚绑定的引脚编号。
此处要需要自己重新编译一遍
然后如下图操作
选择好下图中的移动接口,没有这个接口要到在设备管理器中找到加感叹号的USB-blaster设备,并在一下路径下18.1/quatus/drivers/USB-blaster添加驱动。
回到上一级菜单,选中以下2框选处,点击start开始烧录。若4处出现success表示烧录成功。
烧录结果
这就是成功!
实验到这里已经非常顺利了,接下来我们还有四位全加器的实验,也很有意思,拜了个拜~
https://blog.csdn.net/qq_43279579/article/details/115480406