如何将自己写的verilog模块封装成IP核
=======================第一篇=======================
将你的设计制作成BlackBox,也就是网表文件,这样别人看不到你的设计但是可以调用你的模块了。详细的参考信息如下:
1. 什么是BlackBox
- 一个大的设计中可以用到一系列网表文件作为输入的一部分而并不全部使用HDL文件。当综合这个大设计时综合器不需要知道这个网表文件是怎样实现的,而只需要知道它的输入输出接口就可以了。这样的网表就称为黑盒子,因为我们不需要看到它的内部情况。
- 通常付费IP都会以BlackBox的形式
2. 如何使用BlackBox
- BlackBox网表可以是EDIF或NGC文件。
- 每个BlackBox网表都需要有一个与之相对应的HDL文件来注明它的端口。这个HDL只说明BlackBox的端口信息,而不提供具体实现信息。这个只提供端口信息的HDL文件称为Wrapper。Wrapper的名字通常需要与BlackBox网表的名字相同。
- 在ISE工程中使用BlackBox时只需要将它的Wrapper添加到工程中。然后像普通的模块一样在其上层声明和例化就可以使用。
- BlackBox网表文件可以放在ISE工程目录中,也可以放在其他任意文件夹内。当不放在ISE工程目录时,需要在Translate属性中将Macro Search Path指向这个目录。多个目录使用"|"分割。
3. 如何制作BlackBox
- BlackBox只是普通网表而已。XST的综合结果就可以直接作为BlackBox使用。
- 通常BlackBox外部还会连接其他逻辑,所以BlackBox中一般不插入IOBUF。在XST属性中去除Insert IO Buffer的选项。
引自:http://www.cnblogs.com/youngfq/archive/2011/06/15/2081123.html
=======================第二篇=======================
【问】ISE开发套件能否将自己写的模块封装成ip?这里所说的IP是指类似于用core generator生成的IP格式。
若不能,是否还有其它的工具能将自己所写的模块封装成IP
【答】这个可以吧,你如果只是做成一个IP core用ISE里面的开发套件就行了,如果要接到xilinx的microblaze核或者是powerpc核上就要用XPS来生成
引自:http://www.eetrend.com/forum/100023865
=======================第三篇=======================
【问】ISE 中是否可以把自己代码封装成一个IPcore?
【答】使用PlanAhead 中的将你的设计转换为PBlock,然后加上约束条件再export 就可以了。以后你要用的话,只需要import 这个PBlock 就可以了。这样做的核是硬核。当然咯,你也可以使用.edif + .ncf 这样就是固核,如果你要求灵活性最高的话,就使用RTL + constraint 这样就是软核了。
引自:http://group.chinaaet.com/109/1729
=======================第四篇=======================
【楼主】请教把verilog代码封装成IP核
请教各位,怎么将自己写的verilog代码模块封装成网表型式的IP核呢?
【一楼】
Altera提供的方案为:封装成qxp文件 ,具体步骤如下:
1.需要创建一个Quartus II 顶层设计项目 并且确保该项目目标器件与该.qxp文件目标器件相同(或者说至少相同器件系列(在不包括布局布线信息前提下).
【二楼】谢谢!再问下对于xilinx的FPGA,在ISE上怎么实现呢?
【三楼】xilinx CORE Generate 在开始ISE design tools/tools里,没用过。。。楼主用完可以分享下经验
【四楼】将一个子模块单独综合后,会得到ngc文件或者edif文件。在调用模块的时候,仅需将.ngc 文件放在工程目录下。详细过程查阅xilinx官方手册。 附:常见文件类型说明 XCO: This file contains core options and parameters. EDN/NGC: This is the implementation netlist for the IP cores which output netlists. It is passed on to the Translate (NGDBuild) process. SYM: This schematic symbol is automatically generated for instantiating the IP in a schematic. VHO or VEO template files: These files are automatically generated for instantiating the IP in an HDL file. VHD or V simulation wrapper files: These files are provided for simulation of IP cores which output netlists. VHD or V source-code files: These files are the actual source-code required for both synthesis and simulation of IP cores which output source-code.
【五楼】今天试了试好像还挺容易的。 只要把将一个子模块单独综合,把综合属性里的“Add I/O Buffers”去掉,综合,生成的ngc网表再加上你自己做的一个wrapper文件(就是只有端口列表的.v或者.vhd文件),就可以调用了了。 wrapper文件里要注明: // XST black box declaration // box_type "black_box" // synthesis attribute box_type of sdram_top is "black_box" 不过要注意的是,如果代码里例化了I/O Buffer的话,去掉这个综合选项是不会将例化的buffer删除的。这种情况下,别人用你的IP的时候就要注意了,不能重复添加buffer。 详细的请参考:http://www.xilinx.com/support/answers/34771.htm
转自:http://forum.eepw.com.cn/thread/208146/1
=======================第五篇=======================
【楼主】求助:如何将自己写的verilog模块封装成IP核
自己写了一些verilog模块,想封装成IP核或者类似的黑盒,以防误改,也可以给别人用(但是不想让别人看到源码),请教有什么方法吗?
【一楼】好像是可以这么做的. 小版印象中,在ISE中做XST综合的时候,去掉"Insert IO Buffers",然后给别人一个ngc netlist和blackbox wrapper.
具体信息,你可以在xilinx的主页搜索 blackbox.应该有具体的方法参考.
【五楼】SuperX-man说的就可以实现。把综合选项里的“Add I/O Buffers”去掉,综合,生成的ngc网表再加上你自己做的一个wrapper文件(就是只有端口列表的.v或者.vhd文件),就可以交给别人用了。不过要注意的是,如果代码里例化了I/O Buffer的话,去掉这个综合选项是不会将例化的buffer删除的。这种情况下,别人用你的IP的时候就要注意了,不能重复添加buffer。
看看这个:http://www.xilinx.com/support/answers/34771.htm
转自:http://bbs.21ic.com/icview-201989-1-1.html
=======================第六篇=======================
【楼主】如何将自己写的VHDL/verilog模块封装成IP核?
看到之前的一个帖子,“把综合选项里的“Add I/O Buffers”去掉,综合,生成的ngc网表再加上你自己做的一个wrapper文件(就是只有端口列表的.v或者.vhd文件)”,不明白的是wrapper文件的格式是什么,哪位大侠给个例子看看,谢谢!
【一楼】就是把你综合网表时候的顶层文件加以修改就行了.
VHDL的话就是留下entity和一个空的architecture.
Verilog就是留下port.
然后把这个文件和综合出来的NGC文件放在同一目录下就行了.
【二楼】
ls正解。
具体原理是这样的:
Xilinx ISE中的综合工具XST在综合时候会将只有IOport的VHDL和verilog模块综合成一个blackbox。
在map和P&R的时候,xilinx的工具会在项目工程的根目录下找各个blackbox对应的ngc文件。如果找到,就替换掉blackbox,否则就报错。
所以想要封装成IP的话,一个是要不包含IO Buffer的ngc文件,用于Mapping和P&R,另一个就是仅包含IOPORT的verilog或VHDL文件,用于XST工具综合。但这两个文件的模块名称和IOPORT必须要一致
如何将自己写的verilog模块封装成IP核的更多相关文章
- 将自己写的HDL代码封装成带AXI总线的IP
将自己写的HDL代码封装成带AXI总线的IP 1.Tools->create and package IP 2.create AXI4总线的IP 3.新建block design 4.点击右键, ...
- 关于把RTL工程代码封装成IP时对define宏定义参数的处理
在把RTL工程封装成IP的时候,如果工程中的代码中含有global include中定义的参数,则vivado不支持该参数文件的封装.出现IP_FLOW 19-4646的错误代码,解决方法: 1.在用 ...
- Xilinx Vivado的使用详细介绍(5):调用用户自定义封装的IP核
Zedboard OLED Display Controller IP v1 介绍 Author:zhangxianhe 本文档提供了快速添加,连接和使用ZedboardOLED v1.0 IP内核的 ...
- Vivado使用技巧(二):封装自己设计的IP核
由 judyzhong 于 星期五, 09/08/2017 - 14:58 发表 概述 Vivado在设计时可以感觉到一种趋势,它鼓励用IP核的方式进行设计.“IP Integrator”提供了原 ...
- Vivado使用技巧:封装自己设计的IP核
概述 Vivado在设计时可以感觉到一种趋势,它鼓励用IP核的方式进行设计.“IP Integrator”提供了原理图设计的方式,只需要在其中调用设计好的IP核连线.IP核一部分来自于Xilinx ...
- 利用python自动生成verilog模块例化模板
一.前言 初入职场,一直忙着熟悉工作,就没什么时间更新博客.今天受“利奇马”的影响,只好宅在家中,写写技术文章.芯片设计规模日益庞大,编写脚本成了芯片开发人员必要的软技能.模块端口动不动就几十上百个, ...
- python解析xml模块封装代码
在python中解析xml文件的模块用法,以及对模块封装的方法.原文转自:http://www.jbxue.com/article/16586.html 有如下的xml文件:<?xml vers ...
- python + selenium 模块封装及参数化
模块封装 示例代码: baidu.py from time import sleep from selenium import webdriver driver = webdriver.Chrome( ...
- 把jQuery的类、插件封装成seajs的模块的方法
这篇文章主要介绍了把jQuery的类.插件封装成seajs的模块的方法,需要的朋友可以参考下 注:本文使用的seajs版本是2.1.1 一.把Jquery封装成seajs的模块 define(func ...
随机推荐
- java接口签名(Signature)实现方案续
一.前言 由于之前写过的一片文章 (java接口签名(Signature)实现方案 )收获了很多好评,此次来说一下另一种简单粗暴的签名方案.相对于之前的签名方案,对body.paramenter.pa ...
- 依赖配置中心实现注有@ConfigurationProperties的bean相关属性刷新
配置中心是什么 配置中心,通过key=value的形式存储环境变量.配置中心的属性做了修改,项目中可以通过配置中心的依赖(sdk)立即感知到.需要做的就是如何在属性发生变化时,改变带有@Configu ...
- type__元组、字典、集合
- YOLO系列:YOLO v3解析
本文好多内容转载自 https://blog.csdn.net/leviopku/article/details/82660381 yolo_v3 提供替换backbone.要想性能牛叉,backbo ...
- 进程篇:wait & waitpid
#include <sys/types.h> /* 提供类型pid_t的定义 */ #include <sys/wait.h> pid_t wait(int *status) ...
- JavaScript基础笔记(十二)Ajax
Ajax 一.XMLHttpRequest对象 一)XHR用法 var xhr = new XMLHttpRequest(); //open()方法,参数一:发送方法,参数二:请求的URL,参数三:是 ...
- Ubuntu安装python3虚拟环境
大多数Linux自带python2.7,而Ubuntu1.6也自带python3.x,本文章主要记录virtualenv+vitualenvwrapper使用python3虚拟环境 虚拟环境好处不多说 ...
- No compiler is provided in this environment.Perhaps you are running on a JRE rather than a JDK?报错解决
Maven install 时出现如上错误. Eclipse-->Window-->preferences-->Java-->Installed JREs 查看jdk: 发现此 ...
- It is not safe to rely on the system's timezone settings错误
在写php程序中有时会出现这样的警告: PHP Warning: date(): It is not safe to rely on the system's timezone settings. Y ...
- Django构建简介
MVC框架 MVC:Model View Controller,是软件工程中的一种软件构架模式,把软件系统分为三个基本模型,具有耦合性低.重用性高.生命周期成本低等优点 Model:模型,操作数据库 ...
(2014-11-21 14:53:29)