(中國電子科技集團(tuán)公司第58研究所,江蘇無錫214072)
大容量同步雙端口SRAM的仿真方法
周云波,李曉容
(中國電子科技集團(tuán)公司第58研究所,江蘇無錫214072)
根據(jù)大容量同步雙端口SRAM(靜態(tài)隨機(jī)存儲器)功能多、時序嚴(yán)格、存儲單元數(shù)目巨大的特點(diǎn),提出了一套用于功能復(fù)雜的大容量SRAM仿真驗(yàn)證的激勵生成和后仿真驗(yàn)證方法。該方法不僅克服了Hsim仿真激勵文件編寫耗時、不易修改的缺點(diǎn),而且解決了大容量雙端口SRAM后仿真速度緩慢、占用大量硬件資源的問題,在很大程度上縮短了設(shè)計(jì)周期,保證了投片成功。芯片采用中芯國際0.13 μm CMOS工藝流片,實(shí)測結(jié)果驗(yàn)證了該仿真方法是準(zhǔn)確有效的。
雙端口同步SRAM;激勵文件;層次化;關(guān)鍵路徑
隨著集成電路加工工藝越來越先進(jìn),與之密切相關(guān)的SRAM(靜態(tài)隨機(jī)存儲器)也得到了迅速的發(fā)展。存儲容量越來越大,工作頻率越來越高,實(shí)現(xiàn)的功能越來越多,體系結(jié)構(gòu)也越來越復(fù)雜,更新?lián)Q代的速度更是越來越快[1]。為了保證生產(chǎn)流片的成功率、縮短上市時間,就需要對仿真驗(yàn)證的覆蓋率和速度提出更高的要求。目前,在同步雙端口SRAM設(shè)計(jì)中,驗(yàn)證工作已經(jīng)占據(jù)總體工作量的50%以上,而且隨著器件規(guī)模的增大和功能的增多,其驗(yàn)證的復(fù)雜度就越高,耗時也越長。在這種情況下,如何在保證驗(yàn)證覆蓋率的前提下提高驗(yàn)證速度,就成為縮短研發(fā)周期的關(guān)鍵,也成為了設(shè)計(jì)開發(fā)的難點(diǎn)。目前,在同步雙端口SRAM的仿真驗(yàn)證過程中,所面臨的問題主要表現(xiàn)在以下兩點(diǎn)。
(1)功能多、時序嚴(yán)格,導(dǎo)致激勵文件過長。
同步雙端口SRAM具有左、右兩個端口,每個端口都有各自的數(shù)據(jù)總線、地址總線、控制信號和時鐘信號,可以獨(dú)立進(jìn)行讀寫操作和工作模式選擇。同步雙端口SRAM一般支持3種工作模式:Flow-through(直通)、Pipelined(流水線)和Burst(突發(fā))模式[2]。直通模式和流水線工作模式下,其地址、數(shù)據(jù)和控制信號的建立、保持時間不同,器件復(fù)位所要的時鐘周期不同,數(shù)據(jù)輸出延遲時間也不同。在突發(fā)工作模式下,除了進(jìn)行讀/寫操作以外,還具有步進(jìn)選擇、計(jì)數(shù)/屏蔽寄存器回讀、中繼發(fā)送、保持操作和寄存器復(fù)位等功能。因此,在進(jìn)行全參數(shù)仿真驗(yàn)證時,如果對照功能逐條手工編寫激勵文件的話,將是一項(xiàng)既耗時又易出錯的工作。
(2)仿真時間及硬件資源的消耗增加。
對于大規(guī)模的雙端口SRAM,其存儲單元數(shù)目巨大,并且雙端口SRAM一般采用8管單元,因此存儲器的晶體管數(shù)量可達(dá)千萬級。如果想遍歷所有的存儲單元進(jìn)行仿真驗(yàn)證,即使采用高速Spice仿真軟件,其所需要的仿真時間也不容小覷。在深亞微米工藝條件下,器件的寄生參數(shù)增多[3],后仿真驗(yàn)證時產(chǎn)生的數(shù)據(jù)容量超過硬件資源所能容納的范圍,仿真會在運(yùn)行過程中被迫停止。
針對以上這些問題,結(jié)合存儲器的結(jié)構(gòu)特點(diǎn),本文對同步雙端口SRAM的仿真驗(yàn)證進(jìn)行了深入的研究,為電路的仿真驗(yàn)證工作提出了便利而準(zhǔn)確的方法。
在大容量高速SRAM電路仿真時,一般要求必須達(dá)到較高的驗(yàn)證覆蓋率,即功能驗(yàn)證需要實(shí)現(xiàn)各種工作模式、遍歷整個器件的存儲單元;時序驗(yàn)證需要保證地址、數(shù)據(jù)和每個控制信號的建立時間、保持時間以及器件的復(fù)位時間都滿足時序要求。在使用Hsim仿真工具進(jìn)行仿真時,以上這些要求將使得測試激勵文件相當(dāng)繁瑣、冗長,單純在Hsim的仿真文件中逐條編寫幾乎不可行。文中通過編寫一個簡單的Verilog程序,就可以將復(fù)雜而準(zhǔn)確性較低的操作變成簡單的命令,快捷、方便而且滿足驗(yàn)證覆蓋率的問題。
Verilog是硬件描述語言的一種,用于數(shù)字系統(tǒng)設(shè)計(jì)[4]。設(shè)計(jì)者可以用它進(jìn)行各種級別的邏輯設(shè)計(jì),也可以用它進(jìn)行數(shù)字邏輯系統(tǒng)的仿真驗(yàn)證、時序分析和邏輯綜合等。
根據(jù)功能和時序驗(yàn)證的具體要求,本文在UNIX的環(huán)境下,通過編寫Verilog程序生成后綴為.vec的激勵文件,然后,在Hsim仿真工具的.sp仿真文件中,引用此激勵文件進(jìn)行仿真驗(yàn)證。定義時間標(biāo)尺為100 ps,定義InFlagA和InFlagD,以下是部分功能的激勵文件。2.1 流水線模式下的讀周期(任一端口)
在流水線模式下,從數(shù)據(jù)線上讀取輸出數(shù)據(jù)前,輸出數(shù)據(jù)被存儲在寄存器內(nèi)。時鐘切換前,控制信號必須在tS(建立時間)內(nèi)存在并且有效,另外時鐘切換后要在tH(保持時間)內(nèi)保持為有效狀態(tài),在時鐘上升沿上,地址被寄存,并且開始讀周期。
Verilog語言描述如下:
for(i=0;i<n;i=i+1)
begin
#23 Clk=1;//在時鐘上升沿加載地址
#6 InFlagA=0;//地址保持6 ns
#24 Clk=0;
#7 InFlagA=1;AI=2**i;
end
2.2 突發(fā)模式下的讀周期(任一端口)
器件的每個端口都包含一個可編程的突發(fā)地址計(jì)數(shù)器。突發(fā)計(jì)數(shù)器包含4個寄存器:1個計(jì)數(shù)寄存器,1個屏蔽寄存器,1個鏡像寄存器和1個忙地址寄存器。突發(fā)模式下只加載連續(xù)序列地址中的第一個地址,并且通過遞增芯片中的地址計(jì)數(shù)器來完成后續(xù)訪問。
Verilog語言描述如下:
CNTEN=0;//從地址線加載地址到突發(fā)計(jì)數(shù)器和鏡像寄存器
for(i=0;i<n;i=i+1)
begin
#30 Clk=1;
#6 InFlagA=0;ADSR=1;//內(nèi)部計(jì)數(shù)地址步進(jìn)
#24 Clk=0;
end
2.3 計(jì)數(shù)器中繼功能(任一端口)
在計(jì)數(shù)器公開位累加至全1時,如果計(jì)數(shù)器要繼續(xù)累加,計(jì)數(shù)器中斷標(biāo)志位置低,當(dāng)計(jì)數(shù)器累加為其他任一數(shù)值時,該信號釋放。該信號可以由計(jì)數(shù)器復(fù)位、計(jì)數(shù)器加載、屏蔽復(fù)位、屏蔽加載信號控制。
Verilog語言描述如下:
#50 InFlagA=1; AI=17`h0_000E; ADS=0; CNTEN=0;CNTMASK=0;CNTST=1;//加載地址線上的地址到屏蔽寄存器,并定義計(jì)數(shù)器步進(jìn)
#23 Clk=1;
#6 InFlagA=0;ADS=1;CNTEN=1;
#24 Clk=0;
#7 InFlagA=1; AI=17`h0_0004; ADS=0; CNTEN=0;CNTMASK=1;CNTRST=1;//從地址線加載地址到突發(fā)計(jì)數(shù)器和鏡像寄存器
for(i=0;i<n;i=i+1)
#23 Clk=1;
#6 InFlagA=0;ADS=1;CNTEN=1;
#24 Clk=0;
#7 CNTENT=0;
end
生成測試文件的主要指令如下:
begin
$fdisplay(vec_file,“ ”);//對vec文件進(jìn)行定義,其中signal定義vec文件的端口信息,radix定義vec文件數(shù)據(jù)位寬,io定義vec文件端口類型,tunit定義vec文件時間單位,slope定義vec文件信號上升/下降延遲,vih/vil定義vec文件邏輯高/低電平。
end
vec_file=$fopen(“文件名.vec”);
$fmonitor(vec_file,“ ”);//定義vec文件數(shù)據(jù)類型或進(jìn)制
表1 突發(fā)計(jì)數(shù)器和屏蔽寄存器控制操作(任一端口)
運(yùn)行Verilog程序,自動生成相應(yīng)的測試文件,如圖1所示。然后在Hsim仿真文件中,采用.param hsimvectorfile=“文件名.vec”語句將其引用即可[5]。
這種方式事半功倍,產(chǎn)生的激勵文件信息完備、覆蓋率高,且易于修改和糾錯,大大減少了運(yùn)行仿真前準(zhǔn)備工作的工作量和時間。
目前,常用的基于大規(guī)模電路晶體管級的Spice高速仿真軟件主要有Hsim(Nassda公司)、Ultrasim(Candence公司)、Nanosim(Synopsys公司)等。但是,在進(jìn)行SRAM后仿真驗(yàn)證時,其速度并不令人滿意,主要有兩方面的原因。其一是由于SRAM容量和端口的增加。例如,對于本文中容量為4 Mb的雙端口SRAM來說,其含有4 718 592個存儲單元,并且此SRAM是雙端口器件,采用的是8管存儲單元設(shè)計(jì),因此僅存儲陣列就包含有37 748 736個晶體管。其二,隨著工藝尺寸的不斷減小,器件的寄生參數(shù)也不斷增多。當(dāng)工藝特征尺寸≤0.13 μm時,后仿真連線的延遲已經(jīng)接近器件的延遲,金屬連線以及晶體管的寄生效應(yīng)非常明顯。將4 Mb雙端口SRAM整體版圖的所有寄生參數(shù)進(jìn)行提取并加以統(tǒng)計(jì)可知,其中的寄生電阻、電容數(shù)量已經(jīng)遠(yuǎn)遠(yuǎn)超出了晶體管本身的數(shù)目,很大程度上增加了后仿真網(wǎng)表文件的容量。這兩方面的原因使得那些高速的Spice仿真軟件要想得到精確的仿真結(jié)果就不得不進(jìn)行更加繁復(fù)的公式計(jì)算,最終導(dǎo)致仿真速度仍然緩慢。
面對上述問題,本文依據(jù)雙端口SRAM的電路結(jié)構(gòu)特點(diǎn),提出了一套加快后仿真驗(yàn)證速度的方法。3.1 寄生參數(shù)的提取
雙端口大容量SRAM的版圖信息量大且較為復(fù)雜,在進(jìn)行其寄生參數(shù)的提取時,可以采用編寫Hcell(Hierarachically Corresponding Cell)文件的方法層次化對應(yīng)的單元,以達(dá)到簡化邏輯和版圖層次、縮短calibre LVS運(yùn)行時間的目的。
一般情況下,Hcell文件應(yīng)該盡量簡單,復(fù)雜的Hcell列表也會增加calibre LVS運(yùn)算的工作量,適得其反。本文中編寫的Hcell文件如下所示:
圖1 部分.vec測試文件
在Hcell文件中,版圖和邏輯的名字可以相同也可以不一致,可以指定一個版圖名字對應(yīng)多個邏輯,也可以指定多個版圖名字對應(yīng)一個邏輯。
通過編寫成Hcell文件使得版圖單元名與邏輯單元名一一對應(yīng),將版圖進(jìn)行層次化,再進(jìn)行全參數(shù)提取。然后在.sp文件中采用.param hsimspf=“后仿真參數(shù)”語句將版圖提取的參數(shù)反標(biāo)至邏輯網(wǎng)表,形成最后所需的信息完整的后仿真網(wǎng)表。
3.2 關(guān)鍵路徑的選擇
本文中的雙端口SRAM的存儲容量較大,如若是遍歷所有存儲單元進(jìn)行驗(yàn)證,則數(shù)據(jù)量太大,消耗過多的硬件資源,且仿真周期太長。根據(jù)SRAM存儲陣列的結(jié)構(gòu)和外圍電路的布局,可以通過選取關(guān)鍵路徑的方法對部分存儲單元進(jìn)行驗(yàn)證。此方法中,關(guān)鍵路徑如何選取將直接影響到仿真驗(yàn)證的覆蓋率和準(zhǔn)確度。
4 Mb同步雙端口SRAM電路的存儲單元陣列與外圍電路的布局如圖2所示。此結(jié)構(gòu)中,占據(jù)絕大部分面積的是數(shù)據(jù)通路、地址通路和時鐘網(wǎng)絡(luò),其中數(shù)據(jù)通路主要包含數(shù)據(jù)寄存邏輯、寫驅(qū)動電路、靈敏放大器和存儲單元陣列;地址通路主要包含數(shù)據(jù)寄存邏輯、用于突發(fā)工作模式的突發(fā)計(jì)數(shù)器和譯碼邏輯。整個存儲單元陣列分為16個小塊,每一塊都有局部譯碼進(jìn)行字線、位線的選擇。每1/16塊陣列中相鄰的8列單元左、右端口各共用一個靈敏放大器和寫驅(qū)動;每條位線均有一個位線預(yù)充電路。
圖2 4 Mb同步雙端口SRAM布局圖
如果要計(jì)算一個寫操作的時間,就選取寫操作的最長路徑。如圖3所示,單元模塊A距離寫驅(qū)動和局部譯碼電路都是最遠(yuǎn)的,因此字選信號和數(shù)據(jù)到達(dá)單元的時間也就最長、信號最弱。此外,由于時鐘信號從整個版圖的中部引出,因此對于處于邊角的單元模塊A,其寫驅(qū)動和局部譯碼的觸發(fā)時間也最長。同時A模塊這一行的單元也是距離靈敏放大器最遠(yuǎn)的,因此單元模塊A的讀/寫通路可作為關(guān)鍵路徑之一。
同理,單元模塊B所處的位置,不僅距離局部譯碼、寫驅(qū)動和靈敏放大器最遠(yuǎn),而且其對應(yīng)的寫驅(qū)動和靈敏放大器也是距離數(shù)據(jù)控制邏輯最遠(yuǎn)的模塊,因此,單元模塊B的讀/寫通路也是一條關(guān)鍵路徑。單元模塊C處于整個版圖的中部,與外圍電路距離較短,其讀/寫通路也應(yīng)該作為考核的對象。
圖3 關(guān)鍵路徑示意圖
本文中的4 Mb同步雙端口SRAM采用SMIC 0.13 μm CMOS工藝流片。后仿真驗(yàn)證過程中,寄生參數(shù)文件由約4.0 GB降至394.5 MB,減小約90%,LVS驗(yàn)證時間縮短96%以上,大大提高后仿真驗(yàn)證的效率,減少硬件資源的消耗。三溫實(shí)測結(jié)果表明其功能完整,性能穩(wěn)定,工作頻率可以達(dá)到200 MHz以上,仿真數(shù)據(jù)和實(shí)測數(shù)據(jù)誤差小于5%,充分說明了激勵文件的完成性、仿真方法的準(zhǔn)確性,部分參數(shù)的仿真結(jié)果與測試數(shù)據(jù)對比如表2所示,其中因?yàn)榉抡娌捎玫氖荢S工藝角、125℃和FF工藝角、-55℃等極限條件,所以實(shí)測結(jié)果優(yōu)于仿真結(jié)果。
隨著SRAM進(jìn)入高速、大容量、多端口的階段,準(zhǔn)確、完備、快速的設(shè)計(jì)驗(yàn)證將是設(shè)計(jì)成功的關(guān)鍵。本文論述的仿真激勵生成和后仿參數(shù)提取的方法,不僅縮短了仿真驗(yàn)證周期、節(jié)約了大量的硬件資源,而且覆蓋率高、數(shù)據(jù)完整,保證了投片的一次性成功,在實(shí)際應(yīng)用中具有推廣價(jià)值。
表2 4 Mb同步雙端口SRAM電路全參數(shù)(VDD=3.3 V±0.165 V,GND=0 V)
[1]中商情報(bào)網(wǎng)公司.2013—2017年中國SRAM市場調(diào)查及發(fā)展趨勢研究報(bào)告[R].2013.
[2]了解同步雙端口RAM[EB/OL].http://www.cypress.com.
[3]R Jacob Baker,Harry W Li,et al.CMOS Circuit Design, Layout,and Simulation [M].New York:The Institute of Electrical and Electronic,Inc.1997.
[4]夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程[M].北京:北京航空航天大學(xué)出版社,2004.
[5]Hsim Simulation Reference[P].SYNOPSYS,2009.
[6]劉樹林,張華曹,柴常春.半導(dǎo)體器件物理[M].北京:電子工業(yè)出版社,2009.
作者簡介:
鮑宜鵬(1985—),男,江蘇宿遷人,碩士研究生,研究方向?yàn)镾OC設(shè)計(jì)方法學(xué)。
Research on Simulation Method of Large Capacity Synchronous Dual-port SRAM
ZHOU Yunbo,LI Xiaorong
(China Electronics Technology Group Corporation No.58 Research Institute,Wuxi 214072,China)
The large capacity synchronous dual-port SRAM is usually of multi-function,critical time sequence and huge number of storage units.The paper proposes the method of simulation sources generation and parameter extraction for SRAM.The method not only overcomes the shortcomings of the conventional 'HSIM'tool but also increases the speed and saves hardware resources during post-layout simulation of large capacity dual-port SRAM.It greatly shortens the design cycle.The chip is manufactured by SMIC 0.13 μm CMOS process.The experiment results verify the accuracy and effectiveness of the simulation method.
dual port SRAM;simulation sources;Hcell;critical path
TN402
A
1681-1070(2016)12-0035-05
周云波(1984—),女,河南鄭州人,2012年江南大學(xué)微電子專業(yè)博士畢業(yè),現(xiàn)主要從事存儲器研發(fā)工作。
2016-6-14