先看一個簡單的example project,里面包含兩個verilog文件:
在頂層top里,我們例化了一個adder模塊,adder為一個簡單的加法器。當(dāng)我們把這兩個文件導(dǎo)入VIvado后即可進行正常的布局布線。
那么問題來了,假設(shè)adder是我的一個核心設(shè)計(加法器代表一下哈),當(dāng)其他人想使用我這個adder IP時我不想交付給對方源代碼,那么我應(yīng)該如何做呢?
交付DCP!
何為DCP
在Vivado的設(shè)計流程各個階段里,采用統(tǒng)一的數(shù)據(jù)模型:DCP(design checkpoint),在Vivado的設(shè)計流程里,無論是綜合還是布局布線的各個階段,工具都會生成DCP文件,每一步的執(zhí)行設(shè)計輸入均為上一階段的DCP文件(綜合階段除外)。那么當(dāng)我們想把adder以網(wǎng)表形式進行交付時,我們就可以生成對應(yīng)的綜合后的DCP文件,隨后將DCP文件交付給合作方即可。
甲方:DCP制作流程
在我們的設(shè)計中,我們把adder這個模塊作為設(shè)計的頂層:
隨后進行綜合,當(dāng)完成后,我們會在對應(yīng)的目錄下看到生成了adder的DCP文件:
同時,我們準(zhǔn)備一個我們adder對應(yīng)的設(shè)計頂層:
這里的adder模塊不包含任何設(shè)計代碼,僅包含端口聲明。同時我們將這個模塊聲明為“black_box”
隨后,我們就可以把這個DCP文件和black box文件交付給別人使用了,而不用擔(dān)心我們的源代碼泄漏。
乙方:DCP的使用
當(dāng)我們拿到別人的DCP文件和black box端口聲明文件后,我們還需要準(zhǔn)備一個tcl文件:
tcl文件中制定了adder.dcp的讀取位置。
隨后,我們將balck box文件和tcl文件導(dǎo)入到我們的設(shè)計中,top.v文件保持不變:
隨后我們在Implement Setting中的opt_Desing中的tcl.pre中關(guān)聯(lián)導(dǎo)入的balck.tcl文件:
Finally,我們就可以進行正常的綜合及布局布線了,布局布線完成后我們得到的網(wǎng)表和正常工程一模一樣。
審核編輯 :李倩
-
DCP
+關(guān)注
關(guān)注
0文章
30瀏覽量
17229 -
Vivado
+關(guān)注
關(guān)注
19文章
812瀏覽量
66470
原文標(biāo)題:Vivado—DCP復(fù)用
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論