日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

芯片片上SRAM存储概略及生成使用实践 (下)

發布時間:2024/3/12 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 芯片片上SRAM存储概略及生成使用实践 (下) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在歷經了前兩part的了解和熟悉后,對于SRAM的了解基本已經了然如心了。
小伙伴們在這里就可以使用自己學習的知識,就可以對SRAM的生成和遴選可以建立一套自身的方法學和流程。在這一章節,筆者分享一些淺見,對這個自動化的流程進項一些頭腦風暴和討論。

SRAM 生成方法

基于不同工藝和FAB,都會有相應的memory team對指定工藝進行memory array和peripheral進行構建。這里的構建是指的是構建一些基礎組件,然后通過打包的方式進行封裝,以自動化命令的方式交付給用戶,方便用戶進行不同的配置和選型。
不同的SRAM vendor提供的套件往往不盡相同,有的可以支持GUI和batch,有的支持batch。相較而言,batch是一定要支持的,否則在大型項目下這類工作沒法批量開展。這里以T家為例,使用batch mode進行SRAM的生成

> tsn7_1prf.exe -NonTsmcName -file $CFG_FILE

各家的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的代價的。基于項目對于功耗和性能的平衡,在初期選定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通常可進行修一檢二的操作,性價比還是很高的。
    • 所有的SRAM DFT相關部分,都需要額外的STD-cell支持,此類面積通常是memory 面積的5%~10%上下,對于大型芯片,在架構設計和面積評估的時候,此部分的影響需要全盤考量
  • 形狀:由于過多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各項屬性的理解,這里可以使用下面的簡易流程來進行生成和遴選流程

  • 確定rail和DFT對memory的通用需求
  • 明確memory的位深和位寬需求,如果過大需要手動或者自動,基于前后端的定義的規律進行拆分
  • 滿足上述要求的memory進行批量生成:位寬、位深,column MUX和LVT/ULVT等配置不同,出來的結果不盡相同,這里需要遍歷所有可能,提高選擇范圍
  • 對所有的memory進行時序性能分析。需要同時滿足上述描述的Tcd和Tcycle帶余量的情況,才是可以用的memory
  • 如果有滿足時序要求的memory,再對功耗,高寬比進行再次遴選,選擇功耗小,高寬比合理的memory交付實現使用;如果沒有滿足時序要求的memory,重新進行拆分(通常將位深砍半,時序會比較容易滿足),然后再重復步驟3~5,直到選出合適的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,提高利用率。

    本章詞匯

    詞匯解釋
    Tcyclememory 支持的最小周期(最高頻率)
    Tcd/Taccmemory 的訪問時間 CLK-> Q

    【敲黑板劃重點】


    通過三篇的學習,對于memory的結構,原理,特征參數、批處理生成和項目遴選都有了基本的了解和認識,希望這個系列的文章可以帶給大家靈感和啟發,在項目中可以更好地理解和應用memory,對項目帶來更高效的收益和PPA。

    參考資料

    TSMC TSMC N7 SRAM Compiler Databook
    Synopsys Embed-It! Integrator User Manual

    總結

    以上是生活随笔為你收集整理的芯片片上SRAM存储概略及生成使用实践 (下)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。