Vivado生成网表文件并创建自定义IP

评论: 0 浏览: 1455 ***新更新时间: 3周前

平台:vivado2018.3

应用场景,在设计的过程中,我们一些特定的模块需要交付给别人,但是又不想让他们看到其中的源码。就可以将源码封装成网表和IP文件。

vivado生成网表文件

设置综合。设置-flatten_hierarchy* 为full。

这里可以设置为full或者rebuilt。

设置为full,后续需要生成.v文件和.edf文件。设置成rebuilt只需要生成.edf文件。

在more options*选项中设置为 -mode out_of_context,让输入输出的引脚不加IO buffer。

Vivado生成网表文件并创建自定义IP

综合成网表后生.v文件,该文件的名字不应该和你的名字一样建议加上后缀。

//vivado 2017.4及以前
write_verilog -mode port .v
//vivado 2018.1及以后
write_verilog -mode synth_stub .v
//.v为设置的文件路径及.v文件名,例如:D:/Users/Desktop/1/a.v (注意斜线)

生成.edf文件语句。

//模块不包含Xilinx的IP
write_edif .edf
//模块包含Xilinx的IP
write_edif -security_mode all .edf
//.edf为设置的文件路径及.edf文件名,例如:D:/Users/Desktop/1/a.edf (注意斜线,与.v文件名保持相同)

生成的网表如果需要调用仿真。

write_verilog -mode funcsim .v

不指定-mode导出verilog代码(应该相当于综合后的电路代码):

write_verilog .v

如原文件为pcie_top.v新生成的文件名字为pcie_***.v。

综合完成后将顶层写成.v和.edf文件。

Vivado生成网表文件并创建自定义IP

检查文件夹中是否生成了。

Vivado生成网表文件并创建自定义IP

两个文件。

下面我们新建工程在新工程中调用这两个文件.v和.edf文件。

Vivado生成网表文件并创建自定义IP

综合完成后。

使用该网表生成IP核

Vivado生成网表文件并创建自定义IP

Vivado生成网表文件并创建自定义IP

Vivado生成网表文件并创建自定义IP

点击ok和finish。该过程会生成一个vivado工程,该工程只是在配置该IP的时候有效。下面进行配置IP。名字叫做my_pcie3,类型为UserIP。

Vivado生成网表文件并创建自定义IP

对一下你的IP端口,输入输出。

Vivado生成网表文件并创建自定义IP

生成该IP。

Vivado生成网表文件并创建自定义IP

Vivado生成网表文件并创建自定义IP

查看生成的IP文件夹。Src文件夹下只包含顶层文件和网表文件。

Vivado生成网表文件并创建自定义IP

下面在pcie_recon6中调用该IP。验证项目的可行性。

新建工程,将IP文件夹保存在当前项目目录下。

Vivado生成网表文件并创建自定义IP

在工程中添加该IP。

Vivado生成网表文件并创建自定义IP

生成IP报错。

Vivado生成网表文件并创建自定义IP

根据报错将网表文件添加到该文件夹。

Vivado生成网表文件并创建自定义IP

 

IP成功编译。

将IP添加到项目。通过综合和实现后,发现时序编译不过。

Vivado生成网表文件并创建自定义IP

从vivado的report timing summer中可以看到。Vivado自动识别的时钟并不准确。可以看到和正常编译过了的版本工程很多时钟周期约束都不准确。下面是正常版本的时钟约束。

Vivado生成网表文件并创建自定义IP

准备将该版本中的时钟进行约束一遍。看看能否过静态时序分析。

同时在tcl中使用report_clock查看时钟约束是否正常,经过分析报告,发现时钟约束很多都有问题。(原因暂时没有想到,我是通过工程生成的网表,然在生成的IP,按理说应该拥有正常的时钟约束,这点没有想明白)

Vivado生成网表文件并创建自定义IP

创建时钟约束。

Vivado生成网表文件并创建自定义IP

前面是正常出来的lb_clk_0后面这个是使用网表综合后生成的就变了。这个情况该怎么办呢?对这个错误的时钟从新约束一次吗?

经过查阅资料发现,在生成网表文件时,若生成的edf文件中包含PLL IP CORE,则对应的IP的时序约束会失效,建议不要在edf文件中不要使用PLL IP,可以将PLL放在网表外面。


发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

点击启动AI问答
Draggable Icon