欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

統(tǒng)計(jì)電路仿真的方法和系統(tǒng)與流程

文檔序號(hào):11971367閱讀:452來源:國(guó)知局
統(tǒng)計(jì)電路仿真的方法和系統(tǒng)與流程
統(tǒng)計(jì)電路仿真的方法和系統(tǒng)本申請(qǐng)要求2012年4月2日提交美國(guó)專利局、申請(qǐng)?zhí)枮?3/437,815,發(fā)明名稱為“StatisticalCircuitSimulation(統(tǒng)計(jì)電路仿真)”的美國(guó)專利申請(qǐng)的優(yōu)先權(quán),其全部?jī)?nèi)容通過引用結(jié)合在本申請(qǐng)中。技術(shù)領(lǐng)域本發(fā)明涉及的領(lǐng)域是電子設(shè)計(jì)自動(dòng)化,具體而言,本發(fā)明涉及進(jìn)行統(tǒng)計(jì)電路仿真的方法和系統(tǒng)。

背景技術(shù):
集成電路是由例如電阻、電容、電感器、互感器、傳輸線、二極管、雙極結(jié)型晶體管(BJT)、結(jié)型場(chǎng)效應(yīng)晶體管(JFET)、金屬氧化物半導(dǎo)體場(chǎng)效應(yīng)晶體管(MOSFET)、金屬T半導(dǎo)體場(chǎng)效應(yīng)晶體管(MESFET)、薄膜晶體管(TFT)等電路元件構(gòu)成的網(wǎng)絡(luò)。隨著技術(shù)的發(fā)展,集成電路越來越復(fù)雜,需要使用強(qiáng)大的數(shù)值模擬程序。例如,電路仿真是集成電路的設(shè)計(jì)流程中必不可少的環(huán)節(jié),它能幫助電路設(shè)計(jì)人員無需通過昂貴的制造工藝驗(yàn)證其設(shè)計(jì)的功能和性能。隨著半導(dǎo)體加工技術(shù)發(fā)展到納米級(jí),新的仿真方法需要解決納米級(jí)電路設(shè)計(jì)所固有的新問題?,F(xiàn)代集成電路在新工藝的發(fā)展中不斷挑戰(zhàn)著電路仿真的算法和實(shí)現(xiàn)。半導(dǎo)體行業(yè)需要EDA軟件有能力來分析與動(dòng)態(tài)電流相關(guān)的納米效應(yīng),比如耦合噪聲(couplingnoise)、接地反彈(groundbounce)、傳輸線波傳播(transmissionlinewavepropagation)、動(dòng)態(tài)漏電流(dynamicleakagecurrent)、電源電壓降(supplyvoltagedrop)、非線性元器件和電路的行為等。因此,精準(zhǔn)的電路模擬和晶體管級(jí)仿真已經(jīng)成為勘察和解決納米設(shè)計(jì)所面臨問題的最有效的途徑之一。電子電路仿真器包括美國(guó)加州大學(xué)伯克利分校(UCBerkeley)開發(fā)的面向集成電路的仿真程序——SPICE(SimulationProgramwithIntegratedCircuitEmphasis)以及各種增強(qiáng)或衍生版本的SPICE仿真程序。SPICE及其增強(qiáng)、衍生版本將在本文被簡(jiǎn)稱為SPICE電路仿真器或SPICE。SPICE方法認(rèn)為電路是一個(gè)不可分割的整體。SPICE仿真可以提供對(duì)電路行為相當(dāng)準(zhǔn)確的預(yù)測(cè)。這種預(yù)測(cè)不局限于個(gè)別的子電路,它涵蓋整個(gè)系統(tǒng)(例如,整個(gè)集成電路),因而可以發(fā)現(xiàn)、處理全系統(tǒng)范圍關(guān)于噪聲之類的問題。一般的SPICE仿真處理流程,仿真中的模擬集成電路通常被表示為一個(gè)網(wǎng)表描述的形式。網(wǎng)表是一種由SPICE語言編寫的用于仿真的對(duì)模擬電路的電路描述。SPICE網(wǎng)表是包含仿真控制語句的純結(jié)構(gòu)性語言。其他語言如Verilog-ATM,還具有行為構(gòu)建的能力。根據(jù)特定的電路建模方法,SPICE的結(jié)構(gòu)性網(wǎng)表和模擬集成電路的預(yù)定義電路元件可以被表示為矩陣形式。非齊次線性微分方程解的維度范圍從1到n。相應(yīng)數(shù)量的輸入向量由線性方程進(jìn)行處理。線性方程組的輸入向量被表示為{I1,I2,..In}。由輸入向量,可以求得線性矩陣的解向量{V1,V2,..Vn}。重復(fù)以上計(jì)算,直到解向量收斂。一系列的解向量可以在計(jì)算機(jī)的屏幕上顯示為波形、測(cè)量值或者核查結(jié)果,這樣工程師就可以通過計(jì)算機(jī)屏幕檢查仿真的結(jié)果。然而,隨著集成電路行業(yè)的發(fā)展,器件尺寸不斷減小、互聯(lián)效應(yīng)日益增加,SPICE全系統(tǒng)仿真變得越來越困難。一個(gè)例子是晶體管溝道長(zhǎng)度微米尺寸變化為深亞微米尺寸。由于更小的器件尺寸,電路設(shè)計(jì)者在集成電路(IC)中能夠運(yùn)用電路元件(例如,晶體管、二極管、電容)數(shù)量呈指數(shù)級(jí)增長(zhǎng),對(duì)應(yīng)于SPICE矩陣的維數(shù)也量級(jí)增長(zhǎng),巨大的計(jì)算復(fù)雜度使得計(jì)算不能在有效時(shí)間內(nèi)完成。一個(gè)電路可以表示為瞬間電流分析的大規(guī)模離散非線性矩陣。矩陣維數(shù)和電路中節(jié)點(diǎn)的同階。對(duì)于瞬態(tài)分析,這個(gè)巨大的非線性系統(tǒng)需要求解幾十萬次,這限制了SPICE方法的容量和性能。一般的SPICE方法可以模擬不超過約50,000個(gè)節(jié)點(diǎn)的電路。因此,對(duì)于全芯片設(shè)計(jì),SPICE方法不可行。SPICE在實(shí)際應(yīng)用中被廣泛應(yīng)用于單元設(shè)計(jì)、庫(kù)生成和準(zhǔn)確性驗(yàn)證。相對(duì)于傳統(tǒng)SPICE,在20世紀(jì)90年代初開發(fā)的快速SPICE方法(FastSPICE)在一定精度損失的情況下,有兩個(gè)數(shù)量級(jí)以上的容量和速度提升。性能上的提升主要由于使用簡(jiǎn)化模型、電路劃分技術(shù)、事件驅(qū)動(dòng)的算法以及對(duì)電路延遲的利用。SPICE將電路模型化為節(jié)點(diǎn)、元件集,也就是說一個(gè)電路被視為通過節(jié)點(diǎn)相連接的各種電路元件的集合。SPICE的核心是所謂的節(jié)點(diǎn)分析,通過節(jié)點(diǎn)方程(或者電路方程)以矩陣形式表示電路并求解節(jié)點(diǎn)方程。電路元件被表示為器件模型,產(chǎn)生電路方程的矩陣元素。電路元件模型化為器件模型,比如加州大學(xué)伯克利分校開發(fā)MOSFET器件SPICE模型,通常以模型方程和模型參數(shù)表示在變化偏置電壓下的電路元件特性。例如,具有n個(gè)端子的電路元件,可以由下述的電流-電壓關(guān)系建模:Ii=fi(V1,...,Vn,t),其中i=1,…,n,Ii表示流入第i個(gè)端口的電流,Vj(j=1,…,n)表示電壓或者端口j相對(duì)于參考端口(例如地)的偏置電壓,t表示時(shí)間。由基爾霍夫電流定律,流入端口n的電流為電路元件的電導(dǎo)矩陣為:為了模型化電路元件在變化電流的行為,器件模型需要考慮節(jié)點(diǎn)電荷及端口偏壓之間的關(guān)系:Qi=qi(V1,...,Vn,t),其中i=1,…,n.Qi表示端口i的節(jié)點(diǎn)電荷。n端口電路元件的電容矩陣為:對(duì)于納米級(jí)設(shè)計(jì),矩陣規(guī)模巨大,求解非常耗時(shí),對(duì)于n維矩陣求解,計(jì)算復(fù)雜度約為n3。電路仿真總時(shí)間T近似等于:其中,Timestepi是每一個(gè)時(shí)間步長(zhǎng),Timeisolve是第i個(gè)時(shí)間步(timestep)的求解時(shí)間。一般來說,時(shí)間步長(zhǎng)越小仿真越精確。但是,不必要的小時(shí)間步長(zhǎng)會(huì)降低仿真速度,而過大時(shí)間步長(zhǎng)則可能導(dǎo)致更多的迭代因而收斂速度變慢。在實(shí)踐中,時(shí)間步長(zhǎng)需要優(yōu)化選取,以在準(zhǔn)確性和仿真時(shí)間之間取得平衡。當(dāng)電路仿真用于統(tǒng)計(jì)分析,總時(shí)間是種子數(shù)和每個(gè)種子仿真時(shí)間的乘積。一個(gè)典型的蒙特卡洛(Monte-Carlo)分析,通常需要上千次仿真(種子)達(dá)到收斂。為了提高電路仿真的性能,常規(guī)系統(tǒng)采用多臺(tái)計(jì)算機(jī)協(xié)同工作,每臺(tái)計(jì)算機(jī)處理仿真的某些環(huán)節(jié)。這樣的系統(tǒng),也稱為服務(wù)器群,可以分布在不同的地理位置,通過計(jì)算機(jī)網(wǎng)絡(luò)連接。服務(wù)器群的問題是計(jì)算機(jī)之間的同步和網(wǎng)絡(luò)數(shù)據(jù)通信會(huì)很大程度上抵消由多任務(wù)并行處理所帶來的好處。此外,由于要配置多臺(tái)計(jì)算機(jī)常規(guī)系統(tǒng)是非常昂貴的。

