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