JPH028937A - シリコン コンパイラ方法および装置 - Google Patents

シリコン コンパイラ方法および装置

Info

Publication number
JPH028937A
JPH028937A JP1031247A JP3124789A JPH028937A JP H028937 A JPH028937 A JP H028937A JP 1031247 A JP1031247 A JP 1031247A JP 3124789 A JP3124789 A JP 3124789A JP H028937 A JPH028937 A JP H028937A
Authority
JP
Japan
Prior art keywords
circuit
abstract
passive
representation
basic
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.)
Granted
Application number
JP1031247A
Other languages
English (en)
Other versions
JP3026979B2 (ja
Inventor
Berkel Cornelis H Van
コルネリス・ヘルマヌス・ファン・ベルケル
Ronald W J J Saeijs
ロナルド・ウィルヘルム・ヨハン・ヨゼフ・サエーイス
Cornelis Niessen
コルネリス・ニーセン
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.)
Koninklijke Philips NV
Original Assignee
Philips Gloeilampenfabrieken NV
Koninklijke Philips Electronics NV
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 Philips Gloeilampenfabrieken NV, Koninklijke Philips Electronics NV filed Critical Philips Gloeilampenfabrieken NV
Publication of JPH028937A publication Critical patent/JPH028937A/ja
Application granted granted Critical
Publication of JP3026979B2 publication Critical patent/JP3026979B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit 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)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔1]緒言 (1,1)発明の背景 本発明はシリコン コンパイラ方法に関するものである
。シリコン コンパイラは、集積回路により実行すべき
機能が特定される場合、この種集積回路用のシリコン 
レイアウトを生成するに必要なステップのシーケンスで
ある。本発明はシリコンの使用に限定されるものでなく
、例えば、ガリウム砒素の場合のように、他の基板材料
を使用する場合にも、同じ技術が適用される。このよう
なシリコン コンパイラは、狭義的には爾後におけるレ
イアウトの生産を単体化し、直進的にする手法をもたら
す。この場合、このような生産にはトランジスタの大き
さ、処理パラメータおよび他の基本量の挿入を含む。ま
た、本発明はシリコンコンパイラ装置にも関するもので
ある。実際上、コンパイラ方法の種々の部分は容易に手
で実行することが可能であるが、この種装置の心臓部は
マン・マシン会話および特定のシリコン コンパイラ 
プログラムを実行するための周辺装置を含む汎用オペレ
ーティング システムを有するコンピュータである。シ
リコン コンパイラ装置の機能は、特定のデジタル計算
を限定する原始テキストを受容し、それから集積回路レ
イアウトの詳細な描写を生成することにより、集積回路
が事前に決められた計算を実行しうるようにすることで
ある。
ここで、原始テキストを表現する言語は明白な平行性に
対する構造を与えるほか、明白な順次性を与えるものと
する必要がある。このような言語はしばしば無条件並行
言語(imperative−concurrentl
anguage) と呼ばれ、例として、広く知られて
いる言語OCCAM、 Ada、 C5PおよびCCS
がある。設計者はこれらの言語でどのような補助計算を
並行的に実行し、どのような補助計算を直列的に実行す
る必要があるかを表現することができる。また、これら
2つの特徴の組合せにより、シリコン コンパイラ方法
にアーキテクチャ−の自由度を与え、意図する目的(タ
ーゲット)レイアウトに対する選択を与えることを可能
にしうろことが分る。無条件並行言語の木質的特徴を現
わす2つの小言語(“cp−o”および“CP−1”)
に関しては、第3節に記載することにする。
(1,2)説明の要約 本発明の目的は、無条件並行言語で原始テキスト上で作
動し、かつ融通性を最大に保持し、価格とマンチした結
果を許容しながら、VLS Iレイアウトを作製しうる
ようなシリコン コンパイラ方法および装置を提供しよ
うとするものである。この目的はシリコン コンパイラ
装置により実現できる。このような組合せ装置はともに
生産プロセスを構成する部分サービスの連続を与え、か
つそれ自体で集積回路を開発し、設計するための強力な
ツールを意味する。“シリコン コンパイラ“°なる語
句は、レイアウトを作製しうる種々のセ・ントアップ用
として早くから漠然と使用されてきたが、それらの情況
においては、システムの垂直集積および種々の算術構造
の可能性の双方が極端に制限されていた。本発明による
ときは、きわめて広範囲の入力アルゴリズムを受入れる
ことができ、また可能な実現技術上の制約もきわめて僅
かである。
さらに、本発明方法を適用することにより正確に作動す
る回路を生成することが可能となり、したがって、プロ
セシング付き(再)設計サイクル((re)desig
n−cum−processing cycle)を通
しての所要サイクル数が少なくなる。ただし、そのため
の代償としては、シリコン面積の幾分の増加もしくは作
動速度の幾分の低下が考えられる。
(1,3)発明の他の局面 本発明の中心的局面を表わすものとしては、特に抽象回
路(abstract−circui t)の提供であ
ると考えられる。したがって、本発明は抽象回路表現を
与えるためのモジュールにも関するものである。
また、本発明は上述のモジュールにより生成される抽象
回路にも関するものである。この種回路はレイアウト製
造の中間生産物とすることができる。この場合、抽象回
路は生成プロセス内で実行すべき任意の後のステップと
は無関係である。
また、本発明は上記により生成される電子回路にも関す
る。この場合、抽象回路の使用は構造的および幾何学的
にそれから抽出した電子回路の特殊な特性への翻訳を行
う。
また、本発明は上記により生成されるリセットフリー電
子回路にも関する。この場合は、抽象回路表現の暗黙初
期設定機構により、リセット ハードウェアを必要とし
ない。
(1,4)実施例について 以下図面により本発明を説明する。
一般に、シリコン コンパイラ プログラムがラン(実
行)しているコンピュータに関しては、−殻構造である
ため、その説明は省略することにする。また、シリコン
 コンパイラ プログラムのある部分を活性または不活
性とし、かつ、このような部分間における種々のレベル
での相互同期を制御するオペレーティング システムも
一般の多重処理オペレーティング システムであるので
、便宜および簡単のためこの種コンピュータおよびオペ
レーティング システムに関しては詳細な説明は省略す
ることにする。
〔2,]シリコン コンパイラ装置の構造第1図はシリ
コン コンパイラ プログラムの一実施例の分解図で、
各モジュールはブロックにより表示し、入力または出力
操作は矢印を用いてそれにリンクさせるようにしている
。ブロック20゜40、42の各々はさらに2つのブロ
ックに分解する。
ブロック20は全体としてシリコン コンパイラプログ
ラムを表わす。最初の次のブロックは原始テキストを受
信するソース アナライザ24である。
このアナライザ モジュールは語句分析、構文分析およ
び意味分析を実行する。これは原始言語の良く構成され
たキャラクタのため直進的(ストレートフォワード)オ
ペレーションである。この分析により、いわゆる木構造
(26)が生成される。前記木構造は、原始プログラム
の抽象的表現で、依然として原始言語の概念に限定され
ている。この分析は意図するIC技術により表わされる
ような目的言語とは完全に無関係である。したがって、
ここで必要とするコンパイラ技術は汎用キャラクタを有
するを可とし、シリコン コンパイラに特定のものでは
ないので、ここではその説明を省略することにする。
高いレベルの階層上では、シリコン シンセサイザ モ
ジュール42は回路シンセサイザ モジュール40とレ
イアウト シンセサイザ モジュール36に分解される
。前者は具体回路(concretecircuit)
 34を与え、後者はそれからVLSIレイアウト38
を与える。長い相互接続線に固有の容量を駆動するため
の付加的駆動装置の提供のようなある種の低レベル タ
スクはレイアウト シンセサイザモジュールに属する。
具体回路34は、例えば、CMO3技術におけるトラン
ジスタ、TTL技街におけるゲート回路またはAND、
 OR等のように技術実現に無関係の基本的論理表現に
よるような任意の相応した表現を有するを可とする。こ
のような表現および種々の低レベル タスクをレイアウ
ト シンセサザ モジュール36に与えることにより、
前記モジュールの作動は直進的(ストレートフォワード
)翻訳となる。VLS Iレイアウトは、プロンタ用の
一連の命令のような種々の異なる方法で出力することが
できるが、本来的には上記の方法が一般的である。
回路シンセサイザ モジュール40はさらに2つの部分
的な回路シンセサイザ モ:゛;ニールに分解される。
第1モジユール28は木構造をいわゆる抽象回路30に
変換し、第2モジユール32はそれから具体回路を生成
する働きをする。抽象回路は、抽象チャネルにより相互
接続され、かつ一定の構成ルールを満足するような基本
構成素子よりなる回路網である。
モジュール32は抽象回路から具体回路34への変換を
行う。この変換は予定されるVLS1回路に関する種々
の技術的選択の制約のもとで行われる。主要な選択は、 タイミング機構(すなわち、刻時、非同期または遅延不
惑) 回路形式(すなわち、動的論理、静的論理)技術実現(
すなわち、バイポーラ、 MOSまたはガリウム砒素) に関してなされる。
抽象回路から具体回路への変換は直進的(ストレート 
フォワード)とし、抽象回路のエレメントを次の各項に
したがって具体回路の対応するエレメントに翻訳する。
抽象回路の各チャネルを具体回路内の物理的相互接続、
すなわち、ワイヤの束に翻訳する。ワイヤの数は、チャ
ネルに沿ってどの値を通信するかに依存し、かつその値
の幅に依有する。
抽象回路のバラメタライズされていない各基本構成素子
を具体回路の固定補助回路に翻訳する。
抽象回路のパラメタライズされた各基本構成素子を規則
正しい方法で複数の固定回路部分よりなる具体回路の補
助回路に翻訳する。
〔3,]通信プロセス 無条件並行プログラミング言語の一例としては、CP−
0(’“通信プロセス−レベル0”)がある。抽象回路
はcp−1(“通信プロセスーレベルビ°)で記述され
る。これはcp−oと類似であるが、根本的に異なる′
°インターバルパセマンティックスを有する言語である
抽象回路および抽象回路合成のセクションに関しては以
下のcp−oおよびCP−1の説明を参照されたい。
(3,1〕CP−0 まず始めにcp−oの構文につき説明する。cp−oは
木来広く公表され、研究されている言語cspのサブセ
ットである。
(C,A、R,Hoare著rcommunicati
ng 5equentialProcesses JC
ommunications of the ACM誌
2H8)、 1978年第666−677頁所載および C,A、R,Hoare著rcommunicatin
g 5equentialProcesses JPr
entice−Hall Internationa1
社発行5eries in Computer 5ci
ence、 1985年所載を参照。) 一般に次の6つの構文的カテゴリーが使用される。
定数(cons tan ts)のセントCon5t 
 (標準エレメントk)、 変数(variables)のセットVar  (標準
エレメント X ) 、 式(expression)のセットExp  (標準
エレメントE、  E、、  E、)、 プール演算式(boolean expression
)のセントBexp (標準エレメントg)、 チャネル(channe1)のセットChan (標準
エレメントa4)および コマンド(commands)のセットCmd  (標
準エレメントS、 So、S+) 第2図はコマンドおよび式の生成ルール(Produc
tion rule)を与えるものである。また、この
図はコマンドSの内部および外部チャネル(それぞれI
n tChan (S)およびEx tchan (S
) )の定義をも与える。cp−oプログラムはコマン
ドである。
以下、種々のコマンド形状を(操作的および非公式に)
説明する。
5kip  はアトミック コマンド(atomic 
commana5)である。その実行はなんらの影苦も
与えないが、首尾よく終る。
5top  はこれもアトミック コマンドである。
その実行はなんらの影響も与えないが、終了しない。
C! はいわゆるノンプツト コマンド(nonput
commana5)である。その実行は対応するノンプ
ツトコマンドC?との同期と等価である。ノンプツト 
コマンド間の通信はノンバリュー コミュニケーション
(non−value communication)
およびアンブイレフテッド(andirectea5)
  コミュニケーションと呼ばれる。CPと01間の示