技術(shù)實(shí)現(xiàn)要素:
因此,需要新的方法和系統(tǒng)來解決常規(guī)系統(tǒng)所面臨的問題。具體而言,是解決統(tǒng)計(jì)電路仿真的方法和系統(tǒng)。本發(fā)明是統(tǒng)計(jì)電路仿真的方法和系統(tǒng)。一個(gè)實(shí)施例中,計(jì)算機(jī)實(shí)現(xiàn)的統(tǒng)計(jì)電路仿真的方法包括提供被仿真電路的描述,即電路統(tǒng)計(jì)參數(shù)的變化、根據(jù)電路統(tǒng)計(jì)參數(shù)的變化將電路劃分為多組網(wǎng)表,使用復(fù)數(shù)個(gè)處理器并行仿真多組網(wǎng)表產(chǎn)生復(fù)數(shù)個(gè)輸出數(shù)據(jù)文件,將所述復(fù)數(shù)個(gè)輸出數(shù)據(jù)文件存儲(chǔ)于存儲(chǔ)器中。將電路劃分為多組網(wǎng)表的方法包括,在單指令多數(shù)據(jù)環(huán)境下形成多組被仿真的網(wǎng)表、以及根據(jù)電路統(tǒng)計(jì)參數(shù)的變化的近似形成所述多組網(wǎng)表。電路的描述形式還包括電路網(wǎng)表和模型庫(kù)。電路劃分的計(jì)算機(jī)實(shí)現(xiàn)方法包括在單指令多數(shù)據(jù)環(huán)境下形成被仿真的多組網(wǎng)表。電路劃分的計(jì)算機(jī)實(shí)現(xiàn)的方法又包括根據(jù)電路統(tǒng)計(jì)參數(shù)的變化的近似形成多組網(wǎng)表。電路劃分的計(jì)算機(jī)實(shí)現(xiàn)的方法還包括確定一個(gè)有代表性的參數(shù)來表示一組統(tǒng)計(jì)參數(shù),這組統(tǒng)計(jì)參數(shù)的具有與代表參數(shù)基本相同的值,而且這組統(tǒng)計(jì)參數(shù)基本不變。電路統(tǒng)計(jì)參數(shù)的變化的近似包括在晶體管亞閾值區(qū)域閾值電壓的變化、晶體管線性區(qū)域閾值電壓的變化以及晶體管飽和區(qū)域閾值電壓的變化。仿真多組網(wǎng)表的使用復(fù)數(shù)個(gè)并行處理器的計(jì)算機(jī)實(shí)現(xiàn)方法,包括維護(hù)多組網(wǎng)表以及它們?cè)谝粋€(gè)共享的存儲(chǔ)器中的統(tǒng)計(jì)參數(shù),使用復(fù)數(shù)個(gè)圖形處理單元(GPU)執(zhí)行模型計(jì)算(modelevaluations),使用復(fù)數(shù)個(gè)中央處理器(CPU)執(zhí)行矩陣求解、檢查仿真收斂性以及預(yù)測(cè)下一時(shí)間步。共享存儲(chǔ)器包括一模型計(jì)算隊(duì)列,該模型計(jì)算隊(duì)列存儲(chǔ)一個(gè)或多個(gè)由復(fù)數(shù)個(gè)圖形處理單元(GPU)所處理的任務(wù),還包括一任務(wù)隊(duì)列,該任務(wù)隊(duì)列存儲(chǔ)一個(gè)或多個(gè)由復(fù)數(shù)個(gè)中央處理單元(CPU)所處理的任務(wù)。所述計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括執(zhí)行負(fù)載平衡,即從模型計(jì)算隊(duì)列中指定一個(gè)或多個(gè)任務(wù)由復(fù)數(shù)個(gè)中央處理器(CPU)處理,以及從任務(wù)隊(duì)列中指定一個(gè)或多個(gè)任務(wù)由復(fù)數(shù)個(gè)圖形處理器(GPU)處理。在另一實(shí)施例中,用于進(jìn)行統(tǒng)計(jì)電路仿真的系統(tǒng)包括復(fù)數(shù)個(gè)處理器和一被所述復(fù)數(shù)個(gè)處理器所使用的共享存儲(chǔ)器,一工作于復(fù)數(shù)個(gè)處理器的仿真器模塊,和一存儲(chǔ)復(fù)數(shù)個(gè)輸出數(shù)據(jù)文件的存儲(chǔ)器。仿真器模塊包括提供用于所仿真電路描述信息的邏輯,其中描述信息包括電路統(tǒng)計(jì)參數(shù)的變化、按照電路統(tǒng)計(jì)參數(shù)的變化將電路劃分為多組網(wǎng)表的邏輯、以及使用復(fù)數(shù)個(gè)并行處理器仿真多組網(wǎng)表生成復(fù)數(shù)個(gè)輸出數(shù)據(jù)文件的邏輯,其中,復(fù)數(shù)個(gè)處理器包括復(fù)數(shù)個(gè)圖形處理單元(GPU)和復(fù)數(shù)個(gè)中央處理單元(CPU)。在另一實(shí)施例中,一個(gè)計(jì)算機(jī)程序產(chǎn)品包括非易失性介質(zhì),用于存儲(chǔ)由一個(gè)或多個(gè)計(jì)算機(jī)系統(tǒng)執(zhí)行的計(jì)算機(jī)程序,該計(jì)算機(jī)程序產(chǎn)品還包括提供被仿真電路描述信息的代碼,其中描述信息包括電路統(tǒng)計(jì)參數(shù)的變化,包括根據(jù)電路統(tǒng)計(jì)信息的變化劃分電路為多組網(wǎng)表的代碼,包括使用復(fù)數(shù)個(gè)并行處理器仿真多組網(wǎng)表生成復(fù)數(shù)個(gè)輸出數(shù)據(jù)文件的代碼,所述復(fù)數(shù)個(gè)處理器包括復(fù)數(shù)個(gè)圖形處理單元(GPU)和復(fù)數(shù)個(gè)中央處理單元(CPU),包括存儲(chǔ)所述復(fù)數(shù)個(gè)輸出數(shù)據(jù)文件與存儲(chǔ)器的代碼。附圖說明結(jié)合以下附圖閱讀對(duì)實(shí)施例的詳細(xì)描述,本發(fā)明的上述特征和優(yōu)點(diǎn),以及額外的特征和優(yōu)點(diǎn),將會(huì)更加清楚。圖1所示為根據(jù)本發(fā)明實(shí)施例的一個(gè)實(shí)現(xiàn)統(tǒng)計(jì)電路仿真方法的系統(tǒng);圖2所示為根據(jù)本發(fā)明實(shí)施例的進(jìn)行統(tǒng)計(jì)電路仿真方法的總覽;圖3所示為根據(jù)本發(fā)明實(shí)施例的進(jìn)行統(tǒng)計(jì)電路仿真方法的框圖示例;圖4所示為根據(jù)本發(fā)明實(shí)施例的仿真環(huán)境的框圖示例;圖5a-5c所示為根據(jù)本發(fā)明實(shí)施例的統(tǒng)計(jì)電路仿真方法;圖6所示為根據(jù)本發(fā)明實(shí)施例的將電路劃分為多組網(wǎng)表的方法;圖7a-圖7d所示為根據(jù)本發(fā)明實(shí)施例的使用復(fù)數(shù)個(gè)并行處理器仿真多組網(wǎng)表的方法;圖8所示為根據(jù)本發(fā)明實(shí)施例的進(jìn)行并行統(tǒng)計(jì)電路仿真的系統(tǒng)。具體實(shí)施方式本發(fā)明提供了進(jìn)行重復(fù)性的電路仿真的方法和系統(tǒng)。下面的描述可以使任何本領(lǐng)域技術(shù)人員利用本發(fā)明。具體實(shí)施例和應(yīng)用中所提供的描述信息僅為示例。這里所描述的實(shí)施例的各種延伸和組合對(duì)于本領(lǐng)域的技術(shù)人員是顯而易見的,在不脫離本發(fā)明的實(shí)質(zhì)和范圍的情況下,本發(fā)明定義的一般原則可以應(yīng)用到其他實(shí)施例和應(yīng)用中。因此,本發(fā)明不只限于所示的實(shí)施例,本發(fā)明涵蓋與本文所示原理和特征相一致的最大范圍。下面的詳細(xì)說明以流程圖、邏輯模塊和其他的符號(hào)操作表達(dá)的形式給出,可以在計(jì)算機(jī)系統(tǒng)上執(zhí)行。一個(gè)程序、計(jì)算機(jī)執(zhí)行步、邏輯塊,過程等,在這里被設(shè)想為得到所希望的結(jié)果的一個(gè)或多個(gè)步驟或指令的自洽序列。這些步驟是對(duì)物理量的物理操作。這些物理量包括電、磁或者無線電信號(hào),它們?cè)谟?jì)算機(jī)系統(tǒng)中被存儲(chǔ)、傳輸、組合、比較以及其他操作。這些信號(hào)可是比特、數(shù)值、元素、符號(hào)、字符、條件、數(shù)字等。每個(gè)步驟都可以通過硬件、軟件、固件或它們的組合執(zhí)行。圖1給出了根據(jù)本發(fā)明的一個(gè)實(shí)施例一個(gè)用于實(shí)現(xiàn)統(tǒng)計(jì)電路仿真方法的系統(tǒng)。在一個(gè)實(shí)施例中,可以使用計(jì)算機(jī)系統(tǒng)實(shí)現(xiàn)統(tǒng)計(jì)電路仿真的方法和系統(tǒng)。該計(jì)算機(jī)系統(tǒng)可以包括一個(gè)或多個(gè)圖形處理單元(GPU)和/或中央處理單元(CPU)100、至少一個(gè)用于顯示計(jì)算結(jié)果和波形的用戶接口102、存儲(chǔ)器裝置104、系統(tǒng)總線106以及一個(gè)或多個(gè)將GPU/CPU、用戶界面、存儲(chǔ)器裝置與系統(tǒng)總線相連接的總線接口。所述計(jì)算機(jī)系統(tǒng)還包括至少一個(gè)用于與其他設(shè)備105在計(jì)算機(jī)網(wǎng)絡(luò)上通信的網(wǎng)絡(luò)接口103。在替代方案中,系統(tǒng)和方法的某些功能可以在一個(gè)或多個(gè)專用集成電路(ASIC)或現(xiàn)場(chǎng)可編程門陣列(FPGA)中實(shí)現(xiàn),從而減輕GPU/CPU的作用。存儲(chǔ)裝置104可以包括高速隨機(jī)訪問存儲(chǔ)器,還可以包括非易失性存儲(chǔ)器,比如一個(gè)或多個(gè)磁盤存儲(chǔ)設(shè)備。存儲(chǔ)裝置還包括與所述GPU/CPU遠(yuǎn)距離的海量存儲(chǔ)器。存儲(chǔ)設(shè)備優(yōu)選的存儲(chǔ):操作系統(tǒng)108,用于處理各種基本的系統(tǒng)服務(wù)和硬件相關(guān)的任務(wù)。應(yīng)用程序110,用于執(zhí)行用戶定義的應(yīng)用和任務(wù),諸如電路仿真和模型計(jì)算。數(shù)據(jù)庫(kù)112,用于存儲(chǔ)集成電路的信息,包括數(shù)據(jù)結(jié)構(gòu)、器件模型以及矩陣。數(shù)據(jù)庫(kù)、應(yīng)用程序、和用于實(shí)現(xiàn)電路仿真并行求解器的程序包括可執(zhí)行程序、子模塊、表和其他數(shù)據(jù)結(jié)構(gòu)。在其它實(shí)施例中,可能會(huì)用到額外的或者不同的模塊和數(shù)據(jù)結(jié)構(gòu),并且上述列出的一些模塊和/或數(shù)據(jù)結(jié)構(gòu)可能不會(huì)被用到。圖2所示為根據(jù)本發(fā)明實(shí)施例的關(guān)于圖形處理單元(GPU)的示例性架構(gòu)。如圖2中所示,每個(gè)GPU包括N個(gè)多重處理器。每個(gè)多重處理器204進(jìn)一步包括:M個(gè)處理器206和一個(gè)指令單元207。每個(gè)處理器都有自己的寄存器208。在一個(gè)多重處理器204中所有的處理器206共享一塊共享存儲(chǔ)器210。所有的處理器共享相同的一組常量緩存212和紋理緩存214的存儲(chǔ)。處理器還可以訪問設(shè)備/全局存儲(chǔ)器216中的數(shù)據(jù),該設(shè)備存儲(chǔ)器也被稱為全局存儲(chǔ)器。在這個(gè)例子中,每個(gè)多重處理器204具有一塊共享內(nèi)存。從共享存儲(chǔ)器210中訪問數(shù)據(jù)相比于從設(shè)備(全局)存儲(chǔ)器216訪問數(shù)據(jù),要快很多。出于這個(gè)原因,提高計(jì)算效率的一個(gè)方法是將數(shù)據(jù)從設(shè)備/全局存儲(chǔ)器216加載到共享存儲(chǔ)器210,使用共享存儲(chǔ)器210進(jìn)行大量計(jì)算/操作,然后將結(jié)果從共享存儲(chǔ)器210寫回到全局內(nèi)存216。圖3所示為根據(jù)本發(fā)明實(shí)施例的GPU線程的示例性組織。這個(gè)例子中,線程被組織在一個(gè)網(wǎng)格302中,它們被分成多個(gè)線程塊,例如block(0,0)304,block(0,1)306,block(1,0)308,block(1,1)310,block(2,0)312和block(2,2)314。每一個(gè)線程塊(例如,block(1,1)310),被分配給一個(gè)多重處理器和一塊內(nèi)的多個(gè)線程,例如thread(0,0)316,可以通過如圖2所述的共享存儲(chǔ)器相互通信。在統(tǒng)計(jì)電路仿真中,有數(shù)以百計(jì)的代碼分支以仿真電路中發(fā)生的不同的情形。例如,一個(gè)晶體管模型因?yàn)榉抡嫠x統(tǒng)計(jì)參數(shù)組合的不同而工作在亞閾值區(qū)、線性區(qū)域或是飽和區(qū)。每個(gè)代碼分支包含對(duì)于一個(gè)區(qū)域統(tǒng)計(jì)參數(shù)變化的仿真的指令。在實(shí)踐中,可能仿真數(shù)百個(gè)不同的模型。為在單指令多數(shù)據(jù)(SIMD)仿真環(huán)境中實(shí)現(xiàn)高效率,在圖3中,本發(fā)明的實(shí)施例被設(shè)計(jì)為多重處理器能夠并行處理的最大數(shù)。以下圖4至圖7就這一點(diǎn)將做進(jìn)一步說明。圖4所示為根據(jù)本發(fā)明實(shí)施例的仿真環(huán)境的示例性框圖。如圖4所示,仿真環(huán)境包括一個(gè)仿真器402,以電路網(wǎng)表404、模型庫(kù)406和統(tǒng)計(jì)信息408作為輸入?;谳斎耄抡嫫鲗㈦娐穭澐中纬啥嘟M網(wǎng)表,如網(wǎng)表1(410a)到網(wǎng)表L(410b)。每組網(wǎng)表包含多個(gè)子網(wǎng),如網(wǎng)表1(410a)中的子網(wǎng)1到子網(wǎng)n,和網(wǎng)表L(410b)中的子網(wǎng)1到子網(wǎng)m。通過并行仿真多個(gè)組,仿真器會(huì)生成多個(gè)輸出文件,即.out1(412a)、.out2(412b)、.out3(412c)、.outN(412d)等。使用多組網(wǎng)表,令多組處理器有更高的概率停留在同一個(gè)代碼分支,因而有更高的概率在SIMD環(huán)境中并行的進(jìn)行統(tǒng)計(jì)電路仿真。根據(jù)本發(fā)明實(shí)施例,電路統(tǒng)計(jì)參數(shù)的變化也稱為統(tǒng)計(jì)變化,統(tǒng)計(jì)變化可能產(chǎn)生于制造過程的變化,包括全局變化和局部變化。對(duì)于局部變化,圖中的每個(gè)點(diǎn),如圖5b所示,表示被仿真網(wǎng)表的一個(gè)子電路(比如一個(gè)晶體管)。對(duì)于全局變化,圖中的每個(gè)點(diǎn),如圖5c所示,表示相對(duì)中值的變化,對(duì)每個(gè)點(diǎn)都會(huì)構(gòu)造一個(gè)網(wǎng)表進(jìn)行仿真。圖5a-5c所示為根據(jù)本發(fā)明實(shí)施例的統(tǒng)計(jì)電路仿真的方法。如圖5a所示,為了簡(jiǎn)化說明,只有閾值電壓(Vt)和晶體管溝道長(zhǎng)度(L)在本例中作為變化的統(tǒng)計(jì)參數(shù)。橫軸表示閾值電壓(Vt)的變化,縱軸表示溝道長(zhǎng)度(L)的變化。在該圖中,區(qū)分彼此的不同統(tǒng)計(jì)參數(shù)變化被示為散點(diǎn),如502a和502b。根據(jù)本發(fā)明的實(shí)施例,該方法識(shí)別統(tǒng)計(jì)參數(shù)的集群,例如504、506和508。在某些實(shí)現(xiàn)中,每個(gè)集群都包括一統(tǒng)計(jì)參數(shù)組,組內(nèi)的變化不會(huì)改變仿真的結(jié)果。在某些其它實(shí)現(xiàn)方式中,每一個(gè)集群都包括一統(tǒng)計(jì)參數(shù)組,組內(nèi)的變化只在預(yù)定范圍內(nèi)影響仿真的結(jié)果,例如Vout(圖中未示出)上下浮動(dòng)0.01V。例如,集群504可以代表在亞閾值區(qū)的晶體管模型,集群506可表示線性區(qū)域的晶體管模型,集群508可表示飽和區(qū)域的晶體管模型。在這種情況下,一個(gè)代表參數(shù)可以被用于表示該組,例如代表參數(shù)505、507和509分別對(duì)應(yīng)于集群504、506和508??梢允褂么韰?shù)仿真一個(gè)集群的統(tǒng)計(jì)參數(shù)。其結(jié)果是,計(jì)算量和用于存儲(chǔ)參數(shù)的內(nèi)存量將會(huì)減少。圖5b所示為由于制造過程中的變化引起的局部變化的統(tǒng)計(jì)電路仿真的例子。如圖5b所示,編號(hào)512表示具有局部變化的示例性電路1,編號(hào)514表示具有局部變化的示例性電路2,編號(hào)516表示具有局部變化的示例性電路N。請(qǐng)注意,圖5b中的每個(gè)點(diǎn)代表在圖4中一個(gè)網(wǎng)表中的一個(gè)晶體管。圖5c所示為由于制造過程中的變化引起的局部和全局變化組合的統(tǒng)計(jì)電路仿真的例子。在圖5c的例子中,編號(hào)522表示示例性電路1局部變化和第一個(gè)全局變化組合的情況,編號(hào)524表示示例性電路1局部變化和第二全局變化組合的情況。注意,圖5c中各個(gè)點(diǎn)代表相對(duì)于中值的差異。在一個(gè)實(shí)現(xiàn)中,對(duì)于圖5c中每個(gè)相應(yīng)的點(diǎn)都會(huì)構(gòu)造一個(gè)網(wǎng)表進(jìn)行仿真。圖6所示為根據(jù)本發(fā)明實(shí)施例的將電路劃分為多組網(wǎng)表的方法。在圖6中,為了簡(jiǎn)化說明,本例中只有三個(gè)統(tǒng)計(jì)參數(shù),即晶體管的閾值電壓(Vt)、溝道長(zhǎng)度(L)和溝道寬度(W)。第一軸表示在閾值電壓(Vt)的變化,第二軸表示溝道長(zhǎng)度(L)中的變化,第三軸表示溝道寬度(W)的變化。區(qū)分彼此的不同統(tǒng)計(jì)參數(shù)變化被示為散點(diǎn),如602a和602b。類似于在圖5中所示的方法,該方法定義統(tǒng)計(jì)參數(shù)的集群,例如604、606和608。在某些實(shí)現(xiàn)中,每個(gè)集群都包括一統(tǒng)計(jì)參數(shù)組,組內(nèi)的變化不會(huì)改變仿真的結(jié)果。在某些其它實(shí)現(xiàn)方式中,每一個(gè)集群都包括一統(tǒng)計(jì)參數(shù)組,組內(nèi)的變化只在預(yù)定范圍內(nèi)影響仿真的結(jié)果,例如Vout(圖中未示出)上下浮動(dòng)0.01V。例如,集群604可以代表在亞閾值區(qū)的晶體管模型,集群606可表示線性區(qū)域的晶體管模型,集群608可表示飽和區(qū)域的晶體管模型。在這種情況下,一個(gè)代表參數(shù)可以用于表示該組,例如代表參數(shù)605、607和609分別對(duì)應(yīng)于集群604、606和608??梢允褂么韰?shù)仿真一個(gè)集群的統(tǒng)計(jì)參數(shù)。其結(jié)果是,計(jì)算量和用于存儲(chǔ)參數(shù)的內(nèi)存量將會(huì)減少。圖7a-7d提供了有根據(jù)統(tǒng)計(jì)參數(shù)的變化子網(wǎng)分組進(jìn)行統(tǒng)計(jì)電路仿真和沒有分組仿真的比較。為描述簡(jiǎn)單起見,本例使用三個(gè)處理器,即處理0、處理器1和處理器2,如表所示。根據(jù)本發(fā)明的實(shí)施例,可以有更多的處理器,比如8、16或更多,被用于對(duì)一個(gè)真實(shí)電路的數(shù)百個(gè)統(tǒng)計(jì)模型變化并行仿真。圖7a表示不做子網(wǎng)分組的傳統(tǒng)方法進(jìn)行統(tǒng)計(jì)電路仿真。圖7a中在沒有電路子網(wǎng)分組的情況下,所選仿真點(diǎn)可能位于模型的每一個(gè)的亞閾區(qū)、線性區(qū)和飽和區(qū)。在這種情況下,當(dāng)被仿真的晶體管在亞閾值區(qū)時(shí),處理器0被占用并且工作,而處理器1和處理器2被占用但不工作,因?yàn)榫彺姹粊嗛撝祬^(qū)的模型和庫(kù)所占用。在線性區(qū)中,處理器1被占用并且工作,而處理器0和處理器2被占用但不工作。在飽和區(qū),處理器2被占用和工作,同時(shí)處理器0和處理器1被占用但不工作。在每一個(gè)實(shí)例中,當(dāng)一個(gè)處理器被占用但不工作的時(shí)候,效率已喪失,因而增加了仿真的時(shí)間和成本。在實(shí)踐中,可能有數(shù)百個(gè)分支數(shù)百個(gè)模型被仿真。在每一個(gè)分支,如果多個(gè)處理器不同時(shí)運(yùn)行,仿真效率就會(huì)受到不利影響。圖7b所示為根據(jù)本發(fā)明實(shí)施例的使用多個(gè)處理器并行仿真多組網(wǎng)表的方法。當(dāng)根據(jù)統(tǒng)計(jì)參數(shù)變化電路子網(wǎng)被分組時(shí),計(jì)算點(diǎn)可以被選擇為有相似的行為且在仿真中停留在相同的代碼分支上。如圖7b的例子,當(dāng)被仿真的晶體管在亞閾值區(qū),所有三個(gè)處理器,即處理器0、處理器1和處理器2都被占用和工作。同樣,在線性區(qū)域和飽和區(qū),處理器0、處理器1和處理器2都被占用和工作。以這種方式,被占用和工作的處理器的概率更高,因而降低了仿真的時(shí)間和成本。在一般情況下,多個(gè)處理器一起工作的頻率越高,仿真效率越高。圖7c所示為根據(jù)本發(fā)明實(shí)施例的使用多個(gè)處理器并行仿真多組網(wǎng)表的方法的另一種情況。圖7c與圖7b相似,所有三個(gè)處理器,處理器0、處理器1和處理器2都被占用且并行工作,因?yàn)樗鼈冊(cè)趤嗛撝祬^(qū)執(zhí)行同一個(gè)分支指令(使用共享資源)。在執(zhí)行完亞閾值區(qū)的指令后,三個(gè)處理器空閑(處于待機(jī)模式)并準(zhǔn)備接受其他任務(wù)。當(dāng)處理器接受一個(gè)新的任務(wù),例如圖7d所示的同時(shí)處理線性區(qū),電路仿真統(tǒng)計(jì)的高效率得以保持。請(qǐng)注意,上述的處理器可以是一個(gè)圖形處理器、一個(gè)多重處理器或一個(gè)矢量處理器。圖8所示為根據(jù)本發(fā)明實(shí)施例的進(jìn)行統(tǒng)計(jì)電路并行仿真的一個(gè)系統(tǒng)。在圖8所示,該系統(tǒng)包括一個(gè)任務(wù)隊(duì)列802,一組中央處理單元CPU(未示出)和相應(yīng)的CPU工作線程804,模型計(jì)算隊(duì)列806,GPU池810中,和CPU輔助線程812。任務(wù)隊(duì)列802被配置為存儲(chǔ)多個(gè)仿真任務(wù),例如,從任務(wù)1到任務(wù)L。CPU的工作線程804可以包括多個(gè)CPU線程,例如從CPU1thread到CPUMthread。模型計(jì)算隊(duì)列806被配置為存儲(chǔ)多個(gè)模型計(jì)算任務(wù),例如從ModelEval.1任務(wù)到ModelEval.P任務(wù)。CPU輔助線程812被配置為在模型計(jì)算隊(duì)列806中分組模型計(jì)算任務(wù),以被GPU池810中的GPU所執(zhí)行。例如,數(shù)字814表示包含ModelEval.1和ModelEval.2的組;數(shù)字816代表了另一組,包含ModelEval.3到ModelEval.5;數(shù)字818代表另一組包含ModelEval.P。每個(gè)模型計(jì)算組的任務(wù)由對(duì)應(yīng)的GPU池810中的GPU所執(zhí)行。根據(jù)本發(fā)明的實(shí)施例,執(zhí)行統(tǒng)計(jì)電路仿真的任務(wù)可以被分配并共享于一組CPU和一組GPU中。每個(gè)仿真任務(wù)可以包括但不限于模型計(jì)算、矩陣求解、收斂性檢查和預(yù)測(cè)下一時(shí)間步。GPU在模型計(jì)算上面更有效率,CPU在矩陣求解、收斂性檢查和預(yù)測(cè)下一時(shí)間步上更有效率。因此,每個(gè)仿真任務(wù)可以被劃分為兩個(gè)階段:CPU可以有效處理的階段和GPU可以有效處理的階段。在每一個(gè)時(shí)間步處理仿真任務(wù)的時(shí)候,系統(tǒng)可以被配置為在任務(wù)隊(duì)列802和模型計(jì)算隊(duì)列806之間來回移動(dòng),以管理仿真任務(wù)的分配和執(zhí)行負(fù)載平衡,以確保最佳的系統(tǒng)性能。請(qǐng)注意,為求效率,應(yīng)該優(yōu)選配置的GPU來執(zhí)行大量的任務(wù)。這個(gè)系統(tǒng)對(duì)包含數(shù)百萬個(gè)器件的大型電路的統(tǒng)計(jì)仿真運(yùn)作良好。對(duì)于小一些的電路統(tǒng)計(jì)仿真,為提高GPU效率,可以將一些模型計(jì)算任務(wù)事先組合在一起被GPU處理。例如,多個(gè)模型計(jì)算任務(wù)可以被組合在一起進(jìn)行處理,如圖8所示的組814、816和818。在一些統(tǒng)計(jì)仿真應(yīng)用中,許多更小的電路被創(chuàng)建,然而需要數(shù)萬次的獨(dú)立仿真來完成一個(gè)3-σ統(tǒng)計(jì)仿真。GPU可用于提高這樣的統(tǒng)計(jì)仿真的效率,因?yàn)镚PU可以被配置為并行處理大量的模型計(jì)算。在這種方式中,要收集到足夠的任務(wù),以保持GPU的占用,從而提高仿真效率。根據(jù)本發(fā)明的實(shí)施例,系統(tǒng)可以被配置為在包含于模型計(jì)算隊(duì)列806的任務(wù)和包含于任務(wù)隊(duì)列802的任務(wù)之間執(zhí)行負(fù)載平衡。在GPU操作慢于CPU操作的情況下,CPU和CPU工作線程804可以被配置為從等待GPU的模型計(jì)算隊(duì)列806中接受一個(gè)或多個(gè)任務(wù)。這種方式,系統(tǒng)卸載部分的GPU負(fù)載給CPU,令CPU保持忙碌。同樣的,在CPU操作慢于GPU操作的情況下,GPU和CPU輔助線程812可以被配置為從等待CPU的CPU任務(wù)隊(duì)列802接受一個(gè)或多個(gè)任務(wù)。這種方式,系統(tǒng)卸載部分的CPU負(fù)載給GPU,令GPU保持忙碌。上文描述的本發(fā)明的實(shí)施例,參考了不同的功能單元和處理器。然而,顯而易見的是,在無損本發(fā)明的情況下,可以使用不同功能單元或處理器之間的任何合適的功能組合。例如,一個(gè)在多處理器或控制器執(zhí)行的功能可能在單個(gè)的處理器或控制器上執(zhí)行。因此,特定功能單元的引用應(yīng)當(dāng)被視為用于提供所述功能的合適手段,而不是專指于某種特定的邏輯、物理結(jié)構(gòu)或組織結(jié)構(gòu)。本發(fā)明可以以任何適當(dāng)?shù)男问綄?shí)現(xiàn),包括硬件、軟件、固件或它們的任意組合。本發(fā)明可以根據(jù)情況有選擇的部分實(shí)現(xiàn),比如計(jì)算機(jī)軟件執(zhí)行于一個(gè)或多個(gè)數(shù)據(jù)處理器以及數(shù)字信號(hào)處理器。本文的每個(gè)實(shí)施例的元素和組件可以在物理上、功能上、邏輯上以任何適當(dāng)?shù)姆绞綄?shí)現(xiàn)。事實(shí)上,一個(gè)功能可以在獨(dú)立單元中、在一組單元中、或作為其他功能單元的一部分來實(shí)現(xiàn)。因此,該系統(tǒng)和方法既可以在獨(dú)立單元中實(shí)現(xiàn),也可以在物理上和功能上分布于不同的單元和處理器之間。在相關(guān)領(lǐng)域中的技術(shù)人員將會(huì)認(rèn)識(shí)到,本發(fā)明的實(shí)施例有許多可能的修改和組合,雖然形式略有不同,仍采用相同的基本機(jī)制和方法。為了解釋的目的,前述描述參考了幾個(gè)特定的實(shí)施例。然而,上述的說明性討論不旨在窮舉或限制本文所發(fā)明的精確形式。前文所示,許多修改和變化是可能的。所選和所描述的實(shí)施例,用以解釋本發(fā)明的原理及其實(shí)際應(yīng)用,用以使本領(lǐng)域技術(shù)人員能夠最好地利用本發(fā)明和各個(gè)實(shí)施例的針對(duì)特定應(yīng)用的修改、變形。
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
罗城| 吴忠市| 龙陵县| 闽侯县| 修文县| 卫辉市| 宾川县| 贵溪市| 桦川县| 安阳县| 平武县| 梅州市| 新建县| 桂阳县| 梨树县| 信阳市| 长治市| 湖州市| 海晏县| 伊宁县| 九江县| 德昌县| 公安县| 隆子县| 苍梧县| 文水县| 孙吴县| 儋州市| 新津县| 都昌县| 图片| 阿拉善右旗| 姚安县| 兰坪| 双流县| 高陵县| 和政县| 清流县| 龙江县| 抚远县| 肇庆市|