1. 前言
在上一篇文章里《如何使用UltraScale+芯片中UltraRam資源》,我們向大家介紹了在RTL設(shè)計(jì)中使用URAM的方法。其中,我們推薦大家使用Xilinx參數(shù)化宏(XPM)的方法來(lái)調(diào)用URAM。通過(guò)XPM調(diào)用的URAM的方法如下:
在模板中選擇“Verilog”->“Xilinx Parameterized Macros (XPM)”->“XPM”->“XPM_MEMORY” ->“Simple Dual Port Ram”
用戶(hù)必須在MEMORY_PRIMITIVE類(lèi)屬上指定值 ”ultra”,以明確指示vivado 綜合使用 UltraRam。
那么問(wèn)題來(lái)了,還有個(gè)參數(shù)“READ_LATENCY_A/B”該設(shè)多少?這個(gè)參數(shù)影響URAM的讀操作需要滯后多少時(shí)鐘周期才能將讀數(shù)據(jù)輸出。
2. 級(jí)聯(lián)URAM須知
單個(gè)URAM器件的數(shù)據(jù)位寬為72bit,地址深度為4096,存儲(chǔ)容量為288Kb。因此,當(dāng)用戶(hù)需要大于288Kb存儲(chǔ)容量空間時(shí),需要級(jí)聯(lián)多個(gè)URAM器件。在Kintex UltraScale+和Zynq UltraScale+器件中,級(jí)聯(lián)得到的RAM陣列可高達(dá)36Mb,在Virtex UltraScale+系列中,所有UltraRAM列都可通過(guò)光纖路由連接在一起,在最大器件中可構(gòu)成容量達(dá)360Mb的存儲(chǔ)器陣列。
下圖展示了一個(gè)4 x 4的URAM陣列級(jí)聯(lián)結(jié)構(gòu),在縱向的一列中,每個(gè)URAM使用內(nèi)置級(jí)聯(lián)電路進(jìn)行級(jí)聯(lián)。在橫向多列之間,URAM通過(guò)外部級(jí)聯(lián)電路進(jìn)行互連,即水平級(jí)聯(lián)電路。
但是,URAM和Bram (block ram)不太一樣。在工作時(shí)鐘頻率不變情況下,深度級(jí)聯(lián)URAM陣列會(huì)使得數(shù)據(jù)輸出延遲越來(lái)越大,因?yàn)樾枰诩?jí)聯(lián)的URAM模塊中插入多級(jí)流水線(xiàn),以保證模塊能時(shí)序收斂。
同樣,想保證輸出延遲固定,級(jí)聯(lián)越多的URAM會(huì)導(dǎo)致整個(gè)級(jí)聯(lián)的URAM可工作的時(shí)鐘頻率越低。
因此,我們需要謹(jǐn)慎的設(shè)置“READ_LATENCY_A/B”參數(shù),來(lái)保證級(jí)聯(lián)的URAM模塊能按自己的需求時(shí)序收斂并正常地工作。
注意: 如果使用XPM來(lái)調(diào)用URAM模塊,則URAM內(nèi)部可用的流水線(xiàn)階數(shù)是設(shè)定的LATENCY值減去2。例如,如果“READ_LATENCY_A/B”參數(shù)設(shè)為10,則允許8個(gè)寄存器階段用于流水線(xiàn)操作。
3. URAM性能估計(jì)
從上文,我們知道,LATENCY值的設(shè)置取決于URAM級(jí)聯(lián)的深度、工作頻率。下表以4x4的URAM矩陣為例,總結(jié)了流水線(xiàn)級(jí)數(shù)與可實(shí)現(xiàn)的最大工作頻率之間的關(guān)系。
注: 實(shí)際的延遲仍取決于設(shè)計(jì)中最終的布局布線(xiàn)結(jié)果。
注: 下表是基于Virtex UltraScale+ speed -2器件為基礎(chǔ)給的結(jié)果。
注: 該級(jí)聯(lián)的URAM陣列最大只支持8級(jí)流水線(xiàn)**。**
注: LATENCY取值為表中流水級(jí)數(shù)值加2。
4. 檢查設(shè)計(jì)是否達(dá)到最優(yōu)時(shí)序
第3節(jié)中的表只是一個(gè)參考,讓大家大致了解級(jí)聯(lián)的流水線(xiàn)級(jí)數(shù)、輸出延遲、工作頻率之間的關(guān)系。如果我已經(jīng)完成了設(shè)計(jì),指定好了“READ_LATENCY_A/B”參數(shù)的值,如何確定該延遲值是否設(shè)置的最優(yōu)呢?
Vivado工具是提供了相應(yīng)的綜合報(bào)告來(lái)告知工程師級(jí)聯(lián)的URAM模塊是否能到達(dá)最優(yōu)時(shí)序。工程師在Vivado的GUI里,選中“Messages”一欄,查找有關(guān)URAM的提示。
一般提示如下,對(duì)應(yīng)的解決方法附在其后:
相信經(jīng)過(guò)這兩篇文章總結(jié),大家在如何使用URAM問(wèn)題上應(yīng)該不會(huì)有太多的疑惑。
5.總結(jié)
本文向大家介紹了如何通過(guò)XPM調(diào)用URAM,并讓級(jí)聯(lián)URAM獲得最佳時(shí)序性能,如果覺(jué)得我們原創(chuàng)或引用的文章寫(xiě)的還不錯(cuò),幫忙點(diǎn)贊和推薦吧,謝謝您的關(guān)注。
-
芯片
+關(guān)注
關(guān)注
455文章
50714瀏覽量
423131 -
Xilinx
+關(guān)注
關(guān)注
71文章
2167瀏覽量
121298 -
RTL
+關(guān)注
關(guān)注
1文章
385瀏覽量
59759 -
時(shí)序
+關(guān)注
關(guān)注
5文章
387瀏覽量
37317 -
UltraScale
+關(guān)注
關(guān)注
0文章
117瀏覽量
31461
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論