Vivado将模块封装为IP的方法(网表文件)【转】

。 https://blog.csdn.net/u011435907/article/details/78233375

在给别人用自己的工程时可以封装IP,Vivado用封装IP的工具,可以得到像xilinx的ip一样的可以配置参数的IP核,但是用其他工程调用后发现还是能看到源文件,如何将工程源文件加密,暂时没有找到方法,如果知道还请赐教。而直接用.edif网表文件作为ip的方法如下:

1、建立工程设置顶层模块

将需要封装的模块设置为顶层模块。(shift_bus模块)

2、综合待封装模块

vivado综合时会默认将输入输出端口添加buffer缓存,而封装的模块大多都是用在一个大的模块的内部,综合不能添加iobuf,在ISE的综合选项中有-iobuf选项而在Vivado中该选项是隐藏的,可以在综合设置窗口的Options下面最后一项 More Options一栏写入“-no_iobuf”,然后综合即可。
3、生成.edif网表文件

打开综合后的设计:在Flow Navigator中点击“Open Synthesis Deisgn”

在TCL Console中输入:“write_edif  /path/xx.edif” 。特别注意:路径分隔字符为“/”(得到的网表文件为shift_bus.edif)

4、建立wrapper

建立一个与待封装模块同名的.v文件,该文件只描述该模块的接口。(shift_bus.v)
                                                                               
5、调用

将shift_bus.v和shift_bus.edif文件添加到需要调用的工程中,然后直接对shift_bus模块进行例化即可。

原文:https://blog.csdn.net/u011435907/article/details/78233375

原文地址:https://www.cnblogs.com/lidan2019/p/10316043.html

时间: 2024-11-09 08:41:23

Vivado将模块封装为IP的方法(网表文件)【转】的相关文章

简易的highcharts公共绘图模块封装--基于.net mvc

运行效果: 之所以选择这个图表插件,是因为它较其他同类插件轻量且中文文档详细完整,Demo丰富,配置使用简单.具体内容请登录中文官网:http://www.hcharts.cn/ 项目详细: 项目环境:win10+visual studio 2015 +.net framework 4.5 后台技术:.net mvc + c# 前端技术:Matrixadmin(国外的一款基于bootstrap的后台模板框架)+jquery+highcharts 代码实现: 设定系统目前支持的图表类型:EnumC

qt获得本地IP的方法,qt中域名解析的方法

本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境:Ubuntu10.04 + Qt4.7.0 Linux获得本地IP的方法,我尝试了两种 1.用QHostInfo类解析 QHostInfo类可以解析域名,理论上也可以解析本地IP,可是经过尝试,我发现解析出来的IP是127.0.0.1是本地回环地址,不符合我的需求. 代码: [cpp] view plain copy //获取本地IP QHostInfo info=QHostInfo::from

Node.js模块封装及使用

Node.js中也有一些功能的封装,类似C#的类库,封装成模块这样方便使用,安装之后用require()就能引入调用. 一.Node.js模块封装 1.创建一个名为censorify的文件夹 2.在censorify下创建3个文件censortext.js.package.json.README.md文件 1).在censortext.js下输入一个过滤特定单词并用星号代替的函数. var censoredWorlds=["sad","bad","mad&

React-Native开发之原生模块封装(Android)升级版

 本文主题:如何实现原生代码的复用,即如何将原生模块封装. 有时候我们的应用需要进行访问原生平台系统的API接口,但是React Native可能还没有封装相应功能组件.还有可能我们需要 去复用一些原生java代码而不是让JavaScript重新去实现一遍.或者我们可能需要些一些更加高级的功能代码,所线程相关的.例如: 图片处理,数据库以及一些高级功能扩展之类的. React Native平台的开发其实本身也是可以让你写纯原生代码并且还可以让你访问原生平台的功能.这是一个比较高级的功能不 过官方

【p2】·python中嵌套列表list元素输出·模块封装·发布上传(pigeon详细说)

如果你也正在学习<Head First Python>,可以相互学习.接下来将记录如何完成书本的这一章以及遇到的问题如何解决. 一.简单访问列表数据 [1]通过位置访问具体数据,0表示第一位[如下图] [2]计算列表长度[使用len] [3]列表末尾增加--删除元素,append增肌,pop删除,注意不同用法 append括号里放想添加元素,列表.pop()就能删除 [4]extend添加多个元素[如想在后面添加5,6,7],留意跟append区别 append保留着数据项中括号,缺陷 ---

字符串获取类、封装检测数字的方法

1.charAt()方法: 从整个字符串中找到某子字符,即返回指定位置的字符.charAt(str.length).里面的数字最大为字符串长度减一 eg:stringObject.charAt(index):如果参数 index 不在 0 与 string.length 之间,该方法将返回一个空字符串 var str = '妙味课堂'; var str = '妙味课堂'; // alert( str.length ); // alert( str.charAt() ); //默认为第0个 //

原生ajax与封装的ajax使用方法

当我们不会写后端接口来测试ajax时,我们可以使用node环境来模拟一个后端接口. 1.模拟后端接口可参考http://www.cnblogs.com/heyujun-/p/6793900.html网站整站开发小例子,在打开命令窗口并转到所在项目文件夹下在命令行中输入npm install express --save,安装express中间件. 2.把当中的app.js的内容换成 var express=require('express'); //var path=require('path'

关于linux Centos 7一个网卡配置多个IP的方法

因最近笔者在工作遇到这样一种情况,对多台服务器做组网规划的时候,客户方给出的IP数量有限, 不够每一台主机都分配到IP,但笔者又想了一下,不一定每台服务都得使用DCN网地址, 因此笔者想到可以对必须使用DCN网地址的网卡配置两个IP,一个DCN网地址,一个我们自己定义的私有IP地址 笔者以vmware虚拟机下的操作系统:Centos 7为例,具体配置过程如下: [方法一:通过网卡的配置文件添加多个IP] 1.编辑eno16777736网卡配置文件/etc/sysconfig/network-sc

架构练习:c语言实现贪吃蛇(三):封装蛇的移动方法

目前进展: 封装蛇的移动方法: typedef struct snakeinfo { int numParts;/* how many parts,蛇身体分多少个段 */ int lenParts[GAME_WIDTH];/* 蛇身体每段的长度 */ int xPartsHead[GAME_WIDTH];/* 蛇身体第i段的x坐标,初始值为1 */ int yPartsHead[GAME_WIDTH];/* 蛇身体第i段的y坐标,初始值为1 */ uchar direction;/* 蛇当前在像