芯片片上SRAM存储概略及生成使用实践 (下)
在歷經了前兩part的了解和熟悉后,對于SRAM的了解基本已經了然如心了。
小伙伴們在這里就可以使用自己學習的知識,就可以對SRAM的生成和遴選可以建立一套自身的方法學和流程。在這一章節,筆者分享一些淺見,對這個自動化的流程進項一些頭腦風暴和討論。
SRAM 生成方法
基于不同工藝和FAB,都會有相應的memory team對指定工藝進行memory array和peripheral進行構建。這里的構建是指的是構建一些基礎組件,然后通過打包的方式進行封裝,以自動化命令的方式交付給用戶,方便用戶進行不同的配置和選型。
不同的SRAM vendor提供的套件往往不盡相同,有的可以支持GUI和batch,有的支持batch。相較而言,batch是一定要支持的,否則在大型項目下這類工作沒法批量開展。這里以T家為例,使用batch mode進行SRAM的生成
各家的SRAM都有自己默認名稱,但是用戶為了自身數據管理便利,通常需要使用自己的名稱來進行規劃,所以在T家的mem-gen的時候,建議大家使用自己的$CFG_FILE 進行名稱定義,當然,這里的$CFG_FILE需要指定出SRAM具體的位寬、位深以及column MUX的信息。簡單示例如下
)
T家的command line還支持其他的一些選項,包括并不限于
- SRAM datasheet:包含SRAM的各種時序、功耗和物理信息
- 各種view的生成選擇
- verilog仿真模型
- DFT view
- timing view
- Masis view
- SPICE view
- GDS view
- LEF view
- VOLTUS view
- 不同配置的選擇(鑒于memory類型的不同,并非每種配置都可生成出來對應的memory,用戶需要檢查memgen 日志)
- DualRail:VDD/VDDM 時候使用不同的rail
- ULVT/SVT:對peripheral 的std-cell VT的選擇,
- BIST: 控制是否支持MBIST模式
- bit-wise:是否支持bit 寫操作
- etc…
所有的可配置接口都可以通過batch 模式下進行配置。這樣的好處是可以支持用戶在大面積SRAM遴選生成的時候實現自動化。
類似的SNPS在mem-gen里,會提供batch以及GUI接口,GUI操作相對方便一些,但是在批量生產的時候,還是需要使用batch提高生產效率
)
實際項目中SRAM 遴選維度
有了上述的講解以及工具的支撐,用戶基本已經可以開始進行SRAM的生成了。上述的信息和資源最終都是支持實際項目的工具,項目對于不同SRAM的比較、匹配和選型等操作,才是可以真正作用的實際項目上來的。
現在的大型芯片,SRAM的用量面積有甚者可以占到整個項目將近一半的面積,所以對于SRAM的選型需要從以下幾個方面進行考量
-
基于工藝的SRAM vendor的選擇
- 渠道1:通常FAB在提供工藝的時候,也會提供SRAM vendor的推薦,常規的講,FAB自己的SRAM一般都是免費的(應該搜是被TO費用所涵蓋),譬如T家或者S家都會提供自己對應工藝的SRAM產品
- 渠道2:一些第三方的SRAM vendor , 他們已經和FAB之間建立了堅實的商業合同,FAB也會分享給用戶,讓用戶自己去選擇,用戶在流片的時候只需要少量的royalty費用即可。
- 渠道3:對于某個工藝,有一些商業客戶專門去研發了SRAM,并且可以做到比原廠FAB更好的PPA,譬如S家,A家等等,這個時候用戶在使用的時候,需要像采購IP一樣去額外付費,如果用戶對某項PPA確實倚重,可以考量花這筆錢。
-
Rail的考慮:這個由于牽扯整個芯片的rail設計,必須在初期考慮清楚,項目通常采用統一的策略。現在的SRAM都支持SD/DSLP設計,沒有外圍isolate邏輯的損耗,但是SRAM內部的處理一定是有isolate的代價的?;陧椖繉τ诠暮托阅艿钠胶?#xff0c;在初期選定rail模式是非常必要的。
-
STAM的DFT相關:
- BIST: 由于SRAM里邊有peripheral std-cell,這個MBIST的DFT功能可以支持對這類std-cell的fault定位。代價是由于輸入pin腳的急劇增多,可能對于APR是個新的挑戰,通常為了節省繞線資源,會跳過這些peripheral std-cell的MBIST 測試,直接對整塊memory (包含memory array)進行MBIST測試
- BISR:為了實現良率,BISR有時也是需要,尤其是column redundancy bit,通過FAB給的數據,1bit的redundancy通??蛇M行修一檢二的操作,性價比還是很高的。
- 所有的SRAM DFT相關部分,都需要額外的STD-cell支持,此類面積通常是memory 面積的5%~10%上下,對于大型芯片,在架構設計和面積評估的時候,此部分的影響需要全盤考量
- BIST: 由于SRAM里邊有peripheral std-cell,這個MBIST的DFT功能可以支持對這類std-cell的fault定位。代價是由于輸入pin腳的急劇增多,可能對于APR是個新的挑戰,通常為了節省繞線資源,會跳過這些peripheral std-cell的MBIST 測試,直接對整塊memory (包含memory array)進行MBIST測試
-
形狀:由于過多memory (或者memory array)的存在,memory形狀對于APR的floorplan和pin access有比較大的影響。具體示例可見:來做一次裝修 之版圖實現第二步 – Floorplan 。 這里有幾點需要注意:
- 不要因為速度原因將column mux設置過大。導致memory 過度扁平
- 不要創建過小size的memory,有可能會導致常規的pg strap不能直接落在memory上,降低電源連接性能等等。
-
時序:這里重點說一下時序。由于memory的分布很廣,項目很大的時候,memory的時序問題會成為某些核心組件的性能瓶頸,譬如:L1/L2 etc. 所以在對memory選型的時候,這里需要特注意一下幾個要素
-
Tcycle: Minimum CLK cycle time CLK^ CLK^。這個參數描述的是這個memory所能支持的最小周期(最高頻率),這個一定是要比項目規劃的頻率要高,另外由于這個參數也是一個clock input transition的查找表,通常clock-transition一版會定義為50ps左右,所以這里建議,選擇memory的時候,Tcycle需要比項目的需求多一個20%的余量。如果項目的主頻是1G,那么就要要求SRAM的Tcycle time在 ssg的條件下不能超過:0.8ns
-
Tckh/Tckl Minimum CLK Pulse High/Low。通常各是Tcycle的一半上下,這里需要注意一點,對于級數過多(latency 過長)的時鐘網絡,必須優先使用clock inverter來構建clock tree,這樣才能在leaf(memory clock pin)控制好占空比,也就是盡量可以滿足:Tckh/Tckl
-
Tcd/Tacc: CLK to valid Q (data output)。這個是描述從memory 到Q 輸出的時間,這個對from-memory的datapath影響比較大。
由于memory的規模通常比較大,這個訪問時間通常都有200ps~朝上,所以對于一個timing path來看的化,這里可能是一個path上data的最大損耗
可以看到通過就降低Tqd和Tcd或者提高useful skew(Tlat_2 - Tlat_1),可以提高芯片的性能。
通常對于Tcd,要求不能超過整個period的60%為宜
-
-
功耗:不同的選型的memory 功耗也有不同,這時候memory的peripheral的ULVT和LVT的占比會讓leakage有明顯的區別,在選型的時候,需要辨別這兩種的類型對時序的影響,從而采用合適的類型。
實際項目中SRAM 生成簡易流程
通過對memory各項屬性的理解,這里可以使用下面的簡易流程來進行生成和遴選流程
要點:
- memory的生成數據量巨大,一定需要使用腳本化的生成模式,譬如:excel-> perl -> memgen batch run -> analyze datasheet -> release suitable memory。
- 選型初期,可以只看datasheet,其他view可以先不生成,這樣可以提高速度和減少磁盤占用。
- CM不宜過大來滿足timing,可以適當拆分,讓memory的形狀更為合理。
- 默認使用LVT進行memory的peripheral規劃,如果ECO的階段有時序障礙,可以考量調換到ULVT進行局部timing pushing,可以犧牲一部分leakage 來換取性能和節省迭代周期。
- 同等logic memory的對應physical memory,盡量選擇同等規格,這樣在floorplan布局的時候會容易處理,減少channel,提高利用率。
本章詞匯
| Tcycle | memory 支持的最小周期(最高頻率) |
| Tcd/Tacc | memory 的訪問時間 CLK-> Q |
【敲黑板劃重點】
通過三篇的學習,對于memory的結構,原理,特征參數、批處理生成和項目遴選都有了基本的了解和認識,希望這個系列的文章可以帶給大家靈感和啟發,在項目中可以更好地理解和應用memory,對項目帶來更高效的收益和PPA。
參考資料
TSMC TSMC N7 SRAM Compiler Databook
Synopsys Embed-It! Integrator User Manual
總結
以上是生活随笔為你收集整理的芯片片上SRAM存储概略及生成使用实践 (下)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图解“管道过滤器模式”应用实例:SOD框
- 下一篇: 水雨情监测系统 实时监测