JP2000155777A - 電子回路 - Google Patents

電子回路

Info

Publication number
JP2000155777A
JP2000155777A JP11307138A JP30713899A JP2000155777A JP 2000155777 A JP2000155777 A JP 2000155777A JP 11307138 A JP11307138 A JP 11307138A JP 30713899 A JP30713899 A JP 30713899A JP 2000155777 A JP2000155777 A JP 2000155777A
Authority
JP
Japan
Prior art keywords
circuit
passive
active
port
abstract
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
JP11307138A
Other languages
English (en)
Other versions
JP3258000B2 (ja
Inventor
Berkel Cornelis H Van
ヘルマヌス ファン ベルケル コルネリス
Ronald Wilhelm Johan 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
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of JP2000155777A publication Critical patent/JP2000155777A/ja
Application granted granted Critical
Publication of JP3258000B2 publication Critical patent/JP3258000B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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)【要約】 (修正有) 【課題】 シリコン・コンパイラ方法を適用することに
より正確に作動する回路を得ることを目的とする。 【解決手段】 能動的か受動的かのどちらかの通信コマ
ンドを含む並行コンピュータ言語により表現された原始
テキストを受信するスラップと、原始テキスト22を木
構造26に変換するステップと、木構造から抽象回路3
0に変換するステップを経て生成された電子回路であっ
て、nビットメモリ素子、nビットのパッシベータ回
路、nビットのトランスファーラ回路、シーケンサ回
路、コンカーサ回路、レピータ回路、ブール演算セレク
タ回路を含む電子回路である。

Description

