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