專利名稱:使用波形產(chǎn)生觸發(fā)的方法與系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明關(guān)于一種設(shè)計(jì)數(shù)字集成電路的軟件工具,特別是有關(guān)于從波形圖中產(chǎn)生硬件設(shè)計(jì)語言(Hardware Design Language,HDL)觸發(fā)(assertion)的系統(tǒng)與方法。
背景技術(shù):
數(shù)字集成電路設(shè)計(jì)者運(yùn)用各種軟件工具以設(shè)計(jì)出一集成電路(IC)。設(shè)計(jì)工程師們以硬件設(shè)計(jì)語言為一種緩存器轉(zhuǎn)移語言(RegisterTransfer Language,RTL)撰寫程序代碼。之后集成電路設(shè)計(jì)者執(zhí)行一模擬器(simulator),利用HDL程序代碼作為輸入以測(cè)試設(shè)計(jì)的集成電路。在修復(fù)于模擬程序中所找到的程序代碼問題后,HDL程序代碼作為合成器(synthesizer)的輸入。合成器則將HDL程序代碼轉(zhuǎn)譯為以場(chǎng)式可程序門陣列(Field Programmable Gate Array,F(xiàn)PGA)、特殊應(yīng)用集成電路(Application-Specific Integrated Circuit,ASIC)或特制硅集成電路形式表示的集成電路實(shí)體表述。
于模擬程序期間,驗(yàn)證工程師以HDL程序代碼與觸發(fā)為工具,驗(yàn)證HDL程序代碼是否精確地實(shí)現(xiàn)了預(yù)期的設(shè)計(jì)。觸發(fā)是一種設(shè)計(jì),用來表示一特定設(shè)計(jì)特征應(yīng)該或不應(yīng)該作用(behave)。舉例來說,一邏輯方塊的程序代碼可能假設(shè)于任一時(shí)間點(diǎn)兩輸入訊號(hào)中只有一個(gè)是有作用的。另一個(gè)例子,一邏輯方塊可能假設(shè)一輸入永遠(yuǎn)不會(huì)大于一特定最大值。再另一例子,一邏輯方塊可能假設(shè)一請(qǐng)求訊號(hào)在直到一確認(rèn)(Acknowledge)訊號(hào)宣告致能(asserted)之前,均保持在等待致能狀態(tài)。上述設(shè)計(jì)者作的各種假設(shè)均可以用觸發(fā)來表述。
觸發(fā)可以任何語言來撰寫。對(duì)于一些HDL語言,如VHDL與System Verilog,本身即提供支持以撰寫觸發(fā),如Vera、Jeda、e與PropertySpecification Language(PSL)等,即用特別開發(fā)來表示觸發(fā)。
利用現(xiàn)存的系統(tǒng)與方法,驗(yàn)證、設(shè)計(jì)工程師必須由波形圖推斷時(shí)序關(guān)聯(lián)(timing relationship),并且撰寫觸發(fā)以表示這些時(shí)序關(guān)聯(lián)。這是一項(xiàng)耗時(shí)且亦發(fā)生錯(cuò)誤的程序,因?yàn)檫@個(gè)程序是手動(dòng)而不是自動(dòng)的。此外,驗(yàn)證、設(shè)計(jì)工程師更可能需要學(xué)習(xí)數(shù)種不同的觸發(fā)語言(如System Verilog,Vera,e,PSL等等),因?yàn)椴煌拈_發(fā)工具支持不同的語言。因此,設(shè)計(jì)一較佳產(chǎn)生觸發(fā)的方法是必須的。
發(fā)明內(nèi)容
本發(fā)明揭露了一種從波形圖產(chǎn)生硬件設(shè)計(jì)語言(HDL)觸發(fā)的系統(tǒng)與方法。該方法包含辨別第一訊號(hào)與第二訊號(hào)之間的時(shí)序關(guān)聯(lián);以及根據(jù)時(shí)序關(guān)聯(lián)產(chǎn)生HDL觸發(fā)。時(shí)序關(guān)聯(lián)包含部分的第一訊號(hào)、部分的第二訊號(hào)、以及兩者之間的間隔。其另一方法包含辨別波形圖中兩輸入訊號(hào)與一輸出訊號(hào)之間的組合關(guān)聯(lián);以及根據(jù)關(guān)聯(lián)而產(chǎn)生HDL觸發(fā)。本發(fā)明還包含邏輯操作以執(zhí)行以下步驟接收復(fù)數(shù)個(gè)訊號(hào)描述,每一訊號(hào)描述形容其中一個(gè)訊號(hào);接收用以描述至少兩個(gè)訊號(hào)之間一時(shí)序或組合的關(guān)聯(lián)的一訊號(hào)關(guān)聯(lián)描述;產(chǎn)生包含上述關(guān)聯(lián)之一表述的波形圖;以及根據(jù)上述關(guān)聯(lián)產(chǎn)生一硬件設(shè)計(jì)語言的觸發(fā)。
本發(fā)明的許多觀點(diǎn)可以參考以下的附圖而更加清楚的了解。相關(guān)附圖并未依比例繪制,其作用僅在清楚表現(xiàn)本發(fā)明有關(guān)原理。
圖1顯示于波形圖中使用時(shí)序關(guān)聯(lián)符號(hào)來定義時(shí)序關(guān)聯(lián)。
圖2顯示于波形圖中使用時(shí)序關(guān)聯(lián)符號(hào)的另一例子。
圖3顯示于波形圖中使用時(shí)序關(guān)聯(lián)符號(hào)的再一例子。
圖4顯示透過圖式分析產(chǎn)生的一波形圖與觸發(fā)。
圖5是本發(fā)明使用波形產(chǎn)生觸發(fā)的方法的一使用者介面范例的示意圖。
圖6說明定義訊號(hào)、產(chǎn)生這些訊號(hào)的波形的過程。
圖7說明了定義訊號(hào)之間的時(shí)序關(guān)聯(lián),并于產(chǎn)生的波形上表示這些關(guān)聯(lián)的過程。
圖8說明定義一額外的時(shí)序關(guān)聯(lián)。
圖9說明從波形與時(shí)序關(guān)聯(lián)產(chǎn)生一觸發(fā)。
圖10說明定義輸入訊號(hào)、產(chǎn)生這些輸入訊號(hào)的波形的過程。
圖11說明了定義輸出訊號(hào)、產(chǎn)生這些輸出訊號(hào)的波形的過程。
圖12說明定義訊號(hào)之間一邏輯或組合關(guān)聯(lián)的過程。
圖13中說明定義一額外的組合關(guān)聯(lián)的過程。
圖14說明從波形與組合關(guān)聯(lián)產(chǎn)生一觸發(fā)。
圖15說明說明本方法另一實(shí)施例,其允許一時(shí)序組合與組合關(guān)聯(lián)被定義。
圖16為本方法使用波形產(chǎn)生觸發(fā)的流程圖。
圖17為可用來實(shí)現(xiàn)本發(fā)明使用波形產(chǎn)生觸發(fā)的方法之一實(shí)施例的一般用途計(jì)算機(jī)系統(tǒng)的方塊圖。
圖中符號(hào)說明101 時(shí)脈102 訊號(hào)req103 訊號(hào)gnt104、105、106 轉(zhuǎn)折點(diǎn)107、108 時(shí)序關(guān)聯(lián)指針109、110、111 觸發(fā)201 時(shí)序關(guān)聯(lián)指針202 觸發(fā)301、302、303 轉(zhuǎn)折點(diǎn)304 時(shí)序關(guān)聯(lián)指針305 觸發(fā)401 時(shí)脈
402 訊號(hào)req403 訊號(hào)gnt404、405、406 轉(zhuǎn)折點(diǎn)407、408 觸發(fā)501 按鈕組502 “時(shí)脈”按鈕503 時(shí)脈訊號(hào)描述對(duì)話框504 波形601 “訊號(hào)”按鈕602 訊號(hào)描述對(duì)話框603、612 訊號(hào)標(biāo)記604 “高位”按鈕605 “低位”按鈕606、609、611、613、616 點(diǎn)607、608、610、614、615 波形區(qū)段701 “關(guān)聯(lián)”按鈕702 時(shí)序關(guān)聯(lián)指針801 時(shí)序關(guān)聯(lián)指針802 “忽略不計(jì)”按鈕803 區(qū)塊1001 “輸入”按鈕1002 輸入訊號(hào)描述對(duì)話框1003 訊號(hào)標(biāo)記1101 “輸出”按鈕1102 輸出訊號(hào)描述對(duì)話框1103 訊號(hào)標(biāo)記1201 邏輯運(yùn)算按鈕1202 “與”關(guān)聯(lián)符號(hào)1203、1205 節(jié)點(diǎn)1204 訊號(hào)控制表列
1301 “或”關(guān)聯(lián)符號(hào)1302、1303、1304 節(jié)點(diǎn)1401 觸發(fā)1501 時(shí)脈1502 訊號(hào)req1503 訊號(hào)gnt1504 額外訊號(hào)1505 輸入訊號(hào)rd1506 輸入訊號(hào)wr1507 下拉式控制列1508 “與”關(guān)聯(lián)符號(hào)1509 組合輸出1510 時(shí)序關(guān)聯(lián)1511 觸發(fā)1601、1602、1603、1604 步驟1701 計(jì)算機(jī)1702 處理器1703 存儲(chǔ)器1704 介面設(shè)備1705 本地端介面1706 使用波形產(chǎn)生觸發(fā)的系統(tǒng)1707 操作系統(tǒng)具體實(shí)施方式
圖1中顯示于波形圖中使用時(shí)序關(guān)聯(lián)符號(hào)來定義時(shí)序關(guān)聯(lián)。波形圖可以由本發(fā)明的使用波形產(chǎn)生觸發(fā)的方法來產(chǎn)生,而本方法亦能在由其它工具或程序產(chǎn)生的圖式上運(yùn)作。波形圖包含一時(shí)脈101、一訊號(hào)req 102與一訊號(hào)gnt 103。時(shí)脈的第一個(gè)上升邊緣與訊號(hào)req由低位轉(zhuǎn)換至高位轉(zhuǎn)折點(diǎn)104同時(shí)發(fā)生,時(shí)脈的第二個(gè)上升邊緣與訊號(hào)gnt由低位轉(zhuǎn)換至高位的轉(zhuǎn)折點(diǎn)105同時(shí)發(fā)生,以及時(shí)脈的第三個(gè)上升邊緣與訊號(hào)req由低位轉(zhuǎn)換至高位的轉(zhuǎn)折點(diǎn)106同時(shí)發(fā)生。
本技術(shù)領(lǐng)域相關(guān)人士應(yīng)能發(fā)現(xiàn),附圖1隱含了訊號(hào)req(102)與訊號(hào)gnt(103)之間的數(shù)個(gè)時(shí)序關(guān)聯(lián)。以自然的語言來設(shè)計(jì),其中一個(gè)關(guān)聯(lián)為“訊號(hào)req變高位后經(jīng)過一時(shí)脈周期,訊號(hào)gnt變高位”。在時(shí)序關(guān)聯(lián)中,即一訊號(hào)的動(dòng)作(追隨者,follower)取決于另一訊號(hào)的動(dòng)作(前導(dǎo)者,antecedent)。在此,訊號(hào)req是前導(dǎo)者而訊號(hào)gnt是追隨者。
于附圖1中,時(shí)序關(guān)聯(lián)指針(timing relationship indicator)107明白地指出此第一時(shí)序關(guān)聯(lián)。于一實(shí)施例,時(shí)序關(guān)聯(lián)指針107由使用者的輸入產(chǎn)生。于另一實(shí)施例,本方法運(yùn)作于由一些其它工具或程序產(chǎn)生的時(shí)序關(guān)聯(lián)指針107上。
時(shí)序關(guān)聯(lián)指針107定義了以下的關(guān)聯(lián)。指針107的一邊緣對(duì)準(zhǔn)前導(dǎo)訊號(hào)由低位轉(zhuǎn)換至高位的部分104,而另一邊緣則對(duì)準(zhǔn)追隨訊號(hào)由低位轉(zhuǎn)換至高位的部分105。指針107橫跨兩個(gè)訊號(hào)部份或段(segment)描述了時(shí)序關(guān)聯(lián)。指針107亦包含了一指示,以指出于兩個(gè)訊號(hào)轉(zhuǎn)折點(diǎn)之間允許產(chǎn)生的時(shí)脈周期數(shù)。于一些實(shí)施例中,周期數(shù)介于一區(qū)間范圍內(nèi),例如1到4。
圖1中亦隱含了訊號(hào)req102與訊號(hào)gnt103間的第二個(gè)時(shí)序關(guān)聯(lián)(“訊號(hào)gnt變高位后經(jīng)過一時(shí)脈周期,訊號(hào)req變低位”),并明白地被時(shí)序關(guān)聯(lián)指針108所指出。在此第二關(guān)聯(lián)中,訊號(hào)gnt是前導(dǎo)者而訊號(hào)req是追隨者。指針108的一邊緣對(duì)準(zhǔn)前導(dǎo)者由低位轉(zhuǎn)換至高位的部分105,而另一邊緣則對(duì)準(zhǔn)追隨者由高位轉(zhuǎn)換至低位的部分106。圖1的時(shí)序關(guān)聯(lián)指針107僅是圖形符號(hào)的一個(gè)例子,其可用來定義一時(shí)序關(guān)聯(lián)。任何允許使用者具體指定一部份的前導(dǎo)者、一部份的追隨者與兩者之間間隔的使用者輸入(圖形或文字)均可使用于本發(fā)明之中。
以指針表示的時(shí)序關(guān)聯(lián)更映像(mapping)至觸發(fā)指針107定義的關(guān)聯(lián)映像至觸發(fā)109;以及指針108定義的關(guān)聯(lián)映像至觸發(fā)110。每一個(gè)觸發(fā)均表示了一必須為“真”的時(shí)序關(guān)聯(lián)。產(chǎn)生的觸發(fā)之后可以被工程師應(yīng)用于模擬、正式的驗(yàn)證程序之中,而一個(gè)違反的觸發(fā)通常會(huì)被記錄并旗標(biāo)標(biāo)記(flagged)為一個(gè)錯(cuò)誤(error)。本技術(shù)領(lǐng)域相關(guān)人士不需要進(jìn)一步的解釋,應(yīng)均可了解如何使用觸發(fā)來表示時(shí)序關(guān)聯(lián),同時(shí)亦應(yīng)可明白本方法可支持多種不同觸發(fā)語言。再者,于一實(shí)施例中本方法更同時(shí)支持不同的語言,使用者可從中選擇目前使用的語言。
一實(shí)施例中,當(dāng)多個(gè)時(shí)序關(guān)聯(lián)在時(shí)間上為循序的,則此多個(gè)時(shí)序關(guān)聯(lián)更可結(jié)合成為一單一的觸發(fā)。轉(zhuǎn)折點(diǎn)104、105之間的關(guān)聯(lián)與轉(zhuǎn)折點(diǎn)105、106之間的關(guān)聯(lián)系連續(xù)的它們共享一共同的時(shí)脈轉(zhuǎn)折點(diǎn)105。這兩個(gè)連續(xù)的時(shí)序關(guān)聯(lián)可以組合成一單一的觸發(fā)111表示。于一些實(shí)施例中,使用者則能以每一關(guān)聯(lián)為基準(zhǔn),取消(override)將連續(xù)時(shí)序關(guān)聯(lián)結(jié)合為一單一觸發(fā)的做法。
指針107定義了前導(dǎo)者一轉(zhuǎn)折點(diǎn)與追隨者的一轉(zhuǎn)折點(diǎn)之間的時(shí)序關(guān)聯(lián)。因此,觸發(fā)109亦使用兩個(gè)轉(zhuǎn)折點(diǎn)來表示一時(shí)序關(guān)聯(lián)。本例子中,則系以System Verilog語言來產(chǎn)生觸發(fā)。因此,觸發(fā)109中使用了System Verilog的關(guān)鍵詞rose,以訊號(hào)轉(zhuǎn)折點(diǎn)rose(req)##rose(gnt)來表示時(shí)序關(guān)聯(lián)。當(dāng)使用其它觸發(fā)設(shè)計(jì)語言時(shí),則選用其它適當(dāng)?shù)霓D(zhuǎn)折關(guān)鍵詞。
本發(fā)明使用波形產(chǎn)生觸發(fā)的方法的另一實(shí)施例,如圖2所示,則是允許以訊號(hào)狀態(tài)(state)取代訊號(hào)轉(zhuǎn)折,來定義時(shí)序關(guān)聯(lián)。波形圖仍包含與圖1相同的三個(gè)訊號(hào)時(shí)脈101、訊號(hào)req(102)與訊號(hào)gnt(103)。然而,一不同形式的時(shí)序關(guān)聯(lián)指針201則用來定義三者之間的關(guān)系。指針201的邊緣與先前不同,其系藉由指出訊號(hào)的狀態(tài)而非訊號(hào)的轉(zhuǎn)折點(diǎn),來定義時(shí)序關(guān)聯(lián)。若以自然的語言表示此關(guān)聯(lián),可表示為“訊號(hào)req是高位,一時(shí)脈周期后訊號(hào)gnt與req是高位”。圖2中,本方法是使用訊號(hào)的值或狀態(tài),而非使用訊號(hào)的轉(zhuǎn)折,來產(chǎn)生觸發(fā)202(使用System Verilog語言)。以System Verilog語言表示,觸發(fā)202的內(nèi)容為req##req&&gnt,不含訊號(hào)轉(zhuǎn)折的關(guān)鍵詞rose。
圖3顯示于波形時(shí)脈圖中,一定義時(shí)序關(guān)聯(lián)的指針的例子。這里,訊號(hào)轉(zhuǎn)折并非于時(shí)脈邊緣,而是于一時(shí)脈周期之間產(chǎn)生于第一時(shí)脈周期期間,訊號(hào)req由低位轉(zhuǎn)換至高位301;于第二時(shí)脈周期期間,訊號(hào)gnt由低位轉(zhuǎn)換至高位302;以及于第三時(shí)脈周期期間,訊號(hào)req由高位轉(zhuǎn)換至低位303。本例子中時(shí)序關(guān)聯(lián)指針304的使用與圖1相似指針304的一邊緣對(duì)準(zhǔn)由低位轉(zhuǎn)換至高位的訊號(hào)reg的部分302,另一邊緣則對(duì)準(zhǔn)由低位轉(zhuǎn)換至高位的訊號(hào)gnt的某部分303。于圖3,觸發(fā)305產(chǎn)生方法與圖1的方法相似。
圖4顯示,透過波形分析,以本發(fā)明使用波形產(chǎn)生觸發(fā)的方法所產(chǎn)生的波形圖與觸發(fā)。波形圖包含一時(shí)脈401、一訊號(hào)req402與一訊號(hào)gnt403。時(shí)脈的第一個(gè)上升邊緣與訊號(hào)req由低位轉(zhuǎn)換至高位的一轉(zhuǎn)折點(diǎn)404同時(shí)發(fā)生,時(shí)脈的第二個(gè)上升邊緣與訊號(hào)gnt由低位轉(zhuǎn)換至高位的一轉(zhuǎn)折點(diǎn)405同時(shí)發(fā)生,以及時(shí)脈的第三個(gè)上升邊緣與訊號(hào)req由高位轉(zhuǎn)換至低位的一轉(zhuǎn)折點(diǎn)406同時(shí)發(fā)生。
圖4并未明確地顯示訊號(hào)req與gnt之間的時(shí)序關(guān)聯(lián)。然而,于此實(shí)施例中,本方法藉由分析于時(shí)脈邊緣發(fā)生的訊號(hào)轉(zhuǎn)折,以從時(shí)脈化的波形圖中辨別一或多個(gè)時(shí)序關(guān)聯(lián)。本方法根據(jù)轉(zhuǎn)折點(diǎn)404與405來辨別一時(shí)序關(guān)聯(lián)訊號(hào)req變高位后經(jīng)一時(shí)脈周期,訊號(hào)gnt變高位。本方法根據(jù)轉(zhuǎn)折點(diǎn)405與406來辨別另一時(shí)序關(guān)聯(lián)訊號(hào)gnt變高位后經(jīng)一時(shí)脈周期,訊號(hào)req變低位。由于工程師熟悉由波形圖中解析時(shí)序關(guān)聯(lián),本技術(shù)領(lǐng)域相關(guān)人士不需其它進(jìn)一步說明應(yīng)均能了解如何推知以上這些時(shí)脈關(guān)聯(lián)。
本方法根據(jù)辨別的時(shí)序關(guān)聯(lián)以產(chǎn)生觸發(fā)對(duì)應(yīng)轉(zhuǎn)折點(diǎn)404與405的關(guān)聯(lián)為映像至觸發(fā)407;以及對(duì)應(yīng)轉(zhuǎn)折點(diǎn)405與406的關(guān)聯(lián)為映像至觸發(fā)408。每一個(gè)觸發(fā)均表示了一必須為“真”的時(shí)序關(guān)聯(lián)。
圖5是本發(fā)明使用波形產(chǎn)生觸發(fā)的方法的一使用者介面范例的示意圖。使用者透過一交互式程序,輸入對(duì)于訊號(hào)的描述以及訊號(hào)之間的關(guān)聯(lián),而程序?qū)⒏鶕?jù)使用者的輸入產(chǎn)生波形圖。使用者可以檢視圖式并對(duì)訊號(hào)與關(guān)聯(lián)作編輯,因而一新的波形圖如焉產(chǎn)生。使用者介面包括熟知的控制介面(如按鈕、下拉列表、文字輸入?yún)^(qū)域等)以繪制訊號(hào)與輸入關(guān)聯(lián)。
使用者使用一組按鈕501,并利用圖5至圖8中一連串的使用者互動(dòng)操作來定義訊號(hào)與關(guān)聯(lián)。圖5說明定義一時(shí)脈訊號(hào)的過程。當(dāng)按摯“時(shí)脈”按鈕502,將出現(xiàn)一時(shí)脈訊號(hào)描述對(duì)話框503。透過對(duì)話框503,使用者輸入時(shí)脈的名稱與其周期。在跳出訊號(hào)描述對(duì)話框503后,程序根據(jù)時(shí)脈訊號(hào)與其預(yù)定的周期產(chǎn)生并畫出波形504,并以先前輸入的名稱來標(biāo)示此波形。
圖6說明定義訊號(hào)、產(chǎn)生這些訊號(hào)的波形的過程。要定義一訊號(hào),需先按“訊號(hào)”按鈕601,以出現(xiàn)一訊號(hào)描述對(duì)話框602。透過對(duì)話框602,使用者輸入第一個(gè)訊號(hào)的名稱(req)與其初始值(高位)。之后跳出訊號(hào)描述對(duì)話框602,程序?qū)a(chǎn)生一訊號(hào)標(biāo)記603。要畫出訊號(hào)req的波形,使用者需動(dòng)作其中一訊號(hào)狀態(tài)按鈕(“高位”604或“低位”605),之后點(diǎn)擊于標(biāo)記603右測(cè)的一個(gè)點(diǎn)上。本例子中,訊號(hào)req于第一時(shí)脈周期變高位,并于兩個(gè)時(shí)脈周期后變低位。要畫出該波形,使用者先按“低位”按鈕605,并點(diǎn)擊于點(diǎn)606上。之后程序產(chǎn)生由一開始至點(diǎn)606為止均保持為低位的一初始波形區(qū)段607。下個(gè)區(qū)段608則系藉由按摯“高位”按鈕604后并點(diǎn)擊于點(diǎn)609產(chǎn)生。而最后的區(qū)段610則通過按摯“低位”按鈕605后點(diǎn)擊于點(diǎn)611產(chǎn)生。
第二個(gè)訊號(hào)gnt亦由相似的方式產(chǎn)生。例子中的訊號(hào)gnt在第二時(shí)脈周期時(shí)變高位后即維持高位狀態(tài)。要畫出訊號(hào)gnt的波形,“訊號(hào)”按鈕601被點(diǎn)按,并將訊號(hào)的名稱(gnt)輸入訊號(hào)描述對(duì)話框602之中。當(dāng)跳出訊號(hào)描述對(duì)話框602后,程序?qū)a(chǎn)生一訊號(hào)標(biāo)記612。之后使用者點(diǎn)按“低位”按鈕605并點(diǎn)擊于點(diǎn)613之上,而形成由一開始至點(diǎn)613為止均保持為低位的一波形區(qū)段614。第二個(gè)區(qū)段615則于點(diǎn)摯“高位”按鈕604之后,再點(diǎn)擊于點(diǎn)616產(chǎn)生。
圖7說明了定義訊號(hào)之間的時(shí)序關(guān)聯(lián),并于產(chǎn)生的波形上表示這些關(guān)聯(lián)的過程。最簡(jiǎn)單的關(guān)聯(lián)僅牽涉兩個(gè)訊號(hào)一前導(dǎo)訊號(hào),與在某些方面跟隨著前導(dǎo)訊號(hào)而動(dòng)作的一追隨訊號(hào)。利用與先前討論的圖5、圖6相似的例子,訊號(hào)req變高位后經(jīng)過一時(shí)脈周期,訊號(hào)gnt亦變高位。故而在此特定關(guān)聯(lián)下,訊號(hào)req是一前導(dǎo)者而訊號(hào)gnt是一追隨者。
為了定義此關(guān)聯(lián),“關(guān)聯(lián)”按鈕701將被使用。程序生成一時(shí)序關(guān)聯(lián)指針702,包含兩個(gè)訊號(hào)邊緣與一數(shù)字的中垂線。首先,使用者沿著訊號(hào)gnt波形底部定下時(shí)序關(guān)聯(lián)指針702的位置。接著使用者拖曳(drag)著時(shí)序關(guān)聯(lián)指針702的左側(cè)邊緣來對(duì)準(zhǔn)點(diǎn)606的位置(訊號(hào)req由低位轉(zhuǎn)換至高位的轉(zhuǎn)折點(diǎn)),并拖拉著時(shí)序關(guān)聯(lián)指針702的右側(cè)邊緣對(duì)準(zhǔn)點(diǎn)613的位置(訊號(hào)gnt由低位轉(zhuǎn)換至高位的轉(zhuǎn)折點(diǎn))。時(shí)序關(guān)聯(lián)指針702中垂線內(nèi)的數(shù)字代表允許的訊號(hào)轉(zhuǎn)折的次數(shù),此例子中為1。
圖8說明了于訊號(hào)gnt與req間定義兩個(gè)以上的時(shí)序關(guān)聯(lián)的過程。如之前的定義,本例子中訊號(hào)gnt變高位后經(jīng)過一時(shí)脈周期,訊號(hào)req變低位。要定義此第二個(gè)關(guān)聯(lián),“關(guān)聯(lián)”按鈕701再次被作動(dòng)以產(chǎn)生另一時(shí)序關(guān)聯(lián)指針801。使用者沿著訊號(hào)req波形底部定下時(shí)序關(guān)聯(lián)指針702的位置。接著,使用者拖拉著時(shí)序關(guān)聯(lián)指針801的左側(cè)邊緣來對(duì)準(zhǔn)點(diǎn)613的位置(訊號(hào)gnt由低位轉(zhuǎn)換至高位的轉(zhuǎn)折點(diǎn)),并拖拉著時(shí)序關(guān)聯(lián)指針801的右側(cè)邊緣對(duì)準(zhǔn)點(diǎn)609的位置(訊號(hào)req由高位轉(zhuǎn)換至低位的轉(zhuǎn)折點(diǎn))。時(shí)序關(guān)聯(lián)指針801的中垂線內(nèi)的數(shù)字代表允許訊號(hào)作高低位轉(zhuǎn)換的次數(shù),此例子中為1。
第三個(gè)時(shí)序關(guān)聯(lián)則定義為“當(dāng)訊號(hào)req變換為低位后,訊號(hào)gnt的值為忽略不計(jì)”。第三個(gè)時(shí)序關(guān)聯(lián)通過按摯“忽略不計(jì)”按鈕802,產(chǎn)生一區(qū)塊803來完成定義。使用者沿著訊號(hào)gnt的波形設(shè)定好區(qū)塊803的位置,接著拖曳區(qū)塊803的左右兩側(cè)邊緣,以定義其值忽略不計(jì)的時(shí)間范圍。圖8中,區(qū)塊803的左側(cè)邊緣對(duì)準(zhǔn)點(diǎn)609(訊號(hào)req由高位轉(zhuǎn)換至低位的轉(zhuǎn)折點(diǎn)),右側(cè)邊緣則對(duì)準(zhǔn)最后一個(gè)時(shí)脈周期。
在根據(jù)圖5至圖8的過程產(chǎn)生一或多個(gè)時(shí)序關(guān)聯(lián)后,使用者下達(dá)指令讓程序?qū)⑦@些關(guān)聯(lián)映像為觸發(fā)(映像過程已說明于圖1至圖4中)。其結(jié)果如圖9。本方法由時(shí)序關(guān)聯(lián)指針702提供的信息產(chǎn)生觸發(fā)901,并由時(shí)序關(guān)聯(lián)指針801的信息產(chǎn)生觸發(fā)902。于一實(shí)施例中,觸發(fā)映像指令(assertion mapping instruction)系透過一功能選單(未圖標(biāo))完成;于另一實(shí)施例,則是透過按鈕(未圖式)。一實(shí)施例中,使用者透過一對(duì)話盒選定一預(yù)設(shè)的觸發(fā)語言,此預(yù)設(shè)語言可以在下達(dá)映像指令時(shí)透過一特定語言的選擇而取消。于另一實(shí)施例,使用者則必須于下達(dá)映像指令時(shí)選定特定的觸發(fā)語言。
現(xiàn)在,取得兩個(gè)或多個(gè)訊號(hào)之間的時(shí)序關(guān)聯(lián)的過程已詳細(xì)描述如上,本技術(shù)領(lǐng)域相關(guān)人士應(yīng)可了解,如何以特定的語言進(jìn)行取得的時(shí)序關(guān)聯(lián)與觸發(fā)之間的映像。因此,說明書中僅提供部分映像的例子。本技術(shù)領(lǐng)域相關(guān)人應(yīng)可了解,單一的時(shí)序關(guān)聯(lián)有時(shí)可以用相同的語言、多種不同種類的觸發(fā)設(shè)計(jì)來表示,故而時(shí)序關(guān)聯(lián)與觸發(fā)之間的映像關(guān)系不必然是一對(duì)一的。
圖5至圖8中描述的三種時(shí)序關(guān)聯(lián),可以映像至下列以SystemVerilog語言撰寫的觸發(fā)時(shí)序關(guān)聯(lián)指針702→(req##req&&gnt)時(shí)序關(guān)聯(lián)指針801→(req&&req##!req)
圖3至圖6中描述的三種時(shí)序關(guān)聯(lián),可以映像至下列以PSL語言撰寫的觸發(fā)時(shí)序關(guān)聯(lián)指針702→(req;req&&gnt)時(shí)序關(guān)聯(lián)指針801→(req&&req;!req)圖10至圖14中以波形圖的方式,來說明定義輸入與輸出訊號(hào)之間的一邏輯/組合(logical/combinatorial)關(guān)聯(lián)的過程。圖10說明了定義輸入訊號(hào)、產(chǎn)生這些輸入訊號(hào)的波形的過程。要定義一輸入訊號(hào),“輸入”按鈕1001被按摯,以出現(xiàn)一輸入訊號(hào)描述對(duì)話框1002。透過該對(duì)話框1002,使用者可輸入一輸入訊號(hào)的名稱(signal_a)。當(dāng)跳出對(duì)話框1002,程序?qū)a(chǎn)生一訊號(hào)標(biāo)記1003。本例子中,并未將畫出訊號(hào)signal_a波形的過程圖標(biāo)。一與圖5的使用者介面相似,或任何其它可產(chǎn)生訊號(hào)signal_a波形的使用者介面皆可被使用。其它兩個(gè)輸入訊號(hào)signal_b與signal_c,亦可以采取類似的方式產(chǎn)生。
圖11說明了定義輸出訊號(hào)、產(chǎn)生這些輸出訊號(hào)的波形的過程。要定義一輸出訊號(hào),“輸出”按鈕1101被按摯,以出現(xiàn)一輸出訊號(hào)描述對(duì)話框1102。透過該對(duì)話框1102,使用者可輸入一輸出訊號(hào)的名稱(signal_d)。當(dāng)跳出對(duì)話框1102,程序?qū)a(chǎn)生一訊號(hào)標(biāo)記1103。本例子中,并未將畫出訊號(hào)signal_d波形的過程圖標(biāo)。一與圖5的使用者介面相似,或任何其它可產(chǎn)生訊號(hào)signal_d波形的使用者介面皆可被使用。
圖12說明定義訊號(hào)之間一邏輯或組合關(guān)聯(lián)的過程。于一實(shí)施例中,本發(fā)明使用波形產(chǎn)生觸發(fā)的方法被拿來產(chǎn)生波形圖與定義關(guān)聯(lián)。于另一實(shí)施例,該方法運(yùn)作于由一些其它工具或程序產(chǎn)生的波形圖上。
要定義一邏輯關(guān)聯(lián),需使用邏輯運(yùn)算按鈕1201來選擇一邏輯運(yùn)算子(operator)。本例子中,“與(AND)”運(yùn)算子被選擇,并產(chǎn)生一“與”關(guān)聯(lián)符號(hào)(AND relationship symbol)1202。訊號(hào)signal_a的一節(jié)點(diǎn)1203藉由選擇訊號(hào)控制表列1204中的signal_a而產(chǎn)生。同樣地,訊號(hào)signal_b的一節(jié)點(diǎn)1205藉由選擇訊號(hào)控制表列1204中的signal_b而產(chǎn)生。這兩個(gè)節(jié)點(diǎn)連接(例如藉由拖曳動(dòng)作)至“與”關(guān)聯(lián)符號(hào)1202的兩個(gè)輸入。因而訊號(hào)signal_a與signal_b之間,一“與”關(guān)聯(lián)被定義。
圖13中定義了第二個(gè)的組合關(guān)聯(lián)。“或(OR)”運(yùn)算子被選擇,并產(chǎn)生一“或”關(guān)聯(lián)符號(hào)(OR relationship symbol)1301。訊號(hào)signal_c的一節(jié)點(diǎn)1302藉由選擇訊號(hào)控制表列1204中的signal_c而產(chǎn)生,并連接至“或”關(guān)聯(lián)符號(hào)1301。接著,“與”關(guān)聯(lián)符號(hào)1202的輸出節(jié)點(diǎn)1303被選擇,之后更連接至“與”關(guān)聯(lián)符號(hào)1301(例如藉由拖曳動(dòng)作)。因此,“與”輸出(訊號(hào)signal_a和signal_b)以及訊號(hào)signal_c之間一“或”的關(guān)聯(lián)被定義。最后,訊號(hào)signal_d的一節(jié)點(diǎn)1304藉由選擇訊號(hào)控制表列1204中的signal_d而產(chǎn)生,并連接至“或”關(guān)聯(lián)符號(hào)1301的輸出節(jié)點(diǎn)1305。上述過程定義了以下的組合關(guān)聯(lián)signal_d=signal_a&signal_b‖signal_c當(dāng)一或多個(gè)組合關(guān)聯(lián)利用圖10至圖13的程序產(chǎn)生后,使用者下達(dá)命令讓程序?qū)D中關(guān)聯(lián)映像為觸發(fā)。其結(jié)果如圖14。本方法通過由節(jié)點(diǎn)1203、1205、1302、1303、1304以及關(guān)聯(lián)符號(hào)1202與1301提供的信息,以產(chǎn)生觸發(fā)1401。以System Verilog語言來表示,產(chǎn)生的觸發(fā)為ASSERT(signal_d=signal_a&signal_b‖signal_c)。于一實(shí)施例,觸發(fā)映像指令系透過一功能選項(xiàng)(未圖標(biāo))完成;于另一實(shí)施例,則是透過按鈕(未圖式)。一實(shí)施例中,使用者透過一對(duì)話盒選定一預(yù)設(shè)的觸發(fā)語言,此預(yù)設(shè)語言可以在下達(dá)映像指令時(shí)透過一特定語言的選擇而取消。于另一實(shí)施例,使用者則必須于下達(dá)映像指令時(shí)選定特定的觸發(fā)語言。
本發(fā)明使用波形產(chǎn)生觸發(fā)的方法的一實(shí)施例,可辨別尚未以明確的關(guān)聯(lián)符號(hào)定義的組合關(guān)聯(lián)。一波形的輸入或輸出可以通過已知分析技術(shù),如真值表或卡諾夫(Karnaugh)表,以取得訊號(hào)間的組合關(guān)聯(lián)。實(shí)施例產(chǎn)生組合關(guān)聯(lián)的觸發(fā)的方法,與上述用符號(hào)明確定義的關(guān)聯(lián)的辨別方法一樣。
圖15說明本方法另一實(shí)施例,其允許一時(shí)序組合與組合關(guān)聯(lián)被定義。如先前其它實(shí)施例,觸發(fā)接著這些關(guān)聯(lián)之后產(chǎn)生。本例中的波形圖包含時(shí)脈訊號(hào)1501、訊號(hào)req1502、訊號(hào)gnt1503與一額外的訊號(hào)1504。實(shí)施例中,波形圖系根據(jù)如上述圖5至圖8的過程產(chǎn)生。
接著,輸入訊號(hào)rd1505與輸入訊號(hào)wr1506,以及利用這兩個(gè)訊號(hào)作輸入的組合關(guān)聯(lián)被定義。本實(shí)施例中,如第十至圖13的過程被使用,不同的是一下拉式控制列1507取代原先分離的按鈕,用來產(chǎn)生組合運(yùn)算子1508。組合輸出1509則連接至波形圖訊號(hào)1504。
接著,利用與圖1至圖3相同的程序增加一時(shí)序關(guān)聯(lián)指針1510。最后,使用者下指令讓程序?qū)D式的關(guān)聯(lián)映像為觸發(fā)。本例中,本方法利用時(shí)序關(guān)聯(lián)指針1510提供的信息產(chǎn)生觸發(fā)1511。觸發(fā)1511同時(shí)包含時(shí)脈與組合關(guān)聯(lián)ASSERT(rose(req)&rose(rd|wr)##rose(gnt))圖1至圖15中的使用者介面可以作不同的變化,本發(fā)明并不限制。本例子中,點(diǎn)擊的位置系決定時(shí)間,且高/低位訊號(hào)值則由控制按鈕的“高位”按鈕604與“低位”按鈕605的狀態(tài)(致能/不致能)決定。于另一實(shí)施例,點(diǎn)擊的位置可決定時(shí)間或訊號(hào)值,故而使用者藉由點(diǎn)擊在零位準(zhǔn)線之上來決定一高位訊號(hào)值,點(diǎn)擊在靠近零位準(zhǔn)線的附近來決定一低位訊號(hào)值。再一實(shí)施例中,則是用文字介面取代圖形介面。于文字介面的實(shí)施例中,使用者可從指令列或一檔案中輸入文字。一訊號(hào)可以用一連串成對(duì)的“時(shí)間/數(shù)值”來表示。例如,一訊號(hào)“一開始于第一時(shí)脈為高位,于第二時(shí)脈變低位,持續(xù)停留在低位狀態(tài)兩個(gè)時(shí)脈,之后再變高位”可以用(0,1)(1,0)(2,0)(3,1)的標(biāo)記描述方式表示。而訊號(hào)關(guān)聯(lián)同樣亦能用文字方式描述。
圖16為本方法使用波形產(chǎn)生觸發(fā)的流程圖。于步驟1601,本方法接收有關(guān)于訊號(hào)的描述,以及這些訊號(hào)之間的關(guān)聯(lián)。于步驟1602,產(chǎn)生一波形來代表這些訊號(hào)與關(guān)聯(lián)。步驟1601與1602并非必要的步驟,因?yàn)楸痉椒蛇\(yùn)作在以其它工具或程序所產(chǎn)生的波形上。于步驟1603,則是分析波形以辨別訊號(hào)之間一或多個(gè)的關(guān)聯(lián)。如果本方法實(shí)施步驟1601,其中的訊號(hào)描述與關(guān)聯(lián)描述均可用來分析波形。于最后步驟1604,本方法根據(jù)辨別的關(guān)聯(lián)產(chǎn)生一或多個(gè)觸發(fā)。
圖17為可用來實(shí)現(xiàn)本發(fā)明使用波形產(chǎn)生觸發(fā)的方法之一實(shí)施例的一般用途計(jì)算機(jī)系統(tǒng)的方塊圖。本技術(shù)領(lǐng)域相關(guān)人士應(yīng)可了解,本方法可在執(zhí)行其它集成電路設(shè)計(jì)工具(如編輯器、編譯器、合成器、模擬器、除錯(cuò)器等)相同系統(tǒng)上執(zhí)行,或是在遠(yuǎn)程服務(wù)器系統(tǒng)(如X窗口環(huán)境)上執(zhí)行。在硬件架構(gòu)上,一般而言計(jì)算機(jī)1701包含一處理器1702,一存儲(chǔ)器1703,以及透過本地端介面1705而互相連接的一或多個(gè)的輸入輸出裝置或介面設(shè)備1704。本地端介面1705可以包含其它的組成元件(為簡(jiǎn)單起見未繪制于圖式),如控制器、緩沖器、驅(qū)動(dòng)器、中繼器與接收器等進(jìn)行通訊所需的裝置。本地端介面1705更可包含地址、控制與資料聯(lián)機(jī)以使得上述的組成元件進(jìn)行通訊。
處理器1702一執(zhí)行軟件程序—特別是儲(chǔ)存于存儲(chǔ)器1703-的硬件裝置。處理器1702可以是任何特制或商業(yè)販?zhǔn)鄣奶幚砥?、一中央處理單?CPU)、與計(jì)算機(jī)1701相關(guān)的數(shù)個(gè)處理器間的輔助處理器、一半導(dǎo)體微處理器(微芯片或芯片組的形式)、一微處理器或是其它可執(zhí)行軟件程序命令的裝置。
存儲(chǔ)器1703可包含任一揮發(fā)性存儲(chǔ)元件(如隨機(jī)存取存儲(chǔ)器(RAM,如DRAM、SRAM、SDRAM等等))或非揮發(fā)性存儲(chǔ)元件(例如,ROM、硬盤、磁帶、CDROM等等),或是其組合。再者,存儲(chǔ)器1703更可包含電、光、磁的或其它形式的儲(chǔ)存媒體。注意,存儲(chǔ)器1703可為分布式架構(gòu),其中各個(gè)組成元件可置于不同的地方,但是可被處理器1702所存取。
存儲(chǔ)器1703中的軟件包括一或多個(gè)分開的程序,其中每個(gè)程序包含多數(shù)個(gè)可執(zhí)行指令的列表,以用來執(zhí)行邏輯功能。于實(shí)施例中,存儲(chǔ)器1703中的軟件包含使用波形產(chǎn)生觸發(fā)的系統(tǒng)1706的一或多個(gè)組成元件,以及一適當(dāng)?shù)牟僮飨到y(tǒng)1707。操作系統(tǒng)1707控制其它計(jì)算機(jī)程序的執(zhí)行,例如將觸發(fā)與硬件設(shè)計(jì)語言來源文件合并,并提供排程(scheduling)、輸入輸出控制、檔案數(shù)據(jù)管理、存儲(chǔ)器管理與通訊控制等相關(guān)服務(wù)。
上述程序可以是一來源文件、可執(zhí)行程序(目的碼)、script或其它包含一組可被執(zhí)行的命令的實(shí)體(entity)。當(dāng)為一來源檔,則需透過編譯器、組譯器或解譯器等其它相關(guān)工具的轉(zhuǎn)譯(包含或不包含于存儲(chǔ)器1703),以與操作系統(tǒng)1707妥善地運(yùn)作。
介面設(shè)備1704可包含輸入裝置,例如(但不限制為)鍵盤、鼠標(biāo)、掃描儀、麥克風(fēng)等。再者,介面設(shè)備1704亦可包含輸出裝置,例如(但本發(fā)明并不限制)打印機(jī)、顯示器、傳真裝置等。最后,介面設(shè)備1704更可包含用來連接輸入與輸出的裝置,例如調(diào)制解調(diào)器(modem,用來存取其它裝置、系統(tǒng)或網(wǎng)絡(luò))、射頻或其它頻率的無線電收發(fā)機(jī)、電話介面、橋接器、路由器等,同樣地亦不限定于上述舉例的裝置。
若計(jì)算機(jī)1707為一個(gè)人計(jì)算機(jī)、工作站或其它相近似裝置,則儲(chǔ)存在存儲(chǔ)器1703的軟件更可包含一基本輸入輸出系統(tǒng)(Basic InputOutput System,BIOS)。BIOS為一組必要的軟件例行程序,用來于開機(jī)時(shí)初始化并測(cè)試硬設(shè)備、啟動(dòng)操作系統(tǒng)1707,以及支持硬件裝置間資料的傳遞。BIOS儲(chǔ)存于ROM上,因而BIOS可以在計(jì)算機(jī)1701啟動(dòng)時(shí)被執(zhí)行。
當(dāng)計(jì)算機(jī)1701在運(yùn)作中,處理器1702被設(shè)定用來執(zhí)行儲(chǔ)存于存儲(chǔ)器1703的軟件、傳遞存儲(chǔ)器1703輸入或輸出的資料、以及根據(jù)軟件進(jìn)行一般性地控制計(jì)算機(jī)1701的運(yùn)作。使用波形產(chǎn)生觸發(fā)的系統(tǒng)1706以及操作系統(tǒng)1707由處理器1702所讀取(全部或部分,通常是部分),并緩沖儲(chǔ)存在處理器1702中以待執(zhí)行。
必須注意的是,本方法可以在任何與計(jì)算機(jī)相關(guān)的系統(tǒng)或方法中實(shí)施。于本文件敘述中,“計(jì)算機(jī)可讀取媒介”可以是任何可儲(chǔ)存、傳送、傳遞、傳播程序給指令執(zhí)行系統(tǒng)/裝置的工具。計(jì)算機(jī)可讀取媒介可以是一電、磁、光、電磁、紅外線或半導(dǎo)體的系統(tǒng)、裝置或傳播介質(zhì),本發(fā)明并不限制。以下列舉了一組可能的計(jì)算機(jī)可讀取媒介可能(并不詳盡),包含一或多條金屬線形成的電連接(electricalconnection)、一攜帶式計(jì)算機(jī)磁盤、一隨機(jī)存取存儲(chǔ)器RAM、一只讀存儲(chǔ)器ROM、一可消除可程序化只讀存儲(chǔ)器(EPROM、EEPROM或閃存)以及一攜帶式光盤只讀存儲(chǔ)器(CDROM)。須注意的是,計(jì)算機(jī)可讀取媒介甚至可以是一書面紙張或其它上面印制了程序的媒體,而程序可透過如光學(xué)掃描儀等裝置而被電性地?cái)X取出來,之后經(jīng)過編譯、解譯或必要時(shí)其它適當(dāng)?shù)奶幚沓绦蛞詢?chǔ)存于計(jì)算機(jī)存儲(chǔ)器之中。
于一替代的實(shí)施例中,本方法用硬件方式來實(shí)現(xiàn),其可用以下本領(lǐng)域已知的技術(shù)中任一個(gè)或其組合來實(shí)施具有邏輯門,可對(duì)資料訊號(hào)進(jìn)行邏輯功能處理的離散邏輯電路;具有適當(dāng)邏輯門組合的特殊應(yīng)用集成電路(ASIC);可程序門陣列(PGA);以及場(chǎng)式可程序門陣列(FPGA)等。
以上所述僅為本發(fā)明之較佳實(shí)施例而已,并非用以限定本發(fā)明的申請(qǐng)專利范圍;凡其它未脫離本發(fā)明所揭示之精神下完成的等效改變或修飾,均應(yīng)包含在所述的權(quán)利要求范圍中。
權(quán)利要求
1.一種從波形圖產(chǎn)生硬件設(shè)計(jì)語言觸發(fā)的方法,該波形圖包含一第一訊號(hào)、一第二訊號(hào)與一時(shí)脈訊號(hào),該從波形圖中產(chǎn)生硬件設(shè)計(jì)語言觸發(fā)的方法包含以下步驟辨別該第一訊號(hào)與該第二訊號(hào)之間的一時(shí)序關(guān)聯(lián),該時(shí)序關(guān)聯(lián)包含部分該第一訊號(hào)、部分該第二訊號(hào)以及該部分第一訊號(hào)與該部分第二訊號(hào)之間的一間隔周期;以及根據(jù)該時(shí)序關(guān)聯(lián)產(chǎn)生一硬件設(shè)計(jì)語言的觸發(fā)。
2.如權(quán)利要求1所述的從波形圖產(chǎn)生硬件設(shè)計(jì)語言觸發(fā)的方法,其中該部分第一訊號(hào)包括一訊號(hào)轉(zhuǎn)折。
3.如權(quán)利要求2所述的從波形圖產(chǎn)生硬件設(shè)計(jì)語言觸發(fā)的方法,其中該訊號(hào)轉(zhuǎn)折實(shí)質(zhì)上與該時(shí)脈訊號(hào)的一邊緣同時(shí)發(fā)生。
4.如權(quán)利要求2所述的從波形圖產(chǎn)生硬件設(shè)計(jì)語言觸發(fā)的方法,其中該訊號(hào)轉(zhuǎn)折于該時(shí)脈訊號(hào)的一周期內(nèi)發(fā)生。
5.如權(quán)利要求1所述的從波形圖產(chǎn)生硬件設(shè)計(jì)語言觸發(fā)的方法,其中該部分第一訊號(hào)包括一訊號(hào)狀態(tài)。
6.如權(quán)利要求5所述的從波形圖產(chǎn)生硬件設(shè)計(jì)語言觸發(fā)的方法,其中該訊號(hào)狀態(tài)為邏輯上低位或是邏輯上高位。
7.如權(quán)利要求1所述的從波形圖中產(chǎn)生硬件設(shè)計(jì)語言觸發(fā)的方法,更包含以下步驟接收該時(shí)序關(guān)聯(lián)的一指針,其中該指針辨別該部分第一訊號(hào)、該部分第二訊號(hào)與該間隔周期。
8.如權(quán)利要求7所述的從波形圖中產(chǎn)生硬件設(shè)計(jì)語言觸發(fā)的方法,其中該接收步驟更包含接收該時(shí)序關(guān)聯(lián)的一指針,其中該指針的一第一邊緣對(duì)準(zhǔn)該部分第一訊號(hào)且該指針的一第二邊緣對(duì)準(zhǔn)該部分第二訊號(hào)。
9.如權(quán)利要求7所述的從波形圖中產(chǎn)生硬件設(shè)計(jì)語言觸發(fā)的方法,其中該接收步驟更包含接收該時(shí)序關(guān)聯(lián)的一指針,其中該指針指定一數(shù)值予該間隔周期。
10.如權(quán)利要求7所述的從波形圖中產(chǎn)生硬件設(shè)計(jì)語言觸發(fā)的方法,其中該接收步驟更包含接收該時(shí)序關(guān)聯(lián)的一指針,其中該指針指定一范圍予該間隔周期。
11.如權(quán)利要求1所述的從波形圖中產(chǎn)生硬件設(shè)計(jì)語言觸發(fā)的方法,其中該根據(jù)該時(shí)序關(guān)聯(lián)產(chǎn)生該硬件描目語言的觸發(fā)的步驟更包含決定該關(guān)聯(lián)包含一訊號(hào)轉(zhuǎn)折;以及對(duì)應(yīng)訊號(hào)轉(zhuǎn)折的決定,產(chǎn)生包含一訊號(hào)轉(zhuǎn)折的一硬件設(shè)計(jì)語言的觸發(fā)。
12.如權(quán)利要求1所述的從波形圖中產(chǎn)生硬件設(shè)計(jì)語言觸發(fā)的方法,其中該根據(jù)該時(shí)序關(guān)聯(lián)產(chǎn)生該硬件描目語言的觸發(fā)的步驟更包含決定該關(guān)聯(lián)包含一訊號(hào)狀態(tài);以及對(duì)應(yīng)訊號(hào)轉(zhuǎn)折的決定,產(chǎn)生包含一訊號(hào)狀態(tài)的一硬件設(shè)計(jì)語言的觸發(fā)。
13.如權(quán)利要求1所述的從波形圖中產(chǎn)生硬件設(shè)計(jì)語言觸發(fā)的方法,其中更包含下列步驟辨別該第一輸入訊號(hào)、該第二輸入訊號(hào)與一組合輸出訊號(hào)之間的一組合關(guān)聯(lián);以及辨別該組合輸出訊號(hào)與一隨訊號(hào)之間的一時(shí)序關(guān)聯(lián),該時(shí)序關(guān)聯(lián)包含一段的該組合訊號(hào)、一段的該追隨訊號(hào)與該段第一訊號(hào)與該段第二訊號(hào)之間的一間隔周期。
14.一種包含一計(jì)算機(jī)程序以從波形圖產(chǎn)生硬件設(shè)計(jì)語言觸發(fā)的方法,該波形圖包含一第一輸入訊號(hào)、一第二輸入訊號(hào)與一輸出訊號(hào),該包含一計(jì)算機(jī)程序以從波形圖產(chǎn)生硬件設(shè)計(jì)語言觸發(fā)的方法包含辨別該第一輸入訊號(hào)、該第二輸入訊號(hào)與該輸出訊號(hào)之間的一組合關(guān)聯(lián);以及根據(jù)該關(guān)聯(lián)產(chǎn)生一硬件設(shè)計(jì)語言的觸發(fā)。
15.如權(quán)利要求14所述的包含一計(jì)算機(jī)程序以從波形圖產(chǎn)生硬件設(shè)計(jì)語言觸發(fā)的方法,更包含以下步驟接收該組合關(guān)聯(lián)的一指針,其中該指針辨別該第一輸入訊號(hào)、該第二輸入訊號(hào)、一布爾運(yùn)算子與該輸出訊號(hào)之間的一連接關(guān)系。
16.一計(jì)算機(jī)可讀取媒體,從一波形圖產(chǎn)生硬件設(shè)計(jì)語言的觸發(fā),該波形圖包含復(fù)數(shù)個(gè)訊號(hào),該計(jì)算機(jī)可讀取媒體程序包含邏輯操作以執(zhí)行以下步驟接收復(fù)數(shù)個(gè)訊號(hào)描述,每一該訊號(hào)描述形容一該復(fù)數(shù)個(gè)訊號(hào);接收用以描述至少兩個(gè)該復(fù)數(shù)個(gè)訊號(hào)之間一時(shí)序或組合的關(guān)聯(lián)的一訊號(hào)關(guān)聯(lián)描述;產(chǎn)生包含代表該關(guān)聯(lián)的波形圖;以及根據(jù)該關(guān)聯(lián)產(chǎn)生一硬件描述語言的觸發(fā)。
17.如權(quán)利要求16所述的計(jì)算機(jī)可讀取媒體,該計(jì)算機(jī)可讀取媒體程序更包含邏輯以執(zhí)行下列步驟根據(jù)一該訊號(hào)描述提供一第一使用者介面控制。
18.如權(quán)利要求16所述的計(jì)算機(jī)可讀取媒體,該計(jì)算機(jī)可讀取媒體程序更包含邏輯以執(zhí)行下列步驟根據(jù)該訊號(hào)關(guān)聯(lián)描述提供一第二使用者介面控制。
19.如權(quán)利要求16所述的計(jì)算機(jī)可讀取媒體,該計(jì)算機(jī)可讀取媒體程序更包含邏輯以執(zhí)行下列步驟根據(jù)該訊號(hào)關(guān)聯(lián)描述提供一第二使用者介面控制,該第二使用者控制允許標(biāo)示部分第一訊號(hào)、標(biāo)示部分第二訊號(hào)以及該部分第一訊號(hào)與該部分第二訊號(hào)之間的一間隔周期。
20.如權(quán)利要求16所述的計(jì)算機(jī)可讀取媒體,該計(jì)算機(jī)可讀取媒體程序更包含邏輯以執(zhí)行下列步驟根據(jù)該訊號(hào)關(guān)聯(lián)描述提供一第二使用者介面控制,該第二使用者介面控制允許標(biāo)定至少?gòu)?fù)數(shù)個(gè)訊號(hào)中的二個(gè)、一布爾運(yùn)算子與該輸出訊號(hào)之間的一連接關(guān)系。
全文摘要
本發(fā)明揭露了一種從波形圖產(chǎn)生硬件設(shè)計(jì)語言(HDL)觸發(fā)的系統(tǒng)與方法。該方法包含辨別第一訊號(hào)與第二訊號(hào)之間的時(shí)序關(guān)聯(lián);以及根據(jù)時(shí)序關(guān)聯(lián)產(chǎn)生HDL觸發(fā)。時(shí)序關(guān)聯(lián)包含部分的第一訊號(hào)、部分的第二訊號(hào)、以及兩者之間的間隔。其另一方法包含辨別波形圖中兩輸入訊號(hào)與一輸出訊號(hào)之間的組合關(guān)聯(lián);以及根據(jù)該關(guān)聯(lián)而產(chǎn)生HDL觸發(fā)。本發(fā)明還包含邏輯操作以執(zhí)行以下步驟接收復(fù)數(shù)個(gè)訊號(hào)描述,每一訊號(hào)描述形容其中一個(gè)訊號(hào);接收用以描述至少兩個(gè)訊號(hào)之間一時(shí)序或組合的關(guān)聯(lián)的一訊號(hào)關(guān)聯(lián)描述;產(chǎn)生包含上述關(guān)聯(lián)的一表述的波形圖;以及根據(jù)上述關(guān)聯(lián)產(chǎn)生一硬件設(shè)計(jì)語言的觸發(fā)。
文檔編號(hào)G06F17/50GK1815480SQ20051013417
公開日2006年8月9日 申請(qǐng)日期2005年12月27日 優(yōu)先權(quán)日2005年2月3日
發(fā)明者余大偉, 張征, 陳琦 申請(qǐng)人:威盛電子股份有限公司