如何将自己写的verilog模块封装成IP核

(2014-11-21 14:53:29)

标签:

财经

分类: 我的东东

=======================第一篇=======================

如何将自己写的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文件目标器件相同(或者说至少相同器件系列(在不包括布局布线信息前提下).

2.使用提供的端口信息实例这个设计模块;
3.在Porcessing Menu 上, 点击Start/Perform Analysis & Elaboration , 验证该设计的层次.
4.为这个设计模块实例创建一个design partition. Right-click the instance name in the Project Navigator, andchoose Set as design partition.
5.导入这个.qxp文件到相关的partition hierarchy. 如果你使用the Quartus II GUI, 则在Project menu,选择
Import Design Partition,select the partition for the design block, and browse to the .qxp file provided.

【二楼】谢谢!再问下对于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必须要一致

引自:http://www.eefocus.com/bbs/article_1103_175879.html

 

如何将自己写的verilog模块封装成IP核的更多相关文章

  1. 将自己写的HDL代码封装成带AXI总线的IP

    将自己写的HDL代码封装成带AXI总线的IP 1.Tools->create and package IP 2.create AXI4总线的IP 3.新建block design 4.点击右键, ...

  2. 关于把RTL工程代码封装成IP时对define宏定义参数的处理

    在把RTL工程封装成IP的时候,如果工程中的代码中含有global include中定义的参数,则vivado不支持该参数文件的封装.出现IP_FLOW 19-4646的错误代码,解决方法: 1.在用 ...

  3. Xilinx Vivado的使用详细介绍(5):调用用户自定义封装的IP核

    Zedboard OLED Display Controller IP v1 介绍 Author:zhangxianhe 本文档提供了快速添加,连接和使用ZedboardOLED v1.0 IP内核的 ...

  4. Vivado使用技巧(二):封装自己设计的IP核

    由 judyzhong 于 星期五, 09/08/2017 - 14:58 发表 概述   Vivado在设计时可以感觉到一种趋势,它鼓励用IP核的方式进行设计.“IP Integrator”提供了原 ...

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

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

  6. 利用python自动生成verilog模块例化模板

    一.前言 初入职场,一直忙着熟悉工作,就没什么时间更新博客.今天受“利奇马”的影响,只好宅在家中,写写技术文章.芯片设计规模日益庞大,编写脚本成了芯片开发人员必要的软技能.模块端口动不动就几十上百个, ...

  7. python解析xml模块封装代码

    在python中解析xml文件的模块用法,以及对模块封装的方法.原文转自:http://www.jbxue.com/article/16586.html 有如下的xml文件:<?xml vers ...

  8. python + selenium 模块封装及参数化

    模块封装 示例代码: baidu.py from time import sleep from selenium import webdriver driver = webdriver.Chrome( ...

  9. 把jQuery的类、插件封装成seajs的模块的方法

    这篇文章主要介绍了把jQuery的类.插件封装成seajs的模块的方法,需要的朋友可以参考下 注:本文使用的seajs版本是2.1.1 一.把Jquery封装成seajs的模块 define(func ...

随机推荐

  1. C#多线程编程实战(二)

    1.1 简介 为了防止一个应用程序控制CPU而导致其他应用程序和操作系统本身永远被挂起这一可能情况,操作系统不得不使用某种方式将物理计算分割为一些虚拟的进程,并给予每个执行程序一定量的计算能力.此外操 ...

  2. SPOJ COT3.Combat on a tree(博弈论 Trie合并)

    题目链接 \(Description\) 给定一棵\(n\)个点的树,每个点是黑色或白色.两个人轮流操作,每次可以选一个白色的点,将它到根节点路径上的所有点染黑.不能操作的人输,求先手是否能赢.如果能 ...

  3. BZOJ.1805.[IOI2007]sail船帆(贪心 线段树)

    BZOJ 洛谷 首先旗杆的顺序没有影响,答案之和在某一高度帆的总数有关.所以先把旗杆按高度排序. 设高度为\(i\)的帆有\(s_i\)个,那么答案是\(\sum\frac{s_i(s_i-1)}{2 ...

  4. This 关键字的三个用处

    ---恢复内容开始--- 1.this调用本类中的属性,也就是类中的成员变量 2.this调用本类中的其他构造方法,调用时要放在构造方法的首行. 1.this调用本类中的属性,也就是类中的成员变量 1 ...

  5. BZOJ4910 : [Sdoi2017] 苹果树

    问题等价于树形依赖背包,允许一条链每个点各免费一次. 设$f[i][j]$表示按DFS序考虑到$i$,体积为$j$的最大收益. 先放入不能免费的物品,等遍历完儿子后再放入必选的物品,那么$i$到根路径 ...

  6. jsp 出现cannot be resolved to a type问题解决办法

    (1)检查<%@ page import>是否导入了相关的包.若是没有则需导入 (2)若导入相应的包后问题仍然存在则需创建相关的servlet

  7. 如何修改CCS 7.2 代码和注释的颜色以及折叠代码

    默认的字体总是让人感觉很难受,作为一个热爱生活的人,工作的时候也得尽力创造一个舒适的环境----程序猿们,对自己好一点. 首先废话一下--------------------------------- ...

  8. C语言中字符输入问题

    先上例题,一道太水太水的题, http://acm.hdu.edu.cn/showproblem.php?pid=1170 让做一个简单的计算器.然而入坑了. #include<stdio.h& ...

  9. 常见的git清单

    我们每天使用 Git ,但是很多命令记不住. 一般来说,日常使用只要记住下图6个命令,就可以了.但是熟练使用,恐怕要记住60-100个命令. 这篇文章是从别人博客上copy重新整理出来的,作为笔记用, ...

  10. java 多样输入框

    1.不一样的输入框 输入框只能输入字母和下划线的正则表达式 <input type="text" onkeyup="this.value=this.value.re ...