在FPGA的设计中,对于一些复杂的工程,往往需要模块化的设计。把一个个的模块封装成独立的IP核,这样就可以把原先大的工程分成一个个IP核之间的拼接。
这篇文章介绍了自定义IP的详细生成过程,以及后续的修改的方法。
自定义IP核的创建
写好了verilog代码或者BD文件后,比如我这里写了一个可设置位数的最简单的加法器
module add#(
parameter len = 8 )
(
input wire [len-1:0]a,
input wire[len-1:0]b,
output wire[2*len-1:0]c
);
assign c=a+b;
endmodule
然后按照以下图片中的流程进行打包
以上为IP核的打包流程,记住自己的打包路径。
IP核 的使用
首先要把IP核保持的路径加入到工程中,如下图
添加进去时会提示路径中包含的IP核
然后我们在IP的搜索界面中就能看到刚刚添加的IP了
可以设置位宽
IP核的后续修改
添加到工程里的IP是不能直接修改的,文件是只读的形式
我们需要右击IP核
会打开一个IP核自身的工程,在这里IP是可以修改的
比如我这里再添加一个输入
修改完以后需要进入
把Packaging Steps中的每一项都再编译一遍
最后再Re-Package IP
完成后关掉该工程。
回到原来的工程后我们会发现IP处于锁定的状态
这时候点击
然后
可以看到,此时的IP已经修改完成了
写在最后
以上就是IP核的创建和修改过程,希望对大家有所帮助