0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

vivado调用IP核详细介绍

FPGA学习交流 来源:互联网 作者:佚名 2018-05-28 11:42 次阅读

大家好,又到了每日学习的时间了,今天咱们来聊一聊vivado 调用IP核。
首先咱们来了解一下vivado的IP核,IP核(IP Core):Vivado中有很多IP核可以直接使用,例如数学运算(乘法器、除法器、浮点运算器等)、信号处理(FFT、DFT、DDS等)。IP核类似编程中的函数库(例如C语言中的printf()函数),可以直接调用,非常方便,大大加快了开发速度。




使用Verilog调用IP核

这里简单举一个乘法器的IP核使用实例,使用Verilog调用。首先新建工程,新建demo.v顶层模块。

一、添加IP核

1. 点击Flow Navigator中的IP Catalog。
113530xvrr2hrdnlrnnxl2.png

2. 选择Math Functions下的Multiplier,即乘法器,并双击。
113531zx7g1pzzpx6up5xn.png

3. 将弹出IP核的参数设置对话框。点击左上角的Documentation,可以打开这个IP核的使用手册查阅。这里直接设置输入信号A和B均为4位无符号型数据,其他均为默认值,点击OK。
113532ne96z1h1voh1r2vx.png

4. 稍后弹出的窗口,点击Generate
113532me3rr4iww46rgz4r.png

二、调用IP核

1. 选择IP Sources,展开并选择mult_gen_0 - Instantiation Template - mult_gen_0.veo,可以打开实例化模板文件。如图,这段代码就是使用Verilog调用这个IP核的示例代码。
113531crd7jfozbzan4nb4.png

2. 将示例代码复制到demo.v文件中,并进行修改,最终如下。代码中声明了无符号型的4位变量a和b,分别赋初值7、8,作为乘数使用;无符号型的8位变量p,用于保存计算结果。clk为Testbench编写的周期20ns的时钟信号;mult_gen_0 mul(...)语句实例化了mult_gen_0类型的模块对象mul,并将clk、a、b、p作为参数传入。
113531b78ndk752xn6ndyy.png


三、行为仿真验证

以demo为顶层模块,启动行为仿真,即可输出波形。设置a、b、p显示为无符号十进制(右击选择Radix - Unsigned Decimal)。如图,可以看到a=7, b=8,第一个时钟上升沿后p = a * b = 56。
113533i26oysu6qeeqqzcl.png




框图(Block Design)中调用IP核

这里举一个简单的例子,通过调用乘法器IP核,产生一个能计算平方的新模块。

一、创建框图设计文件

1. 选择Flow Navigator中的Create Block Design,创建一个框图设计文件。
114712kfmmuuggb1ugh15c.png

2. 输入文件名并点击OK。
114713u7w3vvd67zuc6i89.png


二、添加IP核

1. 在框图空白处右击,选择Add IP。
114713man6pevcz6nd0kyu.png


2. 可以直接搜索需要的IP核,双击确认。
114714biexnobxaicko0ya.png

3. IP核即可被添加进来,可以用导线将其与其他器件连接。
114714zqixmi280xk02o82.png

4. 双击这个IP核符号,可以打开参数设置对话框。点击左上方的Documentation可以查看IP核的手册。这里将输入的A、B均设置为4为无符号型,其他为默认值,点击OK确认。
114714a8878i6bbx5c5pih.png


三、绘制电路

1. 右击Diagram窗口空白处,选择Create Port。
114715bohjlol8tgl3wojk.png


2. 弹出窗口中,设置端口a为4位输入信号,并点击OK。
114715vveffk3pvpv972iu.png

3. 将a与A、B都连接起来。
114716kh8n5jjzhwoj3vph.png

4. 同样的方法,添加一个8位输出端口p,与P连接。
114716ht9n58ccg4s457lf.png


5. 再添加一个clk时钟输入端口,与CLK连接。
114717ogqadsgdy2sdwg25.png

6. 最终结果如图。
114717rk2ipv7jv1ck8jpj.png


四、仿真测试

1. 右击框图设计文件design_1,选择Create HDL Wrapper。
115342oycfkdckomsbkbfk.png

2. 选择第二项并点击OK。
114717q1mp1c2gf5pj9p22.png

3. 打开生成的design_1_wrapper.v文件如图,红框中的代码用来调用前面画好的Block Design模块。
114718v2nsrz6mjjrjvjjg.png

4. 在design_1_wrapper.v文件中,添加Testbench代码即可进行行为仿真。修改代码如下,给输入信号a赋初值为8,clk连接到Testbench生成的时钟信号c上。
114718sq0hneztlhh1w9z0.png        5. 在Simulation Sources文件夹下,设置design_1_wrapper.v为行为仿真的顶层文件(右击,选择Set as Top)。
114719kxbagsps9za1wgpx.png


