跳至正文

ISE如何封装与使用IP —— 使用ngc文件与仅包含端口的v文件

标签:


一. 为什么要封装IP

  1. IP封装后只能用不能改,也看不到源码,便于保护知识产权

  2. 封装之后不会再花时间综合源文件,节省了综合时间


二. ISE如何封装IP

步骤如下:

1)打开ISE,新建工程,添加源文件

2)去除Synthesize的-iobuf属性


iobuf指的是在输入输出端口添加缓冲,一般只需要在最外侧的端口添加,内部模块间的互联端口不需要添加,而IP不会作为最顶层模块,所以此处需要取消iobuf的勾选。

3)点击综合,生成*.ngc文件

ngc文件是一种二进制文件,无法通过文本编辑器打开看到内部代码,这使得使用者拿到ngc文件无法直接使用,因为看不到IP的端口信息,也就不知道怎么去实例化IP,所以,ngc文件需要搭配一个IP端口文件一起使用。而ISE也需要一个与ngc文件同名的而仅包含模块端口的文件才能去调用ngc文件。否则会报错,如下图所示。

Instantiating * from unknown module *

或者是 can’t find module *

4)生成IP端口文件

只需要将源文件的顶层文件端口复制过来即可,文件名保持不变

5)整理IP相关文件并压缩保存

*.ngc文件 + 仅包含端口的*.v文件 + * IP使用说明.pdf文件(如果有的话) 整理在一个文件夹中,然后压缩。


三. ISE使用ngc文件 + 仅包含端口的同名v文件

可见,ISE将仅包含端口的*.v文件视为一个black box(黑盒),所以,也可以说使用ngc文件和black box文件。


如果本文对你有所帮助,欢迎点赞、转发、收藏、评论让更多人看到,赞赏支持就更好了。

如果对文章内容有疑问,请务必清楚描述问题,留言评论或私信告知我,我看到会回复。


徐晓康的博客持续分享高质量硬件、FPGA与嵌入式知识,软件,工具等内容,欢迎大家关注。

0 0 投票数
文章评分
订阅评论
提醒
0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x
目录