唆される非対称は人為的なもので、その導入はCP−1
への翻訳の表現を容易にする。
c?v  はインプット コマンドで、その実行は2つ
の効果を有する。すなわち、対応するアウトプット コ
マンドc!Eとの同期ならびに変数vへの出力式(ou
tput expression) Eの値の割当であ
る。インプット コマンドとアウトプント コマンド間
の通信はバリュー コミュニケーション(value 
communication)およびデイレクテンド(
d 1rec tea5)コミュニケーション(すなわ
ち出力から入力への)と呼ばれる。
c!E  はアウトプット コマンドである。(上記参
照)。
v:=E  は割当コマンド(assignment 
commana5)で、その実行徐変数Vは式Eの値を
有する。
So ; S+  はコマンドS0およびS、の順次的
実行である。
S、、 S、  はコマンドS0およびSlの並行的実
行で、コマンドは条件cond (So+ S+)を満
足するものでなければならない(第2図参照)。
g =So II = g −5+  はSo(gがホ
ールド状態の場合)またはS+(−+gがホールド状態
の場合)のいずれかの実行に等しい (g→SO)“ ;−1g→S1  はSo(gがホー
ルド状態の間)の0.1またはそれ以上の実行および後
続のS、の実行に等しい。
*S  は  (true−+S )”  ; fal
se  −+5kip  に対する略号で、Sをパ永久
に(foreνer) ’“繰返すことに等しい。
通信活動には、包含される双方のプロセスの同時参加を
必要とするので、各通信事象が実際に起る場合には持続
時間なしの瞬間的アトミック行動とみなさなければなら
ない。cp−oにおける通信は、通信することのイニシ
アティブに関し完全に対称である。ただし、通信の方向
に関しては非対称性が存在しうろこと勿論である。
さらに、通常の方法で括弧を使用するようにし、また、
種々の2項演算子のパインディング パワ(たばねる力
)は、バー゛°1じから矢印°“→ 。
セミコロン°“;゛からコンマ“”、 ”  (すなわ
ち大きい記号から小さい記号)の方向に増加するものと
する。また、単項演算子としての星印は最高のパインデ
ィング パワを有する。
Bexpの構文はExpのそれである。ここで、(プー
ル演算)式は基本的種類のもの(Pascalのような
プログラミング言語での表現参照)で、特に、それらは
サイド効果(side effect)を有せず、また
それらの評価は常に終結するものと仮定する。
この場合、式は定数(すなわち、true、 0.4m
axint+  φ)の形、変数の形を有するか、単項
演算子(すなわち、not ) 、もしくは2項演算子
(すなわち、へ、V、=、≠、≦、 max、 min
、 +。
、  札div、(、uおよびD)を用いたさらに基本
的な式により構成される。また、あるデータタイピング
の形および形式強制もとられる。
cp−oはその基幹となる特徴を表示する目的のためき
わめて小さく保持するようにするが、cp−oプログラ
ミングの便宜性を高めるため、多くの拡張や記号法的略
号が考えられる。以下に、短かい、不完全なリストを記
す。
チャネル ネーム用の適当なりネーミング機能ヲ有する
マルチプル インスタンシェーション(multipl
e 1nstantiation)およびプログラム構
成(構成素子またはプロセス参照)目的用コマンドのネ
ーミング (プール演算)式(関数参照)のネーミング名前のスコ
ーピング(範囲) データ形式(Pascal参照)の導入並列割当、並列
入力および並列出力の導入放送の導入 汎用保護コマンドもしくはケース コマンドの導入 テール再帰的(tail−recursive)コマン
ドの導入 これらの拡張(extension)は根本的な問題な
しに抽象回路合成法内に収納することができる。
(3,2) CP−1 CP−1はcp−oに類似の小さい無条件並行言語であ
る。cp−oとCP−1の間の根本的差異は、通信の構
造にある。すなわち、cp−oにおいては、通信は(通
信することのイニシアティブに関して)対称的かつ瞬時
的事象であるが、CP−1においては通信は持続時間を
有し、非対称インターバルにより表わされる。この非対
称と持続時間の双方は通信の物理学により近い一致を示
す。さらに、非対称インターバルは対称事象より多くの
方法で適時に配列することができ、これらの付加的配列
はきわめて有用である。
通信は受動的または能動的のいずれかである。
能動的通信はプロセスにより始まり、受動的通信はプロ
セスの環境により始まる。この差別は入力と出力間の差
別とは無関係であり、したがって、受動入力、能動入力
、受動出力および能動出力を有することが可能である。
CP−1コマンドにおいては、受動的(能動的)通信は
受動的(能動的)通信コマンドと提携する。プロセスは
能動的通信専用として、あるいは受動的通信専用として
1つのチャネルを使用する。したがって、能動チャネル
および受動チャネルに関しても言及することにする。
能動的および受動的通信コマンドの合成(compos
ition)は正確な実現に対し制限がある。
すなわち、受動入力の後に能動入力が配置される順次的
構成を実現する場合には、双方の通信の厳密な逐次的オ
ーダーを保証することは困難である。
これらの制限を形式化するため、受動的(能動的)通信
コマンドの他の(構造化)コマンドに対する概念を一般
化するようにしており、第3図に大部分の制限を構文的
に示している。図示のように、コマンドに対しては、6
つの構文的カテゴリーすなわち、S:。6.(能動的通
信コマンド) 、S;ync(能動的同期コマンド)、
S”(能動的コマンド)、S;。+111+1 (受動
的通信コマンド) 、S”5ync (受動的同期コマ
ンド)、およびSo(受動的コマンド)を導入する。こ
の場合、受動的コマンドはSoのように丸印を右肩に付
して表示し、能動的コマンドはS。
のように黒丸(弾丸)印を右肩に付して表示するように
する。
演算子“1ビr    +   ; ”および“、パは
cp−oにおける対応物と同じ目的を有する。また、こ
こには2つの新しい演算子、すなわち黒丸印゛・°゛お
よびコロン°゛:“°を使用している。これらの意味を
説明する前に、まず5ync (同期)コマンドの概念
を説明する必要がある。受動的(能動的) 5yncコ
マンドは受動的(能動的)通信コマンドにより構成され
る。同期コマンドの包含される通信は対応するインター
バルがオーバラップするよう同期して起る。すなわち、
包含されるすべての通信が始まっており、終了したもの
がない時間にはある定まった時がある。さらに、包含さ
れるすべての通信が始まり、終了したものがない時間間
隔として同期インターバル(sync 1nterva
1)を定義することができる。2つの同期コマンドの黒
丸印合成は双方の同期インターバルがオーバラップした
同期コマンドである。また、受動的同期コマンドと任意
の能動的コマンドのコロン印による合成は、能動的コマ
ンドの実行が同期コマンドの同期インターバル内に完全
に包囲される受動的コマンドをもたらす。
最後の、しかし重要なcp−oとの差は選択コマンドに
ある。cp−oにおいては、コマンド間の選択は保護表
現式(guard expression)の論理値を
ベースにしているが、cp−iの場合は、2つの(受動
的)コマンドの最初の受動的通信間で選択を行うことを
許容している。したがって、S=s、° ll5I’ 
においては、Soと31間の選択は、これらの最初の通
信が異なる場合は、Soと31の最初の通信行動を選択
することで、Sの環境により決定される。
SoとS、の同時合成はcond (so、 s+)を
満足しなければならない(第3図参照)。
また、cp−oに関してなされる拡張および記号略号へ
の注意事項はCP−1に対しても同じように適用される
〔4,〕抽象回路 抽象回路は一定の組成ルールを満足しながら、チャネル
により相互に接続した基本構成素子のネットワークであ
る。
抽象回路は2つの面の見方をすることができる。
一方では、抽象回路はネットワークである。この見方は
特に、具体回路合成を考えるとき有用である。他方では
、抽象回路は、基本的cp−oプログラムから合成され
たCP−1プログラムに直接対応する。
この見方は、特に、抽象回路合成を考えるとき有用であ
る。プログラム構成がどのようにネットワーク構成に関
係するするかについては、以下第1サブセクシヨンにお
いて論することにする。
(4,1)構成素子および構成 CP−1プログラムS°を考えることにする。S。
がS’olSj+−・・−−−m−・−+S’m−1の
形状を有する場合は、S”OHs、 l ’−−’−’
−−’+ S’m−1はSoの実構成素子(actua
lcomponen t)と呼ばれる。また、S、とS
、の双方にチャネルCが起った場合、構成素子S、とS
、はチャネルCにより接続されていると呼ばれる。
(この場合、Cは2つ以上の構成素子内に生ずることは
できない。)2つの接続された構成素子のうち、1つの
構成素子はCの能動的発生のみを有しくこの構成素子は
チャネルの能動サイドと呼ばれる)、他の構成素子はC
の変動的発生のみを有する(この構成素子はチャネルの
受動サイドと呼ばれる)。
実際には、同一構造をもった異なる実構成素子を同一形
式素子(formal component)の例(i
 ns Lance)とみなすことを可能にするリネイ
