NAND閃存是一種高密度非易失性存儲器,基于電壓調制原理而操作。隨著技術開發(fā)和工藝改進,MLC NAND(2 bit/cell NAND)的架構正變得日益復雜化。今天,單個8Gb密度SLC NAND閃存芯片的MOSFET數(shù)量就超過70萬,這還未包括所有陣列器件在內;MLC約是SLC的1.5-2倍。圖1顯示了NAND功能塊基本結構圖,它通常是由I/O、低壓(LV)系統(tǒng)、高壓(LV)系統(tǒng)、控制邏輯和陣列5大部分組成。
I/O是芯片接口,包括高速I/O接口電路和ESD。
低壓(LV)系統(tǒng)將提供內部電源供應和各個區(qū)域的功耗管理。同時它還可產生芯片中其它電路的電壓和電流基準。
高壓(HV)系統(tǒng)是由大量電荷泵、調節(jié)器和電壓控制電路組成,可為NAND單元提供必要的高電壓。
陣列是由單元陣列、陣列驅動器和感知放大器組成;由于其密度巨大,因此它是整個芯片的最大組成部分。
圖1 NAND功能塊簡圖
控制邏輯是NAND的最后一個組成部分;它是NAND的大腦,包括有一個智能控制器和一個精密時鐘生成器。
要處理全芯片混合信號仿真,我們首先得*估電路規(guī)模、仿真所需的整體瞬態(tài)分析時間以及我們預期的精度;接著,我們再通過權衡考慮,做出選擇。若是要求高的精度,那么我們必須壓縮電路規(guī)模或縮短瞬態(tài)分析時間;相對地,若是要求長的瞬態(tài)分析時間或大型電路,那么就只能犧牲精度;否則仿真時間將很長,會影響產品進度。.
在進行NAND閃存仿真時,我們將面對什么?傳統(tǒng)規(guī)則仍行得通嗎?看起來并不。
首先,NAND中實施的混合信號仿真是為了檢查所有LV/HV電路是否能與數(shù)字部分良好協(xié)作、單元運作所需的所有各種高壓是否能正確提供。因此,多數(shù)HV/LV電路都有高精度需求。
其次,NAND的運作周期從幾百微秒至幾千微秒不等。例如:一個編程周期約為250微秒,而一個擦寫周期則可能約要1.5毫秒。此外,用于控制器或電荷泵的內部時鐘周期僅為60-70納秒左右。這意味著約4,200次時鐘周期才能完成一次編程操作。遺憾的是,在這種操作中,即便多數(shù)電荷泵、調節(jié)器、HV開關會不斷打開/關閉,那些操作行為和電壓值仍有待詳細觀察。因此,沒什么機會縮短仿真瞬態(tài)時間。
最后,有關電路規(guī)模,如圖2所列是從一個已減少單元陣列的NAND芯片的網(wǎng)表中所提取的數(shù)字。這已是我們必須提交給仿真器的最小值,盡管它仍是很大。
圖2: 一個減少了單元陣列NAND閃存器件數(shù)
大量電荷泵、調節(jié)器、電壓控制和時鐘振蕩器的高精度,再加上長的仿真瞬態(tài)時間和大的電路規(guī)模,所有這些都使得傳統(tǒng)混合信號仿真器難以完成NAND仿真。而且看起來似乎‘等待’是唯一的解決途徑。
那么,采用Magma Finesim會怎樣呢?首先,通過Fast-Spice仿真器引入分區(qū)功能,將大電路分為多個小電路。接著,計算矩陣將根據(jù)分區(qū),把大矩陣轉換為幾個相對小的矩陣,從而節(jié)省大量計算時間。
圖3:采用分區(qū)功能的矩陣
從無分區(qū)到CCC分區(qū)再到集中型分區(qū)(分區(qū)工作可SUBCKT邊界為終點層次化進行,只適用于邏輯電路),計算矩陣將被分得越來越小。最終,通過對單獨功能塊進行適當分區(qū)設置,我們能夠獲得一個性能合理、速度可接受的仿真結果。
圖4:標準CCC分區(qū)
適當分區(qū)對大型混合信號芯片的仿真至關重要。下面將以一個典型NAND閃存全芯片仿真為例來描述這種分區(qū)戰(zhàn)略。
為單獨功能塊定制精度設置一般而言,不同功能塊精度的設置是根據(jù)以下全芯片檢查中指導而指定:
1) 在最高層,設置一個速度相對快的標準精度,特別是如果主塊是邏輯電路時更要如此。
2) 最大程度減少有高精度需求的功能塊的數(shù)量。例如:模擬和時序關鍵電路。
3) 對于有高精度要求的模擬塊,指定模擬電路核心所在位置中較低水平的設置。
遵從以上指示,我們就能夠避免由高精度設置的大功能塊形成的大型計算矩陣。
例如:Magma FINESIM高壓系統(tǒng)設置如圖5所示。在NAND閃存芯片中,高壓系統(tǒng)、內部電壓生成器的最關鍵電路均是大型復雜功能塊。確保每個模擬電路均能輸出預期電壓并滿足速度要求是最重要一個功能性檢查。為了確保這個部分仿真性能良好,我們應對每個單獨功能塊進行專門設置。
圖5 高壓系統(tǒng)設置
在所有子塊中,電壓調節(jié)器(VR)應有最高精度,因為這些功能塊擁有最復雜反饋架構;標準CCC分區(qū)方法不能實現(xiàn)電路的正確分區(qū),那時要使用“SPICE”模式來約束分區(qū);大型計算矩陣是基于整個功能塊而創(chuàng)建,可確保有效性和精確性。
首先,對于電荷泵、HV開關等子塊來說,標準CCC分區(qū)已足夠好,通過指定它們的設置為“fast2”就可獲得精確的仿真結果;其次,對數(shù)字子塊來說,只需進行邏輯功能檢查,因此可使用“hyper3”來節(jié)省仿真時間;最后,將整個高壓系統(tǒng)中未專門指定的子塊的精度設置為“fast3”。
采用上述設置,只要高精度子塊有包含大型計算矩陣,從而不僅避免了整個系統(tǒng)創(chuàng)建一個大型矩陣,而且使得我們仍能擁有充足仿真性能和速度。
“功率節(jié)點”選項幫助進行分區(qū) 事實上,三種分區(qū)方法用于全芯片仿真仍是不夠有效。因此除此之外,Magma FINESIM還提供了一個“電源節(jié)點”(Power Node)選項。采用這個選項,用戶可“告訴”Magma FINESIM如何通過指定“電源節(jié)點”來完成電路的分區(qū),這意味著我們能根據(jù)電路的函數(shù)和屬性手工進行電路分區(qū)。
如圖7所示,當一個節(jié)點成為一個被大量器件連接的通道時,我們可將這個節(jié)點指定為“電源節(jié)點”。完成指定后,這個“電源節(jié)點”生成器功能塊就可與之后連接的器件分離開來。當然在其之后連接的器件也可進行適當?shù)姆謪^(qū)。“電源節(jié)點”生成器功能塊和之后連接的器件間事件驅動式計算足以確保仿真的有效性。
我們發(fā)現(xiàn)最好在電路架構類似如下動作時指定“電源節(jié)點”,包括電源生成器或調節(jié)器、共源共漏驅動器以及開關功能塊,向與器件連接的大量通道提供開關電壓。
此外,我們還應頻繁檢查FINESIM日志文件;若發(fā)現(xiàn)最大型分區(qū)器件數(shù)目不合理且仿真時間太長,那么最好繼續(xù)進行分區(qū)。
忽略“關閉的”功能塊 有時在仿真中,整個仿真過程中總有功能塊是關閉的。這種功能塊的負載對整個仿真結果幾乎沒什么影響。因此我們可使用Magma FINESIM_IGNORE選項來忽略這種功能塊,節(jié)省仿真時間。
例如:在NAND閃存芯片中,陣列可被二等分為兩個完全相同部分。有時在仿真中會只啟用其中一部分而關閉另一部分。因此在仿真設置中,我們可采用FINESIM_IGNORE來忽略關閉的部分。這個選項如下:
OPTION FINESIM_IGNORE=”ARRAR_BANKB”
OPTION FINESIM_IGNORE=”DATA_CACHE_BANKB”
OPTION FINESIM_IGNORE=”HV_SWITCH_BANKB”
OPTION FINESIM_IGNORE=”WL_DRIVER_BANKB”
使用這個選項來跳過大量器件。
合理RC降低 在一些仿真中,提取的RC網(wǎng)絡會被提供給關鍵功能塊。這樣就可基于版圖提取功能,將大量寄生電阻器和電容器插入網(wǎng)表中。在這些寄生裝置中,小型電阻器和電容器將占用大量的Magma FINESIM計算資源,而且對仿真精度起不到什么改善作用。
采用Magma FINSIM_SPFTC選項來指定RC網(wǎng)絡。通過指定截止頻率值,小于這個值的RC組件將被忽略不計。事實證明,這的確是處理這類網(wǎng)表的一個好方法。
.option FINESIM_SPFTC=1P
使用Verilog-A模型來描述閃存單元 由于Magma FINSIM支持Verilog-A模型,因此我們能使用Verilog-A來描述閃存單元,用它觀察閃存單元上高壓操作十分便利。我們會發(fā)現(xiàn)幾次編程脈沖(program pulses)后單元電壓就提高以及幾次擦除脈沖(erase pulses)后單元電壓就會降低。
Magma FINESIM具有自動替換那些重復定義的子電路(subckt)定義的功能。只要在測試基準中加入Verilog-A模型即可替換MOS級子電路定義,真的十分便捷。
不同操作期使用不同精度設置 通常在NAND閃存的操作中,依次會有幾個不同時期;不同時期,精度要求也有所不同。因此我們可通過SNAPSHOT 選項,依據(jù)仿真中不同時期的需求來設置不同時期的精度。
圖6: HV調節(jié)器基本架構
例如:在PROGRAM操作中,它能被分為幾個階段。每個階段依據(jù)功能塊操作和行為會有不同精度設置。第1階段,精度要求低,只有一些數(shù)字塊在工作,因此可將芯片精度設置為“低”并開始首次運行。第1階段仿真結束后,我們可先停止仿真并停在SNAPSHOT這時點以獲得RUN_1.SNAPSHOT文件;接著,將精度設置為“高”并重新加載RUN_1.SNAPSHOT文件繼續(xù)運行仿真。采用這個方法將能夠大大節(jié)省仿真時間。
圖7 “功率節(jié)點”指定
多CPU功能 Magma FINESIM提供的多CPU仿真功能是我們要特別強調的最后一個方法。它意味著我們能夠同時采用2個或幾個CPU來運行仿真。只要CPU資源充分,這項功能就可顯著改善仿真性能。
圖8 忽略關閉的功能塊
仿真性能比較
在本章中,通過運行Magma FINESIM與另一款Fast SPICE工具進行比較得到了一些數(shù)據(jù)。由于PROGRAM操作中多數(shù)功能塊都是打開的,因此此次我們采用一次標準PROGRAM操來作為測試案例。
圖9 不同時期設置不同精度
4.1 簡單仿真精度比較
采用了3個有高精度要求的關鍵DC電壓信號作為測試點。
數(shù)據(jù)顯示:FINESIM的精度與另一款Fast SPICE工具不相上下。
4.2 仿真時間比效
仿真時間結果是如此令人歡欣鼓舞,采用4CPU的方式幾乎節(jié)省了40%仿真時間。
總結
盡管大型混合信號芯片仿真是對今天 Fast SPICE工具的一項挑戰(zhàn)。但Magma FINSIM卻能有效處理NAND閃存芯片的仿真。只要進行適當仔細的設置,它就可很好執(zhí)行仿真;特別是擁有了良好電路分區(qū)和多CPU功能,仿真性能更可得到大幅改善。 (美光半導體上海設計中心 )