TWI315046B - Designing method and program product of asynchronous circuit - Google Patents

Designing method and program product of asynchronous circuit Download PDF

Info

Publication number
TWI315046B
TWI315046B TW094142578A TW94142578A TWI315046B TW I315046 B TWI315046 B TW I315046B TW 094142578 A TW094142578 A TW 094142578A TW 94142578 A TW94142578 A TW 94142578A TW I315046 B TWI315046 B TW I315046B
Authority
TW
Taiwan
Prior art keywords
circuit
code
design
synchronous
language
Prior art date
Application number
TW094142578A
Other languages
English (en)
Other versions
TW200632702A (en
Inventor
Nobuo Karaki
Tak Kwan Lee
Original Assignee
Seiko Epson Corporatio
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corporatio filed Critical Seiko Epson Corporatio
Publication of TW200632702A publication Critical patent/TW200632702A/zh
Application granted granted Critical
Publication of TWI315046B publication Critical patent/TWI315046B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/35Delay-insensitive circuit design, e.g. asynchronous or self-timed

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

(1) 1315046 ' 九、發明說明 【發明所屬之技術領域】 本發明係有關於爲了將藉由非同步電路設計語言所撰 寫而成的程式碼加以驗證或邏輯合成所需之非同步電路設 . 計工具及電腦程式。 【先前技術】 ® 隨著1C技術的急速發達所致之電路規模的飛躍性增 大,數位電路設計中使用 HDL(Hardware Description Language)所致之文字基礎(text base)的電路設計和驗證已 是一般普遍的狀況。電路規模的飛躍性增大,係使得藉由 總體時脈(global clock)來驅動全電路之同步設計手法,在 極短時間內就成爲標準的手法而普及。構成現在商用設計 環境的C AE/CAD工具、SSI . MSI零件、功能電路胞資料 庫等,幾乎都是只爲了同步設計用而準備。但是’最近’ m W 隨著半導體技術的微細化、VLSI晶片的大型化、時脈頻 - 率的增大之演進,時脈扭曲(Clock Skew)的問題也逐漸顯 _ 現化。隨著製程的微細化,開關元件的延遲雖然變小’但 其反面而言配線的延遲就相對地變大。其結果爲’橫斷晶 片的時脈全體系的延遲,係隨著晶片內的場所不同而有很 大的參差,受到該很大參差之總體時脈訊號所驅動的元件 的輸出入訊號的相位之一貫性就已經無法保證了。除了時 脈扭曲的問題,消費電力之增大也是一個很大的問題。隨 著微細化的元件高速化與電路規模之幾何級數地增大, -4- (2) 1315046 VLSI的消費電力呈幾何級數地增大,已經變成很大的問 題。甚至,同步於同步電路之時脈的輻射雜訊也是個問題 。非同步設計,係以能夠解決這類時脈扭曲、消費電力及 輻射雜訊之問題的技術之姿而正受到矚目。 【發明內容】 〔發明所欲解決之課題〕 在設計非同步電路時,有從電路圖輸入開始而構造性 .階層性地進行設計之手法,和以文字基礎而使用設計語 言而進行設計·驗證的方法。前者的手法雖然較爲直觀, 適用於小規模電路之設計,但不適合於大規模電路之設計 。尤其是,所設計之電路是否發揮所望機能的驗證、伴隨 設計變更之正規驗證、與軟體之結合驗證、區塊間結合驗 證等是爲必須的最近之電路規模加以考量時,這是非常不 實際的手法。後者的設計手法中,做爲文字基礎的設計語 言’有 OCCAM、CSP、Tangram 等。OCCAM,雖然原本 是作爲Transputer用的平行程式化語言而被使用,但被美 國猶他大學的Brunvand副教授等人,用於非同步電路之 設計。CSP係被加州理工大學的Alain Martin副教授的硏 究團體’當作 VLSI Programming Language 而使用。 Tangram則是作爲CSP基礎的獨特語言而由飛利浦硏究所 的Kees van Berkel所開發成的非同步電路描述語言。邏 輯合成是藉由 Syntax-directed Translation而進行這點是 和CSP相同。由於這些設計語言與合成工具尙未商用化, (3) 1315046 因此能夠驅使這些語言而設計非同步電路的工程師係僅限 於硏究所或大學等硏究機關內。再者’爲了將使用這些設 計語言所撰寫而成之設計變成LSI所需之各種工具,在現 狀下也是各機關獨自特有,至於業界標準工具則尙未有所 提供,存在有如此問題。 於是,本發明的課題在於,提供能讓已熟悉產業界廣 泛普及之同步電路設計之硬體描述語S的技術者,能比較 容易地進行非同步電路設計所需之非同步電路設計工具及 電腦程式。 〔用以解決課題之手段〕 爲了解決上記課題,本發明之非同步電路設計工具, 係含有轉譯器(translator),其係具備轉換手段,係將藉由 在同步電路設計用硬體描述語言中附加了使非同步處理區 塊間通訊成爲可能之基元(primitive)而成之非同步電路設 計語言所撰寫而成的程式碼,轉換成同步電路設計用硬體 描述語言。由於將非同步電路設計語言所撰寫成的程式碼 轉換成同步電路設計用硬體描述語言,因此以同步電路用 之市售模擬器就可進行電路設計的機能驗證。 本發明之非同步電路設計工具,係含有專用模擬器, 其係具備驗證手段,其係用來將藉由在同步電路設計用硬 體描述語言中附加了使非同步處理區塊間通訊成爲可能之 基元(primitive)而成之非同步電路設計語言所撰寫而成的 非同步電路設計,進行機能驗證所用。藉由使用爲了將非 -6- (4) 1315046 同步電路設計語言所撰寫成之非同步電路設計予以機能驗 證所需之專用模擬器,就可不必將非同步電路設計語言轉 換成同步電路設計用硬體描述語言,也能進行機能驗證。 構成本發明之非同步電路設計工具的專用模擬器中, - 驗證手段係可藉由編譯(compile)方式而將非同步電路設計 _ 語言轉換成中間語言然後才進行機能驗證,或者也可藉由 解譯器(interpreter)方式將非同步電路設計語言一邊予以 ^ 逐步解譯一邊進行機能驗證。在大規模的電路設計中以編 譯方式較爲理想,在小規模的電路設計中以解譯器方式較 爲理想。 本發明之非同步電路設計工具,係含有邏輯合成工具 ,其係具備邏輯合成手段,係將藉由在同步電路設計用硬 體描述語言中附加了使非同步處理區塊間通訊成爲可能之 基元(primitive)而成之非同步電路設計語言所撰寫而成的 程式碼,予以邏輯合成然後生成連線網表(net-list)。藉由 ^ 將非同步電路設計語言所撰寫而成之程式碼加以邏輯合成 - 而生成連線網表,就可獲得能夠實裝成實際電路的電路連 ^ 接資訊。 較理想的構成爲,構成本發明之非同步電路設計工具 的邏輯合成工具中,係更具備由同步電路設計用功能電路 胞(cell)與非同步電路設計用功能電路胞(cell)所成之功能 電路胞資料庫(cell library);邏輯合成手段係參照功能電 路胞資料庫而生成前記連線網表。只需在同步電路設計用 功能電路胞中追加非同步電路設計用功能電路胞,就可架 (5) 1315046 構出連線網表生成上所必須之功能電路胞資料庫。 本發明之非同步電路設計語言中’作爲處理區塊間通 訊用之資料型,理想爲含有cport與channel者。cport理 想係具備active/passive及input/output以作爲屬性。例 如,敘述(statement) cport active input [7:0] A; 係宣告 cport A 爲 active port,且爲 8 位元的 input port。 又,敘述 channel [7:0] T; 係宣告channel T爲用來連接Sub-proce ss之cport的8位 元寬的channel 。 本發明之非同步電路設計語言中,作爲處理區塊間通 訊用之指令,理想爲含有send、receive、sync及probe。 以敘述將進行通訊的cport指定爲變數》 敘述 send (Α,χ); receive (B,y); 係意味著將變數x的資料,通過cport A而發送給對方處 理區塊’並將通過cport B所收到的資料存放成變數y。 又,敘述 sync (Z); 係意味著使用cport Z來取得同步,但不進行資料的收送 訊。上記send、receive及Sync指令,係在實際的電路中 ,會啓動2相乃至4相交握。 -8- (6) 1315046 然後,指令probe,係爲將値返送的Function ’例如 敘述 probe (B); 係通過cport B,將仍連接至cport B的channel上的即値 . 予以返送。藉由使用probe指令,就可在處理區塊間的交 , 握開始前,例如,作爲準備動作而進行任意處理。 本發明之電腦程式,係用來使電腦發揮機能成爲轉換 ® 手段之電腦程式,該轉換手段係將藉由在同步電路設計用 硬體描述語言中附加了使非同步處理區塊間通訊成爲可能 之基元(primitive)而成之非同步電路設計語言所撰寫而成 的程式碼,轉換成同步電路設計用硬體描述語言。藉由執 行將非同步電路設計語言所撰寫成的程式碼轉換成同步電 路設計用硬體描述語言的電腦程式,就可以同步電路用之 市售模擬器進行電路設計的機能驗證。 本發明之電腦程式,係用來使電腦發揮機能成爲驗證 ® 手段之電腦程式,該驗證手段係用來將藉由在同步電路設 - 計用硬體描述語言中附加了使非同步處理區塊間通訊成爲 ^ 可能之基元(primitive)而成之非同步電路設計語3所撰寫 而成的非同步電路設計,進行機能驗證所用。藉由執行爲 了將非同步電路設計語言所撰寫成之非同步電路設計予以 機能驗證所需之電腦程式,就可不必將非同步電路設計語 言轉換成同步電路設計用硬體描述語言,也能進行機能驗 證。 本發明之電腦程式,係用來使電腦發揮機能成爲驗證 (7) 1315046 手段之電腦程式,該驗證手段係將藉由在同步電路設計用 硬體描述語言中附加了使非同步處理區塊間通訊成爲可能 之基元(primitive)而成之非同步電路設計語S所撰寫而成 的非同步電路設計,藉由編譯(compile)方式而轉換成中間 . 語言而進行機能驗證。在大規模的電路設計中,編譯方式 ^ 是較爲合適。 本發明之電腦程式,係用來使電腦發揮機能成爲驗證 • 手段之電腦程式,該驗證手段係將藉由在同步電路設計用 硬體描述語言中附加了使非同步處理區塊間通訊成爲可能 之基元(primitive)而成之非同步電路設計語言所撰寫而成 的非同步電路設計,藉由解譯器方式而一邊將非同步電路 設計語言予以逐步解譯一邊進行機能驗證。在小規模的電 路設計中,解譯器方式是較爲合適。 本發明之電腦程式,其特徵係用來使電腦發揮機能成 爲邏輯合成手段之電腦程式,該邏輯合成手段係將藉由在 胃同步電路設計用硬體描述語言中附加了使非同步處理區塊 - 間通訊成爲可能之基元(primitive)而成之非同步電路設計 . 語言所撰寫而成的程式碼,予以邏輯合成然後生成連線網 表(net-list)。藉由執行將非同步電路設計語言所撰寫而成 之程式碼加以邏輯合成而生成連線網表的電腦程式,就可 獲得能夠實裝成實際電路的電路連接資訊。 本發明之電腦程式中,作爲基元,例如,係在非同步 處理區塊間通訊中含有probe指令,其係在收到要求 (request)訊號後、發送確知(ACK)訊號前,執行任意之處 -10- (8) 1315046 理。藉由使用probe指令,就可在處理區塊間的交握開始 前,進行任意處理。 本發明之電腦程式中,作爲基元,例如,理想係含有 用來取得埠間同步的sync指令。藉由使用sync指令,皺 可控制非同步處理區塊間通訊。 本發明的電腦程式,係可記錄在記錄媒體中。作爲記 錄媒體,理想爲例如,半導體記憶體元件(ROM、RAM、 EEPROM等)、磁性記錄媒體(軟碟片、磁卡等能夠以磁性 方式讀取資料的記錄媒體)、光記錄媒體(0〇-11八]^、€〇-ROM、DVD-RAM ' DVD-ROM、DVD-R、PD 碟、MD 碟、 MO碟等能夠以光學方式讀取資料的記錄媒體)。對這些記 錄媒體之資訊記錄格式則並無特別限定。 【實施方式】 以下將參照各圖來說明本發明之理想實施形態。 圖1係圖示了使用業界標準Verilog HDL的典型電路 設計流程。同圖中,單線框係意味著設計描述或設計處理 區塊的輸出入資料,雙重線框係意味著設計的處理區塊。 設計規格(Design Specification)係有關該當設計的規格描 述·'是將使用自然語言、表、圖等直觀上爲自然之描述而 預先訂定之規格予以詳細描述。此係成爲產品的詳細規格 書之基礎。動作描述(Behavioral Description)係有關該當 設計的動作層級之描述。使用Veril〇g HDL亦有可能進行 動作層級的描述’此時,可使用Veril〇g HDL專用之模擬 -11 - (9) 1315046 器而進行與設計規格(Design Specification)之間的整合性 驗證。 RTL 描述(RTL Description)雖然是使用 Verilog HDL 來描述,但相對於動作描述是屬於架構獨立,RTL描述則 是依存於架構。動作描述雖然無法成爲邏輯合成的對象, 但RTL描述係爲可邏輯合成的描述。動作描述係除了提供 用來驗證設計規格是否有正確描述的模擬以外,同時還被 I 使用於用到RTL描述之機能驗證和測試用的測試向量之生 成。邏輯合成(Logic Synthesis)所輸出的閘極層級連線網 表(Gate-Level Net list),係連同功能電路胞資料庫而供作 機能驗證和測試所致之邏輯驗證所需。邏輯驗證之後,會 進行平面規劃自動配置及繞線(Floor Planning Automatic Place & Route)以降的實體驗證,獲得實體佈局 (Physical Layout)。視佈局驗證(Layout Verification)的結 果,若有需要則在佈局上施以修正後進行實裝 & (Implementation),進行晶片製作。 圖2係圖示了非同步電路中的處理區塊間通訊(交握 通訊)。所謂非同步電路,係指以未使用總體時脈而讓各 個處理區塊(最小機能電路)以自律性或他律性地取得局部 協調以進行分散控制爲目的所設計而成的電路。由於在同 步設計中,命令擷取、解碼、執行、讀/寫等各操作係要 同步於總體時脈而進行,因此要使電路動作高速化,就會 產生時脈延遲、時脈扭曲、時脈顫動(clock jitter)等問題 ;但是在非同步設計中,由於處理區塊彼此係互相通過交 -12- (10) 1315046 握而自律地或他律地動作’因此不會發生這類問題。各個 處理區塊係通過通訊通道而和其他處理區塊連接,在局部 的協調之下’自律地或他律地進行事件驅動。通訊通道係 在其兩端上,與埠連接。如同圖所示的例子中,處理區塊 A係具備埠a,處理區塊B係具備淳b。處理區塊a與處 理區塊B係在埠a與埠b上透過通訊通道而連接。通訊通 道係由Request訊號、Acknowledge訊號、及資料訊號所 構成。各個處理區塊係可獨立於其他處理區塊而平行動作 ,不需要等待其他處理區塊的處理完成才進行處理。處理 區塊,係可在執行所望處理的準備完成的階段時才進入處 理。 圖3係圖不了處理區塊間的2相父握(Non Return to Zero),是以訊號的上揚邊緣或下挫邊緣來收發 req/Acknowledge訊號。例如,上述例子中,從淳a往淳b 發送req訊號時,係將req訊號從L位準上揚成Η位準, 或從Η位準下挫成L位準。埠b係藉由偵測req訊號的上 揚邊緣或下挫邊緣,就可偵測出從璋a往埠b所發送過來 的req訊號。當埠b要往淳a回送Acknowledge訊號時, 則只要將Acknowledge訊號的位準從L位準上揚成Η位準 ’或從Η位準下挫成L位準即可。藉此,就完成了交握。 圖4係圖示了處理區塊間的4相交握(Return to Zero) ,是以訊號位準來收發req/Acknowledge訊號。例如,上 述例子中,從埠a往埠b發送req訊號時,係將req訊號 從L位準上揚成Η位準即可。埠b係一旦偵測出req訊號 -13- (11) 1315046 遷移成Η位準,就偵測出req訊號已被發送之事實。當璋 b 要往i阜 a回送 Acknowledge訊號時,則只要將 Acknowledge訊號的位準從L位準上揚成Η位準即可。已 確認Acknowledge訊號之位準是遷移成Η位準的埠a,係 將req訊號之位準從Η位準下挫成L位準。已確認到req 訊號之位準是從Η位準遷移成L位準之事實的埠b,係將 Acknowledge訊號之位準從Η位準下挫成L位準,而完成 交握。以下的描述當中,爲了說明的方便,處理區塊間通 訊係採用4相交握爲例來說明。 圖5係圖示了埠的屬性組合。由於處理區塊係自律地 或他律地動作,因此所有的埠上都被賦予了 'Active·或 'Passive’之屬性1。然後若考慮到’Input’或’Output之屬性 2,則一共可分類成合計4種屬性。對向埠之屬性係隨著 通訊對方之埠屬性而被一意地決定。例如,如圖6所示 ,自律性要求資料傳送之處理區塊A的埠屬性是'Active Input'時,他律性地進行資料傳送之處理區塊B的埠屬性 則爲’Passive Output'。通訊通道中的 Request訊號和 Acknowledge訊號之收送訊,係可藉由上述之2相交握或 4相交握而進行。此時,若採用2線編碼,則如圖7所示 ,可削減Acknowledge訊號線。若是,如圖8所示,處理 區塊A的淳是'Active Output'的時候,則由於Request訊 號線和資料訊號線的方向相同,因此可削減R e q u e s t訊號 線。非同步設計中,藉由在控制部和資料匯流排部的設計 上採用2線編碼,就可不須插入明示性的延遲元件,電路 -14 - (12) 1315046 係可成爲Delay Insensitive(非延遲敏感)。本發明係可支 援圖6所示的捆綁資料方式,也可支援圖7或圖8所示的 2線編碼方式。 圖9係圖示複數處理區塊間的交握電路。各個處理區 . 塊係具備複數的埠’而構成可和複數處理區塊進行通訊。
. 同圖所示的交握電路中,處理區塊A係一邊和處理區塊B 通訊一邊也和處理區塊C進行通訊。處理區塊A係對處理 ® 區塊B、C爲Active(以黑點表示),但處理區塊B係對處 理區塊A、C爲Passive(以白點表示)。處理區塊C係對處 理區塊A爲Passive,對處理區塊B則爲Active。若著眼 於處理區塊A,則由於埠Pal的屬性係爲Active Input, 因此如圖6所示,藉由自行發送Request訊號而啓動交握 而從處理區塊B收取資料。另一方面,埠pa2的屬性係爲 Active Output,因此如圖8所示,藉由自行發送Request 訊號而啓動交握而將資料發送至處理區塊C。 本發明中藉由在Verilog HDL等之硬體描述語言中, * 追加使得非同步處理區塊間通訊成爲可能的新的基元 . (Primitive),以使用實現了以上述交握電路所交連之處理 區塊間通訊的非同步電路設計語言而進行電路設計。圖1 0 係將圖9所示之處理區塊A,使用本發明之非同步電路設 計語言來進行程式撰寫而成的程式撰寫例。同圖所示的程 式撰寫例若按照文法來說明,則首先,在模組宣告部中, 宣告了模組名「A」、輸出入訊號名「RESET,Pal,Pa2」。 輸出入訊號(埠)宣告部中,宣告了 1位元的輸入訊號「 -15- (13) 1315046 RESET」,和2位元的變數(暫存器)「regA」。然後,藉 由本發明之非同步電路設計語言所新導入的宣告文cport ,而宣告了用來進行非同步處理區塊間通訊所需之埠名「 Pal,Pa2」和其屬性。埠Pal的屬性係爲Active Input,埠 Pa2的屬性係爲Active Output。從處理區塊B的收訊係藉 由receive指令而進行,往處理區塊C的送訊係藉由send 指令而進行。receive指令和send指令係被本發明之非同 步電路設計語言所新增導入的指令。若參照always文, 則程式是撰寫成,等待初期化訊號RESET被解除,經由 埠Pal所收到之來自處理區塊B的資料係被汲取成變數 regA,經由埠Pa2而發送至處理區塊C。若將圖9所示的 處理區塊B、C撰寫成非同步電路設計語言,則分別會是 如圖1 1、圖12所示。 圖13係非同步電路設計工具1〇〇的機能方塊圖。非 同步電路設計工具100,係具備轉譯器10。轉譯器10,係 具備了 :將藉由在同步電路設計用硬體描述語言(例如 Verilog HDL或VHDL之子集合或全集合)中追加了使得非 同步處理區塊間通訊成爲可能的基元而成的非同步電路設 計語言所撰寫而成的程式碼40’轉換成同步電路設計用硬 體描述語言(例如Verilog HDL或VHDL)50的轉換手段1 1 。藉由將程式碼40轉換成同步電路設計用硬體描述語言 5 0 ’就可將非同步電路設計語言所撰寫成的電路設計,以 同步電路用之市售模擬器進行驗證。轉譯器1〇,係藉由可 令電腦系統作爲轉換手段1 1而發揮機能的電腦程式,在 -16- (14) 1315046 電腦系統上執行而實現。 圖15係圖示了其程式碼轉換例。同圖的verilog程式 碼係對應於圖7所示,但並非2線式編碼,而是判定含有 資料匯流排之訊號線是否爲高阻抗的判定電路。實際的電 路則藉由2線式編碼而被實裝。亦即,該verilog程式碼 係被使用在模擬驗證,因此並非邏輯合成用。在模組宣告 部中’宣告了模組名「A」 '輸出入訊號名「 RESET,Pal_req,Pal_data,Pa2_data,Pa2_ack」。輸出入訊 號宣告部中,宣告了 1位元之輸入訊號「RESET」、2位 元的變數「regA」、1位元的輸出訊號「Pal_req」、2位 元的輸入資料線「Pal_data」、2位元的輸出資料線「 Pa2_data」、1位元的輸入訊號線「pa2_ack」。如已經說 明過的’本實施形態中由於是採用4相交握,因此一邊參 照圖4、圖7’ 一邊進行圖15的Verilog程式碼之說明。
Verilog程式碼的最初begin-end區塊雖然會觸及圖4 所說明過的順序,但訊號線上是否有資料輸出的判定係取 代了 2線式編碼的架構,改以直接用單線式來判定其是否 爲高阻抗來爲之。亦即,輸出訊號Pal _req係相當於圖7 的 Request 訊號,輸入訊號 Pal_data 係相當於 Acknowledge訊號或資料訊號。首先,藉由force指令而 將Pal_req設成High,送出Request,並一直等待直到輸 入資料線Pal _data上有資料被輸出爲止,亦即,等待直到 變成不是高阻抗。若有資料被輸出至輸入資料線Pal_data ,則會被揺取至內部暫存器regA。第2個begin-end區塊 -17- (15) 1315046 係觸及圖8所說明過的順序,輸出資料線Pa2_data係相當 於Request sJl號或資料訊號’輸入訊號線Pa2_ack則相當 於Acknowledge訊號。首先,藉由force指令將regA的內 容輸出至輸出資料線Pa2_data,並等待直到pa2_ack變成 不是闻阻抗爲止。收到 Pa2_ack後,將輸出資料線 Pa2_data設成高阻抗而開放之,並等待Pa2_ack變成高阻 抗,而結束交握。 圖16係將以圖10乃至圖12所撰寫之處理區塊A、B 及C所構成之圖9的交握電路,以非同步電路設計語言進 行程式撰寫的程式撰寫例。藉由本發明之非同步電路設計 語言所新導入之宣告文channel,將連接處理區塊A、B及 C的2位元之3條通道,宣告成CHI、CH2及CH3。各個 處理區塊的例元(instance)係藉由這些通道而連接。若將此 程式撰寫例藉由上述之轉譯器10而轉換成Verilog程式碼 ,則會獲得圖1 7所示的 V e r i 1 〇 g程式碼。如同塗得 Verilog程式碼所示,圖16的通道CH(n=l,2,3)係被展開 成 2 種類的配線(wire)CHn_ctrl(n=l ,2,3)及 CHn_data (n=l,2,3)。處理區塊 A的埠 Pal_req係連接至配線 CHl_ctrl,埠Pal_data係連接至配線CHl_data。同樣地 ,處理區塊C的埠Pc3_ack係連接至配線CH3_ctr,埠 Pc3_data係連接至配線CH3_data。 此外,上述說明當中,雖然例示了將非同步電路設計 語言所撰寫而成的程式碼先轉換成同步電路設計語言然後 再以市售的同步電路用模擬器進行機能驗證的情形,但如 -18- (16) 1315046 圖14所示’亦可藉由具備專用模擬器20的非同步電路設 計工具100來進行機能驗證。專用模擬器20,係作爲用來 將藉由在同步電路設計用硬體描述語言中附加了使非同步 處理區塊間通訊成爲可能之基兀(primitive)而成之非同步 . 電路設計語言所撰寫而成的程式碼4 0之非同步電路設言十 ,予以機能驗證所用之驗證手段21而發揮機能。作爲驗 證手段21 ’係可藉由編譯(compile)方式而將非同步電路 • 設計語言轉換成中間語言然後才進行機能驗證,或者也可 藉由解譯器(interpreter)方式將非同步電路設計語言一邊 予以逐步解譯一邊進行機能驗證。專用模擬器20,係藉由 可令電腦系統作爲驗證手段2 1而發揮機能的電腦程式, 在電腦系統上執行而實現。 非同步電路設計語言的程式碼係藉由本發明的邏輯合 成工具’而可轉換成能夠實裝的連線網表(電路的連接資 訊)。如已經說明過的,處理區塊A的轉譯器1〇的輸出列 ® 表係難以實裝。這是因爲藉由檢測資料訊號線的高阻抗而 - 來偵測資料之到來,在實際電路上並不實用。關於本發明 . 之邏輯合成工具’係以2線式編碼(Dual-rail Encoding)方 式所致之實裝爲前提來加以說明。圖1 8係2線式編碼的 程式撰寫架構(coding scheme)之一例。圖19係4位元之 資料傳輸中使用了 2線式編碼方式時的電路圖。爲了說明 方便’著眼於d0位元而進行說明。首先,由於最初具有 某種意義之資料並未輸出,因此Send訊號係爲Low,所 有資料線配對係呈{0,0}。欲送訊至d0的資料,例如,係 -19- (17) 1315046 在輸出1以後,將Send訊號變成⑴扛,則爲{ d〇 〇,d〇1 } = { 〇, 1 }。收訊測的各資料線配對所具備的解碼器(4位 兀時係爲4個解碼器),果然還是按照圖18的架構 (scheme)而偵測出資料的到來,而取得資料。爲了等待來 - 自各位元所對應之解碼器的到達訊號全部到齊,而使用 • Muller-C元素。在往Mulle卜c元素之輸入全部變成High 的時點上,Receive訊號會變成High,而視爲4位元資料 ®的到達。 上述的非同步電路設計語言,係如圖20所示,藉由 具備了邏輯合成工具30的非同步電路設計工具100,而可 被轉換成能夠實裝的Veri log連線網表。邏輯合成工具30 ,係具備:將藉由在同步電路設計用硬體描述語言中附加 了使非同步處理區塊間通訊成爲可能之基元(primitive)而 成之非同步電路設計語言所撰寫而成的程式碼40,予以邏 輯合成然後生成連線網表60的邏輯合成手段31。邏輯合 I 成工具30係更具備:由同步電路設計用功能電路胞與非 - 同步電路設計用功能電路胞所成之功能電路胞資料庫32。 . 邏輯合成手段31’係參照功能電路胞資料庫32而生成連 線網表60。邏輯合成工具30’係藉由可令電腦系統作爲 邏輯合成手段31而發揮機能的電腦程式’在電腦系統上 執行而實現。 圖21係將圖所示之處理區塊A的程式撰寫例以邏 輯合成工具3 0進行轉換而成的連線網表。若參照該連線 網表的宣告文’則可得知圖1 0之表列中所描述之2位元 -20- (18) 1315046 的埠係爲了 2線式編碼而被展開成input [3:0] Pa output [3:0] Pa2_d;而被轉換成4位元的璋。同圖之 所對應之電路圖示於圖22。在說明同圖所示的電路前 對該電路中所使用的各個功能電路胞加以說明。這些 電路胞係隸屬於邏輯合成工具30的功能電路胞資料肩 〇 圖23係圖示了 reg-simple連接圖。該功能電路 爲1位元資料之2線式編碼方式中的解碼器。d0,dl 1位元之輸入資料的2線,依照圖1 8的架構而被解碼 資料是除了被設定至內部暫存器,同時還被輸出至輸 Q,Q_。此時,表示資料之到達的put訊號會變成High 24係圖TjK 了 bit-to-dual連接圖。Send訊號變成High 將輸入訊號D予以2線式編碼而輸出至輸出訊號d0, 圖25係圖示了 Q_element連接圖。該功能電路胞係 圖26所示之序列。圖27係圖示了 Muller-C元素連 。當Α,Β都呈High時,Z會變成High;當Α,Β都呈 時,Ζ會變成Low。除此以外時,Ζ輸出係無變化。 此處,針對圖22所示的處理區塊a的電路圖來 說明。被虛線所圍繞的部份是藉由邏輯合成工具30 成的連接圖,是從邏輯合成工具30附帶的功能電路 料庫32中使用需要的功能電路胞,而構築成圖2〇所 列表所描述的電路。虛線上的圓圈所對應之訊號線係 被宣告文cport所指定之輸出入瑋。其次,說明該電 動作順序。圖1 〇的列表中雖然未明示地使用,但屬 1一d; 列表 ,針 功能 I 32 胞係 係爲 後的 出線 。圖 時, dl ° 執行 接圖 Low 進行 所生 胞資 示之 表示 路的 於邏 -21 - (19) 1315046 輯合成之輸出的圖21的列表中係插入有初期化訊號 RESET。最初由於RESET訊號係爲High,因此Q_element 的lc輸入X8_c係爲Low,且爲圖26所示之序列的初期 狀態。若RESET變成Low ’則Pa2_c也會是Low ’因此 • X8_c係變成High(tl)。這是意味著在圖26中’輸入lc是 變成High,所以同圖所示的序列便被開始。如同圖所示, 受到輸入lc已遷移至High之事實’輸出rc便遷移成 _ High(t2)。這是意味著,圖22中,卩&1_£:會遷移成High。 ?&1_£;係爲往處理區塊B(參照圖9)的Request訊號。 處理區塊B係將接受該Request訊號而進行過2線式 編碼後的資料,送出至Pal_d[n] (n = 0,l,2,3)。該資料會被 解碼,在reg-simple内部被當成regA[0]及regA[l]而問鎖 (regA[0]_& regA[l]_係爲反轉輸出)。同時在此時序上, 確認資料之收訊的Xl__d及X2_d會變成High,而被輸入 至Muller-C元素。由於隨著Xl_d及X2_d的資料線之長 度的參差等,資料到達的時序上也會產生參差,因此 - Xl_d及X2_d都變成High的時序並非限於同時。Muller- . C元素的輸出X〇_d,係在XI—d及X2_d都變成High的時 點上會變成High(t3)。圖22的X0_d在圖26中係相當於 rd,此係受到遷移成High者而Q_elem係將rc、亦即將圖 22的Pal—c設成Low(t4)。處理區塊B,係接受Pal_cS 遷移成Low的事實,而偵測出從處理區塊b往處理區塊a 送出的資料已被收領之事實,而在資料線上輸出必須停止 資料送出的Null。reg-simple係在Null被輸出至資料線上 -22- (20) 1315046 的時點上,將Xl_d及X2_d變成Low,因此Muller-C元 素係在Xl_d& X2_d都變成Low的時點上’將X〇_d變成 Low(t5)。藉此,和處理區塊B的交握便完成。
圖22的X〇_d變成Low這件事,因爲係意味著在圖 26中rd遷移至Low,所以Q_elem係將Id、亦即圖22的 X8_dd 設成 High。X8_dd 係 bit-to-dual 之 Send 訊號。bit-to-dual 係將 reg-simple 中所保持之資料 regA[0]及 regA[l]予以2線式編碼而送出至Pa2_d[n] (n = 0,l,2,3)。 該資料的送出係對處理區塊C(參照圖9)來說是爲來自處 理區塊 A的Request,因此處理區塊C係收取該Reques 而將身爲 Acknowledge 訊號的 Pa2_c 設成 High。Pa2__c — 旦變成High,則屬於NOR之輸出的X8_c(Q_eIem的輸入 訊號lc)係變成Low(t7)。Q_elem係接受輸入lc已遷移成 Low的事實,而令作爲輸出訊號ld(bit-to-dual的send訊 號)的X8_dd遷移成Low。bit-to-dual係接受Send訊號已 遷移成 Low之事實,而停止已經過2線式編碼之資料的 送出’將Null輸出至資料線Pa2_d[n] (n = 0,l,2,3)。處理 區塊C係藉由接收Null,而偵測出Acknowledge是已被處 理區塊A所接收’並令身爲Acknowledge的Pa2_c遷移成 High。藉此,和處理區塊c間的序列雖然完結,但如圖 10的列表所見,係爲always wait(!RESET),因此在 RESET訊號未變成High以前,處理區塊B及處理區塊C 之間的非同步通訊會重複進行。 若使用本發明的probe及sync,則更簡單地構成更有 -23- (21) 1315046 效率的電路。首先,在說明該理想實施例之前,將已追加 有Verilog HDL之子集合的通訊用基元整理如下。 1 .channel 係爲新追加的datatype。連接下記c p o r t。 2 . cp o r t 係爲新追加的datatype。具有以下6種類型。 active input 主動的輸入埠 active output 主動的輸出埠 passive input 被動的輸入埠
passive output 被動的輸出埠 active sync 主動的同步淳 passive sync 被動的同步卑 3.send/receive/sync/probe 係爲新追加的通訊用指令。 send 用來進行將自變數中讀出的資料之送訊的指令 receive 用來進行資料收訊與寫入至變數的指令 sync 不隨著資料收送訊影響而取得埠間同步的指令 4.probe 係爲新追加的Function。 probe 用來將連接至已指定之cport的channel上 的即値予以回送的Function 首先,說明帶有Probe function的實施例。Passive堤 經由的 send或receive的交握中,隨著來自對向埠的 Request訊號之到來,收訊或送訊之處理區塊便會開始。 可是在此同時,在實際電路上不是隨著Request訊號的到 來就立刻開始交握,而是例如,有時候是等待Request訊 號,而先進行其他處理後,才進行送訊或收訊的交握。若 藉由新定義的指令,則可等待來自對向埠的Request訊號 -24- (22) 1315046 ,而先進行其他處理後,才進行送訊或收訊的交握。 圖2 8係將probe的使用例1以非同步電路設計語言 所撰寫成的程式撰寫例。在同圖所示的程式撰寫例中,「 …J係代表任意的敘述(statement)。在模組宣告部中,宣 告了模組名「M」、輸出入訊號名「P」。在輸出入訊號( 埠)宣告部中,係宣告了 i阜P係爲8位兀的.cport passive output。在if文中則是描述爲,當probe(P)的指令是返送 値爲1位元的1的時候,則執行下個敘述(if文和Send(P ,a)之間的「…」)。send(P,a)係爲,將從變數a所讀出 之値,通過埠P而發送給對向埠所需之指令。 圖29係將probe的使用例1轉換成Verilog程式碼的 程式碼轉換例。在模組宣告部中,宣告了模組名「Μ」、 輸出入訊號名「P_ctrl,P_data」。在輸出入訊號宣告部 中,宣告了 1位元的輸入訊號P_ctrl,和8位元的輸出訊 號P_data。若將該狀態予以圖示,則如圖30所示。處理 區塊M、N係透過各自的埠P、Q而連接。埠P係爲 passive output,璋 Q 係爲 active input。璋 P 係一旦從 ί阜 Q通過P_ctrl而接收Request訊號,便通過P_data而發送 資料(Acknowledge訊號)。此處,若回到圖29的說明,則 if文是被撰寫成,當P_ctrl的値爲1位元的1的時候,則 執行下個敘述(if文和begin之間的「…」)。begin〜end 文,係將send(P,a)轉換成Verii〇g程式碼後的敘述。針 對該be gin〜end文,一邊參照圖31 —邊加以說明。首先 ,等待P_ctrl變成不是高阻抗,執行pr0be指令後’向 -25- (23) 1315046 P_data輸出變數a的値。其次,等待p_ctrl變成高阻抗, 而開放P_data(4相交握)。此處,P_ctrl係相當於Request 訊號’ P_data係相當於Acknowledge訊號。如此,藉由使 用probe指令,就可在從對向埠收到Request訊號後,向 該當對向埠回答Acknowledge訊號之前,執行任意之敘述
圖32係將probe的使用例2以非同步電路設計語言 所撰寫成的程式撰寫例。在模組宣告部中,宣告了模組名 「M」、輸出入訊號名「P」。在輸出入訊號宣告部中, 係宣告了捧P係爲8位元的cport passive input。在wait 文中是撰寫成,當probe(P)的指令的返値爲8位元的所定 値時(非高阻抗時),則執行響應於probe(P)的指令的返値 所規定之case文的敘述「…」。receive(P,a)係用來將通 過埠P所收到的値,代入變數a中所需之指令。 圖33係將probe的使用例2轉換成Verilog程式碼的 程式碼轉換例。在模組宣告部中,宣告了模組名「Μ」、 輸出入訊號名「P_ctrl,P_data」。在輸出入訊號宣告部 中,宣告了 8位元的輸入訊號P_data,和1位元的輸出訊 號P_ctrl。若將該狀態予以圖示,則如圖34所示。處理 區塊M、N係透過各自的埠P、Q而連接。埠P係爲 passive input,瑋 Q 係爲 active output。璋 P 係一旦從瘅 Q通過P_data而接收資料(Request訊號)’便通過P —Ctrl 而發送Acknowledge訊號以回應之。此處’若回到圖33 的說明,則在wait文中是撰寫成’當P_data的値爲8位 -26- (24) 1315046 元的所定値時(非高阻抗時),則執行響應於P_data的値所 規定之 case文的敘述「…」。begin〜end文,係將 receive(P,a)轉換成 Verilog程式碼後的樣子。針對該 begin〜end文,一邊參照圖35 —邊加以說明。首先,等 待P_data變成不是高阻抗,執行probe指令後,將向 P_data輸出的値代入至變數a。其次,向P_ctrl輸出1位 元的1,等待P_data變成高阻抗,而開放P_ctrl(4相交握 )。此處,P_data係相當於Request訊號,P_ctrl係相當於 Acknowledge訊號。如此,藉由使用probe指令,就可在 從對向埠收到 Request訊號後,向該當對向埠回答 Acknowledge訊號之前,執行case文所指定的任意之敘述 「“·」 〇 圖3 6係將sync的使用例1以非同步電路設計語言所 撰寫成的程式撰寫例。在模組宣告部中,宣告了模組名「 M」、輸出入訊號名「P」。在輸出入訊號宣告部中,係 宣告了 ί阜P係爲cport passive sync。sync(P)係用來通過 埠P而取得埠間同步所需的指令。 圖3 7係將s y n c的使用例1轉換成V e r i 1 〇 g程式碼的 程式碼轉換例。在模組宣告部中,宣告了模組名「Μ」、 輸出入訊號名「P_ctrl,P_data」。在輸出入訊號宣告部 中’係宣告了輸入訊號P_ctrl和輸出訊號p_data。若將該 狀態予以圖示,則如圖3 8所示。處理區塊μ、X係透過 淳P、Q而連接。埠Ρ係爲passive sync,淳Q係爲 active sync。然後’處理區塊Μ、N係透過埠R、S而連 -27- (25) 1315046 接。埠 R 係爲 active input,埠 S 係爲 passive output。埠 P、Q係不進行資料收送訊就可取得埠間同步。埠R、s_ 係透過交握而進行資料的收送訊。此處’若回到圖37的 說明,begin〜end文,係將sync(P)轉換成Verilog程式碼 • 後的樣子。此begin〜end文中’首先’會等待P_ctrl變 成不是高阻抗,而向P-data輸出1位元的1。其次’等待 P_ctrl變成高阻抗,而開放P_data。藉此,埠P、Q間就 • 可取得同步。 關於sync指令的使用例’參照圖38及圖39而加以 說明。此處係例示了,處理區塊X是透過埠P、Q而控制 處理區塊M、N間之通訊的順序。處理區塊Μ,係因爲 P_ctrl不是高阻抗,而一旦偵測到來自库Q的Request訊 號之到來,便對處理區塊N將要求資料傳輸的Request訊 號輸出至R_ctrl。如此一來,資料便從處理區塊N往 R_data 輸出。此資料係爲針對 Request 訊號的 β Acknowledge訊號。處理區塊Μ係接受資料被輸出至 - R_data的事實,而將R_ctrl予以否定。處理區塊Μ係一 . 旦完成來自 R_data的資料收訊,便向 P_data輸出
Acknowledge訊號。如此一來,P_ctrl便被否定。如此, 藉由使用sync指令,就可控制處理區塊間的通訊。 圖40係將sync的使用例2以非同步電路設計語言所 撰寫成的程式撰寫例。在模組宣告部中,宣告了模組名「 M」、輸出入訊號名「P」。在輸出入訊號宣告部中,係 宣告了璋P係爲cport active sync。if文則是描述爲,當 -28- (26) 1315046 pr〇be(P)的指令是返送値爲1位元的1的時候,則執行if 文和sync(P)間的敘述「…」。本例雖然舉出了使用probe 指令的例子,但只要使用了 sync指令,if文就不是必須 ,而是亦可省略。 圖41係將sync的使用例2轉換成Verilog程式碼的 程式碼轉換例。在模組宣告部中,宣告了模組名「Μ」、 輸出入訊號名「P_ctrl,P_data」。在輸出入訊號宣告部 中,係宣告了輸入訊號P_data和輸出訊號P_ctrl。if文是 被撰寫成,當P —Ctrl的値爲1位元的1的時候,則執行下 個敘述(if文和begin之間的「…」)。begin〜end文,係 將sync(P)轉換成Verilog程式碼後的樣子。此begin〜end 文中,首先,向P_ctrl輸出1位元的1,等待P_data變成 不是高阻抗。一旦P_data變成不是高阻抗,便將P_ctrl 開放’而等待P_data被否定。 若根據本實施形態,則可提供已熟悉業界標準之 HDL(Veril〇g HDL及VHDL)的技術者能夠比較容易地設計 非同步電路的環境。又’藉此,就能克服隨著半導體處理 區塊的微細化而顯現之同步電路設計的限制(電力問題、 時脈扭曲問題等)’使得處理區塊所提供的能力以較先前 更短期間、更低成本,就能獲得更高信賴性·驗證性。甚 至’由於非同步電路的移植性高,因此要將藉由本發明所 開發之非同步電路設計技術當作IP而反覆活用也是可能 ’可以應付技術者不足或短期間之開發。甚至,藉由本實 施形態可提供將電磁輻射極少的非同步電路用於各種產品 -29- (27) 1315046 的開發環境。本發明的非同步電路設計技術係可適用於低 消費電力VLSI、其所組裝成的半成品或完成品(pda、智 慧卡、電子書等)、使用TFT技術的LSI、使用其之半成 品或完成品。具體而言,可適用於:可穿戴機器、玩具、 家庭用防盜中心關聯機器、RFID等不搭載電池的電子機 器、車載機器、醫療機器、軍需製品等。 【圖式簡單說明】 〔圖1〕圖示了使用業界標準Verilog HDL的典型電 路設計流程。 〔圖2〕非同步電路中的處理區塊間通訊之圖示。 〔圖3〕處理區塊間的2相交握之圖示。 〔圖4〕處理區塊間的4相交握之圖示。 〔圖5〕埠的屬性組合之圖示。 〔圖6〕埠屬性與通道訊號的說明圖。 〔圖7〕2線編碼的說明圖。 〔圖8〕2線編碼的說明圖。 〔圖9〕交握電路的說明圖。 〔圖10〕處理區塊A的非同步設計描述。 〔圖11〕處理區塊B的非同步設計描述。 〔圖12〕處理區塊C的非同步設計描述。 〔圖1 3〕轉譯器的說明圖。 〔圖14〕專用模擬器的說明圖。 〔圖15〕處理區塊A的Verilog程式碼轉換例。 -30- (28) (28)1315046 〔圖16〕交握電路的非同步設計描述。 〔圖17〕交握電路的Verilog程式碼轉換例。 〔圖18〕2線式編碼的轉換架構(scheme)。 〔圖1 9〕2線式編碼器/解碼器的說明圖。 〔圖20〕邏輯合成工具的說明圖。 〔圖21〕處理區塊A的連線網表。 〔圖22〕處理區塊A的電路圖。 〔圖 23〕reg-simple 連接圖。 〔圖 24〕bit-to-dual 連接圖。 〔圖25〕Q_elem連接圖。 〔圖26〕Q_elem的輸出入訊號的序列。 〔圖27〕Muller-C元素連接圖。 〔圖28〕使用probe指令之非同步電路設計程式碼。 〔圖29〕Verilog程式碼的程式撰寫例。 〔圖30〕非同步處理區塊間通訊的說明圖。 〔圖3 1〕處理區塊間之交握的說明圖。 〔圖32〕使用probe指令之非同步電路設計程式碼。 〔圖33〕Verilog程式碼的程式撰寫例。 〔圖34〕非同步處理區塊間通訊的說明圖。 〔圖3 5〕處理區塊間之交握的說明圖。 〔圖36〕使用sync指令之非同步電路設計程式碼。 〔圖37〕Verilog程式碼的程式撰寫例。 〔圖3 8〕非同步處理區塊間通訊的說明圖。 〔圖3 9〕處理區塊間之交握的說明圖。 -31 - (29) 1315046 〔圖40〕使用sync指令之非同步 〔圖41〕Verilog程式碼的程式撰 【主要元件符號說明】 10 :轉譯器,11 :轉換手段,20 : 21:驗證手段,30:邏輯合成工具,3 3 2 :功能電路胞資料庫,40 :非同步1 Verilog程式碼,60 :連線網表 電路設計程式碼。 寫例。 專用模擬器, 1 :邏輯合成手段, 霞路設自十語g,5 0 :
-32-

