SRAM基礎(chǔ)結(jié)構(gòu)
SRAM是靜態(tài)隨機(jī)存取存儲器。我們常用的memory就是SRAM。
常見的SRAM的基礎(chǔ)單元是六管結(jié)構(gòu)(六T結(jié)構(gòu))(六個(gè)晶體管組成bit cell,多個(gè)bit cell組成memory array)。如圖中的M1、M2、M3、M4、M5、M6。SRAM中的每一bit數(shù)據(jù)存儲在由4個(gè)場效應(yīng)管(M1,M2,M3,M4)構(gòu)成的兩個(gè)交叉耦合的反相器中。另外兩個(gè)場效應(yīng)管(M5,M6)是存儲基本單元到用于讀寫的位線(Bit Line)的控制開關(guān)。另外字線WL是控制bit cell的讀入和寫出的通路的。
具體結(jié)構(gòu)簡化示意如下:
SRAM的基本工作原理
SRAM的基本單元有3種狀態(tài):standby(電路處于空閑),reading(讀)和writing(寫)。
SRAM不與外界交互時(shí),WL字線置0,M5和M6都是NMOS管,此時(shí)都斷開;由M1、M2、M3、M4組成的鎖存器電路接續(xù)保持原來的電路狀態(tài)。
寫入數(shù)據(jù)穩(wěn)定后,WL字線置1,M5和M6打開,假設(shè)預(yù)存的是數(shù)據(jù)1,此時(shí)內(nèi)部的鎖存器開始通過M5和M6向外部放電。
由于單元管的尺寸很小,而位線通過單元管放電的速度很慢,為了提高讀出速度,只要在位線上建立起一定的電壓差就可以了,而不必等到一邊位線下降到低電平。通過列譯碼器控制的列開關(guān),把選中的單元位線讀出的微小信號差送到公共數(shù)據(jù)線,再通過公共數(shù)據(jù)線送到差分放大器,把微小的信號差放大為合格的高低電平,最后通過緩沖器轉(zhuǎn)換成單端信號輸出。
寫周期之開始前,要寫入的數(shù)據(jù)load到位線上。如果要寫入1,則設(shè)置^BL為0且BL為1。隨后字線WL加載為高電平,位線的狀態(tài)被傳遞到SRAM的bit cell。一般M1和M5兩個(gè)晶體管會選用驅(qū)動(dòng)能力更強(qiáng)的晶體管,以便使得BL上的信號可以覆蓋6T結(jié)構(gòu)中兩個(gè)反相器之前的狀態(tài)。SRAM的bit cell經(jīng)常會做成陣列結(jié)構(gòu),多個(gè)存儲單元共用一根字線WL。
SRAM的常見接口
一個(gè)可操作控制的SRAM通常具有豐富的接口控制,如下是一個(gè)T家的常見SRAM接口示意圖。
可以看到這里的接口控制管腳,遠(yuǎn)遠(yuǎn)多于簡單的memory array的控制需求,具體每一個(gè)管腳的配置用途詳見下表。
SRAM接口部分參考自如下鏈接,作者“艾思芯片設(shè)計(jì)”:
https://blog.csdn.net/i_chip_backend/article/details/121662466
1、根據(jù)design spec或data-flow決定,根據(jù)mem讀寫邏輯的位置,對稱性,IO等因素來決定;
2、考慮macro和位置固定的cell的連接關(guān)系,例如某些特殊的cell會bound在IO附近;
3、在先進(jìn)工藝中對poly的方向、poly的間距以及每個(gè)豎列的poly數(shù)量有要求;因此memory的orientation等會有限制。
4、一般會在memory四周加一些placement halo,應(yīng)該是主要是擔(dān)心外部standard cell和macro本身的物理DRC規(guī)則檢查不一致,規(guī)避潛在DRC;另外應(yīng)該就是不要讓standard cell靠macro太近從而搶占routing source和供電電流。
5、一般會在memory四周加一些routing ?blockage,因?yàn)閙emory的IO pin非常多,需要較多繞線資源;
6、使macro以外的空間盡可能四方開闊;
7、Memory之間是否需要留space:如果channel間想擺放cell,要確保memory之間有對應(yīng)的power srap,否則會導(dǎo)致rail floating。留大了浪費(fèi)面積,留小了導(dǎo)致繞線資源不足,rail floating等問題;
8、有的soc會對memory進(jìn)行串鏈操作,例如SD鏈,從而節(jié)省功耗,這些鏈路會用到always-on BUFFER,需要留足channel空間以便相關(guān)cell能放的進(jìn)去。
9、Channel中盡可能不要擺放寄存器,一是引起繞線問題;二是clock latency會很長,影響cts優(yōu)化;三是后期如果有IR drop等問題,修復(fù)起來周圍的繞線資源比較有限;