vivado.2020-Verilog两个半加器实现一个全加器-数字逻辑实验-IP核的使用

这篇文比较适合还没搞懂verilog的小白,说的比较具体,我会指明操作步骤,跟着一步一步做就好,做完之后希望大家可以通过这个较为完整的过程大致了解verilog的一些简单操作。

1. 首先,新建一个项目作为半加器

如何创建新项目还请小可爱们自行搜索,这里不做阐述啦~
在Add Sources中创建一个Design Source,作为半加器。
半加器的实现如下:

module adder_half(a,b,S,C);
    input a,b;
    output S,C;
    assign S=a^b;
    assign C=a&b;
endmodule

点击open elaborated design我们可以看到这样的一个元件:
在这里插入图片描述
这就是我们刚刚完成的半加器,a,b为半加器的输入端,S,C为半加器的输出端,其中S表示求得的和,C表示进位。接下来我们进行下一步。

2. 将半加器生成为一个IP核,用于全加器的构造

在主界面中Tools选择Create and package new IP,如图:
在这里插入图片描述
接下来的窗口点击Next
再接下来的窗口选择Package your current project,然后点击Next,然后继续Next,(这里记得要记一下IP核的存储位置,方便一会寻找),最后点击Finish,IP核封装完成!
于是我们终于获得了一个IP核,全加器的完成又近了一步!

3.使用半加器的IP核构造全加器

退出当前文件,新建一个空白的即将用于实现全加器的项目。
在Design Source中新建一个文件。
然后在PROJECT MANAGER中选择点击Settings,点击IP,点击Repository,如图:在这里插入图片描述
点击小加号,如图:
在这里插入图片描述
然后按照刚刚我们说要记下来的地址,寻找到封装好的IP核,点击Select添加IP核,弹窗点击OK,这样IP核就初步加入到我们的阵营中了。
nice!
接下来,在PROJECT MANAGER 中点击IP Catalog,就是下图中前面有一个小图标的那个~
在这里插入图片描述
然后在User Repository下的文件夹中我们可以找到刚刚添加进来的IP核,如图:
在这里插入图片描述
双击这个IP核,弹窗点击OK,弹窗再OK,最后点击Generate生成!Yes,IP核成了
下一步要继续搞代码啦~~

4.全加器的实现

打开我们第三步最开始创建的空白文件,在里面写入全加器的代码:
代码如下:

module fad(a,b,cin,S,C);
    input a,b,cin;
    output S,C;
    wire m,e,n;
    adder_half_0 u1(a,b,m,e);
    adder_half_0 u2(m,cin,S,n);
    assign C = e|n;
      
endmodule

其中a,b为全加器的两位输入,cin为进位,S,C分别为和项与进位项。
代码中的adder_half_0 u1(a,b,m,e); adder_half_0 u2(m,cin,S,n);两句就是对IP核的调用,全加器的实现需要两个半加器,这里如果不懂的话可以去复习一下全加器与半加器。
Control S保存!
这时候点击RTL ANALYSIS下的Open Elaborated Design,弹窗OK,然后我们可以看到这样一个东西:
在这里插入图片描述
这就是全加器了,我用箭头指出来的两个就是调用的半加器,以IP核的形式展示。

5.最后一步,仿真

如果你想看看仿真波形对不对?
好,上才艺:
又来到Add Sources,这次我们加一个simulation sources,然后写进去个仿真代码:

module sim_fad();
    reg a,b,c;
    wire S,C;
    fad f1(a,b,c,S,C);
    initial
        begin
         a = 0; b = 0; c = 0;
        end
    always #10 {a,b,c} = {a,b,c}+1;
    
endmodule

保存!然后找到SIMULATION下的Run Smulation,然后我们得到了仿真波形,来瞧瞧:
在这里插入图片描述
诶嘿,好家伙,还不错,结束~

注:代码的实现方式不局限。

哪里有写的不对的地方还请多多指教!感谢!敬礼∠(°ゝ°)


版权声明:本文为weixin_45707270原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>