=============================
在上一篇文章中我们介绍了Vivado采用了同一的数据库模型,即DCP(Design Checkpoint)。在综合和实现的各个子步骤(opt_design、place_design和route_design)之后都会生成相应的.dcp文件。那么它和我们传统意义的网表文件有什么差异呢。
以Vivado自带的例子工程wavegen为例。这个设计中有两个IP:char_fifo和clk_gen,两者均采用OOC的综合方式。我们可以通过7-zip软件将synth_design、opt_design,、place_design和route_design生成的.dcp文件解压。首先对比一下synth_design和opt_design生成的.dcp文件,如下图所示。
从该图中可以看到,相比于综合后的.dcp,opt_design生成的.dcp内部包含了约束文件,这意味着,如果需要对.dcp进行策略扫描,最好直接提供opt_design生成的.dcp,因为这样不必再单独提供约束文件。两者的共同之处:都包含.edf文件,这是标准的网表文件。尽管这两个.edf文件名相同,但内容是不同的。在Vivado Tcl模式下,执行如下两条命令(命令中的.dcp文件为综合后的.dcp文件):
open_checkpoint wave_gen.dcp
opt_design
opt_design失败,并会显示如下错误信息,可以看到char_fifo和clk_gen是黑盒子。
进一步,打开综合后.dcp解压生成的.edf文件,从中可以找到如下信息:
可以看到综合后生成的网表文件把采用OOC综合的IP当做黑盒子处理了。
对比opt_design、place_design和route_design生成的.dcp,其解压后的结果如下图所示。可以看到文件类型是一致的。
如果需要综合后生成的.dcp文件包含采用OOC综合的IP而不是把这些IP当做黑盒子处理,可以首先打开Vivado工程,再选择Open Synthesized Design,然后在Tcl console中执行write_checkpoint wavegen_syn.dcp即可。此时生成的.dcp也包含了相应的约束文件,解压后的文件类型与opt_design生成.dcp解压后的结果一致。
结论:
-综合后生成的.dcp文件会把以OOC方式综合的IP当作黑盒子处理
-如果希望综合后生成的.dcp包含以OOC方式综合的IP以及工程中使用的约束文件,可以打开综合后的设计,通过write_checkpoint命令重新生成.dcp即可
领取专属 10元无门槛券
私享最新 技术干货