JP3026979B2 - シリコン コンパイラ方法および装置 - Google Patents
シリコン コンパイラ方法および装置Info
- Publication number
- JP3026979B2 JP3026979B2 JP1031247A JP3124789A JP3026979B2 JP 3026979 B2 JP3026979 B2 JP 3026979B2 JP 1031247 A JP1031247 A JP 1031247A JP 3124789 A JP3124789 A JP 3124789A JP 3026979 B2 JP3026979 B2 JP 3026979B2
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- abstract
- basic
- representation
- channel
- 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
Links
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 title claims description 34
- 229910052710 silicon Inorganic materials 0.000 title claims description 34
- 239000010703 silicon Substances 0.000 title claims description 34
- 238000000034 method Methods 0.000 title claims description 28
- 230000006854 communication Effects 0.000 claims description 59
- 238000004891 communication Methods 0.000 claims description 57
- 238000006243 chemical reaction Methods 0.000 claims description 24
- 230000014509 gene expression Effects 0.000 claims description 21
- 238000013519 translation Methods 0.000 claims description 15
- 238000004458 analytical method Methods 0.000 claims description 9
- 239000000470 constituent Substances 0.000 claims description 9
- 230000007246 mechanism Effects 0.000 claims description 5
- 230000001131 transforming effect Effects 0.000 claims 2
- XUKUURHRXDUEBC-KAYWLYCHSA-N Atorvastatin Chemical compound C=1C=CC=CC=1C1=C(C=2C=CC(F)=CC=2)N(CC[C@@H](O)C[C@@H](O)CC(O)=O)C(C(C)C)=C1C(=O)NC1=CC=CC=C1 XUKUURHRXDUEBC-KAYWLYCHSA-N 0.000 claims 1
- 230000007613 environmental effect Effects 0.000 claims 1
- 238000000354 decomposition reaction Methods 0.000 description 26
- 230000009466 transformation Effects 0.000 description 21
- 230000015572 biosynthetic process Effects 0.000 description 18
- 238000003786 synthesis reaction Methods 0.000 description 18
- 238000005457 optimization Methods 0.000 description 14
- 230000014616 translation Effects 0.000 description 14
- 238000000844 transformation Methods 0.000 description 13
- 230000000694 effects Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 230000007704 transition Effects 0.000 description 11
- 239000000872 buffer Substances 0.000 description 10
- 239000000203 mixture Substances 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 230000009471 action Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 230000002441 reversible effect Effects 0.000 description 6
- 238000004519 manufacturing process Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 239000013256 coordination polymer Substances 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 125000002015 acyclic group Chemical group 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 230000011664 signaling Effects 0.000 description 3
- JBRZTFJDHDCESZ-UHFFFAOYSA-N AsGa Chemical compound [As]#[Ga] JBRZTFJDHDCESZ-UHFFFAOYSA-N 0.000 description 2
- 229910001218 Gallium arsenide Inorganic materials 0.000 description 2
- 210000001072 colon Anatomy 0.000 description 2
- 230000008030 elimination Effects 0.000 description 2
- 238000003379 elimination reaction Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 241000630329 Scomberesox saurus saurus Species 0.000 description 1
- 235000013405 beer Nutrition 0.000 description 1
- 230000001364 causal effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000013067 intermediate product Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000001394 metastastic effect Effects 0.000 description 1
- 206010061289 metastatic neoplasm Diseases 0.000 description 1
- 231100000957 no side effect Toxicity 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000000746 purification Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000001308 synthesis method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
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)
- Devices For Executing Special Programs (AREA)
- Semiconductor Integrated Circuits (AREA)
Description
【発明の詳細な説明】 〔1〕緒言 〔1.1〕発明の背景 本発明はシリコン コパイラ方法に関するものであ
る。シリコン コンパイラは、集積回路により実行すべ
き機能が特定される場合、この種集積回路用のシリコン
レイアウトを生成するに必要なステップのシーケンス
である。本発明はシリコンの使用に限定されるものでな
く、例えば、ガリウム砒素の場合のように、他の基板材
料を使用する場合にも、同じ技術が適用される。このよ
うなシリコン コンパイラは、狭義的には爾後における
レイアウトの生産を単体化し、直進的にする手法をもた
らす。この場合、このような生産にはトランジスタの大
きさ、処理パラメータおよび他の基本量の挿入を含む。
また、本発明はシリコンコンパイラ装置にも関するもの
である。実際上、コンパイラ方法の種々の部分は容易に
手で実行することが可能であるが、この種装置の心臓部
はマン・マシン会話および特定のシリコン コンパイラ
プログラムを実行するための周辺装置を含む汎用オペ
レーティング システムを有するコンピュータである。
シリコン コンパイラ装置の機能は、特定のデジタル計
算を限定する原始テキストを受容し、それから集積回路
レイアウトの詳細な描写を生成することにより、集積回
路が事前に決められた計算を実行しうるようにすること
である。ここで、原始テキストを表現する言語は明白な
平行性に対する構造を与えるほか、明白な順次性を与え
るものとする必要がある。このような言語はしばしば無
条件並行言語(imperative−concurrent language)と
呼ばれ、例として、広く知られている言語OCCAM,Ada,CS
PおよびCCSがある。設計者はこれらの言語でどのような
補助計算を並行的に実行し、どのような補助計算を直列
的に実行する必要があるかを表現することができる。ま
た、これら2つの特徴の組合せにより、シリコン コン
パイラ方法にアーキテクチャーの自由度を与え、意図す
る目的(ターゲット)レイアウトに対する選択を与える
ことを可能にしうることが分る。無条件並行言語の本質
的特徴を現わす2つの小言語(“CP−0"および“CP−
1")に関しては、第3節に記載することにする。
る。シリコン コンパイラは、集積回路により実行すべ
き機能が特定される場合、この種集積回路用のシリコン
レイアウトを生成するに必要なステップのシーケンス
である。本発明はシリコンの使用に限定されるものでな
く、例えば、ガリウム砒素の場合のように、他の基板材
料を使用する場合にも、同じ技術が適用される。このよ
うなシリコン コンパイラは、狭義的には爾後における
レイアウトの生産を単体化し、直進的にする手法をもた
らす。この場合、このような生産にはトランジスタの大
きさ、処理パラメータおよび他の基本量の挿入を含む。
また、本発明はシリコンコンパイラ装置にも関するもの
である。実際上、コンパイラ方法の種々の部分は容易に
手で実行することが可能であるが、この種装置の心臓部
はマン・マシン会話および特定のシリコン コンパイラ
プログラムを実行するための周辺装置を含む汎用オペ
レーティング システムを有するコンピュータである。
シリコン コンパイラ装置の機能は、特定のデジタル計
算を限定する原始テキストを受容し、それから集積回路
レイアウトの詳細な描写を生成することにより、集積回
路が事前に決められた計算を実行しうるようにすること
である。ここで、原始テキストを表現する言語は明白な
平行性に対する構造を与えるほか、明白な順次性を与え
るものとする必要がある。このような言語はしばしば無
条件並行言語(imperative−concurrent language)と
呼ばれ、例として、広く知られている言語OCCAM,Ada,CS
PおよびCCSがある。設計者はこれらの言語でどのような
補助計算を並行的に実行し、どのような補助計算を直列
的に実行する必要があるかを表現することができる。ま
た、これら2つの特徴の組合せにより、シリコン コン
パイラ方法にアーキテクチャーの自由度を与え、意図す
る目的(ターゲット)レイアウトに対する選択を与える
ことを可能にしうることが分る。無条件並行言語の本質
的特徴を現わす2つの小言語(“CP−0"および“CP−
1")に関しては、第3節に記載することにする。
〔1.2〕説明の要約 本発明の目的は、無条件並行言語で原始テキスト上で
作動し、かつ融通性を最大に保持し、価格とマッチした
結果を許容しながら、VLSIレイアウトを作製しうるよう
なシリコン コンパイラ方法および装置を提供しようと
するものである。この目的はシリコン コンパイラ装置
により実現できる。このような組合せ装置はともに生産
プロセスを構成する部分サービスの連続を与え、かつそ
れ自体で集積回路を開発し、設計するための強力なツー
ルを意味する。“シリコン コンパイラ”なる語句は、
レイアウトを作製しうる種々のセットアップ用として早
くから漠然と使用されてきたが、それらの情況において
は、システムの垂直集積および種々の算術構造の可能性
の双方が極端に制限されていた。本発明によるときは、
きわめて広範囲の入力アルゴリズムを受入れることがで
き、また可能な実現技術上の制約もきわめて僅かであ
る。さらに、本発明方法を適用することにより正確に作
動する回路を生成することが可能となり、したがって、
プロセシング付き(再)設計サイクル((re)design−
cum−processing cycle)を通しての所要サイクル数が
少なくなる。ただし、そのための代償としては、シリコ
ン面積の幾分の増加もしくは作動速度の幾分の低下が考
えられる。
作動し、かつ融通性を最大に保持し、価格とマッチした
結果を許容しながら、VLSIレイアウトを作製しうるよう
なシリコン コンパイラ方法および装置を提供しようと
するものである。この目的はシリコン コンパイラ装置
により実現できる。このような組合せ装置はともに生産
プロセスを構成する部分サービスの連続を与え、かつそ
れ自体で集積回路を開発し、設計するための強力なツー
ルを意味する。“シリコン コンパイラ”なる語句は、
レイアウトを作製しうる種々のセットアップ用として早
くから漠然と使用されてきたが、それらの情況において
は、システムの垂直集積および種々の算術構造の可能性
の双方が極端に制限されていた。本発明によるときは、
きわめて広範囲の入力アルゴリズムを受入れることがで
き、また可能な実現技術上の制約もきわめて僅かであ
る。さらに、本発明方法を適用することにより正確に作
動する回路を生成することが可能となり、したがって、
プロセシング付き(再)設計サイクル((re)design−
cum−processing cycle)を通しての所要サイクル数が
少なくなる。ただし、そのための代償としては、シリコ
ン面積の幾分の増加もしくは作動速度の幾分の低下が考
えられる。
〔1.3〕発明の他の局面 本発明の中心的局面を表わすものとしては、特に抽象
回路(abstract−circuit)の提供であると考えられ
る。したがって、本発明は抽象回路表現を与えるための
モジュールにも関するものである。
回路(abstract−circuit)の提供であると考えられ
る。したがって、本発明は抽象回路表現を与えるための
モジュールにも関するものである。
また、本発明は上述のモジュールにより生成される抽
象回路にも関するものである。この種回路はレイアウト
製造の中間生産物とすることができる。この場合、抽象
回路は生成プロセス内で実行すべき任意の後のステップ
とは無関係である。
象回路にも関するものである。この種回路はレイアウト
製造の中間生産物とすることができる。この場合、抽象
回路は生成プロセス内で実行すべき任意の後のステップ
とは無関係である。
また、本発明は上記により生成される電子回路にも関
する。この場合、抽象回路の使用は構造的および幾何学
的にそれから抽出した電子回路の特殊な特性への翻訳を
行う。
する。この場合、抽象回路の使用は構造的および幾何学
的にそれから抽出した電子回路の特殊な特性への翻訳を
行う。
また、本発明は上記により生成されるリセットフリー
電子回路にも関する。この場合は、抽象回路表現の暗黙
初期設定機構により、リセット ハードウエアを必要と
しない。
電子回路にも関する。この場合は、抽象回路表現の暗黙
初期設定機構により、リセット ハードウエアを必要と
しない。
〔1.4〕実施例について 以下図面により本発明を説明する。
一般に、シリコン コンパイラ プログラムがラン
(実行)しているコンピュータに関しては、一般構造で
あるため、その説明は省略することにする。また、シリ
コン コンパイラ プログラムのある部分を活性または
不活性とし、かつ、このような部分間における種々のレ
ベルでの相互同期を制御するオペレーティング システ
ムも一般の多重処理オペレーティング システムである
ので、便宜および簡単のためこの種コンピュータおよび
オペレーティング システムに関しては詳細な説明は省
略することにする。
(実行)しているコンピュータに関しては、一般構造で
あるため、その説明は省略することにする。また、シリ
コン コンパイラ プログラムのある部分を活性または
不活性とし、かつ、このような部分間における種々のレ
ベルでの相互同期を制御するオペレーティング システ
ムも一般の多重処理オペレーティング システムである
ので、便宜および簡単のためこの種コンピュータおよび
オペレーティング システムに関しては詳細な説明は省
略することにする。
〔2.〕シリコン コンパイラ装置の構造 第1図はシリコン コンパイラ プログラムの一実施
例の分解図で、各モジュールはブロックにより表示し、
入力または出力操作は矢印を用いてそれにリンクさせる
ようにしている。ブロック20,40,42の各々はさらに2つ
のブロックに分解する。ブロック20は全体としてシリコ
ン コンパイラ プログラムを表わす。最初の次のブロ
ックは原始テキストを受信するソース アナライザ24で
ある。このアナライザ モジュールは語句分析,構文分
析および意味分析を実行する。これは原始言語の良く構
成されたキャラクタのため直進的(ストレートフォワー
ド)オペレーションである。この分析により、いわゆる
木構造(26)が生成される。前記木構造は、原始プログ
ラムの抽象的表現で、依然として原始言語の概念に限定
されている。この分析は意図するIC技術により表わされ
るような目的言語とは完全に無関係である。したがっ
て、ここで必要とするコンパイラ技術は汎用キャラクタ
を有するを可とし、シリコン コンパイラに特定のもの
ではないので、ここではその説明を省略することにす
る。
例の分解図で、各モジュールはブロックにより表示し、
入力または出力操作は矢印を用いてそれにリンクさせる
ようにしている。ブロック20,40,42の各々はさらに2つ
のブロックに分解する。ブロック20は全体としてシリコ
ン コンパイラ プログラムを表わす。最初の次のブロ
ックは原始テキストを受信するソース アナライザ24で
ある。このアナライザ モジュールは語句分析,構文分
析および意味分析を実行する。これは原始言語の良く構
成されたキャラクタのため直進的(ストレートフォワー
ド)オペレーションである。この分析により、いわゆる
木構造(26)が生成される。前記木構造は、原始プログ
ラムの抽象的表現で、依然として原始言語の概念に限定
されている。この分析は意図するIC技術により表わされ
るような目的言語とは完全に無関係である。したがっ
て、ここで必要とするコンパイラ技術は汎用キャラクタ
を有するを可とし、シリコン コンパイラに特定のもの
ではないので、ここではその説明を省略することにす
る。
高いレベルの階層上では、シリコン シンセサイザ
モジュール42は回路シンセサイザ モジュール40とレイ
アウト シンセサイザ モジュール36に分解される。前
者は具体回路(concrete circuit)34を与え、後者はそ
れからVLSIレイアウト38を与える。長い相互接続線に固
有の容量を駆動するための付加的駆動装置の提供のよう
なある種の低レベル タスクはレイアウト シンセサイ
ザモジュールに属する。具体回路34は、例えば、CMOS技
術におけるトランジスタ、TTL技術におけるゲート回路
またはAND,OR等のように技術実現に無関係に基本的論理
表現によるような任意の相応した表現を有するを可とす
る。このような表現および種々の低レベル タスクをレ
イアウト シンサセイザ モジュール36に与えることに
より、前記モジュールの作動は直進的(ストレートフォ
ワード)翻訳となる。VLSIレイアウトは、プロッタ用の
一連の命令のような種々の異なる方法で出力することが
できるが、本来的には上記の方法が一般的である。
モジュール42は回路シンセサイザ モジュール40とレイ
アウト シンセサイザ モジュール36に分解される。前
者は具体回路(concrete circuit)34を与え、後者はそ
れからVLSIレイアウト38を与える。長い相互接続線に固
有の容量を駆動するための付加的駆動装置の提供のよう
なある種の低レベル タスクはレイアウト シンセサイ
ザモジュールに属する。具体回路34は、例えば、CMOS技
術におけるトランジスタ、TTL技術におけるゲート回路
またはAND,OR等のように技術実現に無関係に基本的論理
表現によるような任意の相応した表現を有するを可とす
る。このような表現および種々の低レベル タスクをレ
イアウト シンサセイザ モジュール36に与えることに
より、前記モジュールの作動は直進的(ストレートフォ
ワード)翻訳となる。VLSIレイアウトは、プロッタ用の
一連の命令のような種々の異なる方法で出力することが
できるが、本来的には上記の方法が一般的である。
回路シンセサイザ モジュール40はさらに2つの部分
的な回路シンセサイザ モジュールに分解される。第1
モジュール28は木構造をいわゆる抽象回路30に変換し、
第2モジュール32はそれから具体回路を生成する働きを
する。抽象回路は、抽象チャネルにより相互接続され、
かつ一定の構成ルールを満足するような基本構成素子よ
りなる回路網である。
的な回路シンセサイザ モジュールに分解される。第1
モジュール28は木構造をいわゆる抽象回路30に変換し、
第2モジュール32はそれから具体回路を生成する働きを
する。抽象回路は、抽象チャネルにより相互接続され、
かつ一定の構成ルールを満足するような基本構成素子よ
りなる回路網である。
モジュール32は抽象回路から具体回路34への変換を行
う。この変換は予定されているVLSI回路に関する種々の
技術的選択の制約のもとで行われる。主要な選択は、 タイミング機構(すなわち、刻時,非同期または遅延
不感) 回路形式(すなわち、動的論理,静的論理) 技術実現(すなわち、バイポーラ,MOSまたはガリウム
砒素) に関してなされる。
う。この変換は予定されているVLSI回路に関する種々の
技術的選択の制約のもとで行われる。主要な選択は、 タイミング機構(すなわち、刻時,非同期または遅延
不感) 回路形式(すなわち、動的論理,静的論理) 技術実現(すなわち、バイポーラ,MOSまたはガリウム
砒素) に関してなされる。
抽象回路から具体回路への変換は直進的(ストレート
フォワード)とし、抽象回路のエレメントを次の各項
にしたがって具体回路の対応するエレメントに翻訳す
る。
フォワード)とし、抽象回路のエレメントを次の各項
にしたがって具体回路の対応するエレメントに翻訳す
る。
抽象回路の各チャネルを具体回路内の物理的相互接
続、すなわち、ワイヤの束に翻訳する。ワイヤの数は、
チャネルに沿ってどの値を通信するかに依存し、かつそ
の値の幅に依存する。
続、すなわち、ワイヤの束に翻訳する。ワイヤの数は、
チャネルに沿ってどの値を通信するかに依存し、かつそ
の値の幅に依存する。
抽象回路のパラメタライズされていない各基本構成素
子を具体回路の固定補助回路に翻訳する。
子を具体回路の固定補助回路に翻訳する。
抽象回路のパラメタライズされた各基本構成素子を規
則正しい方法で複数の固定回路部分よりなる具体回路の
補助回路に翻訳する。
則正しい方法で複数の固定回路部分よりなる具体回路の
補助回路に翻訳する。
〔3.〕通信プロセス 無条件並行プログラミング言語の一例としては、CP−
0(“通信プロセス−レベル0")がある。抽象回路はCP
−1(“通信プロセス−レベル1")で記述される。これ
はCP−0と類似であるが、根本的に異なる“インターバ
ル”セマンティックスを有する言語である。
0(“通信プロセス−レベル0")がある。抽象回路はCP
−1(“通信プロセス−レベル1")で記述される。これ
はCP−0と類似であるが、根本的に異なる“インターバ
ル”セマンティックスを有する言語である。
抽象回路および抽象回路合成のセクションに関しては
以下のCP−0およびCP−1の説明を参照されたい。
以下のCP−0およびCP−1の説明を参照されたい。
〔3.1〕CP−0 まず始めにCP−0の構文につき説明する。CP−0は本
来広く公表され、研究されている言語CSPのサブセット
である。
来広く公表され、研究されている言語CSPのサブセット
である。
(C.A.R.Hoare著「Communicating Sequential Proces
ses」Communications of the ACM誌21(8),1978年第6
66−677頁所載 および C.A.R.Hoare著「Communicating Sequential Processe
s」Prentice−Hall International社発行Series in Com
puter Science,1985年所載 を参照。) 一般に次の6つの構文的カテゴリーが使用される。
ses」Communications of the ACM誌21(8),1978年第6
66−677頁所載 および C.A.R.Hoare著「Communicating Sequential Processe
s」Prentice−Hall International社発行Series in Com
puter Science,1985年所載 を参照。) 一般に次の6つの構文的カテゴリーが使用される。
定数(constants)のセットConst(標準エレメント
k)、 変数(variables)のセットVar(標準エレメント
x)、 式(expression)のセットExp(標準エレメントE,E0,
E1)、 プール演算式(boolean expression)のセットBexp
(標準エレメントg)、 チャネル(channel)のセットChan(標準エレメント
c)および コマンド(commands)のセットCmd(標準エレメント
S,S0,S1) 第2図はコマンドおよび式の生成ルール(Production
rule)を与えるものである。また、この図はコマンド
Sの内部および外部チャネル(ぞれぞれIntChan(S)
およびExtChan(S))の定義をも与える。CP−0プロ
グラムはコマンドである。
k)、 変数(variables)のセットVar(標準エレメント
x)、 式(expression)のセットExp(標準エレメントE,E0,
E1)、 プール演算式(boolean expression)のセットBexp
(標準エレメントg)、 チャネル(channel)のセットChan(標準エレメント
c)および コマンド(commands)のセットCmd(標準エレメント
S,S0,S1) 第2図はコマンドおよび式の生成ルール(Production
rule)を与えるものである。また、この図はコマンド
Sの内部および外部チャネル(ぞれぞれIntChan(S)
およびExtChan(S))の定義をも与える。CP−0プロ
グラムはコマンドである。
以下、種々のコマンド形状を(操作的および非公式
に)説明する。
に)説明する。
skip はアトミック コマンド(atomic command)で
ある。その実行はなんらの影響も与えないが、首尾よく
終る。
ある。その実行はなんらの影響も与えないが、首尾よく
終る。
stop はこれもアトミック コマンドである。その実
行はなんらの影響も与えないが、終了しない。
行はなんらの影響も与えないが、終了しない。
c! はいわゆるノンプット コマンド(nonput comma
nd)である。その実行は対応するノンプットコマンドc?
との同期と等価である。ノンプット コンマンド間の通
信はノンバリュー コミュニケーション(non−value c
ommunication)およびアンディレクテッド(andirecte
d)コミュニケーションと呼ばれる。c?とc!間の示唆さ
れる非対称は人為的なもので、その導入はCP−1への翻
訳の表現を容易にする。
nd)である。その実行は対応するノンプットコマンドc?
との同期と等価である。ノンプット コンマンド間の通
信はノンバリュー コミュニケーション(non−value c
ommunication)およびアンディレクテッド(andirecte
d)コミュニケーションと呼ばれる。c?とc!間の示唆さ
れる非対称は人為的なもので、その導入はCP−1への翻
訳の表現を容易にする。
c?v はインプット コマンドで、その実行は2つの
効果を有する。すなわち、対応するアウトプット コマ
ンドc!Eとの同期ならびに変数vへの出力式(output ex
pression)Eの値の割当である。インプット コマンド
とアウトプット コマンド間の通信はバリュー コミュ
ニケーション(value communication)およびディレク
テッド(directed)コミュニケーション(すなわち出力
から入力への)と呼ばれる。
効果を有する。すなわち、対応するアウトプット コマ
ンドc!Eとの同期ならびに変数vへの出力式(output ex
pression)Eの値の割当である。インプット コマンド
とアウトプット コマンド間の通信はバリュー コミュ
ニケーション(value communication)およびディレク
テッド(directed)コミュニケーション(すなわち出力
から入力への)と呼ばれる。
c!E はアウトプット コマンドである。(上記参
照)。
照)。
v:=E は割当コマンド(assignmet command)で、
その実行数変数vは式Eの値を有する。
その実行数変数vは式Eの値を有する。
S0;S1 はコマンドS0およびS1の順次的実行である。
S0;S1 はコマンドS0およびS1の並行的実行で、コマ
ンドは条件cond(S0,S1)を満足するものでなければな
らない(第2図参照)。
ンドは条件cond(S0,S1)を満足するものでなければな
らない(第2図参照)。
g→S0‖g→S1 はS0(gがホールド状態の場合)
またはS1(gがホールド状態の場合)のいずれかの実
行に等しい (g→S0)*;g→S1 はS0(gがホールド状態の
間)の0,1またはそれ以上の実行および後続のS1の実行
に等しい。
またはS1(gがホールド状態の場合)のいずれかの実
行に等しい (g→S0)*;g→S1 はS0(gがホールド状態の
間)の0,1またはそれ以上の実行および後続のS1の実行
に等しい。
*S は(true→S)*;false→skipに対する略号
で、Sを“永久に(forever)”繰返すことに等しい。
で、Sを“永久に(forever)”繰返すことに等しい。
通信活動には、包含される双方のプロセスの同時参加
を必要とするので、各通信事象が実際に起る場合には接
続時間なしの瞬間的アトミック行動とみなさなければな
らない。CP−0における通信は、通信することのイニシ
ァティブに関し完全に対称である。ただし、通信の方向
に関しては非対称性が存在しうること勿論である。
を必要とするので、各通信事象が実際に起る場合には接
続時間なしの瞬間的アトミック行動とみなさなければな
らない。CP−0における通信は、通信することのイニシ
ァティブに関し完全に対称である。ただし、通信の方向
に関しては非対称性が存在しうること勿論である。
さらに、通常の方法で括弧を使用するようにし、ま
た、種々の2項演算子のバインディング パワ(たばね
る力)は、バー“‖”から矢印“→",セミコロン“;"か
らコンマ“,"(すなわち大きい記号から小さい記号)の
方向に増加するものとする。また、単項演算子としての
星印は最高のバインディング パワを有する。
た、種々の2項演算子のバインディング パワ(たばね
る力)は、バー“‖”から矢印“→",セミコロン“;"か
らコンマ“,"(すなわち大きい記号から小さい記号)の
方向に増加するものとする。また、単項演算子としての
星印は最高のバインディング パワを有する。
Bexpの構文はExpのそれである。ここで、(ブール演
算)式は基本的種類のもの(pascalのようなプログラミ
ング言語での表現参照)で、特に、それらはサイド効果
(side effect)を有せず、またそれらの評価は常に終
結するものと仮定する。この場合、式は定数(すなわ
ち、true,0,4,maxint,φ)の形,変数の形を有するか、
単項演算子(すなわち、not)、もしくは2項演算子
(すなわち、∧,∨,=,≠,,max,min,+,−,*,
div, および∩)を用いたさらに基本的な式により構成され
る。また、あるデータ タイピングの形および形式強制
もとられる。
算)式は基本的種類のもの(pascalのようなプログラミ
ング言語での表現参照)で、特に、それらはサイド効果
(side effect)を有せず、またそれらの評価は常に終
結するものと仮定する。この場合、式は定数(すなわ
ち、true,0,4,maxint,φ)の形,変数の形を有するか、
単項演算子(すなわち、not)、もしくは2項演算子
(すなわち、∧,∨,=,≠,,max,min,+,−,*,
div, および∩)を用いたさらに基本的な式により構成され
る。また、あるデータ タイピングの形および形式強制
もとられる。
CP−0はその基幹となる特徴を表示する目的のためき
わめて小さく保持するようにするが、CP−0プログラミ
ングの便宜性を高めるため、多くの拡張や記号法的略号
が考えられる。以下に、短かい、不完全なリストを記
す。
わめて小さく保持するようにするが、CP−0プログラミ
ングの便宜性を高めるため、多くの拡張や記号法的略号
が考えられる。以下に、短かい、不完全なリストを記
す。
チャネル ネーム用の適当なリネーミング機能を有す
るマルチプル インスタンシェーション(multiple ins
tantiation)およびプログラム構成(構成素子またはプ
ロセス参照)目的用コマンドのネーミング (ブール演算)式(関数参照)のネーミング名前のス
コーピング(範囲) データ形式(Pascal参照)の導入 並列割当、並列入力および並列出力の導入 放送の導入 汎用保護コマンドもしくはケース コマンドの導入 テール再帰的(tail−recursive)コマンドの導入 これらの拡張(extension)は根本的な問題なしに抽
象回路合成法内に収納することができる。
るマルチプル インスタンシェーション(multiple ins
tantiation)およびプログラム構成(構成素子またはプ
ロセス参照)目的用コマンドのネーミング (ブール演算)式(関数参照)のネーミング名前のス
コーピング(範囲) データ形式(Pascal参照)の導入 並列割当、並列入力および並列出力の導入 放送の導入 汎用保護コマンドもしくはケース コマンドの導入 テール再帰的(tail−recursive)コマンドの導入 これらの拡張(extension)は根本的な問題なしに抽
象回路合成法内に収納することができる。
〔3.2〕CP−1 CP−1はCP−0に類似の小さい無条件並行言語であ
る。CP−0とCP−1の間の根本的差異は、通信の構造に
ある。すなわち、CP−0においては、通信は(通信する
ことのイニシァティブに関して)対称的かつ瞬時的事象
であるが、CP−1においては通信は持続時間を有し、非
対称インターバルにより表わされる。この非対称と接続
時間の双方は通信の物理学により近い一致を示す。さら
に、非対称インターバルは対称事象よく多くの方法で適
時に配列することができ、これらの付加的配列はきわめ
て有用である。
る。CP−0とCP−1の間の根本的差異は、通信の構造に
ある。すなわち、CP−0においては、通信は(通信する
ことのイニシァティブに関して)対称的かつ瞬時的事象
であるが、CP−1においては通信は持続時間を有し、非
対称インターバルにより表わされる。この非対称と接続
時間の双方は通信の物理学により近い一致を示す。さら
に、非対称インターバルは対称事象よく多くの方法で適
時に配列することができ、これらの付加的配列はきわめ
て有用である。
通信は受動的または能動的のいずれかである。能動的
通信はプロセスにより始まり、受動的通信はプロセスの
環境により始まる。この差別は入力と出力間の差別とは
無関係であり、したがって、受動入力、能動入力、受動
出力および能動出力を有することが可能である。CP−1
コマンドにおいては、受動的(能動的)通信は受動的
(能動的)通信コマンドと提携する。プロセスは能動的
通信専用として、あるいは受動的通信専用として1つの
チャネルを使用する。したがって、能動チャネルおよび
受動チャネルに関しては言及することにする。
通信はプロセスにより始まり、受動的通信はプロセスの
環境により始まる。この差別は入力と出力間の差別とは
無関係であり、したがって、受動入力、能動入力、受動
出力および能動出力を有することが可能である。CP−1
コマンドにおいては、受動的(能動的)通信は受動的
(能動的)通信コマンドと提携する。プロセスは能動的
通信専用として、あるいは受動的通信専用として1つの
チャネルを使用する。したがって、能動チャネルおよび
受動チャネルに関しては言及することにする。
能動的および受動的通信コマンドの合成(compositio
n)は正確な実現に対し制限がある。すなわち、受動入
力の後に能動入力が配置される順次的構成を実現する場
合には、双方の通信の厳密な逐次的オーダーを保証する
ことは困難である。これらの制限を形式化するため、受
動的(能動的)通信コマンドの他の(構造化)コマンド
に対する概念を一般化するようにしており、第3図に大
部分の制限を構文的に示している。図示のように、コマ
ンドに対しては、6つの構文的カテゴリー、すなわち、 (能動的通信コマンド)、 (能動的同期コマンド)、 (能動的コマンド)、▲Sc comm▼(受動的通信コマン
ド)、 (受動的同期コマンド)、および (受動的コマンド)を導入する。この場合、受動的コマ
ンドは のように丸印を右肩に付して表示し、能動的コマンドは のように黒丸(弾丸)印を右肩に付して表示するように
する。
n)は正確な実現に対し制限がある。すなわち、受動入
力の後に能動入力が配置される順次的構成を実現する場
合には、双方の通信の厳密な逐次的オーダーを保証する
ことは困難である。これらの制限を形式化するため、受
動的(能動的)通信コマンドの他の(構造化)コマンド
に対する概念を一般化するようにしており、第3図に大
部分の制限を構文的に示している。図示のように、コマ
ンドに対しては、6つの構文的カテゴリー、すなわち、 (能動的通信コマンド)、 (能動的同期コマンド)、 (能動的コマンド)、▲Sc comm▼(受動的通信コマン
ド)、 (受動的同期コマンド)、および (受動的コマンド)を導入する。この場合、受動的コマ
ンドは のように丸印を右肩に付して表示し、能動的コマンドは のように黒丸(弾丸)印を右肩に付して表示するように
する。
演算子“‖|,“→",“;"および“,"はCP−0における
対応物と同じ目的を有する。また、ここには2つの新し
い演算子、すなわち黒丸印“・”およびコロン“:"を使
用している。これらの意味を説明する前に、まずsync
(同期)コマンドの概念を説明する必要がある。受動的
(能動的)syncコマンドは受動的(能動的)通信コマン
ドにより構成される。同期コマンドの包含される通信は
対応するインターバルがオーバラップするよう同期し起
る。すなわち、包含されるすべての通信が始まってお
り、終了したものがない時間にはある定まった時があ
る。さらに、包含されるすべての通信が始まり、終了し
たものがない時間間隔として同期インターバル(sync i
nterval)を定義することができる。2つの同期コマン
ドの黒丸印合成は双方の同期インターバルがオーバラッ
プした同期コマンドである。また、受動的同期コマンド
と任意の能動的コマンドのコロン印による合成は、能動
的コマンドの実行が同期コマンドの同期インターバル内
に完全に包囲される受動的コマンドをもたらす。
対応物と同じ目的を有する。また、ここには2つの新し
い演算子、すなわち黒丸印“・”およびコロン“:"を使
用している。これらの意味を説明する前に、まずsync
(同期)コマンドの概念を説明する必要がある。受動的
(能動的)syncコマンドは受動的(能動的)通信コマン
ドにより構成される。同期コマンドの包含される通信は
対応するインターバルがオーバラップするよう同期し起
る。すなわち、包含されるすべての通信が始まってお
り、終了したものがない時間にはある定まった時があ
る。さらに、包含されるすべての通信が始まり、終了し
たものがない時間間隔として同期インターバル(sync i
nterval)を定義することができる。2つの同期コマン
ドの黒丸印合成は双方の同期インターバルがオーバラッ
プした同期コマンドである。また、受動的同期コマンド
と任意の能動的コマンドのコロン印による合成は、能動
的コマンドの実行が同期コマンドの同期インターバル内
に完全に包囲される受動的コマンドをもたらす。
最後の、しかし重要なCP−0との差は選択コマンドに
ある。CP−0においては、コマンド間の選択は保護表現
式(guard expression)の論理値をベースにしている
が、CP−1の場合は、2つの(受動的)コマンドの最初
の受動的通信間で選択を行うことを許容している。した
がって、 においては、S0とS1間の選択は、これらの最初の通信が
異なる場合は、S0とS1の最初の通信行動を選択すること
で、Sの環境により決定される。
ある。CP−0においては、コマンド間の選択は保護表現
式(guard expression)の論理値をベースにしている
が、CP−1の場合は、2つの(受動的)コマンドの最初
の受動的通信間で選択を行うことを許容している。した
がって、 においては、S0とS1間の選択は、これらの最初の通信が
異なる場合は、S0とS1の最初の通信行動を選択すること
で、Sの環境により決定される。
S0とS1の同時合成はcond(S0,S1)を満足しなければ
ならない(第3図参照)。
ならない(第3図参照)。
また、CP−0に関してなされる拡張および記号略号へ
の注意事項はCP−1に対しても同じように適用される。
の注意事項はCP−1に対しても同じように適用される。
〔4.〕抽象回路 抽象回路は一定の組成ルールを満足しながら、チャネ
ルにより相互に接続した基本構成素子のネットワークで
ある。
ルにより相互に接続した基本構成素子のネットワークで
ある。
抽象回路は2つの面の見方をすることができる。一方
では、抽象回路はネットワークである。この見方は特
に、具体回路合成を考えるとき有用である。他方では、
抽象回路は、基本的CP−0プログラムから合成されたCP
−1プログラムに直接対応する。この見方は、特に、抽
象回路合成を考えるとき有用である。プログラム構成が
どのようにネットワーク構成に関係するかについては、
以下第1サブセクションにおいて論ずることにする。
では、抽象回路はネットワークである。この見方は特
に、具体回路合成を考えるとき有用である。他方では、
抽象回路は、基本的CP−0プログラムから合成されたCP
−1プログラムに直接対応する。この見方は、特に、抽
象回路合成を考えるとき有用である。プログラム構成が
どのようにネットワーク構成に関係するかについては、
以下第1サブセクションにおいて論ずることにする。
〔4.1〕構成素子および構成 CP−1プログラム を考えることにする。
が の形状を有する場合は、 の実構成素子(actual component)と呼ばれる。また、
SiとSjの双方にチャネルcが起った場合、構成素子Siと
Sjはチャネルcにより接続されていると呼ばれる。(こ
の場合、cは2つ以上の構成素子内に生ずることはでき
ない。)2つの接続された構成素子のうち、1つの構成
素子はcの能動的発生のみを有し(この構成素子はチャ
ネルの能動サイドと呼ばれる)。他の構成素子はcの変
動的発生のみを有する(この構成素子はチャネルの受動
サイドと呼ばれる)。
SiとSjの双方にチャネルcが起った場合、構成素子Siと
Sjはチャネルcにより接続されていると呼ばれる。(こ
の場合、cは2つ以上の構成素子内に生ずることはでき
ない。)2つの接続された構成素子のうち、1つの構成
素子はcの能動的発生のみを有し(この構成素子はチャ
ネルの能動サイドと呼ばれる)。他の構成素子はcの変
動的発生のみを有する(この構成素子はチャネルの受動
サイドと呼ばれる)。
実際には、同一構造をもった異なる実構成素子を同一
形式素子(formal component)の例(instance)とみな
すことを可能にするリネイミング手順(renaming proce
dure)を導入する。形式構成素子fは孤立したCP−1プ
ログラム により表わされる。
形式素子(formal component)の例(instance)とみな
すことを可能にするリネイミング手順(renaming proce
dure)を導入する。形式構成素子fは孤立したCP−1プ
ログラム により表わされる。
内に発生する外部チャネルはfのポートと呼ばれる。ま
た、ポートのアクティビティ,ティレクション等に関し
てはチャネルの相似性をベースにして説明することがで
きる。(ユニークな例の名前を有する)実構成素子は以
下のように をリネーミング(renaming)することにより得られる。
た、ポートのアクティビティ,ティレクション等に関し
てはチャネルの相似性をベースにして説明することがで
きる。(ユニークな例の名前を有する)実構成素子は以
下のように をリネーミング(renaming)することにより得られる。
変数名(variable names)等を各々の例に対して厳密
に局部的なものとなるよう例の名(instancename)で名
前づけ ポート ネーム(実)チャネルのネームで代替させる
(ポートが対応するチャネルに接続されていると呼ばれ
る)。
に局部的なものとなるよう例の名(instancename)で名
前づけ ポート ネーム(実)チャネルのネームで代替させる
(ポートが対応するチャネルに接続されていると呼ばれ
る)。
複数の構成素子により組成されるCP−1プログラムは
次のようにしてネットワークに対応する。すなわち、CP
−1プログラム構成素子はネットワーク構成素子に対応
し、CP−1チャネル接続プログラム構成素子はネットワ
ーク構成素子の抽象チャネル接続ポートに対応する。
次のようにしてネットワークに対応する。すなわち、CP
−1プログラム構成素子はネットワーク構成素子に対応
し、CP−1チャネル接続プログラム構成素子はネットワ
ーク構成素子の抽象チャネル接続ポートに対応する。
抽象回路は制限された形のCP−1プログラム、すなわ
ち、いわゆる基本構成素子(ベーシック コンポーネン
ト)の例の合成に対応する。抽象回路につき論ずるに際
しては、抽象回路のプログラム面とネットワーク面との
間に差別をつくることなく、一般のセンスで“構成素
子”および“チャネル”につき説明する。
ち、いわゆる基本構成素子(ベーシック コンポーネン
ト)の例の合成に対応する。抽象回路につき論ずるに際
しては、抽象回路のプログラム面とネットワーク面との
間に差別をつくることなく、一般のセンスで“構成素
子”および“チャネル”につき説明する。
〔4.2〕基本構成素子(Basic Component) 基本構成素子(basic component)bはCP−0コマン
ド を有する基本的構成素子(elementary component)であ
る。基本構成素子は内部チャネルを有せず、すなわち は次式を満足する。
ド を有する基本的構成素子(elementary component)であ
る。基本構成素子は内部チャネルを有せず、すなわち は次式を満足する。
基本構成素子のCP−1コマンドに対しては、チャネル
および変数のデータ形式を制限して、正(positive)の
ビット数のある論理ベクトルのみを考えることにする。
ビット数は対応するチャネルおよび変数の幅(width)
と考えられる。また、任意の他のデータ形式は、ある固
定長の論理ベクトルにマップすることができるものと仮
定する。
および変数のデータ形式を制限して、正(positive)の
ビット数のある論理ベクトルのみを考えることにする。
ビット数は対応するチャネルおよび変数の幅(width)
と考えられる。また、任意の他のデータ形式は、ある固
定長の論理ベクトルにマップすることができるものと仮
定する。
若干数の基本構成素子は次のうち1つまたはそれ以上
の方法でパラメータ化される。
の方法でパラメータ化される。
構造物パラメータライゼーション:等価ポートのクラ
スにおけるポート数がパラメータである。
スにおけるポート数がパラメータである。
データ パラメータライゼーション:変数とポートの
群の幅がパラメータである。
群の幅がパラメータである。
可逆性(reversibility):ポートのアクティビティ
がパラメータである。すなわち、いわゆる可逆的構成素
子はすべてそのアクティビティを逆にすることができ
る。
がパラメータである。すなわち、いわゆる可逆的構成素
子はすべてそのアクティビティを逆にすることができ
る。
CP−0プログラムの抽象回路への翻訳にあたっては、
次のような組の基本構成素子を使用することで充分であ
る。
次のような組の基本構成素子を使用することで充分であ
る。
書込み用入力ポートiおよび同時読出し用のk個の出力
ポートo0,…,ok-1を有するnビット変数(variable)構
成素子、 その唯一のポートo上にnビットの一定値cを出力する
一定(constant)構成素子. 能動出所と能動行先を接続するための受動入力iおよび
受動出力oを有するnビット パッシベータ(passivat
or)、ノン・バンリュー(non−value)チャネルに対し
ては、パッシベータ コマンドは ポートp上のインターバルの制御により、ポートi上に
メッセージを能動的に入力し、ポートo上にメッセージ
の能動的に出力するnビット トランスファラ(transf
errer). k個の受動入力ポートi0,…,ik-1の1つに受信されるメ
ッセージをポートo上に能動的に出力するnビット マ
ルチプレクサ(multiplexer) k個の受動出力ポートo0,…,ok-1の1つにリクエストさ
れるメッセージを能動的に入力するnビット ディマル
チプレクサ(demultiplexer). ポートp上のインターバルの制御によりk個のポート
a0,…,ak-1を順次的に活性化させるシーケンサ(sequen
cer). ポートp上のインターバルの制御によりk個のポート
a0,…,ak-1を同時に活性化させるコンカーサ(concurso
r). k個の各受動ポートp0,…,pk-1上のインターバルの交互
的制御によりポートaを活性化させるミキサ(mixe
r). ポートp上のインターバルの制御により、ポートi上に
能動的に入力される論理値bが真理である限り、ポート
aを繰返し活性化させるイタレータ(iterator). ポートp上のインターバルの制御により、ポートaをき
わめて頻繁に活性化させるレピータ(repeater). 入力ポートiからのnビット値に応じてk個の能動ポー
トa0,…,ak-1の1つを選択するセレクタ(selector). ポートiからの入力値への単項演算〜の結果をポートa
に出力する可逆的単項演算子(reversible unary opera
tor). ポートi0,i1からの入力値への2項演算□の結果をポー
トoに出力する可逆的2項演算子(reversible binary
operator). その唯一のポートp上のインターバルに関与する以外は
なにごともしないスキッパ(skipper). その唯一のポートp上のインターバルを終わらせること
さえしないように、なにごともしないストッパ(stoppe
r). 第1表には単項演算子の例として、inv,inc,decを与
え、2項演算子の例として、and,or,eq,add,mul,shift
を与えている。
ポートo0,…,ok-1を有するnビット変数(variable)構
成素子、 その唯一のポートo上にnビットの一定値cを出力する
一定(constant)構成素子. 能動出所と能動行先を接続するための受動入力iおよび
受動出力oを有するnビット パッシベータ(passivat
or)、ノン・バンリュー(non−value)チャネルに対し
ては、パッシベータ コマンドは ポートp上のインターバルの制御により、ポートi上に
メッセージを能動的に入力し、ポートo上にメッセージ
の能動的に出力するnビット トランスファラ(transf
errer). k個の受動入力ポートi0,…,ik-1の1つに受信されるメ
ッセージをポートo上に能動的に出力するnビット マ
ルチプレクサ(multiplexer) k個の受動出力ポートo0,…,ok-1の1つにリクエストさ
れるメッセージを能動的に入力するnビット ディマル
チプレクサ(demultiplexer). ポートp上のインターバルの制御によりk個のポート
a0,…,ak-1を順次的に活性化させるシーケンサ(sequen
cer). ポートp上のインターバルの制御によりk個のポート
a0,…,ak-1を同時に活性化させるコンカーサ(concurso
r). k個の各受動ポートp0,…,pk-1上のインターバルの交互
的制御によりポートaを活性化させるミキサ(mixe
r). ポートp上のインターバルの制御により、ポートi上に
能動的に入力される論理値bが真理である限り、ポート
aを繰返し活性化させるイタレータ(iterator). ポートp上のインターバルの制御により、ポートaをき
わめて頻繁に活性化させるレピータ(repeater). 入力ポートiからのnビット値に応じてk個の能動ポー
トa0,…,ak-1の1つを選択するセレクタ(selector). ポートiからの入力値への単項演算〜の結果をポートa
に出力する可逆的単項演算子(reversible unary opera
tor). ポートi0,i1からの入力値への2項演算□の結果をポー
トoに出力する可逆的2項演算子(reversible binary
operator). その唯一のポートp上のインターバルに関与する以外は
なにごともしないスキッパ(skipper). その唯一のポートp上のインターバルを終わらせること
さえしないように、なにごともしないストッパ(stoppe
r). 第1表には単項演算子の例として、inv,inc,decを与
え、2項演算子の例として、and,or,eq,add,mul,shift
を与えている。
実際には、組の基本構成素子を次の追加構成素子(第
1表参照)により拡張することが有用である。
1表参照)により拡張することが有用である。
最適化のための特別な(安価の)実現(オリジナルセ
ットからの基本構成素子の組合せの取換え):fork,syn
c. CP−0の拡張用として有用な構成素子:rom,ram,merg,
split,arbit,および付加的算術構成素子(すなわち、一
般のn項演算子における他の構成素子). また、抽象回路を描写する場合は次の協約が使用され
る。
ットからの基本構成素子の組合せの取換え):fork,syn
c. CP−0の拡張用として有用な構成素子:rom,ram,merg,
split,arbit,および付加的算術構成素子(すなわち、一
般のn項演算子における他の構成素子). また、抽象回路を描写する場合は次の協約が使用され
る。
基本構成素子は第1表の一番右の列に与えられる記号
でラベルされた大円で描く。
でラベルされた大円で描く。
基本構成素子のポートは基本構成素子の大円の境界上
の小円として描く。能動ポートは黒丸 を有し、受動ポートは白丸 を有する。
の小円として描く。能動ポートは黒丸 を有し、受動ポートは白丸 を有する。
チャネルはポート間のラインとして描く、通信チャネ
ルは出力から入力に向かう方向を与え、同期チャネルは
方向性を与えない。
ルは出力から入力に向かう方向を与え、同期チャネルは
方向性を与えない。
〔4.3〕抽象回路用の構成ルール 抽象回路は2つの構成ルールを満足しなければならな
い。すなわち、抽象回路は非循環的であり、争いのない
もの(コンフリクト フリー)でなければならない。こ
の非循環性およびコンフリクト フリー性は抽象回路の
構造的特性で、遅延不感に対して充分なCP−1プログラ
ムの構文的特性から描き出される。さらに、それらは抽
象回路の初期設定の可能性(initializability)に関す
る重要な前提である。
い。すなわち、抽象回路は非循環的であり、争いのない
もの(コンフリクト フリー)でなければならない。こ
の非循環性およびコンフリクト フリー性は抽象回路の
構造的特性で、遅延不感に対して充分なCP−1プログラ
ムの構文的特性から描き出される。さらに、それらは抽
象回路の初期設定の可能性(initializability)に関す
る重要な前提である。
非循環性は抽象回路のアクティビティ グラフにより
きわめて容易に表わされる。前記アクティビティ グラ
フは以下のようにきめられる指向グラフ(directed gra
ph)である。
きわめて容易に表わされる。前記アクティビティ グラ
フは以下のようにきめられる指向グラフ(directed gra
ph)である。
各基本構成素子はアクティビティ グラフの頂点に対
応する。
応する。
2つの基本構成素子間の各チャネルはチャネルの能動
的側面に対応する頂点からチャネルの受動的側面に対応
する頂点に向かう弧(arc)に対応する。
的側面に対応する頂点からチャネルの受動的側面に対応
する頂点に向かう弧(arc)に対応する。
抽象回路のアクティビティ グラフは非循環的、すな
わち、指向サイクルを含まないものでなければならない
(ここで、サイクルは標準グラフ理論により決められ
る)。
わち、指向サイクルを含まないものでなければならない
(ここで、サイクルは標準グラフ理論により決められ
る)。
一般に、コンフリクト フリー性は、基本構成素子b
のコマンド がある受動インターバルの配列(すなわち、2つのイン
ターバルがオーバラップしない)を意味する場合には、
(能動的)環境がこの配列(オーダリング)を尊重しな
ければならないという概念を表わす。特に、抽象回路の
コンフクト フリー性は通常のコンフリクト フリー性
に対して充分な構造的特性である。
のコマンド がある受動インターバルの配列(すなわち、2つのイン
ターバルがオーバラップしない)を意味する場合には、
(能動的)環境がこの配列(オーダリング)を尊重しな
ければならないという概念を表わす。特に、抽象回路の
コンフクト フリー性は通常のコンフリクト フリー性
に対して充分な構造的特性である。
〔4.4〕抽象回路の遅延不感性 抽象回路は遅延不感性である。遅延不感性は、抽象回
路の正確な作動がチャネルもしくは基本構成素子の相対
的遅延に従属しないことを意味する。
路の正確な作動がチャネルもしくは基本構成素子の相対
的遅延に従属しないことを意味する。
一般に、遅延不感性はCP−1プロルアムに対する特性
として定義される。抽象回路に対応するCP−1プログラ
ムはこの特性を満足する。
として定義される。抽象回路に対応するCP−1プログラ
ムはこの特性を満足する。
CP−1プログラム の遅延不感性の定義のため、次のような の変換を考慮する。
における各ノン・バリュー チャネルcに対して、2つ
の新しいチャネルc0,c1を導入し、 におけるすべての の発生を で代替し、すべての の発生を で代替し、コマンド を並列に構成する。cが外部受動(能動)チャネルの場
合は、c0(c1)をcに等しくとる。
の新しいチャネルc0,c1を導入し、 におけるすべての の発生を で代替し、すべての の発生を で代替し、コマンド を並列に構成する。cが外部受動(能動)チャネルの場
合は、c0(c1)をcに等しくとる。
における能動出力を有する各バリュー チャネルcに対
して新しいチャネルc0,c1を導入し、 におけるすべての の発生を で代替し、すべての の発生をc1?゜で代替し、コマンド の並列に構成する。cが外部受動(能動)チャネルの場
合は、c0(c1)をcに等しくとる。
して新しいチャネルc0,c1を導入し、 におけるすべての の発生を で代替し、すべての の発生をc1?゜で代替し、コマンド の並列に構成する。cが外部受動(能動)チャネルの場
合は、c0(c1)をcに等しくとる。
における能動入力を有する各バリュー チャネルcに対
して新しいチャネルc0,c1を導入し、 におけるすべての の発生を で代替し、すべての の発生を で代替し、コマンド を並列に構成する。cが外部受動(能動)チャネルの場
合は、c0(c1)をcに等しくとる。
して新しいチャネルc0,c1を導入し、 におけるすべての の発生を で代替し、すべての の発生を で代替し、コマンド を並列に構成する。cが外部受動(能動)チャネルの場
合は、c0(c1)をcに等しくとる。
上記の変換により等価のCP−1プログラムが生ずる場
合(それらの外部チャネルにおける動作が見分けられな
いとき2つのCP−1プログラムは等価であると呼ぶこと
にする。)、CP−1プログラムS゜は遅延不感性であ
る。
合(それらの外部チャネルにおける動作が見分けられな
いとき2つのCP−1プログラムは等価であると呼ぶこと
にする。)、CP−1プログラムS゜は遅延不感性であ
る。
〔4.5〕初期設定(Initialization) 基本構成素子または抽象回路のCP−1コマンドの意味
は、有限状態マシンなる語で表現することができる。こ
の有限状態マシンを実現する具体回路は順次的電子回路
である。電源投入後、このような回路は、有限状態マシ
ンにおいて同じものがないような任意の状態となり得
る。したがって、初期設定用手段、すなわち、回路をそ
の初期状態に設定する手段が必要不可欠であり、通常、
これは回路内に分布させた付加回路を使用して、いわゆ
るリセットを与えることにより達成している。
は、有限状態マシンなる語で表現することができる。こ
の有限状態マシンを実現する具体回路は順次的電子回路
である。電源投入後、このような回路は、有限状態マシ
ンにおいて同じものがないような任意の状態となり得
る。したがって、初期設定用手段、すなわち、回路をそ
の初期状態に設定する手段が必要不可欠であり、通常、
これは回路内に分布させた付加回路を使用して、いわゆ
るリセットを与えることにより達成している。
抽象回路に対しては、以下のような有効かつ効率的初
期設定にこのような付加的リセット回路を必要としない
が、この手順は基本構成素子による具体回路の実現に際
し付加的制約をもたらす。
期設定にこのような付加的リセット回路を必要としない
が、この手順は基本構成素子による具体回路の実現に際
し付加的制約をもたらす。
ここで、初期設定手順の説明の前にいくつかの観察を
行うことにする。
行うことにする。
(1) 基本構成素子のコマンド内に生ずるすべての変
数の値から概念を抽象することができる。コマンドの意
味は変数の初期値によるものではない。
数の値から概念を抽象することができる。コマンドの意
味は変数の初期値によるものではない。
(2) 抽象回路がいったその初期状態になると、環境
がその受動外部ポートの1つにおいてインターバルを始
めるまで、回路はその状態にとどまる。これは抽象回路
が受動的であるという事実の直接的結果である。
がその受動外部ポートの1つにおいてインターバルを始
めるまで、回路はその状態にとどまる。これは抽象回路
が受動的であるという事実の直接的結果である。
(3) ポートの初期状態をすべての開始されたインタ
ーバルも終った状態とする。その場合は、各基本構成素
子は、そのすべてのポートがそれらの初期状態にあると
きその初期状態にあるという特性を有する。これは形式
主義ではなく、組の基本構成素子の選択の結果である。
ーバルも終った状態とする。その場合は、各基本構成素
子は、そのすべてのポートがそれらの初期状態にあると
きその初期状態にあるという特性を有する。これは形式
主義ではなく、組の基本構成素子の選択の結果である。
(4) 抽象回路のすべての外部ポートがそれらの初期
状態にあるとき、回路がその初期状態にあるとは断定さ
れないかも知れない。
状態にあるとき、回路がその初期状態にあるとは断定さ
れないかも知れない。
第3の観察が初期設定手順への鍵である。問題は、抽
象回路の内部ポートへの直接制御ができないことであ
る。また、外部ポートの状態に関する制御さえも制限さ
れ、外部ポートの電気的入力のみが制御可能である。
象回路の内部ポートへの直接制御ができないことであ
る。また、外部ポートの状態に関する制御さえも制限さ
れ、外部ポートの電気的入力のみが制御可能である。
ポートの状態を対(i,o)(ただし、iは電気的入
力、oは電気的出力とする)で表わすものとした場合
は、iおよびoが変化する組の値はポートの方向および
幅に従属するほか、メッセージの値の具体的表示にも従
属する。組の値の双方は、(0,0)がポートの初期状態
に対応するような1つの特別を値‘0'を有する。
力、oは電気的出力とする)で表わすものとした場合
は、iおよびoが変化する組の値はポートの方向および
幅に従属するほか、メッセージの値の具体的表示にも従
属する。組の値の双方は、(0,0)がポートの初期状態
に対応するような1つの特別を値‘0'を有する。
受動ポートおよび能動ポートの双方を有する基本構成
素子による具体回路の実現は、 (1) すべての受動ポートの電気的入力に安定値0が
与えられて後、既知の有限の時間内にすべての能動ポー
トの電気的出力が安定値0を得、 (2) 次に、すべての能動ポートの電気的入力に安定
値0が与えられる後、既知の有限時間内にすべての受動
ポートが安定値0を得、かくして、すべてのポートが状
態(0,0)を有する ようになった場合に初期設定の制約を満足する。
素子による具体回路の実現は、 (1) すべての受動ポートの電気的入力に安定値0が
与えられて後、既知の有限の時間内にすべての能動ポー
トの電気的出力が安定値0を得、 (2) 次に、すべての能動ポートの電気的入力に安定
値0が与えられる後、既知の有限時間内にすべての受動
ポートが安定値0を得、かくして、すべてのポートが状
態(0,0)を有する ようになった場合に初期設定の制約を満足する。
受動ポートのみを有する基本構成素子による具体回路
の実現は、すべてのポートの電気的入力に安定値が与え
られた後、既知の有限時間内に、すべてのポートの電気
的出力が安定値0を得た場合に、初期設定の制約を満足
する。
の実現は、すべてのポートの電気的入力に安定値が与え
られた後、既知の有限時間内に、すべてのポートの電気
的出力が安定値0を得た場合に、初期設定の制約を満足
する。
すべての基本構成素子がこの初期設定の制約を満足す
るときは、すべての外部ポートの電気的入力の値に安定
値0を与えることにより、抽象回路を初期設定すること
ができる。予言可能な有限時間内にすべての外部ポート
の電気的出力は安定値0となり、すべての内部ポートも
それらの初期状態となる。かくして、抽象回路はその初
期状態となる。
るときは、すべての外部ポートの電気的入力の値に安定
値0を与えることにより、抽象回路を初期設定すること
ができる。予言可能な有限時間内にすべての外部ポート
の電気的出力は安定値0となり、すべての内部ポートも
それらの初期状態となる。かくして、抽象回路はその初
期状態となる。
抽象回路は非循環性ならびに抽象回路と基本構成素子
コマンドが受動的であるという事実はこの初期設定手順
の有効性を証明するのに重大な役割を演ずる。
コマンドが受動的であるという事実はこの初期設定手順
の有効性を証明するのに重大な役割を演ずる。
〔5.〕抽象回路合成 抽象回路合成は(木構造で表示された)CP−0プログ
ラムの(効率的かつ)等価な抽象回路への変換である。
CP−0プログラムと抽象回路は、それらの関連の外部チ
ャネルにおける行為がアトミックイベントと(タイム)
インターバル間の差別から見分けがつかないとき等価で
ある。
ラムの(効率的かつ)等価な抽象回路への変換である。
CP−0プログラムと抽象回路は、それらの関連の外部チ
ャネルにおける行為がアトミックイベントと(タイム)
インターバル間の差別から見分けがつかないとき等価で
ある。
この変換は次のような3つの連続する副変換より成
る。
る。
(1) CP−0プログラムの“等価な"CP−1プログラ
ムへの翻訳(translation) (2) CP−1プログラムの“等価な”抽象回路(すな
わち、基本構成素子から構成されたCP−1プログラム)
の分解(decomposition) (3) 抽象回路の“等価な”、しかし“安価な”抽象
回路への最適化(optimization) これらの3つのステップならびに表示“等価(equiva
lent)”および“安価(cheaper)”に関しては3つの
サブセクションで論ずることにする。
ムへの翻訳(translation) (2) CP−1プログラムの“等価な”抽象回路(すな
わち、基本構成素子から構成されたCP−1プログラム)
の分解(decomposition) (3) 抽象回路の“等価な”、しかし“安価な”抽象
回路への最適化(optimization) これらの3つのステップならびに表示“等価(equiva
lent)”および“安価(cheaper)”に関しては3つの
サブセクションで論ずることにする。
〔5.1〕翻訳 CP−0コマンドSからの等価なCP−1コマンドは次の
3つのステップを含む。
3つのステップを含む。
(1) CP−0コマンドSはこのサブ・コマンドをアク
ティブ コマンドを(そのすべてのアトミック コマン
ドを含んで)能動コマンドに反復的に変換することによ
り能動コマンド に変換する。これは、CP−0におけるSの構文およびCP
−1における の構文が同形であるため直進的である。結果として得ら
れるコマンドは、それが能動的であり、また通常、同時
に起る に対して条件cond に従わないので、またCP−1コマンドではない(第3図
参照) (2) はその前に を置くことにより受動コマンドに変換する:(s0は の初期チャネルと呼ばれる。すなわち、環境はノン・バ
リュコー チャネルs0上の能動通信により を開始する) (3) 内部チャネル上のアクティビティ間の争い(コ
ンフリクト)は次のようにして解決される。
ティブ コマンドを(そのすべてのアトミック コマン
ドを含んで)能動コマンドに反復的に変換することによ
り能動コマンド に変換する。これは、CP−0におけるSの構文およびCP
−1における の構文が同形であるため直進的である。結果として得ら
れるコマンドは、それが能動的であり、また通常、同時
に起る に対して条件cond に従わないので、またCP−1コマンドではない(第3図
参照) (2) はその前に を置くことにより受動コマンドに変換する:(s0は の初期チャネルと呼ばれる。すなわち、環境はノン・バ
リュコー チャネルs0上の能動通信により を開始する) (3) 内部チャネル上のアクティビティ間の争い(コ
ンフリクト)は次のようにして解決される。
(a) 内の各内部チャネルに対して2つの新しいチャネル、す
なわち、c0およびc1を導入する。
なわち、c0およびc1を導入する。
(b) 各能動出力コマンド で代替し、各能動入力コマンド で代替する (c) 各チャネル対(c0,c1)に対してコマンド (基本構成素子pass)を導入し、 と並列に構成する。どの値もパスしない場合、パッシベ
ータ(passivator)は対称となる 結果として得られるコマンドは全く妥当なCP−1コマン
ドで、形状 PASSを有する。ただしPASSは導入された組のタイプpass
の基本構成素子である。
ータ(passivator)は対称となる 結果として得られるコマンドは全く妥当なCP−1コマン
ドで、形状 PASSを有する。ただしPASSは導入された組のタイプpass
の基本構成素子である。
〔5.2〕分 解 CP−1コマンド(CP−0からCP−1への翻訳結果とし
ての形状を有する)の基本構成素子のネットワークへの
分解は4つの連結する分解ステップ、すなわち、変数の
分解、チャネルの分解、コマンドの分解および表現式の
分解を含む。
ての形状を有する)の基本構成素子のネットワークへの
分解は4つの連結する分解ステップ、すなわち、変数の
分解、チャネルの分解、コマンドの分解および表現式の
分解を含む。
〔5.2.1〕変数の分離 変数の分離は次のステップにより実現される。
(1) 形状 (ただし、E(x)は変数xが参照(reference)され
る式)の における各割当に対して、補助変数および割当を導入す
る。
る式)の における各割当に対して、補助変数および割当を導入す
る。
で代替する。ここで、x0は(変数xにおける同時読出し
および書込み行動を防止するための)新しい補助変数で
ある。
および書込み行動を防止するための)新しい補助変数で
ある。
(2) 形状g→S0‖g→S1(これに対して、var?
(g)∩(var!S0var!S1)≠φ)の における各チョイス コマンドに対して、補助変数およ
び割当を導入する。g→S0‖g→S1をg0:=g;(g0→S
0‖g0→S1)で代替する。ここで、g0は変数var?
(g)における同時読出しおよび書込み行動を防止する
ため)新しい補助論理変数である。
(g)∩(var!S0var!S1)≠φ)の における各チョイス コマンドに対して、補助変数およ
び割当を導入する。g→S0‖g→S1をg0:=g;(g0→S
0‖g0→S1)で代替する。ここで、g0は変数var?
(g)における同時読出しおよび書込み行動を防止する
ため)新しい補助論理変数である。
(3) における各変数x(補助変数を含む)に対してタイプva
rの基本構成素子xを書込ポートx.iおよび読取ポートx.
oとともに導入する。
rの基本構成素子xを書込ポートx.iおよび読取ポートx.
oとともに導入する。
(4) 各割当 を出力コマンド で代替 (5) 各入力コマンド をコマンド で代替 (6) チャネルc上の(プール演算)式E、すなわ
ち、 (ここで、{x0,x1,…,xn-1}はE内で参照される組の
変数である)を次のいわゆる能動表現コマンド(active
−expression command),すなわち、 (これは として短縮できる。ただし、Vは組の変数{V0,v1,…,v
n-1}を示す)で代替する。
ち、 (ここで、{x0,x1,…,xn-1}はE内で参照される組の
変数である)を次のいわゆる能動表現コマンド(active
−expression command),すなわち、 (これは として短縮できる。ただし、Vは組の変数{V0,v1,…,v
n-1}を示す)で代替する。
結果として得られるコマンドは妥当なCP−1コマンド
で、形状 PASS,VAR を有する。ここで、VARは導入された組のタイプvarの基
本構成素子である。
で、形状 PASS,VAR を有する。ここで、VARは導入された組のタイプvarの基
本構成素子である。
〔5.2.2〕チャネルの分解 PASS,VARにおける各内部チャネルは2回または2回以上
参照される。すなわち、PASSVARにおけるpassまたはv
ar構成素子において受動的に1回、 において能動的に1回またはそれ以上参照される。チャ
ネル分解の目的は、各内部チャネルが正確に能動的に1
回、受動的に1回参照されるよう を変換することである。1回以上(すなわちK回)能動
的に参照された各内部チャネルcに対しては、2つのス
テップが適用される。第1に、チャネルcに対するK個
の能動的参照はそれらをc1…cKとリネーミングすること
により、独特(ユニーク)なものとし、(ユニーク)な
受動的参照はc0とリネーミングする。第2に、 (1) cがノンプット(nonput)チャネルの場合に
は、タイプmixの基本構成素子をc0に接続したその能動
ポートおよびc1…cKに接続したそのK個の受動入力ポー
トとともに導入する。
参照される。すなわち、PASSVARにおけるpassまたはv
ar構成素子において受動的に1回、 において能動的に1回またはそれ以上参照される。チャ
ネル分解の目的は、各内部チャネルが正確に能動的に1
回、受動的に1回参照されるよう を変換することである。1回以上(すなわちK回)能動
的に参照された各内部チャネルcに対しては、2つのス
テップが適用される。第1に、チャネルcに対するK個
の能動的参照はそれらをc1…cKとリネーミングすること
により、独特(ユニーク)なものとし、(ユニーク)な
受動的参照はc0とリネーミングする。第2に、 (1) cがノンプット(nonput)チャネルの場合に
は、タイプmixの基本構成素子をc0に接続したその能動
ポートおよびc1…cKに接続したそのK個の受動入力ポー
トとともに導入する。
(2) cに対する能動的参照が出力の場合には、タイ
プmuxの基本構成素子をc0に接続したその能動出力ポー
トおよびc1…cKに接続したそのK個の受動出力ポートと
ともに導入する。
プmuxの基本構成素子をc0に接続したその能動出力ポー
トおよびc1…cKに接続したそのK個の受動出力ポートと
ともに導入する。
(3) cに対する能動的参照が入力で、対応する受動
的参照がvar構成素子の部分でない場合には、タイプdmu
xの基本構成素子をc0に接続したその能動入力ポートお
よびc1…cKに接続したK個の受動出力ポートとともに導
入する。
的参照がvar構成素子の部分でない場合には、タイプdmu
xの基本構成素子をc0に接続したその能動入力ポートお
よびc1…cKに接続したK個の受動出力ポートとともに導
入する。
(4) cに対する能動的参照が入力で、対応する受動
的参照がvar構成素子の部分である場合には、そのvar構
成素子の(受動的)読取ポートの数をKに拡張し、これ
らのポートをc1…cKに接続する。
的参照がvar構成素子の部分である場合には、そのvar構
成素子の(受動的)読取ポートの数をKに拡張し、これ
らのポートをc1…cKに接続する。
結果として得られるコマンドは妥当なCP−1コマンド
であり、形状 PASS,VAR,MIX,MUX,DMUXを有する。ここで、MIX,MUXおよ
びDMUXは導入されたタイプmix,muxおよびdmuxの組の基
本構成素子を示し、上記コマンドにおける各内部チャネ
ルは正確に1回受動的に、また1回能動的に参照され
る。
であり、形状 PASS,VAR,MIX,MUX,DMUXを有する。ここで、MIX,MUXおよ
びDMUXは導入されたタイプmix,muxおよびdmuxの組の基
本構成素子を示し、上記コマンドにおける各内部チャネ
ルは正確に1回受動的に、また1回能動的に参照され
る。
〔5.2.3〕コマンドの分解 コマンド分解は形状 のコマンドの基本構成素子および受動表現式コマンド
(下記参照)への分解を取扱うものである。まず、最初
に、 に対する妥当な実現であることを観察する( の完了から観察可能な の完了後、環境は を再スタートさせることさえできる)。
(下記参照)への分解を取扱うものである。まず、最初
に、 に対する妥当な実現であることを観察する( の完了から観察可能な の完了後、環境は を再スタートさせることさえできる)。
の分解は、9つの可能な能動コマンド の形状に対して別個に取扱われる(割当コマンドは変数
分離中除去される)。また、c0およびc1を2つの新しい
ノンプット(nonput)チャンネルとする。
分離中除去される)。また、c0およびc1を2つの新しい
ノンプット(nonput)チャンネルとする。
(1) は基本構成素子skipである。
(2) は基本構成素子stopである。
(3) (c0はノンプット チャネル)はそれ以上分解されず、
その代りに、c0に対する受動的参照をcでリネームし を除去する。(セクション4.2の遅延不感への注意参
照) (4) は に分解される。
その代りに、c0に対する受動的参照をcでリネームし を除去する。(セクション4.2の遅延不感への注意参
照) (4) は に分解される。
第1のコマンドはtrans基本構成素子、第2のコマン
ドはいわゆる受動表現式で、その分解については、次の
サブセクションで扱う。
ドはいわゆる受動表現式で、その分解については、次の
サブセクションで扱う。
(5) に分解される。第1のコマンドはseq基本構成素子であ
る。
る。
(6) に分解される。第1のコマンドはconc基本構成素子であ
る。
る。
(7) は に分解される。第1のコマンドはsel基本構成素子であ
る。
る。
(8) は に分解される。第1のコマンドはiter基本構成素子であ
る。
る。
(9) に分解される。第1のコマンドはrep基本構成素子であ
る。ここで、 は と等価である。
る。ここで、 は と等価である。
結果として得られるコマンドは妥当なCP−1コマンド
で、形状、 EXP,PASS,VAR,MIX,MUX,DMUX,SKIP,STOP,TRANS,SEQ,CO
NC,SEL,ITER,RER を有する。ここで、EXPはさらに分解されるべき組の受
動表現式コマンドを示し、また、SKIP,STOP,TRANS,SEQ,
CONC,SEL,ITERおよびRERは、それぞれ、タイプskip,sto
p,trans,seq,conc,sel,iterおよびrepの導入される組の
基本構成素子である。
で、形状、 EXP,PASS,VAR,MIX,MUX,DMUX,SKIP,STOP,TRANS,SEQ,CO
NC,SEL,ITER,RER を有する。ここで、EXPはさらに分解されるべき組の受
動表現式コマンドを示し、また、SKIP,STOP,TRANS,SEQ,
CONC,SEL,ITERおよびRERは、それぞれ、タイプskip,sto
p,trans,seq,conc,sel,iterおよびrepの導入される組の
基本構成素子である。
〔5.2.4〕表現式の分解 最後の分解ステップは形状 の受動表現式コマンドの分解である。分解は受動表現式
コマンドの4つの可能な形状に対して別個に扱われる。
また、c0およびc1を2つの新しいチャネルとする。
コマンドの4つの可能な形状に対して別個に扱われる。
また、c0およびc1を2つの新しいチャネルとする。
(1) は一定値kを有し、その受動ポートをチャネルcに接続
したタイプconstの基本構成素子の形状を有するため、
それ以上分解されない。
したタイプconstの基本構成素子の形状を有するため、
それ以上分解されない。
(2) はそれ以上分解されない。その代り、x.0に対する受動
カウンタパート参照(passive conterpart reference)
をcでリネームし、 を除去する(セクション44の遅延不感への注意参照) (3) (ただし、〜は任意の単項演算子を示す)は に分解される。第1のコマンドは演算子〜に対応する単
項演算を実現する基本構成素子の例である。
カウンタパート参照(passive conterpart reference)
をcでリネームし、 を除去する(セクション44の遅延不感への注意参照) (3) (ただし、〜は任意の単項演算子を示す)は に分解される。第1のコマンドは演算子〜に対応する単
項演算を実現する基本構成素子の例である。
(4) (ここで、V=V0V1で、□は任意の2項演算子を示
す)は (ただし、X=X0X1)に分解される。第1のコマンド
は演算子□に対応する2項演算を実現する基本構成素子
の例である。
す)は (ただし、X=X0X1)に分解される。第1のコマンド
は演算子□に対応する2項演算を実現する基本構成素子
の例である。
結果として得られるコマンドは妥当なCP−1コマンド
で、特に、形状 PASS,VAR,MIX,MUX,DMUX,SKIP,STOP,TRANS,SEQ,CONC,S
EL,ITER,REP,CONST,UNA,BIN の抽象回路である。ここで、CONST,UNAおよびBINは、そ
れぞれタイプconst,単項演算子および2項演算子の導入
される組の基本構成素子を示す。
で、特に、形状 PASS,VAR,MIX,MUX,DMUX,SKIP,STOP,TRANS,SEQ,CONC,S
EL,ITER,REP,CONST,UNA,BIN の抽象回路である。ここで、CONST,UNAおよびBINは、そ
れぞれタイプconst,単項演算子および2項演算子の導入
される組の基本構成素子を示す。
かくして、(CP−0からCP−1への翻訳の結果として
の形状を有する)CP−1コマンドの抽象回路への分解が
終了する。
の形状を有する)CP−1コマンドの抽象回路への分解が
終了する。
〔5.3〕抽象回路最適化 抽象回路の最適化は抽象回路をある価格基準にしたが
って等価でより“廉価な”抽象回路に変換することであ
る。この変換は基本的(抽象回路)変換のシーケンスの
形状を有する。
って等価でより“廉価な”抽象回路に変換することであ
る。この変換は基本的(抽象回路)変換のシーケンスの
形状を有する。
〔5.3.1〕抽象回路の価格 抽象回路に関しては種々の価格基準、すなわち、構成
素子の数またはチャネル数等が考えられるが、実際上
は、例えば回路のサイズ、回路スピードおよび消費電力
のような対応する具体回路の価格の方がより関心事であ
る。関連の価格基準は所定の抽象回路に対する真の価格
価値に戻る所定の価格機能に反映されるものとする。所
定の抽象回路変換が最適かどうかを決定することがこの
価格機能である。簡単かつ有用を価格機能の一例とし
て、関連の具体回路(すなわち、CMOS回路)のトランジ
スタ カウントに戻る機能がある。
素子の数またはチャネル数等が考えられるが、実際上
は、例えば回路のサイズ、回路スピードおよび消費電力
のような対応する具体回路の価格の方がより関心事であ
る。関連の価格基準は所定の抽象回路に対する真の価格
価値に戻る所定の価格機能に反映されるものとする。所
定の抽象回路変換が最適かどうかを決定することがこの
価格機能である。簡単かつ有用を価格機能の一例とし
て、関連の具体回路(すなわち、CMOS回路)のトランジ
スタ カウントに戻る機能がある。
〔5.3.2〕基本的変換 (抽象回路)変換は他の回路による補助回路の置換え
として系統的に表示することができる。この場合、取除
かれる補助回路と介挿される回路が等価であるような変
換のみを考えるものとする。等価な回路の各対のうち1
つは、通常、手元の価格基準にしたがってより廉価であ
る。1つの基本的変換は他の基本的変換によって形式化
することはできない。
として系統的に表示することができる。この場合、取除
かれる補助回路と介挿される回路が等価であるような変
換のみを考えるものとする。等価な回路の各対のうち1
つは、通常、手元の価格基準にしたがってより廉価であ
る。1つの基本的変換は他の基本的変換によって形式化
することはできない。
組の基本的変換は使用しうる基本構成素子に従属す
る。以下に与える組の有用な変換は発見的に生成された
ものであるが、基本的テーマは、高価な基本構成素子を
時分割共用とするか、共用構成素子まわりのチャネル構
成を簡単にするかという主旨での基本構成素子の共用に
関するものである。
る。以下に与える組の有用な変換は発見的に生成された
ものであるが、基本的テーマは、高価な基本構成素子を
時分割共用とするか、共用構成素子まわりのチャネル構
成を簡単にするかという主旨での基本構成素子の共用に
関するものである。
基本構成素子の共用を目指す基本的変換の有用性は、
本発明による構文指向分解方法から発する。それはCP−
1サブコマンドが独立して分解されることによる。ま
た、独立して分解されるプログラム部分の境界は基本的
変換を暗示する非能率さを示す。
本発明による構文指向分解方法から発する。それはCP−
1サブコマンドが独立して分解されることによる。ま
た、独立して分解されるプログラム部分の境界は基本的
変換を暗示する非能率さを示す。
第4a図ないし第4c図,第5a図ないし第5c図および第6a
図,第6b図は基本的変換の実施例を与えるものである。
すなわち第4a図ないし第4c図は受動表現式コマンドを共
用する例を示し、第5a図ないし第5c図はトランスファー
ラを共用する例を示し、また、第6a図,第6b図は制御構
造を共用する例を示す。第6a図において、基本構成素子
は、シーケンサ,コンカーサまたはシンクロナイザとす
ることができる。これらの各図は対の等価回路を示す。
左側の回路または右側の回路のどちらが安いかは手元の
価格基準によるが、最も現実的な価格基準に対しては右
側の回路の方が廉価である。
図,第6b図は基本的変換の実施例を与えるものである。
すなわち第4a図ないし第4c図は受動表現式コマンドを共
用する例を示し、第5a図ないし第5c図はトランスファー
ラを共用する例を示し、また、第6a図,第6b図は制御構
造を共用する例を示す。第6a図において、基本構成素子
は、シーケンサ,コンカーサまたはシンクロナイザとす
ることができる。これらの各図は対の等価回路を示す。
左側の回路または右側の回路のどちらが安いかは手元の
価格基準によるが、最も現実的な価格基準に対しては右
側の回路の方が廉価である。
〔5.3.3〕変換シーケンス 抽象回路最適化は、最終の回路が最初の回路より安い
ような基本的変換のシーケンスとして実行される。所定
の抽象回路に対しては多くのこのようなシーケンスが存
在するが、最適の抽象回路をもたらすシーケンスを見出
すことは通常きわめて難しい問題で、これには、次のよ
うな2つの理由がある。
ような基本的変換のシーケンスとして実行される。所定
の抽象回路に対しては多くのこのようなシーケンスが存
在するが、最適の抽象回路をもたらすシーケンスを見出
すことは通常きわめて難しい問題で、これには、次のよ
うな2つの理由がある。
−通常1つ以上の基本的変換を与えることができ、1
つの変換の選択は他を使用不能とし、次に、さもなけれ
ば現われることのない新しい変換が与えられる。
つの変換の選択は他を使用不能とし、次に、さもなけれ
ば現われることのない新しい変換が与えられる。
−より廉価な最終結果に到達させるのに、しばしば価
格が高くなるような変換を必要とする。一般に価格は変
換シーケンスに沿って単調に減少するものではない。
格が高くなるような変換を必要とする。一般に価格は変
換シーケンスに沿って単調に減少するものではない。
最適化変換シーケンスを計算するための簡単かつ有効
な(しかし最適でない)戦略は、次のようないわゆるグ
リーディなアクゴリズム(greedy algorithm)、すなわ
ち、これ以上のコスト改善変換を与えることができなく
なるまで、ランダムに選択したコスト改善基本的変換を
旨く実施することである。
な(しかし最適でない)戦略は、次のようないわゆるグ
リーディなアクゴリズム(greedy algorithm)、すなわ
ち、これ以上のコスト改善変換を与えることができなく
なるまで、ランダムに選択したコスト改善基本的変換を
旨く実施することである。
〔6〕具体回路合成 具体回路合成は抽象回路の等価な具体回路への変換で
ある。抽象回路と具体回路は、インターバルおよびいわ
ゆる初期手順シーケンス(handshake sequences)間の
差別はさておき、関連の外部チャネルにおけるそれらの
行動が区別できないとき等価である。電気的ハンドシェ
ーク シーケンスは、CP−0イベントの精製(refineme
nt)としてのCP−1インターバルの導入と同じように、
CP−1インターバルの精製として導入される。
ある。抽象回路と具体回路は、インターバルおよびいわ
ゆる初期手順シーケンス(handshake sequences)間の
差別はさておき、関連の外部チャネルにおけるそれらの
行動が区別できないとき等価である。電気的ハンドシェ
ーク シーケンスは、CP−0イベントの精製(refineme
nt)としてのCP−1インターバルの導入と同じように、
CP−1インターバルの精製として導入される。
抽象回路の具体回路への変換に関しては、所望の具体
回路の形式(タイミング機構,技術等に関する)に応じ
て、いくつかのオプションが存在する。変換は次の2つ
の連続する補助変換よりなる。
回路の形式(タイミング機構,技術等に関する)に応じ
て、いくつかのオプションが存在する。変換は次の2つ
の連続する補助変換よりなる。
(1) 抽象回路の“等価な”具体回路への翻訳(tran
slation). (2) 具体回路の“等価な”しかも“より廉価”な具
体回路への最適化(optimization). 以上、上記のステップならびに“等価”および“より
廉価”の概念につき論ずることにするが、一方では、任
意の具体回路形式の任意選択に対する一般的局面を、他
方では、抽象回路の具体回路への例示的変換、すなわ
ち、遅延不感(delay−insentive)具体回路への変換に
対する特殊な局面を説明する。まず、遅延不感回路から
スタートすることにする。
slation). (2) 具体回路の“等価な”しかも“より廉価”な具
体回路への最適化(optimization). 以上、上記のステップならびに“等価”および“より
廉価”の概念につき論ずることにするが、一方では、任
意の具体回路形式の任意選択に対する一般的局面を、他
方では、抽象回路の具体回路への例示的変換、すなわ
ち、遅延不感(delay−insentive)具体回路への変換に
対する特殊な局面を説明する。まず、遅延不感回路から
スタートすることにする。
〔6.1〕遅延不感回路 遅延不感回路は個々のゲートおよびワイヤ(線)の遅
延の任意の組合せに対して作動する回路である。
延の任意の組合せに対して作動する回路である。
遅延不感回路においては、すべての通信はワイヤ上の
電圧転移により実現される。遅延と無関係なシーケンス
関係の保持は関連の転移グループ間の因果関係を設定す
ることにより得られる。一般に、同期および通信には相
互接続されたワイヤおよびゲートの閉ループに沿っての
シグナリングを必要とする。
電圧転移により実現される。遅延と無関係なシーケンス
関係の保持は関連の転移グループ間の因果関係を設定す
ることにより得られる。一般に、同期および通信には相
互接続されたワイヤおよびゲートの閉ループに沿っての
シグナリングを必要とする。
例示的具体回路合成の場合は次のような複数の理由の
ため遅延回路を使用する。
ため遅延回路を使用する。
−電圧転移による通信およびクロックの欠如は抽象回
路におけるインターバル通信に概念的に近似している。
路におけるインターバル通信に概念的に近似している。
−遅延不感回路へのコンパイルは具体回路レベルにま
で分離された機能的および物理的正確さを保持し、例え
ば、グリッチ(glitches)およびクロック スキュー
(clock skew)のような標準的な同期の問題が回避され
る。また、遅延不感回路はプロセス パラメータおよび
作動条件に関して強固なものと思われる。
で分離された機能的および物理的正確さを保持し、例え
ば、グリッチ(glitches)およびクロック スキュー
(clock skew)のような標準的な同期の問題が回避され
る。また、遅延不感回路はプロセス パラメータおよび
作動条件に関して強固なものと思われる。
−不要な遅延により回路の正しい作動が影響を受けな
いことのため、より容易にレイアウト合成を行うことが
できる。
いことのため、より容易にレイアウト合成を行うことが
できる。
−遅延不感回路は、同期回路の速度が最悪の場合の行
動をベースにしているのに対し、平均的な場合の行動を
ベースにしているため、回路の速度が速くなりがちであ
る。また、関連の電圧移転のみしか起り得ないため、電
力消費も少ない。
動をベースにしているのに対し、平均的な場合の行動を
ベースにしているため、回路の速度が速くなりがちであ
る。また、関連の電圧移転のみしか起り得ないため、電
力消費も少ない。
トランジスタ レベルまたはゲート レベル上での完
全な遅延不感は設定できない。これらのレベルでは、い
くつかの、ただしきわめて少ない遅延に関する局部的仮
定が不可欠である。これらの仮定は、若干の遅延は他に
対して無視できるような(いくかの相互接続ゲートを含
む)等時性領域(isochronic regions)の概念によりカ
バーされる。等時性領域を含む遅延不感回路は次のエレ
メントから組成される。
全な遅延不感は設定できない。これらのレベルでは、い
くつかの、ただしきわめて少ない遅延に関する局部的仮
定が不可欠である。これらの仮定は、若干の遅延は他に
対して無視できるような(いくかの相互接続ゲートを含
む)等時性領域(isochronic regions)の概念によりカ
バーされる。等時性領域を含む遅延不感回路は次のエレ
メントから組成される。
−任意の有限の遅延を有するワイヤ −すべての関連出力の遅延間の差を無視しうるような
いわゆる等時性フォーク(isochronic forks) −関連入力に関して対称な有限の遅延を有する簡単な
論理ゲート 他の形式のゲートから組成した回路を上記の対称特性
をもったゲートを有する回路に容易に変換することがで
きる。
いわゆる等時性フォーク(isochronic forks) −関連入力に関して対称な有限の遅延を有する簡単な
論理ゲート 他の形式のゲートから組成した回路を上記の対称特性
をもったゲートを有する回路に容易に変換することがで
きる。
遅延不感回路を作成する場合は、都合のよい任意のゲ
ートが使用されるが、遅延不感回路においてきわめて頻
繁に出てくるミュラーCエレメント(Muller C−elemen
t)と呼ばれる特殊なエレメントを使用する。(C.L.Sei
tz,System Timing,Chapter 7 in:C.A.Mead,L.A.Conway,
introduction to VLSI Systems,Addison Wesley,London
Amsterdam Paris,1980.を参照)Cエレメントは1つの
出力を有し、任意の数の入力を有することができる。そ
の出力は、すべての入力が現在の出力値の反対の値を有
する場合のみ変化し、そうでない場合出力は不変であ
る。Cエレメントは“C"を円で包囲した形で描写する。
より多くの出力を描写した場合、これらに同じ信号を表
わす。
ートが使用されるが、遅延不感回路においてきわめて頻
繁に出てくるミュラーCエレメント(Muller C−elemen
t)と呼ばれる特殊なエレメントを使用する。(C.L.Sei
tz,System Timing,Chapter 7 in:C.A.Mead,L.A.Conway,
introduction to VLSI Systems,Addison Wesley,London
Amsterdam Paris,1980.を参照)Cエレメントは1つの
出力を有し、任意の数の入力を有することができる。そ
の出力は、すべての入力が現在の出力値の反対の値を有
する場合のみ変化し、そうでない場合出力は不変であ
る。Cエレメントは“C"を円で包囲した形で描写する。
より多くの出力を描写した場合、これらに同じ信号を表
わす。
〔6.2〕翻 訳 あらゆる具体回路形式オプションに対して抽象回路の
具体回路への翻訳は次のような方法で直進的(straight
forward)である。
具体回路への翻訳は次のような方法で直進的(straight
forward)である。
(1) 抽象多回路の各チャネルを具体回路内の物理的
相互接続、すなわち、ワイヤ(配線)の束に翻訳する。
ワイヤの数はチャネルに沿って値(バリュー)が通信さ
れるかどうかに従属し、もしそうであれば値の幅に従属
する。
相互接続、すなわち、ワイヤ(配線)の束に翻訳する。
ワイヤの数はチャネルに沿って値(バリュー)が通信さ
れるかどうかに従属し、もしそうであれば値の幅に従属
する。
(2) 抽象回路のパラメタライズされない各基本構成
素子を具体回路の固定補助回路に翻訳する。
素子を具体回路の固定補助回路に翻訳する。
(3) 抽象回路のパラメタライズされた各基本構成素
子を正規の方法で複数の固定回路部分により組成した補
助回路に翻訳する。
子を正規の方法で複数の固定回路部分により組成した補
助回路に翻訳する。
以下順次上記各項につき説明する。
〔6.2.1〕チャネル あらゆる回路形式オプションに対して、どのようにし
て電気信号で通信インターバルを実現するかを決める必
要がある。刻時された回路に対しては、信号はクロック
“チック(tick)”の時間におけるワイヤ上の電圧レベ
ルにより表わされ、、遅延不感回路に対しては、信号は
ワイヤ上の電圧転移により表わされる。インターバルと
信号間の関係は次の各項を特定するプロトコルにより与
えられる。
て電気信号で通信インターバルを実現するかを決める必
要がある。刻時された回路に対しては、信号はクロック
“チック(tick)”の時間におけるワイヤ上の電圧レベ
ルにより表わされ、、遅延不感回路に対しては、信号は
ワイヤ上の電圧転移により表わされる。インターバルと
信号間の関係は次の各項を特定するプロトコルにより与
えられる。
(1) (どの値が通信されるかに応じ、またその値の
幅に応じて)1つのチャネルでの通信にどれだけのワイ
ヤが使用されるか、インターバルはチャネルの能動サイ
ドにより始まり、チャネルの受動サイドにより終るの
で、それぞれ、各関連サイドから他のサイドにシグナリ
ングする2つのワイヤ グループが必要である。
幅に応じて)1つのチャネルでの通信にどれだけのワイ
ヤが使用されるか、インターバルはチャネルの能動サイ
ドにより始まり、チャネルの受動サイドにより終るの
で、それぞれ、各関連サイドから他のサイドにシグナリ
ングする2つのワイヤ グループが必要である。
(2) どのようにして同期が得られるか、すなわち双
方のワイヤ グループ上の信号がどのようにして刻時さ
れるか、 (3) どのようにして各値が信号によりエンコードさ
れるか、 プロトコルは各インターバルに対して信号のシーケン
スを限定する。このようなシーケンスはハンドシェーク
シーケンス(handshake sequence)と呼ばれる。
方のワイヤ グループ上の信号がどのようにして刻時さ
れるか、 (3) どのようにして各値が信号によりエンコードさ
れるか、 プロトコルは各インターバルに対して信号のシーケン
スを限定する。このようなシーケンスはハンドシェーク
シーケンス(handshake sequence)と呼ばれる。
遅延不感回路に対しては、いくつかのプロトコルが可
能である。本発明による具体回路合成の実施例の場合
は、次のようなプロトコルを使用している。
能である。本発明による具体回路合成の実施例の場合
は、次のようなプロトコルを使用している。
(1) ノンプット(nonput)チャネルは、それぞれチ
ャネルの各関連サイドから他のサイドに至る2つのワイ
ヤに対応する。幅nの入出力チャネルは出力から入力へ
の2nのワイヤの束プラス入力から出力への単一ワイヤに
翻訳する。
ャネルの各関連サイドから他のサイドに至る2つのワイ
ヤに対応する。幅nの入出力チャネルは出力から入力へ
の2nのワイヤの束プラス入力から出力への単一ワイヤに
翻訳する。
(2) 同期はいわゆる4フェーズ シグナリングによ
り実現される。第1のフェーズでは、能動サイドがその
電気的出力ワイヤ上で電圧転移を開始し、第2のフェー
ズでは変動サイドがその電気的出力上に転移を生じさ
せ、第3のフェーズでは、能動サイドがその転移を逆転
させ(したがって、その電気的出力ワイヤ上には再び初
期状態が設定される)。また第4のフェーズでは、受動
サイドがその転移を逆転させる。
り実現される。第1のフェーズでは、能動サイドがその
電気的出力ワイヤ上で電圧転移を開始し、第2のフェー
ズでは変動サイドがその電気的出力上に転移を生じさ
せ、第3のフェーズでは、能動サイドがその転移を逆転
させ(したがって、その電気的出力ワイヤ上には再び初
期状態が設定される)。また第4のフェーズでは、受動
サイドがその転移を逆転させる。
第1のフェーズではCP−1インターバルの始めに対応
し、第4のフェーズはCP−1インターバルの終りに対応
する。
し、第4のフェーズはCP−1インターバルの終りに対応
する。
(3) バリュー エンコーディングに対しては、いわ
ゆる複線コード(double−rail code)を使用する。各
データビットは対のワイヤに対応する。1つのワイヤ上
の転移は値“0"を示し、他のワイヤ上の転移は値“1"を
示す。
ゆる複線コード(double−rail code)を使用する。各
データビットは対のワイヤに対応する。1つのワイヤ上
の転移は値“0"を示し、他のワイヤ上の転移は値“1"を
示す。
〔6.2.2〕基本構成素子 基本構成素子のCP−1コマンドにつき考えることにす
る。このコマンドからは、イベント(すなわち、通信イ
ンターバルの始めと終りに対応するイベント)の(部分
的)命令またはオーダーが生じ、この(部分的)オーダ
ーからハンドシェーク信号の(部分的)オーダーを抽出
することができる。それは、回路形式オプション用のプ
ロトコルが直接インターバルおよびハンドシェーク シ
ーケンスに関係していることによる。かくして、各基本
構成素子に対して、その行動をハンドシェーク信号によ
り記述したいわゆるハンドシェーク展開(handshake ex
pansion)を抽出することができる。このハンドシェー
ク展開は、基本構成素子の具体回路に対する仕様として
機能し、基本構成素子の翻訳はこの仕様を実現する補助
回路を与える。
る。このコマンドからは、イベント(すなわち、通信イ
ンターバルの始めと終りに対応するイベント)の(部分
的)命令またはオーダーが生じ、この(部分的)オーダ
ーからハンドシェーク信号の(部分的)オーダーを抽出
することができる。それは、回路形式オプション用のプ
ロトコルが直接インターバルおよびハンドシェーク シ
ーケンスに関係していることによる。かくして、各基本
構成素子に対して、その行動をハンドシェーク信号によ
り記述したいわゆるハンドシェーク展開(handshake ex
pansion)を抽出することができる。このハンドシェー
ク展開は、基本構成素子の具体回路に対する仕様として
機能し、基本構成素子の翻訳はこの仕様を実現する補助
回路を与える。
遅延不感具体回路合成の実施例の場合、具体回路はハ
ンドシェーク展開によりポート ワイヤ上の電位転移の
見地から規定するようにし、遅延不感補助回路により前
記回路を実現している。この場合、補助回路間通信用の
遅延不感プロトコルは具体回路のすべてを遅延不感とす
ることを保証する。
ンドシェーク展開によりポート ワイヤ上の電位転移の
見地から規定するようにし、遅延不感補助回路により前
記回路を実現している。この場合、補助回路間通信用の
遅延不感プロトコルは具体回路のすべてを遅延不感とす
ることを保証する。
パラメタライズされない基本構成素子は固定補助回路
に翻訳する。rep構成素子用の遅延不感具体補助回路の
きわめて簡単な例を第7図に示す。
に翻訳する。rep構成素子用の遅延不感具体補助回路の
きわめて簡単な例を第7図に示す。
パラメタライズされた基本構成素子はパラメータの実
際の値に従属する補助回路に翻訳する。各基本構成素子
に対しては、所定のパラメータ値に対する補助回路を少
数の固定回路部分から構成するための簡単な図式(スキ
ーム)がある。例として、第8図はどのようにしてseq
(k)構成素子用補助回路をk−1の同一回路部分から
構成するかを示すものである。
際の値に従属する補助回路に翻訳する。各基本構成素子
に対しては、所定のパラメータ値に対する補助回路を少
数の固定回路部分から構成するための簡単な図式(スキ
ーム)がある。例として、第8図はどのようにしてseq
(k)構成素子用補助回路をk−1の同一回路部分から
構成するかを示すものである。
〔6.3〕最適化 抽象回路の翻訳は基本構成素子に対応する具体的構成
素子の組成物である具体回路を与える。最適化は、回路
を等価でしかもより“廉価な”回路に変換することであ
る。その結果として得られる具体回路においては、一般
に副回路および相互接続を基本構成およびチャネルのカ
ウンタパート(片割れ)として直接見分けることはもは
や不可能である。
素子の組成物である具体回路を与える。最適化は、回路
を等価でしかもより“廉価な”回路に変換することであ
る。その結果として得られる具体回路においては、一般
に副回路および相互接続を基本構成およびチャネルのカ
ウンタパート(片割れ)として直接見分けることはもは
や不可能である。
小さい補助回路を等価な補助回路で代替させることを
旨とする複数の基本的回路変換につき考えた場合、最適
化はある価格基準にしたがってより低価格の回路を与え
るこのような変換のシーケンスである。
旨とする複数の基本的回路変換につき考えた場合、最適
化はある価格基準にしたがってより低価格の回路を与え
るこのような変換のシーケンスである。
価格基準は具体回路から実の値への任意の作用で、通
常、所定の技術、すなわちCMOSにおける回路のサイズも
しくはスピードを反映する。
常、所定の技術、すなわちCMOSにおける回路のサイズも
しくはスピードを反映する。
組の可能な回路変換は回路形式の任意選択に大いに依
存する。例えば(グローバルな刻時回路の場合に)特別
なタイミングの仮定を使用することにより必要とするシ
グナリングを減少させ(さらに効率的な回路を作成さ
せ)ることができる。
存する。例えば(グローバルな刻時回路の場合に)特別
なタイミングの仮定を使用することにより必要とするシ
グナリングを減少させ(さらに効率的な回路を作成さ
せ)ることができる。
遅延不感具体回路合成の場合における基本的回路変換
の簡単な例としては、直接大地変位に接続した入力の除
去,2重反転の除去、(等時性フォーク等に関するある条
件のもとにおける)ド・モルガン・ルールの適用があ
る。
の簡単な例としては、直接大地変位に接続した入力の除
去,2重反転の除去、(等時性フォーク等に関するある条
件のもとにおける)ド・モルガン・ルールの適用があ
る。
〔7〕実施例 以下シリコン コンパイラ方法の実施例につき説明す
る。
る。
〔7.1〕Buf2 コンパイラに対する実施例はBuf2と呼ばれる2プレー
ス パッファである。パッファは1つの入力ポートiお
よび1つの出力ポートoを有する構成素子で、その出力
において同じオーダーで入力を再生する。その出力にお
ける値の流れ(ストリーム)はいわゆる入力値のストリ
ームのプレフィックスである。2プレース バッファ
は、出力事象が入力事象より多くても2つ遅れるような
バッファで、この場合、出力ストリームの長さは入力ス
トリームの長さより多くても2つ少ない。
ス パッファである。パッファは1つの入力ポートiお
よび1つの出力ポートoを有する構成素子で、その出力
において同じオーダーで入力を再生する。その出力にお
ける値の流れ(ストリーム)はいわゆる入力値のストリ
ームのプレフィックスである。2プレース バッファ
は、出力事象が入力事象より多くても2つ遅れるような
バッファで、この場合、出力ストリームの長さは入力ス
トリームの長さより多くても2つ少ない。
Buf2用のCP−0プログラムは第9図に示すとおりで、
それは同じ構造、すなわち1プレース バッファの構造
を有する2つのサブコマンドの並列合成である。したが
って、Buf2は、内部チャネルmにより接続した2つの1
プレース バッファのカスケードと考えることができ
る。これを第10図に示す。
それは同じ構造、すなわち1プレース バッファの構造
を有する2つのサブコマンドの並列合成である。したが
って、Buf2は、内部チャネルmにより接続した2つの1
プレース バッファのカスケードと考えることができ
る。これを第10図に示す。
Buf2の作動は次のように理解することができる。双方
のサブコマンドは入力アクションとともにのみ始めるこ
とができるが、内部チャネルmからの入力は、m上の出
力と一致しなければならないので、まだ起り得ない。し
たがって、本当の最初のアクションはポートi上の入力
でなければならず、入力値は変数x内に蓄積される。2
番目のアクションはm上の内部通信のみであるはずで、
xの値に変数yが割当てられる。次に、i上の新しい値
の入力およびo上のyの値の出力が任意のオーダー(並
列にさえも)でなされる。双方のアクションの終了後、
m上の他の内部通信が行われる。
のサブコマンドは入力アクションとともにのみ始めるこ
とができるが、内部チャネルmからの入力は、m上の出
力と一致しなければならないので、まだ起り得ない。し
たがって、本当の最初のアクションはポートi上の入力
でなければならず、入力値は変数x内に蓄積される。2
番目のアクションはm上の内部通信のみであるはずで、
xの値に変数yが割当てられる。次に、i上の新しい値
の入力およびo上のyの値の出力が任意のオーダー(並
列にさえも)でなされる。双方のアクションの終了後、
m上の他の内部通信が行われる。
〔7.2〕Buf2に対する抽象回路合成 Buf2に対するつの抽象回路合成ステップは次のとおり
である。
である。
(1) CP−0プログラム(第9図)の第11図により与
えられる対応するCP−1プログラムへの変換、CP−0プ
ログラム内に生ずる内部チャネルmに対しては、pass基
本構成素子プラス2つの新しいチャネルm0,m1がCP−1
プログラムに導入される。
えられる対応するCP−1プログラムへの変換、CP−0プ
ログラム内に生ずる内部チャネルmに対しては、pass基
本構成素子プラス2つの新しいチャネルm0,m1がCP−1
プログラムに導入される。
(2) CP−1プログラム(第11図)の基本構成素子へ
の分解を第12図に示す。第12図において、コマンド に分解する分解ステップは により表わされる。分解の結果得られる基本構成素子
は、次のように表わされる。すなわち、 に対してconc(s0,s1,s2).その結果として得られる抽
象回路を第13図に示す。
の分解を第12図に示す。第12図において、コマンド に分解する分解ステップは により表わされる。分解の結果得られる基本構成素子
は、次のように表わされる。すなわち、 に対してconc(s0,s1,s2).その結果として得られる抽
象回路を第13図に示す。
(3) 第13図からの抽象回路の最適化は第14図の抽象
回路を与える。最適化は、いずれかのサイドでのpass構
成素子の2つのtrans構成素子との組合せをsync構成素
子を介して制御される単一のtransにより代替する単一
変換よりなる(第5a図参照)。
回路を与える。最適化は、いずれかのサイドでのpass構
成素子の2つのtrans構成素子との組合せをsync構成素
子を介して制御される単一のtransにより代替する単一
変換よりなる(第5a図参照)。
〔7.3〕Buf2に対する具体回路合成 具体回路合成の場合は、変数およびバリュー通信チャ
ネルに対して1ビットの幅をとるものとする。この場合
には、遅延不感具体回路合成は次のようになる。
ネルに対して1ビットの幅をとるものとする。この場合
には、遅延不感具体回路合成は次のようになる。
(1) 第14図からの抽象回路の翻訳により第15図のよ
うな具体的遅延不感回路が生成される。実線ボックスで
包囲した第15図の各補助回路は第14図の基本構成素子に
対応し、かくして補助回路のセットによりライブラリが
構成される。簡単のため、他のライブラリエレメントの
リスト アップは省略する。1対1ライブラリにより翻
訳についてはそれ自体よく知られている。
うな具体的遅延不感回路が生成される。実線ボックスで
包囲した第15図の各補助回路は第14図の基本構成素子に
対応し、かくして補助回路のセットによりライブラリが
構成される。簡単のため、他のライブラリエレメントの
リスト アップは省略する。1対1ライブラリにより翻
訳についてはそれ自体よく知られている。
(2) 第15図示具体回路の最適化は、例えば一番上の
補助回路100においてCエレメントを除去することにあ
る。それは、Cエレメントの双方の入力は大地電位に接
続されており、S0出力線は直接大地電位に接続できるこ
とによる。
補助回路100においてCエレメントを除去することにあ
る。それは、Cエレメントの双方の入力は大地電位に接
続されており、S0出力線は直接大地電位に接続できるこ
とによる。
第1図はシリコン コンパイラ プログラムの分解を与
える図、 第2図は言語CP−0の構文を示す図、 第3図は言語CP−1の構文を示す図、 第4図,第5図および第6図は抽象回路最適化期間中に
適用される基本的抽象回路変換の例を示す図、 第7図は基本構成素子rep.の具体回路を示す図、 第8図は基本構成素子seq.の具体回路を示す図、 第9図はCP−0における2プレース バッファの表示を
与える図、 第10図は2プレース バッファのブロック図、 第11図はCP−0からCP−1への2プレース バッファの
翻訳を与える図、 第12図は2プレース バッファのCP−1バージョンの基
本構成素子への分解を与える図(この分解の結果が抽象
回路である)。 第13図は第12図において抽出される抽象回路のグラフ表
示を与える図、 第14図は第13図示抽象回路に適用した最適化の結果を示
す図、 第15図に第14図に関する具体回路実現を与える図、 また、第1表は種々の基本抽象回路構成素子のリストを
与える表である。 20……シリコン コンパイラ 22……原始テキスト 24……ソース アナライザ 26……木構造 28……抽象回路シンセサイザ 30……抽象回路 32……具体回路シンセサイザ 34……具体回路 36……レイアウト シンセサイザ 38……VLSIレイアウト 40……回路シンセサイザ 42……シリコン シンセサイザ 100……補助回路
える図、 第2図は言語CP−0の構文を示す図、 第3図は言語CP−1の構文を示す図、 第4図,第5図および第6図は抽象回路最適化期間中に
適用される基本的抽象回路変換の例を示す図、 第7図は基本構成素子rep.の具体回路を示す図、 第8図は基本構成素子seq.の具体回路を示す図、 第9図はCP−0における2プレース バッファの表示を
与える図、 第10図は2プレース バッファのブロック図、 第11図はCP−0からCP−1への2プレース バッファの
翻訳を与える図、 第12図は2プレース バッファのCP−1バージョンの基
本構成素子への分解を与える図(この分解の結果が抽象
回路である)。 第13図は第12図において抽出される抽象回路のグラフ表
示を与える図、 第14図は第13図示抽象回路に適用した最適化の結果を示
す図、 第15図に第14図に関する具体回路実現を与える図、 また、第1表は種々の基本抽象回路構成素子のリストを
与える表である。 20……シリコン コンパイラ 22……原始テキスト 24……ソース アナライザ 26……木構造 28……抽象回路シンセサイザ 30……抽象回路 32……具体回路シンセサイザ 34……具体回路 36……レイアウト シンセサイザ 38……VLSIレイアウト 40……回路シンセサイザ 42……シリコン シンセサイザ 100……補助回路
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ロナルド・ウィルヘルム・ヨハン・ヨゼ フ・サエーイス オランダ国5621 ベーアー アインドー フェン フルーネバウツウェッハ1 (72)発明者 コルネリス・ニーセン オランダ国5621 ベーアー アインドー フェン フルーネバウツウェッハ1 (56)参考文献 Distributed Compu ting,Vol.1,no.1,p. 226−234,A.J.Martin,”C ompiling communica ting processes int o delay−insentive VLSI circuits"
Claims (7)
- 【請求項1】シリコン・コンパイラのプログラムを実行
するシリコン・コンパイラ方法において、 a) 下記の一連のサブステップ、すなわち: a1)明白な並列構造と、明白な直列構造と、明白な通信
構造であってタイムインターバルとして表わされ且つプ
ログラムチャネルの能動サイド又は受動サイドでの実行
のために能動的か受動的かのどちらかである通信行動を
規定するところの明白な通信構造と、を含む概念を有す
る第1の命令型並行(imperative concurrent)コンピ
ュータ言語によりアルゴリズムを表現する原始テキスト
を受信するサブステップ,及び a2)語句(lexical)分析、構文(syntactic)分析、及
び意味(semantic)分析を行うことにより上記受信した
原始テキストを、上記概念により規定される木構造(抽
象概念としての)表現に変換するサブステップ, という一連のサブステップを持つソースアナライザのス
テップと; b) 上記木構造表現を、抽象チャネルにより相互接続
される基本構成素子のネットワークであるところの抽象
回路の表現に変換するための抽象回路シンセサイザのス
テップであって、それらの基本構成素子の各々が1つの
基本プログラムの実行を表わし、また各抽象チャネルが
それを介して相互接続される2つの基本プログラムを正
確に性格付ける関連のプログラムチャネルを表わすとこ
ろの抽象回路シンセサイザのステップと; c) 上記抽象回路表現を、タイミング機構の要求条件
と回路形式の要求条件と技術的実現性の要求条件とによ
り制約されるような、具体回路表現に変換するステップ
であり、また一方で、各抽象チャネルを具体回路のワイ
ヤセット(wire set)に1対1に翻訳し、且つ抽象回路
の各基本構成素子を、少なくとも1つのワイヤセットに
より他の電子回路にリンクさせた基本電子回路に1対1
に翻訳するステップであるところのステップと; d) 上記具体回路表現を超大規模集積回路のレイアウ
トに変換するステップであり、また一方で、上記具体回
路表現により特定されはしないが、インレイアウトの受
動部分の電気的特性による権限委譲がなされる基本回路
素子を設ける、という少なくとも1つの低レベルのタス
クを実行するステップであるところのステップと; を含むことを特徴とするシリコン・コンパイラ方法。 - 【請求項2】請求項1に記載の方法において、上記ソー
スアナライザのステップは、初期ステップ、すなわち: a) 上記原始テキストを、上記通信構造が上記通信行
動を瞬間的な事象として規定するところの第2の命令型
並行コンピュータ言語で受信するためのステップであ
り、且つ上記サブステップa1)に提供するために、上記
原始テキストを上記第1の命令型並行コンピュータ言語
に変換するためのステップであるところのステップ を含むことを特徴とするシリコン・コンパイラ方法。 - 【請求項3】シリコン・コンパイラ装置において、プロ
グラムモジュールとして、 a) ソースアナライザのモジュールであって: a1)明白な並列構造と、明白な直列構造と、タイムイン
ターバルとして表わされ且つプログラムチャネルの能動
サイド又は受動サイドでの実行のために能動的か受動的
かのどちらかである通信行動を規定するところの明白な
通信構造と、を含む概念を持つ第1の命令型並行コンピ
ュータ言語で表現される原始テキストを受信するための
第1受信手段; a2)語句分析、構文分析、及び意味分析を行うことによ
り受信した原始テキストを、上記概念により規定される
木構造(抽象概念としての)表現に変換するための第1
変換手段; a3)上記木構造の表現を出力するための第1出力手段; を持つソースアラナイザのモジュール、 b) 抽象回路シンセサイザのモジュールであって: b1)上記第1出力手段の出力を受信する第2受信手段; b2)上記木構造表現を、抽象チャネルにより相互接続さ
れる基本構成素子のネットワークであるところの抽象回
路の表現に変換するための第2変換手段であって、それ
らの基本構成素子の各々が1つの基本プログラムの実行
を表わし、また各抽象チャネルがそれを介して相互接続
される2つの基本プログラムを正確に性格付ける関連の
プログラムチャネルを表わすところの第2変換手段; b3)上記抽象回路の表現を出力するための第2出力手
段; を持つ抽象回路のシンセサイザのモジュール、 c) 具体回路シンセサイザのモジュールであって: c1)上記第2出力手段の出力を受信する第3入力手段; c2)上記受信した抽象回路表現を、少なくともタイミン
グ機構の要求条件と回路形式の要求条件と技術的実現性
の要求条件とにより制約されるような具体回路表現に変
換する手段であり、また一方で、各抽象チャネルを具体
回路のワイヤセットに1対1に翻訳し、且つ抽象回路の
各基本構成素子を、少なくとも1つの上記ワイヤセット
により他の電子回路にリンクさせた基本電子回路に1対
1に翻訳する手段であるところの第3変換手段; c3)上記具体回路表現を出力するための第3出力手段; を持つ具体回路シンセサイザのモジュール、 d) レイアウトシンセサイザのモジュールであって: d1)上記第3出力手段の出力を受信する第4入力手段; d2)上記受信した具体回路表現を超大規模集積回路のレ
イアウトに変換する手段であり、また一方で、上記具体
回路表現により特定されはしないが、インレイアウトの
受動部分の電気的特性による権限委譲がなされる基本回
路素子を設ける、という少なくとも1つの低レベルのタ
スクを実行する手段であるところの第4変換手段; d3)集積回路を其処から生成するためのソースとして、
上記大規模集積回路のレイアウトを出力するための第4
出力手段; を持つレイアウトシンセサイザのモジュール、 という諸プログラムモジュールを含む階層的なシリコン
・コンパイラのプログラムを持つコンピュータを有して
成ることを特徴とするシリコン・コンパイラ装置。 - 【請求項4】請求項3に記載の装置において、上記ソー
スアナライザのモジュールは、フロントモジュールとし
て: a) 上記原始テキストを、上記通信構造が上記通信行
動を瞬間的な事象として規定するところの第2の命令型
並行コンピュータ言語で受信するためのモジュールであ
り、且つ上記第1受信手段に提供するために、上記原始
テキストを上記第1の命令型並行コンピュータ言語に変
換するためのモジュールであるところのフロントモジュ
ール; を有して成ることを特徴とするシリコン・コンパイラ装
置。 - 【請求項5】請求項3に記載の装置において、上記抽象
回路シンセサイザのモジュールは、予め定められた基本
構成素子の環境の性能を査定するために上記第2変換手
段と双方向で通信する価格属性の変換装置を含み、上記
抽象回路内の該環境を修正することによって、抽象回路
の価格属性をそれにより実行可能なプログラムを不変の
ままとして改善するようにしたことを特徴とするシリコ
ン・コンパイラ装置。 - 【請求項6】請求項3又は4に記載のシリコン・コンパ
イラ装置で使用する抽象回路シンセサイザのモジュール
において、次の手段、すなわち: a) 明白な並列構造と、明白な直列構造と、タイムイ
ンターバルとして表わされ且つプログラムチャネルの能
動サイド又は受動サイドでの実行のために能動的か受動
的かのどちらかである通信行動を規定するところの明白
な通信構造と、を含む概念を持つ第1の命令型並行コン
ピュータ言語で表現される原始テキストの木構造(抽象
概念としての)表現の表示を受信する入力手段と; b) 上記木構造表現を、抽象チャネルにより相互接続
される基本構成素子のネットワークであるところの抽象
回路の表現に変換するための変換手段であって、それら
の基本構成素子の各々が1つの基本プログラムの実行を
表わし、また各抽象チャネルがそれを介して相互接続さ
れる2つの基本プログラムを正確に性格付ける関連のプ
ログラムチャネルを表わし、また各基本プログラムは、
上記抽象回路内で少なくとも次に示すモジュール、すな
わち: b1)所与のn及びkに対して、k個の読み取りポートを
持つnビットの変数(variable); b2)2つの能動ポートの間の、nビット幅のインターコ
ネクタであるところのnビットのパッシベータ(passiv
ator); b3)1つの受動ポートから他の受動ポートに、nビット
幅のメッセージを能動的に転送するところのnビットの
トランスファーラ(transferrer); b4)少なくとも2つのコマンドのセットを順次的に実行
するシーケンサ(sequencer); b5)少なくとも2つのコマンドのセットを並行的に実行
するコンカーサ(concursor); b6)1つのコマンドを無限の頻度で繰り返し実行するレ
ピータ(repeater); b7)到来するブールメッセージ(boolean message)の
予め定められた値の制御の下に、特定の第1コマンドと
特定の第2コマンドとの間で選択を行うブール演算セレ
クタ(boolean selector); の各モジュールが実現する基本プログラムの有限個のセ
ットのエレメントであるところの変換手段と; c) 上記抽象回路の表現を出力するために変換手段か
ら供給を受ける出力手段と; の各手段を有して成ることを特徴とする抽象回路シンセ
サイザのモジュール。 - 【請求項7】請求項6に記載のモジュールにおいて、 a) 予め定められた基本構成素子の環境の性能を査定
するために上記変換手段と双方向で通信する価格属性の
変換装置であって、上記抽象回路内の該環境を修正する
ことによって、抽象回路の価格属性をそれにより実行可
能なプログラムを不変のままとして改善するところ価格
属性の変換装置; を更に有して成ることを特徴とする抽象回路シンセサイ
ザのモジュール。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/156,392 US5005136A (en) | 1988-02-16 | 1988-02-16 | Silicon-compiler method and arrangement |
US156392 | 1988-02-16 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP30713899A Division JP3258000B2 (ja) | 1988-02-16 | 1999-10-28 | 電子回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH028937A JPH028937A (ja) | 1990-01-12 |
JP3026979B2 true JP3026979B2 (ja) | 2000-03-27 |
Family
ID=22559383
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1031247A Expired - Fee Related JP3026979B2 (ja) | 1988-02-16 | 1989-02-13 | シリコン コンパイラ方法および装置 |
JP30713899A Expired - Lifetime JP3258000B2 (ja) | 1988-02-16 | 1999-10-28 | 電子回路 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP30713899A Expired - Lifetime JP3258000B2 (ja) | 1988-02-16 | 1999-10-28 | 電子回路 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5005136A (ja) |
EP (1) | EP0329233A3 (ja) |
JP (2) | JP3026979B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015117576A (ja) * | 2015-02-20 | 2015-06-25 | パナホーム株式会社 | 屋根構造 |
Families Citing this family (63)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02234274A (ja) * | 1989-03-08 | 1990-09-17 | Hitachi Ltd | パイプライン制御論理の自動生成方法及び制御論理 |
US5367468A (en) * | 1990-02-21 | 1994-11-22 | Kabushiki Kaisha Toshiba | Design aid method and design aid apparatus for integrated circuits |
NL9000544A (nl) * | 1990-03-09 | 1991-10-01 | Philips Nv | Schrijf-erkenningscircuit bevattende schrijfdetector en bistabiel element voor vier-fase hand-shake signalering. |
US5299137A (en) * | 1990-04-05 | 1994-03-29 | Vlsi Technology, Inc. | Behavioral synthesis of circuits including high impedance buffers |
US5553002A (en) * | 1990-04-06 | 1996-09-03 | Lsi Logic Corporation | Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, using milestone matrix incorporated into user-interface |
US5870308A (en) * | 1990-04-06 | 1999-02-09 | Lsi Logic Corporation | Method and system for creating and validating low-level description of electronic design |
US5222030A (en) * | 1990-04-06 | 1993-06-22 | Lsi Logic Corporation | Methodology for deriving executable low-level structural descriptions and valid physical implementations of circuits and systems from high-level semantic specifications and descriptions thereof |
US5867399A (en) * | 1990-04-06 | 1999-02-02 | Lsi Logic Corporation | System and method for creating and validating structural description of electronic system from higher-level and behavior-oriented description |
US5572437A (en) * | 1990-04-06 | 1996-11-05 | Lsi Logic Corporation | Method and system for creating and verifying structural logic model of electronic design from behavioral description, including generation of logic and timing models |
US5544067A (en) * | 1990-04-06 | 1996-08-06 | Lsi Logic Corporation | Method and system for creating, deriving and validating structural description of electronic system from higher level, behavior-oriented description, including interactive schematic design and simulation |
US5555201A (en) * | 1990-04-06 | 1996-09-10 | Lsi Logic Corporation | Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, including interactive system for hierarchical display of control and dataflow information |
US5623418A (en) * | 1990-04-06 | 1997-04-22 | Lsi Logic Corporation | System and method for creating and validating structural description of electronic system |
US5557531A (en) * | 1990-04-06 | 1996-09-17 | Lsi Logic Corporation | Method and system for creating and validating low level structural description of electronic design from higher level, behavior-oriented description, including estimating power dissipation of physical implementation |
US5541849A (en) * | 1990-04-06 | 1996-07-30 | Lsi Logic Corporation | Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, including estimation and comparison of timing parameters |
US5598344A (en) * | 1990-04-06 | 1997-01-28 | Lsi Logic Corporation | Method and system for creating, validating, and scaling structural description of electronic device |
US5544066A (en) * | 1990-04-06 | 1996-08-06 | Lsi Logic Corporation | Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, including estimation and comparison of low-level design constraints |
US5572436A (en) * | 1990-04-06 | 1996-11-05 | Lsi Logic Corporation | Method and system for creating and validating low level description of electronic design |
US5359537A (en) * | 1990-05-14 | 1994-10-25 | Vlsi Technology, Inc. | Automatic synthesis of integrated circuits employing controlled input dependency during a decomposition process |
US5617578A (en) * | 1990-06-26 | 1997-04-01 | Spss Corp. | Computer-based workstation for generation of logic diagrams from natural language text structured by the insertion of script symbols |
US5428550A (en) * | 1990-06-28 | 1995-06-27 | National Semiconductor Corporation | Hierarchical hardware flowchart using symbolic macros |
US5412591A (en) * | 1990-08-09 | 1995-05-02 | Vlsi Technology, Inc. | Schematic compiler for a multi-format high speed multiplier |
US5406497A (en) * | 1990-09-05 | 1995-04-11 | Vlsi Technology, Inc. | Methods of operating cell libraries and of realizing large scale integrated circuits using a programmed compiler including a cell library |
US5490082A (en) * | 1990-11-07 | 1996-02-06 | Vlsi Technology, Inc. | Method of graphically designing circuits |
JP2573414B2 (ja) * | 1990-11-21 | 1997-01-22 | 株式会社東芝 | 半導体集積回路製造方法 |
US5303161A (en) * | 1990-12-10 | 1994-04-12 | Hughes Aircraft Company | Technology independent integrated circuit mask artwork generator |
US5249133A (en) * | 1991-04-10 | 1993-09-28 | Sun Microsystems, Inc. | Method for the hierarchical comparison of schematics and layouts of electronic components |
US5325309A (en) * | 1991-04-30 | 1994-06-28 | Lsi Logic Corporation | Method and apparatus for integrated circuit diagnosis |
US5315534A (en) * | 1991-06-25 | 1994-05-24 | Unisys Corporation | Computer process for interconnecting logic circuits utilizing softwire statements |
US5452227A (en) * | 1991-11-13 | 1995-09-19 | Westinghouse Elec. Corp. | Method and apparatus for converting a programmable logic device designed into a selectable target gate array design |
TW226057B (ja) * | 1991-12-23 | 1994-07-01 | Philips Nv | |
CZ383292A3 (en) * | 1992-02-18 | 1994-03-16 | Koninkl Philips Electronics Nv | Method of testing electronic circuits and an integrated circuit tested in such a manner |
US5491640A (en) * | 1992-05-01 | 1996-02-13 | Vlsi Technology, Inc. | Method and apparatus for synthesizing datapaths for integrated circuit design and fabrication |
US5526517A (en) * | 1992-05-15 | 1996-06-11 | Lsi Logic Corporation | Concurrently operating design tools in an electronic computer aided design system |
JP3175322B2 (ja) * | 1992-08-20 | 2001-06-11 | 株式会社日立製作所 | 論理自動生成方法 |
US5557532A (en) * | 1992-11-12 | 1996-09-17 | Vlsi Technology, Inc. | Parameterized generic compiler |
US5566079A (en) * | 1992-11-12 | 1996-10-15 | Vlsi Technology, Inc. | Parameterized generic multiplier complier |
US5956257A (en) * | 1993-03-31 | 1999-09-21 | Vlsi Technology, Inc. | Automated optimization of hierarchical netlists |
US5751592A (en) * | 1993-05-06 | 1998-05-12 | Matsushita Electric Industrial Co., Ltd. | Apparatus and method of supporting functional design of logic circuit and apparatus and method of verifying functional design of logic circuit |
JP2601177B2 (ja) * | 1993-06-08 | 1997-04-16 | 日本電気株式会社 | 同期論理回路における最適クロック周期の決定方法 |
US5493505A (en) * | 1993-10-28 | 1996-02-20 | Nec Usa, Inc. | Initializable asynchronous circuit design |
JPH07249062A (ja) * | 1994-03-11 | 1995-09-26 | Hitachi Ltd | 論理回路の生成方法 |
US5526276A (en) * | 1994-04-21 | 1996-06-11 | Quicklogic Corporation | Select set-based technology mapping method and apparatus |
US5640328A (en) * | 1994-04-25 | 1997-06-17 | Lam; Jimmy Kwok-Ching | Method for electric leaf cell circuit placement and timing determination |
US5617328A (en) * | 1994-05-23 | 1997-04-01 | Winbond Electronics Corporation | Automatic code pattern generator for repetitious patterns in an integrated circuit layout |
US5469367A (en) * | 1994-06-06 | 1995-11-21 | University Technologies International Inc. | Methodology and apparatus for modular partitioning for the machine design of asynchronous circuits |
US5513122A (en) * | 1994-06-06 | 1996-04-30 | At&T Corp. | Method and apparatus for determining the reachable states in a hybrid model state machine |
US5515302A (en) * | 1994-11-07 | 1996-05-07 | Motorola, Inc. | Method for identifying excessive power consumption sites within a circuit |
US5815715A (en) * | 1995-06-05 | 1998-09-29 | Motorola, Inc. | Method for designing a product having hardware and software components and product therefor |
US5703788A (en) * | 1995-06-07 | 1997-12-30 | Lsi Logic Corporation | Configuration management and automated test system ASIC design software |
US5637971A (en) * | 1995-06-12 | 1997-06-10 | Solectria Corporation | Suppression of multiple noise-related signals in pulse width modulated signals |
GB2317245A (en) * | 1996-09-12 | 1998-03-18 | Sharp Kk | Re-timing compiler integrated circuit design |
US5880975A (en) * | 1996-12-05 | 1999-03-09 | Hewlett-Packard, Co. | Method of producing simplified code from a circuit compiler |
US5949990A (en) * | 1996-12-05 | 1999-09-07 | Hewlett-Packard Co. | Method of efficiently modeling tri-state gates |
US5910900A (en) * | 1996-12-05 | 1999-06-08 | Hewlett-Packard, Co. | Method of producing cache optimized code from a circuit compiler |
US6597664B1 (en) | 1999-08-19 | 2003-07-22 | Massachusetts Institute Of Technology | Digital circuit synthesis system |
HK1049209A1 (zh) | 1999-08-19 | 2003-05-02 | Massachusetts Institute Of Technology | 使用一個異步分類的同步電路合成方法 |
DE102004005730A1 (de) * | 2004-02-05 | 2005-08-25 | Robert Bosch Gmbh | Verfahren zur Konfiguration eines Computerprogramms |
US7647567B1 (en) | 2005-01-31 | 2010-01-12 | Bluespec, Inc. | System and method for scheduling TRS rules |
US7370312B1 (en) | 2005-01-31 | 2008-05-06 | Bluespec, Inc. | System and method for controlling simulation of hardware in a hardware development process |
US7716608B2 (en) | 2005-06-01 | 2010-05-11 | Massachusetts Institute Of Technology | Circuit synthesis with sequential rules |
US7665059B2 (en) | 2006-06-07 | 2010-02-16 | Bluespec, Inc. | System and method for designing multiple clock domain circuits |
US8350594B2 (en) | 2008-11-08 | 2013-01-08 | Massachusetts Institute Of Technology | Hardware synthesis from multicycle rules |
US10171334B2 (en) | 2016-06-30 | 2019-01-01 | International Business Machines Corporation | Real-time data analytics for streaming data |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4703435A (en) * | 1984-07-16 | 1987-10-27 | International Business Machines Corporation | Logic Synthesizer |
US4827427A (en) * | 1987-03-05 | 1989-05-02 | Hyduke Stanley M | Instantaneous incremental compiler for producing logic circuit designs |
-
1988
- 1988-02-16 US US07/156,392 patent/US5005136A/en not_active Expired - Lifetime
-
1989
- 1989-02-10 EP EP19890200310 patent/EP0329233A3/en not_active Withdrawn
- 1989-02-13 JP JP1031247A patent/JP3026979B2/ja not_active Expired - Fee Related
-
1999
- 1999-10-28 JP JP30713899A patent/JP3258000B2/ja not_active Expired - Lifetime
Non-Patent Citations (1)
Title |
---|
Distributed Computing,Vol.1,no.1,p.226−234,A.J.Martin,"Compiling communicating processes into delay−insentive VLSI circuits" |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015117576A (ja) * | 2015-02-20 | 2015-06-25 | パナホーム株式会社 | 屋根構造 |
Also Published As
Publication number | Publication date |
---|---|
EP0329233A2 (en) | 1989-08-23 |
EP0329233A3 (en) | 1992-07-01 |
JP3258000B2 (ja) | 2002-02-18 |
US5005136A (en) | 1991-04-02 |
JP2000155777A (ja) | 2000-06-06 |
JPH028937A (ja) | 1990-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3026979B2 (ja) | シリコン コンパイラ方法および装置 | |
US6996788B2 (en) | Hardware-operation description conversion method and program therefor | |
KR101061864B1 (ko) | 동기 회로 설계 표현과 비동기 회로 설계 표현간의 자동 변환을 수행하기 위한 시스템 및 방법 | |
Edwards et al. | Balsa: An asynchronous hardware synthesis language | |
Burns | Performance analysis and optimization of asynchronous circuits | |
US6021266A (en) | Method of designing an integrated circuit using scheduling and allocation with parallelism and handshaking communication, and an integrated circuit designed by such method | |
US6536031B2 (en) | Method for generating behavior model description of circuit and apparatus for logic verification | |
KR100992025B1 (ko) | 멀티-사이클 클록 게이팅 방법 | |
Brzozowski et al. | On the delay-sensitivity of gate networks | |
Potop-Butucaru et al. | Correct-by-construction asynchronous implementation of modular synchronous specifications | |
Pena et al. | Combining process algebras and Petri nets for the specification and synthesis of asynchronous circuits | |
US7113901B1 (en) | Reuse of hardware components | |
Bergamaschi et al. | A system for production use of high-level synthesis | |
Öberg | ProGram: A grammar-based method for specification and hardware synthesis of communication protocols | |
Bystrov et al. | Asynchronous data processing. Behavior analysis | |
Chan et al. | Formal modelling of burst-mode specifications in a distributed environment | |
Oberg et al. | Scheduling of outputs in grammar-based hardware synthesis of data communication protocols | |
KR100441464B1 (ko) | 아이피 모듈 간에 인터페이스를 생성하는 방법 | |
Klimowicz | Performance targeted minimization of incompletely specified finite state machines for implementation in FPGA devices | |
Suhaib | Formal methods for intellectual property composition across synchronization domains | |
De Gloria et al. | Delay insensitive micro-pipelined combinational logic | |
Grass et al. | Design of control dominated hardware based on formal methods | |
Krishnakumar | A synthesis system for communication protocols | |
Brzozowski et al. | Design of asynchronous circuits | |
Vasilescu | Recursive Rules For Demultiplexers Expanding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080128 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090128 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |