如何将自己写的verilog模块封装成IP核(二)
=======================第一篇=======================
如何将自己写的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属性中将MacroSearch Path指向这个目录。多个目录使用"|"分割。
3. 如何制作BlackBox
- BlackBox只是普通网表而已。XST的综合结果就可以直接作为BlackBox使用。
- 通常BlackBox外部还会连接其他逻辑,所以BlackBox中一般不插入IOBUF。在XST属性中去除Insert IOBuffer的选项。
引自:http://www.cnblogs.com/youngfq/archive/2011/06/15/2081123.html
=======================第二篇=======================
【问】ISE开发套件能否将自己写的模块封装成ip?这里所说的IP是指类似于用core generator生成的IP格式。
若不能,是否还有其它的工具能将自己所写的模块封装成IP
【答】这个可以吧,你如果只是做成一个IPcore用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 designtools/tools里,没用过。。。楼主用完可以分享下经验
【四楼】将一个子模块单独综合后,会得到ngc文件或者edif文件。在调用模块的时候,仅需将.ngc文件放在工程目录下。详细过程查阅xilinx官方手册。 附:常见文件类型说明 XCO: This file contains coreoptions and parameters. EDN/NGC: This is the implementation netlistfor the IP cores which output netlists. It is passed on to theTranslate (NGDBuild) process. SYM: This schematic symbol isautomatically generated for instantiating the IP in a schematic.VHO or VEO template files: These files are automatically generatedfor instantiating the IP in an HDL file. VHD or V simulationwrapper files: These files are provided for simulation of IP coreswhich output netlists. VHD or V source-code files: These files arethe actual source-code required for both synthesis and simulationof IP cores which output source-code.
【五楼】今天试了试好像还挺容易的。 只要把将一个子模块单独综合,把综合属性里的“Add I/OBuffers”去掉,综合,生成的ngc网表再加上你自己做的一个wrapper文件(就是只有端口列表的.v或者.vhd文件),就可以调用了了。wrapper文件里要注明: // XST black box declaration // box_type "black_box"// synthesis attribute box_type of sdram_top is "black_box"不过要注意的是,如果代码里例化了I/OBuffer的话,去掉这个综合选项是不会将例化的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 IOBuffers",然后给别人一个ngc netlist和blackbox wrapper.
具体信息,你可以在xilinx的主页搜索 blackbox.应该有具体的方法参考.
【五楼】SuperX-man说的就可以实现。把综合选项里的“Add I/OBuffers”去掉,综合,生成的ngc网表再加上你自己做的一个wrapper文件(就是只有端口列表的.v或者.vhd文件),就可以交给别人用了。不过要注意的是,如果代码里例化了I/OBuffer的话,去掉这个综合选项是不会将例化的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/OBuffers”去掉,综合,生成的ngc网表再加上你自己做的一个wrapper文件(就是只有端口列表的.v或者.vhd文件)”,不明白的是wrapper文件的格式是什么,哪位大侠给个例子看看,谢谢!
【一楼】就是把你综合网表时候的顶层文件加以修改就行了.
VHDL的话就是留下entity和一个空的architecture.
Verilog就是留下port.
然后把这个文件和综合出来的NGC文件放在同一目录下就行了.
【二楼】
ls正解。
具体原理是这样的:
XilinxISE中的综合工具XST在综合时候会将只有IOport的VHDL和verilog模块综合成一个blackbox。
在map和P&R的时候,xilinx的工具会在项目工程的根目录下找各个blackbox对应的ngc文件。如果找到,就替换掉blackbox,否则就报错。
所以想要封装成IP的话,一个是要不包含IOBuffer的ngc文件,用于Mapping和P&R,另一个就是仅包含IOPORT的verilog或VHDL文件,用于XST工具综合。但这两个文件的模块名称和IOPORT必须要一致
引自:http://www.eefocus.com/bbs/article_1103_175879.html
如何将自己写的verilog模块封装成IP核(二)相关推荐
- 如何将自己写的verilog模块封装成IP核(一)
平台与材料 一个写好的工程,综合通过,不用布局布线,ISE或Vivado皆可.如果是ISE,需要在properties里取消选中 iobuf .这样就只能被当做内部模块调用了. Vivado 步骤 打 ...
- bufg和bufgp_如何将自己写的verilog模块封装成IP核(一)
平台与材料 一个写好的工程,综合通过,不用布局布线,ISE或Vivado皆可.如果是ISE,需要在properties里取消选中 iobuf .这样就只能被当做内部模块调用了. Vivado 步骤 打 ...
- [转]ISE中如何将自己的verilog源代码.v或VHDL源代码.vhd封装打包成IP核?
=======================第一篇======================= 如何将自己写的verilog模块封装成IP核 将你的设计制作成BlackBox,也就是网表文件,这样 ...
- ISE中如何将自己的verilog源代码.v或VHDL源代码.vhd封装打包成IP核?
=======================第一篇======================= 如何将自己写的verilog模块封装成IP核 将你的设计制作成BlackBox,也就是网表文件,这样 ...
- ISE中将Verilog封装为IP核的方法
第一步:新建一个工程A 添加需要封装成IP核的代码到工程A中 第二步:属性设置 Synthesis-->Properties-->Xilinx Specific Options 把-iob ...
- 使用Quartus将用户模块封装成网表文件:Quartus17.0及之前版本.qxp文件、Quartus17.1及之后版本.qdb文件(上)
前面一篇文章介绍了Xilinx FPGA平台下如何封装用户的源代码,形成网表文件的操作教程,具体见: 使用Vivado将包含Xilinx IP的用户模块封装成网表文件(也适用不包含Xilinx IP的 ...
- 使用Quartus将用户模块封装成网表文件:Quartus17.0及之前版本.qxp文件、Quartus17.1及之后版本.qdb文件(下)
Xilinx FPGA平台下如何封装用户的源代码,形成网表文件的操作教程,具体见: 使用Vivado将包含Xilinx IP的用户模块封装成网表文件(也适用不包含Xilinx IP的用户模块) Alt ...
- verilog基础篇RAM IP核的使用
在该页面中,我们去掉了q output port(去掉输出寄存器),并且添加了一个rden读使能信号,所谓rden读使能信号就是,当该信号为高电平时,我们才可以读取RAM IP核中的数据. 其余的页面 ...
- 【Verilog基础】ROM IP 核基础知识
本小节为大家介绍一种较为常用的存储类 IP 核--ROM 的使用方法. ROM 是只读存储器(Read-Only Memory)的简称,是一种只能读出事先所存数据的固态半导体存储器.其特性是一旦储存资 ...
最新文章
- android开发环境搭建教程
- java web 跨域_java web服务端CORS跨域配置
- Python基础教程:return函数的用法
- css两栏式布局示例
- GDAL交流 QQ群
- gridview中的图片错乱解决办法
- python环境配置(一)——Linux下将python2.6升级到2.7 安装pip 以及升级中遇到问题的解决方法
- H5开发,打包成APK
- 分形吧matlab,Matlab在分形模拟上的一些应用
- 如何进行MDM的产品测试
- 网卡参数设置建议与各个网卡参数含义详解
- 特征点检测(Landmark detection)
- 汇编c 易语言编程软件,这些汇编用易语言怎么写?
- STM32、GD32、ESP32 的区别
- MODIS数据批量裁剪并合成月尺度数据:以MOD13A1为例
- 如何得到1-100中的质数
- 关于ubuntu16.04 安装过程中卡住问题解决方法
- java获取秒时间_关于java:以秒为单位获取当前时间
- jmeter阶梯式加压(逐渐加压和降压)
- 基础1-单位长度的解析
热门文章
- 如果输送知识不再重要,那么教育问题出在哪里?
- 导入特征怎么实体化_幼儿教师开展集体活动开场导入方法 看过的都说很实用!...
- chmod 赋权所有_Linux中利用sudo进行赋权的方法详解
- mysql 回滚 前滚_Oracle 实例恢复时 前滚 后滚说明
- 句法依存分析_恭喜 | 黑龙江大学自然语言处理实验室获得NLPCC2019跨领域移植中文依存句法分析封闭测试第一名!...
- powerdesigner生成php代码,让powerdesigner生成的sql语句在mysql上成功执行
- FPGA之道(80)静态时序分析(六)常用时序约束介绍(基于ISE的UCF文件语法)
- 【 MATLAB 】离散傅里叶级数(DFS)及 IDFS 的 MATLAB 实现
- vivo系统如何没root激活Xposed框架的经验
- ios 工具大全,最全框架