專利名稱:非同步電路設(shè)計工具及計算機(jī)程序的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種非同步電路設(shè)計工具及計算機(jī)程序,用于驗證或邏輯合成由非同步電路設(shè)計語言描述的代碼。
背景技術(shù):
伴隨IC技術(shù)的飛速發(fā)展而來的電路規(guī)模的飛速增大,在數(shù)字電路設(shè)計上,一般使用基于HDL(Hardware Descrption Language硬件描述語言)的文本方式(text-base)的電路設(shè)計和驗證。電路規(guī)模的飛速的增大,使通過全局時鐘驅(qū)動整個電路的同步設(shè)計方法在極短的時間內(nèi)作為標(biāo)準(zhǔn)的方法得到了普及。構(gòu)成目前的商用設(shè)計環(huán)境的CAE/CAD工具、SSI·MSI部件、組件庫(Cell Library)等,幾乎都是只為同步設(shè)計用準(zhǔn)備。然而,最近,隨著半導(dǎo)體技術(shù)的細(xì)微化、VLSI芯片的大型化、以及時鐘頻率的增大,時鐘偏移(Clock Skew)的問題日益明顯。雖然隨著進(jìn)程的細(xì)微化,開關(guān)元件的延遲變小,但另一方面,配線延遲相對變大。其結(jié)果,橫貫芯片的整個時鐘體系的延遲,因芯片內(nèi)的位置不同而有很大的偏差,從而,無法保證被該偏差很大的全局時鐘信號驅(qū)動的元件的輸入輸出信號的相位的一致性。除了時鐘偏移的問題之外,消耗電力的增大也成為大的問題。伴隨著因細(xì)微化帶來的元件高速化、和電路規(guī)模的幾何級數(shù)增大,隨之而來的VLSI的消耗電力的幾何級數(shù)的增大成為大的問題。進(jìn)而,同步于同步電路的時鐘的輻射噪聲也是問題。作為解決這樣的時鐘偏移、消耗電力及輻射噪聲的問題的技術(shù),非同步設(shè)計越來越引人注目。
在設(shè)計非同步電路時有如下方法從電路圖輸入起,構(gòu)造上·分階段推進(jìn)設(shè)計的方法、和以文本方式使用設(shè)計語言來進(jìn)行設(shè)計·驗證的方法。前者的方法具有直觀性,適用于小規(guī)模電路的設(shè)計,但不適于進(jìn)行大規(guī)模電路的設(shè)計。特別是,對于必須進(jìn)行所設(shè)計的電路是否能發(fā)揮期望的功能的檢驗、伴隨設(shè)計變更的形式驗證、與軟件的結(jié)合性驗證、區(qū)塊之間的結(jié)合性驗證等最近的電路規(guī)模來說,是極不現(xiàn)實的方法。在后者的設(shè)計方法中,作為文本方式的設(shè)計語言,有OCCAM、CSP、Tangram等。OCCAM雖然作為Transputer用的并行編程語言使用,但被美國猶他大學(xué)的Brunvand副教授等使用在非同步電路的設(shè)計上。CSP,被加利福尼亞工科大學(xué)的Alain Martin副教授的小組,作為VLSI Programming Language(VLSI編程語言)使用。Tangram是被菲利浦研究所的Kees van Berkel作為基于CSP的獨(dú)立語言開發(fā)的非同步電路描述語言。邏輯合成,由Syntax-directed Translation實施這一點,與CSP的情形相同。由于這些設(shè)計語言和合成工具還未商業(yè)使用,因此能夠使用它們進(jìn)行非同步電路的設(shè)計的工程師,只限于研究所或大學(xué)等研究機(jī)構(gòu)。而且還存在以下問題,即目前的狀況下,用于將使用這些設(shè)計語言描述的設(shè)計變成最終的LSI的各種工具,也是各個機(jī)構(gòu)獨(dú)有的,還未提出業(yè)界標(biāo)準(zhǔn)的工具。
發(fā)明內(nèi)容
因此,本發(fā)明的課題在于提供一種非同步電路設(shè)計工具及計算機(jī)程序,使得熟悉工業(yè)界廣泛普及的同步電路設(shè)計的硬件描述語言的技術(shù)人員,能比較容易地進(jìn)行非同步電路設(shè)計。
為了解決上述課題,本發(fā)明的非同步電路設(shè)計工具,包含具有轉(zhuǎn)換機(jī)構(gòu)的翻譯機(jī),所述轉(zhuǎn)換機(jī)構(gòu)將由非同步電路設(shè)計語言描述的代碼轉(zhuǎn)換為同步電路設(shè)計用的硬件描述語言,所述非同步電路設(shè)計語言是附加有使非同步進(jìn)程間通信成為可能的基本要素的所述同步電路設(shè)計用的硬件描述語言。通過將由非同步電路設(shè)計語言描述的代碼轉(zhuǎn)換為同步電路設(shè)計用的硬件描述語言,能夠用同步電路用的市售仿真器對電路設(shè)計進(jìn)行功能驗證。
本發(fā)明的非同步電路設(shè)計工具,包含具有驗證機(jī)構(gòu)的專用仿真器,所述驗證機(jī)構(gòu)用于對非同步電路設(shè)計進(jìn)行功能驗證,所述非同步電路設(shè)計由非同步電路設(shè)計語言描述,所述非同步電路設(shè)計語言是附加有使非同步進(jìn)程間通信成為可能的基本要素的同步電路設(shè)計用的硬件描述語言。通過使用對由非同步電路設(shè)計語言描述的非同步電路設(shè)計進(jìn)行功能驗證的專用仿真器,即使不將非同步電路設(shè)計語言轉(zhuǎn)換為同步電路設(shè)計用的硬件描述語言,也能夠進(jìn)行功能驗證。
在構(gòu)成本發(fā)明的非同步電路設(shè)計工具的專用仿真器中,驗證機(jī)構(gòu)可以通過編譯方式將非同步電路設(shè)計語言轉(zhuǎn)換為中間語言之后進(jìn)行功能驗證,或者,也可以通過解釋方式逐次解釋非同步電路設(shè)計語言并同時進(jìn)行功能驗證。在大規(guī)模的電路設(shè)計中,優(yōu)選使用編譯方式;在小規(guī)模的電路設(shè)計中,優(yōu)選使用解釋方式。
本發(fā)明的非同步電路設(shè)計工具,包含具有邏輯合成機(jī)構(gòu)的邏輯合成工具,所述邏輯合成機(jī)構(gòu)通過邏輯合成代碼來生成網(wǎng)表,所述代碼由非同步電路設(shè)計語言描述,所述非同步電路設(shè)計語言是附加有使非同步進(jìn)程間通信成為可能的基本要素的同步電路設(shè)計用的硬件描述語言。通過邏輯合成由非同步電路設(shè)計語言描述的代碼來生成網(wǎng)表,能夠得到可組裝在實際電路中的電路連接信息。
在本發(fā)明的構(gòu)成非同步電路設(shè)計工具的邏輯合成工具中,優(yōu)選構(gòu)成為,還具有由同步電路設(shè)計用的組件、和非同步電路設(shè)計用的組件構(gòu)成的組件庫,邏輯合成機(jī)構(gòu)參照組件庫來生成網(wǎng)表。只需通過在同步電路設(shè)計用的組件之外添加非同步電路設(shè)計用的組件,就可以構(gòu)筑生成網(wǎng)表所需的組件庫。
在本發(fā)明的非同步電路設(shè)計語言中,作為用于進(jìn)程間通信的數(shù)據(jù)類型,優(yōu)選包含cport和channel。作為cport的屬性,優(yōu)選具有active/passive及input/output。例如,在語句“cport active input[7:0]A;”中,聲明cportA為active port,是8位的input port。
另外,在語句“channel[7:0]T;”中,聲明channel T為連接Sub-process的cport的8位寬的channel。
本發(fā)明的非同步電路設(shè)計語言中,作為用于進(jìn)程間通信的命令,優(yōu)選包含send、receive、sync以及probe。用語句指定進(jìn)行通信的cport和變量。
語句“send(A,x);receive(B,y);”,表示將變量x的數(shù)據(jù)通過cportA發(fā)送到對方的進(jìn)程中,并將通過cport B接收的數(shù)據(jù)存儲在變量y中。
另外,語句“sync(Z);”,表示使用cport Z取得同步,但不接收或發(fā)送數(shù)據(jù)。上述send、receive以及sync命令,在實際的電路中,起動2相至4相握手。
再有,命令probe是返回值的Function,例如,語句“probe(B);”,通過cport B,返回連接著cport B的channel上的立即值。通過使用probe命令,能夠在進(jìn)程間的握手開始之前,例如作為準(zhǔn)備、進(jìn)行任意的處理。
本發(fā)明的計算機(jī)程序是使計算機(jī)系統(tǒng)作為將代碼轉(zhuǎn)換為同步電路設(shè)計用的硬件描述語言的轉(zhuǎn)換機(jī)構(gòu)發(fā)揮功能的計算機(jī)程序,所述代碼由非同步電路設(shè)計語言描述,所述非同步電路設(shè)計語言是附加有使非同步進(jìn)程間通信成為可能的基本要素的所述同步電路設(shè)計用的硬件描述語言。通過執(zhí)行將由非同步電路設(shè)計語言描述的代碼轉(zhuǎn)換為同步電路設(shè)計用的硬件描述語言的計算機(jī)程序,能夠用同步電路用的市售仿真器對電路設(shè)計進(jìn)行功能驗證。
本發(fā)明的計算機(jī)程序是使計算機(jī)系統(tǒng)作為對非同步電路設(shè)計進(jìn)行功能驗證的驗證機(jī)構(gòu)發(fā)揮功能的計算機(jī)程序,所述非同步電路設(shè)計由非同步電路設(shè)計語言描述,所述非同步電路設(shè)計語言是附加有使非同步進(jìn)程間通信成為可能的基本要素的同步電路設(shè)計用的硬件描述語言。通過執(zhí)行對由非同步電路設(shè)計語言描述的非同步電路設(shè)計進(jìn)行功能驗證的計算機(jī)程序,即使不將非同步電路設(shè)計語言轉(zhuǎn)換為同步電路設(shè)計用的硬件描述語言,也能夠進(jìn)行功能驗證。
本發(fā)明的計算機(jī)程序使計算機(jī)系統(tǒng)作為驗證機(jī)構(gòu)發(fā)揮功能,是通過編譯方式將非同步電路設(shè)計轉(zhuǎn)換為中間語言之后進(jìn)行功能驗證的計算機(jī)程序,所述非同步電路設(shè)計由所述非同步電路設(shè)計語言描述,所述非同步電路設(shè)計語言是附加有使非同步進(jìn)程間通信成為可能的基本要素的同步電路設(shè)計用的硬件描述語言。在大規(guī)模的電路設(shè)計中,優(yōu)選使用編譯方式。
本發(fā)明的計算機(jī)程序使計算機(jī)系統(tǒng)作為驗證機(jī)構(gòu)發(fā)揮功能,是通過解釋方式逐次解釋非同步電路設(shè)計語言并同時進(jìn)行功能驗證的計算機(jī)程序,所述非同步電路設(shè)計由所述非同步電路設(shè)計語言描述,所述非同步電路設(shè)計語言是附加有使非同步進(jìn)程間通信成為可能的基本要素的同步電路設(shè)計用的硬件描述語言。在小規(guī)模的電路設(shè)計中,優(yōu)選使用解釋方式。
本發(fā)明的計算機(jī)程序,是使計算機(jī)系統(tǒng)作為邏輯合成機(jī)構(gòu)發(fā)揮功能的計算機(jī)程序,所述邏輯合成機(jī)構(gòu)通過邏輯合成代碼生成網(wǎng)表,所述代碼由非同步電路設(shè)計語言描述,所述非同步電路設(shè)計語言是附加有使非同步進(jìn)程間通信成為可能的基本要素的同步電路設(shè)計用的硬件描述語言。通過執(zhí)行邏輯合成由非同步電路設(shè)計語言描述的代碼來生成網(wǎng)表的計算機(jī)程序,能夠得到可組裝在實際電路中的電路連接信息。
在本發(fā)明的計算機(jī)程序中,作為基本要素,優(yōu)選包含例如probe命令,所述probe命令在非同步進(jìn)程間通信中,接收請求信號后,在發(fā)送確定信號之前執(zhí)行任意的處理。通過使用probe命令,能夠在開始進(jìn)程間的握手之前,進(jìn)行任意的處理。
在本發(fā)明的計算機(jī)程序中,作為基本要素,優(yōu)選包含例如使端口之間同步的sync命令。通過使用sync命令,能夠控制非同步進(jìn)程間通信。
本發(fā)明的計算機(jī)程序可以記錄在記錄媒體上。作為記錄媒體,例如優(yōu)選半導(dǎo)體存儲元件(ROM、RAM、EEPROM等)、磁記錄媒體(軟盤、磁卡等可以磁性讀取數(shù)據(jù)的記錄媒體)、光記錄媒體(CD-RAM、CD-ROM、DVD-RAM、DVD-ROM、DVD-R、PD盤、MD盤、MO盤等可以光學(xué)讀取數(shù)據(jù)的記錄媒體)。在這些記錄媒體上記錄信息的形式,沒有特別的限定。
圖1是使用業(yè)界標(biāo)準(zhǔn)Verilog HDL的典型的電路設(shè)計流程。
圖2是表示非同步電路中的進(jìn)程間通信的圖。
圖3是表示進(jìn)程之間的2相握手的圖。
圖4是表示進(jìn)程之間的4相握手的圖。
圖5是表示端口的屬性的組合的圖。
圖6是端口屬性和通道信號的說明圖。
圖7是2線編碼的說明圖。
圖8是2線編碼的說明圖。
圖9是握手電路的說明圖。
圖10是進(jìn)程A的非同步設(shè)計描述。
圖11是進(jìn)程B的非同步設(shè)計描述。
圖12是進(jìn)程C的非同步設(shè)計描述。
圖13是翻譯機(jī)的說明圖。
圖14是專用仿真器的說明圖。
圖15是進(jìn)程A的Verilog代碼轉(zhuǎn)換例。
圖16是握手電路的非同步設(shè)計描述。
圖17是握手電路的Verilog代碼轉(zhuǎn)換例。
圖18是2線式編碼的轉(zhuǎn)換方案。
圖19是2線式編碼器/解碼器的說明圖。
圖20是邏輯合成工具的說明圖。
圖21是進(jìn)程A的網(wǎng)表。
圖22是進(jìn)程A的電路圖。
圖23是reg-simpl連接圖。
圖24是bit-to-dual連接圖。
圖25是Q_elem連接圖。
圖26是Q_elem的輸入輸出信號的順序。
圖27是Muller-C元件連接圖。
圖28是使用了probe命令的非同步電路設(shè)計代碼。
圖29是Verilog代碼的編寫示例。
圖30是非同步進(jìn)程間通信的說明圖。
圖31是進(jìn)程之間的握手的說明圖。
圖32是使用了probe命令的非同步電路設(shè)計代碼。
圖33是Verilog代碼的編寫示例。
圖34是非同步進(jìn)程間通信的說明圖。
圖35是進(jìn)程之間的握手的說明圖。
圖36是使用了sync命令的非同步電路設(shè)計代碼。
圖37是Verilog代碼的編寫示例。
圖38是非同步進(jìn)程間通信的說明圖。
圖39是進(jìn)程之間的握手的說明圖。
圖40是使用了sync命令的非同步電路設(shè)計代碼。
圖41是Verilog代碼的編寫示例。
圖中10-翻譯機(jī),11-轉(zhuǎn)換機(jī)構(gòu),20-轉(zhuǎn)用仿真器,21-驗證機(jī)構(gòu),30-邏輯合成工具,31-邏輯合成機(jī)構(gòu),32-組件庫,40-非同步電路設(shè)計語言,50-Verilog代碼,60-網(wǎng)表。
具體實施例方式
以下,參照各圖對本發(fā)明的優(yōu)選實施方式進(jìn)行說明。
圖1表示使用業(yè)界標(biāo)準(zhǔn)Verilog HDL的典型的電路設(shè)計流程。在該圖中,單實線框表示設(shè)計描述或設(shè)計進(jìn)程(process)的輸入輸出數(shù)據(jù),雙實線框表示設(shè)計的進(jìn)程。設(shè)計規(guī)格(Design Specification),是關(guān)于相應(yīng)設(shè)計的規(guī)格描述。通過自然語言、表格、圖等直觀的形式,用自然的描述來對預(yù)先規(guī)定的規(guī)格進(jìn)行詳細(xì)的描述。此為產(chǎn)品的詳細(xì)規(guī)格書的基礎(chǔ)。行為描述(Behavioral Description),是關(guān)于相應(yīng)設(shè)計的動作水平的詳細(xì)描述。也可以使用Verilog HDL來進(jìn)行動作水平的描述,此時,可以使用VerilogHDL專用的仿真器,來驗證與設(shè)計規(guī)格的一致性。
雖然RTL描述(Register Transfer Level Description寄存器傳輸級描述)使用Verilog HDL進(jìn)行描述,但與動作描述獨(dú)立于體系(architecture)不同,RTL描述依存于體系。雖然動作描述不能成為邏輯合成的對象,但RTL描述是可以邏輯合成的描述。動作描述被提供給用于驗證設(shè)計規(guī)格是否被正確描述的仿真器,同時,被用于使用RTL描述的功能性檢驗和測試(Functional Verification & Testing)用的測試矢量(Test Vector)的生成。邏輯合成(Logic Synthesis)的輸出即門級網(wǎng)表(Gate-level Netlist),被與組件庫一同提供給基于功能性檢驗和測試的邏輯驗證。邏輯驗證之后,實施平面規(guī)劃自動布局布線(Floor Planning Automatic Place & Route)以后的物理驗證,從而獲得物理布局(Physical Layout)。觀察布局檢驗(LayoutVerification)的結(jié)果,根據(jù)需要對布局實施修正,之后執(zhí)行實現(xiàn)(Implementation),并實施芯片制作。
圖2表示非同步電路中的進(jìn)程間通信(握手通信)。所謂非同步電路,是指以各個進(jìn)程(最小功能電路)在不使用全局時鐘的前提下自律或他律地取得局部協(xié)調(diào)并同時進(jìn)行分散控制為目的,設(shè)計出的電路。同步設(shè)計中,由于命令取得、解碼、執(zhí)行(execution)、讀/寫等各操作,同步于全局時鐘來進(jìn)行,因此要想令電路動作高速化,就會產(chǎn)生時鐘延遲、時鐘偏移、時鐘抖動(Clock Jitter)等問題,而在非同步設(shè)計中,由于進(jìn)程彼此相互通過握手來自律或他律地進(jìn)行動作,因此不發(fā)生此類問題。各個進(jìn)程通過通信通道與其他的進(jìn)程連接,在局部的協(xié)調(diào)之下,自律或他律地實施事件驅(qū)動。通信通道在其兩端上,與端口連接。如該圖所示的例子中,進(jìn)程A具有端口a,進(jìn)程B具有端口b。進(jìn)程A和進(jìn)程B,在端口a和端口b上經(jīng)通信通道連接。通信通道,由Request(請求)信號、Acknowledge(確認(rèn))信號、以及數(shù)據(jù)信號構(gòu)成。各個進(jìn)程可以獨(dú)立于其他的進(jìn)程實施并行動作,無需實施處理等待直到其他進(jìn)程的處理結(jié)束。進(jìn)程,可以在希望處理的準(zhǔn)備結(jié)束的階段推進(jìn)處理。
圖3表示進(jìn)程間的2相握手(無歸0(Non Return to Zero)),在信號的上升沿或下降沿發(fā)送接收req/Acknowledge信號。例如,在上述的例子中,要從端口a向端口b發(fā)送req信號,將req信號從L電平上升到H電平、或從H電平下降到L電平。端口b通過檢測出req信號的上升沿或下降沿,檢測出從端口a向端口b發(fā)送req信號這一情況。要從端口b向端口a返回Acknowledge信號,將Acknowledge信號的電平從L電平上升到H電平、或從H電平下降到L電平即可。由此,結(jié)束握手。
圖4表示進(jìn)程間的4相握手(歸0(Return to Zero)),用信號電平發(fā)送接收req/Acknowledge信號。例如,在上述的例子中,要從端口a向端口b發(fā)送req信號,將req信號從L電平上升到H電平即可。端口b檢測出req信號躍遷到H電平這一情況后,檢測出req信號被發(fā)送這一情況。端口b為了向端口a返回Acknowledge信號,將Acknowledge信號的電平從L電平上升到H電平即可。確認(rèn)到Acknowledge信號的電平躍遷到H電平這一情況的端口a,將req信號的電平從H電平下降到L電平。確認(rèn)到req信號的電平從H電平躍遷到L電平這一情況的端口b,將Acknowledge信號的電平從H電平下降到L電平,并結(jié)束握手。在以下的記述中,為了便于說明,以進(jìn)程間通信采用4相握手為例進(jìn)行說明。
圖5表示端口屬性的組合。由于進(jìn)程自律或他律地進(jìn)行動作,因此所有的端口中附有“Active(主動)”或“Passive(被動)”的屬性1。進(jìn)而,如果考慮“Input(輸入)”或“Output(輸出)”這個屬性2,則共計可以分為4個種類的屬性。對置端口的屬性,被通信對象的端口屬性唯一地規(guī)定。例如,如圖6所示,在要求自律轉(zhuǎn)送數(shù)據(jù)的進(jìn)程A的端口屬性為“ActiveInput(主動輸入)”的情況下,他律轉(zhuǎn)送數(shù)據(jù)的進(jìn)程B的端口屬性為“PassiveOutput(被動輸出)”。通信通道中的Request信號和Acknowledge信號的發(fā)送接收,通過上述的2相握手、或4相握手進(jìn)行。在這種情況下,如果使用2線編碼(dual-rail encoding),則如圖7所示,能夠去掉Acknowledge信號線。如果,如圖8所示,在進(jìn)程A的端口為“Active Output”的情況下,由于Request信號線和數(shù)據(jù)信號線的方向相同,因此能夠去掉Request信號線。在非同步設(shè)計中,通過在控制部和數(shù)據(jù)路徑部的設(shè)計上使用2線編碼,無需插入明示的延遲元件,從而電路系統(tǒng)不易受延遲影響(DelayInsensitive)。本發(fā)明,對圖6所示的捆裝數(shù)據(jù)(Bundle Data)方式、和圖7或圖8所示的2線編碼方式均能夠?qū)?yīng)。
圖9表示多個進(jìn)程間的握手電路。各個進(jìn)程具有多個端口,構(gòu)成為能夠與多個進(jìn)程通信。在如該圖所示的握手電路中,進(jìn)程A在與進(jìn)程B通信的同時,還與進(jìn)程C進(jìn)行通信。進(jìn)程A對進(jìn)程B、C為Active(黑點所示),而進(jìn)程B對進(jìn)程A、C為Passive(白點所示)。進(jìn)程C對進(jìn)程A為Passive,對進(jìn)程B為Active。如果著眼于進(jìn)程A,由于端口Pa1的屬性為Active Input,因此如圖6所示,通過自發(fā)地發(fā)送Request信號起動握手,來從進(jìn)程B接收數(shù)據(jù)。另一方面,由于端口Pa2的屬性為Active Output,因此如圖8所示,通過自發(fā)地發(fā)送Request信號起動握手,來將數(shù)據(jù)發(fā)送給進(jìn)程C。
在本發(fā)明中,通過在Verilog HDL等硬件描述語言中附加使非同步進(jìn)程間通信成為可能的新的基本要素(Primitive),從而使用實現(xiàn)借助上述的握手電路溝通的進(jìn)程間通信的非同步電路設(shè)計語言,來進(jìn)行電路設(shè)計。圖10表示將圖9中所示的進(jìn)程A,通過使用本發(fā)明的非同步電路設(shè)計語言來進(jìn)行編寫(coding)的編寫示例?,F(xiàn)按照語法,對該圖中所示的編寫示例進(jìn)行說明。首先,在模塊聲明部中,聲明模塊名為“A”、輸入輸出信號名為“RESET,Pa1,Pa2”。在輸入輸出信號(端口)聲明部中,聲明1位的輸入信號“RESET”、和2位的變量(寄存器)“regA”。然后,通過由本發(fā)明的非同步電路設(shè)計語言新導(dǎo)入的聲明語句cport,聲明用于進(jìn)行非同步進(jìn)程間通信的端口名“Pa1,Pa2”及其屬性。端口Pa1的屬性是ActiveInput,端口Pa2的屬性是Active Output。通過receive(接受)命令從進(jìn)程B接收信號,通過send(發(fā)送)命令向進(jìn)程C發(fā)送信號。receive命令和send命令,是由本發(fā)明的非同步電路設(shè)計語言新導(dǎo)入的命令。參照always語句可知被編寫為,等待初始化信號RESET被解除,將經(jīng)端口Pa1接收的來自進(jìn)程B的數(shù)據(jù)代入變量regA,并經(jīng)端口Pa2發(fā)送給進(jìn)程C。如果將圖9所示的進(jìn)程B、C用非同步電路設(shè)計語言進(jìn)行編寫,則分別如圖11、圖12所示。
圖13是非同步電路設(shè)計工具100的功能方塊圖。非同步電路設(shè)計工具100,具有翻譯機(jī)(translator)10。翻譯機(jī)10具有轉(zhuǎn)換機(jī)構(gòu)11,其將用非同步電路設(shè)計語言描述的代碼40,轉(zhuǎn)換為同步電路設(shè)計用的硬件描述語言(例如,Verilog HDL或VHDL),其中所述非同步電路設(shè)計語言,是在同步電路設(shè)計用的硬件描述語言(例如,Verilog HDL或VHDL的子集或全集)中添加有使非同步進(jìn)程間通信成為可能的基本要素的語言。通過將代碼40轉(zhuǎn)換為同步電路設(shè)計用的硬件描述語言50,從而能夠使用同步電路用的市售仿真器驗證由非同步電路設(shè)計語言描述的電路設(shè)計。翻譯機(jī)10,通過將計算機(jī)程序在計算機(jī)系統(tǒng)上執(zhí)行來實現(xiàn),所述計算機(jī)程序使計算機(jī)系統(tǒng)發(fā)揮轉(zhuǎn)換機(jī)構(gòu)11的功能。
圖15表示該代碼轉(zhuǎn)換示例。雖然該圖的Verilog代碼對應(yīng)于圖7,但不是2線式編碼,為判斷包含數(shù)據(jù)總線的信號線是否為高阻抗的電路。實際的電路,被通過2線式編碼組裝。即,該Verilog代碼用于仿真器驗證,而不用于邏輯合成。在模塊聲明部中,聲明模塊名為“A”、輸入輸出信號名為“RESET,Pa1_req,Pa1_data,Pa2_data,Pa2_ack”。在輸入輸出信號聲明部中,聲明1位的輸入信號“RESET”、2位的變量“regA”、1位的輸出信號“Pa1_req”、2位的輸入數(shù)據(jù)線“Pa1_data”、2位的輸出數(shù)據(jù)線“Pa2_data”、以及1位的輸入信號線“Pa2_ack”。如上所述,由于在本實施方式中采用了4相握手,因此參照著圖4、圖7,來對圖15中的Verilog代碼進(jìn)行說明。
雖然Verilog代碼的首個begin-end區(qū)塊,采取了圖4中說明的步驟,但取代2線式編碼的方案,通過直接用單線式判斷是否為高阻抗,來判斷數(shù)據(jù)是否被輸出到信號線上。即,輸出信號Pa1_req相當(dāng)于圖7中的Request信號,輸入信號Pa1_data相當(dāng)于Acknowledge信號或數(shù)據(jù)信號。首先,通過force命令將Pa1_req設(shè)成High(高電平),來送出Request,直到數(shù)據(jù)被輸出到輸入數(shù)據(jù)線Pa1_data上為止、即高阻抗消失為止實施等待。若數(shù)據(jù)被輸出到輸入數(shù)據(jù)線Pa1_data上,則被取入到內(nèi)部寄存器regA中。第2個begin-end區(qū)塊采取圖8所說明的步驟,輸出數(shù)據(jù)線Pa2_data相當(dāng)于Request信號或數(shù)據(jù)信號,輸入信號線Pa2_ack相當(dāng)于Acknowledge信號。首先,通過force命令將regA的內(nèi)容輸出到輸出數(shù)據(jù)線Pa2_data上,直到Pa2_ack不為高阻抗為止實施等待。在接收到Pa2_ack后,將輸出數(shù)據(jù)線Pa2_data置為高阻抗后開放,等待Pa2_ack變?yōu)楦咦杩?,結(jié)束握手。
圖16表示用非同步電路設(shè)計語言,編寫由圖10至圖12所描述的進(jìn)程A、B及C構(gòu)成的圖9的握手電路得到的編寫示例。通過用本發(fā)明的非同步電路設(shè)計語言新導(dǎo)入的聲明語句channel,將連接進(jìn)程A、B及C的2位的3條通道聲明為CH1、CH2及CH3。各個進(jìn)程的阻抗,通過這些通道連接。如果通過上述翻譯機(jī)10,將該編寫示例轉(zhuǎn)換為Verilog代碼,則得到圖17所示的Verilog代碼。如該圖的Verilog代碼所示,圖16的通道CH(n=1,2,3),被展開為2種配線(wire)CHn_ctrl(n=1,2,3)及CHn_data(n=1,2,3)。進(jìn)程A的端口Pa1_req連接在配線CH1_ctrl上,端口Pa1_data連接在配線CH1_data上。同樣,進(jìn)程C的端口Pc3_ack連接在配線CH3_ctrl上,端口Pc3_data連接在配線CH3_data上。
還有,雖然在上述的說明中,舉例表示了將由非同步電路設(shè)計語言描述的代碼轉(zhuǎn)換為同步電路設(shè)計語言之后,用同步電路用的市售仿真器進(jìn)行功能驗證的情況,但如圖14所示,也可以通過具有專用仿真器20的非同步電路設(shè)計工具100來進(jìn)行功能驗證。專用仿真器20,作為對由非同步電路設(shè)計語言描述的代碼40的非同步電路設(shè)計實施功能驗證的驗證機(jī)構(gòu)21發(fā)揮功能,其中所述非同步電路設(shè)計語言,是在同步電路設(shè)計用的硬件描述語言中添加有使非同步進(jìn)程間通信成為可能的基本要素的語言。作為驗證機(jī)構(gòu)21,可通過編譯方式將非同步電路設(shè)計語言轉(zhuǎn)換為中間語言后進(jìn)行功能驗證,或可通過解釋方式將非同步電路設(shè)計語言逐次解釋并同時進(jìn)行功能驗證。專用仿真器20,通過將計算機(jī)程序在計算機(jī)系統(tǒng)上執(zhí)行來實現(xiàn),所述計算機(jī)程序使計算機(jī)系統(tǒng)發(fā)揮驗證機(jī)構(gòu)21的功能。
通過本發(fā)明的邏輯合成工具,將非同步電路設(shè)計語言的代碼轉(zhuǎn)換為能夠組裝的網(wǎng)表(電路的連接信息)。如上述已經(jīng)說明的那樣,進(jìn)程A的翻譯機(jī)10的輸出列表中難以組裝。其原因在于,通過檢測出數(shù)據(jù)信號線的高阻抗來檢測出數(shù)據(jù)的到來,在實際的電路中不實用。以2線式編碼(Dual-rail Encoding)方式下的組裝為前提,對本發(fā)明的邏輯合成工具進(jìn)行說明。圖18是2線式編碼的編寫方案的一例。圖19是在4位的數(shù)據(jù)轉(zhuǎn)送中使用2線式編碼方式的情況的電路圖。為了便于說明,著眼于d0位進(jìn)行說明。首先,由于最初沒有輸出具有任何意義的數(shù)據(jù),因此,Send信號為Low,所有的數(shù)據(jù)線對(Pair)為“{0,0}”。將欲發(fā)送給d0的數(shù)據(jù)、例如1輸出之后,若Send信號變?yōu)镠igh,則有“{d0.0,d0.1}={0,1}”。配備在接收側(cè)的各個數(shù)據(jù)線對上的解碼器(4位的情況下為4個解碼器),根據(jù)圖18中的方案檢測出數(shù)據(jù)的到來,并獲取數(shù)據(jù)。為了等待來自各位所對應(yīng)的解碼器的到達(dá)信號全部到齊,使用Muller-C元件。在向Muller-C元件的輸入都為High的時刻,Receive信號變?yōu)镠igh,4位數(shù)據(jù)到達(dá)。
上述的非同步電路設(shè)計語言,如圖20所示,被通過具有邏輯合成工具30的非同步電路設(shè)計工具100,轉(zhuǎn)換為能夠組裝的Verilog網(wǎng)表。邏輯合成工具30具有邏輯合成機(jī)構(gòu)31,其邏輯合成由非同步電路設(shè)計語言描述的代碼40來生成網(wǎng)表60,其中所述非同步電路設(shè)計語言,是在同步電路設(shè)計用的硬件描述語言中添加有使非同步進(jìn)程間通信成為可能的基本要素的語言。邏輯合成工具30,還具有由同步電路設(shè)計用的組件和非同步電路設(shè)計用的組件構(gòu)成的組件庫32。邏輯合成機(jī)構(gòu)31,參照組件庫32生成網(wǎng)表。邏輯合成工具30,通過將計算機(jī)程序在計算機(jī)系統(tǒng)上執(zhí)行來實現(xiàn),所述計算機(jī)程序使計算機(jī)系統(tǒng)發(fā)揮邏輯合成機(jī)構(gòu)31的功能。
圖21是通過邏輯合成工具30轉(zhuǎn)換圖10所示的進(jìn)程A的編寫示例所得到的網(wǎng)表。參照該網(wǎng)表的聲明語句可知,圖10的列表中描述的2位的端口,為了進(jìn)行2線式編碼,被展開為“input[3:0]Pa1_d;output[3:0]Pa2_d;”后,轉(zhuǎn)換為4位的端口。將對應(yīng)于該圖的列表的電路圖,表示在圖22中。在說明該圖所示的電路之前,對該電路中使用的各個組件進(jìn)行說明。這些組件屬于邏輯合成工具30的組件庫32。
圖23表示reg-simple連接圖。該組件是1位數(shù)據(jù)的2線式編碼方式中的解碼器?!癲0,d1”為1位的輸入數(shù)據(jù)的2線,根據(jù)圖18的方案解碼的數(shù)據(jù)被設(shè)置在內(nèi)部寄存器中,同時被輸出到輸出線“Q,Q_”上。此時,表示數(shù)據(jù)的到達(dá)的put信號變?yōu)镠igh。圖24表示bit_to_dual連接圖。在send信號變?yōu)镠igh時,對輸入信號D進(jìn)行2線式編碼后輸出為輸出信號“d0,d1”。圖25表示Q_element連接圖。該組件執(zhí)行圖26所示的順序。圖27表示Muller-C元件連接圖。在A、B均為High時,Z變?yōu)镠igh;在A、B均為為Low時,Z變?yōu)長ow。此外的情況下,Z的輸出不變化。
在此,對圖22所示的進(jìn)程A的電路圖進(jìn)行說明。虛線圍住的部分是通過邏輯合成工具30生成的連接圖,從邏輯合成工具30所附帶的組件庫32中選取必要的組件,來構(gòu)成圖20所示的列表中描述的電路。虛線上的圓圈,表示對應(yīng)的信號線是由聲明語句cport指定的輸入輸出端口。接著,對該電路的動作順序進(jìn)行說明。雖然在圖10的列表中沒有明示使用初始化信號RESET,但在邏輯合成的輸出即圖21的列表中將其插入。最初,由于RESET信號為High,因此Q_element的1c輸入X8_c為Low,處于圖26所示的順序的初始狀態(tài)。由于RESET變?yōu)長ow后,Pa2_c也為Low,因此,X8_c變?yōu)镠igh(t1)。由于這在圖26中表示輸入1c變?yōu)镠igh,因此開始該圖所示的順序。如該圖所示,接受輸入1c躍遷為High這一情況后,輸出rc躍遷為High(t2)。這在圖22中,表示Pa1_c躍遷為High。Pa1_c是對進(jìn)程B(參照圖9)的Request信號。
進(jìn)程B接收該Request信號后,將2線式編碼的數(shù)據(jù)送出到Pa1_d[n](n=0,1,2,3)。該數(shù)據(jù)被解碼后,作為regA
及regA[1]鎖存在reg-simple內(nèi)部(“regA
_”及“regA[1]_”為反向輸出)。同時,在此定時(timing),確認(rèn)數(shù)據(jù)的接收的X1_d及X2_d變?yōu)镠igh,并被輸入到Muller-C元件中。由于因X1_d及X2_d的數(shù)據(jù)線的長度的偏差等,數(shù)據(jù)到達(dá)的定時也存在偏差,因此X1_d及X2_d一起變?yōu)镠igh的定時不僅限于同時。在X1_d及X2_d一起變?yōu)镠igh的時刻,Muller-C元件的輸出X0_d變?yōu)镠igh(t3)。圖22的X0_d在圖26中相當(dāng)于rd,接受到其躍遷為High這一情況后,Q_elem將rc、即圖22的Pa1_c設(shè)為Low(t4)。進(jìn)程B接受Pa1_c躍遷為Low這一情況后,檢測出收到從進(jìn)程B送出到進(jìn)程A的數(shù)據(jù)這一情況,為了中止數(shù)據(jù)的送出,將Null輸出到數(shù)據(jù)線上。由于reg-simple在數(shù)據(jù)線上被輸出Null的時刻,將X1_d及X2_d設(shè)為Low,因此,Muller-C元件在X1_d及X2_d一起變?yōu)長ow的時刻,將X0_d設(shè)為Low(t5)。由此,結(jié)束與進(jìn)程B的握手。
由于圖22的X0_d變?yōu)長ow,在圖26中表示rd躍遷為Low,因此Q_elem將ld、即圖22的X8_dd設(shè)為High(t6)。X8_dd是bit-to-dual的send信號。bit-to-dual對保持在reg-simple中的數(shù)據(jù)regA
及regA[1]進(jìn)行2線式編碼后送出到Pa2_d[n](n=0,1,2,3)。由于該數(shù)據(jù)送出,對進(jìn)程C(參照圖9)來說是來自進(jìn)程A的Request,因此進(jìn)程C接收該Request后,將作為Acknowledge信號的Pa2_c設(shè)為High。Pa2_c變?yōu)镠igh后,NOR的輸出即X8_c(Q_elem的輸入信號1c)變?yōu)長ow(t7)。Q_elem接受輸入1c躍遷為Low這一情況,使作為輸出信號1d(bit-to-dual的send信號)的X8_dd躍遷為Low(t8)。bit-to-dual接受send信號躍遷為Low這一情況,中止被2線式編碼的數(shù)據(jù)的送出,并將Null輸出到數(shù)據(jù)線Pa2_d[n](n=0,1,2,3)上。進(jìn)程C通過接收Null,檢測出Acknowledge被進(jìn)程A接收這一情況,并將作為Acknowledge信號的Pa2_c躍遷為High。由此,結(jié)束與進(jìn)程C的順序,但如圖10的列表所示,由于設(shè)為always wait(!RESET),因此只要RESET信號不為High,就重復(fù)與進(jìn)程B及進(jìn)程C的非同步通信。
如果使用本發(fā)明的probe及sync,則能夠進(jìn)一步簡單地構(gòu)成更有效率的電路。首先,在說明該優(yōu)選實施例之前,將添加到Verilog HDL的子集(subset)中的通信用基本要素總結(jié)如下。
1.channel為新添加的data type(數(shù)據(jù)類型)。連接下述cport。
2.cport為新添加的data type。有以下6種類型。
active input主動輸入端口active output 主動輸出端口passive input 被動輸入端口passive output 被動輸出端口active sync 主動同步端口passive sync被動同步端口3.send/receive/sync/probe 為新添加的通信用命令。
send發(fā)送從變量讀取的數(shù)據(jù)的命令receive 接收數(shù)據(jù)和往變量中寫入的命令sync不伴隨數(shù)據(jù)的發(fā)送接收,在端口間取得同步的命令。
4.probe 新添加的Function(函數(shù))。
probe 為返回連接指定的cport的channel上的立即值的Function。
首先,對具有probe function(探測函數(shù))的實施例進(jìn)行說明。在經(jīng)由passive端口的send或send的握手中,通過來自對置端口的Request信號的到來,開始發(fā)送或接收的順序。然而,在實際的電路中,有時并非通過Request信號的到來而立即開始握手,而是例如等待Request信號,首先實施其他處理,之后實施發(fā)送或接收的握手。通過新定義的命令,能夠等待來自對置端口的Request信號,首先實施其他處理,之后實施發(fā)送或接收的握手。
圖28是用非同步電路設(shè)計語言描述probe的使用例1的編寫示例。在該圖所示的編寫例中,“…”表示任意的語句。在模塊聲明部中,聲明模塊名為“M”、輸入輸出信號名為“P”。在輸入輸出信號(端口)聲明部中,聲明端口P為8位的cport passive output。在if語句中描述為,在probe(P)命令所返回的值為1位的1的情況下,執(zhí)行接下來的語句(在if語句和send(P,a)之間的“…”)。send(P,a),是用于將從變量a讀取的值通過端口P發(fā)送到對置端口的命令。
圖29是將probe的使用例1轉(zhuǎn)換為Verilog代碼的代碼轉(zhuǎn)換例。在模塊聲明部中,聲明模塊名為“M”、輸入輸出信號名為“P_ctrl,P_data”。在輸入輸出信號聲明部中,聲明1位的輸入信號P_ctrl、和8位的輸出信號P_data。如果圖示該狀態(tài),則如圖30所示。進(jìn)程M、N通過各自的端口P、Q連接。端口P是passive output,端口Q是active input。端口P通過P_ctrl從端口Q接收到Request信號后,通過P_data發(fā)送數(shù)據(jù)(Acknowledge信號)。在此,返回圖29的說明,if語句被編碼為,在P_ctrl的值為1位的1的情況下,執(zhí)行接下來的語句(if語句和begin之間的“…”)。begin~end語句,是將send(P,a)轉(zhuǎn)換為Verilog代碼的語句。參照圖31對該begin~end語句進(jìn)行說明。首先,等待P_ctrl變?yōu)椴皇歉咦杩?,?zhí)行probe命令之后,將變量a的值輸出到P_data中。接著,等待P_ctrl變?yōu)楦咦杩?,并開放P_data(4相握手)。在此,P_ctrl相當(dāng)于Request信號,P_data相當(dāng)于Acknowledge信號。這樣,通過使用probe命令,能夠從對置端口接收到Request信號后,在向該對置端口返回Acknowledge信號之前,執(zhí)行任意的語句“…”。
圖32是用非同步電路設(shè)計語言描述probe的使用例2的編寫示例。在模塊聲明部中,聲明模塊名為“M”、輸入輸出信號名為“P”。在輸入輸出信號聲明部中,聲明端口P為8位的cport passive input這一情況。在wait語句中描述為,在probe(P)命令所返回的值為8位的規(guī)定值的情況下(不是高阻抗的情況下),執(zhí)行根據(jù)probe(P)命令所返回的值決定的case語句的內(nèi)容“…”。receive(P,a),是用于將通過端口P接收到的值代入到變量a中的命令。
圖33是將probe的使用例2轉(zhuǎn)換為Verilog代碼的代碼轉(zhuǎn)換例。在模塊聲明部中,聲明模塊名為“M”、輸入輸出信號名為“P_ctrl,P_data”。在輸入輸出信號聲明部中,聲明8位的輸入信號P_data、和1位的輸出信號P_ctrl。如果圖示該狀態(tài),則如圖34所示。進(jìn)程M、N通過各自的端口P,Q連接。端口P是passive input,端口Q是active output。端口P通過P_data從端口Q接收到數(shù)據(jù)(Request信號)后,通過P_ctrl返回Acknowledge信號。在此,返回圖33的說明,wait語句被描述為,在P_data的值為8位的規(guī)定值的情況下(不是高阻抗的情況下),執(zhí)行根據(jù)P_data的值決定的case語句的內(nèi)容“…”。begin~end語句,是將receive(P,a)轉(zhuǎn)換為Verilog代碼后得到的。參照圖35對該begin~end語句進(jìn)行說明。首先,等待P_datal變?yōu)榉歉咦杩?,?zhí)行probe命令后,將輸出到P_data的值代入到變量a中。接著,將1位的1輸出到P_ctrl,等待P_data變?yōu)楦咦杩购?,開放P_ctrl(4相握手)。在此,P_data相當(dāng)于Request信號,P_ctrl相當(dāng)于Acknowledge信號。這樣,通過使用probe命令,能夠從對置端口接收到Request信號之后,在向該對置端口返回Acknowledge信號之前,執(zhí)行由case語句指定的任意的內(nèi)容“…”。
圖36是將sync的使用例1通過非同步電路設(shè)計語言進(jìn)行描述的編寫示例。在模塊聲明部中,聲明模塊名為“M”、輸入輸出信號名為“P”。在輸入輸出信號聲明部中,聲明端口P為cport passive sync。sync(P),是用于通過端口P取得端口之間的同步的命令。
圖37是將sync的使用例1轉(zhuǎn)換為Verilog代碼的代碼轉(zhuǎn)換例。在模塊聲明部中,聲明模塊名為“M”、輸入輸出信號名為“P_ctrl,P_data”。在輸入輸出信號聲明部中,聲明輸入信號P_ctrl、和輸出信號P_data。如果圖示該狀態(tài),則如圖38所示。進(jìn)程M、X,通過端口P、Q連接。端口P為passive sync,而端口Q為active sync。而且,進(jìn)程M、N通過端口R、S連接。端口R為active input,端口S為passive output。端口P、Q,不進(jìn)行數(shù)據(jù)的接收發(fā)送地在端口間取得同步。端口R、S通過握手來收發(fā)數(shù)據(jù)。在此,返回圖37的說明,begin~end語句,是將sync(P)轉(zhuǎn)換為Verilog代碼得到的。該begin~end語句中,首先,等待P_ctrl變?yōu)榉歉咦杩?,向P_data輸出1位的1。接著,等待P_ctrl變?yōu)楦咦杩?,開放P_data。由此,能夠使端口P、Q之間同步。
參照圖38及圖39,對sync命令的使用例進(jìn)行說明。在此例示的是,進(jìn)程X通過端口P、Q控制進(jìn)程M、N之間的通信的步驟。進(jìn)程M,通過P_ctrl變?yōu)榉歉咦杩梗瑱z測到來自端口Q的Request信號的到來后,將請求進(jìn)程N(yùn)轉(zhuǎn)送數(shù)據(jù)的Request信號輸出到R_ctrl。于是,數(shù)據(jù)被從進(jìn)程N(yùn)輸出到R_data。該數(shù)據(jù)是對Request信號的Acknowledge信號。進(jìn)程M接受數(shù)據(jù)被輸出到R_data這一情況,對R_ctrl求非(negate)。進(jìn)程M接收完來自R_data的數(shù)據(jù)后,將Acknowledge信號輸出到P_data。于,P_ctrl被求非。這樣,通過使用sync命令,也能控制進(jìn)程之間的通信。
圖40,是將sync的使用例2通過非同步電路設(shè)計語言描述的編寫示例。在模塊聲明部中,聲明模塊名為“M”、輸入輸出信號名為“P”。在輸入輸出信號聲明部中,聲明端口P為cport active sync。if語句被描述為,在probe(P)的返回值為1位的1的情況下,執(zhí)行if語句和sync(P)之間的內(nèi)容“…”。雖然本例表示使用probe命令的例子,但在使用sync命令的前提下,if語句并非必須,可以省略。
圖41是將sync的使用例2轉(zhuǎn)換為Verilog代碼的代碼轉(zhuǎn)換例。在模塊聲明部中,聲明模塊名為“M”、輸入輸出信號名為“P_ctrl,P_data”。在輸入輸出信號聲明部中,聲明輸入信號P_data、和輸出信號P_ctrl。if語句被編寫為,在P_ctrl的值為1位的1的情況下,執(zhí)行接下來的語句(if語句和begin之間的“…”)。begin~end語句,是將sync(P)轉(zhuǎn)換為Verilog代碼得到的。在該begin~end語句中,首先,向P_ctrl輸出1位的1,等待P_data變?yōu)榉歉咦杩?。P_data變?yōu)榉歉咦杩购?,開放P_ctrl,并等待P_data被求非。
根據(jù)本實施方式,能夠提供一種環(huán)境,使得熟悉業(yè)界標(biāo)準(zhǔn)的HDL(Verilog HDL及VHDL)的技術(shù)人員,可以比較容易地設(shè)計非同步電路。另外,由此,能夠超越伴隨半導(dǎo)體進(jìn)程的細(xì)微化的進(jìn)展而顯著化的同步電路設(shè)計的界限(電力問題、時鐘偏移問題等)的問題,從而相比以往,能夠令進(jìn)程所提供的能力,以更短時間、更低成本獲得更高可靠性·驗證性。再有,由于非同步電路的移植性高,因此能夠?qū)⑼ㄟ^本發(fā)明開發(fā)的非同步電路設(shè)計技術(shù)作為IP反復(fù)活用,因此易于應(yīng)對技術(shù)人員不足或短期的開發(fā)。再有,根據(jù)本實施方式,能夠提供電磁輻射極少的、用于將非同步電路開發(fā)為各種產(chǎn)品的環(huán)境。本發(fā)明的非同步電路設(shè)計技術(shù),能夠應(yīng)用于超低耗電VLSI及安裝它的半成品或成品(PDA、智能卡、電子書等)、以及使用TFT技術(shù)的LSI及使用它的半成品或成品。具體來說,可以應(yīng)用于可穿戴機(jī)器、玩具、家用防盜傳感器及相關(guān)機(jī)器、RFID等不搭載電池的電子機(jī)器、汽車搭載機(jī)器、醫(yī)療機(jī)器、軍需產(chǎn)品等。
權(quán)利要求
1.一種非同步電路設(shè)計工具,其特征在于,包含具有轉(zhuǎn)換機(jī)構(gòu)的翻譯機(jī),所述轉(zhuǎn)換機(jī)構(gòu)將由非同步電路設(shè)計語言描述的代碼轉(zhuǎn)換為同步電路設(shè)計用的硬件描述語言,所述非同步電路設(shè)計語言是附加有使非同步進(jìn)程間通信成為可能的基本要素的所述同步電路設(shè)計用的硬件描述語言。
2.一種非同步電路設(shè)計工具,其特征在于,包含具有驗證機(jī)構(gòu)的專用仿真器,所述驗證機(jī)構(gòu)用于對非同步電路設(shè)計進(jìn)行功能驗證,所述非同步電路設(shè)計由非同步電路設(shè)計語言描述,所述非同步電路設(shè)計語言是附加有使非同步進(jìn)程間通信成為可能的基本要素的同步電路設(shè)計用的硬件描述語言。
3.根據(jù)權(quán)利要求2所述的非同步電路設(shè)計工具,其特征在于,作為所述驗證機(jī)構(gòu),包含通過編譯方式將所述非同步電路設(shè)計語言轉(zhuǎn)換為中間語言之后進(jìn)行功能驗證的專用仿真器。
4.根據(jù)權(quán)利要求2所述的非同步電路設(shè)計工具,其特征在于,作為所述驗證機(jī)構(gòu),包含通過解釋方式逐次解釋所述非同步電路設(shè)計語言并同時進(jìn)行功能驗證的專用仿真器。
5.一種非同步電路設(shè)計工具,其特征在于,包含具有邏輯合成機(jī)構(gòu)的邏輯合成工具,所述邏輯合成機(jī)構(gòu)通過邏輯合成代碼來生成網(wǎng)表,所述代碼由非同步電路設(shè)計語言描述,所述非同步電路設(shè)計語言是附加有使非同步進(jìn)程間通信成為可能的基本要素的同步電路設(shè)計用的硬件描述語言。
6.根據(jù)權(quán)利要求5所述的非同步電路設(shè)計工具,其特征在于,所述邏輯合成工具,還具有由同步電路設(shè)計用的組件、和非同步電路設(shè)計用的組件構(gòu)成的組件庫,所述邏輯合成機(jī)構(gòu)參照所述組件庫生成所述網(wǎng)表。
7.根據(jù)權(quán)利要求1所述的非同步電路設(shè)計工具,其特征在于,所述非同步電路設(shè)計語言的基本要素,作為數(shù)據(jù)類型包含cport和channel,作為修飾cport的屬性包含active/passive及input/output,作為命令包含send、receive、sync,作為Function包含probe。
8.一種計算機(jī)程序,其特征在于,使計算機(jī)系統(tǒng)作為將代碼轉(zhuǎn)換為同步電路設(shè)計用的硬件描述語言的轉(zhuǎn)換機(jī)構(gòu)發(fā)揮功能,所述代碼由非同步電路設(shè)計語言描述,所述非同步電路設(shè)計語言是附加有使非同步進(jìn)程間通信成為可能的基本要素的所述同步電路設(shè)計用的硬件描述語言。
9.一種計算機(jī)程序,其特征在于,使計算機(jī)系統(tǒng)作為對非同步電路設(shè)計進(jìn)行功能驗證的驗證機(jī)構(gòu)發(fā)揮功能,所述非同步電路設(shè)計由非同步電路設(shè)計語言描述,所述非同步電路設(shè)計語言是附加有使非同步進(jìn)程間通信成為可能的基本要素的同步電路設(shè)計用的硬件描述語言。
10.一種計算機(jī)程序,其特征在于,使計算機(jī)系統(tǒng)作為驗證機(jī)構(gòu)發(fā)揮功能,所述驗證機(jī)構(gòu)通過編譯方式將非同步電路設(shè)計轉(zhuǎn)換為中間語言之后進(jìn)行功能驗證,所述非同步電路設(shè)計由非同步電路設(shè)計語言描述,所述非同步電路設(shè)計語言是附加有使非同步進(jìn)程間通信成為可能的基本要素的同步電路設(shè)計用的硬件描述語言。
11.一種計算機(jī)程序,其特征在于,使計算機(jī)系統(tǒng)作為驗證機(jī)構(gòu)發(fā)揮功能,通過解釋方式逐次解釋非同步電路設(shè)計語言并同時進(jìn)行功能驗證,所述非同步電路設(shè)計由所述非同步電路設(shè)計語言描述,所述非同步電路設(shè)計語言是附加有使非同步進(jìn)程間通信成為可能的基本要素的同步電路設(shè)計用的硬件描述語言。
12.一種計算機(jī)程序,其特征在于,使計算機(jī)系統(tǒng)作為邏輯合成機(jī)構(gòu)發(fā)揮功能,所述邏輯合成機(jī)構(gòu)通過邏輯合成代碼生成網(wǎng)表,所述代碼由非同步電路設(shè)計語言描述,所述非同步電路設(shè)計語言是附加有使非同步進(jìn)程間通信成為可能的基本要素的同步電路設(shè)計用的硬件描述語言。
全文摘要
一種非同步電路設(shè)計工具,包含具有轉(zhuǎn)換機(jī)構(gòu)的翻譯機(jī),所述轉(zhuǎn)換機(jī)構(gòu)將由非同步電路設(shè)計語言描述的代碼轉(zhuǎn)換為同步電路設(shè)計用的硬件描述語言,所述非同步電路設(shè)計語言是附加有使非同步進(jìn)程間通信成為可能的基本要素的所述同步電路設(shè)計用的硬件描述語言。通過將由非同步電路設(shè)計語言描述的代碼,轉(zhuǎn)換為同步電路設(shè)計用的硬件描述語言,能夠用同步電路用的市售仿真器對電路設(shè)計進(jìn)行功能驗證。從而,能夠提供一種非同步電路設(shè)計工具,使得熟悉工業(yè)界廣泛普及的同步電路設(shè)計的硬件描述語言的技術(shù)人員,能夠比較容易地進(jìn)行非同步電路設(shè)計。
文檔編號G06F9/44GK1808451SQ20061000614
公開日2006年7月26日 申請日期2006年1月19日 優(yōu)先權(quán)日2005年1月19日
發(fā)明者唐木信雄, 李德群 申請人:精工愛普生株式會社