Claims (1)

1315046 阿研修正 十、申請專利範圍 L· 第94 1 425 7 8號專利申請案 中文申請專利範圍修正本 民國97年7月14曰修正 1.—種非同步電路之設計方法,其特徵爲, 含有: ϊ寸桌1程式碼附加基元(primitive)以合成第2程式碼 的第1工程;和 以前記第2程式碼來生成連線網表(net-list)的第2工 程; 前記第1程式碼係爲同步電路設計用的硬體描述語言 前記基元係爲用來使非同步處理區塊間通訊成爲可能 〇
2. 如申請專利範圍第1項所記載之非同步電路之設計 方法,其中, 前記連線網表係爲關於執行2線式編碼方式之電路圖 者。 3. 如申請專利範圍第1項所記載之非同步電路之設計 方法,其中, 前記連線網表係爲關於交握電路者。 4. 如申請專利範圍第丨項所記載之非同步電路之設計 方法,其中, 9Γ 7. ΐ ί 1315046 前記基元,係含有cport與channel以做爲資料型, 且含有 active/passive 及 input/output 以做爲修飾 cport 之 屬性,且含有send、receive、sync以做爲指令’且含有 probe 以做爲 Function。 5 .如申請專利範圍第1項所記載之非同步電路之設計 方法,其中, 前記第1工程,是參照由同步電路設計用功能電路胞 (cell)與非同步電路設計用功能電路胞(cell)所成的功能電 路胞資料庫(cell library),來生成連線網表。 6 .如申請專利範圍第1項所記載之非•同步電路之設計 方法,其中, 含有:使用專用模擬器來模擬前記第2程式碼的工程 7.如申請專利範圍第6項所記載之非同步電路之設計 方法,其中,
前記專用模擬器係具有驗證手段,前記驗證手段是以 編譯(compile)方式,將非同步電路設計語言轉換成中間語 言,然後才進行機能驗證。 8 .如申請專利圍第6項所記載之非同步電路之設計 方法,其中, BU gB專用模擬器係具有驗證手段,前記驗證手段是以 解譯器(interpreter)方式,將非同步電路設計語言—面逐 次解譯,一面進行機能驗證。 9. 一種非同步電路設計語言之模擬方法,其特徵爲, -2- 1315046 含有: 對第1程式碼附加基元(Primitive)以合成第2程式碼 的第1工程;和 使用專用模擬器來模擬前記第2程式碼的第2工程; 前記第1程式碼係爲同步電路設計用的硬體描述語言 I 前記基元係爲用來使非同步處理區塊間通訊成爲可能 〇 10.—種非同步電路之設計程式產品,其特徵爲, 含有: 對第1程式碼附加基元(primitive)以合成第2程式碼 的第1工程;和 以前記第2程式碼來生成連線網表(net-list)的第2工 程; 前記第1程式碼係爲同步電路設計用的硬體描述語言 9 前記基元係爲用來使非同步處理區塊間通訊成爲可能 Ο 1 1.如申請專利範圍第1 0項所記載之非同步電路之設 計程式產品,其中, 前記連線網表係爲關於執行2線式編碼方式之電路圖 者。 1 2 ·如申請專利範圍第1 〇項所記載之非同步電路之設 計程式產品,其中, 1315046 前記連線網表係爲關於交握電路者。 13. 如申請專利範圍第10項所記載之非同步電路之設 計程式產品’其中, 前記基元,係含有Cport與channel以做爲資料型’ 且含有 active/passive 及 input/output 以做爲修飾 cport 之 屬性,且含有send、receive、sync以做爲指令’且含有 probe 以做爲 Function。 14. 如申請專利範圍第10項所記載之非同步電路之設 計程式產品,其中, 前記第1工程,是參照由同步電路設計用功能電路胞 (cell)與非同步電路設計用功能電路胞(cell)所成的功能電 路胞資料庫(cell library),來生成連線網表。 1 5 .如申請專利範圍第1 0項所記載之非同步電路之設 計程式產品,其中, 含有:使用專用模擬器來模擬前記第2程式碼的工程 〇 1 6 .如申請專利範圍第1 5項所記載之非同步電路之設 計程式產品,其中, 前記專用模擬器係具有驗證手段,前記驗證手段是以 編譯(compile)方式,將非同步電路設計語言轉換成中間語 言’然後才進行機能驗證。 1 7.如申請專利範圍第1 5項所記載之非同步電路之設 計程式產品,其中, 前記專用模擬器係具有驗證手段,前記驗證手段是以 -4- 9幕7月1隹修正替換貝 1315046 解譯器(interpreter)方式,將非同步電路設計語言一面逐 次解譯,一面進行機能驗證。 18.—種非同步電路設計語言之模擬程式產品,其特 徵爲, 含有: 對第1程式碼附加基元(primitive)以合成第2程式碼 的第1工程;和 使用專用模擬器來模擬前記第2程式碼的第2工程; 前記第1程式碼係爲同步電路設計用的硬體描述語言 前記基元係爲用來使非同步處理區塊間通訊成爲可能
TW094142578A 2005-01-19 2005-12-02 Designing method and program product of asynchronous circuit TWI315046B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/037,139 US7418676B2 (en) 2005-01-19 2005-01-19 Asynchronous circuit design tool and computer program product
JP2005281558A JP4528704B2 (ja) 2005-01-19 2005-09-28 非同期回路設計装置及びコンピュータプログラム

