唐 拓,張 偉
(中國(guó)電子科技集團(tuán)公司第四十七研究所,沈陽(yáng)110032)
為了使電路性能達(dá)到設(shè)計(jì)預(yù)期目標(biāo),并滿足電路工作環(huán)境要求,必須對(duì)一個(gè)電路設(shè)計(jì)進(jìn)行諸如時(shí)序、面積、負(fù)載等方面的約束,并自始至終使用這些約束條件使電路設(shè)計(jì)軟件按照設(shè)計(jì)意圖來(lái)運(yùn)行。設(shè)計(jì)約束一般包括專用集成電路(ASIC)生產(chǎn)廠家的設(shè)計(jì)規(guī)則約束和設(shè)計(jì)者自定義的設(shè)計(jì)優(yōu)化約束。設(shè)計(jì)規(guī)則約束優(yōu)先權(quán)高于設(shè)計(jì)優(yōu)化約束,是隱含的,無(wú)須設(shè)計(jì)者指定,因此,這里重點(diǎn)討論設(shè)計(jì)優(yōu)化約束。設(shè)計(jì)優(yōu)化約束包括設(shè)計(jì)者對(duì)電路性能上的一系列在時(shí)序、面積和版圖布通性等方面的指標(biāo),其中最重要、最復(fù)雜的是時(shí)序約束。
要對(duì)一個(gè)電路的時(shí)序行為進(jìn)行充分約束,至少應(yīng)考慮時(shí)鐘網(wǎng)絡(luò)、端口輸入輸出延遲以及端口的驅(qū)動(dòng)和負(fù)載特性。
2.1.1 時(shí)鐘網(wǎng)絡(luò)
對(duì)于一個(gè)實(shí)際的時(shí)鐘網(wǎng)絡(luò),最重要的兩個(gè)屬性就是時(shí)鐘的傳播延時(shí)和時(shí)鐘的不確定性。時(shí)鐘的傳播延時(shí)包括時(shí)鐘源延時(shí)和時(shí)鐘網(wǎng)絡(luò)延時(shí)。在版圖設(shè)計(jì)完成之后,時(shí)鐘樹(shù)上電路單元和網(wǎng)絡(luò)延時(shí)等參數(shù)可以反標(biāo)回來(lái),通過(guò)適當(dāng)設(shè)置,讓這些延時(shí)信息在時(shí)鐘網(wǎng)絡(luò)上傳播,這樣可以自動(dòng)獲得時(shí)鐘的這些重要屬性。
當(dāng)時(shí)鐘網(wǎng)絡(luò)上包含除緩沖器和反相器之外的邏輯時(shí),就會(huì)產(chǎn)生門控時(shí)鐘信號(hào)。通過(guò)約束使門控信號(hào)在相對(duì)時(shí)鐘沿的建立時(shí)間和保持時(shí)間區(qū)域內(nèi)保證不發(fā)生變化。
最小時(shí)鐘脈寬的檢查對(duì)時(shí)序電路非常重要,由于時(shí)鐘網(wǎng)絡(luò)上的門控單元和延時(shí)等的影響,脈寬在時(shí)鐘的傳播過(guò)程中會(huì)減小,可能在時(shí)鐘網(wǎng)絡(luò)的某些點(diǎn)上,時(shí)鐘不再往后傳遞。因此必須設(shè)定脈寬的最小限制。
2.1.2 端口延時(shí)
端口輸入延時(shí)是指外部路徑到電路輸入(或雙向端口)的相對(duì)于時(shí)鐘沿的時(shí)間。端口輸入延時(shí)應(yīng)該等于從源寄存器時(shí)鐘腳到驅(qū)動(dòng)單元(輸入腳的直接驅(qū)動(dòng)單元)輸出腳的延時(shí)減去驅(qū)動(dòng)單元與負(fù)載相關(guān)的那部分延時(shí)。端口輸出延時(shí)是指輸出腳(或雙向端口)到外部寄存器的路徑延時(shí),端口輸出延時(shí)的最大值等于從輸出腳到外部寄存器數(shù)據(jù)端的路徑延時(shí)的最大值加上寄存器的建立時(shí)間。端口輸出延時(shí)的最小值等于從輸出腳到外部寄存器數(shù)據(jù)端的路徑延時(shí)的最小值減去寄存器的保持時(shí)間。輸入(input delay)和輸出(output delay)延遲的圖解如下。
圖1 輸入延遲
圖2 輸出延遲
2.1.3 端口的驅(qū)動(dòng)和負(fù)載特性
端口的驅(qū)動(dòng)和負(fù)載特性描述了電路與外部環(huán)境的接口,將影響電路的時(shí)序行為。應(yīng)用環(huán)境轉(zhuǎn)變到約束如圖3所示??梢詾椴煌妮斎攵丝趶膸?kù)單元中選擇不同的驅(qū)動(dòng)單元,為輸入、輸出端口指定負(fù)載值,同時(shí)還可以為輸出端口設(shè)定扇出負(fù)載的大小。在端口進(jìn)行時(shí)序約束時(shí),應(yīng)考慮端口驅(qū)動(dòng)和負(fù)載特性對(duì)時(shí)序的影響。
圖3 電路的驅(qū)動(dòng)和負(fù)載信息
多時(shí)鐘同步電路是指電路中的多個(gè)時(shí)鐘都由同一時(shí)鐘源派生而來(lái),它們之間有相對(duì)固定的相位關(guān)系,其中有的時(shí)鐘不一定有實(shí)際對(duì)應(yīng)的電路端口。從總體上說(shuō),多時(shí)鐘同步電路可以采用與單時(shí)鐘同步電路同樣的約束策略,也包括定義時(shí)鐘(必要時(shí)需要建立虛擬時(shí)鐘作為端口輸入、輸入延時(shí)的參考)、指定I/O腳相對(duì)時(shí)鐘的延時(shí)等步驟。由于可能出現(xiàn)一個(gè)端口或網(wǎng)絡(luò)上存在多個(gè)約束的情況,時(shí)序分析工具總是選擇最苛刻的約束條件作為計(jì)算建立時(shí)間和保持時(shí)間的約束條件。對(duì)于特殊的電路結(jié)構(gòu),還可以通過(guò)設(shè)置多周期路徑和最大、最小延時(shí)等辦法,來(lái)滿足建立時(shí)間和保持時(shí)間的要求。
靜態(tài)時(shí)序分析技術(shù)是一種窮盡分析方法,用以衡量電路性能。它提取整個(gè)電路的所有時(shí)序路徑,通過(guò)計(jì)算信號(hào)沿在路徑上的延遲傳播,找出違背時(shí)序約束的錯(cuò)誤,主要是檢查建立時(shí)間和保持時(shí)間是否滿足要求,而它們又分別通過(guò)對(duì)最大路徑延遲和最小路徑延遲的分析得到。靜態(tài)時(shí)序分析的方法不依賴于激勵(lì),而且可以窮盡所有路徑,運(yùn)行速度很快,它完全克服了動(dòng)態(tài)時(shí)序驗(yàn)證的缺陷,適合進(jìn)行大規(guī)模及超大規(guī)模ASIC電路的驗(yàn)證,可以節(jié)省多達(dá)20%的設(shè)計(jì)時(shí)間。靜態(tài)時(shí)序分析的問(wèn)題在于:它不了解電路的動(dòng)態(tài)行為,因而受到電路中眾多偽路徑的困擾;同時(shí),目前靜態(tài)時(shí)序分析還只局限于同步電路的分析。因此設(shè)計(jì)結(jié)束之前要對(duì)全芯片進(jìn)行一次動(dòng)態(tài)仿真。
在一款硬件調(diào)試芯片設(shè)計(jì)中,采用靜態(tài)時(shí)序分析技術(shù)很好地分析了芯片的時(shí)序狀況。該芯片主要由地址/數(shù)據(jù)采集寄存器,控制寄存器以及比較器模塊構(gòu)成。分別完成對(duì)地址/數(shù)據(jù)的采集工作,在控制寄存器的控制作用下,與編程到比較器的數(shù)據(jù)進(jìn)行比較,從而完成對(duì)程序執(zhí)行的實(shí)時(shí)監(jiān)控。其結(jié)構(gòu)框圖如圖4所示。
該芯片的時(shí)鐘頻率有12M,分別完成芯片內(nèi)部同步邏輯的控制工作。從整體上說(shuō),該款芯片屬于同步電路,因此,應(yīng)用靜態(tài)時(shí)序分析工具來(lái)對(duì)其進(jìn)行時(shí)序分析是一種很好的選擇。在分析的時(shí)候,存在的問(wèn)題是復(fù)位信號(hào)經(jīng)過(guò)兩級(jí)同步電路同步后,由于同步寄存器之間幾乎沒(méi)有電路,因此出現(xiàn)了HOLD TIME的違背情況。這可以在后端布局布線的時(shí)候予以解決。
圖4 硬調(diào)試芯片總體框圖
在芯片版圖(layout)設(shè)計(jì)前,所有時(shí)鐘網(wǎng)絡(luò)必須設(shè)置 set-don’t-touch-network 和 set-ideal-net,以確保不影響后端版圖設(shè)計(jì)中時(shí)鐘樹(shù)的設(shè)計(jì)及版圖設(shè)計(jì)。待版圖設(shè)計(jì)完畢后,抽取出SDF文件和SPEF文件,然后在靜態(tài)時(shí)序分析工具中進(jìn)行反標(biāo)門級(jí)網(wǎng)表,進(jìn)行靜態(tài)時(shí)序分析。在版圖設(shè)計(jì)中,絕大多數(shù)(hold)錯(cuò)誤,必須通過(guò)手工插入緩沖區(qū)解決。對(duì)于時(shí)鐘路徑的處理,對(duì)最小時(shí)鐘脈寬分析,通過(guò)set-min-pulsewidth分析;對(duì)setup timing和hold timing的分析,通過(guò)report_timing命令來(lái)分析,還可以用report_constraint–all_violators命令來(lái)檢查所有時(shí)序上的違背情況。
采用UMC公司0.35微米CMOS標(biāo)準(zhǔn)單元庫(kù)(Faraday FS8000A 0.35微米library),邏輯綜合工具為Synopsys Design Compiler,ATPG產(chǎn)生工具為Tetra-MAX靜態(tài)時(shí)序分析工具采用Prime Time。通過(guò)對(duì)全芯片進(jìn)行靜態(tài)時(shí)序分析,芯片的時(shí)序狀況良好并為設(shè)計(jì)人員所把握,為后續(xù)環(huán)節(jié)的處理提供良好的依據(jù),為整個(gè)芯片的成功設(shè)計(jì)提供了堅(jiān)實(shí)的基礎(chǔ)。
[1] Benkoski J,Vanden Meersch E,Claesen L J M,et al.Timing Verification Using Statically Sensitizable Paths[J].IEEE Trans on Computer2Aided Design of Integrated Circuits and Systems,1990,9(10):1073-1083.
[2] Prime time Workshop.Synopsys Customer Education Services[EB/OL].http://www.synopsys.com.
[3] 呂宗偉,林爭(zhēng)輝,張鐳.數(shù)字集成電路的時(shí)序分析[J].微電子學(xué),2001,31(2):126-129.