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

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

搜索
查看: 16|回復(fù): 0
收起左側(cè)

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

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


補(bǔ)充一條原文的評(píng)論:“mulit rail的ram如果要支持多電壓場(chǎng)景,注意下 margin config pin的切換時(shí)序!

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

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有賬號(hào)?立即注冊(cè)

x
回復(fù)

使用道具

發(fā)表回復(fù)

本版積分規(guī)則


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