启动行为仿真,最终输出的波形如下。可以看到,在clk的第一个上升沿后,就有 p = a*a = 64,即实现了平方运算。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Verilog
    +关注

    关注

    28

    文章

    1322

    浏览量

    109218
  • IP核
    +关注

    关注

    4

    文章

    317

    浏览量

    49016
  • Vivado
    +关注

    关注

    18

    文章

    781

    浏览量

    65011
收藏 人收藏

    评论

    相关推荐

    vivado hls 写的IP(某函数) 如何在 vivado 里面连接PS并且调用,最后把值放到内存里面?(使用AXI?)

    ,int b);最后经过编译可以生成VHDL等硬件描述文件与IP文件.我想调用自己写的IP(add函数)我在
    发表于 01-28 18:39

    vivado hls 写的IP(某函数) 如何在 vivado 里面连接PS并且导出到Xilinx SDK调用,最后把值放到内存里面?(使用AXI?)

    ,int b);最后经过编译可以生成VHDL等硬件描述文件与IP文件.我想调用自己写的IP(add函数)我在
    发表于 01-28 18:40

    vivadoip的工程封装

    请教一下,vivado怎么把带ip的工程进行封装,保证代码不可见,可以通过端口调用。我尝试了以下方法,ippackage,如果要在另一个程序里调用
    发表于 07-14 09:18

    vivado 调用IP 详细介绍

    大家伙,又到了每日学习的时间了,今天咱们来聊一聊vivado 调用IP。首先咱们来了解一下vivado
    发表于 05-15 12:05

    详细操作 vivado 调用IP(附图)

    大家伙,又到了每日学习的时间了,今天咱们来聊一聊vivado 调用IP。首先咱们来了解一下vivado
    发表于 05-16 11:42

    Vivado IP锁定的解决办法分享

      发生IP锁定,一般是Vivado版本不同导致的,下面介绍几种方法:    1 常用的方法  1)生成IP
    发表于 01-08 17:12

    使用Vivado调用ROM IP

      本例程主要使用Vivado 调用ROM IP,用含有正弦曲线的.coe文件初始化ROM,最终通过仿真实现波形的显示  一、首先建立工程      二、选择芯片的型号  我
    发表于 01-08 17:16

    Vivado中xilinx_courdic IP怎么使用

    Vivado中xilinx_courdic IP(求exp指数函数)使用
    发表于 03-03 07:35

    vivado有哪几种常用IP?如何去调用它们

    运算器等)、信号处理(FFT、DFT、DDS等)。IP类似编程中的函数库(例如C语言中的printf()函数),可以直接调用,非常方便,大大加快了开发速度。今天介绍的是
    发表于 07-29 06:07

    为什么vivado2016调用MIG ip会收到严重警告呢

    为什么vivado2016调用MIG ip会收到严重警告呢?这个critical warning会有影响吗,要怎么解决呢?
    发表于 10-18 09:41

    Vivado生成IP

    vivado生成ip后缺少一大片文件,之前是可以用的,中途卸载过Modelsim,用vivado打开过ISE工程,因为工程中很多IP
    发表于 04-24 23:42

    Xilinx Vivado的使用详细介绍(3):使用IP

    IP核(IP Core) Vivado中有很多IP核可以直接使用,例如数学运算(乘法器、除法器、浮点运算器等)、信号处理(FFT、DFT、DDS等)。
    发表于 02-08 13:08 1261次阅读
    Xilinx <b class='flag-5'>Vivado</b>的使用<b class='flag-5'>详细</b><b class='flag-5'>介绍</b>(3):使用<b class='flag-5'>IP</b>核

    调用Vivado IP核的方法

    在开发PL时一般都会用到分频或倍频,对晶振产生的时钟进行分频或倍频处理,产生系统时钟和复位信号,下面就介绍一下在vivado2017.3中进行PL开发时调用IP的方法。
    发表于 12-22 14:26 4471次阅读

    关于Vivado三种常用IP核的调用详细解析

    vivadoIP核,IP核(IP Core):Vivado中有很多IP核可以直接使用,例如数学
    的头像 发表于 04-27 15:45 2.3w次阅读
    关于<b class='flag-5'>Vivado</b>三种常用<b class='flag-5'>IP</b>核的<b class='flag-5'>调用</b><b class='flag-5'>详细</b>解析

    FPGA应用之vivado三种常用IP核的调用

    今天介绍的是vivado的三种常用IP核:时钟倍频(Clocking Wizard),实时仿真(ILA),ROM调用(Block Memory)。
    发表于 02-02 10:14 2571次阅读