先看一個簡單的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,我們就可以進行正常的綜合及布局布線了,布局布線完成后我們得到的網表和正常工程一模一樣。
審核編輯 :李倩
-
DCP
+關注
關注
0文章
30瀏覽量
17214 -
Vivado
+關注
關注
19文章
808瀏覽量
66349
原文標題:Vivado—DCP復用
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論