【発明の詳細な説明】
【0001】〔1〕緒言 〔1.1 〕発明の背景 本発明はシリコン コンパイラ方法に関するものであ
る。シリコン コンパイラは、集積回路により実行すべ
き機能が特定される場合、この種集積回路用のシリコン
レイアウトを生成するに必要なステップのシーケンス
である。本発明はシリコンの使用に限定されるものでな
く、例えば、ガリウム砒素の場合のように、他の基板材
料を使用する場合にも、同じ技術が適用される。このよ
うなシリコン コンパイラは、狭義的には爾後における
レイアウトの生産を単体化し、直進的にする手法をもた
らす。この場合、このような生産にはトランジスタの大
きさ、処理パラメータおよび他の基本量の挿入を含む。
また、本発明はシリコンコンパイラ装置にも関するもの
である。実際上、コンパイラ方法の種々の部分は容易に
手で実行することが可能であるが、この種装置の心臓部
はマン・マシン会話および特定のシリコン コンパイラ
プログラムを実行するための周辺装置を含む汎用オペ
レーティング システムを有するコンピュータである。
シリコン コンパイラ装置の機能は、特定のデジタル計
算を限定する原始テキストを受容し、それから集積回路
レイアウトの詳細な描写を生成することにより、集積回
路が事前に決められた計算を実行しうるようにすること
である。ここで、原始テキストを表現する言語は明白な
平行性に対する構造を与えるほか、明白な順次性を与え
るものとする必要がある。このような言語はしばしば無
条件並行言語(imperative-concurrentlanguage) と呼ば
れ、例として、広く知られている言語OCCAM, Ada,CSP
およびCCS がある。設計者はこれらの言語でどのような
補助計算を並行的に実行し、どのような補助計算を直列
的に実行する必要があるかを表現することができる。ま
た、これら2つの特徴の組合せにより、シリコン コン
パイラ方法にアーキテクチャーの自由度を与え、意図す
る目的(ターゲット)レイアウトに対する選択を与える
ことを可能にしうることが分る。無条件並行言語の本質
的特徴を現わす2つの小言語(“CP-0"および“CP-1")
に関しては、第3節に記載することにする。
【0002】〔1.2 〕説明の要約 本発明の目的は、無条件並行言語で原始テキスト上で作
動し、かつ融通性を最大に保持し、価格とマッチした結
果を許容しながら、VLSIレイアウトを作製しうるような
シリコン コンパイラ方法および装置を提供しようとす
るものである。この目的はシリコン コンパイラ装置に
より実現できる。このような組合せ装置はともに生産プ
ロセスを構成する部分サービスの連続を与え、かつそれ
自体で集積回路を開発し、設計するための強力なツール
を意味する。“シリコン コンパイラ”なる語句は、レ
イアウトを作製しうる種々のセットアップ用として早く
から漠然と使用されてきたが、それらの情況において
は、システムの垂直集積および種々の算術構造の可能性
の双方が極端に制限されていた。本発明によるときは、
きわめて広範囲の入力アルゴリズムを受入れることがで
き、また可能な実現技術上の制約もきわめて僅かであ
る。さらに、本発明方法を適用することにより正確に作
動する回路を生成することが可能となり、したがって、
プロセシング付き(再)設計サイクル((re)design-cum-
processing cycle) を通しての所要サイクル数が少なく
なる。ただし、そのための代償としては、シリコン面積
の幾分の増加もしくは作動速度の幾分の低下が考えられ
る。
【0003】〔1.3 〕発明の他の局面 本発明の中心的局面を表わすものとしては、特に抽象回
路(abstract-circuit) の提供であると考えられる。し
たがって、本発明は抽象回路表現を与えるためのモジュ
ールにも関するものである。また、本発明は上述のモジ
ュールにより生成される抽象回路にも関するものであ
る。この種回路はレイアウト製造の中間生産物とするこ
とができる。この場合、抽象回路は生成プロセス内で実
行すべき任意の後のステップとは無関係である。また、
本発明は上記により生成される電子回路にも関する。こ
の場合、抽象回路の使用は構造的および幾何学的にそれ
から抽出した電子回路の特殊な特性への翻訳を行う。ま
た、本発明は上記により生成されるリセットフリー電子
回路にも関する。この場合は、抽象回路表現の暗黙初期
設定機構により、リセット ハードウエアを必要としな
い。
【0004】〔1.4 〕実施例について 以下図面により本発明を説明する。一般に、シリコン
コンパイラ プログラムがラン(実行)しているコンピ
ュータに関しては、一般構造であるため、その説明は省
略することにする。また、シリコン コンパイラ プロ
グラムのある部分を活性または不活性とし、かつ、この
ような部分間における種々のレベルでの相互同期を制御
するオペレーティング システムも一般の多重処理オペ
レーティング システムであるので、便宜および簡単の
ためこの種コンピュータおよびオペレーティング シス
テムに関しては詳細な説明は省略することにする。
【0005】〔2〕シリコン コンパイラ装置の構造 図1はシリコン コンパイラ プログラムの一実施例の
分解図で、各モジュールはプロックにより表示し、入力
または出力操作は矢印を用いてそれにリンクさせるよう
にしている。ブロック20, 40, 42の各々はさらに2つの
ブロックに分解する。ブロック20は全体としてシリコン
コンパイラ プログラムを表わす。最初の次のブロッ
クは原始テキストを受信するソース アナライザ24であ
る。このアナライザ モジュールは語句分析,構文分析
および意味分析を実行する。これは原始言語の良く構成
されたキャラクタのため直進的(ストレートフォワー
ド)オペレーションである。この分析により、いわゆる
木構造(26)が生成される。前記木構造は、原始プログラ
ムの抽象的表現で、依然として原始言語の概念に限定さ
れている。この分析は意図するIC技術により表わされる
ような目的言語とは完全に無関係である。したがって、
ここで必要とするコンパイラ技術は汎用キャラクタを有
するを可とし、シリコン コンパイラに特定のものでは
ないので、ここではその説明を省略することにする。
【0006】高いレベルの階層上では、シリコン シン
セサイザ モジュール42は回路シンセサイザ モジュー
ル40とレイアウト シンセサイザ モジュール36に分解
される。前者は具体回路(concrete circuit) 34 を与
え、後者はそれからVLSIレイアウト38を与える。長い相
互接続線に固有の容量を駆動するための付加的駆動装置
の提供のようなある種の低レベル タスクはレイアウト
シンセサイザモジュールに属する。具体回路34は、例
えば、CMOS技術におけるトランジスタ、TTL 技術におけ
るゲート回路またはAND, OR 等のように技術実現に無関
係の基本的論理表現によるような任意の相応した表現を
有するを可とする。このような表現および種々の低レベ
ル タスクをレイアウト シンサセイザ モジュール36
に与えることにより、前記モジュールの作動は直進的
(ストレートフォワード)翻訳となる。VLSIレイアウト
は、プロッタ用の一連の命令のような種々の異なる方法
で出力することができるが、本来的には上記の方法が一
般的である。
【0007】回路シンセサイザ モジュール40はさらに
2つの部分的な回路シンセサイザモジュールに分解され
る。第1モジュール28は木構造をいわゆる抽象回路30に
変換し、第2モジュール32はそれから具体回路を生成す
る働きをする。抽象回路は、抽象チャネルにより相互接
続され、かつ一定の構成ルールを満足するような基本構
成素子よりなる回路網である。
【0008】モジュール32は抽象回路から具体回路34へ
の変換を行う。この変換は予定されるVLSI回路に関する
種々の技術的選択の制約のもとで行われる。主要な選択
は、 タイミング機構(すなわち、刻時,非同期または遅延不
感) 回路形式(すなわち、動的論理,静的論理) 技術実現(すなわち、バイポーラ,MOS またはガリウム
砒素) に関してなされる。
【0009】抽象回路から具体回路への変換は直進的
(ストレート フォワード)とし、抽象回路のエレメン
トを次の各項にしたがって具体回路の対応するエレメン
トに翻訳する。抽象回路の各チャネルを具体回路内の物
理的相互接続、すなわち、ワイヤの束に翻訳する。ワイ
ヤの数は、チャネルに沿ってどの値を通信するかに依存
し、かつその値の幅に依存する。抽象回路のパラメタラ
イズされていない各基本構成素子を具体回路の固定補助
回路に翻訳する。抽象回路のパラメタライズされた各基
本構成素子を規則正しい方法で複数の固定回路部分より
なる具体回路の補助回路に翻訳する。
【0010】〔3〕通信プロセス 無条件並行プログラミング言語の一例としては、CP-0
(“通信プロセス−レベル0”)がある。抽象回路はCP
-1(“通信プロセス−レベル1”)で記述される。これ
はCP-0と類似であるが、根本的に異なる“インターバ
ル”セマンティックスを有する言語である。抽象回路お
よび抽象回路合成のセクションに関しては以下のCP-0お
よびCP-1の説明を参照されたい。
【0011】〔3.1 〕CP-0 まず始めにCP-0の構文につき説明する。CP-0は本来広く
公表され、研究されている言語CSP のサブセットであ
る。 (C.A.R.Hoare著「Communicating Sequential Processe
s 」Communications of the ACM 誌21(8), 1978 年第66
6 −677 頁所載 および C.A.R.Hoare 著「Communicat
ing Sequential Processes 」Prentice-Hall Internat
ional 社発行Series in Computer Science, 1985年所載
を参照。)
【0012】一般に次の6つの構文的カテゴリーが使用
される。定数(constants)のセットConst (標準エレメ
ントk)、変数(variables)のセットVar (標準エレメ
ントx)、式(expression) のセットExp (標準エレメ
ントE, E0, E1)、ブール演算式(boolean expression)
のセットBexp(標準エレメントg)、チャネル(channe
l)のセットChan(標準エレメントc)およびコマンド
(commands) のセットCmd (標準エレメントS, S0, S1)
【0013】図2はコマンドおよび式の生成ルール(Pr
oduction rule)を与えるものである。また、この図はコ
マンドSの内部および外部チャネル(それぞれ IntChan
(S) および ExtChan(S) )の定義をも与える。CP-0プロ
グラムはコマンドである。
【0014】以下、種々のコマンド形状を(操作的およ
び非公式に)説明する。skip はアトミック コマンド
(atomic comma- nd) である。その実行はなんらの影響
も与えないが、首尾よく終る。stop はこれもアトミッ
ク コマンドである。その実行はなんらの影響も与えな
いが、終了しない。
【0015】c! はいわゆるノンプット コマンド (no
nputcommand)である。その実行は対応するノンプットコ
マンドc?との同期と等価である。ノンプット コマン
ド間の通信はノンバリュー コミュニケーション(non-
value communication)およびアンディレクテッド(andi
rected) コミュニケーションと呼ばれる。c?とc!間
の示唆される非対称は人為的なもので、その導入はCP-1
への翻訳の表現を容易にする。
【0016】c?v はインプット コマンドで、その実
行は2つの効果を有する。すなわち、対応するアウトプ
ット コマンドc!E との同期ならびに変数vへの出力式
(output expression)Eの値の割当である。インプット
コマンドとアウトプットコマンド間の通信はバリュー
コミュニケーション(value communication)およびデ
ィレクテッド(directed)コミュニケーション(すなわち
出力から入力への)と呼ばれる。
【0017】c!E はアウトプット コマンドである。
(上記参照)。
【0018】v:=E は割当コマンド(assignment com
mand) で、その実行後変数vは式Eの値を有する。S0
S1 はコマンドS0およびS1の順次的実行である。S0,S1
はコマンドS0およびS1の並行的実行で、コマンドは条
件cond(S0, S1) を満足するものでなければならない
(図2参照)。
【0019】g→S0‖¬g→S1 はS0(gがホールド状
態の場合)またはS1(¬gがホールド状態の場合)のい
ずれかの実行に等しい (g→S0* ;¬g→S1 はS0(gがホールド状態の
間)の0,1またはそれ以上の実行および後続のS1の実
行に等しい。
【0020】*S は(true→S)* ;false →skip
に対する略号で、Sを“永久に(forever)”繰返すこと
に等しい。
【0021】通信活動には、包含される双方のプロセス
の同時参加を必要とするので、各通信事象が実際に起る
場合には持続時間なしの瞬間的アトミック行動とみなさ
なければならない。CP-0における通信は、通信すること
のイニシァティブに関し完全に対称である。ただし、通
信の方向に関しては非対称性が存在しうること勿論であ
る。
【0022】さらに、通常の方法で括弧を使用するよう
にし、また、種々の2項演算子のバインディング パワ
(たばねる力)は、バー“‖”から矢印“→”,セミコ
ロン“;”からコンマ“,”(すなわち大きい記号から
小さい記号)の方向に増加するものとする。また、単項
演算子としての星印は最高のバインディング パワを有
する。
【0023】Bexpの構文はExp のそれである。ここで、
(ブール演算)式は基本的種類のもの(Pascalのような
プログラミング言語での表現参照)で、特に、それらは
サイド効果(side effect)を有せず、またそれらの評価
は常に終結するものと仮定する。この場合、式は定数
(すなわち、true, 0, 4, maxint, φ)の形,変数の
形を有するか、単項演算子(すなわち、not )、もしく
は2項演算子(すなわち、∧,∨,=,≠,≦,max, m
in, +,−,*,div,∈, および∩)を用いたさらに
基本的な式により構成される。また、あるデータ タイ
ピングの形および形式強制もとられる。
【0024】CP-0はその基幹となる特徴を表示する目的
のためきわめて小さく保持するようにするが、CP-0プロ
グラミングの便宜性を高めるため、多くの拡張や記号法
的略号が考えられる。以下に、短かい、不完全なリスト
を記す。チャネル ネーム用の適当なリネーミング機能
を有するマルチプル インスタンシェーション(multipl
e instantiation)およびプログラム構成(構成素子また
はプロセス参照)目的用コマンドのネーミング (ブール演算)式(関数参照)のネーミング 名前のスコーピング(範囲) データ形式(Pascal参照)の導入 並列割当、並列入力および並列出力の導入 放送の導入 汎用保護コマンドもしくはケース コマンド の導入 テール再帰的(tail-recursive) コマンドの 導入 これらの拡張(extension)は根本的な問題なしに抽象回
路合成法内に収納することができる。
【0025】〔3.2 〕CP-1 CP-1はCP-0に類似の小さい無条件並行言語である。CP-0
とCP-1の間の根本的差異は、通信の構造にある。すなわ
ち、CP-0においては、通信は(通信することのイニシァ
ティブに関して)対称的かつ瞬時的事象であるが、CP-1
においては通信は持続時間を有し、非対称インターバル
により表わされる。この非対称と持続時間の双方は通信
の物理学により近い一致を示す。さらに、非対称インタ
ーバルは対称事象より多くの方法で適時に配列すること
ができ、これらの付加的配列はきわめて有用である。
【0026】通信は受動的または能動的のいずれかであ
る。能動的通信はプロセスにより始まり、受動的通信は
プロセスの環境により始まる。この差別は入力と出力間
の差別とは無関係であり、したがって、受動入力、能動
入力、受動出力および能動出力を有することが可能であ
る。CP-1コマンドにおいては、受動的(能動的)通信は
受動的(能動的)通信コマンドと提携する。プロセスは
能動的通信専用として、あるいは受動的通信専用として
1つのチャネルを使用する。したがって、能動チャネル
および受動チャネルに関しても言及することにする。
【0027】能動的および受動的通信コマンドの合成(c
omposition) は正確な実現に対し制限がある。すなわ
ち、受動入力の後に能動入力が配置される順次的構成を
実現する場合には、双方の通信の厳密な逐次的オーダー
を保証することは困難である。これらの制限を形式化す
るため、受動的(能動的)通信コマンドの他の(構造
化)コマンドに対する概念を一般化するようにしてお
り、図3に大部分の制限を構文的に示している。図示の
ように、コマンドに対しては、6つの構文的カテゴリ
ー、すなわち、
【外1】 (能動的通信コマンド)、
【外2】 (能動的同期コマンド)、
【外3】 (能動的コマンド)、S°comm(受動的通信コマン
ド)、S°sync(受動的同期コマンド)、およびS°
(受動的コマンド)を導入する。この場合、受動的コマ
ンドはS°のように丸印を右肩に付して表示し、能動的
コマンドは〔外3〕のように黒丸(弾丸)印を右肩に付
して表示するようにする。
【0028】演算子“‖”,“→”,“;”および“,
”はCP−0における対応物と同じ目的を有する。ま
た、ここには2つの新しい演算子、すなわち黒丸印
“・”およびコロン“:”を使用している。これらの意
味を説明する前に、まずsync(同期)コマンドの概念を
説明する必要がある。受動的(能動的)syncコマンドは
受動的(能動的)通信コマンドにより構成される。同期
コマンドの包含される通信は対応するインターバルがオ
ーバラップするよう同期して起る。すなわち、包含され
るすべての通信が始まっており、終了したものがない時
間にはある定まった時がある。さらに、包含されるすべ
ての通信が始まり、終了したものがない時間間隔として
同期インターバル(sync interval)を定義することがで
きる。2つの同期コマンドの黒丸印合成は双方の同期イ
ンターバルがオーバラップした同期コマンドである。ま
た、受動的同期コマンドと任意の能動的コマンドのコロ
ン印による合成は、能動的コマンドの実行が同期コマン
ドの同期インターバル内に完全に包囲される受動的コマ
ンドをもたらす。
【0029】最後の、しかし重要なCP-0との差は選択コ
マンドにある。CP-0においては、コマンド間の選択は保
護表現式(guard expression) の論理値をベースにして
いるが、CP-1の場合は、2つの(受動的)コマンドの最
初の受動的通信間で選択を行うことを許容している。し
たがって、S=S0 °‖S1 °においては、S0とS1間の
選択は、これらの最初の通信が異なる場合は、S0とS1
最初の通信行動を選択することで、Sの環境により決定
される。S0とS1の同時合成はcond(S0, S1) を満足しな
ければならない(図3参照)。また、CP-0に関してなさ
れる拡張および記号略号への注意事項はCP-1に対しても
同じように適用される。
【0030】〔4〕抽象回路 抽象回路は一定の組成ルールを満足しながら、チャネル
により相互に接続した基本構成素子のネットワークであ
る。
【0031】抽象回路は2つの面の見方をすることがで
きる。一方では、抽象回路はネットワークである。この
見方は特に、具体回路合成を考えるとき有用である。他
方では、抽象回路は、基本的CP-0プログラムから合成さ
れたCP-1プログラムに直接対応する。この見方は、特
に、抽象回路合成を考えるとき有用である。プログラム
構成がどのようにネットワーク構成に関係するするかに
ついては、以下第1サブセクションにおいて論ずること
にする。
【0032】〔4.1 〕構成素子および構成 CP-1プログラムS゜を考えることにする。S゜がS0°,
S1°, ----,S°m-1 の形状を有する場合は、S0°, S
1°,---- , S m-1 は S゜の実構成素子(actual compone
nt)と呼ばれる。また、 Si と Sj の双方にチャネルc
が起った場合、構成素子 Si とSj はチャネルcにより
接続されていると呼ばれる。(この場合、cは2つ以上
の構成素子内に生ずることはできない。)2つの接続さ
れた構成素子のうち、1つの構成素子はcの能動的発生
のみを有し(この構成素子はチャネルの能動サイドと呼
ばれる)、他の構成素子はcの変動的発生のみを有する
(この構成素子はチャネルの受動サイドと呼ばれる)。
【0033】実際には、同一構造をもった異なる実構成
素子を同一形式素子(formal component) の例(instanc
e)とみなすことを可能にするリネイミング手順(renami
ng procedure) を導入する。形式構成素子fは孤立した
CP-1プログラム Sf °により表わされる。 Sf °内に発
生する外部チャネルはfのポートと呼ばれる。また、ポ
ートのアクティビティ,ディレクション等に関してはチ
ャネルの相似性をベースにして説明することができる。
(ユニークな例の名前を有する)実構成素子は以下のよ
うに Sf °をリネーミング(renaming)することにより得
られる。
【0034】変数名(variable names) 等を各々の例に
対して厳密に局部的なものとなるよう例の名(instance
name) で名前づけポート ネーム(実)チャネルのネー
ムで代替させる(ポートが対応するチャネルに接続され
ていると呼ばれる)。
【0035】複数の構成素子により組成されるCP-1プロ
グラムは次のようにしてネットワークに対応する。すな
わち、CP-1プログラム構成素子はネットワーク構成素子
に対応し、CP-1チャネル接続プログラム構成素子はネッ
トワーク構成素子の抽象チャネル接続ポートに対応す
る。
【0036】抽象回路は制限された形のCP-1プログラ
ム、すなわち、いわゆる基本構成素子(ベーシック コ
ンポーネント)の例の合成に対応する。抽象回路につき
論ずるに際しては、抽象回路のプログラム面とネットワ
ーク面との間に差別をつくることなく、一般のセンスで
“構成素子”および“チャネル”につき説明する。
【0037】〔4.2 〕基本構成素子(Basic Component) 基本構成素子(basic component)bはCP-0コマンド Sb
を有する基本的構成素子(elementary component)であ
る。基本構成素子は内部チャネルを有せず、すなわち S
b °は次式を満足する。
【外4】 基本構成素子のCP-1コマンドに対しては、チャネルおよ
び変数のデータ形式を制限して、正(positive)のビット
数のある論理ベクトルのみを考えることにする。ビット
数は対応するチャネルおよび変数の幅(width)と考えら
れる。また、任意の他のデータ形式は、ある固定長の論
理ベクトルにマップすることができるものと仮定する。
若干数の基本構成素子は次のうち1つまたはそれ以上の
方法でパラメータ化される。 構造物パラメータライゼーション:等価ポートのクラス
におけるポート数がパラメータである。 データ パラメータライゼーション:変数とポートの群
の幅がパラメータである。
【0038】可逆性(reversibility) :ポートのアクテ
ィビティがパラメータである。すなわち、いわゆる可逆
的構成素子はすべてそのアクティビティを逆にすること
ができる。
【0039】CP-0プログラムの抽象回路への翻訳にあた
っては、次のような組の基本構成素子を使用することで
充分である。var(n,k)=(i?v゜‖(o0!v゜)* ,---,
(ok-1 !v゜) * ) * 書込み用入力ポートiおよび
同時読出し用のk個の出力ポート o0,--- ,ok-1 を有
するnビット変数(variable) 構成素子、const(n,c)=
(o!c゜) * その唯一のポートo上にnビットの一定値
cを出力する一定(cons-tant) 構成素子.pass(n) =
(i?v゜・o!v゜)* 能動出所と能動行先を接続する
ための受動入力iおよび受動出力oを有するnビット
パッシベータ(passi- vator)、ノン・バリュー(non-val
ue) チャネルに対しては、パッシベータ コマンドは
(P0°・P1°) *
【外5】 ポートp上のインターバルの制御により、ポートi上に
メッセージを能動的に入力し、ポートo上にメッセージ
を能動的に出力するnビット トランスファラ(transf
errer). mux(n,k)=((i0?v゜‖‥‖ik-1?v゜) : o!v°)
* k個の受動入力ポートi0, --,ik-1 の1つに受信さ
れるメッセージをポートo上に能動的に出力するnビッ
ト マルチプレクサ (multiplexer) dmux(n,k) =((oo !v゜‖‥‖ok-1!v゜) :i?v°
)* k個の受動出力ポート o0,--, ok-1 の1つにリ
クエストされるメッセージを能動的に入力するnビット
ディマルチプレクサ(demultiplexer) .
【外6】 ポートp上のインターバルの制御によりk個のポート a
o ,---, ak-1 を順次的に活性化させるシーケンサ(seq
uencer). conc(k) =( p゜:(a0°,---, a°k-1))* ポート
p上のインターバルの制御によりk個のポート a0,--,
k-1 を同時に活性化させるコンカーサ(concursor). mix(k)=(( po °‖‥‖ p°k-1 ) :a °) * k個の
各受動ポート po ,---, pk-1 上のインターバルの交互
的制御によりポートaを活性化させるミキサ(mixer).
【外7】 ポートp上のインターバルの制御により、ポートi上に
能動的に入力される論理値bが真理である限り、ポート
aを繰返し活性化させるイタレータ(iterator).
【外8】 ポートp上のインターバルの制御により、ポートaをき
わめて頻繁に活性化させるレピータ(repeater).
【外9】 入力ポートiからのnビット値に応じてk個の能動ポー
トa0,---, ak-1 の1つを選択するセレクタ(sele-cto
r).
【外10】 ポートiからの入力値への単項演算〜の結果をポートa
に出力する可逆的単項演算子(reversible unary ope-
rator).
【外11】 ポートi0, i1からの入力値への2項演算□の結果をポー
トoに出力する可逆的2項演算子(reversible binary o
perator).
【外12】 その唯一のポートp上のインターバルに関与する以外は
なにごともしないスキッパ(skipper).
【外13】 その唯一のポートp上のインターバルを終わらせること
さえしないように、なにごともしないストッパ(stoppe
r).
【0040】
【表1】
【0041】表1には単項演算子の例として、inv, in
c, dec を与え、2項演算子の例として、and, or, eq,
add, mul, shift を与えている。実際には、組の基本
構成素子を次の追加構成素子(表1参照)により拡張す
ることが有用である。最適化のための特別な(安価の)
実現(オリジナルセットからの基本構成素子の組合せの
取換え):fork, sync. CP-0の拡張用として有用な構成素子:rom, ram, merg,
split, arbit,および付加的算術構成素子(すなわち、
一般のn項演算子における他の構成素子).
【0042】また、抽象回路を描写する場合は次の協約
が使用される。基本構成素子は表1の一番右の列に与え
られる記号でラベルされた大円で描く。基本構成素子の
ポートは基本構成素子の大円の境界上の小円として描
く。能動ポートは黒丸
【外14】 を有し、受動ポートは白丸(°) を有する。チャネルは
ポート間のラインとして描く、通信チャネルは出力から
入力に向かう方向を与え、同期チャネルは方向性を与え
ない。
【0043】〔4.3 〕抽象回路用の構成ルール 抽象回路は2つの構成ルールを満足しなければならな
い。すなわち、抽象回路は非循環的であり、争いのない
もの(コンフリクト フリー)でなければならない。こ
の非循環性およびコンフリクト フリー性は抽象回路の
構造的特性で、遅延不感に対して充分なCP-1プログラム
の構文的特性から描き出される。さらに、それらは抽象
回路の初期設定の可能性(initializability) に関する
重要な前提である。
【0044】非循環性は抽象回路のアクティビティ グ
ラフによりきわめて容易に表わされる。前記アクティビ
ティ グラフは以下のようにきめられる指向グラフ(di
rected graph) である。
【0045】各基本構成素子はアクティビティ グラフ
の頂点に対応する。2つの基本構成素子間の各チャネル
はチャネルの能動的側面に対応する頂点からチャネルの
受動的側面に対応する頂点に向かう弧(arc)に対応す
る。
【0046】抽象回路のアクティビティ グラフは非循
環的、すなわち、指向サイクルを含まないものでなけれ
ばならない(ここで、サイクルは標準グラフ理論により
決められる)。
【0047】一般に、コンフリクト フリー性は、基本
構成素子bのコマンド Sb °がある受動インターバルの
配列(すなわち、2つのインターバルがオーバラップし
ない)を意味する場合には、(能動的)環境がこの配列
(オーダリング)を尊重しなければならないという概念
を表わす。特に、抽象回路のコンフリクト フリー性は
通常のコンフリクト フリー性に対して充分な構造的特
性である。
【0048】〔4.4 〕抽象回路の遅延不感性 抽象回路は遅延不感性である。遅延不感性は、抽象回路
の正確な作動がチャネルもしくは基本構成素子の相対的
遅延に従属しないことを意味する。
【0049】一般に、遅延不感性はCP-1プログラムに対
する特性として定義される。抽象回路に対応するCP-1プ
ログラムはこの特性を満足する。CP-1プログラムS゜の
遅延不感性の定義のため、次のようなS゜の変換を考慮
する。S゜における各ノン・バリュー チャネルcに対
して、2つの新しいチャネルc0, c1を導入し、 S゜にお
けるすべての
【外15】 の発生を
【外16】 で代替し、すべてのc゜の発生をc1°で代替し、コマン
【外17】 を並列に構成する。cが外部受動(能動)チャネルの場
合は、c0(c1)をcに等しくとる。
【0050】S゜における能動出力を有する各バリュー
チャネルcに対して新しいチャネルc0, c1を導入し、
S゜におけるすべての
【外18】 の発生を
【外19】 で代替し、すべてのc?゜の発生をc1? ゜で代替し、コマ
ンド
【外20】 を並列に構成する。cが外部受動(能動)チャネルの場
合は、c0(c1)をcに等しくとる。
【0051】S゜における能動入力を有する各バリュー
チャネルcに対して新しいチャネルc0, c1を導入し、
S゜におけるすべての
【外21】 の発生を
【外22】 で代替し、すべてのc!゜の発生をc1! ゜で代替し、コマ
ンド
【外23】 を並列に構成する。cが外部受動(能動)チャネルの場
合は、c0(c1)をcに等しくとる。
【0052】上記の変換により等価のCP-1プログラムが
生ずる場合(それらの外部チャネルにおける動作が見分
けられないとき2つのCP-1プログラムは等価であると呼
ぶことにする。)、CP-1プログラムS゜は遅延不感性で
ある。
【0053】〔4.5 〕初期設定(Initialization) 基本構成素子または抽象回路のCP-1コマンドの意味は、
有限状態マシンなる語で表現することができる。この有
限状態マシンを実現する具体回路は順次的電子回路であ
る。電源投入後、このような回路は、有限状態マシンに
おいて同じものがないような任意の状態となり得る。し
たがって、初期設定用手段、すなわち、回路をその初期
状態に設定する手段が必要不可欠であり、通常、これは
回路内に分布させた付加回路を使用して、いわゆるリセ
ットを与えることにより達成している。
【0054】抽象回路に対しては、以下のような有効か
つ効率的初期設定にこのような付加的リセット回路を必
要としないが、この手順は基本構成素子による具体回路
の実現に際し付加的制約をもたらす。ここで、初期設定
手順の説明の前にいくつかの観察を行うことにする。
【0055】(1) 基本構成素子のコマンド内に生ずるす
べての変数の値から概念を抽象することができる。コマ
ンドの意味は変数の初期値によるものではない。 (2) 抽象回路がいったんその初期状態になると、環境が
その受動外部ポートの1つにおいてインターバルを始め
るまで、回路はその状態にとどまる。これは抽象回路が
受動的であるという事実の直接的結果である。 (3) ポートの初期状態をすべての開始されたインターバ
ルも終った状態とする。その場合は、各基本構成素子
は、そのすべてのポートがそれらの初期状態にあるとき
その初期状態にあるという特性を有する。これは形式主
義ではなく、組の基本構成素子の選択の結果である。 (4) 抽象回路のすべての外部ポートがそれらの初期状態
にあるとき、回路がその初期状態にあるとは断定されな
いかも知れない。
【0056】第3の観察が初期設定手順への鍵である。
問題は、抽象回路の内部ポートへの直接制御ができない
ことである。また、外部ポートの状態に関する制御さえ
も制限され、外部ポートの電気的入力のみが制御可能で
ある。
【0057】ポートの状態を対(i, o) (ただし、iは
電気的入力、oは電気的出力とする)で表わすものとし
た場合は、iおよびoが変化する組の値はポートの方向
および幅に従属するほか、メッセージの値の具体的表示
にも従属する。組の値の双方は、(0,0)がポートの
初期状態に対応するような1つの特別を値‘0’を有す
る。
【0058】受動ポートおよび能動ポートの双方を有す
る基本構成素子による具体回路の実現は、(1) すべての
受動ポートの電気的入力に安定値0が与えられて後、既
知の有限の時間内にすべての能動ポートの電気的出力が
安定値0を得、(2) 次に、すべての能動ポートの電気的
入力に安定値0が与えられる後、既知の有限時間内にす
べての受動ポートが安定値0を得、かくして、すべての
ポートが状態(0,0)を有するようになった場合に初
期設定の制約を満足する。
【0059】受動ポートのみを有する基本構成素子によ
る具体回路の実現は、すべてのポートの電気的入力に安
定値が与えられた後、既知の有限時間内に、すべてのポ
ートの電気的出力が安定値0を得た場合に、初期設定の
制約を満足する。
【0060】すべての基本構成素子がこの初期設定の制
約を満足するときは、すべての外部ポートの電気的入力
の値に安定値0を与えることにより、抽象回路を初期設
定することができる。予言可能な有限時間内にすべての
外部ポートの電気的出力は安定値0となり、すべての内
部ポートもそれらの初期状態となる。かくして、抽象回
路はその初期状態となる。
【0061】抽象回路の非循環性ならびに抽象回路と基
本構成素子のコマンドが受動的であるという事実はこの
初期設定手順の有効性を証明するのに重大な役割を演ず
る。
【0062】〔5〕抽象回路合成 抽象回路合成は(木構造で表示された)CP-0プログラム
の(効率的かつ)等価な抽象回路への変換である。CP-0
プログラムと抽象回路は、それらの関連の外部チャネル
における行為がアトミックイベントと(タイム)インタ
ーバル間の差別から見分けがつかないとき等価である。
この変換は次のような3つの連続する副変換より成る。 (1) CP-0プログラムの“等価な”CP-1プログラムへの翻
訳(translation) (2) CP-1プログラムの“等価な”抽象回路(すなわち、
基本構成素子から構成されたCP-1プログラム)の分解
(decomposition) (3) 抽象回路の“等価な”、しかし“安価な”抽象回路
への最適化(optimization) これらの3つのステップならびに表示“等価(equivalen
t)”および“安価(cheaper)”に関しては3つのサブセ
クションで論ずることにする。
【0063】〔5.1 〕翻訳 CP-0コマンドSからの等価なCP-1コマンドは次の3つの
ステップを含む。 (1) CP-0コマンドSはこのサブ・コマンドをアクティブ
コマンドを(そのすべてのアトミック コマンドを含
んで)能動コマンドに反復的に変換することにより能動
コマンドに変換する。これは、CP-0におけるSの構文お
よびCP-1における〔外3〕の構文が同形であるため直進
的である。結果として得られるコマンドは、それが能動
的であり、また通常、同時に起る
【外24】 に対して条件
【外25】 に従わないので、まだCP-1コマンドではない(図3参
照) (2) 〔外3〕はその前に s0 °を置くことにより受動コ
マンドに変換する:(s0 は〔外3〕の初期チャネルと
呼ばれる。すなわち、環境はノン・バリュコーチャネル
s0 上の能動通信により〔外3〕を開始する) (3) 内部チャネル上のアクティビティ間の争い(コンフ
リクト)は次のようにして解決される。 (a) 〔外3〕内の各内部チャネルに対して2つの新しい
チャネル、すなわち、c0およびc1を導入する。 (b) 各能動出力コマンド
【外26】 で代替し、各能動入力コマンド
【外27】 で代替する
【外28】 として短縮することができる) 。 (c) 各チャネル対(c0, c1) に対してコマンド(c0?v゜
・c1!v゜) * (基本構成素子 pass) を導入し、s0
゜:〔外3〕と並列に構成する。どの値もパスしない場
合、パッシベータ(passivator)は対称となる(c0゜・c1
゜)
【0064】結果として得られるコマンドは全く妥当な
CP-1コマンドで、形状(s0:〔外3〕 ),PASSを有す
る。ただしPASSは導入された組のタイプpassの基本構成
素子である。
【0065】〔5.2 〕分 解 CP-1コマンド(CP-0からCP-1への翻訳結果としての形状
を有する)の基本構成素子のネットワークへの分解は4
つの連結する分解ステップ、すなわち、変数の分離、チ
ャネルの分解、コマンドの分解および表現式の分解を含
む。
【0066】〔5.2.1 〕変数の分離 変数の分離は次のステップにより実現される。 (1)
【外29】 (ただし、E(x)は変数xが参照(reference)される式)
の〔外3〕における各割当に対して、補助変数および割
当を導入する。
【外30】 で代替する。ここで、x0は、(変数xにおける同時読出
しおよび書込み行動を防止するための)新しい補助変数
である。 (2)形状g→S0‖¬g→S1(これに対して、var?(g) ∩
(var!S0 var!S1) ≠φ) の〔外3〕における各チョイ
ス コマンドに対して、補助変数および割当を導入す
る。g→S0‖¬g→S1をg0:=g;(g0 →S0‖¬g0→S1)
で代替する。ここで、g0は変数var?(g) における同時読
出しおよび書込み行動を防止するため)新しい補助論理
変数である。 (3)〔外3〕における各変数x(補助変数を含む)に対
してタイプvar の基本構成素子xを書込ポート x.iおよ
び読取ポート x.oとともに導入する。 (4)各割当
【外31】 で代替 (5)各入力コマンド
【外32】 で代替 (6)チャネルc上の(ブール演算)式E、すなわち、
【外33】 (ここで、{x0,x1,--, x n-1 }はE内で参照される組
の変数である)を次のいわゆる能動表現コマンド(activ
e-expression command) ,すなわち、
【外34】 結果として得られるコマンドは妥当なCP-1コマンドで、
形状 (s0:〔外3〕),PASS, VAR を有する。ここで、V
AR は導入された組のタイプvar の基本構成素子であ
る。
【0067】〔5.2.2 〕チャネルの分解 (s0:〔外3〕) ,PASS, VAR における各内部チャネルは
2回または2回以上参照される。すなわち、PASS VAR
におけるpassまたはvar 構成素子において受動的に1
回、〔外3〕において能動的に1回またはそれ以上参照
される。チャネル分解の目的は、各内部チャネルが正確
に能動的に1回、受動的に1回参照されるようS を変換
することである。1回以上(すなわちK回)能動的に参
照された各内部チャネルcに対しては、2つのステップ
が適用される。第1に、チャネルcに対するK個の能動
的参照はそれらをc1--cKとリネーミングすることによ
り、独特(ユニーク)なものとし、(ユニーク)な受動
的参照はc0とリネーミングする。第2に、 (1) cがノンプット(nonput) チャネルの場合には、タ
イプmix の基本構成素子をc0に接続したその能動ポート
およびc1--cKに接続したそのK個の受動入力ポートとと
もに導入する。 (2) cに対する能動的参照が出力の場合には、タイプmu
x の基本構成素子をc0に接続したその能動出力ポートお
よびc1--cKに接続したそのK個の受動出力ポートととも
に導入する。 (3) cに対する能動的参照が入力で、対応する受動的参
照がvar 構成素子の部分でない場合には、タイプdmuxの
基本構成素子をc0に接続したその能動入力ポートおよび
c1--cKに接続したK個の受動出力ポートとともに導入す
る。 (4) cに対する能動的参照が入力で、対応する受動的参
照がvar 構成素子の部分である場合には、そのvar 構成
素子の(受動的)読取ポートの数をKに拡張し、これら
のポートをc1--cKに接続する。
【0068】結果として得られるコマンドは妥当なCP-1
コマンドであり、形状(s0:〔外3〕), PASS, VAR, M
IX, MUX, DMUX を有する。ここで、MIX, MUXおよび DM
UXは導入されたタイプmix, muxおよびdmuxの組の基本構
成素子を示し、上記コマンドにおける各内部チャネルは
正確に1回受動的に、また1回能動的に参照される。
【0069】〔5.2.3 〕コマンドの分解 コマンド分解は形状 c゜: 〔外3〕のコマンドの基本構
成素子および受動表現式コマンド(下記参照)への分解
を取扱うものである。まず、最初に、(c゜: 〔外3〕)
* が c゜: 〔外3〕に対する妥当な実現であることを観
察する( c゜の完了から観察可能な〔外3〕の完了後、
環境は〔外3〕を再スタートさせることさえできる)。
(c゜: 〔外3〕) * の分解は、9つの可能な能動コマン
ド〔外3〕の形状に対して別個に取扱われる(割当コマ
ンドは変数分離中除去される)。また、c0およびc1を2
つの新しいノンプット(nonput)チャネルとする。
【外35】
【0070】結果として得られるコマンドは妥当なCP-1
コマンドで、形状、EXP, PASS, VAR, MIX, MUX, DMUX,
SKIP, STOP, TRANS, SEQ, CONC, SEL, ITER,RER を有す
る。ここで、EXP はさらに分解されるべき組の受動表現
式コマンドを示し、また、SKIP, STOP, TRANS, SEQ, CO
NC, SEL, ITER およびRER は、それぞれ、タイプskip,
stop, trans, seq, conc, sel, iter およびrep の導入
される組の基本構成素子である。
【0071】〔5.2.4 〕表現式の分解 最後の分解ステップは形状
【外36】 の受動表現式コマンドの分解である。分解は受動表現式
コマンドの4つの可能な形状に対して別個に扱われる。
また、c0およびc1を2つの新しいチャネルとする。
【外37】
【0072】結果として得られるコマンドは妥当なCP-1
コマンドで、特に、形状PASS, VAR, MIX, MUX, DMUX ,
SKIP, STOP, TRANS, SEQ, CONC, SEL, ITER,REP,CONST,
UNA, BINの抽象回路である。ここで、CONST, UNAおよ
び BIN は、それぞれタイプconst,単項演算子および2
項演算子の導入される組の基本構成素子を示す。
【0073】かくして、(CP-0からCP-1への翻訳の結果
としての形状を有する)CP-1コマンドの抽象回路への分
解が終了する。
【0074】〔5.3 〕抽象回路最適化 抽象回路の最適化は抽象回路をある価格基準にしたがっ
て等価でより“廉価な”抽象回路に変換することであ
る。この変換は基本的(抽象回路)変換のシーケンスの
形状を有する。
【0075】〔5.3.1 〕抽象回路の価格 抽象回路に関しては種々の価格基準、すなわち、構成素
子の数またはチャネル数等が考えられるが、実際上は、
例えば回路のサイズ、回路スピードおよび消費電力のよ
うな対応する具体回路の価格の方がより関心事である。
関連の価格基準は所定の抽象回路に対する真の価格価値
に戻る所定の価格機能に反映されるものとする。所定の
抽象回路変換が最適かどうかを決定することがこの価格
機能である。簡単かつ有用を価格機能の一例として、関
連の具体回路(すなわち、CMOS回路)のトランジスタ
カウントに戻る機能がある。
【0076】〔5.3.2 〕基本的変換 (抽象回路)変換は他の回路による補助回路の置換えと
して系統的に表示することができる。この場合、取除か
れる補助回路と介挿される回路が等価であるような変換
のみを考えるものとする。等価な回路の各対のうち1つ
は、通常、手元の価格基準にしたがってより廉価であ
る。1つの基本的変換は他の基本的変換によって形式化
することはできない。
【0077】組の基本的変換は使用うしる基本構成素子
に従属する。以下に与える組の有用な変換は発見的に生
成されたものであるが、基本的テーマは、高価な基本構
成素子を時分割共用とするか、共用構成素子まわりのチ
ャネル構成を簡単にするかという主旨での基本構成素子
の共用に関するものである。
【0078】基本構成素子の共用を目指す基本的変換の
有用性は、本発明による構文指向分解方法から発する。
それはCP-1サブコマンドが独立して分解されることによ
る。また、独立して分解されるプログラム部分の境界は
基本的変換を暗示する非能率さを示す。
【0079】図4aないし図4c,図5aないし図5cおよび図
6a,図6bは基本的変換の実施例を与えるものである。す
なわち図4aないし図4cは受動表現式コマンドを共用する
例を示し、図5aないし図5cはトランスファーラを共用す
る例を示し、また、図6a,図6bは制御構造を共用する例
を示す。図6aにおいて、基本構成素子は、シーケンサ,
コンカーサまたはシンクロナイザとすることができる。
これらの各図は対の等価回路を示す。左側の回路または
右側の回路のどちらが安いかは手元の価格基準による
が、最も現実的な価格基準に対しては右側の回路の方が
廉価である。
【0080】〔5.3.3 〕変換シーケンス 抽象回路最適化は、最終の回路が最初の回路より安いよ
うな基本的変換のシーケンスとして実行される。所定の
抽象回路に対しては多くのこのようなシーケンスが存在
するが、最適の抽象回路をもたらすシーケンスを見出す
ことは通常きわめて難しい問題で、これには、次のよう
な2つの理由がある。 − 通常1つ以上の基本的変換を与えることができ、1
つの変換の選択は他を使用不能とし、次に、さもなけれ
ば現われることのない新しい変換が与えられる。 − より廉価な最終結果に到達させるのに、しばしば価
格が高くなるような変換を必要とする。一般に価格は変
換シーケンスに沿って単調に減少するものではない。
【0081】最適化変換シーケンスを計算するための簡
単かつ有効な(しかし最適でない)戦略は、次のような
いわゆるグリーディなアクゴリズム(greedy algorith
m )、すなわち、これ以上のコスト改善変換を与えるこ
とができなくなるまで、ランダムに選択したコスト改善
基本的変換を旨く実施することである。
【0082】〔6〕具体回路合成 具体回路合成は抽象回路の等価な具体回路への変換であ
る。抽象回路と具体回路は、インターバルおよびいわゆ
る初期手順シーケンス(handshakesequences)間の差別は
さておき、関連の外部チャネルにおけるそれらの行動が
区別できないとき等価である。電気的ハンドシェーク
シーケンスは、CP-0イベントの精製 (refinement) とし
てのCP-1インターバルの導入と同じように、CP-1インタ
ーバルの精製として導入される。
【0083】抽象回路の具体回路への変換に関しては、
所望の具体回路の形式(タイミング機構,技術等に関す
る)に応じて、いくつかのオプションが存在する。変換
は次の2つの連続する補助変換よりなる。 (1) 抽象回路の“等価な”具体回路への翻訳 (transla
tion). (2) 具体回路の“等価な”しかも“より廉価”な具体回
路への最適化(optimization).
【0084】以下、上記のステップならびに“等価”お
よび“より廉価”の概念につき論ずることにするが、一
方では、任意の具体回路形式の任意選択に対する一般的
局面を、他方では、抽象回路の具体回路への例示的変
換、すなわち、遅延不感(delay-insentive)具体回路へ
の変換に対する特殊な局面を説明する。まず、遅延不感
回路からスタートすることにする。
【0085】〔6.1 〕遅延不感回路 遅延不感回路は個々のゲートおよびワイヤ(線)の遅延
の任意の組合せに対して作動する回路である。
【0086】遅延不感回路においては、すべての通信は
ワイヤ上の電圧転移により実現される。遅延と無関係な
シーケンス関係の保持は関連の転移グループ間の因果関
係を設定することにより得られる。一般に、同期および
通信には相互接続されたワイヤおよびゲートの閉ループ
に沿ってのシグナリングを必要とする。
【0087】例示的具体回路合成の場合は次のような複
数の理由のため遅延回路を使用する。 − 電圧転移による通信およびクロックの欠如は抽象回
路におけるインターバル通信に概念的に近似している。 − 遅延不感回路へのコンパイルは具体回路レベルにま
で分離された機能的および物理的正確さを保持し、例え
ば、グリッチ(glitches) およびクロック スキュー(c
lock skew)のような標準的な同期の問題が回避される。
また、遅延不感回路はプロセス パラメータおよび作動
条件に関して強固なものと思われる。 − 不要な遅延により回路の正しい作動が影響を受けな
いことのため、より容易にレイアウト合成を行うことが
できる。 − 遅延不感回路は、同期回路の速度が最悪の場合の行
動をベースにしているのに対し、平均的な場合の行動を
ベースにしているため、回路の速度が速くなりがちであ
る。また、関連の電圧転移のみしか起り得ないため、電
力消費も少ない。
【0088】トランジスタ レベルまたはゲート レベ
ル上での完全な遅延不感は設定できない。これらのレベ
ルでは、いくつかの、ただしきわめて少ない遅延に関す
る局部的仮定が不可欠である。これらの仮定は、若干の
遅延は他に対して無視できるような(いくつかの相互接
続ゲートを含む)等時性領域(isochronic regions)の
概念によりカバーされる。等時性領域を含む遅延不感回
路は次のエレメントから組成される。 − 任意の有限の遅延を有するワイヤ − すべての関連出力の遅延間の差を無視しうるような
いわゆる等時性フォーク(isochronic forks) − 関連入力に関して対称な有限の遅延を有する簡単な
論理ゲート
【0089】他の形式のゲートから組成した回路を上記
の対称特性をもったゲートを有する回路に容易に変換す
ることができる。
【0090】遅延不感回路を作成する場合は、都合のよ
い任意のゲートが使用されるが、遅延不感回路において
きわめて頻繁に出てくるミュラーCエレメント(Muller
C-element)と呼ばれる特殊なエレメントを使用する。
(C.L.Seitz, System Timing, Chapter7 in:C.A.Mead,
L.A.Conway, Introduction to VLSI Systems, Addison
Wesley, London AmsterdamParis, 1980.を参照) Cエレ
メントは1つの出力を有し、任意の数の入力を有するこ
とができる。その出力は、すべての入力が現在の出力値
の反対の値を有する場合のみ変化し、そうでない場合出
力は不変である。Cエレメントは“C”を円で包囲した
形で描写する。より多くの出力を描写した場合、これら
に同じ信号を表わす。
【0091】〔6.2 〕翻 訳 あらゆる具体回路形式オプションに対して抽象回路の具
体回路への翻訳は次のような方法で直進的(straightfo
rward)である。 (1) 抽象回路の各チャネルを具体回路内の物理的相互接
続、すなわち、ワイヤ(配線)の束に翻訳する。ワイヤ
の数はチャネルに沿って値(バリュー)が通信されるか
どうかに従属し、もしそうであれば値の幅に従属する。 (2) 抽象回路のパラメタライズされない各基本構成素子
を具体回路の固定補助回路に翻訳する。 (3) 抽象回路のパラメタライズされた各基本構成素子を
正規の方法で複数の固定回路部分により組成した補助回
路に翻訳する。 以下順次上記各項につき説明する。
【0092】〔6.2.1 〕チャネル あらゆる回路形式オプションに対して、どのようにして
電気信号で通信インターバルを実現するかを決める必要
がある。刻時された回路に対しては、信号はクロック
“チック(tick) ”の時間におけるワイヤ上の電圧レベ
ルにより表わされ、遅延不感回路に対しては、信号はワ
イヤ上の電圧転移により表わされる。インターバルと信
号間の関係は次の各項を特定するプロトコルにより与え
られる。 (1) (どの値が通信されるかに応じ、またその値の幅に
応じて)1つのチャネルでの通信にどれだけのワイヤが
使用されるか、インターバルはチャネルの能動サイドに
より始まり、チャネルの受動サイドにより終るので、そ
れぞれ、各関連サイドから他のサイドにシグナリングす
る2つのワイヤ グループが必要である。 (2) どのようにして同期が得られるか、すなわち双方の
ワイヤ グループ上の信号がどのようにして刻時される
か、 (3) どのようにして各値が信号によりエンコードされる
か、
【0093】プロトコルは各インターバルに対して信号
のシーケンスを限定する。このようなシーケンスはハン
ドシェーク シーケンス(handshake sequence)と呼ばれ
る。
【0094】遅延不感回路に対しては、いくつかのプロ
トコルが可能である。本発明による具体回路合成の実施
例の場合は、次のようなプロトコルを使用している。 (1) ノンプット(nonput) チャネルは、それぞれチャネ
ルの各関連サイドから他のサイドに至る2つのワイヤに
対応する。幅nの入出力チャネルは出力から入力への2n
のワイヤの束プラス入力から出力への単一ワイヤに翻訳
する。 (2) 同期はいわゆる4フェーズ シグナリングにより実
現される。第1のフェーズでは、能動サイドがその電気
的出力ワイヤ上で電圧転移を開始し、第2のフェーズで
は変動サイドがその電気的出力上に転移を生じさせ、第
3のフェーズでは、能動サイドがその転移を逆転させ
(したがって、その電気的出力ワイヤ上には再び初期状
態が設定される)。また第4のフェーズでは、受動サイ
ドがその転移を逆転させる。第1のフェーズはCP-1イン
ターバルの始めに対応し、第4のフェーズはCP-1インタ
ーバルの終りに対応する。 (3) バリュー エンコーディングに対しては、いわゆる
複線コード(double-rail code) を使用する。各データ
ビットは対のワイヤに対応する。1つのワイヤ上の転移
は値“0”を示し、他のワイヤ上の転移は値“1”を示
す。
【0095】〔6.2.2 〕基本構成素子 基本構成素子のCP-1コマンドにつき考えることにする。
このコマンドからは、イベント(すなわち、通信インタ
ーバルの始めと終りに対応するイベント)の(部分的)
命令またはオーダーが生じ、この(部分的)オーダーか
らハンドシェーク信号の(部分的)オーダーを抽出する
ことができる。それは、回路形式オプション用のプロト
コルが直接インターバルおよびハンドシェーク シーケ
ンスに関係していることによる。かくして、各基本構成
素子に対して、その行動をハンドシェーク信号により記
述したいわゆるハンドシェーク展開(handshake expansi
on) を抽出することができる。このハンドシェーク展開
は、基本構成素子の具体回路に対する仕様として機能
し、基本構成素子の翻訳はこの仕様を実現する補助回路
を与える。
【0096】遅延不感具体回路合成の実施例の場合、具
体回路はハンドシェーク展開によりポート ワイヤ上の
電圧転移の見地から規定するようにし、遅延不感補助回
路により前記回路を実現している。この場合、補助回路
間通信用の遅延不感プロトコルは具体回路のすべてを遅
延不感とすることを保証する。
【0097】パラメタライズされない基本構成素子は固
定補助回路に翻訳する。rep 構成素子用の遅延不感具体
補助回路のきわめて簡単な例を図7に示す。パラメタラ
イズされた基本構成素子はパラメータの実際の値に従属
する補助回路に翻訳する。各基本構成素子に対しては、
所定のパラメータ値に対する補助回路を少数の固定回路
部分から構成するための簡単な図式(スキーム)があ
る。例として、図8はどのようにしてseq(k)構成素子用
補助回路をk-1 の同一回路部分から構成するかを示すも
のである。
【0098】〔6.3 〕最適化 抽象回路の翻訳は基本構成素子に対応する具体的構成素
子の組成物である具体回路を与える。最適化は、回路を
等価でしかもより“廉価な”回路に変換することであ
る。その結果として得られる具体回路においては、一般
に副回路および相互接続を基本構成およびチャネルのカ
ウンタパート(片割れ)として直接見分けることはもは
や不可能である。
【0099】小さい補助回路を等価な補助回路で代替さ
せることを旨とする複数の基本的回路変換につき考えた
場合、最適化はある価格基準にしたがってより低価格の
回路を与えるこのような変換のシーケンスである。
【0100】価格基準は具体回路から実の値への任意の
作用で、通常、所定の技術、すなわちCMOSにおける回路
のサイズもしくはスピードを反映する。
【0101】組の可能な回路変換は回路形式の任意選択
に大いに依存する。例えば(グローバルな刻時回路の場
合に)特別なタイミングの仮定を使用することにより必
要とするシグナリングを減少させ(さらに効率的な回路
を作成させ)ることができる。
【0102】遅延不感具体回路合成の場合における基本
的回路変換の簡単な例としては、直接大地変位に接続し
た入力の除去,2重反転の除去、(等時性フォーク等に
関するある条件のもとにおける)ド・モルガン・ルール
の適用がある。
【0103】〔7〕実施例 以下シリコン コンパイラ方法の実施例につき説明す
る。
【0104】〔7.1 〕Buf2 コンパイラに対する実施例はBuf2と呼ばれる2プレース
パッファである。パッファは1つの入力ポートiおよ
び1つの出力ポートoを有する構成素子で、その出力に
おいて同じオーダーで入力を再生する。その出力におけ
る値の流れ(ストリーム)はいわゆる入力値のストリー
ムのプレフィックスである。2プレースバッファは、出
力事象が入力事象より多くても2つ遅れるようなバッフ
ァで、この場合、出力ストリームの長さは入力ストリー
ムの長さより多くても2つ少ない。
【0105】Buf2用のCP-0プログラムは図9に示すとお
りで、それは同じ構造、すなわち1プレース バッファ
の構造を有する2つのサブコマンドの並列合成である。
したがって、Buf2は、内部チャネルmにより接続した2
つの1プレース バッファのカスケードと考えることが
できる。これを図10に示す。
【0106】Buf2の作動は次のように理解することがで
きる。双方のサブコマンドは入力アクションとともにの
み始めることができるが、内部チャネルmからの入力
は、m上の出力と一致しなければならないので、まだ起
り得ない。したがって、本当の最初のアクションはポー
トi上の入力でなければならず、入力値は変数x内に蓄
積される。2番目のアクションはm上の内部通信のみで
あるはずで、xの値に変数yが割当てられる。次に、i
上の新しい値の入力およびo上のyの値の出力が任意の
オーダー(並列にさえも)でなされる。双方のアクショ
ンの終了後、m上の他の内部通信が行われる。
【0107】〔7.2 〕Buf2に対する抽象回路合成 Buf2に対する3つの抽象回路合成ステップは次のとおり
である。 (1) CP-0プログラム(図9)の図11により与えられる
対応するCP-1プログラムへの変換、CP-0プログラム内に
生ずる内部チャネルmに対しては、pass基本構成素子プ
ラス2つの新しいチャネルm0, m1がCP-1プログラムに導
入される。 (2) CP-1プログラム(図11)の基本構成素子への分解
を図12に示す。図12において、コマンド S゜をS0,
S1に分解する分解ステップは により表わされる。分解の結果得られる基本構成素子
は、次のように表わされる。すなわち、
【外38】 に対してconc(s0,s1, s2) .その結果として得られる抽
象回路を図13に示す。 (3) 図13からの抽象回路の最適化は図14の抽象回路
を与える。最適化は、いずれかのサイドでのpass構成素
子の2つのtrans 構成素子との組合せをsync構成素子を
介して制御される単一のtrans により代替する単一変換
よりなる(図5a参照)。
【0108】〔7.3 〕Buf2に対する具体回路合成 具体回路合成の場合は、変数およびバリュー通信チャネ
ルに対して1ビットの幅をとるものとする。この場合に
は、遅延不感具体回路合成は次のようになる。 (1) 図14からの抽象回路の翻訳により図15のような
具体的遅延不感回路が生成される。実線ボックスで包囲
した図15の各補助回路は図14の基本構成素子に対応
し、かくして補助回路のセットによりライブラリが構成
される。簡単のため、他のライブラリエレメントのリス
ト アップは省略する。1 対1ライブラリによる翻訳に
ついてはそれ自体よく知られている。 (2) 図15示具体回路の最適化は、例えば一番上の補助
回路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 補助回路
───────────────────────────────────────────────────── フロントページの続き (71)出願人 590000248 Groenewoudseweg 1, 5621 BA Eindhoven, Th e Netherlands (72)発明者 ロナルド ウィルヘルム ヨハン ヨゼフ サエーイス オランダ国 5621 ベーアー アインドー フェン フルーネバウツウェッハ 1 (72)発明者 コルネリス ニーセン オランダ国 5621 ベーアー アインドー フェン フルーネバウツウェッハ 1

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 シリコン・コンパイラのプログラムを実
    行するシリコン・コンパイラ方法において、 a) 下記の一連のサブステップ、すなわち: a1) 明白な並列構造と、明白な直列構造と、明白な通信
    構造であってタイムインターバルとして表わされ且つプ
    ログラムチャネルの能動サイド又は受動サイドでの実行
    のために能動的か受動的かのどちらかである通信行動を
    規定するところの明白な通信構造と、を含む概念を有す
    る第1の命令型並行(imperative concurrent) コンピュ
    ータ言語によりアルゴリズムを表現する原始テキストを
    受信するサブステップ,及び a2) 語句(lexical) 分析、構文(syntactic) 分析、及び
    意味(semantic)分析を行うことにより上記受信した原始
    テキストを、上記概念により規定される木構造(抽象概
    念としての)表現に変換するサブステップ,という一連
    のサブステップを持つソースアナライザのステップと; b) 上記木構造表現を、抽象チャネルにより相互接続さ
    れる基本構成素子のネットワークであるところの抽象回
    路の表現に変換するための抽象回路シンセサイザのステ
    ップであって、それらの基本構成素子の各々が1つの基
    本プログラムの実行を表わし、また各抽象チャネルがそ
    れを介して相互接続される2つの基本プログラムを正確
    に性格付ける関連のプログラムチャネルを表わすところ
    の抽象回路シンセサイザのステップと; c) 上記抽象回路表現を、タイミング機構の要求条件と
    回路形式の要求条件と技術的実現性の要求条件とにより
    制約されるような、具体回路表現に変換するステップで
    あり、また一方で、各抽象チャネルを具体回路のワイヤ
    セット(wire set)に1対1に翻訳し、且つ抽象回路の各
    基本構成素子を、少なくとも1つのワイヤセットにより
    他の電子回路にリンクさせた基本電子回路に1対1に翻
    訳するステップであるところのステップと; d) 上記具体回路表現を超大規模集積回路のレイアウト
    に変換するステップであり、また一方で、上記具体回路
    表現により特定されはしないが、インレイアウトの受動
    部分の電気的特性による権限委譲がなされる基本回路素
    子を設ける、という少なくとも1つの低レベルのタスク
    を実行するステップであるところのステップと;を含む
    ことを特徴とするシリコン・コンパイラ方法を応用して
    生成される電子回路において、 該電子回路は複数の電子回路モジュールを有して成り、
    そのモジュールの各々は、抽象回路に関連する基本構成
    素子(basic component) を1対1で表現し、この抽象回
    路に関連する基本構成素子とは、次のような相互に連結
    された基本構成素子、すなわち: a) nビットの変数を記憶するためにそれを能動原始ポ
    ートから受け取るための1個のnビット受動入力ポート
    と;記憶されている上記nビットの変数を互いに並行し
    て読み出すための、k個の能動行先ポートとそれぞれ相
    互に連結しているk個の並列の受動出力ポートと;を持
    つnビットの変数を記憶するためのnビットメモリ素子
    (n-bit memory element); b) 第1のnビット幅の能動原始ポートと相互に連結し
    ている1個のnビット幅の受動入力ポートを持ち、また
    第2のnビット幅の能動行先ポートと相互に連結してい
    る1個のnビット幅の受動出力ポートを持つnビット幅
    の相互連結回路であるところのnビットのパッシベータ
    (passivator)回路; c) 予め定められた受信間隔により制御され、nビット
    のメッセージを受け取るためにnビット幅の受動原始ポ
    ートと相互に連結している1個のnビットの能動入力ポ
    ートを持ち、またnビット幅の受動行先ポートに上記メ
    ッセージを転送するためにそれと相互に連結している1
    個のnビット幅の能動出力ポートを持つnビットのトラ
    ンスファーラ(transferrer) 回路; d) 予め定められた受信間隔により制御され、能動原始
    ポートから信号を受け取るためにそれと相互に連結して
    いる1個の受動入力ポートを持ち、更にその各々が受動
    行先ポートとそれぞれ相互に連結しているk個の能動出
    力ポートの1組を持ち、また、上記受け取った信号を出
    力するために上記k個の出力ポートの各々をそれぞれ1
    個ずつ順次能動化するように配置してあるシーケンサ(s
    equencer)回路; e) 予め定められた受信間隔により制御され、能動原始
    ポートから信号を受け取るためにそれと相互に連結して
    いる1個の受動入力ポートを持ち、更にその各々が受動
    行先ポートとそれぞれ相互に連結しているk個の能動出
    力ポートの1組を持ち、また、上記受け取った信号を出
    力するために上記k個の出力ポートのすべてを並行して
    能動化するように配置してあるコンカーサ(concursor)
    回路; f) 予め定められた受信間隔により制御され、能動原始
    ポートから信号を受け取るためにそれと相互に連結して
    いる1個の受動入力ポートを持ち、更に1個の受動行先
    ポートと相互に連結しているただ1個の能動出力ポート
    を持ち、また、上記受け取った信号を出力するために上
    記ただ1個の出力ポートを繰り返し能動化するように配
    置してあるレピータ(repeater)回路; g) 能動原始ポートからnビットの制御信号を受け取る
    ためにそれと相互に連結している1個のnビットの受動
    入力ポートを持ち、更にk≦2n とするときその各々が
    受動行先ポートとそれぞれ相互に連結しているところの
    k個の能動出力ポートを持ち、また、ただ1個の出力ポ
    ートを、上記nビットの制御信号の実際の値により制御
    されて選択的に能動化して、それによって上記能動化さ
    れた出力ポートに予め定められた出力信号を出力するよ
    うに配置してあるブール演算セレクタ(boolean selecto
    r)回路;という基本構成素子である、と少なくとも理解
    されることを特徴とする電子回路。
  2. 【請求項2】 シリコン・コンパイラのプログラムを実
    行するシリコン・コンパイラ方法において、 a) 下記の一連のサブステップ、すなわち: a1) 明白な並列構造と、明白な直列構造と、明白な通信
    構造であってタイムインターバルとして表わされ且つプ
    ログラムチャネルの能動サイド又は受動サイドでの実行
    のために能動的か受動的かのどちらかである通信行動を
    規定するところの明白な通信構造と、を含む概念を有す
    る第1の命令型並行(imperative concurrent) コンピュ
    ータ言語によりアルゴリズムを表現する原始テキストを
    受信するサブステップ,及び a2) 語句(lexical) 分析、構文(syntactic) 分析、及び
    意味(semantic)分析を行うことにより上記受信した原始
    テキストを、上記概念により規定される木構造(抽象概
    念としての)表現に変換するサブステップ,という一連
    のサブステップを持つソースアナライザのステップと; b) 上記木構造表現を、抽象チャネルにより相互接続さ
    れる基本構成素子のネットワークであるところの抽象回
    路の表現に変換するための抽象回路シンセサイザのステ
    ップであって、それらの基本構成素子の各々が1つの基
    本プログラムの実行を表わし、また各抽象チャネルがそ
    れを介して相互接続される2つの基本プログラムを正確
    に性格付ける関連のプログラムチャネルを表わすところ
    の抽象回路シンセサイザのステップと; c) 上記抽象回路表現を、タイミング機構の要求条件と
    回路形式の要求条件と技術的実現性の要求条件とにより
    制約されるような、具体回路表現に変換するステップで
    あり、また一方で、各抽象チャネルを具体回路のワイヤ
    セット(wire set)に1対1に翻訳し、且つ抽象回路の各
    基本構成素子を、少なくとも1つのワイヤセットにより
    他の電子回路にリンクさせた基本電子回路に1対1に翻
    訳するステップであるところのステップと; d) 上記具体回路表現を超大規模集積回路のレイアウト
    に変換するステップであり、また一方で、上記具体回路
    表現により特定されはしないが、インレイアウトの受動
    部分の電気的特性による権限委譲がなされる基本回路素
    子を設ける、という少なくとも1つの低レベルのタスク
    を実行するステップであるところのステップと;を含む
    シリコン・コンパイラ方法であって、 上記ソースアナライザのステップは、初期ステップ、す
    なわち: a) 上記原始テキストを、上記通信構造が上記通信行動
    を瞬間的な事象として規定するところの第2の命令型並
    行コンピュータ言語で受信するためのステップであり、
    且つ上記サブステップa1) に提供するために、上記原始
    テキストを上記第1の命令型並行コンピュータ言語に変
    換するためのステップであるところのステップを含むこ
    とを特徴とするシリコン・コンパイラ方法を応用して生
    成される電子回路において、 該電子回路は複数の電子回路モジュールを有して成り、
    そのモジュールの各々は、抽象回路に関連する基本構成
    素子(basic component) を1対1で表現し、この抽象回
    路に関連する基本構成素子とは、次のような相互に連結
    された基本構成素子、すなわち: a) nビットの変数を記憶するためにそれを能動原始ポ
    ートから受け取るための1個のnビット受動入力ポート
    と;記憶されている上記nビットの変数を互いに並行し
    て読み出すための、k個の能動行先ポートとそれぞれ相
    互に連結しているk個の並列の受動出力ポートと;を持
    つnビットの変数を記憶するためのnビットメモリ素子
    (n-bit memory element); b) 第1のnビット幅の能動原始ポートと相互に連結し
    ている1個のnビット幅の受動入力ポートを持ち、また
    第2のnビット幅の能動行先ポートと相互に連結してい
    る1個のnビット幅の受動出力ポートを持つnビット幅
    の相互連結回路であるところのnビットのパッシベータ
    (passivator)回路; c) 予め定められた受信間隔により制御され、nビット
    のメッセージを受け取るためにnビット幅の受動原始ポ
    ートと相互に連結している1個のnビットの能動入力ポ
    ートを持ち、またnビット幅の受動行先ポートに上記メ
    ッセージを転送するためにそれと相互に連結している1
    個のnビット幅の能動出力ポートを持つnビットのトラ
    ンスファーラ(transferrer) 回路; d) 予め定められた受信間隔により制御され、能動原始
    ポートから信号を受け取るためにそれと相互に連結して
    いる1個の受動入力ポートを持ち、更にその各々が受動
    行先ポートとそれぞれ相互に連結しているk個の能動出
    力ポートの1組を持ち、また、上記受け取った信号を出
    力するために上記k個の出力ポートの各々をそれぞれ1
    個ずつ順次能動化するように配置してあるシーケンサ(s
    equencer)回路; e) 予め定められた受信間隔により制御され、能動原始
    ポートから信号を受け取るためにそれと相互に連結して
    いる1個の受動入力ポートを持ち、更にその各々が受動
    行先ポートとそれぞれ相互に連結しているk個の能動出
    力ポートの1組を持ち、また、上記受け取った信号を出
    力するために上記k個の出力ポートのすべてを並行して
    能動化するように配置してあるコンカーサ(concursor)
    回路; f) 予め定められた受信間隔により制御され、能動原始
    ポートから信号を受け取るためにそれと相互に連結して
    いる1個の受動入力ポートを持ち、更に1個の受動行先
    ポートと相互に連結しているただ1個の能動出力ポート
    を持ち、また、上記受け取った信号を出力するために上
    記ただ1個の出力ポートを繰り返し能動化するように配
    置してあるレピータ(repeater)回路; g) 能動原始ポートからnビットの制御信号を受け取る
    ためにそれと相互に連結している1個のnビットの受動
    入力ポートを持ち、更にk≦2n とするときその各々が
    受動行先ポートとそれぞれ相互に連結しているところの
    k個の能動出力ポートを持ち、また、ただ1個の出力ポ
    ートを、上記nビットの制御信号の実際の値により制御
    されて選択的に能動化して、それによって上記能動化さ
    れた出力ポートに予め定められた出力信号を出力するよ
    うに配置してあるブール演算セレクタ(boolean selecto
    r)回路;という基本構成素子である、と少なくとも理解
    されることを特徴とする電子回路。
  3. 【請求項3】 請求項1又は2に記載の記載の電子回路
    において、(1)少なくとも1個の能動ポートと少なくと
    も1個の受動ポートとの双方を持つ基本構成素子の各々
    が: a) すべての受動ポートのすべての電気的入力が安定値
    0を与えられた後の第1の有限時間以内に、すべての能
    動ポートのすべての電気的出力が安定値0となり;その
    後で、すべての能動ポートのすべての電気的入力が安定
    値0を与えられた後の第2の有限時間以内に、すべての
    受動ポートのすべての電気的出力が安定値0となる;と
    いう制約を満足させること、また(2)受動ポートのみを
    有する基本構成素子の各々が: b)すべてのポートのすべての電気的入力が安定値0を与
    えられた後の第3の有限時間以内に、すべてのポートの
    すべての電気的出力が安定値0となる;という制約を満
    足させること、そしてまた(3) それに関連する抽象回
    路表現(abstract-circuit representation) は: c) それに関連するアクティビティグラフ(activity gr
    aph)の中の任意の有向サイクルに拘束されない; d) それに関連するグラフの中の各ノードは、少なくと
    も1つの外部の受動ポートから到達できるものである;
    という制約を満足させることを特徴とする電子回路。
