在設(shè)計(jì)周期中,您可保留多個(gè)版本的工程,這些工程使用相同的 IP 和相同的配置。重新運(yùn)行整個(gè)工程會(huì)導(dǎo)致每次都要重新生成 IP,很費(fèi)時(shí)間。
在 Vivado工程設(shè)置中,您的 IP 存儲(chǔ)庫(kù)允許您將自己的 IP 添加到 Vivado IP 目錄中,搭配遠(yuǎn)程 IP 高速緩存一起使用時(shí),即可顯著縮短編譯時(shí)間。這篇博文解釋了具體設(shè)置方法。
在開始下述步驟前,最好先創(chuàng)建格式化目錄結(jié)構(gòu):
注釋:此結(jié)構(gòu)中應(yīng)有一個(gè)頂層的父目錄,例如,iprepo,然后是子目錄;每個(gè) IP 一個(gè)子目錄,還有一個(gè)子目錄對(duì)應(yīng)由 Vivado 創(chuàng)建的遠(yuǎn)程 IP 高速緩存。
此 IP 必須位于遠(yuǎn)程 IP 高速緩存的同級(jí)目錄內(nèi)。這是因?yàn)?Vivado 遇到component.xml文件時(shí),就會(huì)停止搜索 IP 高速緩存的目錄結(jié)構(gòu),而此文件始終與封裝的 IP 目錄一起生成。
第 1 步:將所有必需的源文件封裝為單個(gè) IP
一般,IP 封裝步驟包括以下 3 個(gè)步驟,并且封裝的 IP 文件一起接受管理。
1. 將 RTL 添加到 Vivado 工程中,并對(duì)其進(jìn)行綜合,驗(yàn)證其完整性 。
2.使用 Vivado 中的“Tools”(工具)選項(xiàng)對(duì) RTL 進(jìn)行封裝:
3. 確?;趇p_repo目錄中的 IP 名稱選擇一個(gè)目錄。
第 2 步:驗(yàn)證并生成所有遠(yuǎn)程高速緩存文件
在這一步中,您需要從已封裝的 IP 文件夾中例化已封裝的 IP,但不含任何邏輯連接。隨后,為存儲(chǔ)庫(kù)中的不同 IP 配置生成網(wǎng)表。
1.通過(guò)工程設(shè)置將新創(chuàng)建的用戶 IP 存儲(chǔ)庫(kù)添加到 Vivado 工程中:
2. 將該 IP 添加到新創(chuàng)建的 IP integrator 塊設(shè)計(jì)中。 您可選中 IP 并按下 Ctrl-T 鍵,輕松將此 IP 的所有端口連接到外部端口?;蛘?,您可將其添加到設(shè)計(jì)中。
3. 如果您的 IP 可配置,請(qǐng)?zhí)砑佣囗?xiàng)配置,以便在 IP 高速緩存中填充更多通用配置。
注釋:應(yīng)用此變通方法時(shí)存在諸多限制,只要與用戶 IP 設(shè)置存在任何不匹配,都可能導(dǎo)致重新生成已例化的 IP。
請(qǐng)確保軟件構(gòu)建相匹配
請(qǐng)確保 device part/speed_grade/board name 相匹配
確保 IP 設(shè)置與生成此 IP 時(shí)的 IP 緩存文件相匹配。鑒于有時(shí)參數(shù)傳播可能導(dǎo)致覆蓋用戶 IP 上的部分參數(shù),例如,從上游傳播的時(shí)鐘頻率會(huì)被覆蓋,因此應(yīng)執(zhí)行檢查。
4. 確認(rèn)設(shè)計(jì)并審查任何“Error”(錯(cuò)誤)和“Critical Warning”(嚴(yán)重警告)
5. 生成設(shè)計(jì)之前,在 IP Repository 目錄下指定遠(yuǎn)程 IP 存儲(chǔ)庫(kù),例如,/iprepo/ipcache:
6.使用默認(rèn)“Out of context per IP”(非關(guān)聯(lián)按 IP)選項(xiàng)生成塊設(shè)計(jì):
7.生成完成后,應(yīng)顯示已填充的遠(yuǎn)程 IP 高速緩存。
其中將生成新的目錄,并以散列代碼作為目錄名稱。
第 3 步:在正式設(shè)計(jì)中例化 IP,并復(fù)用遠(yuǎn)程 IP 存儲(chǔ)庫(kù)
在工程中使用用戶 IP 存儲(chǔ)庫(kù)和 IP 高速緩存:
1.現(xiàn)在,您只需要指向頂層的 IP 存儲(chǔ)庫(kù)目錄,即可同時(shí)使用用戶 IP 和遠(yuǎn)程 IP 高速緩存。
2. 生成設(shè)計(jì)時(shí),如果使用的器件/開發(fā)板和 IP 配置選項(xiàng)未更改,就不會(huì)發(fā)生重新綜合,并且 IP 運(yùn)行狀態(tài)將顯示“Using cached IP results”(使用緩存的 IP 結(jié)果):
建議的版本管理:
請(qǐng)通過(guò)腳本封裝用戶 IP,或創(chuàng)建獨(dú)立工程來(lái)封裝 IP。
創(chuàng)建獨(dú)立工程來(lái)例化包含所有不同配置的用戶 IP,并生成此 IP,同時(shí)導(dǎo)出高速緩存。
在正式工程中采用此 IP,并遵循本文檔中的指南進(jìn)行操作。
審核編輯:劉清
-
存儲(chǔ)器
+關(guān)注
關(guān)注
38文章
7531瀏覽量
164432 -
RTL
+關(guān)注
關(guān)注
1文章
385瀏覽量
59996 -
Vivado
+關(guān)注
關(guān)注
19文章
815瀏覽量
66937
原文標(biāo)題:開發(fā)者分享|節(jié)省編譯時(shí)間系列-為多個(gè) Vivado? 工程復(fù)用遠(yuǎn)程 IP 高速緩存
文章出處:【微信號(hào):gh_2d1c7e2d540e,微信公眾號(hào):XILINX開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
為多個(gè)Vivado工程復(fù)用遠(yuǎn)程IP高速緩存
![<b class='flag-5'>為</b><b class='flag-5'>多個(gè)</b><b class='flag-5'>Vivado</b><b class='flag-5'>工程</b><b class='flag-5'>復(fù)用</b><b class='flag-5'>遠(yuǎn)程</b><b class='flag-5'>IP</b><b class='flag-5'>高速緩存</b>](https://file1.elecfans.com/web2/M00/B3/DC/wKgZomVpM6SAPvrJAAAP33kF5_I506.png)
MRAM高速緩存的組成
高速緩存/海量緩存的設(shè)計(jì)實(shí)現(xiàn)
怎么利用異步FIFO和PLL結(jié)構(gòu)來(lái)實(shí)現(xiàn)高速緩存?
怎樣去實(shí)現(xiàn)一種基于DSP和ADC技術(shù)高速緩存和海量緩存?
高速緩存(cache)的工作原理是什么?高速緩存可分為哪幾類
高速緩存Cache介紹
外置及共享硬盤的高速緩存
高速緩存(Cache),高速緩存(Cache)原理是什么?
AN1600 - 在PIC32MZ器件上使用L1高速緩存
使用MPLAB Harmony v3基于PIC32MZ MCU在運(yùn)行時(shí)使用高速緩存維護(hù)操作處理高速緩存一致性問(wèn)題
![使用MPLAB Harmony v3基于PIC32MZ MCU在運(yùn)行時(shí)使用<b class='flag-5'>高速緩存</b>維護(hù)操作處理<b class='flag-5'>高速緩存</b>一致性問(wèn)題](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評(píng)論