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

平台:vivado2018.3

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

vivado生成网表文件

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

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

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

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

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

//vivado 2017.4及以前
write_verilog -mode port <design_name>.v

//vivado 2018.1及以后
write_verilog -mode synth_stub <design_name>.v

//<design_name>.v为设置的文件路径及.v文件名,例如:D:/Users/Desktop/1/a.v (注意斜线)

生成.edf文件语句。

//模块不包含Xilinx的IP
write_edif <design_name>.edf

//模块包含Xilinx的IP
write_edif -security_mode all <design_name>.edf

//<design_name>.edf为设置的文件路径及.edf文件名,例如:D:/Users/Desktop/1/a.edf (注意斜线,与.v文件名保持相同)

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

write_verilog -mode funcsim <design_name>.v

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

write_verilog <design_name>.v

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

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

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

两个文件。

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

综合完成后。

使用该网表生成IP核

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

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

生成该IP。

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

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

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

在工程中添加该IP。

生成IP报错。

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

IP成功编译。

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

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

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

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

创建时钟约束。

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

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

相关推荐
DS小龙哥11 小时前
基于Zynq FPGA的雷龙SD NAND存储芯片性能测试
fpga开发·sd nand·雷龙·spi nand·spi nand flash·工业级tf卡·嵌入式tf卡
上理考研周导师20 小时前
第二章 虚拟仪器及其构成原理
fpga开发
FPGA技术实战1 天前
《探索Zynq MPSoC》学习笔记(二)
fpga开发·mpsoc
bigbig猩猩1 天前
FPGA(现场可编程门阵列)的时序分析
fpga开发
Terasic友晶科技2 天前
第2篇 使用Intel FPGA Monitor Program创建基于ARM处理器的汇编或C语言工程<二>
fpga开发·汇编语言和c语言
码农阿豪2 天前
基于Zynq FPGA对雷龙SD NAND的测试
fpga开发·sd nand·spi nand·spi nand flash·工业级tf卡·嵌入式tf卡
江山如画,佳人北望2 天前
EDA技术简介
fpga开发
淘晶驰AK2 天前
电子设计竞赛准备经历分享
嵌入式硬件·fpga开发
最好有梦想~2 天前
FPGA时序分析和约束学习笔记(4、IO传输模型)
笔记·学习·fpga开发