ミング手順(renaming procedure)
を導入する。形式構成素子fは孤立したCP−1プログ
ラム昭により表わされる。S)内に発生する外部チャネ
ルはrのポートと呼ばれる。また、ポートのアクティビ
ティ、デイレクシボン等に関してはチャネルの相似性を
ベースにして説明することができる。(ユニークな例の
名前を有する)実構成素子は以下のように斗をリネーミ
ング(renaming)することにより得られる。
変数名(variable names)等を各々の例
に対して厳密に局部的なものとなるよう例の名(ins
 tancename)で名前づけ ポート ネーム(実)チャネルのネームで代替させる(
ポートが対応するチャネルに接続されていると呼ばれる
)。
複数の構成素子により組成されるCP−1プログラムは
次のようにしてネットワークに対応する。すなわち、C
P−1プログラム構成素子はネットワーク構成素子に対
応し、CP−1チヤネル接続プログラム構成素子はネッ
トワーク構成素子の抽象チャネル接続ポートに対応する
抽象回路は制限された形のCP−1プログラム、すなわ
ち、いわゆる基本構成素子(ヘーシンク コンポーネン
ト)の例の合成に対応する。抽象回路につき論するに際
しては、抽象回路のプログラム面とネットワーク面との
間に差別をつくることなく、一般のセンスで“′構成素
子”および゛′チャネル°°につき説明する。
(4,23基本構成素子(Basic Compone
nt)基本構成素子(basic component
) bはcp−oコマンドs%を有する基本的構成素子
(elen+entarycomponenυである。
基本構成素子は内部チャネルを有せず、すなわちSob
は次式を満足する。
chari’ (S’b )/″1 chan”  (
S’b)=φ基本構成素子のCP−1コマンドに対して
は、チャネルおよび変数のデータ形式を制限して、正(
pos i t 1ve)のピント数のある論理ベクト
ルのみを考えることにする。ビット数は対応するチャネ
ルおよび変数の幅(width)と考えられる。また、
任意の他のデータ形式は、ある固定長の論理ベクトルに
マツプすることができるものと仮定する。
若干数の基本構成素子は次のうち1つまたはそれ以上の
方法でパラメータ化される。
構造物パラメータライゼーション二等価ポートのクラス
におけるポート数がパラメータである。
データ パラメータライゼーション:変数とポートの群
の幅がパラメータである。
可逆性(reversibility)  :ポートの
アクティビティがパラメータである。すなわち、いわゆ
る可逆的構成素子はすべてそのアクティビティを逆にす
ることができる。
cp−oプログラムの抽象回路への翻訳にあたっては、
次のような組の基本構成素子を使用することで充分であ
る。
var(n、k)= (i?v”  II (Oo!v
” ) ” 、 −(Ok−+ ! V’ビビ 書込み
用入力ポートiおよび同時読出し用のに個の出カポ−)
o。、・−2Ok−1を有するnビット変数(vari
able)構成素子、 const(n、c) = (o!c”げ その唯一の
ポート0上にnビットの一定値Cを出力する一定(co
nstant)構成素子。
pass (n) = (i?ν“ ・o!v″ビ 能
動出所と能勤行光を接続するための受動入力iおよび受
動出力0を有するnビット パッシベータ(passi
−va tar)、ノン・バリュー(non−valu
e)チャネルに対しては、パッジベーク コマンドは(
P:・Pτ)1゜ trans(n)=(P’ :(i?v’ ・o!v”
)ビ ポートル上のインターバルの制御により、ポート
i上にメツセージを能動的に入力し、ポートo上にメツ
セージを能動的に出力するnビット トランスフアラ(
transferrer) 。
mux(n、k)= ((io?v”  If ・・I
f ik−、?v” )  :o!v’ )”  k個
の受動入力ポート10+ ’−”+1k−1の1つに受
信されるメツセージをポート0上に能動的に出力するn
ビット マルチプレクサ(multiplexer) dmux(n、k) = ((o0!v”  If ”
 1loh−1v” )  :i?ν°ビ k個の受動
出力ポート0゜、・・・+0k−1の1つにリクエスト
されるメツセージを能動的に入力するnビット デイマ
ルチプレクサ(demultiplexer) 。
5eq(k)= (p’  =(a3 ; ’−’ia
”k−1)) ”  ポートP上のインターバルの制御
によりに個のポートa、 + =−・+ ak−1を順
次的に活性化させるシーケンサ(sequencer)
 。
conc(k) −(p’  :(a’o+−+ a’
i+−1))”  ポートル上のインターバルの制御に
よりに個のポートaO+’−・+ ak−1を同時に活
性化させるコンカーサ(concursor)。
m1x(k)=((ps  ll−1lpS−+):a
’)”   k個の各受動ポートp0.−・・+ pk
−+上のインターバルの交互的制御によりポートaを活
性化させるミキサ(mixer) 。
1ter= (p  : (i?b” ;(b−+a’
 ;i?b’)” ;−+b −+ε)ビ ポートル上
のインターバルの制御により、ポートi上に能動的に入
力される論理値すが真理である限り、ポートaを繰返し
活性化させるイタレータ(i tera tor) 。
rep = p  : *a・ ポートP上のインター
バルの制御により、ポートaをきわめて頻繁に活性化さ
せるレピータ(repea ter) 。
5el(n+co  +  ””’+  C++−+)
=(1?X   :  (X ;Co→a’o II 
・・II X =(、−、→au−+))”  入力ポ
ートiからのnビット値に応じてに個の能動ポートa0
゜−・・+ak−1の1つを選択するセレクタ(sel
e−ctor)。
uncl = (i?b’ :o! (〜b)’ )”
  ポートiからの入力値への単項演算〜の結果をポー
トaに出力する可逆的単項演算子(reversibl
e unary ope−ra tor) 。
bin = ((io?x: ・i+?x?) : O
! (Xo口、)@rポートio+ Lからの入力値へ
の2項演算口の結果をポートoに出力する可逆的2項演
算子(reversible binary oper
ator)。
5kip= (p”  :5kip’)”  その唯一
のポートル上のインターバルに関与する以外はなにごと
もしないスキッパ(skipper) 。
5top”” (p’  :5top’)“ その唯一
のポートル上のインターバルを終わらせることさえしな
いように、なにごともしないストッパ(s toppe
r) 。
第1表には単項演算子の例として、inν、 inc。
decを与え、2項演算子の例として、and、 Or
eq、 add、 mul+ 5hiftを与えている
実際には、組の基本構成素子を次の追加構成素子(第1
表参照)により拡張することが有用である。
最適化のための特別な(安価の)実現(オリジナルセッ
トからの基本構成素子の組合せの取換え)  : fo
rk、 5ync。
cp−oの拡張用として有用な構成素子: rom。
ram、 merg、 5plit、 arbit、お
よび付加的算術構成素子(すなわち、一般のn項演算子
における他の構成素子)。
また、抽象回路を描写する場合は次の協約が使用される
基本構成素子は第1表の一番右の列に与えられる記号で
ラベルされた大円で描く。
基本構成素子のポートは基本構成素子の大円の境界上の
小円として描く。能動ポートは黒丸(°)を有し、受動
ポートは白丸(0)を有する。
チャネルはポート間のラインとして描く、通信チャネル
は出力から入力に向かう方向を与え、同期チャネルは方
向性を与えない。
(4,3)抽象回路用の構成ルール 抽象回路は2つの構成ルールを満足しなければならない
。すなわち、抽象回路は非循環的であり、争いのないも
の(コンフリクト フリー)でなければならない。この
非循環性およびコンフリクトフリー性は抽象回路の構造
的特性で、遅延不感に対して充分なCP−1プログラム
の構文的特性から描き出される。さらに、それらは抽象
回路の初期設定の可能性(initializabil
ity)に関する重要な前提である。
非循環性は抽象回路のアクティビティ グラフによりき
わめて容易に表わされる。前記アクティビティ グラフ
は以下のようにきめられる指向グラフ(directe
d graph)である。
各基本構成素子はアクティビティ グラフの頂点に対応
する。
2つの基本構成素子間の各チャネルはチャネルの能動的
側面に対応する頂点からチャネルの受動的側面に対応す
る頂点に向かう弧(arc)に対応する。
抽象回路のアクティビティ グラフは非循環的、すなわ
ち、指向サイクルを含まないものでなければならない(
ここで、サイクルは標準グラフ理論により決められる)
一般に、コンフリクト フリー性は、基本構成素子すの
コマンドS′bがある受動インターバルの配列(すなわ
ち、2つのインターバルがオーバラップしない)を意味
する場合には、(能動的)環境がこの配列(オーダリン
グ)を尊重しなければならないという概念を表わす。特
に、抽象回路のコンフリクト フリー性は通常のコンフ
リクトフリー性に対して充分な構造的特性である。
(4,4)抽象回路の遅延不惑性 抽象回路は遅延不感性である。遅延不感性は、抽象回路
の正確な作動がチャネルもしくは基本構成素子の相対的
遅延に従属しないことを意味する。
−iに、遅延不惑性はCP−1プログラムに対する特性
として定義される。抽象回路に対応するCP−1プログ
ラムはこの特性を満足する。
CP−1プログラムS°の遅延不感性の定義のため、次
のようなSoの変換を考慮する。
Soにおける各ノン・バリュー チャネルCに対して、
2つの新しいチャネルCG+CIを導入し、Soにおけ
るすべてのCo の発生をC;で代替し、すべてのC“
の発生をCPで代替し、コマンド(c: 、 c?)を
並列に構成する。Cが外部受動(能動)チャネルの場合
は、c@(c+)をCに等しくとる。
Soにおける能動出力を有する各バリューチャネルCに
対して新しいチャネルCG+ CIを導入し、Soにお
けるすべてのc!° の発生をC6!6で代替し、すべ
てのc?° の発生をc1?°で代替し、コマンド(c
、?v’  : cl!v” ) ”を並列に構成する
。Cが外部受動(能動)チャネルの場合は、co(c+
)をCに等しくとる。
Soにおける能動入力を有する各バリューチャネルCに
対して新しいチャネルC8+CIを導入し、Soにおけ
るすべてのc?ll の発生を00?1で代替し、すべ
てのC!° の発生をC−°で代替し、コマンド(c、
!v”  : c、?v”)を並列に構成する。Cが外
部受動(能動)チャネルの場合は、co(c+)をCに
等しくとる。
上記の変換により等価のCP−1プログラムが生ずる場
合(それらの外部チャネルにおける動作が見分けられな
いとき2つのCP−1プログラムは等価であると呼ぶこ
とにする。) 、CP4プログラムS。
は遅延不感性である。
C4,5)初期設定(Initialization)
基本構成素子または抽象回路のCP−1コマンドの意味
は、有限状態マシンなる語で表現することができる。こ
の有限状態マシンを実現する具体回路は順次的電子回路
である。電源投入後、このような回路は、有限状態マシ
ンにおいて同じものがないような任意の状態となり得る
。したがって、初期設定用手段、すなわち、回路をその
初期状態に設定する手段が必要不可欠であり、通常、こ
れは回路内に分布させた付加回路を使用して、いわゆる
リセットを与えることにより達成している。
抽象回路に対しては、以下のような有効かつ効率的初期
設定にこのような付加的リセット回路を必要としないが
、この手順は基本構成素子による具体回路の実現に際し
付加的制約をもたらす。
ここで、初期設定手順の説明の前にいくつかの観察を行
うことにする。
(1)基本構成素子のコマンド内に生ずるすべての変数
の値から概念を抽象することができる。
コマンドの意味は変数の初期値によるものではない。
(2)抽象回路がいったんその初期状態になると、環境
がその受動外部ポートの1つにおいてインターバルを始
めるまで、回路はその状態にとどまる。これは抽象回路
が受動的であるという事実の直接的結果である。
(3)ポートの初期状態をすべての開始されたインター
バルも終った状態とする。その場合は、各基本構成素子
は、そのすべてのポートがそれらの初期状態にあるとき
その初期状態にあるという特性を有する。これは形式主
義ではなく、組の基本構成素子の選択の結果である。
(4)抽象回路のすべての外部ポートがそれらの初期状
態にあるとき、回路がその初期状態にあるとは断定され
ないかも知れない。
第3の観察が初期設定手順への鍵である。問題は、抽象
回路の内部ポートへの直接制御ができないことである。
また、外部ポートの状態に関する制御さえも制限され、
外部ポートの電気的入力のみが制御可能である。
ポートの状態を対(i、o)(ただし、iは電気的入力
、0は電気的出力とする)で表わすものとした場合は、
iおよび0が変化する組の値はポートの方向および幅に
従属するほか、メツセージの値の具体的表示にも従属す
る。組の値の双方は、(0,O)がポートの初期状態に
対応するような1つの特別を値“0”を有する。
受動ポートおよび能動ポートの双方を有する基本構成素
子による具体回路の実現は、 (1)すべての受動ポートの電気的入力に安定値0が与
えられて後、既知の有限の時間内にすべての能動ポート
の電気的出力が安定値0を得、(2)次に、すべての能
動ポートの電気的入力に安定値Oが与えられる後、既知
の有限時間内にすべての受動ポートが安定値0を得、か
くして、すべてのポートが状B(o、O)を有するよう
になった場合に初期設定の制約を満足する。
受動ポートのみを有する基本構成素子による具体回路の
実現は、すべてのポートの電気的入力に安定値が与えら
れた後、既知の有限時間内に、すべてのポートの電気的
出力が安定値0を得た場合に、初期設定の制約を満足す
る。
すべての基本構成素子がこの初期設定の制約を満足する
ときは、すべての外部ポートの電気的入力の値に安定値
Oを与えることにより、抽象回路を初期設定することが
できる。予言可能な有限時間内にすべての外部ポートの
電気的出力は安定値0となり、すべての内部ポートもそ
れらの初期状態となる。か(して、抽象回路はその初期
状態となる。
抽象回路の非循環性ならびに抽象回路と基本構成素子の
コマンドが受動的であるという事実はこの初期設定手順
の有効性を証明するのに重大な役割を演する。
〔5,〕抽象回路合成 抽象回路合成は(木構造で表示された) cp−oプロ
グラムの(効率的かつ)等価な抽象回路への変換である
。cp−oプログラムと抽象回路は、それらの関連の外
部チャネルにおける行為がアトミックイベントと(タイ
ム)インターバル間の差別から見分けがつかないとき等
価である。
この変換は次のような3つの連続する副変換より成る。
(1) CP−Qプログラムの゛等価な”’ CP−1
プログラムへの翻訳(jranslation)(2)
 CP−1プログラムの“′等価な“抽象回路(すなわ
ち、基本構成素子から構成されたCP−1プログラム)
の分解(decomposition)(3)抽象回路
の″“等価な“、しかし“安価な゛抽象回路への最適化
(optimization)これらの3つのステップ
ならびに表示゛″等価equivalent) ”およ
び“安価(cheaper) ”に関しては3つのサブ
セクションで論することにする。
(5,1)翻訳 cp−oコマンドSからの等価なCP−1コマンドは次
の3つのステップを含む。
(1) CP−0コマンドSはこのサブ・コマンドをア
クティブ コマンドを(そのすべてのアトミック コマ
ンドを含んで)能動コマンドに反復的に変換することに
より能動コマンドS6に変換する。これは、cp−oに
おけるSの構文およびcp−iにおけるS゛の構文が同
形であるため直進的である。結果として得られるコマン
ドは、それが能動的であり、また通常、同時に起るS;
およびSl に対して条件cond (SSS1)に従
わないので、まだCP−1コマンドではない(第3図参
照) (2) S”はその前にS%を置くことにより受動コマ
ンドに変換する:(soはS′″の初期チャネルと呼ば
れる。すなわち、環境はノン・バリュコー チャネルC
上の能動通信によりSo を開始する) (3)内部チャネル上のアクティビティ間の争い(コン
フリクト)は次のようにして解決される。
(a) S’内の各内部チャネルに対して2つの新しい
チャネル、すなわち、COおよびclを導入する。
(b)各能動出力コマンドc!E”をcO!E”で代替
し、各能動入力コマンドc?x’をcl?x”で代替す
る(co!”およびc1?0はco’およびcl mと
して短縮することができる)。
(a4) 各チャネル対(co、 c1)に対してコマ
ンド(co?v”  ・c1!v’ )”  (基本構
成素子pass)を導入し、sOo:So と並列に構
成する。どの値もバスしない場合、パンシベータ(pa
ss iva tor)は対称となる(co’  ・c
lo)結果として得られるコマンドは全く妥当なCP−
1コマンドで、形状(sca:S”)、 PASSを有
する。ただしPASSは導入された組のタイプpass
の基本構成素子である。
(5,2)分解 CP−1コマンド(cp−oからCP−1への翻訳結果
としての形状を有する)の基本構成素子のネットワーク
への分解は4つの連結する分解ステップ、すなわち、変
数の分離、チャネルの分解、コマンドの分解および表現
式の分解を含む。
(5,2,1)変数の分離 変数の分離は次のステップにより実現される。
(1)形状x:=E(x)’  (ただし、E(x)は
変数Xが参照(reference)される式)の30
における各割当に対して、補助変数および割当を導入す
る。x:=E(x)’をxo: =E(x)” ;x:
 =xO’で代替する。ここで、XOは、(変数Xにお
ける同時読出しおよび書込み行動を防止するための)新
しい補助変数である。
(2)形状g−+So II m g−+S+ (これ
に対して、var?(g)n(var!So目var!
S+)  ≠φ)のSoにおける各チョイス コマンド
に対して、補助変数および割当を導入する。g −+S
o ft = g =S+をgo : =g;(go→
5011コgo−3+)で代替する。
ここで、goは変数var? (g)における同時読出
しおよび書込み行動を防止するため)新しい補助論理変
数である。
(3) S’における各変数X(補助変数を含む)に対
してタイプνarの基本構成素子χを書込ポートx、i
および読取ポートx、oとともに導入する。
(4)各割当x:=E’を出力コマンドx、i!E’で
代替 (5)各入力コマンドc?x・をコマンドc?v” ・
x、 i!v’で代替 (6)チャネルC上の(プール演算)式E、すなわち、
c!E(xo、 xi +’−”’+ Xn−+)’ 
 (ここで、(Xo+X++’−’−’+ Xn−+ 
)はE内で参照される組の変数である)を次のいわゆる
能動表現コマンド(active−expressio
n commana5) 、すなわち、 (xo、o?v;  ’  x、、o?vi    ’
  ”  ・ Xn−1,0?V”++−1)・C!E
(Vo+Vl+”’−’+ Vn−1)’(これはX?
V’・c!E(V)’  として短縮できる。
ただし、■は組の変数(ν。、■5.−・−+ Vn−
1)を示す)で代替する。
結果として得られるコマンドは妥当なCP−1コマンド
で、形状 (s::S’) 、 PASS、 VARを有する。こ
こで、VARは導入された組のタイプvarの基本構成
素子である。
(5,2,2)チャネルの分解 (s’o:S”) 、 PASS、 VARにおける各
内部チ+ ネ/I/は2回または2回以上参照される。
すなわち、PASS 11 VARにおけるpassま
たはvar構成素子において受動的に1回、Soにおい
て能動的に1回またはそれ以上参照される。チャネル分
解の目的は、各内部チャネルが正確に能動的に1回、受
動的に1回参照されるようSoを変換することである。
1回以上(すなわちに回)能動的に参照された各内部チ
ャネルCに対しては、2つのステップが適用される。第
1に、チャネルCに対するに個の能動的参照はそれらを
c 1−−−c Kとリネーミングすることにより、独
特(ユニーク)なものとし、(ユニク)な受動的参照は
COとリネーミングする。第2に、 (1)Cがノンプツト(nonpu t)チャネルの場
合には、タイプmixの基本構成素子をCOに接続した
その能動ポートおよびc 1−・cKに接続したそのに
個の受動入力ポートとともに導入する。
(2)cに対する能動的参照が出力の場合には、タイプ
muxの基本構成素子をcOに接続したその能動出力ポ
ートおよびcl・−・cKに接続したそのに個の受動出
力ポートとともに導入する。
(3)cに対する能動的参照が入力で、対応する受動的
参照がvar構成素子の部分でない場合には、タイプd
muxの基本構成素子をCOに接続したその能動入力ポ
ートおよびC1・−・cKに接続したに個の受動出力ポ
ートとともに導入する。
(4)Cに対する能動的参照が入力で、対応する受動的
参照がvar構成素子の部分である場合には、そのva
r構成素子の(受動的)読取ポートの数をKに拡張し、
これらのポートを01−・−cKに接続する。
結果として得られるコマンドは妥当なCP−1コマンド
であり、形状(s: : S”) 、 PASS、 V
AR,MIX。
MtlX、 DMUXを有する。こコテ、MIX、 M
[IXおよびohuxは導入されたタイプmix、 m
uxおよびdmuxの組の基本構成素子を示し、上記コ
マンドにおける各内部チャネルは正確に1回受動的に、
また1回能動的に参照される。
(5,2,3)コマンドの分解 コマンド分解は形状c” : S’のコマンドの基本構
成素子および受動表現式コマンド(下記参照)への分解
を取扱うものである。まず、最初に、(C’ : S”
)”がc+ 、 s@に対する妥当な実現であることを
観察する( c”の完了がら観察可能なS。
の完了後、環境はSoを再スタートさせることさえでき
る)。(c’ : S’)”の分解は、9つの可能な能
動コマンドSaの形状に対して別個に取扱われる(割当
コマンドは変数分離中除去される)。また、COおよび
clを2つの新しいノンプツト(nonput)チャネ
ルとする。
(1)  (c” :5kip’)”は基本構成素子5
kipである。
(2)  (c  :5top@)”は基本構成素子s
 topである。
(3)  (c  :cO”)”  (coはノンプツ
ト チャネル)はそれ以上分解されず、その代りに、C
Oに対する受動的参照をCでリネームし くc” : co”)”を除去する。(セクション4.
2の遅延不感への注意参照) (4) (c” :(X?νm、 co +ε(V)”
))”は(c  :(cl?v” ・cO!v”))”
 、 (X?V’: cl!E、(V)” )”に分解
される。
第1のコマンドはtrans基本構成素子、第2のコマ
ンドはいわゆる受動表現式で、その分解については、次
のサブセクションで扱う。
(5)  (c’:(S:;S?)ビは(c’ :(c
O’ ;clo))″(cOo:S:ビ、(clo:S
? げに分解される。第1のコマンドはseq基本構成
素子である。
(6)  (c” :(S:、5r))”は(c’ :
 (cO’ 、 C1°ビ(co” :S:ビ、(C1
°S〒げに分解される。
第1のコマンドはconc基本構成素子である。
(7)  (c” :(g −+SS II−g−+S
;)げは(c’  : (g−)coo If =g 
−hcl’)ビ(COo:Sエビ、(C1°:S4 )
”ニ分解される。第1のコマンドはsel基本構成素子
である。
(8)  (c” :((g→Sち)”−1g→s? 
))”は(c”  : ((g−)Coo)“; コg
→cl  ))”(cO’ :Sa )” 8(clo
:S7 )(1に分解される。第1のコマンドはi t
er基本構成素子である。
(9)  (c”  : *S”)は(c’ :*cO
”)、 (co” :S:)”に分解される。第1のコ
マンドはrepi、を構成素子である。ここで、(C’
  : *sJ″″は(C”  : *S’)と等価で
ある。
結果として得られるコマンドは妥当なCP−1コマンド
で、形状、 EXP、 PASS、 VAR,MIX、 MUX、 
DMUX。
5KIP、 5TOP、 TRANS、 SEQ、 C
0NC,SEL  ITERREP を有する。ここで、EXPはさらに分解されるべき組の
受動表現式コマンドを示し、また、5KIP。
5TOP、 TRANS、 SEQ、 C0NC,SE
L、 ITERおよびRERは、それぞれ、タイプ5k
lp+ 5jOp+ jrans+ Seq+conc
、 sel、 1terおよびrepの導入される組の
基本構成素子である。
(5,2,4)表現式の分解 最後の分解ステップは形状(χ?V’:c!E(V)”
 )”の受動表現式コマンドの分解である。分解は受動
表現式コマンドの4つの可能な形状に対して別個に扱わ
れる。また、coおよびclを2つの新しいチャネルと
する。
(1)  c!に’“は一定値kを有し、その受動ポー
トをチャネルCに接続したタイプcons tの基本構
成素子の形状を有するため、それ以上分解されない。
(2)  (x、o?v” :c!v″ビはそれ以上分
解されない。その代り、x、oに対する受動カウンタパ
ート参照(passive counterpart 
reference)をCでリネームし、(x、o?v
” :c!v’ )”を除去する(セクション4.4の
遅延不感への注意参照) (3)  (X?V’:c!〜E(ν)°ビ (ただし
、〜は任意の単項演算子を示す)は(co?v” :c
!〜V′ビ。
(X?V’ : co ! E (V) ”げに分解さ
れる。第1のコマンドは演算子〜に対応する単項演算を
実現する基本構成素子の例である。
(4)  (X?V” :c! (EO(VO)口El
(V1))’ )”  (コこで、v=vouvtで、
口は任意の2項演算子を示す)は ((cO?vo’ ・cl?vl’):c!(vODv
1)” )”(X1?V1’:cO!EQ(VO)” 
 )”、  (X1?V1’:cl!El(V1)’ 
 )”(ただし、X =XOI、IXI)に分解される
。第1のコマンドは演算子口に対応する2項演算を実現
する基本構成素子の例である。
結果として得られるコマンドは妥当なCP−1コマンド
で、特に、形状 PASS、 VAI?  MIX  MUX、 DMU
X、 5KIP、 5TOP、 TRANS、 SEQ
、 C0NC,SEL、 ITERREP、 C0N5
T、 LINA、 BINの抽象回路である。ここで、
C0N5T、 UNAおよびBfNは、それぞれタイプ
const、単項演算子および2項演算子の導入される
組の基本構成素子を示す。
かくして、(CP−0からCP−1への翻訳の結果とし
ての形状ををする) CP−1コマンドの抽象回路への
分解が終了する。
(5,3)抽象回路最適化 抽象回路の最適化は抽象回路をある価格基準にしたがっ
て等価でより“廉価な′”抽象回路に変換することであ
る。この変換は基本的(抽象回路)変換のシーケンスの
形状を有する。
(5,3,1)抽象回路の価格 抽象回路に関しては種々の価格基準、すなわち、構成素
子の数またはチャネル数等が考えられるが、実際上は、
例えば回路のサイズ、回路スピードおよび消費電力のよ
うな対応する具体回路の価格の方がより関心事である。
関連の価格基準は所定の抽象回路に対する真の価格価値
に戻る所定の価格機能に反映されるものとする。所定の
抽象回路変換が最適かどうかを決定することがこの価格
機能である。簡単かつ有用を価格機能の一例として、関
連の具体回路(すなわち、CMOS回路)のトランジス
タ カウントに戻る機能がある。
(5,3,2)基本的変換 (抽象回路)変換は他の回路による補助回路の置換えと
して系統的に表示することができる。この場合、取除か
れる補助回路と介挿される回路が等価であるような変換
のみを考えるものとする。
等価な回路の各対のうち1つは、通常、手元の価格基準
にしたがってより廉価である。1つの基本的変換は他の
基本的変換によって形式化することはできない。
組の基本的変換は使用うしろ基本構成素子に従属する。
以下に与える組の有用な変換は発見的に生成されたもの
であるが、基本的テーマは、高価な基本構成素子を時分
割共用とするか、共用構成素子まわりのチャネル構成を
簡単にするかという主旨での基本構成素子の共用に関す
るものである。
基本構成素子の共用を目指す基本的変換の有用性は、本
発明による構文指向分解方法から発する。
それはCP−1サブコマンドが独立して分解されること
による。また、独立して分解されるプログラム部分の境
界は基本的変換を暗示する非能率さを示す。
第4a図ないし第4c図、第5a図ないし第5c図およ
び第6a図、第6b図は基本的変換の実施例を与えるも
のである。すなわち第4a図ないし第4c図は受動表現
式コマンドを共用する例を示し、第58図ないし第5c
図はトランスファーラを共用する例を示し、また、第6
a図、第6b図は制御構造を共用する例を示す。第6a
図において、基本構成素子は、シーケンサ、コンカーサ
またはシンクロナイザとすることができる。これらの各
図は対の等価回路を示す。
左側の回路または右側の回路のどちらが安いかは手元の
価格基準によるが、最も現実的な価格基準に対しては右
側の回路の方が廉価である。
(5,3,3)変換シーケンス 抽象回路最適化は、最終の回路が最初の回路より安いよ
うな基本的変換のシーケンスとして実行される。所定の
抽象回路に対しては多くのこのようなシーケンスが存在
するが、最適の抽象回路をもたらすシーケンスを見出す
ことは通常きわめて難しい問題で、これには、次のよう
な2つの理由がある。
一通常1つ以上の基本的変換を与えることができ、1つ
の変換の選択は他を使用不能とし、次に、さもなければ
現われることのない新しい変換が与えられる。
より廉価な最終結果に到達させるのに、しばしば価格が
高くなるような変換を必要とする。
一般に価格は変換シーケンスに沿って単調に減少するも
のではない。
最適化変換シーケンスを計算するための簡単かつ有効な
(しかし最適でない)戦略は、次のようないわゆるグリ
−デイなアクゴリズム(greedyalgorith
m ) 、すなわち、これ以上のコスト改善変換を与え
ることができなくなるまで、ランダムに選択したコスト
改善基本的変換を旨〈実施することである。
〔6a具体回路合成 具体回路合成は抽象回路の等価な具体回路への変換であ
る。抽象回路と具体回路は、インターバルおよびいわゆ
る初期手順シーケンス(handshakeseque
nces)間の差別はさておき、関連の外部チャネルに
おけるそれらの行動が区別できないとき等価である。電
気的ハンドシェーク シーケンスは、cp−oイヘント
の精vjA(refinement) としてのCP−
1インターバルの導入と同じように、CP−1インター
バルの精製として導入される。
抽象回路の具体回路への変換に関しては、所望の具体回
路の形式(タイミング機構、技術等に関する)に応じて
、いくつかのオプションが存在する。変換は次の2つの
連続する補助変換よりなる。
(1)抽象回路の“等価な゛具体回路への翻訳(tra
nslation) 。
(2)具体回路の“等価な“しかも゛より廉価″″な具
体回路への最適化(optimization) 。
以下、上記のステップならびに“等価“″および°“よ
り廉価“の概念につき論することにするが、一方では、
任意の具体回路形式の任意選択に対する一般的局面を、
他方では、抽象回路の具体回路への例示的変換、すなわ
ち、遅延不惑 (delay−insentive)具体回路への変換
に対する特殊な局面を説明する。まず、遅延不惑回路か
らスタートすることにする。
(6,13遅延不感回路 遅延不感回路は個々のゲートおよびワイヤ(線)の遅延
の任意の組合せに対して作動する回路である。
遅延不惑回路においては、すべての通信はワイヤ上の電
圧転移により実現される。遅延と無関係なシーケンス関
係の保持は関連の転移グループ間の因果関係を設定する
ことにより得られる。一般に、同期および通信には相互
接続されたワイヤおよびゲートの閉ループに沿ってのシ
グナリングを必要とする。
例示的具体回路合成の場合は次のような複数の理由のた
め遅延回路を使用する。
一電圧転移による通信およびクロックの欠如は抽象回路
におけるインターバル通信に概念的に近似している。
一遅延不怒回路へのコンパイルは具体回路レベルにまで
分離された機能的および物理的正確さを保持し、例えば
、グリッチ(glitches)およびクロック スキ
ュー(clock skew)のような標準的な同期の
問題が回避される。また、遅延不感回路はプロセス パ
ラメータおよび作動条件に関して強固なものと思われる
−不要な遅延により回路の正しい作動が影響を受けない
ことのため、より容易にレイアウト合成を行うことがで
きる。
一遅延不怒回路は、同期回路の速度が最悪の場合の行動
をベースにしているのに対し、平均的な場合の行動をベ
ースにしているため、回路の速度が速くなりがちである
。また、関連の電圧転移のみしか起り得ないため、電力
消費も少ない。
トランジスタ レベルまたはゲート レベル上での完全
な遅延不惑は設定できない。これらのレベルでは、いく
つかの、ただしきわめて少ない遅延に関する局部的仮定
が不可欠である。これらの仮定は、若干の遅延は他に対
して無視できるような(いくつかの相互接続ゲートを含
む)等時性領域(isochronic region
s)の概念によりカバーされる。等時性領域を含む遅延
不惑回路は次のエレメントから組成される。
一任意の有限の遅延を有するワイヤ ーすべでの関連出力の遅延間の差を無視しうるようない
わゆる等特性フォーク(isochronicfork
s) 一関連入力に関して対称な有限の遅延を有する簡単な論
理ゲート 他の形式のゲートから組成した回路を上記の対称特性を
もったゲートを有する回路に容易に変換することができ
る。
遅延不惑回路を作成する場合は、都合のよい任意のゲー
トが使用されるが、遅延不感回路においてきわめて頻繁
に出てくるミュラーCエレメント(Muller C−
element)と呼ばれる特殊なエレメントを使用す
る。(C,L、5eitz、 5ystenr Tim
ing、 Chapter7 in:c、A、Mead
、 L、A、Conway、 Introductio
n t。
VLSI  Systems、  Addison  
Wesley、  London  Amsterda
mParis、 1980.を参照)Cエレメントは1
つの出力を有し、任意の数の入力を有することができる
その出力は、すべての入力が現在の出力値の反対の値を
有する場合のみ変化し、そうでない場合出力は不変であ
る。Cエレメントは“C″゛を円で包囲した形で描写す
る。より多くの出力を描写した場合、これらに同じ信号
を表わす。
(6,2)翻訳 あらゆる具体回路形式オプションに対して抽象回路の具
体回路への翻訳は次のような方法で直進的(strat
ghtforwara5)である。
(1)抽象回路の各チャネルを具体回路内の物理的相互
接続、すなわち、ワイヤ(配線)の束に翻訳する。ワイ
ヤの数はチャネルに沿って値(バリュー)が通信される
かどうかに従属し、もしそうであれば値の幅に従属する
(2)抽象回路のバラメタライズされない各基本構成素
子を具体回路の固定補助回路に翻訳する。
(3)抽象回路のパラメタライズされた各基本構成素子
を正規の方法で複数の固定回路部分により組成した補助
回路に翻訳する。
以下順次上記各項につき説明する。
(6,2,1)チャネル あらゆる回路形式オプションに対して、どのようにして
電気信号で通信インターバルを実現するかを決める必要
がある。刻時された回路に対しては、信号はクロック゛
チック(tick) ”の時間におけるワイヤ上の電圧
レベルにより表わされ、遅延不惑回路に対しては、信号
はワイヤ上の電圧転移により表わされる。インターバル
と信号間の関係は次の各項を特定するプロトコルにより
与えられる。
(1)(どの値が通信されるかに応じ、またその値の幅
に応じて)1つのチャネルでの通信にどれだけのワイヤ
が使用されるか、インターバルはチャネルの能動サイド
により始まり、チャネルの受動サイドにより終るので、
それぞれ、各関連サイドから他のサイドにシグナリング
する2つのワイヤ グループが必要である。
(2)どのようにして同期が得られるか、すなわち双方
のワイヤ グループ上の信号がどのようにして刻時され
るか、 (3)どのようにして各値が信号によりエンコードされ
るか、 プロトコルは各インターバルに対して信号のシーケンス
を限定する。このようなシーケンスはハンドシェーク 
シーケンス(handshake 5equence)
と呼ばれる。
遅延不惑回路に対しては、いくつかのプロトコルが可能
である。本発明による具体回路合成の実施例の場合は、
次のようなプロトコルを使用している。
(1)ノンプツト(nonput)チャネルは、それぞ
れチャネルの各関連サイドから他のサイドに至る2つの
ワイヤに対応する。幅nの入出力チャネルは出力から入
力への20のワイヤの束プラス入力から出力への単一ワ
イヤに翻訳する。
(2)同期はいわゆる4フエーズ シグナリングにより
実現される。第1のフェーズでは、能動サイドがその電
気的出力ワイヤ上で電圧転移を開始し、第2のフェーズ
では変動サイドがその電気的出力上に転移を生じさせ、
第3のフェーズでは、能動サイドがその転移を逆転させ
(したがって、その電気的出方ワイヤ上には再び初期状
態が設定される)。また第4のフェーズでは、受動サイ
ドがその転移を逆転させる。
第1のフェーズはCP−1インターバルの始めに対応し
、第4のフェーズはCP−1インターバルの終りに対応
する。
(3)バリュー エンコーディングに対しては、いわゆ
る複線コード(double−rail code)を
使用する。各データビットは対のワイヤに対応する。1
つのワイヤ上の転移は値“0″゛を示し、他のワイヤ上
の転移は値”1”′を示す。
(6,2,2)基本構成素子 基本構成素子のCP−1コマンドにつき考えることにす
る。このコマンドからは、イベント(すなわち、通信イ
ンターバルの始めと終りに対応するイベント)の(部分
的)命令またはオーダーが生じ、この(部分的)オーダ
ーからハンドシェーク信号の(部分的)オーダーを抽出
することができる。
それは、回路形式オプション用のプロトコルが直接イン
ターバルおよびハンドシェーク シーケンスに関係して
いることによる。かくして、各基本構成素子に対して、
その行動をハンドシェーク信号により記述したいわゆる
ハンドシェーク展開(handshake expan
sion)を抽出することができる。
このハンドシェーク展開は、基本構成素子の具体回路に
対する仕様として機能し、基本構成素子の翻訳はこの仕
様を実現する補助回路を与える。
遅延不感補助回路合成の実施例の場合、具体回路はハン
ドシェーク展開によりポート ワイヤ上の電圧転移の見
地から規定するようにし、遅延不感補助回路により前記
回路を実現している。この場合、補助回路間通信用の遅
延不感プロトコルは具体回路のすべてを遅延不感とする
ことを保証する。
バラメタライズされない基本構成素子は固定補助回路に
翻訳する。rep構成素子用の遅延不惑具体補助回路の
きわめて簡単な例を第7図に示す。
パラメタライズされた基本構成素子はパラメータの実際
の値に従属する補助回路に翻訳する。各基本構成素子に
対しては、所定のパラメータ値に対する補助回路を少数
の固定回路部分から構成するための簡単な図式(スキー
ム)がある。例として、第8図はどのようにしてseq
 (k)構成素子用補助回路をに−1の同一回路部分か
ら構成するかを示すものである。
(6,3)最適化 抽象回路の翻訳は基本構成素子に対応する具体的構成素
子の組成物である具体回路を与える。最適化は、回路を
等価でしかもより″“廉価な°′回路に変換することで
ある。その結果として得られる具体回路においては、一
般に副回路および相互接続を基本構成およびチャネルの
カウンタバート(片割れ)として直接見分けることはも
はや不可能である。
小さい補助回路を等価な補助回路で代替させることを旨
とする複数の基本的回路変換につき考えた場合、最適化
はある価格基準にしたがってより低価格の回路を与える
このような変換のシーケンスである。
価格基準は具体回路から実の値への任意の作用で、通常
、所定の技術、すなわちCMOSにおける回路のサイズ
もしくはスピードを反映する。
組の可能な回路変換は回路形式の任意選択に大いに依有
する。例えば(グローバルな刻時回路の場合に)特別な
タイミングの仮定を使用することにより必要とするシグ
ナリングを減少させ(さらに効率的な回路を作成させ)
ることができる。
遅延不感具体回路合成の場合における基本的回路変換の
簡単な例としては、直接大地変位に接続した入力の除去
、2重反転の除去、(等時性フォーク等に関するある条
件のもとにおける)ド・モルガン・ルールの適用がある
〔7]実施例 以下シリコン コンパイラ方法の実施例につき説明する
(7,1) BaF2 コンパイラに対する実施例はBaF2と呼ばれる2ブレ
ース バッファである。バッファは1つの入力ポートi
および1つの出力ポート0を有する構成素子で、その出
力において同じオーダーで入力を再生する。その出力に
おける値の流れ(ストリーム)はいわゆる入力値のスト
リームのプレフィックスである。2プレース バッファ
は、出力事象が入力事象より多くても2つ遅れるような
バッファで、この場合、出力ストリームの長さは入力ス
トリームの長さより多くても2つ少ない。
BaF2用のcp−oプログラムは第9図に示すとおり
で、それは同じ構造、すなわち1プレース バッファの
構造を有する2つのサブコマンドの並列合成である。し
たがって、BaF2は、内部チャネルmにより接続した
2つの1プレース バッファのカスケードと考えること
ができる。これを第10図に示す。
BaF2の作動は次のように理解することができる。
双方のサブコマンドは入力アクションとともにのみ始め
ることができるが、内部チャネルmからの入力は、m上
の出力と一致しなければならないので、まだ起り得ない
。したがって、本当の最初のアクションはポートi上の
入力でなければならず、入力値は変数X内に蓄積される
。2番目のアクションはm上の内部通信のみであるはず
で、χの値に変数yが割当てられる。次に、i上の新し
い値の入力および0上のyの値の出力が任意のオーダー
(並列にさえも)でなされる。双方のアクションの終了
後、m上の他の内部通信が行われる。
(7,2) BaF2に対する抽象回路合成りuf2に
対する3つの抽象回路合成ステップは次のとおりである
(1) CP−0プログラム(第9図)の第11図によ
り与えられる対応するCP−1プログラムへの変換、c
p−oプログラム内に生ずる内部チャネルmに対しては
、pass基本構成素子プラス2つの新しいチャネルm
o+ mlがCP−1プログラムに導入される。
(2) CP−1プログラム(第11図)の基本構成素
子への分解を第12図に示す。第12図において、コマ
ンドS°をSS、 S−に分解する分解ステップは により表わされる。分解の結果得られる基本構成素子は
、次のように表わされる。すなわち、(S’O:(Sτ
、S;)げに対してC0nC(SO+SI+ sz) 
−その結果として得られる抽象回路を第13図に示す。
(3)第13図からの抽象回路の最適化は第14図の抽
象回路を与える。最適化は、いずれかのサイドでのpa
ss構成素子の2つのtranS構成素子との組合せを
5ync構成素子を介して制御される単一のtrans
により代替する単一変換よりなる(第5a図参照)。
(7,3) BaF2に対する具体回路合成具体回路合
成の場合は、変数およびバリュー通信チャネルに対して
1ピントの幅をとるものとする。この場合には、遅延不
感具体回路合成は次のようになる。
(1)第14図からの抽象回路の翻訳により第15図の
ような具体的遅延不感回路が生成される。
実線ボックスで包囲した第15図の各補助回路は第14
図の基本構成素子に対応し、かくして補助回路のセット
によりライブラリが構成される。簡単のため、他のライ
ブラリエレメントのリスト アップは省略する。1対1
ライブラリによる翻訳についてはそれ自体よく知られて
いる。
(2)第15図示具体回路の最適化は、例えば一番上の
補助回路100においてCエメレントを除去することに
ある。それは、Cエレメントの双方の入力は大地電位に
接続されており、S0出力線は直接大地電位に接続でき
ることによる。
【図面の簡単な説明】
第1図はシリコン コンパイラ プログラムの分解を与
える図、 第2図は言語cp−oの構文を示す図、第3図は言語C
P−1の構文を示す図、第4図、第5図および第6図は
抽象回路最適化期間中に適用される基本的抽象回路変換
の例を示す図、 第7図は基本構成素子rep、の具体回路を示す図、第
8図は基本構成素子seq、の具体回路を示す図、第9
図はcp−oにおける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・・・補助回路 E ::= 5kip l 5top l c? 1c! 
l c?z l clE l x := ESo: S
I l So+SIl 9−ISoJ=Q −IS+ 
 l (!+ −So)’;=!7−+S+ l 傘S
::= k l工1〜EIEoロE4 υar?(S) uarl(S)    = cAan?(S)   = chanl(S)   = IntChan(S)  = Ey:tChan(S) = cond(So、 SI)  = △ △ Δ △ Sの内部で(ブール演算)式内にアクセスできる変数の
セット Sの内部ヘアサインできる変数のセットSの内部で生起
する入力チャネルのセットSの内部で生起する出力チャ
ネルのセットchan!(S) n chan7(S)
(ehanl(S) U chan7(S)) −1n
tChan(S)uarl(S、)) n uarl(
S1) =φυαri(So) n υαr?(S、)
 =φuαr?(So) n uarl(S1) =φ
Chan?(So) n ehan?(S1) =φc
hanl(SO) n chanl(S、) =φS@ S。 SI S′ υar?(S) ”” S:ynx I 5pyne:S” l SO:
SI I 501S115OISI I S°’::=
 Stomns l 5zyne。・S#v+’l(1
l Slp+14+l51911g1::;C7°c!
’ l c7x” l clE”::=sk:p”j、
st、op”1x:=E”IS、”、、、、JS;;S
;JS;、S;g −* 5.’Fg →3.” IC
g −+ 、5;)’; wg →S、” l h5”
::= 5(1111%lll l 5avnc。・町
−1、、: C7’  c!”  c?工+ clE”
::= k l x l〜E l Eo口E。 = Sの内部で(プール演が)式内にアクセスできる変
数のセット uarl(S)    = Chan?(S)   = chanl(S)   = chaば(S)= chan’(S)   = IntChan(S)  = ExtChan(S) = cond(S6. Sn)  = Δ △ △ Sの内部ヘアサインできる変数のセットSの内部で生起
する入力チャネルのセットSの内部で生起する出力チャ
ネルのセットSの内部で生起する受動的チャネルのセッ
トSの内部で生起する能動的チャネルのセットchcu
z嘗(S))nchan?(5)(cAarL!(S)
 LJ chcn?(句) −1ntChan(S)u
arl(So) nυα+((S、) =φ△varl
(So) n 3+ar?(S1) =φuar?(S
o) n t+ar!(SI) =φchant(S6
) n chan?(SO=φA chanl(SO)
nChan!(SL) =φchan@(S6))nC
han”(SI) =φ△chan’にO) n ch
an”(S、) =φFIG、3 FIG、 4b FIG、 4c FIG、5a FIG、5b FIG、6b ネ(iTz; rn!s:)、 * (m?y; 0!
!/)FIG、11 N才

Claims (1)

  1. 【特許請求の範囲】 1、シリコンコンパイラプログラムを実行 する方法において、 a)次のサブステップ、すなわち、 a1)明白な並列構造と、明白な直列構造と、明白な通
    信構造で、タイムインターバル として表わされ、かつ、プログラムチャ ネルの能動サイドまたは受動サイドでの実 行のため能動的もしくは受動的な通信行動 を規定するようにしたものとを含む概念を 有する第1の無条件並行コンピュータ言語 によりアルゴリズムを表現する原始テキス トを受信するサブステップ a2)該受信原始テキストを語句分析、構文分析および
    意味分析を行って該概念により 決められる(抽象概念としての)木構造表 現に変換するサブステップ を有するソースアナライザステップと、 a3)該木構造表現を抽象チャネルにより相互接続した
    基本構成素子のネットワークであ る抽象回路表現に変換するための抽象回路 シンセサイザステップで、このような各 基本構成素子は1つの基本プログラムの実 行を表わし、各抽象チャネルはそれを介し て相互接続される2つの基本プログラムを 正確に特徴づける関連のプログラムチャ ネルを表わすようにしたものと、 a4)各抽象チャネルを具体回路のワイヤセットに翻訳
    (変換)し、抽象回路の各基本構 成素子を少なくとも1つのワイヤセット により他の電子回路にリンクさせた基本電 子回路に翻訳する方法で、該抽象回路表現 をタイミング機構要求、回路形式要求およ び技術実現要求により制約されるような具 体回路表現に変換するステップと、 a5)該具体回路表現により特定されないが、インレイ
    アウト受動部分の電気的特性によ り要求(または指令)される基本回路素子 を与えるという少なくとも1つの低レベル タスクを実現しながら該具体回路表現を超 大規模集積回路レイアウトに変換するステ ップと を含むことを特徴とするシリコンコンパ イラ方法。 2、該ソースアナライザステップは次の初 期ステップ、すなわち、 a0)該通信構造により該通信行動を瞬時的事象として
    規定するようにした第2の無条件 並行コンピュータ言語で該原始テキストを 受信し、サブステップa1)に提供するため該原始テキ
    ストを該第1無条件並行コンピ ュータ言語に変換するステップ を含むことを特徴とする請求項1記載の方法。 3、階層的シリコンコンパイラプログラム を有するコンピュータを含むシリコンコン パイラ装置において、 a)次の手段、すなわち、 a1)明白な並列構造と、明白な直列構造と、明白な通
    信構造で、タイム インターバル として表わされ、かつ、プログラムチャ ネルの能動サイドまたは受動サイドでの実 行のため能動的もしくは受動的な通信行動 を規定するようにしたものとを含む概念を 有する第1の無条件並行コンピュータ言語 で表現した原始テキストを受信するための 第1受信手段 a2)受信した原始テキストを語句分析、構文分析およ
    び意味分析を行って該概念によ り決められる(抽象概念としての)木構造 表現に変換するための第1変換手段 a3)該木構造の表現を出力するための第1出力手段 を有するソースアナライザモジュールと、 b)次の手段、すなわち、 b1)該第1出力手段の出力を受信する第2受信手段 b2)受信した該木構造表現を抽象チャネルにより相互
    接続した基本構成素子のネット ワークである抽象回路表現に変換するため、各基本構成
    素子は1つの基本プログラムの 実行を表わし、各抽象チャネルはそれを介 して相互接続される2つの基本プログラム を正確に特徴づける関連のプログラムチ ャネルを表わすようにした第2変換手段、 b3)該抽象回路の表現を出力するための第2出力手段
    を有する抽象回路シンセサイザ モジュールと、 c)次の手段、すなわち、 c1)該第2出力手段の出力を受信する第3入力手段 c2)各抽象チャネルを具体回路のワイヤ セットに翻訳し、抽象回路の各基本構成素 子を少なくとも1つのワイヤセットによ り他の電子回路にリンクさせた基本電子回 路に翻訳する方法で、該抽象回路表現を少 なくともタイミング機構要求、回路形式要 求および技術実現要求により制約されるよ うな具体回路表現に変換するための第3変 換手段 c3)該具体回路表現を出力するための第3出力手段 を有する具体回路シンセサイザモジュール と、 d)次の手段、すなわち、 d1)該第3出力手段の出力を受信する第4入力手段 d2)該具体回路表現により特定されないが、インレイ
    アウト受動部分の電気的特性によ り要求(または指令)される基本回路素子 を与えるという少なくとも1つの低レベル タスクを実現しながら、該具体回路表現を 超大規模集積回路レイアウトに変換するた めの第4変換手段 d3)集積回路を生成するためのソースとして該大規模
    集積回路レイアウトを出力するた めの第4出力手段 を有するレイアウトシンセサイザモジュ ールと を含むことを特徴とするシリコンコンパイ ラ装置。 4、該ソースアナライザモジュールは次の フロントモジュールすなわち、 a0)該通信構造により該通信行動を瞬時的事象として
    規定するようにした第2の無条件 並行コンピュータ言語で該原始テキストを 受信し、該第1受信手段に提供するため該 原始テキストを該第1無条件並行コンピュ ータ言語に変換するためのモジュール を含むことを特徴とする請求項3記載の装置。 5、該抽象回路シンセサイザモジュールは所定の基本構
    成素子の環境の性能を評価するため該第2変換手段と双
    方向通信可能な価格属性変換装置を含み、該抽象回路内
    の該環境を修正することにより、実行されるプログラム
    を不変のままとして抽象回路の価格属性を改善するよう
    にしたことを特徴とする請求項3記載の装置。 次の手段、すなわち、 a)明白な並列構造と、明白な直列構造と、明白な通信
    構造で、タイムインターバル として表わされ、かつ、プログラムチャ ネルの能動サイドまたは受動サイドでの実 行のため能動的もしくは受動的な通信行動 を規定するようにしたものとを含む概念を 有する無条件並行コンピュータ言語で表現 された原始テキストの(抽象概念としての) 木構造表
    現の表示を受信する入力手段と、 b)該木構造表現を抽象チャネルにより相互接続した基
    本構成素子のネットワークであ る抽象回路表現に変換するため、各基本構 成素子は1つの基本プログラムの実行を表 わし、各抽象チャネルはそれを介して相互 接続される
    2つの基本プログラムを正確に 特徴づける関連のプログラムチャネルを 表わし、また、各基本プログラムを該抽象 回路内で少
    なくとも以下に示すモジュール、すなわち、 b1)所定のnおよびkに対しk個の読取ポート(re
    adport)を有するnビット変数(variabl
    e): b2)2つの能動ポート間のnビットワイ ドインターコネクタであるnビットパッ シベータ(passivator); b3)1つの受動ポートから他の受動ポートにnビット
    ワイドメッセージを能動的 に転送するnビットトランスファーラ (transferrer); b4)少なくとも2つのコマンドのセットを順次的に実
    行するシーケンサ(sequcncer):b5)少な
    くとも2つのコマンドのセットを並行的に実行するコン
    カーサ(concursor):b6)1つのコマンド
    をきわめて頻繁に繰返し実行するレピータ(repea
    ter);b7)到来する論理メッセージの所定の値の
    制御により、特定の第1コマンドと特定の 第2コマンドを選択するプール演算セレク タ(booleanselector): を実現させる有限セットの基本プログラムの エレメン
    トとするようにした変換手段と、 c)該抽象回路の表現を出力するため変換手段により供
    給される出力手段と を含むことを特徴とする請求項3または4に記載のシリ
    コンコンパイラ装置用として使 用する抽象回路シンセサイザモジュール。 さらに、 a)所定の基本構成素子の環境の性能を評価 するため
    、該変換手段と双方向通信可能と し、かつ該抽象回路内の該環境を修正する ことにより実行される可能性のあるプログ ラムを不変のままとして抽象回路の価格属 性を改善するよう形成した価格属性変換装 置 を含むことを特徴とする請求項6記載のモジュール。 該回路はその関連のアクティビティグラ フ内の任意の指向サイクルからフリーであり、かつ該回
    路は次の各基本構成素子、すなわち、k読取ポートnビ
    ット変数、nビットパッ シベータ、nビットトランスファーラ、シ ーケンサ、コンカーサ、レピータ、セレクタおよび少な
    くとも1つの他の形式の基本構成素子の少なくとも1つ
    を含むことを特徴とする請求項6または7に記載の抽象
    回路シンセサイザ モジュールにより作製した機械生成
    抽象回路。 9、該回路はその関連のアクティビティグラフ内の任意
    の指向サイクルからフリーであり、また該回路は次の構
    成素子、すなわち、k読取ポートnビット変数、nビッ
    トパッシ ベータ、nビットトランスファーラ、シー ケンサ、コンカーサ、レピータ、セレクタおよび少なく
    とも1つの他の形式の構成素子の少なくとも1つを含み
    、さらに該抽象回路は電子具体回路に変換するための1
    対1の変換可能な原始情報を表わすようにしたことを特
    徴とする請求項6または7に記載の抽象回路シンセサイ
    ザ モジュールにより作製した機械生成抽象回路。 10、該電子回路は、各々少なくとも次の相互接続基本
    構成素子、すなわち、 a)同時読取用のk個の読取ポートを有するnビット変
    数; b)2つの能動ポート間のnビットワイド イゾターコネクタであるnビットパッ シベータ; c)1つの受動ポートから他の受動ポートにnビットワ
    イドメッセージを能動的に 転送するnビットトランスファーラ; d)少なくとも2つのコマンドのセットを順次的に実行
    するシーケンサ; e)少なくとも2つのコマンドのセットを並行的に実行
    するコンカーサ; f)1つのコマンドをきわめて頻繁に繰返し実行するレ
    ピータ; g)到来する論理メッセージの所定の値の制御により特
    定の第1コマンドと特定の第2 コマンドを選択するプール演算セレクタ をカウントする抽象回路の関連の基本構成素子を1対1
    で表示するような複数の電子回路モジュールを含むこと
    を特徴とする請求項1または2に記載の方法を適用して
    生成した電子回路。 11、少なくとも1つの能動ポートおよび少なくとも1
    つの受動ポートの双方を有する各基本構成素子は、次の
    制約、すなわち、 a)すべての受動ポートのすべての電気的入力が安定値
    0を与えられた後、第1の有限 時間以内にすべての能動ポートのすべての 電気的出力が安定値0となり、その後すべ ての能動ポートのすべての電気的入力が安 定値0を与えられた後、第2の有限時間以 内にすべての受動ポートのすべての電気的 出力が安定値0となる という条件を満足することと、 受動ポートのみを有する各基本構成素子は次の制約、す
    なわち、 b)すべてのポートのすべての電気的入力が安定値0を
    与えられてから第3の有限時間 以内にすぺてのポートのすべての電気的出 力が安定値0となる という条件を満足することと、 その関連の抽象回路表示は次の制約、すなわち、 c)それはその関連のアクティビティグラ フ内の任意の指向サイクルからフリーであ り、 d)その関連のグラフ内の各ノードは少なくとも1つの
    外部受動ポートから到達可能で ある という条件を満足すること を特徴とする請求項1または2に記載の方法あるいは請
    求項3ないし5のいずれかに記載の装置により生成した
    リセットフリー電子 回路。
JP1031247A 1988-02-16 1989-02-13 シリコン コンパイラ方法および装置 Expired - Fee Related JP3026979B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US156392 1988-02-16
US07/156,392 US5005136A (en) 1988-02-16 1988-02-16 Silicon-compiler method and arrangement

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 true JPH028937A (ja) 1990-01-12
JP3026979B2 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)

Families Citing this family (64)

* Cited by examiner, † Cited by third party
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
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
US5623418A (en) * 1990-04-06 1997-04-22 Lsi Logic Corporation System and method for creating and validating structural description of electronic system
US5870308A (en) * 1990-04-06 1999-02-09 Lsi Logic Corporation Method and system for creating and validating low-level description of electronic design
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
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
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
US5572436A (en) * 1990-04-06 1996-11-05 Lsi Logic Corporation Method and system for creating and validating low level description of electronic design
US5598344A (en) * 1990-04-06 1997-01-28 Lsi Logic Corporation Method and system for creating, validating, and scaling structural description of electronic device
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
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
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
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
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
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
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
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
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
US5949990A (en) * 1996-12-05 1999-09-07 Hewlett-Packard Co. Method of efficiently modeling tri-state gates
US5880975A (en) * 1996-12-05 1999-03-09 Hewlett-Packard, Co. Method of producing simplified code from a circuit compiler
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
CA2376605C (en) 1999-08-19 2008-06-17 Massachusetts Institute Of Technology Synchronous circuit synthesis using an asynchronous specification
DE102004005730A1 (de) * 2004-02-05 2005-08-25 Robert Bosch Gmbh Verfahren zur Konfiguration eines Computerprogramms
US7370312B1 (en) 2005-01-31 2008-05-06 Bluespec, Inc. System and method for controlling simulation of hardware in a hardware development process
US7647567B1 (en) 2005-01-31 2010-01-12 Bluespec, Inc. System and method for scheduling TRS rules
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
JP6047186B2 (ja) * 2015-02-20 2016-12-21 パナホーム株式会社 屋根構造
US10171334B2 (en) 2016-06-30 2019-01-01 International Business Machines Corporation Real-time data analytics for streaming data

Family Cites Families (2)

* Cited by examiner, † Cited by third party
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

Also Published As

Publication number Publication date
EP0329233A2 (en) 1989-08-23
JP3026979B2 (ja) 2000-03-27
JP2000155777A (ja) 2000-06-06
EP0329233A3 (en) 1992-07-01
JP3258000B2 (ja) 2002-02-18
US5005136A (en) 1991-04-02

Similar Documents

Publication Publication Date Title
JPH028937A (ja) シリコン コンパイラ方法および装置
Burns Performance analysis and optimization of asynchronous circuits
Varshavsky Self-timed control of concurrent processes: The design of aperiodic logical circuits in computers and discrete systems
Cortadella et al. Petrify: a tool for manipulating concurrent specifications and synthesis of asynchronous controllers
US5537580A (en) Integrated circuit fabrication using state machine extraction from behavioral hardware description language
Mokhov et al. Conditional partial order graphs: Model, synthesis, and application
Martin A synthesis method for self-timed VLSI circuits
Pena et al. Combining process algebras and Petri nets for the specification and synthesis of asynchronous circuits
Greenstreet et al. Self-timed iteration
Parrot et al. Timed Petri nets with reset for pipelined synchronous circuit design
JPH113367A (ja) デジタルシステムのインプリメント可能な記述を生成する設計環境および方法
Meng Asynchronous design for digital signal processing architectures
US7113901B1 (en) Reuse of hardware components
Patra Approaches to design of circuits for low-power computation
Öberg ProGram: A grammar-based method for specification and hardware synthesis of communication protocols
Mishchenko et al. Efficient solution of language equations using partitioned representations
Antoniazzi et al. HW/SW codesign for embedded telecom systems
Carmona et al. Synthesis of asynchronous hardware from petri nets
Androutsopoulos et al. Protocol converter synthesis
Ecker et al. The design cube: A model for VHDL designflow representation and its application
Chan Automated Synthesis of Speed-Independent Circuits using Distributed Finite State Machines
Pirmez et al. A methodology for the implementation of protocols in hardware from a formal description
De Gloria et al. Delay insensitive micro-pipelined combinational logic
Alekseyev Compositional approach to design of digital circuits
Kishinevskiĭ et al. Self-Timed Control of Concurrent Processes: Models and Principles for Designing Aperiodic Logical Circuits in Computers and Discrete Systems

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