電子產(chǎn)業(yè)一站式賦能平臺

PCB聯(lián)盟網(wǎng)

搜索
查看: 13|回復: 0
收起左側

【芯片設計】sram的一次選型與優(yōu)化之旅

[復制鏈接]
跳轉到指定樓層
樓主
匿名  發(fā)表于 4 天前 回帖獎勵 |倒序瀏覽 |閱讀模式
本篇沒有與工藝、廠商、工具以及實際操作相關的信息,單純記錄一下sram選型優(yōu)化的一些思路。之前一直沒有親自動手去生成過sram,都是有專門人負責收集大家的需求(不妨稱之為ram管理員吧)而后統(tǒng)一生成各種選型的ram甚至wrapper(就是上一篇文章提到的ram wrapper),大家再拿過來用就好了。而這次是必須要親自上手,根據(jù)需求在種類繁多的sram型號和大小里選出最合適那款。講真,確實是一次很有意義的經(jīng)歷,彌補了一直來的空缺。
ram選型的第一步自然是要有需求,假設現(xiàn)在的需求是寬度x深度=MxN的單口spram。有需求之后,就開始根據(jù)實際場景來進行ram選型了。一塊ram和其他的ip一樣關注的無非就是五個維度:P(performance) P(power) A(area) T(timing)加上是否能夠實現(xiàn)R(realizability)。
Performance性能在ram這里其實不是很好體現(xiàn),因為正常符合功能需求的ram型號都不會有性能問題(接口位寬都固定,ram那個接口也不可能阻塞上游),所以有湊數(shù)的嫌疑但畢竟PPA都是在一起聊的。如果非要把哪一項歸在這類中,可以將“一拍內是否可以完成讀寫”算進去,即ram的最小讀寫周期(即理論最快時鐘頻率)。每個ram都有一個最小的讀寫周期(雙口會有讀寫兩個),即ram處理一筆讀或寫所需的極限時間,如果時鐘頻率高于這個時鐘頻率的話那就需要兩拍才能出數(shù)據(jù)(這個時間是個物理時間要求,必須滿足的那種)。因此如果最小讀寫周期不滿足,可能會對整體的性能有影響,故而放在這里也未嘗不可。這個值去哪找呢?只需要在生成ram時同時生成其datasheet,而后在里面找tcyc或者trcyc、twcyc之類的關鍵詞就能查到了,單位默認為ns。最后一個問題,如果查到了最小周期為1ns,那此時接1GHz時鐘可以滿足每拍處理請求么?大抵是不行的,怎么也有有個10%以上的裕量,也就是1.1ns最快接900MHz的時鐘頻率。
Power功耗,這里主要關注了兩個指標(不確定是不是有更多啊這次我沒關注到)電壓閾值和漏電流大小。電壓閾值的選擇而言,必然是優(yōu)先SVT,SVT搞不定再上LVT實在不行了再考慮ULVT。這個跟綜合時后端修時序路徑的思路相似,優(yōu)先使用在性能和功耗之間較為平衡的SVT標準電壓閾值器件(不確定默認是SVT還是HVT了,好像是SVT),時序上實在搞不定了再換性能更好功耗更大的LVT甚至ULVT器件。所以就有那句名言嘛:后端就像海綿里水,再壓一壓總能幫你把時序搞定。電壓閾值也會直接關系到漏電流大小,進而造成功耗大小的差別。在datasheet中以leakage current為關鍵詞就可以查到ram的漏電流大小從而比對不同選型的功耗差異。
Area面積這個主要和存儲密度相關聯(lián),所以在選型時優(yōu)先選擇hd標記即High Density類型的ram,如果想進一步對比不同選型ram面積的大小,就在datasheet中以Area為關鍵字查看下具體的面積,單位默認為μm^2。
Timing時序,剛剛所述的最大時鐘頻率也可以算作時序維度的一部分,另外兩個需要關注的就是setup_rising建立時間要求和C2Q延時大小。關于這一點,在之前的一篇文章中有更加清晰的例子。
這個例子里就是心儀選型ram的C2Q太大而引發(fā)的后續(xù)補救工作,如果這個補救不能被后端接收,那么就要再次換型。輸入端口的setup_rising和輸出端口C2Q大小在datasheet中都有查找表,可供量化查詢。
Realizability可實現(xiàn)性,即使上面幾點都協(xié)調好了,也很有可能會發(fā)生輸入指定大小MxN以及Multiplexer Width之后,工具很可能會告訴你“啊不行啊,這個mux支持的深度or寬度區(qū)間是xxxx~yyyy,請更換更大的mux吧”。你照做之后,它再告訴你“這個型號支持的最大mux是zz,不支持你輸入的大小”,woc就不能一次把信息拋全么。所以這個時候也就清楚了,最愛的這個組合ram是生成不出來了。所以怎么辦呢,要么換型號要么進行ram拆分,比如拆成兩塊Mx(N/2)或(M/2)xN或者進一步的向下拆分。優(yōu)先選擇拆寬度,這樣在內部只需要進行信號的拆分和拼接,而不需要進行選擇。
最后畫圖鬼才必須畫張圖,完美結束本篇。


補充一條原文的評論:“mulit rail的ram如果要支持多電壓場景,注意下 margin config pin的切換時序!

系列文章入口——
【芯片設計】SoC 101(一):緒論
【芯片設計】FIFO漫談(零)從無處不在的FIFO開始說起
【芯片設計】計算機體系結構(一)虛擬內存
【芯片設計】深入理解AMBA總線(零)緒論
【芯片設計】握手協(xié)議的介紹與時序說明
【芯片設計】復位那些小事 —— 復位消抖
【芯片設計】快速入門數(shù)字芯片設計(一)Introduction
【芯片驗證】UVM源碼計劃(零)下定決心讀源碼前的自測環(huán)節(jié)
【芯片設計】異步電路碎碎念(一) 到底什么是異步電路
【芯片設計】從RTL到GDS(一):Introduction
其他文章鏈接——
【芯片驗證】sva_assertion: 15道助力飛升的斷言練習
【芯片驗證】可能是RTL定向驗證的巔峰之作
【芯片驗證】RTL仿真中X態(tài)行為的傳播 —— 從xprop說起
【芯片驗證】年輕人的第一個systemVerilog驗證環(huán)境全工程與解析
【芯片設計】verilog中有符號數(shù)和無符號數(shù)的本質探究
【芯片設計】論RTL中always語法的消失術
【芯片設計】代碼即注釋,注釋即代碼
【芯片設計】700行代碼的risc處理器你確實不能要求太多了
入職芯片開發(fā)部門后,每天摸魚之外的時間我們要做些什么呢
如何計算系統(tǒng)的outstanding 和 burst length?
芯片搬磚日!け扑缽娖劝Y的關鍵詞不對齊事件
熟人社會里,一群沒有社會價值的局外人

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有賬號?立即注冊

x
回復

使用道具

發(fā)表回復

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則


聯(lián)系客服 關注微信 下載APP 返回頂部 返回列表