四位全加器的设计与实现详解

目录

  • 四位加法器的原理
  • quartus使用前言
  • 原理图实现构建四位加法器
  • RTL图如下
  • 波形图结果
  • Verilog实现四位加法器
  • RTL图如下
  • 波形图结果
  • DE2-115开发板实验验证
  • 总结
  • 参考文章
  • 四位加法器的原理

    通过底层逻辑,我们可以通过组建半加器到一位全加器再到四位全加器,四位全加器可以由四个一位全加器构成,加法器之间可以通过串行方式实现。通过将低位加法器的进位输出cout与相邻的高位加法器的最低进位输入信号cin相连接

    quartus使用前言

    每一次新建一个block文件和Verilog文件,编辑完成之后要如下操作才能编译成功

    如果要使用波形图仿真则block文件不能有数字(和汉字没试过,但是不推荐),否则极其容易失败

    原理图实现构建四位加法器

    首先,上一次我们做出了一个一位加法器,我们先通过使用过的方式,把一位加法器设置成一个单独的元件

    接下来还是新建新建,file->new->Block

    通过总线连接方式,对加法器进行拼接,我们需要两个input,两个output,一个gnd和四个一位全加器full_adder,如图连接成一个整体(右侧方括号写法分别是s[0],s[1],s[2],s[3],s[3…0])

    连接完成后,保存编译

    RTL图如下

    波形图结果

    还是新建一个波形图(file->new)


    生成如下图像既是成功
    功能仿真结果

    时序仿真结果

    Verilog实现四位加法器

    依然是new->file

    加入代码

    module four_bit(a,b,cin,cout,dout);  
    //与保存的文件名相同,但尽量不与之前的原理图名相同 
    	input [3:0] a,b;   //a,b为4位输入
    	input       cin;
    	output cout; 
    	output [3:0] dout;
     
    	assign {cout,dout} = a+b+cin;   //a+b 加法操作
    	//使用拼接运算符将cout、dout拼接,dout取结果中的低四位
     
    endmodule
    

    保存编译

    RTL图如下

    当然还是可以检查一下RTL图是否正确

    如差不多是这样的一个没问题了

    波形图结果

    新建一个波形图仿真,还是file,new

    引进多个引脚,这里直接显示结果
    功能仿真结果

    时序仿真结果

    DE2-115开发板实验验证

    因为刚才我们已经编译成功了,接下来我们直接配置引脚


    接下来烧录

    板子上的结果

    这个就是最右边的四位是一个数,往左数的四位又是一个数,第九位是cin,上边亮灯就是结果,看起来很成功!

    总结

    首先,每一次新建一个block文件和Verilog文件,编辑完成之后要指定文件才能编译成功。另外使用波形图时文件名不能有数字,有些许麻烦,但是总体还是比较成功的。那就下次见了拜了个拜~

    参考文章

    QuartusII实现4位加法器

    【Verilog设计—仿真实验】四位加法器的实现

    物联沃分享整理
    物联沃-IOTWORD物联网 » 四位全加器的设计与实现详解

    发表评论