Publications (2)

Publication Number Publication Date
TW200632702A TW200632702A (en) 2006-09-16
TWI315046B true TWI315046B (en) 2009-09-21

Family

ID=36840347

Family Applications (1)

Application Number Title Priority Date Filing Date
TW094142578A TWI315046B (en) 2005-01-19 2005-12-02 Designing method and program product of asynchronous circuit

Country Status (4)

Country Link
US (1) US7418676B2 (zh)
JP (2) JP4528704B2 (zh)
CN (1) CN1808451B (zh)
TW (1) TWI315046B (zh)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008008629A2 (en) * 2006-06-28 2008-01-17 Achronix Semiconductor Corporation Reconfigurable logic fabrics for integrated circuits and systems and methods for configuring reconfigurable logic fabrics
US7640422B2 (en) * 2006-08-16 2009-12-29 Qualcomm Incorporated System for reducing number of lookups in a branch target address cache by storing retrieved BTAC addresses into instruction cache
US7827022B2 (en) * 2006-09-27 2010-11-02 Rockwell Automation Technologies, Inc. Sequential function chart validation tool
US7614029B2 (en) * 2007-01-05 2009-11-03 Achronix Semiconductor Corporation Methods and systems for converting a synchronous circuit fabric into an asynchronous dataflow circuit fabric
JP4973392B2 (ja) * 2007-08-30 2012-07-11 富士通セミコンダクター株式会社 回路検証方法および回路検証プログラム
US8065647B2 (en) * 2007-10-19 2011-11-22 The University Of Utah Research Foundation Method and system for asynchronous chip design
WO2009126880A2 (en) * 2008-04-10 2009-10-15 University Of Southern California Power aware asynchronous circuits
JP5409231B2 (ja) * 2008-09-26 2014-02-05 株式会社半導体エネルギー研究所 設計システム
KR101173942B1 (ko) * 2008-11-28 2012-08-14 한국전자통신연구원 데이터 송신 장치, 데이터 수신 장치, 데이터 전송 시스템 및 데이터 전송 방법
US8689192B2 (en) * 2009-01-12 2014-04-01 Synopsys, Inc. Natural language assertion processor
CN101504690B (zh) * 2009-03-26 2011-04-13 北京航空航天大学 用于通信系统集成电路设计的实时仿真验证系统及其方法
US8161435B2 (en) * 2009-07-20 2012-04-17 Achronix Semiconductor Corporation Reset mechanism conversion
US20110179395A1 (en) * 2010-01-20 2011-07-21 Maxim Smirnov Distributed Pipeline Synthesis for High Level Electronic Design
JP5761819B2 (ja) * 2010-06-17 2015-08-12 国立大学法人 奈良先端科学技術大学院大学 スキャン非同期記憶素子およびそれを備えた半導体集積回路ならびにその設計方法およびテストパターン生成方法
FR2990283A1 (fr) * 2012-05-04 2013-11-08 Commissariat Energie Atomique Bibliotheque de cellules et procede de conception d'un circuit integre asynchrone
US10728231B2 (en) * 2012-07-09 2020-07-28 Massachusetts Institute Of Technology Data security using inter-zone gate circuits
US8995500B2 (en) * 2012-07-19 2015-03-31 Seiko Epson Corporation Asynchronous correlation circuit, asynchronous full adder circuit, calculation device, correlation device, asynchronous maximum value N detection circuit, and satellite signal acquisition device
JP5920081B2 (ja) * 2012-07-19 2016-05-18 セイコーエプソン株式会社 非同期相関演算回路
US9430442B2 (en) * 2013-07-30 2016-08-30 Synopsys, Inc. Solving a gate-sizing optimization problem using a constraints solver
US10261760B1 (en) 2013-12-05 2019-04-16 The Mathworks, Inc. Systems and methods for tracing performance information from hardware realizations to models
US10078717B1 (en) 2013-12-05 2018-09-18 The Mathworks, Inc. Systems and methods for estimating performance characteristics of hardware implementations of executable models
JP6340886B2 (ja) * 2014-04-10 2018-06-13 株式会社ジェイテクト プログラマブルロジックコントローラ用プログラムの作成支援装置及びプログラマブルロジックコントローラ用プログラムの作成支援方法
US9449131B2 (en) * 2014-06-02 2016-09-20 Xilinx, Inc. Extracting system architecture in high level synthesis
EP3926904A1 (en) * 2020-06-15 2021-12-22 Nxp B.V. Controller area network apparatus
CN112651207B (zh) * 2020-12-23 2023-06-02 中山大学 一种异步电路物理实现方法及系统
TWI773501B (zh) * 2021-08-27 2022-08-01 長佳智能股份有限公司 健康輔助辨識系統及健康輔助診斷方法
CN113839663B (zh) * 2021-09-26 2023-09-15 重庆大学 延迟不敏感异步电路单元、M×N-Join及其工作方法
WO2023228212A1 (en) * 2022-05-25 2023-11-30 PANDEY, Uma Microcell library for implementation of computational logic using digital vlsi systems

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6578133B1 (en) * 2000-02-24 2003-06-10 Stanley M. Hyduke MIMD array of single bit processors for processing logic equations in strict sequential order
US20020049576A1 (en) * 2000-07-05 2002-04-25 Meyer Steven J. Digital and analog mixed signal simulation using PLI API
US6785875B2 (en) * 2002-08-15 2004-08-31 Fulcrum Microsystems, Inc. Methods and apparatus for facilitating physical synthesis of an integrated circuit design
DE10393883T5 (de) * 2002-12-13 2005-11-17 Advantest Corp. Zeitablauferzeugungsschaltung und das die Zeitablauferzeugungsschaltung aufweisendes Halbleitertestgerät
US7404172B2 (en) * 2002-12-19 2008-07-22 California Institute Of Technology Method for the synthesis of VLSI systems based on data-driven decomposition
GB0301700D0 (en) * 2003-01-24 2003-02-26 Macrovision Corp The copy protection of optical discs
US7260753B2 (en) * 2003-07-14 2007-08-21 Fulcrum Microsystems, Inc. Methods and apparatus for providing test access to asynchronous circuits and systems
US20060125666A1 (en) * 2004-12-12 2006-06-15 Hanks Darwin M Data modulation

