專(zhuān)利名稱(chēng):非同步硬核的偽同步時(shí)序建模方法
技術(shù)領(lǐng)域:
本發(fā)明涉及大規(guī)模集成電路設(shè)計(jì)中全定制模塊的時(shí)序建模方法,尤其是非同步IP(知識(shí)產(chǎn)權(quán)Intellectual Property)硬核(Hard Macro)的時(shí)序建模方法。
背景技術(shù):
當(dāng)前的大規(guī)模集成電路設(shè)計(jì)常常采用標(biāo)準(zhǔn)單元和全定制相結(jié)合的設(shè)計(jì)方法。為提高設(shè)計(jì)性能,通常要對(duì)影響時(shí)序的關(guān)鍵模塊如寄存器文件、數(shù)據(jù)通路等進(jìn)行全定制設(shè)計(jì),形成硬核,再集成到系統(tǒng)設(shè)計(jì)中。為了在系統(tǒng)設(shè)計(jì)中使用硬核,就必須為該硬核建立完整準(zhǔn)確的時(shí)序視圖。另一方面,隨著設(shè)計(jì)規(guī)模的不斷增大,集成電路設(shè)計(jì)已進(jìn)入片上系統(tǒng)(System-on-a-chip,簡(jiǎn)稱(chēng)SOC)時(shí)代,設(shè)計(jì)越來(lái)越多地依賴(lài)于知識(shí)產(chǎn)權(quán)模塊(即IP核),而IP核的設(shè)計(jì)不可避免地要解決時(shí)序視圖的生成問(wèn)題。
非同步硬核是一種特殊的硬核,它的輸入和輸出信號(hào)中沒(méi)有時(shí)鐘信號(hào),且輸入和輸出信號(hào)的延遲大小和驅(qū)動(dòng)能力與時(shí)鐘信號(hào)無(wú)關(guān)。通常的非同步硬核的時(shí)序建模總是將每個(gè)輸出信號(hào)和所有的輸入信號(hào)全相關(guān)建模,即每個(gè)輸出信號(hào)的上升和下降延時(shí)與所有的輸入信號(hào)都有關(guān)系。假設(shè)硬核有m個(gè)輸出,n個(gè)輸入,則時(shí)序建模需要建立m×n×2的二維表格。當(dāng)輸入和輸出信號(hào)很少時(shí),這種方法還比較可行,工作量不是很大。一個(gè)二與非門(mén)的時(shí)序視圖4個(gè)表格。但是,對(duì)于寄存器文件類(lèi)的全定制模塊,由于輸入輸出端口數(shù)量過(guò)多,容易造成組合爆炸,從而建模工作量巨大,建模成本高,效率低。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問(wèn)題是建立非同步硬核時(shí)序視圖時(shí),當(dāng)硬核的輸入輸出端口過(guò)多而引起組合爆炸,造成建模工作量巨大的問(wèn)題。本發(fā)明提出一種快捷的建模方法,減少建立非同步硬核視圖的復(fù)雜度,縮短硬核的設(shè)計(jì)周期。本發(fā)明可在精度允許的情況下大大減少建立時(shí)序視圖的工作量。
本發(fā)明是對(duì)非同步硬核采用一種偽同步的時(shí)序建模方法,在建立非同步硬核的時(shí)序視圖時(shí)引入時(shí)鐘變量。建模時(shí)設(shè)置一個(gè)虛擬時(shí)鐘,把輸入與輸出的全相關(guān)的延時(shí)信息轉(zhuǎn)化為所有的輸入信號(hào)相對(duì)于虛擬時(shí)鐘的建立時(shí)間和輸出信號(hào)相對(duì)于虛擬時(shí)鐘的輸出延時(shí),這樣只需要建立m個(gè)輸入信號(hào)相對(duì)于時(shí)鐘上升沿的建立時(shí)間和n個(gè)輸出信號(hào)相對(duì)于時(shí)鐘上升沿的延遲時(shí)間的二維表格就可以了,僅僅需要m+n個(gè)二維表格,與傳統(tǒng)的時(shí)序建模需要建立2×m×n個(gè)表格相比,工作量大大減少。
本發(fā)明是這樣實(shí)現(xiàn)的1.假設(shè)從非同步硬核的輸出到下一棧寄存器之間的邏輯單元所需的時(shí)間為t1,且假定時(shí)鐘周期為T(mén),要建立硬核的一個(gè)輸入信號(hào)A的時(shí)序視圖,通過(guò)模擬(采用Spice或者Star-Sim等模擬軟件)找到因輸入信號(hào)A的變化引起輸出信號(hào)變化的最大延遲時(shí)間。假設(shè)通過(guò)模擬發(fā)現(xiàn),從輸入信號(hào)A到所有的輸出信號(hào)延遲路徑中,輸入A到輸出B的延時(shí)最大,且值為tAB,則建立時(shí)序視圖時(shí)將輸入信號(hào)A相對(duì)于時(shí)鐘上升沿的建立時(shí)間設(shè)置為tAB+t1。
2.建立輸出信號(hào)的時(shí)序視圖,假設(shè)從輸出信號(hào)B到下一棧寄存器輸入之間的邏輯電路需要延遲為t1,那么在建立輸出信號(hào)B的時(shí)序視圖時(shí)只需將B相對(duì)于時(shí)鐘上升沿的輸出延時(shí)設(shè)置成T-t1就行了,這樣就把t1的時(shí)間留給后面的邏輯單元了。
3.為了合理的分配時(shí)序約束,讓全定制非同步硬核前的邏輯電路延時(shí)t0和硬核后的邏輯電路延時(shí)t1分配合理,要根據(jù)布局布線后的情況來(lái)適當(dāng)修改視圖,如果布線后經(jīng)分析發(fā)現(xiàn)為硬核前面邏輯留出的時(shí)間t0較小,而為硬核后面邏輯留出的時(shí)間t1比較寬裕,則適當(dāng)減小t1的值,即相當(dāng)于在時(shí)間窗口內(nèi)將全定制硬核向后滑動(dòng)。與此相反,如果發(fā)現(xiàn)預(yù)留給硬核后面邏輯的時(shí)間t1很緊張,則將t1的值適當(dāng)增大,相當(dāng)于在時(shí)間窗口內(nèi)將全定制硬核向前滑動(dòng)。通過(guò)反復(fù)迭代幾次使電路的時(shí)序得到合理的分配,電路也就能優(yōu)化得很好。同樣也可以不使用t1作參考,而采用上一棧鎖存器與硬核之間的邏輯電路延時(shí)t0為參考利用此種方法建偽同步時(shí)序視圖。
采用本發(fā)明可以取得以下技術(shù)效果采用本發(fā)明來(lái)建立非同步硬核時(shí)序視圖時(shí),降低了建立非同步硬核視圖的復(fù)雜度,縮短了硬核的設(shè)計(jì)周期,建??旖?,可在精度允許的情況下大大減少建立時(shí)序視圖的工作量,從而縮短芯片的開(kāi)發(fā)周期,有效解決了當(dāng)硬核的輸入輸出端口過(guò)多而引起組合爆炸造成建模工作量巨大的問(wèn)題。
圖1是二與非門(mén)的傳統(tǒng)時(shí)序視圖。
圖2是采用本發(fā)明的非同步硬核在電路中的示例。
圖3是采用本發(fā)明對(duì)一個(gè)寄存器文件建立的時(shí)序視圖。
圖4是傳統(tǒng)方法和采用本發(fā)明進(jìn)行時(shí)序建模的工作量比較圖。
具體實(shí)施例方式圖1是傳統(tǒng)方法建立的一個(gè)二與非門(mén)的時(shí)序視圖,建立的方法是通過(guò)模擬將輸入X影響輸出Z的上升、下降兩種情況各建一個(gè)表格,輸入Y影響輸出Z的上升、下降兩種情況各建一個(gè)表格,如圖1所示,共建立4個(gè)二維表格,因輸入輸出端口數(shù)目比較少,所以工作量不是很大。
圖2是采用本發(fā)明的非同步硬核在電路中的示例,建立偽同步時(shí)序視圖的關(guān)鍵是合理分配同一時(shí)鐘節(jié)拍內(nèi)非時(shí)序硬核前后組合邏輯的延時(shí)t0和t1。如圖所示,中間的方框?yàn)槿ㄖ圃O(shè)計(jì)的非同步硬核,從硬核的輸出到下一棧寄存器之間的邏輯單元所需的時(shí)間為t1,時(shí)鐘周期為T(mén),建立硬核的一個(gè)輸入信號(hào)A的時(shí)序視圖方法是,通過(guò)模擬(采用Spice或者StarSim等模擬軟件)找到因輸入信號(hào)A的變化引起輸出信號(hào)變化的最大延遲時(shí)間。假設(shè)通過(guò)模擬發(fā)現(xiàn),從輸入信號(hào)A到所有的輸出信號(hào)延遲路徑中,A到B的延時(shí)最大,且值為tAB,則建立時(shí)序視圖時(shí)只需將輸入信號(hào)A相對(duì)于時(shí)鐘上升沿的建立時(shí)間設(shè)置為tAB+t1就行了。建立輸出信號(hào)的時(shí)序視圖方法是,假設(shè)從輸出信號(hào)B到下一棧寄存器輸入之間的邏輯電路需要延遲為t1,那么在建立輸出信號(hào)B的時(shí)序視圖時(shí)只需將B相對(duì)于時(shí)鐘上升沿的輸出延時(shí)設(shè)置成T-t1就行了,這樣就把t1的時(shí)間留給后面的邏輯單元了。因此通過(guò)分析布線后的時(shí)序來(lái)調(diào)整t1的大小,使非時(shí)序硬核在時(shí)間窗口內(nèi)前后滑動(dòng),從而獲得合理的延時(shí)分配。
圖3是利用本發(fā)明建立的一個(gè)10讀6寫(xiě)的異步寄存器文件的部分時(shí)序視圖。假設(shè)把每個(gè)讀端口的使能和地址信號(hào)看成一組總線,每個(gè)寫(xiě)端口的使能、地址和數(shù)據(jù)看成一組總線,每個(gè)讀端口的數(shù)據(jù)輸出看成一組信號(hào),則此異步寄存器硬核有16個(gè)輸入和10個(gè)輸出,如果采用的傳統(tǒng)時(shí)序視圖建立方法需要建16×10×2=320個(gè)二維表格,工作量巨大,如果采用偽同步時(shí)序建模方法,如圖3所示,只需要16+10=26個(gè)二維表格。假設(shè)時(shí)鐘周期為6ns,留給寄存器硬核后面的組合邏輯時(shí)間為1.59ns,經(jīng)過(guò)模擬分析出在輸入跳變(transition)為0.07ns,輸出負(fù)載0.07pF情況下,從輸入總線R0_Addr變化到輸出數(shù)據(jù)有效的最大延時(shí)為0.9812ns,所以R0_Addr相對(duì)于時(shí)鐘上升沿的建立時(shí)間為0.9812+1.59=2.5712ns。因此,圖3中第一個(gè)表格中左上角數(shù)值為2.5712。同樣,因?yàn)榱艚o寄存器硬核后面的組合邏輯時(shí)間為1.59ns,所以寄存器硬核的數(shù)據(jù)輸出相對(duì)于時(shí)鐘上升沿延遲為T(mén)-t1=6-1.59=4.4100ns。因此,圖3中R0_Data表格的第一個(gè)延遲數(shù)據(jù)為4.4100。
圖4是采用傳統(tǒng)方法和偽同步方法進(jìn)行時(shí)序建模的工作量比較圖。圖中比較的是硬核的輸入和輸出信號(hào)數(shù)的總和為10情況下,采用傳統(tǒng)方法和本發(fā)明建立時(shí)序視圖的工作量。橫坐標(biāo)是輸入信號(hào)的數(shù)目,縱坐標(biāo)是采用兩種方法建立視圖需要的二維表格的數(shù)目。因?yàn)楸景l(fā)明要建立二維表格的數(shù)目等于輸入和輸出個(gè)數(shù)的和,所以如圖所示,本發(fā)明需要建10個(gè)表格,是一條水平直線。而傳統(tǒng)方法需要建立二維表格的數(shù)目為m×n×2,需要建立二維表格的數(shù)目如圖中的曲線所示。通過(guò)比較可發(fā)現(xiàn)采用本發(fā)明建立時(shí)序視圖的工作量明顯減小。
本發(fā)明已應(yīng)用在國(guó)防科大自行研制的YHFT-D3和YHFT-D4芯片中,這兩個(gè)芯片的寄存器文件均采用本發(fā)明進(jìn)行時(shí)序建模,大大縮短了時(shí)序建模周期。
權(quán)利要求
1.一種非同步硬核的偽同步時(shí)序建模方法,其特征在于在建立非同步硬核的時(shí)序視圖時(shí)引入時(shí)鐘變量,即建模時(shí)設(shè)置一個(gè)虛擬時(shí)鐘,把輸入與輸出的全相關(guān)的延時(shí)信息轉(zhuǎn)化為所有的輸入信號(hào)相對(duì)于虛擬時(shí)鐘的建立時(shí)間和輸出信號(hào)相對(duì)于虛擬時(shí)鐘的輸出延時(shí),建立m個(gè)輸入信號(hào)相對(duì)于時(shí)鐘上升沿的建立時(shí)間和n個(gè)輸出信號(hào)相對(duì)于時(shí)鐘上升沿的延遲時(shí)間的二維表格;具體實(shí)現(xiàn)過(guò)程是1.1假設(shè)從非同步硬核的輸出到下一棧寄存器之間的邏輯單元所需的時(shí)間為t1,且假定時(shí)鐘周期為T(mén),要建立硬核的一個(gè)輸入信號(hào)A的時(shí)序視圖,利用模擬軟件進(jìn)行模擬找到因輸入信號(hào)A的變化引起輸出信號(hào)變化的最大延遲時(shí)間,假設(shè)通過(guò)模擬發(fā)現(xiàn),從輸入信號(hào)A到所有的輸出信號(hào)延遲路徑中,輸入A到輸出B的延時(shí)最大,且值為tAB,則建立時(shí)序視圖時(shí)將輸入信號(hào)A相對(duì)于時(shí)鐘上升沿的建立時(shí)間設(shè)置為tAB+t1;1.2建立輸出信號(hào)的時(shí)序視圖,假設(shè)從輸出信號(hào)B到下一棧寄存器輸入之間的邏輯電路需要延遲為t1,則在建立輸出信號(hào)B的時(shí)序視圖時(shí)將B相對(duì)于時(shí)鐘上升沿的輸出延時(shí)設(shè)置成T-t1,這樣就把t1的時(shí)間留給后面的邏輯單元了;1.3為了合理的分配時(shí)序約束,讓全定制非同步硬核前的邏輯電路延時(shí)t0和硬核后的邏輯電路延時(shí)t1分配合理,要根據(jù)布局布線后的情況來(lái)適當(dāng)修改視圖,如果布線后經(jīng)分析發(fā)現(xiàn)為硬核前面邏輯留出的時(shí)間t0較小,而為硬核后面邏輯留出的時(shí)間t1比較寬裕,則適當(dāng)減小t1的值,即相當(dāng)于在時(shí)間窗口內(nèi)將全定制硬核向后滑動(dòng);與此相反,如果發(fā)現(xiàn)預(yù)留給硬核后面邏輯的時(shí)間t1很緊張,則將t1的值適當(dāng)增大,相當(dāng)于在時(shí)間窗口內(nèi)將全定制硬核向前滑動(dòng);通過(guò)反復(fù)迭代幾次使電路的時(shí)序得到合理的分配,電路也就能優(yōu)化得很好;同樣也可以不使用t1作參考,而采用上一棧鎖存器與硬核之間的邏輯電路延時(shí)t0為參考利用此種方法建偽同步時(shí)序視圖。
全文摘要
本發(fā)明公開(kāi)了一種非同步硬核的偽同步時(shí)序建模方法,目的是解決當(dāng)硬核的輸入輸出端口過(guò)多而引起組合爆炸,造成建模工作量巨大的問(wèn)題。技術(shù)方案是在建立非同步硬核的時(shí)序視圖時(shí)引入時(shí)鐘變量,建模時(shí)設(shè)置一個(gè)虛擬時(shí)鐘,把輸入與輸出的全相關(guān)的延時(shí)信息轉(zhuǎn)化為所有的輸入信號(hào)相對(duì)于虛擬時(shí)鐘的建立時(shí)間和輸出信號(hào)相對(duì)于虛擬時(shí)鐘的輸出延時(shí),這樣只需要建立m個(gè)輸入信號(hào)相對(duì)于時(shí)鐘上升沿的建立時(shí)間和n個(gè)輸出信號(hào)相對(duì)于時(shí)鐘上升沿的延遲時(shí)間的二維表格就可以了,僅僅需要m+n個(gè)二維表格,與傳統(tǒng)的時(shí)序建模需要建立2×m×n個(gè)表格相比,工作量大大減少。
文檔編號(hào)G06F17/50GK1595406SQ20041004504
公開(kāi)日2005年3月16日 申請(qǐng)日期2004年7月15日 優(yōu)先權(quán)日2004年7月15日
發(fā)明者馬鵬勇, 李振濤, 陳書(shū)明, 孫慶, 徐慧, 郭陽(yáng), 劉祥遠(yuǎn), 扈嘯 申請(qǐng)人:中國(guó)人民解放軍國(guó)防科學(xué)技術(shù)大學(xué)