JP30713899A 1988-02-16 1999-10-28 電子回路 Expired - Lifetime JP3258000B2 (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 Parent Applications (1)

Application Number Title Priority Date Filing Date
JP1031247A Division JP3026979B2 (ja) 1988-02-16 1989-02-13 シリコン コンパイラ方法および装置

Publications (2)

Publication Number Publication Date
JP2000155777A true JP2000155777A (ja) 2000-06-06
JP3258000B2 JP3258000B2 (ja) 2002-02-18

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 Before (1)

Application Number Title Priority Date Filing Date
JP1031247A Expired - Fee Related JP3026979B2 (ja) 1988-02-16 1989-02-13 シリコン コンパイラ方法および装置

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
JPH028937A (ja) 1990-01-12
EP0329233A3 (en) 1992-07-01
JP3258000B2 (ja) 2002-02-18
US5005136A (en) 1991-04-02

Similar Documents

Publication Publication Date Title
JP3258000B2 (ja) 電子回路
KR101061864B1 (ko) 동기 회로 설계 표현과 비동기 회로 설계 표현간의 자동 변환을 수행하기 위한 시스템 및 방법
Lavagno et al. Algorithms for synthesis and testing of asynchronous circuits
Edwards et al. Balsa: An asynchronous hardware synthesis language
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
Mokhov et al. Conditional partial order graphs: Model, synthesis, and application
US5537580A (en) Integrated circuit fabrication using state machine extraction from behavioral hardware description language
US7673275B2 (en) Development system for an integrated circuit having standardized hardware objects
KR100992025B1 (ko) 멀티-사이클 클록 게이팅 방법
KR101591376B1 (ko) 동기에서 비동기로의 논리 변환
US6996788B2 (en) Hardware-operation description conversion method and program therefor
Brzozowski et al. On the delay-sensitivity of gate networks
Josephs et al. Modeling and design of asynchronous circuits
Pena et al. Combining process algebras and Petri nets for the specification and synthesis of asynchronous circuits
US7113901B1 (en) Reuse of hardware components
Chan et al. Formal modelling of burst-mode specifications in a distributed environment
Marakkalage et al. Fanout-Bounded Logic Synthesis for Emerging Technologies
KR100441464B1 (ko) 아이피 모듈 간에 인터페이스를 생성하는 방법
Klimowicz Performance targeted minimization of incompletely specified finite state machines for implementation in FPGA devices
Mamaghani et al. Optimised synthesis of asynchronous elastic dataflows by leveraging clocked eda
Bibilo Hardware Implementation of Code Converters Designed to Reduce the Length of Binary Encoded Words
Biliński et al. High level synthesis of synchronous parallel controllers
Chan Automated Synthesis of Speed-Independent Circuits using Distributed Finite State Machines
Brzozowski et al. Design of asynchronous circuits
De Gloria et al. Delay insensitive micro-pipelined combinational logic

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081207

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20081207

Year of fee payment: 7

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091207

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20091207

Year of fee payment: 8