JP4528704B2 - 非同期回路設計装置及びコンピュータプログラム - Google Patents

非同期回路設計装置及びコンピュータプログラム Download PDF

Info

Publication number
JP4528704B2
JP4528704B2 JP2005281558A JP2005281558A JP4528704B2 JP 4528704 B2 JP4528704 B2 JP 4528704B2 JP 2005281558 A JP2005281558 A JP 2005281558A JP 2005281558 A JP2005281558 A JP 2005281558A JP 4528704 B2 JP4528704 B2 JP 4528704B2
Authority
JP
Japan
Prior art keywords
circuit design
asynchronous
data
port
signal
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
JP2005281558A
Other languages
English (en)
Other versions
JP2006202262A (ja
Inventor
信雄 唐木
クワン リー タク
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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 Corp filed Critical Seiko Epson Corp
Priority to TW094142578A priority Critical patent/TWI315046B/zh
Priority to KR1020050118069A priority patent/KR100803254B1/ko
Priority to CN2006100061458A priority patent/CN1808451B/zh
Publication of JP2006202262A publication Critical patent/JP2006202262A/ja
Application granted granted Critical
Publication of JP4528704B2 publication Critical patent/JP4528704B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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

Description

本発明は非同期回路設計言語によって記述されたコードを検証又は論理合成するための非同期回路設計ツール及びコンピュータプログラムに関する。
IC技術の急速な発達による回路規模の飛躍的な増大に伴い、デジタル回路設計にはHDL(Hardware Description Language)によるテキスト・ベースの回路設計と検証が一般的となっている。回路規模の飛躍的な増大はグローバル・クロックによって全回路を駆動する同期設計手法を極めて短時間に標準的な手法として普及させた。現在の商用の設計環境を構成するCAE/CADツール、SSI・MSI部品、セル・ライブラリー等は殆ど全て同期設計用のみに準備されたものである。ところが、最近、半導体技術の微細化、VLSIチップの大型化、クロック周波数の増大が進むにつれてクロック・スキューの問題が顕在化してきた。プロセスの微細化によって、スイッチング素子のディレイは小さくなったが、その一方で配線ディレイは相対的に大きくなる。その結果、チップを横断するクロック全体系のディレイはチップ内の場所によって大きくばらつくこととなり、その大きくばらついたグローバル・クロック信号によって駆動される素子の入出力信号の位相の一貫性はもはや保証されなくなる。クロック・スキューの問題に加えて、消費電力の増大も大きな問題になりつつある。微細化に伴なう素子の高速化と回路規模の幾何級数的増大に伴なうVLSIの消費電力の幾何級数的な増大が大きな問題となっている。更に、同期回路のクロックに同期した輻射ノイズも問題である。非同期設計は、こうしたクロック・スキュー、消費電力及び輻射ノイズの問題を解決する技術として注目されている。
非同期回路を設計する場合、回路図入力から始めて構造的・階層的に設計を進める手法と、テキスト・ベースで設計言語を用いて設計・検証を行う方法がある。前者の手法は直感的であり、小規模回路の設計には適しているが、大規模回路の設計には不向きである。特に、設計された回路が所望の機能を発揮するか否かのベリフィケーション、設計変更に伴なうフォーマル検証、ソフトウエアとの結合検証、ブロック間結合検証等が必須である最近の回路規模を勘案すると極めて非現実的な手法である。後者の設計手法では、テキスト・ベースでの設計言語として、OCCAM、CSP、Tangram等がある。OCCAMはTransputer用の並列プログラミング言語としても用いられたが、米国Utha大学のBrunvand助教授等によって、非同期回路の設計に用いられた。CSPはカルフォニア工科大学のAlain Martin助教授のグループによって、VLSI Programming Languageとして使用された。TangramはCSPベースの独自言語としてフィリップス研究所のKees van Berkelによって開発された非同期回路記述言語である。論理合成がSyntax-directed Translationによって行われる点はCSPと同様である。これらの設計言語と合成ツールは未だ商用化されていないため、これらを駆使して非同期回路を設計できるエンジニアは研究所又は大学等の研究機関に限られている。さらに、これらの設計言語を用いて記述された設計を最終的なLSIにするための各種ツールも現状では各機関独自のものであり、業界標準的なものは未だ提供されていないという問題がある。
そこで、本発明は産業界に広く普及している同期回路設計のハードウエア記述言語に習熟している技術者が比較的容易に非同期回路設計を行うための非同期回路設計ツール及びコンピュータプログラムを提供することを課題とする。
上記の課題を解決するため、本発明の非同期回路設計ツールは、同期回路設計用のハードウエア記述言語に非同期プロセス間通信を可能とするプリミティブが付加された非同期回路設計言語によって記述されたコードを同期回路設計用のハードウエア記述言語に変換する変換手段を備えるトランスレータを含む。非同期回路設計言語で記述されたコードを同期回路設計用のハードウエア記述言語に変換することで、同期回路用の市販シミュレータで回路設計の機能検証を行うことが可能となる。
本発明の非同期回路設計ツールは、同期回路設計用のハードウエア記述言語に非同期プロセス間通信を可能とするプリミティブが付加された非同期回路設計言語によって記述された非同期回路設計を機能検証するための検証手段を備える専用シミュレータを含む。非同期回路設計言語で記述された非同期回路設計を機能検証するための専用シミュレータを用いることにより、非同期回路設計言語を同期回路設計用のハードウエア記述言語に変換しなくても、機能検証を行うことができる。
本発明の非同期回路設計ツールを構成する専用シミュレータにおいて、検証手段はコンパイル方式により非同期回路設計言語を中間言語に変換してから機能検証を行ってもよく、或いは、インタープリタ方式により非同期回路設計言語を逐次解釈しながら機能検証を行ってもよい。大規模な回路設計ではコンパイル方式が好適であり、小規模な回路設計ではインタープリタ方式が好適である。
本発明の非同期回路設計ツールは、同期回路設計用のハードウエア記述言語に非同期プロセス間通信を可能とするプリミティブが付加された非同期回路設計言語によって記述されたコードを論理合成してネットリストを生成する論理合成手段を備える論理合成ツールを含む。非同期回路設計言語によって記述されたコードを論理合成してネットリストを生成することにより、実回路に実装可能な回路接続情報を得ることができる。
本発明の非同期回路設計ツールを構成する論理合成ツールにおいて、同期回路設計用のセルと非同期回路設計用のセルから成るセル・ライブラリーを更に備え、論理合成手段はセル・ライブラリーを参照してネットリストを生成する構成とするのが望ましい。同期回路設計用のセルに加えて非同期回路設計用のセルを追加するだけで、ネットリスト生成に必要なセル・ライブラリーを構築できる。
本発明の非同期回路設計言語において、プロセス間通信用のデータ型として、cportとchannelを含むのが好ましい。cportは、属性として、active/passive及びinput/outputを備えるのが好ましい。例えば、ステートメント
cport active input [7:0] A;
は、cport Aが、active portであり、8ビットのinput portであることを宣言する。
また、ステートメント
channel [7:0] T;
は、channel Tが、Sub-processのcportを接続する8ビット幅のchannelであることを宣言する。
本発明の非同期回路設計言語において、プロセス間通信用のコマンドとして、send、receive、sync及びprobeを含むのが好ましい。ステートメントで通信を行うcportと変数を指定する。
ステートメント
send (A,x);
receive (B,y);
は、変数xのデータをcport Aを通じて相手のプロセスに送信し、cport Bを通じて受信したデータを変数yに格納することを意味する。
また、ステートメント
sync (Z);
は、cport Zを用いて同期を取ることを意味するが、データの送受信は行わない。上記send、receive及びsyncコマンドは、実際の回路においては、2相乃至4相ハンドシェーキングを起動する。
更に、コマンドprobeは、値を返すFunctionであり、例えばステートメント
probe (B);
は、cport Bを通じて、cport Bに接続されているchannel上にある即値を返す。probeコマンドを使用することで、プロセス間のハンドシェイクを開始する前に、例えば準備として、任意の処理を行うことができる。
本発明のコンピュータプログラムは、同期回路設計用のハードウエア記述言語に非同期プロセス間通信を可能とするプリミティブが付加された非同期回路設計言語によって記述されたコードを同期回路設計用のハードウエア記述言語に変換する変換手段として、コンピュータシステムを機能させるためのコンピュータプログラムである。非同期回路設計言語で記述されたコードを同期回路設計用のハードウエア記述言語に変換するコンピュータプログラムを実行することで、同期回路用の市販シミュレータで回路設計の機能検証を行うことが可能となる。
本発明のコンピュータプログラムは、同期回路設計用のハードウエア記述言語に非同期プロセス間通信を可能とするプリミティブが付加された非同期回路設計言語によって記述された非同期回路設計を機能検証するための検証手段として、コンピュータシステムを機能させるためのコンピュータプログラムである。非同期回路設計言語で記述された非同期回路設計を機能検証するためのコンピュータプログラムを実行させることにより、非同期回路設計言語を同期回路設計用のハードウエア記述言語に変換しなくても、機能検証を行うことができる。
本発明のコンピュータプログラムは、同期回路設計用のハードウエア記述言語に非同期プロセス間通信を可能とするプリミティブが付加された非同期回路設計言語によって記述された非同期回路設計をコンパイル方式により中間言語に変換してから機能検証を行う検証手段としてコンピュータシステムを機能させるためのコンピュータプログラムである。大規模な回路設計ではコンパイル方式が好適である。
本発明のコンピュータプログラムは、同期回路設計用のハードウエア記述言語に非同期プロセス間通信を可能とするプリミティブが付加された非同期回路設計言語によって記述された非同期回路設計をインタープリタ方式により非同期回路設計言語を逐次解釈しながら機能検証を行う検証手段として、コンピュータシステムを機能させるためのコンピュータプログラムである。小規模な回路設計ではインタープリタ方式が好適である。
本発明のコンピュータプログラムは、同期回路設計用のハードウエア記述言語に非同期プロセス間通信を可能とするプリミティブが付加された非同期回路設計言語によって記述されたコードを論理合成してネットリストを生成する論理合成手段として、コンピュータシステムを機能させるためのコンピュータプログラムである。非同期回路設計言語によって記述されたコードを論理合成してネットリストを生成するコンピュータプログラムを実行することにより、実回路に実装可能な回路接続情報を得ることができる。
本発明のコンピュータプログラムにおいて、プリミティブとしては、例えば、非同期プロセス間通信において、リクエスト信号の受信後、アクノリッジ信号の送信前に任意の処理を実行するprobeコマンドを含むのが好ましい。probeコマンドを使用することで、プロセス間のハンドシェイクを開始する前に、任意の処理を行うことができる。
本発明のコンピュータプログラムにおいて、プリミティブとしては、例えば、ポート間の同期をとるためのsyncコマンドを含むのが好ましい。syncコマンドを使用することで、非同期プロセス間通信を制御できる。
本発明のコンピュータプログラムは、記録媒体に記録できる。記録媒体として、例えば、半導体メモリ素子(ROM、RAM、EEPROMなど)、磁気記録媒体(フレキシブルディスク、磁気カード等の磁気的にデータの読み取りが可能な記録媒体)、光記録媒体(CD−RAM、CD−ROM、DVD−RAM、DVD−ROM、DVD−R、PDディスク、MDディスク、MOディスク等の光学的にデータの読み取りが可能な記録媒体)が好適である。これらの記録媒体への情報の記録形式は特に限定されるものではない。
以下、各図を参照して本発明の好適な実施形態について説明する。
図1は業界標準Verilog HDL(ベリログエッチディーエル)を用いた典型的な回路設計フローを示している。同図において、単線の枠は設計記述又は設計プロセスの入出力データを意味し、二重線の枠は設計のプロセスを意味する。Design Specificationは該当の設計に関する仕様記述である。自然言語、表、図などの直感的で自然な記述を用いて予め定まっている仕様を詳細に記述する。これは製品の詳細仕様書のベースになるものである。Behavioral Descriptionは該当の設計に関する動作レベルの詳細記述である。Verilog HDLを用いて動作レベルの記述を行うことも可能であり、その場合は、Verilog HDL専用のシミュレータを用いてDesign Specificationとの整合性の検証を行うことができる。
RTL DescriptionはVerilog HDLを用いて記述されるが、Behavioral Descriptionがアーキテクチャ独立なのに対して、TL Descriptionはアーキテクチャに依存する。Behavioral Descriptionは論理合成の対象にはならないが、RTL Descriptionは論理合成可能な記述である。Behavioral DescriptionはDesign Specificationが正しく記述されているか否かを検証するためのシミュレーションに供せられるとともに、RTL Descriptionを用いたFunctional Verification & Testing用のテスト・ベクターの生成に用いられる。Logic Synthesisの出力であるGate-Level Netlistはセル・ライブラリーと合わせてFunctional Verification & Testingによる論理検証に供せられる。論理検証の後、Floor Planning Automatic Place & Route以降の物理検証が行われ、Physical Layoutを得る。Layout Verificationの結果を見て必要であればレイアウトに修正を施した後にImplementationを行い、チップ製作を行う。
図2は非同期回路におけるプロセス間通信(ハンドシェイク通信)を示している。非同期回路とはグローバル・クロックを用いないで各々のプロセス(最小機能回路)が自律的に又は他律的に局所的な協調をとりながら分散制御を行うことを目的として設計された回路をいう。同期設計では命令フェッチ、デコード、エグゼキューション、リード/ライト等の各オペレーションはグローバル・クロックに同期して行われるため、回路動作を高速にするには、クロック遅延、クロック・スキュー、クロックジッターなどの問題が生じるが、非同期設計ではプロセス同士が相互にハンドシェイクを通じて自律的に又は他律的に動作するため、このような問題は生じない。各々のプロセスは通信チャネルを通じて他のプロセスと接続し、局所的な協調の下、自律的に又は他律的にイベント駆動を行う。通信チャネルはその両端において、ポートと接続する。同図に示す例では、プロセスAはポートaを具備し、プロセスBはポートbを具備している。プロセスAとプロセスBはポートaとポートbにおいて通信チャネルを介して接続している。通信チャネルはRequest信号、Acknowledge信号、及びデータ信号から構成される。各々のプロセスは他のプロセスとは独立して並列動作が可能であり、他のプロセスの処理が完了するまで処理待ちする必要がない。プロセスは、所望の処理を実行する準備が完了した段階で処理を進めることができる。
図3はプロセス間の2相ハンドシェイキング(Non Return to Zero)を示しており、信号の立ち上がりエッジ又は立下りエッジでreq/Acknowlege信号を送受信する。例えば、上述の例で、ポートaからポートbにreq信号を送信するには、req信号をLレベルからHレベルに立ち上げ、又はHレベルからLレベルに立ち下げる。ポートbはreq信号の立ち上がりエッジ又は立ち下がりエッジを検出することにより、ポートaからポートbに向けてreq信号が送信されたことを検出する。ポートbがポートaへAcknowlege信号を返信するには、Acknowlege信号のレベルをLレベルからHレベルに立ち上げ、又はHレベルからLレベルに立ち下げればよい。これにより、ハンドシェイクが完了する。
図4はプロセス間の4相ハンドシェイキング(Return to Zero)を示しており、信号レベルでreq/Acknowlege信号を送受信する。例えば、上述の例で、ポートaからポートbにreq信号を送信するには、req信号をLレベルからHレベルに立ち上げればよい。ポートbはreq信号がHレベルに遷移したことを検出すると、req信号が送信されたことを検出する。ポートbがポートaへAcknowlege信号を返信するには、Acknowlege信号のレベルをLレベルからHレベルに立ち上げればよい。Acknowlege信号のレベルがHレベルに遷移したことを確認したポートaはreq信号のレベルをHレベルからLレベルに立ち下げる。req信号のレベルがHレベルからLレベルに遷移したことを確認したポートbはAcknowlege信号のレベルをHレベルから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信号線とデータ信号線の方向が同一であるので、Request信号線を削減できる。非同期設計においては、コントロール部とデータパス部の設計において2線エンコーディングを用いることで明示的なディレイ素子の挿入が不要となり、回路系がDelay Insensitiveとなる。本発明は図6に示すバンドル・データ方式と、図7又は図8に示す2線エンコーディング方式の何れにも対応できる。
図9は複数のプロセス間のハンドシェイク回路を示している。各々のプロセスは複数のポートを具備しており、複数のプロセスと通信できるように構成されている。同図に示すハンドシェイク回路においては、プロセスAはプロセスBと通信しながらプロセスCとも通信を行う。プロセスAはプロセスB,Cに対してActive(黒丸で示す)であるが、プロセスBはプロセスA,Cに対してPassive(白丸で示す)である。プロセスCはプロセスAに対してはPassiveであり、プロセスBに対してはActiveである。プロセスAに着目すると、ポートPa1の属性はActive Inputであるので、図6に示すようにRequest信号を自ら送信することによりハンドシェイクを起動してプロセスBからデータを受け取る。一方、ポートPa2の属性はActive Outputであるので、図8に示すようにRequest信号を自ら送信することによりハンドシェイクを起動してプロセスCにデータを送信する。
本発明ではVerilog HDL等のハードウエア記述言語に非同期プロセス間通信を可能とする新たなプリミティブを追加することにより、上述したハンドシェイク回路で交わされるプロセス間通信を実現した非同期回路設計言語を用いて回路設計を行う。図10は、図9に示したプロセスAを本発明の非同期回路設計言語を用いてコーディングしたコーディング例を示している。同図に示すコーディング例について文法に沿って説明すると、まず、モジュール宣言部においては、モジュール名「A」、入出力信号名「RESET,Pa1,Pa2」が宣言されている。入出力信号(ポート)宣言部では、1ビットの入力信号「RESET」と、2ビットの変数(レジスタ)「regA」が宣言されている。さらに、本発明の非同期回路設計言語によって新たに導入された宣言文cportによって、非同期プロセス間通信を行うためのポート名「Pa1,Pa2」とその属性が宣言されている。ポートPa1の属性はActive Inputであり、ポートPa2の属性はActive Outputである。プロセスBからの受信はreceiveコマンドによって行われ、プロセスCへの送信はsendコマンドによって行われる。receiveコマンドとsendコマンドは本発明の非同期回路設計言語によって新たに導入されたコマンドである。always文を参照すると、初期化信号RESETが解除されるのを待って、ポートPa1経由で受信したプロセスBからのデータは変数regAに取り込まれ、ポートPa2経由でプロセスCに送信されるようにコーディングされている。図9に示したプロセスB,Cを非同期回路設計言語にコーディングすると、それぞれ図11、図12に示すようになる。
図13は非同期回路設計ツール100の機能ブロック図である。非同期回路設計ツール100は、トランスレータ10を備えている。トランスレータ10は、同期回路設計用のハードウエア記述言語(例えば、Verilog HDL又はVHDLのサブセット又はフルセット)に非同期プロセス間通信を可能とするプリミティブが追加された非同期回路設計言語によって記述されたコード40を同期回路設計用のハードウエア記述言語(例えば、Verilog HDL又はVHDL)50に変換する変換手段11を備えている。コード40を同期回路設計用のハードウエア記述言語50に変換することで、非同期回路設計言語で記述された回路設計を同期回路用の市販シミュレータで検証することができる。トランスレータ10は、コンピュータシステムを変換手段11として機能させるコンピュータプログラムをコンピュータシステム上で実行させることにより実現される。
図15はそのコード変換例を示している。同図のVerilogコードは図7に対応しているものの、2線式エンコーディングではなく、データ・バスを含めた信号線がハイ・インピーダンスであるか否かを判定する回路になっている。実際の回路は2線式エンコーディングによって実装される。即ち、このVerilogコードはシミュレーション検証に使用されるもので、論理合成用ではない。モジュール宣言部においては、モジュール名「A」、入出力信号名「RESET,Pa1_req,Pa1_data,Pa2_data,Pa2_ack」が宣言されている。入出力信号宣言部では、1ビットの入力信号「RESET」と、2ビットの変数「regA」と、1ビットの出力信号「Pa1_req」と、2ビットの入力データ線「Pa1_data」と、2ビットの出力データ線「Pa2_data」と、1ビットの入力信号線「Pa2_ack」が宣言されている。既に述べたように、本実施形態では4相ハンドシェイキングを採用しているので、図4、図7を参照しながら、図15のVerilogコードについて説明を進める。
Verilogコードの最初のbegin-endブロックは図4に説明した手順を踏んでいるが、信号線にデータが出力されているか否かの判定は2線式エンコーディングのスキームの代わりに、単線式のままハイ・インピーダンスか否かの判定によって行っている。即ち、出力信号Pa1_reqは図7のRequest信号に相当し、入力信号Pa1_dataはAcknowledge信号又はデータ信号に相当する。まず、forceコマンドによってPa1_reqをHighとして、Requestを送出し、入力データ線Pa1_dataにデータが出力されるまで、即ち、ハイ・インピーダンスでなくなるまで待つ。データが入力データ線Pa1_dataに出力されてならば、内部レジスタregAに取り込む。2番目のbegin-endブロックは図8に説明した手順を踏んでおり、出力データ線Pa2_dataがRequest信号又はデータ信号に相当し、入力信号線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本のチャネルをCH1、CH2及びCH3として宣言している。それぞれのプロセスのインスタンスはこれらのチャネルによって接続されている。このコーディング例を上述したトランスレータ10によってVerilogコードに変換すると、図17に示すようなVerilogコードが得られる。同図のVerilogコードに示すように、図16のチャネルCH(n=1,2,3)は2種類の配線(wire)CHn_ctrl(n=1,2,3)及びCHn_data(n=1,2,3)に展開される。プロセスAのポートPa1_reqは配線CH1_ctrlに接続され、ポートPa1_dataは配線CH1_dataに接続される。同様に、プロセスCのポートPc3_ackは配線CH3_ctrに接続され、ポートPc3_dataは配線CH3_dataに接続される。
尚、上述の説明においては、非同期回路設計言語で記述されたコードを同期回路設計言語に変換してから同期回路用の市販シミュレータで機能検証する場合を例示したが、図14に示すように、専用シミュレータ20を備える非同期回路設計ツール100によって機能検証を行ってもよい。専用シミュレータ20は、同期回路設計用のハードウエア記述言語に非同期プロセス間通信を可能とするプリミティブが付加された非同期回路設計言語によって記述されたコード40の非同期回路設計を機能検証するための検証手段21として機能する。検証手段21としては、コンパイル方式により非同期回路設計言語を中間言語に変換してから機能検証を行うものでもよく、或いはインタープリタ方式により非同期回路設計言語を逐次解釈しながら機能検証を行うものでもよい。専用シミュレータ20はコンピュータシステムを検証手段21として機能させるコンピュータプログラムをコンピュータシステム上で実行させることにより実現される。
非同期回路設計言語のコードは本発明の論理合成ツールによって、実装可能なネットリスト(回路の接続情報)に変換される。既に説明したように、プロセスAのトランスレータ10の出力リストでは実装困難である。データ信号線のハイ・インピーダンスを検出することによってデータの到来を検出することは実回路においては実用的ではないからである。本発明の論理合成ツールについて、2線式エンコーディング(Dual-rail Encoding)方式による実装を前提に説明する。図18は2線式エンコーディングのコーディング・スキームの一例である。図19は4ビットのデータ転送に2線式エンコーディング方式を用いた場合の回路図である。説明の便宜上、d0ビットに着目して説明を行う。まず、最初は何も意味のあるデータを出力してないので、Send信号はLowであり、全てのデータ線ペアは{0,0}となっている。d0に送信したいデータ、例えば、1を出力した後、Send信号をHighにすると、{d0.0,d0.1}={0,1}となる。受信側の各データ線ペアに備わるデコーダ(4ビットの場合は4個のデコーダ)は、やはり、図18のスキームに従ってデータの到来を検出し、データを入手する。各ビットに対応するデコーダからの到着信号が全て揃うのを待つために、Muller-Cエレメントを用いている。Muller-Cエレメントへの入力が全てHighになった時点で、Receive信号がHighとなり、4ビット・データの到着となる。
上述した非同期回路設計言語は、図20に示すように、論理合成ツール30を備えた非同期回路設計ツール100によって、実装可能なVerilogネットリストに変換される。論理合成ツール30は、同期回路設計用のハードウエア記述言語に非同期プロセス間通信を可能とするプリミティブが付加された非同期回路設計言語によって記述されたコード40を論理合成してネットリスト60を生成する論理合成手段31を備えている。論理合成ツール30は同期回路設計用のセルと非同期回路設計用のセルから成るセル・ライブラリー32を更に備えている。論理合成手段31はセル・ライブラリー32を参照してネットリスト60を生成する。論理合成ツール30はコンピュータシステムを論理合成手段31として機能させるコンピュータプログラムをコンピュータシステム上で実行させることにより実現される。
図21は、図10に示すプロセスAのコーディング例を論理合成ツール30で変換したネットリストである。このネットリストの宣言文を参照すると、図10のリストに記述された2ビットのポートは2線式エンコーディングのためにinput [3:0] Pa1_d; output [3:0] Pa2_d;と展開されて4ビットのポートに変換されていることがわかる。同図のリストに対応する回路図を図22に示す。同図に示す回路を説明する前に、この回路に使用されている個々のセルについて説明を加える。これらのセルは論理合成ツール30のセル・ライブラリー32に属するものである。
図23はreg-simple接続図を示している。このセルは1ビットデータの2線式エンコーディング方式におけるデコーダである。d0,d1は1ビットの入力データの2線であり、図18のスキームに則ってデコードされたデータが内部レジスタにセットされるとともに、出力線Q,Q_に出力される。このとき、データの到着を示すput信号がHighとなる。図24はbit-to-dual接続図を示している。send信号がHighになったとき、入力信号Dを2線式エンコーディングして出力信号d0,d1に出力する。図25はQ_element接続図を示している。このセルは図26に示すシーケンスを実行する。図27はMuller-Cエレメント接続図を示している。A,BともにHighのとき、ZがHighとなり、A,BともにLowのとき、ZがLowとなる。それ以外のときは、Z出力は変化しない。
ここで、図22に示したプロセスAの回路図について説明を行う。点線で囲まれた部分が論理合成ツール30によって生成された接続図であり、論理合成ツール30に付帯するセル・ライブラリー32から必要なセルを用いて図20に示したリストに記述されている回路を構成している。点線上の丸は対応する信号線が宣言文cportで指定された入出力ポートであることを示している。次に、この回路の動作手順を説明する。図10のリストには明示的に使用されてないが、論理合成の出力である図21のリストには初期化信号RESETが挿入されている。最初はRESET信号はHighであるから、Q_elementのlc入力X8_cはLowであり、図26に示すシーケンスの初期状態である。RESETがLowとなると、Pa2_cもLowであるから、X8_cはHighとなる(t1)。これは、図26において、入力lcがHighとなることを意味するため、同図に示すシーケンスが開始される。同図に示すように、入力lcがHighに遷移したことを受けて、出力rcがHighに遷移する(t2)。これは、図22において、Pa1_cがHighに遷移することを意味する。Pa1_cはプロセスB(図9参照)へのRequest信号である。
プロセスBはこのRequest信号を受けて2線式エンコーディングされたデータをPa1_d[n] (n=0,1,2,3)に送出する。このデータは復号されて、reg-simple内部にregA[0]及びregA[1]としてラッチされる(regA[0]_及びregA[1]_は反転出力である)。同時にこのタイミングで、データの受信を認めるX1_d及びX2_dがHighとなり、Muller-Cエレメントに入力される。X1_d及びX2_dのデータ線の長さのバラツキなどによってデータが到着するタイミングにはバラツキが生じ得るため、X1_d及びX2_dが共にHighとなるタイミングは同時とは限らない。Muller-Cエレメントの出力X0_dはX1_d及びX2_dが共にHighとなった時点でHighとなる(t3)。図22のX0_dは図26ではrdに相当し、これがHighに遷移したのを受けてQ_elemはrc、即ち、図22のPa1_cをLowにする(t4)。プロセスBは、Pa1_cがLowに遷移したことを受けて、プロセスBからプロセスAへ送出したデータが受領されたことを検出し、データの送出を取り止めるべく、Nullをデータ線上に出力する。reg-simpleはデータ線上にNullが出力された時点でX1_d及びX2_dをLowとするので、Muller-CエレメントはX1_d及びX2_dが共にLowとなった時点でX0_dをLowとする(t5)。これで、プロセスBとのハンドシェイキングは完結した。
図22のX0_dがLowになることは、図26において、rdがLowに遷移することを意味するから、Q_elemはld、即ち、図22のX8_ddをHighとする(t6)。X8_ddはbit-to-dualのsend信号である。bit-to-dualはreg-simpleに保持されているデータregA[0]及びregA[1]を2線式エンコーディングしてPa2_d[n] (n=0,1,2,3)に送出する。このデータ送出はプロセスC(図9参照)にとってはプロセスAからのRequestであるから、プロセスCはこのRequesを受け取ってからAcknowlege信号であるPa2_cをHighとする。Pa2_cがHighとなると、NORの出力であるX8_c(Q_elemの入力信号lc)はとLowなる(t7)。Q_elemは入力lcがLowに遷移したことを受けて、出力信号ld(bit-to-dualのsend信号)としてのX8_ddをLowに遷移させる(t8)。bit-to-dualはsend信号がLowに遷移したことを受けて、2線式エンコードされたデータの送出を止め、Nullをデータ線Pa2_d[n] (n=0,1,2,3)に出力する。プロセスCはNullを受信することで、AcknowlegeがプロセスAによって受信されたことを検出し、Acknowlege信号であるPa2_cをHighに遷移させる。これにより、プロセスCとのシーケンスも完結するが、図10のリストに見るように、always wait(!RESET)としているので、RESET信号がHighにならない限り、プロセスB及びプロセスCとの非同期通信は繰り返される。
本発明のprobe及びsyncを用いれば、更に効率的な回路をより簡単に構成することが可能である。まず、その好適な実施例を説明する前に、Verilog HDLのサブセットに追加された通信用プリミティブを以下にまとめる。
1.channel(チャネル) 新たに追加されたdata typeである。下記cportを接続する。
2.cport(シーポート) 新たに追加されたdata typeである。以下の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信号を待って、まず別の処理を行った後に、送信又は受信のハンドシェイキングを行うことができる。
図28は、probeの使用例1を非同期回路設計言語によって記述したコーディング例である。同図に示すコーディング例において、「…」は任意のステートメントを表している。モジュール宣言部においては、モジュール名「M」、入出力信号名「P」が宣言されている。入出力信号(ポート)宣言部においては、ポートPは8ビットのcport passive outputであることが宣言されている。if文では、probe(P)のコマンドが返す値が1ビットの1である場合に、次のステートメント(if文とsend(P,a)との間の「…」)を実行するように記述されている。send(P,a)は変数aから読み出した値を、ポートPを通じて対向ポートに送信するためのコマンドである。
図29は、probeの使用例1をVerilogコードに変換したコード変換例である。モジュール宣言部においては、モジュール名「M」、入出力信号名「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を通じてデータ(Acknowlege信号)を送信する。ここで、図29の説明に戻ると、if文は、P_ctrlの値が1ビットの1である場合に、次のステートメント(if文とbeginとの間の「…」)を実行するようにコーディングされている。begin〜end文は、send(P,a)をVerilogコードに変換したステートメントである。このbegin〜end文について、図31を参照しながら説明する。まず、P_ctrlがハイ・インピーダンスでなくなるのを待ち、probeコマンドを実行した後に、P_dataに変数aの値を出力する。次いで、P_ctrlがハイ・インピーダンスになるのを待ち、P_dataを開放する(4相ハンドシェイキング)。ここで、P_ctrlはRequest信号に相当し、P_dataはAcknowlege信号に相当する。このように、probeコマンドを用いることによって、対向ポートからRequest信号を受信した後、当該対向ポートにAcknowlege信号を返答する前に、任意のステートメント「…」を実行することができる。
図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コードに変換したコード変換例である。モジュール宣言部においては、モジュール名「M」、入出力信号名「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を通じてAcknowlege信号を返答する。ここで、図33の説明に戻ると、wait文は、P_dataの値が8ビットの所定値である場合(ハイ・インピーダンスでない場合)に、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はAcknowlege信号に相当する。このように、probeコマンドを用いることによって、対向ポートからRequest信号を受信した後、当該対向ポートにAcknowlege信号を返答する前に、case文で指定された任意のステートメント「…」を実行することができる。
図36は、syncの使用例1を非同期回路設計言語によって記述したコーディング例である。モジュール宣言部においては、モジュール名「M」、入出力信号名「P」が宣言されている。入出力信号宣言部においては、ポートPはcport passive syncであることが宣言されている。sync(P)はポートPを通じてポート間の同期をとるためのコマンドである。
図37は、syncの使用例1をVerilogコードに変換したコード変換例である。モジュール宣言部においては、モジュール名「M」、入出力信号名「P_ctrl,P_data」が宣言されている。入出力信号宣言部においては、入力信号P_ctrlと、出力信号P_dataが宣言されている。この状態を図示すると、図38に示すようになる。プロセスM,XはポートP,Qを通じて接続している。ポートPはpassive sync、ポートQはactive syncである。更に、プロセスM,NはポートR,Sを通じて接続している。ポート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間の通信を制御する手順を例示する。プロセスMは、P_ctrlがハイ・インピーダンスでなくなることにより、ポートQからのRequest信号の到来を検出すると、プロセスNに対してデータ転送を要求するRequest信号をR_ctrlに出力する。すると、プロセスNからR_dataにデータが出力される。このデータはRequest信号に対するAcknowlege信号である。プロセスMはR_dataにデータが出力されたことを受けて、R_ctrlをネゲートする。プロセスMはR_dataからのデータ受信を完了すると、P_dataにAcknowlege信号を出力する。すると、P_ctrlはネゲートされる。このように、syncコマンドを使うことによって、プロセス間の通信を制御することも可能である。
図40は、syncの使用例2を非同期回路設計言語によって記述したコーディング例である。モジュール宣言部においては、モジュール名「M」、入出力信号名「P」が宣言されている。入出力信号宣言部においては、ポートPはcport active syncであることが宣言されている。if文はprobe(P)の返す値が1ビットの1である場合に、if文とsync(P)との間のステートメント「…」を実行するように記述されている。本例はprobeコマンドを使用する例を示しているが、syncコマンドを使用する上で、if文は必須ではなく、省略してもよい。
図41は、syncの使用例2をVerilogコードに変換したコード変換例である。モジュール宣言部においては、モジュール名「M」、入出力信号名「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(Verilog HDL及びVHDL)に習熟している技術者が比較的容易に非同期回路を設計することができる環境を提供できる。また、これにより、半導体プロセスの微細化が進むにつれて顕在化してきた同期回路設計の限界(電力問題、クロック・スキュー問題など)を超えて、プロセスが提供する能力を従来よりも短期間に、低コストで、高い信頼性・検証性をもって引き出すことが可能になる。更に、非同期回路の移植性は高いので、本発明により開発された非同期回路設計技術をIPとして繰り返し活用することが可能であるので、技術者不足や短期間の開発に対応しやすくなる。更に、本実施形態により極めて電磁輻射の少ない非同期回路を様々な製品の為に開発する環境を提供できる。本発明の非同期回路設計技術は超低消費電力VLSI、それを組み込んだ半完成品又は完成品(PDA、スマートカード、電子ブックなど)、TFT技術を用いたLSI、それを用いた半完成品又は完成品に適用できる。具体的には、ウェアラブル機器、玩具、家庭用防犯センサー関連機器、RFIDなどのバッテリーを搭載しない電子機器、自動車搭載機器、医療機器、軍需製品などに応用できる。
業界標準Verilog HDLを用いた典型的な回路設計フローである。 非同期回路におけるプロセス間通信を示す図である。 プロセス間の2相ハンドシェイクを示す図である。 プロセス間の4相ハンドシェイクを示す図である。 ポートの属性の組み合わせを示す図である。 ポート属性とチャネル信号の説明図である。 2線エンコーディングの説明図である。 2線エンコーディングの説明図である。 ハンドシェイク回路の説明図である。 プロセスAの非同期設計記述である。 プロセスBの非同期設計記述である。 プロセスCの非同期設計記述である。 トランスレータの説明図である。 専用シミュレータの説明図である。 プロセスAのVerilogコード変換例である。 ハンドシェイク回路の非同期設計記述である。 ハンドシェイク回路のVerilogコード変換例である。 2線式エンコーディングの変換スキームである。 2線式エンコーダ/デコーダの説明図である。 論理合成ツールの説明図である。 プロセスAのネットリストである。 プロセスAの回路図である。 reg-simple接続図である。 bit-to-dual接続図である。 Q_elem接続図である。 Q_elemの入出力信号のシーケンスである。 Muller-Cエレメント接続図である。 probeコマンドを用いた非同期回路設計コードである。 Verilogコードのコーディング例である。 非同期プロセス間通信の説明図である。 プロセス間のハンドシェイクの説明図である。 probeコマンドを用いた非同期回路設計コードである。 Verilogコードのコーディング例である。 非同期プロセス間通信の説明図である。 プロセス間のハンドシェイクの説明図である。 syncコマンドを用いた非同期回路設計コードである。 Verilogコードのコーディング例である。 非同期プロセス間通信の説明図である。 プロセス間のハンドシェイクの説明図である。 syncコマンドを用いた非同期回路設計コードである。 Verilogコードのコーディング例である。
符号の説明
10…トランスレータ 11…変換手段 20…専用シミュレータ 21…検証手段 30…論理合成ツール 31…論理合成手段 32…セル・ライブラリー 40…非同期回路設計言語 50…Verilogコード 60…ネットリスト

Claims (4)

  1. ベリログエッチディーエルに非同期プロセス間通信を可能とするプリミティブが付加された非同期回路設計言語によって記述されたコードを論理合成してネットリストを生成する論理合成手段を備えた論理合成ツールを含み、
    前記論理合成ツールは、同期回路設計用のセルと非同期回路設計用のセルとから成るセル・ライブラリーを更に備え、前記論理合成手段は、前記セル・ライブラリーを参照して前記ネットリストを生成し、
    前記非同期回路設計言語のプリミティブは、データ型としてシーポートとチャネルとを含み、前記シーポートを修飾する属性としてアクティブ又はパッシブとインプット又はアウトプット又はシンクとを含み、コマンドとしてセンドとレシーブとシンクとを含み、ファンクションとしてプローブを含む、非同期回路設計装置。
  2. 請求項に記載の非同期回路設計装置であって、前記ファンクションとしてプローブを用いる、非同期回路設計装置。
  3. ベリログエッチディーエルに非同期プロセス間通信の記述を可能とするプリミティブが付加された非同期回路設計言語によって記述されたコードを論理合成してネットリストを生成する論理合成手段と、同期回路設計用のセルと非同期回路設計用のセルとから成るセル・ライブラリーとを備えたコンピュータシステムに実行されるコンピュータプログラムであって、
    前記論理合成手段が前記セル・ライブラリーを参照して前記ネットリストを生成するステップを含み、
    前記非同期回路設計言語のプリミティブは、データ型としてシーポートとチャネルとを含み、前記シーポートを修飾する属性としてアクティブ又はパッシブとインプット又はアウトプット又はシンクとを含み、コマンドとしてセンドとレシーブとシンクとを含み、ファンクションとしてプローブを含む、コンピュータプログラム。
  4. 請求項に記載のコンピュータプログラムであって、前記ファンクションとしてプローブを用いる、コンピュータプログラム。
JP2005281558A 2005-01-19 2005-09-28 非同期回路設計装置及びコンピュータプログラム Expired - Fee Related JP4528704B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW094142578A TWI315046B (en) 2005-01-19 2005-12-02 Designing method and program product of asynchronous circuit
KR1020050118069A KR100803254B1 (ko) 2005-01-19 2005-12-06 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
CN2006100061458A CN1808451B (zh) 2005-01-19 2006-01-19 非同步电路设计工具

Applications Claiming Priority (1)

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

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2009007444A Division JP2009134739A (ja) 2005-01-19 2009-01-16 シミュレーション装置、変換装置、非同期回路、及びic

Publications (2)

Publication Number Publication Date
JP2006202262A JP2006202262A (ja) 2006-08-03
JP4528704B2 true JP4528704B2 (ja) 2010-08-18

Family

ID=36840347

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2005281558A Expired - Fee Related JP4528704B2 (ja) 2005-01-19 2005-09-28 非同期回路設計装置及びコンピュータプログラム
JP2009007444A Withdrawn JP2009134739A (ja) 2005-01-19 2009-01-16 シミュレーション装置、変換装置、非同期回路、及びic

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2009007444A Withdrawn JP2009134739A (ja) 2005-01-19 2009-01-16 シミュレーション装置、変換装置、非同期回路、及びic

Country Status (4)

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

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及其工作方法
WO2023228213A1 (en) * 2022-05-25 2023-11-30 PANDEY, Uma Data path elements 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
WO2002003310A1 (en) * 2000-07-05 2002-01-10 Meyer Steven J Mixed signal simulation
US6785875B2 (en) * 2002-08-15 2004-08-31 Fulcrum Microsystems, Inc. Methods and apparatus for facilitating physical synthesis of an integrated circuit design
JP4721707B2 (ja) * 2002-12-13 2011-07-13 株式会社アドバンテスト タイミング発生回路とこのタイミング発生回路を備えた半導体試験装置
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
CN1808451B (zh) 2010-12-08
JP2009134739A (ja) 2009-06-18
JP2006202262A (ja) 2006-08-03
TW200632702A (en) 2006-09-16
TWI315046B (en) 2009-09-21
US7418676B2 (en) 2008-08-26
CN1808451A (zh) 2006-07-26
US20060190851A1 (en) 2006-08-24

Similar Documents

Publication Publication Date Title
JP4528704B2 (ja) 非同期回路設計装置及びコンピュータプログラム
JP4014080B2 (ja) デジタル回路の設計装置および設計方法、並びに、プログラムおよび格納媒体
JP2011512602A (ja) 同期から非同期への論理変換
EP1299826A1 (en) Circuit component interface
CN112232000B (zh) 跨多个验证域的验证系统、验证方法、验证设备
Josephs et al. Modeling and design of asynchronous circuits
CN1504900B (zh) 自内存读取数据的控制电路及其方法
US7184946B2 (en) Co-simulation via boundary scan interface
US7496869B1 (en) Method and apparatus for implementing a program language description of a circuit design for an integrated circuit
KR100830110B1 (ko) 비동기 회로의 프로세스간 통신 방법 및 시뮬레이션 방법
CN111176926B (zh) 一种基于双口sram的ip核仿真系统及仿真方法
Humbel et al. A Model-Checked I 2 C Specification
KR100803254B1 (ko) 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
Vercauteren et al. Hardware/software communication and system integration for embedded architectures
Vij et al. Interfacing synchronous and asynchronous domains for open core protocol
Decaluwe MyHDL manual
Cyr et al. Generation of processor interface for SoC using standard communication protocol
Aggarwal et al. SCF: A device-and language-independent task coordination framework for reconfigurable, heterogeneous systems
Bjerregaard et al. A channel library for asynchronous circuit design supporting mixed-mode modeling
JP2019016168A (ja) シミュレーションプログラム、方法、及び装置
KR100552668B1 (ko) 하드웨어-소프트웨어 인터페이스 합성방법
El-Shiekh et al. IPXACT-Based RTL Generation Tool
KR101026678B1 (ko) 에뮬레이터의 인터페이스 장치 및 그 방법
Zhenxin et al. A UML-based approach for heterogeneous IP integration
Chaganti Functional Coverage and Assertion Based Verification of Communication Protocol Using System Verilog

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080815

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080825

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081024

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20081117

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090116

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20090128

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20090227

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100607

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130611

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130611

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees