(中國電子科技集團公司第58研究所,江蘇無錫214072)
大容量同步雙端口SRAM的仿真方法
周云波,李曉容
(中國電子科技集團公司第58研究所,江蘇無錫214072)
根據(jù)大容量同步雙端口SRAM(靜態(tài)隨機存儲器)功能多、時序嚴格、存儲單元數(shù)目巨大的特點,提出了一套用于功能復雜的大容量SRAM仿真驗證的激勵生成和后仿真驗證方法。該方法不僅克服了Hsim仿真激勵文件編寫耗時、不易修改的缺點,而且解決了大容量雙端口SRAM后仿真速度緩慢、占用大量硬件資源的問題,在很大程度上縮短了設(shè)計周期,保證了投片成功。芯片采用中芯國際0.13 μm CMOS工藝流片,實測結(jié)果驗證了該仿真方法是準確有效的。
雙端口同步SRAM;激勵文件;層次化;關(guān)鍵路徑
隨著集成電路加工工藝越來越先進,與之密切相關(guān)的SRAM(靜態(tài)隨機存儲器)也得到了迅速的發(fā)展。存儲容量越來越大,工作頻率越來越高,實現(xiàn)的功能越來越多,體系結(jié)構(gòu)也越來越復雜,更新?lián)Q代的速度更是越來越快[1]。為了保證生產(chǎn)流片的成功率、縮短上市時間,就需要對仿真驗證的覆蓋率和速度提出更高的要求。目前,在同步雙端口SRAM設(shè)計中,驗證工作已經(jīng)占據(jù)總體工作量的50%以上,而且隨著器件規(guī)模的增大和功能的增多,其驗證的復雜度就越高,耗時也越長。在這種情況下,如何在保證驗證覆蓋率的前提下提高驗證速度,就成為縮短研發(fā)周期的關(guān)鍵,也成為了設(shè)計開發(fā)的難點。目前,在同步雙端口SRAM的仿真驗證過程中,所面臨的問題主要表現(xiàn)在以下兩點。
(1)功能多、時序嚴格,導致激勵文件過長。
同步雙端口SRAM具有左、右兩個端口,每個端口都有各自的數(shù)據(jù)總線、地址總線、控制信號和時鐘信號,可以獨立進行讀寫操作和工作模式選擇。同步雙端口SRAM一般支持3種工作模式:Flow-through(直通)、Pipelined(流水線)和Burst(突發(fā))模式[2]。直通模式和流水線工作模式下,其地址、數(shù)據(jù)和控制信號的建立、保持時間不同,器件復位所要的時鐘周期不同,數(shù)據(jù)輸出延遲時間也不同。在突發(fā)工作模式下,除了進行讀/寫操作以外,還具有步進選擇、計數(shù)/屏蔽寄存器回讀、中繼發(fā)送、保持操作和寄存器復位等功能。因此,在進行全參數(shù)仿真驗證時,如果對照功能逐條手工編寫激勵文件的話,將是一項既耗時又易出錯的工作。
(2)仿真時間及硬件資源的消耗增加。
對于大規(guī)模的雙端口SRAM,其存儲單元數(shù)目巨大,并且雙端口SRAM一般采用8管單元,因此存儲器的晶體管數(shù)量可達千萬級。如果想遍歷所有的存儲單元進行仿真驗證,即使采用高速Spice仿真軟件,其所需要的仿真時間也不容小覷。在深亞微米工藝條件下,器件的寄生參數(shù)增多[3],后仿真驗證時產(chǎn)生的數(shù)據(jù)容量超過硬件資源所能容納的范圍,仿真會在運行過程中被迫停止。
針對以上這些問題,結(jié)合存儲器的結(jié)構(gòu)特點,本文對同步雙端口SRAM的仿真驗證進行了深入的研究,為電路的仿真驗證工作提出了便利而準確的方法。
在大容量高速SRAM電路仿真時,一般要求必須達到較高的驗證覆蓋率,即功能驗證需要實現(xiàn)各種工作模式、遍歷整個器件的存儲單元;時序驗證需要保證地址、數(shù)據(jù)和每個控制信號的建立時間、保持時間以及器件的復位時間都滿足時序要求。在使用Hsim仿真工具進行仿真時,以上這些要求將使得測試激勵文件相當繁瑣、冗長,單純在Hsim的仿真文件中逐條編寫幾乎不可行。文中通過編寫一個簡單的Verilog程序,就可以將復雜而準確性較低的操作變成簡單的命令,快捷、方便而且滿足驗證覆蓋率的問題。
Verilog是硬件描述語言的一種,用于數(shù)字系統(tǒng)設(shè)計[4]。設(shè)計者可以用它進行各種級別的邏輯設(shè)計,也可以用它進行數(shù)字邏輯系統(tǒng)的仿真驗證、時序分析和邏輯綜合等。
根據(jù)功能和時序驗證的具體要求,本文在UNIX的環(huán)境下,通過編寫Verilog程序生成后綴為.vec的激勵文件,然后,在Hsim仿真工具的.sp仿真文件中,引用此激勵文件進行仿真驗證。定義時間標尺為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ā)地址計數(shù)器。突發(fā)計數(shù)器包含4個寄存器:1個計數(shù)寄存器,1個屏蔽寄存器,1個鏡像寄存器和1個忙地址寄存器。突發(fā)模式下只加載連續(xù)序列地址中的第一個地址,并且通過遞增芯片中的地址計數(shù)器來完成后續(xù)訪問。
Verilog語言描述如下:
CNTEN=0;//從地址線加載地址到突發(fā)計數(shù)器和鏡像寄存器
for(i=0;i<n;i=i+1)
begin
#30 Clk=1;
#6 InFlagA=0;ADSR=1;//內(nèi)部計數(shù)地址步進
#24 Clk=0;
end
2.3 計數(shù)器中繼功能(任一端口)
在計數(shù)器公開位累加至全1時,如果計數(shù)器要繼續(xù)累加,計數(shù)器中斷標志位置低,當計數(shù)器累加為其他任一數(shù)值時,該信號釋放。該信號可以由計數(shù)器復位、計數(shù)器加載、屏蔽復位、屏蔽加載信號控制。
Verilog語言描述如下:
#50 InFlagA=1; AI=17`h0_000E; ADS=0; CNTEN=0;CNTMASK=0;CNTST=1;//加載地址線上的地址到屏蔽寄存器,并定義計數(shù)器步進
#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ā)計數(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文件進行定義,其中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ù)類型或進制
表1 突發(fā)計數(shù)器和屏蔽寄存器控制操作(任一端口)
運行Verilog程序,自動生成相應的測試文件,如圖1所示。然后在Hsim仿真文件中,采用.param hsimvectorfile=“文件名.vec”語句將其引用即可[5]。
這種方式事半功倍,產(chǎn)生的激勵文件信息完備、覆蓋率高,且易于修改和糾錯,大大減少了運行仿真前準備工作的工作量和時間。
目前,常用的基于大規(guī)模電路晶體管級的Spice高速仿真軟件主要有Hsim(Nassda公司)、Ultrasim(Candence公司)、Nanosim(Synopsys公司)等。但是,在進行SRAM后仿真驗證時,其速度并不令人滿意,主要有兩方面的原因。其一是由于SRAM容量和端口的增加。例如,對于本文中容量為4 Mb的雙端口SRAM來說,其含有4 718 592個存儲單元,并且此SRAM是雙端口器件,采用的是8管存儲單元設(shè)計,因此僅存儲陣列就包含有37 748 736個晶體管。其二,隨著工藝尺寸的不斷減小,器件的寄生參數(shù)也不斷增多。當工藝特征尺寸≤0.13 μm時,后仿真連線的延遲已經(jīng)接近器件的延遲,金屬連線以及晶體管的寄生效應非常明顯。將4 Mb雙端口SRAM整體版圖的所有寄生參數(shù)進行提取并加以統(tǒng)計可知,其中的寄生電阻、電容數(shù)量已經(jīng)遠遠超出了晶體管本身的數(shù)目,很大程度上增加了后仿真網(wǎng)表文件的容量。這兩方面的原因使得那些高速的Spice仿真軟件要想得到精確的仿真結(jié)果就不得不進行更加繁復的公式計算,最終導致仿真速度仍然緩慢。
面對上述問題,本文依據(jù)雙端口SRAM的電路結(jié)構(gòu)特點,提出了一套加快后仿真驗證速度的方法。3.1 寄生參數(shù)的提取
雙端口大容量SRAM的版圖信息量大且較為復雜,在進行其寄生參數(shù)的提取時,可以采用編寫Hcell(Hierarachically Corresponding Cell)文件的方法層次化對應的單元,以達到簡化邏輯和版圖層次、縮短calibre LVS運行時間的目的。
一般情況下,Hcell文件應該盡量簡單,復雜的Hcell列表也會增加calibre LVS運算的工作量,適得其反。本文中編寫的Hcell文件如下所示:
圖1 部分.vec測試文件
在Hcell文件中,版圖和邏輯的名字可以相同也可以不一致,可以指定一個版圖名字對應多個邏輯,也可以指定多個版圖名字對應一個邏輯。
通過編寫成Hcell文件使得版圖單元名與邏輯單元名一一對應,將版圖進行層次化,再進行全參數(shù)提取。然后在.sp文件中采用.param hsimspf=“后仿真參數(shù)”語句將版圖提取的參數(shù)反標至邏輯網(wǎng)表,形成最后所需的信息完整的后仿真網(wǎng)表。
3.2 關(guān)鍵路徑的選擇
本文中的雙端口SRAM的存儲容量較大,如若是遍歷所有存儲單元進行驗證,則數(shù)據(jù)量太大,消耗過多的硬件資源,且仿真周期太長。根據(jù)SRAM存儲陣列的結(jié)構(gòu)和外圍電路的布局,可以通過選取關(guān)鍵路徑的方法對部分存儲單元進行驗證。此方法中,關(guān)鍵路徑如何選取將直接影響到仿真驗證的覆蓋率和準確度。
4 Mb同步雙端口SRAM電路的存儲單元陣列與外圍電路的布局如圖2所示。此結(jié)構(gòu)中,占據(jù)絕大部分面積的是數(shù)據(jù)通路、地址通路和時鐘網(wǎng)絡(luò),其中數(shù)據(jù)通路主要包含數(shù)據(jù)寄存邏輯、寫驅(qū)動電路、靈敏放大器和存儲單元陣列;地址通路主要包含數(shù)據(jù)寄存邏輯、用于突發(fā)工作模式的突發(fā)計數(shù)器和譯碼邏輯。整個存儲單元陣列分為16個小塊,每一塊都有局部譯碼進行字線、位線的選擇。每1/16塊陣列中相鄰的8列單元左、右端口各共用一個靈敏放大器和寫驅(qū)動;每條位線均有一個位線預充電路。
圖2 4 Mb同步雙端口SRAM布局圖
如果要計算一個寫操作的時間,就選取寫操作的最長路徑。如圖3所示,單元模塊A距離寫驅(qū)動和局部譯碼電路都是最遠的,因此字選信號和數(shù)據(jù)到達單元的時間也就最長、信號最弱。此外,由于時鐘信號從整個版圖的中部引出,因此對于處于邊角的單元模塊A,其寫驅(qū)動和局部譯碼的觸發(fā)時間也最長。同時A模塊這一行的單元也是距離靈敏放大器最遠的,因此單元模塊A的讀/寫通路可作為關(guān)鍵路徑之一。
同理,單元模塊B所處的位置,不僅距離局部譯碼、寫驅(qū)動和靈敏放大器最遠,而且其對應的寫驅(qū)動和靈敏放大器也是距離數(shù)據(jù)控制邏輯最遠的模塊,因此,單元模塊B的讀/寫通路也是一條關(guān)鍵路徑。單元模塊C處于整個版圖的中部,與外圍電路距離較短,其讀/寫通路也應該作為考核的對象。
圖3 關(guān)鍵路徑示意圖
本文中的4 Mb同步雙端口SRAM采用SMIC 0.13 μm CMOS工藝流片。后仿真驗證過程中,寄生參數(shù)文件由約4.0 GB降至394.5 MB,減小約90%,LVS驗證時間縮短96%以上,大大提高后仿真驗證的效率,減少硬件資源的消耗。三溫實測結(jié)果表明其功能完整,性能穩(wěn)定,工作頻率可以達到200 MHz以上,仿真數(shù)據(jù)和實測數(shù)據(jù)誤差小于5%,充分說明了激勵文件的完成性、仿真方法的準確性,部分參數(shù)的仿真結(jié)果與測試數(shù)據(jù)對比如表2所示,其中因為仿真采用的是SS工藝角、125℃和FF工藝角、-55℃等極限條件,所以實測結(jié)果優(yōu)于仿真結(jié)果。
隨著SRAM進入高速、大容量、多端口的階段,準確、完備、快速的設(shè)計驗證將是設(shè)計成功的關(guān)鍵。本文論述的仿真激勵生成和后仿參數(shù)提取的方法,不僅縮短了仿真驗證周期、節(jié)約了大量的硬件資源,而且覆蓋率高、數(shù)據(jù)完整,保證了投片的一次性成功,在實際應用中具有推廣價值。
表2 4 Mb同步雙端口SRAM電路全參數(shù)(VDD=3.3 V±0.165 V,GND=0 V)
[1]中商情報網(wǎng)公司.2013—2017年中國SRAM市場調(diào)查及發(fā)展趨勢研究報告[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è)計教程[M].北京:北京航空航天大學出版社,2004.
[5]Hsim Simulation Reference[P].SYNOPSYS,2009.
[6]劉樹林,張華曹,柴常春.半導體器件物理[M].北京:電子工業(yè)出版社,2009.
作者簡介:
鮑宜鵬(1985—),男,江蘇宿遷人,碩士研究生,研究方向為SOC設(shè)計方法學。
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年江南大學微電子專業(yè)博士畢業(yè),現(xiàn)主要從事存儲器研發(fā)工作。
2016-6-14