Also Published As

Publication number Publication date
TW200632702A (en) 2006-09-16
CN1808451A (zh) 2006-07-26
US7418676B2 (en) 2008-08-26
JP2006202262A (ja) 2006-08-03
JP2009134739A (ja) 2009-06-18
US20060190851A1 (en) 2006-08-24
CN1808451B (zh) 2010-12-08
JP4528704B2 (ja) 2010-08-18

Similar Documents

Publication Publication Date Title
TWI315046B (en) Designing method and program product of asynchronous circuit
KR101591376B1 (ko) 동기에서 비동기로의 논리 변환
Spars et al. Principles asynchronous circuit design
US9508615B2 (en) Clock tree synthesis for low cost pre-bond testing of 3D integrated circuits
WO2002005144A1 (en) Circuit component interface
Moreira et al. Semi-custom NCL design with commercial EDA frameworks: Is it possible?
Moreira et al. NCL synthesis with conventional EDA tools: Technology mapping and optimization
US20110016439A1 (en) Reset mechanism conversion
KR100830110B1 (ko) 비동기 회로의 프로세스간 통신 방법 및 시뮬레이션 방법
KR100803254B1 (ko) 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
Wingard Socket-based design using decoupled interconnects
CN109885850B (zh) 一种局部寄存器的生成方法及生成系统
US7982502B2 (en) Asynchronous circuit representation of synchronous circuit with asynchronous inputs
Vercauteren et al. Hardware/software communication and system integration for embedded architectures
Bjerregaard et al. A channel library for asynchronous circuit design supporting mixed-mode modeling
Saranya et al. Design and Verification of an Asynchronous NoC Router Architecture for GALS Systems
Zhou et al. Synthesis of asynchronous QDI circuits using synchronous coding specifications
Peeters Implementation of handshake components
Calvez A codesign case study with the MCSE methodology
Calazans et al. Asynchronous Circuit Principles and a Survey of Associated Design Tools
El-Shiekh et al. IPXACT-Based RTL Generation Tool
CN101860359A (zh) 时钟产生系统和时钟分频模块
Zhenxin et al. A UML-based approach for heterogeneous IP integration
Mahadevan et al. Modeling Asynchronous Communication at Different Levels of Abstraction Using SystemC
Javaheri et al. ESL design methodology for architecture exploration

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees