專利名稱:組合邏輯電路邏輯參數(shù)提取激勵(lì)波形的產(chǎn)生方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種集成電路的輔助設(shè)計(jì)方法,特別是一種針對(duì)集成電路的組合邏輯 單元電路邏輯參數(shù)提取所需要的激勵(lì)波形的產(chǎn)生方法。
背景技術(shù):
在當(dāng)今的專用集成電路ASIC設(shè)計(jì)中,基于標(biāo)準(zhǔn)單元的集成電路CBIC設(shè)計(jì)方法占 有非常重要的地位。隨著超大規(guī)模集成電路的飛速發(fā)展,集成電路的設(shè)計(jì)、制造工藝更新 越來越快,標(biāo)準(zhǔn)單元的邏輯參數(shù),如時(shí)序、功耗、以及建立時(shí)間、保持時(shí)間也必須隨工藝的進(jìn) 步而不斷更新。標(biāo)準(zhǔn)單元邏輯參數(shù)的提取,一般是由提取人員搭建仿真環(huán)境,給各標(biāo)準(zhǔn)單 元適當(dāng)?shù)募?lì)波形,采用仿真軟件工具“以集成電路為重點(diǎn)的模擬程序” SPICE (Simulation Program withlntegrated Circuit Emphasis),如新思 SYNOPSYS 公司的仿真工具 HSPICE, 來得到各需要的參數(shù)。激勵(lì)波形的正確性直接決定了所提取的邏輯參數(shù)的正確性,不同單 元在提取不同參數(shù)時(shí)都需要不同的激勵(lì)波形,所以激勵(lì)波形的產(chǎn)生非常關(guān)鍵,并且工作繁 重。傳統(tǒng)的手工或半自動(dòng)的激勵(lì)波形生成方法,其效率低下,難以避免引入人工誤差,不能 保證激勵(lì)波形的完備性。激勵(lì)波形的自動(dòng)生成,是指根據(jù)邏輯參數(shù)的特點(diǎn),在分析電路功能 的基礎(chǔ)上,不考慮實(shí)際的電路負(fù)載和實(shí)際的輸入斜率,從邏輯上給出提取各邏輯參數(shù)所對(duì) 應(yīng)的激勵(lì)波形。在一套完整的標(biāo)準(zhǔn)單元中,一般含有數(shù)十種上百個(gè)的組合邏輯單元和時(shí)序 邏輯單元,其中組合邏輯單元,數(shù)量眾多,邏輯功能相對(duì)簡單,輸出是輸入的函數(shù),需要提取 的參數(shù)也較為簡單,典型的情況為輸入管腳電容、泄漏功耗、時(shí)序信息和內(nèi)部功耗,其中輸 入管腳電容,泄漏功耗一般和單元邏輯功能無關(guān),對(duì)各種單元都采用相同的處理方法,通常 意義上的激勵(lì)波形自動(dòng)生成不包含這兩個(gè)部分。
在邏輯參數(shù)庫中的邏輯參數(shù),通常是以輸出管腳發(fā)生特定翻轉(zhuǎn)(上升或下降)時(shí), 描述該邏輯單元的各參數(shù)的。只有明確該邏輯單元的邏輯功能,才能知道各輸入管腳處于 何種狀態(tài)時(shí),對(duì)應(yīng)輸出管腳才能夠發(fā)生邏輯參數(shù)庫中所需的翻轉(zhuǎn)?,F(xiàn)有技術(shù)的其它激勵(lì)波 形自動(dòng)產(chǎn)生方法,需要依賴對(duì)標(biāo)準(zhǔn)單元的邏輯功能(function)進(jìn)行描述,然后利用該邏輯 功能通過一定算法產(chǎn)生各種參數(shù)所需的激勵(lì)波形;邏輯功能輸入是激勵(lì)波形產(chǎn)生的前提條 件。通過從電路網(wǎng)表中了解管腳名并給出功能描述(function)的方式,是一件比較繁瑣的 事情,較為耗時(shí),并且由于仍然是人工操作,存在引入人為誤差的風(fēng)險(xiǎn)。另一方面,如果是邏 輯功能相對(duì)復(fù)雜的組合邏輯單元或者IP (Intellectual Property,知識(shí)產(chǎn)權(quán))模塊,對(duì)其 功能描述可能需要使用真值表的方式加以描述,就更容易出錯(cuò)和更加繁瑣了。如果功能描 述(function)錯(cuò)誤,則該邏輯單元的參數(shù)結(jié)果將是錯(cuò)誤的,很難進(jìn)行修改,只能重新進(jìn)行 仿真。發(fā)明內(nèi)容
本發(fā)明的目的是提供一種組合邏輯電路邏輯參數(shù)提取激勵(lì)波形的產(chǎn)生方法,要解 決的技術(shù)問題是減小組合邏輯電路邏輯參數(shù)提取過程中的人為誤差,生成高效、正確、簡3練、完備的激勵(lì)波形。
本發(fā)明采用以下技術(shù)方案一種組合邏輯電路邏輯參數(shù)提取激勵(lì)波形的產(chǎn)生方 法,包括以下步驟一、由用戶向計(jì)算機(jī)輸入spice仿真的工藝模型文件和電路網(wǎng)表;二、計(jì) 算機(jī)根據(jù)電路網(wǎng)表采用spice工具進(jìn)行仿真,得到用于仿真集成電路內(nèi)部功耗和時(shí)序所需 的激勵(lì)波形;三、計(jì)算機(jī)用該激勵(lì)波形作為spice仿真激勵(lì),編寫spice仿真文件,然后調(diào) 用spice仿真工具,執(zhí)行該仿真文件的內(nèi)容,形成測量集成電路邏輯單元的功耗(power), 單元延時(shí)(cell_delay),輸入輸出沿延時(shí)(tansition)信息的spice仿真序列;四、計(jì)算機(jī) 根據(jù)spice仿真序列對(duì)集成電路進(jìn)行仿真后,產(chǎn)生測量信息的結(jié)果文件,運(yùn)行該文件將仿 真的參數(shù)信息添加到synopsys綜合庫文件的格式中;五、用戶向synopsys綜合庫文件中添 加集成電路各邏輯單元中每個(gè)輸出管腳與各輸入管腳的邏輯關(guān)系。
本發(fā)明的工藝模型文件根據(jù)集成電路制造商的流片工藝確定。
本發(fā)明的電路網(wǎng)表中包含需要測量邏輯參數(shù)的組合邏輯單元。
本發(fā)明的仿真工具采用新思公司的仿真工具Hspice。
本發(fā)明的計(jì)算機(jī)根據(jù)spice仿真序列對(duì)集成電路進(jìn)行Hspice仿真后,產(chǎn)生.mtO 文件,將仿真的結(jié)果編寫ksh格式的執(zhí)行命令,執(zhí)行該命令將仿真的參數(shù)信息添加到 synopsys綜合庫文件。
本發(fā)明與現(xiàn)有技術(shù)相比,采用對(duì)組合邏輯單元的電路網(wǎng)表進(jìn)行仿真來獲得所需要 的組合邏輯單元的邏輯功能信息,避免了在激勵(lì)波形產(chǎn)生和參數(shù)提取仿真中對(duì)邏輯功能輸 入的依賴,消除了由電路網(wǎng)表生成最終邏輯參數(shù)之間的人為誤差風(fēng)險(xiǎn),直接基于目標(biāo)組合 邏輯單元的電路網(wǎng)表得到所需的激勵(lì)波形,將對(duì)組合邏輯單元邏輯功能的輸入由整個(gè)提取 工作的關(guān)鍵輸入,變成了對(duì)結(jié)果的描述性輸入,邏輯功能描述的正確性對(duì)激勵(lì)波形的產(chǎn)生 和參數(shù)提取仿真過程不會(huì)造成影響。
圖1-1是現(xiàn)有技術(shù)邏輯參數(shù)建庫流程圖。
圖1-2是本發(fā)明的方法實(shí)施例流程圖。
圖2-1是圖1-1的簡化流程示意圖。
圖2-2是圖1-2的簡化流程示意圖。
圖3是本發(fā)明實(shí)施例產(chǎn)生激勵(lì)波形的流程圖。
圖4是典型邏輯參數(shù)庫的文件結(jié)構(gòu)圖。
圖5是本發(fā)明實(shí)施例產(chǎn)生激勵(lì)波形的完整流程圖。
圖6是典型spice仿真的文件圖(一)。
圖7是典型spice仿真的文件圖(二)。
圖8是實(shí)施例1的單元電路網(wǎng)表的文件內(nèi)容圖。
具體實(shí)施例方式
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)說明。
如圖1-1和圖2-1所示,現(xiàn)有技術(shù)的組合邏輯電路邏輯參數(shù)提取激勵(lì)波形的產(chǎn) 生方法,由用戶輸入工藝文件、電路網(wǎng)表給計(jì)算機(jī),并給出各邏輯單元中每個(gè)輸出管腳與各輸入管腳的邏輯關(guān)系,即單元邏輯功能,用戶手動(dòng)給出或計(jì)算機(jī)產(chǎn)生電路級(jí)模擬程序 spice (Simulation Program with Integrated CircuitEmphasis)的激厲力波形,用于IlJ量集 成電路內(nèi)部功耗和時(shí)序,接下來計(jì)算機(jī)產(chǎn)生測量各參數(shù)的spice程序,對(duì)集成電路進(jìn)行仿 真,并將仿真的結(jié)果整理成綜合工具synopsys的綜合庫文件進(jìn)行存儲(chǔ)。
如圖1-2和圖2-2所示,本發(fā)明的組合邏輯電路邏輯參數(shù)提取激勵(lì)波形的產(chǎn)生方 法,包括以下步驟
一、由用戶向計(jì)算機(jī)輸入由集成電路制造商提供的可用于spice仿真的工藝模型 文件和電路網(wǎng)表。
工藝模型文件根據(jù)流片工藝不同而不同,一般在集成電路設(shè)計(jì)之前首先要確定流 片工藝,工藝模型文件由設(shè)計(jì)者向集成電路制造廠商索取,例如,如果芯片最終采用SMIC 0. 18um的普通工藝流片形式,則主要包括的工藝文件有1018_v2p4. lib、1018_v2p4. mdl、 1018_v2p4_bjt. mdl和1018_v2p4_reS. mdl,本發(fā)明對(duì)工藝模型文件無特殊要求,只要是合 乎spice語法要求的工藝模型文件都能應(yīng)用于本發(fā)明?,F(xiàn)以上面提到的工藝文件為例,其 中1018_v2p4. lib文件包含仿真工藝角的相關(guān)參數(shù),1018_v2p4. mdl文件包含MOS管的工藝 模型參數(shù),1018_v2p4_bit. mdl包含雙極晶體管BJT的工藝模型參數(shù),1018_v2p4_res. mdl 文件包含電阻的工藝模型參數(shù)。
電路網(wǎng)表中包含需要測量邏輯參數(shù)的組合邏輯單元,該單元以Cdl網(wǎng)表的形式給 出,是仿真和測量邏輯參數(shù)的主體。
二、計(jì)算機(jī)根據(jù)電路網(wǎng)表采用spice工具進(jìn)行仿真,得到用于仿真集成電路內(nèi)部 功耗和時(shí)序所需的激勵(lì)波形。
三、計(jì)算機(jī)用該激勵(lì)波形作為spice仿真激勵(lì),編寫spice仿真文件(仿真文件如 圖7所示),然后調(diào)用spice仿真工具,如新思Synopsys公司的仿真工具Hspice,執(zhí)行sp 腳本文件進(jìn)行仿真,得到測量集成電路邏輯單元的功耗power,單元延時(shí)celldelay,輸入 輸出沿延時(shí)tansition,輸入管腳電容,漏功耗,建立保持時(shí)間參數(shù)信息的spice仿真序列 (即仿真激勵(lì)波形)。
四、計(jì)算機(jī)根據(jù)spice仿真序列對(duì)集成電路進(jìn)行仿真后,產(chǎn)生包含管腳電容、內(nèi)部 功耗、時(shí)序測量信息的結(jié)果文件,例如若用Hspice仿真將產(chǎn)生.mtO文件,將仿真的結(jié)果編 寫ksh格式的可執(zhí)行命令(腳本文件),執(zhí)行該命令(運(yùn)行該文件)將仿真的參數(shù)信息添加 到synopsys綜合庫文件中,綜合庫的格式根據(jù)綜合的情況一般是固定的,如圖4所示典型 邏輯參數(shù)庫的文件結(jié)構(gòu)。也可手動(dòng)一個(gè)個(gè)添加到綜合庫文件中,本發(fā)明主要強(qiáng)調(diào)組合邏輯 單元激勵(lì)波形的產(chǎn)生方法和邏輯參數(shù)的測量方法,對(duì)邏輯參數(shù)產(chǎn)生后添加到庫的過程可以 是任意的。
五、用戶向新思Synopsys公司綜合庫文件中添加集成電路各邏輯單元中每個(gè)輸 出管腳與各輸入管腳的邏輯關(guān)系,即單元邏輯功能,完成這一過程后即完善了庫文件。
對(duì)比現(xiàn)有技術(shù)和本發(fā)明的組合邏輯電路邏輯參數(shù)提取激勵(lì)波形的產(chǎn)生方法,可以 發(fā)現(xiàn),采用對(duì)組合邏輯單元的電路網(wǎng)表進(jìn)行仿真來獲得所需要的組合邏輯單元的邏輯功能 信息,避免了在激勵(lì)波形生成和參數(shù)提取仿真中對(duì)邏輯功能輸入的依賴,消除了由電路網(wǎng) 表生成最終邏輯參數(shù)之間的人為誤差風(fēng)險(xiǎn),而人工分析邏輯電路功能會(huì)造成理解上的誤差 和測量激勵(lì)文件的非完備性,造成參數(shù)測量的不完全,甚至?xí)a(chǎn)生測量錯(cuò)誤。本發(fā)明直接基5于目標(biāo)組合邏輯單元的電路網(wǎng)表得到所需的激勵(lì)波形,將使得對(duì)組合邏輯單元邏輯功能的 輸入由整個(gè)提取工作的關(guān)鍵輸入,變成了對(duì)結(jié)果的描述性輸入,邏輯功能描述的正確性對(duì) 激勵(lì)波形的生成和參數(shù)提取仿真過程不會(huì)造成影響,提高了整個(gè)建庫過程的可靠性和靈活 性。
如圖3、圖5所示,以產(chǎn)生單個(gè)激勵(lì)波形的方法為例,對(duì)本發(fā)明的方法進(jìn)行說明
第一步,由用戶將需要測量的組合邏輯電路單元電路網(wǎng)表,單元電路網(wǎng)表名,單元 電路單元名,輸出管腳個(gè)數(shù)和spice模型參數(shù)文件輸入到計(jì)算機(jī),其中單元電路網(wǎng)表需要 滿足格式在電路網(wǎng)表中,對(duì)電路名、各輸入輸出管腳名進(jìn)行命名,需要把各輸出管腳置于 輸入管腳之前,輸出管腳之間、輸入管腳之間的順序不限,單元電路的端口列表中不包含電 源管腳、地管腳。
第二步,利用單元電路單元名,計(jì)算機(jī)通過使用命令,如ksh格式的命令語句或腳 本,從單元電路網(wǎng)表中尋找到該單元電路的單元命名,由于該命名具有固定格式,并且要求 用戶將輸出管腳置于輸入管腳之前,該命名語句將呈現(xiàn)如下格式
. SUBCKT單元名輸出管腳1輸出管腳2輸出管腳3···輸入管腳1輸入管 腳2輸入管腳3···
例如·SUBCKT AND2 Y AB
因此,結(jié)合輸出管腳個(gè)數(shù)(1個(gè))和單元名(AND2),計(jì)算機(jī)可以得到各輸出管腳名 (Y)和輸入管腳名(A,B)。
第三步,計(jì)算機(jī)利用該單元電路的單元名、各輸入管腳名以及各輸出管腳名采用 實(shí)例化語句實(shí)現(xiàn)該單元電路作為子模塊的調(diào)用。所謂例化就是對(duì)子模塊各個(gè)端口的定義和 實(shí)現(xiàn)對(duì)子模塊的調(diào)用,其語法結(jié)構(gòu)為χ調(diào)用名輸出管腳名輸入管腳名單元名;字母X是關(guān) 鍵字,調(diào)用名為用戶任意選取,不重復(fù)即可;各管腳名順序需要和單元電路網(wǎng)表中管腳順序 一致,子模塊實(shí)體化語句如下例Xand2 YAB AND2。
第四步,基于遍歷Traversal的方法,計(jì)算機(jī)產(chǎn)生不同的輸入激勵(lì)組合,測量輸出 管腳的翻轉(zhuǎn)情況,對(duì)各種輸入管腳的激勵(lì)組合及對(duì)應(yīng)的輸出管腳的翻轉(zhuǎn)情況進(jìn)行記錄,存 儲(chǔ)在計(jì)算機(jī)中,形成相應(yīng)的激勵(lì)文件。激勵(lì)文件的文件名將包含以下信息輸出管腳翻轉(zhuǎn)情 況、目標(biāo)輸入管腳(發(fā)生翻轉(zhuǎn)的輸入管腳)。
首先,用戶給計(jì)算機(jī)輸入N個(gè)輸入管腳,N為至少1個(gè),計(jì)算機(jī)從尚未被當(dāng)作發(fā)生翻 轉(zhuǎn)的目標(biāo)管腳中任取一個(gè)輸入管腳作為目標(biāo)管腳,除去目標(biāo)管腳之外的N-I個(gè)輸入管腳依 次取不同的01(0代表低電平,1代表高電平)組合值。除目標(biāo)管腳之外的其余輸入管腳每 選定一種01組合,目標(biāo)管腳發(fā)生上升翻轉(zhuǎn)產(chǎn)生一個(gè)所需激勵(lì)波形;每次完成后計(jì)算機(jī)判斷 其余輸入管腳是否已經(jīng)遍歷了所有的01組合狀態(tài),如果尚沒有遍歷所有的01組合狀態(tài),則 計(jì)算機(jī)為除目標(biāo)管腳之外的其余輸入管腳選擇尚未遍歷過的其他01組合,重復(fù)上述過程, 產(chǎn)生目標(biāo)管腳上升翻轉(zhuǎn)的所需激勵(lì)波形;如果計(jì)算機(jī)判斷其余輸入管腳已經(jīng)遍歷了所有的 01組合狀態(tài),那么完成了該目標(biāo)管腳的所有所需激勵(lì)波形生成工作。下一步,計(jì)算機(jī)判斷是 否將所有輸入管腳都當(dāng)作目標(biāo)管腳處理過了,如果沒有,則從尚未被當(dāng)作發(fā)生翻轉(zhuǎn)的目標(biāo) 管腳的輸入管腳中任取一個(gè)作為目標(biāo)管腳,重復(fù)上述操作生成新的所需激勵(lì)波形;如果計(jì) 算機(jī)判斷所有輸入管腳都作為目標(biāo)管腳處理完成后,結(jié)束所需激勵(lì)波形(對(duì)應(yīng)流程圖中的 “臨時(shí)激勵(lì)波形”)產(chǎn)生程序。6
其次,由已經(jīng)得到的子模塊實(shí)體化語句和上述得到的仿真單元電路功能所需的激 勵(lì)波形,以及spice模型參數(shù),計(jì)算機(jī)調(diào)用spice對(duì)單元電路進(jìn)行仿真。在仿真過程中,計(jì) 算機(jī)會(huì)測量并紀(jì)錄各輸出管腳的變化情況(上升翻轉(zhuǎn),下降翻轉(zhuǎn),沒有翻轉(zhuǎn)),并紀(jì)錄該次 仿真的各輸入管腳狀態(tài)(不發(fā)生翻轉(zhuǎn)的輸入管腳紀(jì)錄它的邏輯電平,發(fā)生翻轉(zhuǎn)的管腳紀(jì)錄 它的管腳名)。當(dāng)仿真單元電路功能所需的spice激勵(lì)波形都得到處理之后,就完成了該步 操作。
上述產(chǎn)生仿真單元電路功能所需的spice激勵(lì)波形,其目的是仿真不同的輸入翻 轉(zhuǎn)造成怎樣的輸出翻轉(zhuǎn),其內(nèi)容為一個(gè)目標(biāo)輸入管腳的特定翻轉(zhuǎn)(上升翻轉(zhuǎn))和其余輸入 管腳的固定電平值(0為低電平;1為高電平)。為了全面了解該單元電路的輸入輸出關(guān)系, 該部分的仿真單元電路功能的spice激勵(lì)波形就不能存在遺漏,需要完備全面。在這些所 需激勵(lì)中,每一個(gè)輸入管腳都需要充當(dāng)目標(biāo)輸入管腳,發(fā)生上升翻轉(zhuǎn);并且在此時(shí)其余輸入 管腳應(yīng)該依次遍歷各種可能的01電平的組合,如果共有N個(gè)輸入管腳,應(yīng)共有N個(gè)目標(biāo)管 腳;對(duì)于每個(gè)目標(biāo)管腳,其余輸入管腳應(yīng)有2~ (N-I)種組合,所以應(yīng)該共有N* [2~ (N-I)]個(gè) 這樣的激勵(lì)波形。
遍歷各種01組合是指,管腳各自獨(dú)立取低電平邏輯0或者高電平邏輯1,全部這些 管腳的邏輯值構(gòu)成了一個(gè)二進(jìn)制數(shù),或者一種01組合,這些管腳改變電平取值,就改變了 這個(gè)二進(jìn)制數(shù)或者生成了一個(gè)新的01組合,當(dāng)這些管腳無論再如何取值都不能再生成新 的二進(jìn)制數(shù)或01組合時(shí),就認(rèn)為已經(jīng)完成了 01組合的遍歷。
如果有輸出管腳發(fā)生了翻轉(zhuǎn),還將對(duì)該翻轉(zhuǎn)與目標(biāo)輸入管腳翻轉(zhuǎn)的相對(duì)關(guān)系,相 同或者相反進(jìn)行區(qū)分。在生成的激勵(lì)波形文件中,將包括產(chǎn)生該激勵(lì)波形文件的所需激勵(lì) 波形中的內(nèi)容,即目標(biāo)管腳管腳名和其余管腳及其電平值。如圖5所示,邏輯參數(shù)庫文件的 格式要求帶有以下相關(guān)描述信息輸出管腳名、關(guān)聯(lián)管腳名related pin(即目標(biāo)管腳)、其 余管腳狀態(tài)、輸出翻轉(zhuǎn)和目標(biāo)管腳的相互關(guān)系(相同或者相反),所以這些信息也將出現(xiàn)在 激勵(lì)波形文件中,作為生成庫文件時(shí)的輔助信息。激勵(lì)波形信息和生成庫文件時(shí)的輔助信 息,共同構(gòu)成了激勵(lì)波形文件。
計(jì)算機(jī)對(duì)輸出管腳是否發(fā)生翻轉(zhuǎn)是這樣處理的計(jì)算機(jī)測量輸出信號(hào)在開始階段 電壓值(設(shè)為vO)和最終階段的電壓值(設(shè)為vl),并計(jì)算電壓差值deltav = vl-v0;計(jì)算 機(jī)將deltav與一個(gè)設(shè)定的電壓精度值v_pre (如0. Iv)進(jìn)行比較;如果deltav > +v_pre, 則輸出發(fā)生上升翻轉(zhuǎn),如果deltav < -v_pre,則輸出發(fā)生下降翻轉(zhuǎn),如果二者都不成立,則 輸出不變。
如果有輸出管腳發(fā)生了翻轉(zhuǎn),將對(duì)該翻轉(zhuǎn)與目標(biāo)輸入管腳翻轉(zhuǎn)的相對(duì)關(guān)系,即相 同或者相反翻轉(zhuǎn)進(jìn)行記錄;如果沒有發(fā)生翻轉(zhuǎn)也將記錄。
實(shí)施例1,邏輯單元二輸入與門AND2,仿真用的硬件為裝有Iinux系統(tǒng)的個(gè)人計(jì) 算機(jī)或工作站,使用ksh語言或Hspice語言。
1)輸入信息
spice 模型參數(shù)文件:1018_v2p4. lib, 1018_v2p4. mdl (中興國際 0. 18um 工藝)
單元電路網(wǎng)表and2. cdl (文件)
輸入任務(wù)文件內(nèi)容
cdl_name and2. cdl
cell_name and2
output_num 1
_
2)計(jì)算機(jī)通過使用如下例給出的命令從單元電路網(wǎng)表中尋找到該單元電路的單 元聲明(命名)語句,并獲得各輸入輸出管腳名,該單元電路網(wǎng)表的文件內(nèi)容如圖8所示, 計(jì)算機(jī)使用如下命令(ksh語言)
cat and2. cdl | tr “ [A—Z],,“ [a—ζ],,| grep "subckt.氺and2,,> tempi
該語句可以從包含多個(gè)單元電路網(wǎng)表的文件中,找到該任務(wù)對(duì)應(yīng)的單元聲明語句 并將其寫入文件templ中。注意單元名and2前后都有空格。
根據(jù)輸出管腳為1,計(jì)算機(jī)可以使用如下命令(ksh語言)
read a cell_name output 1 input < tempi (如果有兩個(gè)輸出管腳貝Ij為
read a cell_name output 1 output2 input < tempi ;依此類推)
這樣,變量outputl中存儲(chǔ)的就是輸出管腳名Y,變量input中存儲(chǔ)的就是輸入管 腳名AB。
3)計(jì)算機(jī)利用該單元電路的單元名、各輸入管腳名以及各輸出管腳名生成子模塊 實(shí)體化語句,計(jì)算機(jī)可以使用如下命令(ksh語言)
echo "X${cell_name}$outputl $input${cell_name}” > temp2
生成子模塊實(shí)體化語句并將其寫入文件temp2,需要使用時(shí)將讀出即可。(如果是 兩個(gè)輸出管腳的則為echo "X${cell_name}$outputl $output2 $input${cell name},,> temp2依此類推。)
4)生成激勵(lì)波形文件。
共得到兩個(gè)激勵(lì)波形文件stimu_YAl stimu_YBl ;激勵(lì)波形文件內(nèi)容分別為
stimu YAl outputYrelated_pinAsense01whenOwhenlBVAAGNDp_pwll VB B GND vh
上述激勵(lì)波形文件內(nèi)容各部分含義為(1)發(fā)生翻轉(zhuǎn)的輸出管腳名為Y ; (2)目標(biāo)8輸入管腳(發(fā)生上升翻轉(zhuǎn)的輸入管腳)為A ; C3)在輸入管腳A發(fā)生上升翻轉(zhuǎn)時(shí),導(dǎo)致輸出 管腳Y發(fā)生了上升翻轉(zhuǎn)(01代表上升翻轉(zhuǎn),10代表下降翻轉(zhuǎn));(4)WhenO 此時(shí)其他輸入管 腳中為低電平的管腳,無;(5)Whenl 此時(shí)其他輸入管腳中為高電平的管腳B ;(6)VA A GND p_pwl 激勵(lì)波形的第一行,表示在節(jié)點(diǎn)A和節(jié)點(diǎn)GND (地電平)之間加入名字為VA,值為p_ pwll的輸入電壓激勵(lì)。p_pwll最后的1表示上升翻轉(zhuǎn);需要由用戶給出帶具體的時(shí)間點(diǎn)和 電壓值的具體激勵(lì)將該部分替代;該部分只起表示上升翻轉(zhuǎn)的作用。(7)VB BGND vh:激勵(lì) 波形的第二行,表示在節(jié)點(diǎn)B和節(jié)點(diǎn)GND (地電平)之間加入名字為VB,值為vh的輸入電壓 激勵(lì)。vh需要由用戶由具體的電壓值代替,只表示輸入高電平的含義。
文件名stimu_YAl的含義為輸出發(fā)生翻轉(zhuǎn)的管腳為Y,輸入發(fā)生翻轉(zhuǎn)的管腳為A,1表示該激勵(lì)為本系列激勵(lì)中的第一個(gè)。
stimu YBl :outputYrelated_pinBsense01whenOwhenlAVBBGNDp_pwllVAAGNDvh
如圖4所示,為典型邏輯參數(shù)庫的文件結(jié)構(gòu)圖,圖示了 synopsys公司的邏輯 綜合庫的結(jié)構(gòu)框架,包括管腳信息,功耗power,單元延時(shí)celldelay,輸入輸出沿延時(shí) transition等部分,其中的具體數(shù)值正是需要本專利測量和填充的組合邏輯單元的邏輯參數(shù)信息。
如圖6和圖7所示,為典型spice仿真的文件,文件中調(diào)用了組合邏輯單元的電路 網(wǎng)表和仿真工藝模型,例化了單元電路,設(shè)置了 PVT(電源,工藝角,溫度)和仿真控制條件 等,另外也寫出了測量相關(guān)邏輯參數(shù)的測量語句。圖6中的子模塊實(shí)例化語句(即子模塊 調(diào)用語句)部分和激勵(lì)波形部分,即是需要通過ksh語句編寫腳本用以填充的部分,其中子 模塊實(shí)例化語句和激勵(lì)波形的生成前面已經(jīng)介紹過。
如圖7所示,為and2單元電路Spice仿真文件的實(shí)例,文件中首先使用.include 和.lib語句來分別調(diào)用and2單元電路網(wǎng)表和1018_vap4. lib工藝庫模型,其次設(shè)定 PVT (電源,工藝角,溫度)和仿真控制條件,然后使用.measure語句來測量相關(guān)邏輯參數(shù)以及X語句實(shí)現(xiàn)對(duì)and2單元電路的實(shí)例化(and2子模塊電路網(wǎng)表如圖8所示),最后給出 and2單元電路A和B輸入端激勵(lì)波形。
如圖8所示,為and2子模塊電路網(wǎng)表,文件首行以.subckt語句開頭定義了單元 電路的單元名,輸入輸出端口名,然后描述單元電路內(nèi)部各個(gè)器件的名稱、連接關(guān)系、使用 晶體管的類型以及尺寸,最后以.ends語句結(jié)束。
權(quán)利要求
1.一種組合邏輯電路邏輯參數(shù)提取激勵(lì)波形的產(chǎn)生方法,包括以下步驟一、由用戶 向計(jì)算機(jī)輸入spice仿真的工藝模型文件和電路網(wǎng)表;二、計(jì)算機(jī)根據(jù)電路網(wǎng)表采用spice 工具進(jìn)行仿真,得到用于仿真集成電路內(nèi)部功耗和時(shí)序所需的激勵(lì)波形;三、計(jì)算機(jī)用該激 勵(lì)波形作為spice仿真激勵(lì),編寫spice仿真文件,然后調(diào)用spice仿真工具,執(zhí)行該仿真 文件的內(nèi)容,形成測量集成電路邏輯單元的功耗(power),單元延時(shí)(celldelay),輸入輸 出沿延時(shí)(tansition)信息的spice仿真序列;四、計(jì)算機(jī)根據(jù)spice仿真序列對(duì)集成電路 進(jìn)行仿真后,產(chǎn)生測量信息的結(jié)果文件,運(yùn)行該文件將仿真的參數(shù)信息添加到synopsys綜 合庫文件的格式中;五、用戶向synopsys綜合庫文件中添加集成電路各邏輯單元中每個(gè)輸 出管腳與各輸入管腳的邏輯關(guān)系。
2.根據(jù)權(quán)利要求1所述的組合邏輯電路邏輯參數(shù)提取激勵(lì)波形的產(chǎn)生方法,其特征在 于所述工藝模型文件根據(jù)集成電路制造商的流片工藝確定。
3.根據(jù)權(quán)利要求2所述的組合邏輯電路邏輯參數(shù)提取激勵(lì)波形的產(chǎn)生方法,其特征 在于所述電路網(wǎng)表中包含需要測量邏輯參數(shù)的組合邏輯單元。
4.根據(jù)權(quán)利要求3所述的組合邏輯電路邏輯參數(shù)提取激勵(lì)波形的產(chǎn)生方法,其特征在 于所述仿真工具采用新思公司的仿真工具Hspice。
5.根據(jù)權(quán)利要求4所述的組合邏輯電路邏輯參數(shù)提取激勵(lì)波形的產(chǎn)生方法,其特征在 于所述計(jì)算機(jī)根據(jù)spice仿真序列對(duì)集成電路進(jìn)行Hspice仿真后,產(chǎn)生.mtO文件,將仿 真的結(jié)果編寫ksh格式的執(zhí)行命令,執(zhí)行該命令將仿真的參數(shù)信息添加到synopsys綜合庫 文件。
全文摘要
本發(fā)明公開了一種組合邏輯電路邏輯參數(shù)提取激勵(lì)波形的產(chǎn)生方法,要解決的技術(shù)問題是減小組合邏輯電路邏輯參數(shù)提取過程中的人為誤差。本發(fā)明的產(chǎn)生方法,包括以下步驟向計(jì)算機(jī)輸入仿真的工藝模型文件和電路網(wǎng)表,計(jì)算機(jī)進(jìn)行仿真,得到激勵(lì)波形,計(jì)算機(jī)用該激勵(lì)波形作為仿真激勵(lì),形成仿真序列,計(jì)算機(jī)根據(jù)仿真序列對(duì)集成電路進(jìn)行仿真,產(chǎn)生測量信息的結(jié)果文件,將仿真的參數(shù)信息添加到綜合庫文件的格式中。本發(fā)明與現(xiàn)有技術(shù)相比,采用對(duì)組合邏輯單元的電路網(wǎng)表進(jìn)行仿真來獲得所需要的組合邏輯單元的邏輯功能信息,避免了在激勵(lì)波形產(chǎn)生和參數(shù)提取仿真中對(duì)邏輯功能輸入的依賴,消除了由電路網(wǎng)表生成最終邏輯參數(shù)之間的人為誤差風(fēng)險(xiǎn)。
文檔編號(hào)G06F17/50GK102033990SQ20101056687
公開日2011年4月27日 申請(qǐng)日期2010年11月30日 優(yōu)先權(quán)日2010年11月30日
發(fā)明者劉建新, 張滿倉, 王亮, 祝昌華, 謝文剛, 賈柱良 申請(qǐng)人:深圳市國微電子股份有限公司