DCP文件


PART1:Vivado—DCP復用
在Xilinx的Vivado開發流程中,出於設計源代碼保密的考慮,有時我們並不會交付源代碼,而是以網表的形式進行交付,本篇就在Vivado中進行DCP復用方式進行說明。
先看一個簡單的example project,里面包含兩個verilog文件:
在這里插入圖片描述
在這里插入圖片描述
在頂層top里,我們例化了一個adder模塊,adder為一個簡單的加法器。當我們把這兩個文件導入VIvado后即可進行正常的布局布線。
那么問題來了,假設adder是我的一個核心設計(加法器代表一下哈),當其他人想使用我這個adder IP時我不想交付給對方源代碼,那么我應該如何做呢?
交付DCP!

何為DCP
在Vivado的設計流程各個階段里,采用統一的數據模型:DCP(design checkpoint),在Vivado的設計流程里,無論是綜合還是布局布線的各個階段,工具都會生成DCP文件,每一步的執行設計輸入均為上一階段的DCP文件(綜合階段除外)。那么當我們想把adder以網表形式進行交付時,我們就可以生成對應的綜合后的DCP文件,隨后將DCP文件交付給合作方即可。

甲方:DCP制作流程
在我們的設計中,我們把adder這個模塊作為設計的頂層:
在這里插入圖片描述
隨后進行綜合,當完成后,我們會在對應的目錄下看到生成了adder的DCP文件:
在這里插入圖片描述
同時,我們准備一個我們adder對應的設計頂層:
在這里插入圖片描述
這里的adder模塊不包含任何設計代碼,僅包含端口聲明。同時我們將這個模塊聲明為“black_box”
隨后,我們就可以把這個DCP文件和black box文件交付給別人使用了,而不用擔心我們的源代碼泄漏。

乙方:DCP的使用
當我們拿到別人的DCP文件和black box端口聲明文件后,我們還需要准備一個tcl文件:
在這里插入圖片描述
tcl文件中制定了adder.dcp的讀取位置。
隨后,我們將balck box文件和tcl文件導入到我們的設計中,top.v文件保持不變:
在這里插入圖片描述
隨后我們在Implement Setting中的opt_Desing中的tcl.pre中關聯導入的balck.tcl文件:
在這里插入圖片描述
Finally,我們就可以進行正常的綜合及布局布線了,布局布線完成后我們得到的網表和正常工程一模一樣。
在這里插入圖片描述

PART2:DCP的生成差別
前文曾提到過在Vivado里以DCP的方式來進行IP交付,而在Vivado里,不同的方式生成的DCP卻又有着別樣的內容。

綜合后直接生成的DCP
當我們的RTL設計完成后,首先第一步要做的就是跑綜合,在Vivado里,從綜合到布局布線每個階段生成的都是DCP,當綜合跑完后會在相應的目錄下生成DCP文件,

這里跑完綜合后在相應目錄生成的DCP文件包含內容如下:

 

這里看下在綜合過程的最后階段Vivado的Log文件:
在這里插入圖片描述
這里有提到一句:
WARNING: [Constraints 18-5210] No constraints selected for write.
Resolution: This message can indicate that there are no constraints for the design, or it can indicate that the used_in flags are set such that the constraints are ignored. This later case is used when running synth_design to not write synthesis constraints to the resulting checkpoint.

也就是說,在綜合階段生成的DCP文件里是不包含任何約束文件的,那么當我們的設計里包含時序約束、引腳約束時(尤其有些IP內部包含的約束文件)把這個DCP文件交付給別人使用時將會在布局布線或者生成bit文件階段遇到問題的(都是淚的經驗)!

write-checkpoint生成DCP

當完成綜合后,選擇Open Synthesized Design后我們可以在Vivado菜單欄選擇File->CheckPoint->Write選擇生成checkpoint:

在這里插入圖片描述

這里可以看到,生成的checkPoint為一個DCP文件,但這個DCP文件包含netlist、xdc file、physical database,生成的DCP所包含的內容如下: 

在這里插入圖片描述
對比可以發現,相較於生成的綜合階段產生的DCP文件,這里包含了xdc、sta等文件,把這個文件交付給對方,對方才能愉快的跑下去。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM