《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > EDA與制造 > 業(yè)界動(dòng)態(tài) > 干貨 | 如何通過(guò) Vivado Synthesis 中的 URAM 矩陣自動(dòng)流水線化來(lái)實(shí)現(xiàn)最佳時(shí)序性能

干貨 | 如何通過(guò) Vivado Synthesis 中的 URAM 矩陣自動(dòng)流水線化來(lái)實(shí)現(xiàn)最佳時(shí)序性能

2019-07-24
關(guān)鍵詞: VivadoSynthesis URAM 矩陣

  通過(guò)在矩陣結(jié)構(gòu)中連接多個(gè) URAM,,從可用的 URAM 原語(yǔ)實(shí)現(xiàn)大容量深存儲(chǔ)器,。

  矩陣由 URAM 的行和列組成。一列中的 URAM 使用內(nèi)置級(jí)聯(lián)電路級(jí)聯(lián),,且多列 URAM 通過(guò)外部級(jí)聯(lián)電路互連,,這被稱為水平級(jí)聯(lián)電路,。

  作為示例,圖 1 示出了針對(duì) 64K 深 x 72 位寬存儲(chǔ)器的 4x4 URAM 矩陣的矩陣分解,。

微信圖片_20190724122756.jpg

  4 行 4 列的 URAM 矩陣(可實(shí)現(xiàn) 64K 深 72 位寬的存儲(chǔ)器)

  在沒(méi)有流水線設(shè)計(jì)的情況下,,深度聯(lián)結(jié)構(gòu)會(huì)導(dǎo)致內(nèi)存訪問(wèn)出現(xiàn)大的時(shí)鐘輸出延遲。  例如,,在默認(rèn)情況下,上述 URAM 矩陣可以達(dá)到約 350 MHz,。要以更快的速度訪問(wèn)內(nèi)存,,應(yīng)插入流水線。如果在網(wǎng)表中指定了一定數(shù)量的輸出時(shí)延,,Vivado Synthesis 即會(huì)自動(dòng)實(shí)現(xiàn)此功能,。

  指定 RTL 設(shè)計(jì)中的流水線

  有兩種方法可以用來(lái)指定 RTL 設(shè)計(jì)中的流水線的用途,可以通過(guò)使用 XPM 流程,,也可以通過(guò)行為 RTL 來(lái)推斷內(nèi)存,。

  如果 RTL 設(shè)計(jì)通過(guò) XPM 流程來(lái)創(chuàng)建 URAM 內(nèi)存,則用戶可以將對(duì)流水線的要求指定為 XPM 實(shí)例的參數(shù),。參數(shù)“READ_LATENCY_A/B”用于捕獲內(nèi)存的時(shí)延要求,。

  可用的流水線階段數(shù)是 LATENCY 值減去 2。  例如,,如果 Latency 設(shè)置為 10,,則允許 8 個(gè)寄存器階段用于流水線操作。另外兩個(gè)寄存器可用來(lái)創(chuàng)建 URAM 本身,。

微信圖片_20190724122803.jpg

  如果用戶使用 Vivado 用戶指南中提供的模板來(lái)編寫 RTL,,并通過(guò)此方法來(lái)創(chuàng)建 URAM,那么,,他們可以在 URAM 的輸出時(shí)創(chuàng)建盡可能多的寄存器階段,。唯一的要求是,與數(shù)據(jù)一起,,流水線寄存器的啟用也需要流水線化,。

  圖 3 顯示數(shù)據(jù)和流水線的啟用。


微信圖片_20190724122859.jpg

  URAM 塊輸出時(shí)的數(shù)據(jù)及流水線啟用規(guī)范

  圖 4 示出了 RTL 級(jí) RAM 流水線設(shè)計(jì)示例,。

  用來(lái)指定數(shù)據(jù)和流水線啟用的 verilog 模板

微信圖片_20190724122903.jpg

  分析日志文件:

  Vivado Synthesis 根據(jù)上下文環(huán)境和場(chǎng)景發(fā)布與 URAM 流水線相關(guān)的不同消息,。下表說(shuō)明要在 vivado.log 文件中查找的一些消息和要采取的相應(yīng)操作。

  請(qǐng)注意,,推薦的流水線階段基于可實(shí)現(xiàn)最高性能 (800 MHz+) 的完全流水線化的矩陣,。此建議不受實(shí)際時(shí)序約束的限制。

  時(shí)間性能估計(jì):

  下表說(shuō)明流水線寄存器的數(shù)量與可實(shí)現(xiàn)的最大估計(jì)頻率之間的關(guān)系,。

  請(qǐng)注意,,實(shí)際的時(shí)間數(shù)仍將取決于最終地點(diǎn)和路線結(jié)果,。

微信圖片_20190724122956.jpg

  下列數(shù)字基于 speedgrade-2 Virtex? UltraScale+? 部件以及我們使用 4x4 矩陣實(shí)現(xiàn)的 64K x 72 URAM 示例工程。

  數(shù)據(jù)路徑延遲具有以下一個(gè)或多個(gè)組件,。

  Tco = 1.38 ns, Clk To CascadeOut on URAM

  Tco = 0.82 ns, Clk To CascadeOut on URAM with OREG=true

  Tco = 0.726 ns, Clk to Dataout on URAM with OREG=true, CASCADE_ORDER = LAST

  URAM -> URAM 級(jí)聯(lián)延遲 = 0.2 ns

  URAM -> LUT 信號(hào)網(wǎng)絡(luò)延遲 = 0.3 ns

  LUT 傳輸延遲 = 0.125 ns

  LUT -> LUT 信號(hào)網(wǎng)絡(luò)延遲 = 0.2 ns

  LUT5 -> FF 延遲 = 0.05

微信圖片_20190724122953.jpg

  結(jié) 論

  URAM 原語(yǔ)是創(chuàng)建容量非常大的 RAM 結(jié)構(gòu)的有效方法,。  它們被設(shè)置為易于級(jí)聯(lián)以便在您的設(shè)計(jì)中創(chuàng)建容量更大的 RAM。

  但是,,太多這類結(jié)構(gòu)級(jí)聯(lián)在一起可能會(huì)通過(guò) RAM 產(chǎn)生很大的延遲,。從長(zhǎng)遠(yuǎn)來(lái)看,花時(shí)間讓您的 RAM 完全流水線化會(huì)帶來(lái)很多好處,。

  URAM 原語(yǔ)是創(chuàng)建容量非常大的 RAM 結(jié)構(gòu)的有效方法,。  它們被設(shè)置為易于級(jí)聯(lián)以便在您的設(shè)計(jì)中創(chuàng)建容量更大的 RAM。

  但是,,太多這類結(jié)構(gòu)級(jí)聯(lián)在一起可能會(huì)通過(guò) RAM 產(chǎn)生很大的延遲,。從長(zhǎng)遠(yuǎn)來(lái)看,花時(shí)間讓您的 RAM 完全流水線化會(huì)帶來(lái)很多好處,。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章,、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]