全加器设计与实践:理论与实际应用

目录

  • 认识全加器
  • 半加器
  • 一位全加器
  • 输出原理图实现一位加法器
  • 创建工程
  • 半加器原理图输入
  • 全加器原理图输入
  • Verilog实现一位加法器
  • 下载测试
  • 总结
  • 参考文章
  • 认识全加器

    半加器

    半加器是能够对两个一位的二进制数进行相加得到半加和以及半加进位的组合电路,其真值表如下

    也就是说,这个半加器的输出表达式为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

    加入元件

    做成如图所示

    这里先把这个文件置顶

    这里是如上相同的方式,保存编译查看电路图,仿真实现


    功能仿真

    时序仿真

    Verilog实现一位加法器

    创建Verilog文件,还是file,new

    输入代码

    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

    物联沃分享整理
    物联沃-IOTWORD物联网 » 全加器设计与实践:理论与实际应用

    发表评论