由 judyzhong 于 星期五, 09/08/2017 - 14:58 发表

概述

  Vivado在设计时可以感觉到一种趋势,它鼓励用IP核的方式进行设计。“IP Integrator”提供了原理图设计的方式,只需要在其中调用设计好的IP核连线。IP核一部分来自于Xilinx官方IP;一部分来自于第三方IP,其中有的是在网络上开源的;另一部分就是自己设计的IP。有时候我们需要把自己的一个设计反复用到以后的工程中,利用Vivado的“IP Package”将其封装起来,再以后的工程中直接调用即可。

  本文致力于讲述如何将自己的设计封装为IP核,以及示范一下如何在其它工程中调用自己设计好的IP核。本文采用的设计是一个简单的位宽可设置的加法器。博主使用的Vivado版本是2017.1,其它版本在一些设置的地方可能存在一些差异。

封装IP

  1. 首先建立一个工程用于设计IP核,这个工程最好放在Vivado目录下或不会被删除的地方。添加一个源文件,输入一个简单的组合逻辑加法器的代码:
`timescale 1ns / 1ps

module Add_USR_IP #(parameter WIDTH = 1)(
input [WIDTH:0] a,
input [WIDTH:0] b,
output cout,
output [WIDTH:0] c
);

assign {cout, c} = a + b;

endmodule

2. 点击左边“Flow Navigator”中的“Settings”,打开“IP”下的“Packager”。设置自己的IP核的库名和目录,我将Library更改为了“godwar_liuqi”,Category更改为了“/godwar_liuqi_IPLib”。这里也可以用默认值。

  3. 点击上方菜单栏中的“Tools”下的“Create and Package New IP”,跟着流程一直走最后Finish即可,将在工作区弹出如下界面,包含了IP核的一些信息,名称为“Add_USR_IP_v1_0”。

**4**. 在上述界面的“Compatibility”标签下给出了这个IP可以支持的FPGA系列,默认是支持全部系列。“File Groups”中可以看到这个IP包含的文件,可以为这个IP添加一个仿真文件来验证其功能。   

**5**. 我为了实现加法位宽可调整,源程序中使用了parameter参数。打开上述界面中的“Customization Parameters”标签,将看到这个参数WIDTH:

双击WIDTH,将弹出一个参数设置框。里面可以指定这个参数在配置IP核是的格式以及是否可以被用户编辑。我们在这里将“Specify Range”勾选中,将Type更改为“Range of integers”,表示此参数可以选择的范围。将Minimum设置为0,Maximum设置为31,表示该IP核最高可设置为32位的加法器。最后再将“Default Value”指定为7,表示默认为8位加法器。   

**6**. 第3步骤的“Ports and Interfaces”中将看到IP核的管脚信息,“Customization GUI”中将看到IP核的原理图图形。没有问题后切换到“Review and Package”标签,点击“Package IP”会提示成功生成IP核。

调用自己的IP核

再另外新建一个工程,我们尝试调用刚才自己制作的IP核。建立好工程后先不添加源文件。在“Flow Navigator”的“Settings”中选中“IP”下的“Repository”,点击“+”添加,路径指定到刚才封装IP核的目录。点击ok后便会弹出一个框提示找到了一个名为“Add_USR_IP_v1_0”的IP核,也就是刚才创建的加法器。

设置好后在“IP Integrator”中点击“Create Block Design”,创建一张原理图。原理图中点击“+”搜索Add_USR_IP_v1_0,即可看到自己制作的IP核,双击添加到原理图中。如果设计中还需要其它IP核,添加IP后用连线连接起整个系统即可。双击IP核图形,即可弹出配置界面,可以更改加法器的位宽。

这里我们不使用其它IP,直接在Add_USR_IP_v1_0的管脚上右键,点击“Make External”生成管脚信号。结果如下:

在“Design Sources”中我们将看到bd后缀的原理图文件。为了使用方便,保存原理图后我们在文件上点右键,点击“Create HDL Wrapper”,软件会将原理图封装为一个Verilog文件,这个Verilog文件可以供其它模块调用。结果如下所示:

 设计好后可以像普通的工程一样综合、实现、生成bit流。值得一提的是,在这个工程中我们是无法查看到Add_USR_IP_v1_0这个IP核的源码的,它是一个黑盒的状态。这也是Vivado提供的IP加密技术,以保护设计者的权益。

转载:http://xilinx.eetrend.com/blog/11946

Vivado使用技巧(二):封装自己设计的IP核的更多相关文章

  1. Vivado使用技巧:封装自己设计的IP核

    概述   Vivado在设计时可以感觉到一种趋势,它鼓励用IP核的方式进行设计.“IP Integrator”提供了原理图设计的方式,只需要在其中调用设计好的IP核连线.IP核一部分来自于Xilinx ...

  2. vivado设计四:自定义IP核测试

    在vivado设计三中:http://blog.chinaaet.com/detail/37177已经建立了vivado工程和封装好了自定义IP核. 那么接下来,我们对这个自定义IP核进行测试了:我们 ...

  3. IP核的使用(Vivado中的调用,product guide的查询阅读 ,引脚的设置(位宽,个数,算法等),coe文件的初始化 )

    IP核:Intellectual Property core ,即知识产权核.每个IP核可以实现特定功能,我们在设计一个东西时可以直接调用某个IP核来辅助实现功能. 存在形式:HDL语言形式,网表形式 ...

  4. 利用IP核设计高性能的计数器

    利用Quartus II的LPM_counter IP核进行设计(利用IP核设计可以迅速高效的完成产品的设计) 新建工程 调用IP核 创建一个新的IP核 选择LMP_COUNTER,语言类型,输出路径 ...

  5. Vivado设计二:zynq的PS访问PL中的自带IP核(基于zybo)

    1.建立工程 首先和Vivado设计一中一样,先建立工程(这部分就忽略了) 2.create block design 同样,Add IP 同样,也添加配置文件,这些都和设计一是一样的,没什么区别. ...

  6. SQL开发技巧(二)

    本系列文章旨在收集在开发过程中遇到的一些常用的SQL语句,然后整理归档,本系列文章基于SQLServer系列,且版本为SQLServer2005及以上-- 文章系列目录 SQL开发技巧(一) SQL开 ...

  7. SQL开发技巧(二) 【转】感觉他写的很好

    本文转自: http://www.cnblogs.com/marvin/p/DevelopSQLSkill_2.html 本系列文章旨在收集在开发过程中遇到的一些常用的SQL语句,然后整理归档,本系列 ...

  8. vivado设计三:一步一步生成自己的自定义IP核

    开发环境:xp  vivado2013.4 基于AXI-Lite的用户自定义IP核设计 这里以用户自定义led_ip为例: 1.建立工程 和设计一过程一样,见vivado设计一http://blog. ...

  9. 转:VIVADO使用技巧:设置DCI与内部参考电压

    本文转自:Vivado使用技巧(12):设置DCI与内部参考电压 - 灰信网(软件开发博客聚合) (freesion.com) DCI与内部参考电压 Xilinx FPGA提供了DCI(Digital ...

随机推荐

  1. Excel中R1C1引用样式

    在Excel处理中,经常需要修改某行某列的值.默认情况下Excel中的列号是字母,每次都要去数,因为对字母的位置不熟悉,特别是又有合并单元格的时候,很容易数错.能不能把列也显示成数字,我坚信Offic ...

  2. 在AE10.1环境下调试其他版本的程序

    不同人的可能使用的开发环境不一样,使用SDK版本也不一样,比如用ArcEngine9.3开发的程序在ArcEngine10.1下就不能运行,需要重新调试,才能运行. 这里的例子程序是其他网友在ArcE ...

  3. IOS学习笔记45--UITableView性能优化

    说实话,面试的时候已经被问到几次这个问题,然后就搜索了一下,看到了这篇优化文章,感觉不错,转来日后作为一种UITableView优化的方法. 使用不透明视图.      不透明的视图可以极大地提高渲染 ...

  4. Java从零开始学三十八(JAVA IO- 重定向IO)

    一.三个静态变量 java.lang.System提供了三个静态变量 System.in(默认键盘) System.out(默认显示器) System.err 二.重写向方法 System提供了三个重 ...

  5. web应用程序访问串口

    https://github.com/tylermenezes/SerialServe https://github.com/straend/SerialWebsocket http://www.cn ...

  6. HTTP Content-type整理

    文件扩展名 Content-Type(Mime-Type) 文件扩展名 Content-Type(Mime-Type) .*( 二进制流.不知道下载文件类型) application/octet-st ...

  7. javaweb笔记全套

    Lesson 1 一.eclipse工具的使用 1. java代码的位置 1) 选择工作空间 workspace  选择一个文件夹存放程序(代码) 不要用中文和空格 2) 新建一个java 工程(Pr ...

  8. 解决Eclipse里项目名有红叉,但是底下的每一个文件都没有红叉

    有这种错误让人很恼火,因为并不知道是哪个文件引起的整个项目错误.所以我们可以打开下边的错误按钮,看看是什么问题. 1.如果是因为java compiler level does not match t ...

  9. 光驱在资源管理器显示黄色感叹号的解决方法BIOS内有 系统下没有

    1. 点开“开始”-运行regedit.exe,进入注册表编辑器,到左边的项目栏里找到HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet\Control\Clas ...

  10. WebApi 数据保护操作未成功。这可能是由于未为当前线程的用户上下文加载用户配置文件导致的。当线程执行模拟时,可能会出现此情况。","ExceptionType":"System.Security.Cryptography.CryptographicException","StackTrace

    在调用System.Security.Cryptography.ProtectedData.Protect方法来保护私密信息时,IIS可能会报以下错误:CryptographicException: ...