1. 程式人生 > >典型電路-----RAM選型

典型電路-----RAM選型

在RAM的使用上面,我的感覺是隻有大概的方向,比如:

儘量少用雙口RAM,小RAM儘量少用,RAM形狀儘量合理

但這些僅僅是停留在大概的印象中,沒有一個非常明確的資料支撐,心裡還是不夠有底。

我感覺RAM的選型結合實際的設計如果做得夠好,應該可以讓面積時序有比較大的提升。

Q:RAM拼接是在RAM wrapper中做的吧,我們目前的wrapper指令碼支援所有型別RAM形狀的需求?
A:有兩種拼接,Vendor聲稱能支援所有深度位寬的ram,我們有些形狀奇怪的ram即使vendor支援也是在提供給我們的ram庫裡進行拆分的,就像上次陳源講ram選型時會自動拆成多個bank。
一些vendor不支援的ram(如深度太深、位寬太小或太大),才會在wrapper裡由設計人員手動拼接。
wrapper對ram形狀是無限制的,主要看vendor怎樣支援。在vendor不支援的情況下ram wrapper是不會自動拼接的,要手動拼。

Q:從後端的角度看,什麼樣的RAM位寬和深度是個合理的分割點,
   就比如RAM位寬,32bit/64bit還是128bit,
    我印象中應該是RAM位寬儘量小點好,位寬小是因為時序的原因,面積的原因,還是後端其他的原因?
A:我印象應該是長方形的較好吧,ram形狀要從資源、功耗和方便擺放方面考慮,太方或太長都不好吧。位寬要看ram深度多少,沒有固定多少bit最好,case by case的應該,拿不準的時候可能要用vendor給的工具選一把。我感覺在初始設計時大概注意一下就行,排除一些明顯不合理的選型,到所有ram出來後會統一做一次ram匹配的,到時少數不合理的再進行調整。

Q:我們在前端設計中,會由於我們李志強大的wrapper指令碼,就根據其他需求隨便定義RAM形狀
   還是在前端就要嚴格控制RAM的位寬,深度,以及粒度劃分,直到從功能和後端的所有點都達到最優,包括面積/時序/PR困難等。
A:要適當有所控制,經驗比價重要,比如像20*200這種選型就明顯不合理。前端設計時在做方案review時一些明顯不合理的ram也可以發現的。
專案組也會在85%前統一做一次ram選型匹配的。這方面不需要太擔心。

Q:看來RAM設計要總結出一個非常明確的設計原則還是比較困難的,那怎麼辦?那麼辦?

A:RAM的選型和麵積的對應關係,找出一個確定的公式還是比較困難的,因為這與vendor的工藝、memory庫的設計都有很大的關係,切換到任何一家vendor都要重新重新整理一個原則。

比如下一版是COT,memory準備使用誰的,就要提前分析它的特性。

但是一些大的原則還是有的:正如你提到的RAM的形狀,其實也不是越方或越長就怎樣,關鍵是所有的RAM形狀要比較一致,floorplan的時候是把RAM擺在邊上,如果RAM規整,對於floorplan比較有好處,可以提升subchip的utilization;另外,單口一定是比雙口RAM好,因為size還是會小很多,功耗的考慮就要具體分析;越是大塊的RAM速度可能會變慢,時序上要考慮;還有一個,如果一個subchip中RAM非常多,並且並行度非常高(databus比較寬),對gatecount以及timing都沒有好處,無論是DFT還是PR都會增加不少資源,這就需要我們設計早期做tradeoff,一些臨界狀態的儲存需求可以考慮用暫存器而不是RAM,對timing和功耗都會有一定的好處。最後我想到的一點是,RAM越多,良率就會越低,進入深納米工藝之後,軟失效的問題也可能會成為比功耗更嚴重的問題,所以設計時不要一味的考慮使用RAM整合度就會更高,省diesize,實際上,很多小的RAM對diesize是不利的。

做大型memory(例如L3或local的大塊memory)時,可考慮eDRAM,可向SDR瞭解28nm TSMC 28nm的成熟度和可用性,使用eDRAM可大幅降低diesize和功耗,同時降低軟失效率。