(57)【特許請求の範囲】
【請求項１】
モジュールが、それぞれの制御ビット列を規定するパラメータをロード可能な第１のロード可能計数手段及び第２のロード可能計数手段を具え、
前記第１のロード可能計数手段は、一次クロック入力に結合され、かつ出力を有し、
前記第２のロード可能計数手段は出力を有し、
前記第１のロード可能計数手段の前記出力及び前記第２のロード可能計数手段の前記出力は、前記第２のロード可能計数手段のイネーブル入力及び前記モジュールの出力を供給する論理結合ゲートに結合され、
前記第２のロード可能計数手段は、前記一次クロック入力によってクロック信号を供給され、
前記モジュールが、前記第１及び第２のロード可能計数手段のリセット入力及び前記第２のロード可能計数手段のイネーブル入力を供給するリセット入力を有することを特徴とするモジュール。
【請求項２】
前記第１及び第２のロード可能計数手段の少なくとも一方に、パラメータ入力を設けたことを特徴とする請求項１に記載のモジュール。
【請求項３】
前記第１及び第２のロード可能計数手段の少なくとも一方に、第２のパラメータ入力及びパラメータ選択入力を設けたことを特徴とする請求項２に記載のモジュール。
【請求項４】
前記第１及び第２のロード可能計数手段の少なくとも一方が、パラメータ値入力を具えていることを特徴とする請求項１、２または３に記載のモジュール。
【請求項５】
前記第１及び第２のロード可能計数手段のいずれかが、
デクリメンタに結合された計数値レジスタを具え、前記デクリメンタは、マルチプレクサを介して計数値レジスタの入力に結合された出力を有し、前記マルチプレクサは、後にデクリメントされるパラメータまたは値のいずれかを供給する制御手段を具えていることを特徴とする請求項１〜４のいずれかに記載のモジュール。
【請求項６】
前記パラメータか前記値かのいずれかを選択する二次選択手段を有することを特徴とする請求項５に記載のモジュール。
【請求項７】
前記値の複数例の中から選択する三次選択手段を有することを特徴とする請求項５または６に記載のモジュール。
【請求項８】
請求項１〜７のいずれかに記載のモジュールを複数具えていることを特徴とする電子回路。
【請求項９】
前記複数のモジュールを直列チェーンの形に配置したことを特徴とする請求項８に記載の電子回路。
【請求項１０】
請求項１〜７のいずれかに記載のモジュールを１つ以上含む制御生成ブロックと、条件信号を供給される条件生成ブロックと、ＡＮＤ／ＯＲネットワークとを具え、前記条件生成ブロックの出力は前記ＡＮＤ／ＯＲネットワークに供給され、前記ＡＮＤ／ＯＲネットワークはさらに前記制御生成ブロックの出力を受信して、制御信号を供給することを特徴とするコントローラシステム。
【請求項１１】
前記１つ以上のモジュールを直列及び／または並列構成で有することを特徴とする請求項１０に記載のシステム。
【請求項１２】
請求項８または９に記載の回路を合成する方法において、
制御信号を実際条件の形で、関連値と共に指定するステップと；
必要であれば、前記制御信号用シフト値を規定するステップと；
前記制御信号毎に、周期長を有する周期ベクトル及び反復ベクトルを規定するステップと；
前記周期ベクトルを、その周期長が単調増加または単調減少する順に並べ替えるステップと；
前記周期ベクトルに含まれるパラメータの最大値及び最小値を特定するステップと；
前記周期ベクトルを最適化するステップと
を具えていることを特徴とする回路合成方法。
【発明の詳細な説明】
（発明の背景）
この発明は、第１および第２のロード可能な（loadable）計数手段を具え、その第１の計数手段が第１のクロック入力に接続されるとともに第２の計数手段のイネーブル入力（enable input）へ給電する第１の出力を有し、第２の計数手段の第２の出力がモジュール出力へ給電するパラメータ化可能な（parametrizable）制御モジュール（control module）に関するものである。プログラム可能なビット列の発生は、この出願人に付与されこの明細書にも参照されているＵＳ特許出願第08/499，556号（特開平6−168141号）に対応するＥＰ特許出願第579，324号に開示されている。パラメータ化可能な制御モジュールは大規模電子回路用開発システムのフレキシブル（flexible）開発要素として使用可能である。
パラメータ化可能な制御モジュールは以下の整数値のタプル（tuple）またはセット（set）により定義される：
ＰＣＭ（ｐ〔〕，ｉ〔〕，p＿param，p＿param＿bits，i＿param，I＿param＿bits）、ここで
ｐ〔〕はハードワイヤード（hardwired）されるべき複数ｐ値のアレイ（array）；
ｉ〔〕はハードワイヤードされるべき複数ｉ値のアレイ；
p＿param＝入力ｐパラメータが要求されない時は０、さもなければ＝１；
p＿param＿bitsは入力ｐパラメータの最大値幅；
ｉ＿pram＝入力ｉパラメータが要求されない時は０、さもなければ＝１；
ｉ＿param bitsは入力ｉパラメータの最大値幅。
特に、複数のｐ値は繰り返えしビット順次の周期に対応し、複数のｉ値はその順次の反復数に対応している。より早期の実例では、応用分野の広い範囲にわたり、特にその第１のカウンタのみがクロックにより直接給電されるその直列配置の故にフレキシブルが不十分である。さらにより早期の実例では、制御されるのにマイクロコントローラ（microcontroller）が必要で、このことはかかる回路の多様性が要求される多くの場合望ましいものではない。
（発明の概要）
従って、本発明の目的はとりわけ、その直列構成を介してマイクロコントローラを必要とせずに組み込まれるよりフレキシビリティのあるパラメータ化可能な制御モジュールを提供せんとするものである。
この目的を達成するため、冒頭に記載した本発明パラメータ化可能な制御モジュールは、論理組合せゲートによる第１および第２の出力が第２の計数手段のイネーブル入力とモジュール出力との両者に給電するとともに、第２の計数手段が前記第１のクロック入力により同様にクロックされ、前記モジュールが両計数手段のリセット入力と第２の計数手段のイネーブル入力とに給電するリセット入力を有することを特徴とするものである。
単独で抽象的状態に基づいたマシン（machine）の階層ネットワークとしてシステムを特定することはＵＳ特許出願第08/---（特願平９−513255号）に対応するＥＰ特許出願第95202615.1号に記載されており、ハードウェアレベルへの状態マシンの実例はＵＳ特許第5，447，168号（特開平７−36502号）に開示されており、これらはすべて本願人に付与されたもので参考に本発明明細書にも引用されている。
好適には、かかる計数手段の少なくとも１つは１つのパラメータ入力、１つのパラメータ選択入力または１つの値選択入力を有している。このようにしてパラメータ化可能な制御モジュールの適応能力は大いに上昇される。
本発明はまた上述の複数のパラメータ付き制御モジュールを具えた電子回路にも関するものである。このようにして、用途の広い制御装置が率直な方法で構成される。
本発明はまた以下にのべるステップすなわち：
１つまたは複数の実条件により各制御信号をシフト（shift）値を含む複数の関連値で特定するステップと；
各反復ベクトル内で単調な順序で周期長に従うすべての発生値を整列（sorting）するステップと；
なにかパラメータが存在する時、大きさの別のあいまいでない差異が前記順序に従ってさらなる整列を指図しなくなるまで、かかる整列を考慮したかかるパラメータの最小および最大値を決定するステップと；
Ｉｆｐn-1＝ｐn *Ｉn，then：Ｉn-1＝Ｉn-1 *Ｉn；ｐn-1＝ｐnの条件ではｐnとＩnを無視するステップと；
Ｉn-1がパラメータの適切な他の存在する値にＩn-1を割り当てるパラメータの場合には、サイクル長に等しいｐ1とＩ1＝１であるすべてのｐ，Ｉベクトル対を無視するステップと；
合成のため回路細部にたしかめのためすべてのパラメータをマッピング（mapping）するステップと；
を実行して上述の回路を合成する方法に関係する。
好適には、最終の前記無視するステップに引き続いて、制御モジュールが入力パルスによってリセットされるそれらｐ，Ｉ対に関して、以下のステップすなわち：
与えられたcontrol＿module＿ｐ＿Ｉ＿ＵＩＤとしての単一のｐおよびＩ値で制御モジュール用のユニークな名前を発生するステップと；
最低の開始時間を備えた各信号に関して前述の名前に等しいそのハードウェアをセッテングするステップと；
その開始時間に変数this＿sig＿first＿availableをセッティングし、一方開始時間が１つのパラメータである時開始時間としてそれを使用するため、パラメータの定義からその最小値を見い出すステップと；
次の最も高い開始時間に変数this＿sig＿now＿desiredをセッティングするステップと；
最終のステップ対に見いだされる２つの開始時間が、それらパラメータに共通性がなくまたは一方の時間がパラメータであっても他方の時間がそうでないという点で無関係であるならその時には、第２の信号を発生させるため可変長シフトレジスタを用いて第１の信号を遅延させる代りに、第２の信号をよりおそく発生させる新しい制御モジュールを使用するステップと；
前記最終のステップの対に見いだされる２つの開示時間が、両者とも実値か両者とも同じパラメータで定義されるという点で関係があるならその時には、シフトレジスタ長の面積コスト（this＿sig＿now＿desired−this＿sig＿first＿available）を与えられたｐ，Ｉ値についての余分の制御モジュールの面積コストと比較し、最もよい解を選択するステップと；
this＿sig＿first＿availableをthis＿sig＿now＿desiredの値にセットし、実行されるべき別の信号があるかぎりは前述のステップ対のうちのあとのステップにもどすステップと；
により上昇する開始時間に従って関連信号を整列し、問題を特定するパラメータを階層的に解くステップを具えることを特徴とするものである。
このことはこの処理により広い応用性を付与する。
本発明のさらに別の好適な実施態様は他の依存請求項に記載される。
【図面の簡単な説明】
本発明の前述のおよび他の好適な実施態様は以下に添付する図面により実施例を用いて詳細に説明される。
図１は与えられたｐおよびｉについての出力ビット順序を示し、
図２はｐ＝５およびｉ＝１０についての出力ビット順序を示し、
図３は第１のモジュール適用配置を示し、
図４−７は種々の制御モジュール配置を示し、
図８は修正可能なダウン−カウンタ（down-counter）配置を示し、
図９−１１は制御モジュールの使用例を示す。
（好適な実施態様の詳細な開示）
図１は与えられたｐとｉの出力ビット順次の原理を示している。第１のトレース（trace）は外部源により周期的に発生されるクロック信号を示している。一般に、その周期は厳密には要求されないけれど時間的に均一である。第２のトレースはリセット信号を示し、各リセットはパラメータ化可能な制御モジュールまたはＰＣＭの出力パルスの１つの全サイクルを原理的に生じる。次のリセット信号が先行する出力サイクルの終了前に発生すると、それより前のサイクルは一般に中止される。第３のトレースはパラメータ化可能な制御モジュールの出力信号列を示している。そこでは周期ｐは２つの隣接した出力パルスを分離する間隔として（クロック周期で測定されるものとして）示され、多様性（multiplicity）iは出力パルスの全数として示されている。
図２は単一のリセット信号により開始されるｐ＝５およびｉ＝１０についての出力ビット順次を示している。現実には制御モジュールにハードワイヤードされる値は（値マイナス１）として記憶される。さらにパラメータは入力ポートに（パラメータマイナス１）として提示されるべきである。それ故図２の例はｐに対して４の値を、ｉに対して９の値を記憶することにより実現される。
図３はモジュール適用配置を示している。この例では、複数のモジュールはチェーンを構成するよう配置され、先行するモジュールの出力は次のモジュールのリセットに給電し、すべてのモジュールは同じクロックにより並列に制御されている。回路はさらにユーザモジュール２０を備え、それはそれぞれのモジュールの出力信号により制御される。さらに、ユーザモジュールは任意のビット幅の入力２２でユーザ入力信号を受信し、任意のビット幅の出力２４でユーザ出力信号を発生する。勿論左程広範囲でない解の場合には、単一のパラメータ化可能な制御モジュールのみが存在するに違いない。ユーザモジュールの構成は本発明ではその範囲外のものである。
このようにしてｐベクトルおよびｉベクトルで定義されるものとしてビット順次発生器を作ることは可能で、これらベクトルはビット順次を階層的に再生するのに使用される。例えばディジタル信号処理集積回路には繰り返えし制御ビット順次を発生する必要性がある。これらが周期ベクトルｐおよび反復ベクトルｉにより定義され得る時には、コントローラはかかるモジュールを使用して作られる。設計時に、ｐおよびｉの値は通常未知のパラメータであろう。組合せ論理によりかかる値の各可能な組合せ用に別のコントローラを作る代りに、本発明に係るパラメータ化可能な複数のモジュールが何分の１かの価格で同一の機能を果たすのに使用できる。これらモジュールはモジュールの各対間にラッチ（latch）を差しこみ、１クロック周期より早くチェーン（chain）の第１のモジュールをリセットすることにより１つのパイプライン（pipe line）でチェーン化することができる。
図４は全機能を有する第１のモジュール配置３０を示している。それはクロック信号４０、リセット信号４２、ｐ＿パラメータ値（p＿param）５０、ｐ＿パラメータ＿セレクション（p＿param＿sel）５２、およびｐ＿セレクション信号（p＿select）５４を受信するｐ＿ダウン＿カウンタ（ｐ＿down＿counter）３２を具えており、これら信号は適切なビット幅を有している。イネーブル入力（enable）４８は常にハイ（high）‘１’である。それ自体、ダウンカウンタは種々の異なった設計システムおよび固体回路技術では標準回路のもので、トランジスタレベルでさらに詳細なものはなにも必要としない。ゲートレベルの実施例については、以下に説明されよう。キャリ出力（carry）は通常零であるが、零カウンタ状態になるとハイとなる。カウンタ（counter）３２と並列に、カウンタ（counter）３４はまたクロックとリセット信号を受信する。さらにカウンタ３４はパラメータ値、パラメータセレクション、およびｉセレクション信号を受信する。カウンタ３２と対比して、カウンタ３４用のイネーブル信号はＡＮＤゲート３６の出力がロー（low）であるという意味で通常ローである。インバータ４４の出力は通常ハイである、カウンタ３２からのキャリ（carry）はＡＮＤ３６とＯＲ３８を介して１クロックパルス間カウンタ３４を活性化し、出力パルスがまた出力５６に発生される。次のクロックパルスで、３２からのキャリは通常再びローとなり、かくてカウンタ３４を不活性にする。カウンタ３４が零になると、そのキャリはハイとなり、それによってゲート３６をブロック（block）する。新らしいサイクルの開始にはリセットを必要とする。
図示されるように回路は種々のハードワイヤードｐ値と１つのｐパラメータ（それらのうち１つは＞１）、およびまた種々のハードワイヤードｉ値と１つのｉパラメータ（それらのうち１つは＞１）用に使用されることができる。ｐまたはｉパラメータのワード（word）幅はｐ＿ｐおよびｉ＿ｐそれぞれで与えられる。ｐ＿ｐ＿ｓとｉ＿ｐ＿ｓの値は１である。１つのハードワイヤードｐまたはｉ値を選択するに必要とされるビット数まｐ＿ｓおよびｉ＿ｓそれぞれで与えられる。
図４の制御モジュールはいくつかの方法で修正されることができる。その第１の修正は外部信号発生器による代りに、インバータ４４からのライン４９によりダウンカウンタ３２のイネーブル入力４８に給電することである。この場合消費電力は少なくてすむ。しかしながら回路の長い饋還ラインの故に高いクロック周波数で動作に信頼性が損なわれる。第２の修正は図５に示されている。部品３６，３８，４４，４６，４８，５６は図４に示されている。２つの付加的なＡＮＤゲート３９，４５が外部のイネーブル信号ＥＮによってブロックされることができる。このようにして、回路の動作は任意の長い時間停止させられることができる。再び長い饋還ラインのため回路は高いクロック周波数で動作の信頼性が損なわれるかもしれない。
この点で、図６は限定された機能を有する別のモジュール配置を示している。特に第２のカウンタはアッパーカウンタ（upper counter）の入力５４とともに抑制されている。ゲート３６，３８もまた抑制され得る。しかしながら、論理がワイヤード論理である実例の場合、そのレイアウト（layout）は維持され得る。この配置は単一のみのハードワイヤードｐ値と１つのｐパラメータ入力と（それらのうち１つが＞１）がある場合に使用される。
もしｐ値について１つのパラメータ（＞１）のみが存在するとすると、機能はさらに図６のものより入力５２が抑制されるという点でさらにより制限される。これとは対比して、多数のハードワイヤードｐ値（それらのうちの１つが＞１）は存在するがｐパラメータが存在しない時には、入力５４が維持されるのに第２のカウンタは入力５０，５２とともに抑制される。別の変形として、単一のハードワイヤードｐ値＞１のみが存在する時には、第２のカウンタが３つのすべての入力５０，５２，５４とともに抑制される。なお別の変形として、単一のハードワイヤードｐ＝１のみが存在する時には、第１および第２のカウンタがともに抑制される。その代りゲート３６が図４のイネーブル‘１’信号により給電される時は、ＯＲゲート３８はリセット信号を受信する。
この点で、図７は機能を制限した別の第２のモジュール配置３０を示している。特に、第１のカウンタはより下のカウンタの入力６２とともに抑制されてきており、ゲート３６，３８もまた抑制され得る。しかしながら論理がワイヤード論理である実例の場合、レイアウトは維持されることができる。この配置は、単一のハードワイヤードｉ値があり１つのｉパラメータ入力が存在する（それらのうちの１つは＞１）場合には使用される。
もしｉ値について１つのパラメータ（＞１）のみが存在する時は、その機能は入力６０が抑制されるという点で図６のものよりさらにより制限されることができる。このことと対比して、多数のハードワイヤードｉ値（それらのうちの１つは＞１）が存在しｉパラメータが存在しない場合には、入力６２が維持されるのに第１のカウンタは入力５８，６０とともに抑制される。別の変形として単一のハードワイヤードｉ値＞１のみが存在する場合には、第１のカウンタは３つのすべての入力５８，６０，６２とともに抑制されることができる。さらに別の変形として、単一のハードワイヤードｉ値＝１のみが存在する時には、第１および第２のカウンタ両者とも抑制されることができる。その場合、モジュールはリセット入力から出力５６への接続のみが実現されるに必要であるという点で未完成である。
図８は１つのダウン−カウンタ配置を示しており、それは前述の複数のモジュール実例のいずれかについて使用されることができる。この配置は多数のプリセット開始値（ｓ１----ｓ３）と１つのパラメータ開始値が存在する時に使用される。カウンタはクロック入力９０、リセット入力８６およびイネーブル入力８８を有する。さらに、パラメータ入力８０と開始値選択入力８２が存在する。これら両者は１より大きな値を有することができる。最後に、入力８４はｐ＿選択信号（ｐ＿sel）を受信する。今や、入力８２の信号は開始値ｓ１----ｓ３の１つを選択し、それはマルチプレクサ９４を制御するのに適切な幅を有すべきである。入力８４の信号ビットは提示された開始値とマルチプレクサ９６により入力８０から給電されたパラメータ信号間を選択する。マルチプレクサ１０６はレジスタ１０８に給電し、入力８６，８８のリセットおよびイネーブル信号それぞれによりさらにディクリメンタ（decrementer）１１０からのキャリ信号により制御される。
レジスタ出力はデータ出力（出力）とキャリ出力を有するディクリメンタ１１０に給電し、キャリ出力はレジスタが値----００１を含む時には、‘１’を発生する。キャリは出力９２へ給電される。レジスタ１０８とディクリメンタ１１０はクロック信号により活性化される。マルチプレクサ１０６はマルチプレクサ９６、レジスタ１０８およびディクリメンタ１１０からの出力信号を受信する。マルチプレクサ１０６はリセットおよびイネーブル信号により、ゲート９８，１００，１０２，１０４によるキャリ信号と協同で制御される。形成される論理は以下の通りである：
0003830526.tif 000002
それ故に、両リセットおよびイネーブルが零である限りは、レジスタ内容は逆方向に給電される。イネーブルが１でキャリおよびリセットの両者が零ならば、ディクリメンタの出力は逆方向に給電される。リセットが１又はイネーブルおよびキャリがともに１であるならば、新しいパラメータ値が外部かストレージ（storage）ｓ１---ｓ３からロード（load）される。
種々の環境で、カウンタ配置は修正されることができる。まず単一のプリセット開始値のみと１つのパラメータ開始値とが存在する場合には、マルチプレクサ９４と関連する選択信号（p＿sel）８４は抑制されることができる。第２に１つのパラメータ開始値のみが存在する場合には、またマルチプレクサ９６と関連制御信号８４は抑制されることができ、それでその時は入力（param＿in）８０は直接マルチプレクサ１０６に給電する。第３に多数のプリセット開始値は存在するがパラメータ開始値が存在しない場合、マルチプレクサ９４の出力は直接マルチプレクサ１０６と入力８０，８４に給電でき、マルチプレクサ９６は抑制されることができる。もし単一のプリセット開始値のみが存在すると、マルチプレクサ９４，９６、関連制御信号８２，８４およびparam＿in信号８０は抑制され得るが、プリセット開始値はマルチプレクサ１０６を直接給電する。
図９−１１はこの発明に係る制御モジュールの使用例を示している。適用は新規のモジュールチェーンの制御のもとにデータワード順次の増分発生である。データワードは効率的にアドレスを提示することができる。データワード順次は以下に示すネスティドループ（nested loop）として与えられる：
0003830526.tif 000003
ｔが増加する周期は１８クロックテイック（clock tick）である。データワードの順次は：
0003830526.tif 000004
図９は種々のデータワードが発生される瞬時を時間軸にそって示しており、これらは時間的に均一ではない。図１０は本発明に係る３つのモジュール１２０，１２２，１２４による第１の実例を示し、そこでは種々のモジュールによる‘１’ビットの発生は時間軸にそって示されている。明らかに、ｊループの反復が＋１、ｉループの反復が＋１の時データ値の増分は
ｉcoeff−（ｊmax*ｊcoeff）＝３−（２*１）＝＋１で、
ｔループがそれを反復する時は
ｔcoeff−（ｉmax*ｉcoeff）−（ｊmax*ｊcoeff）
＝16−（３*３）−（２*１）＝＋５である。
チェーン状モジュール１２０，１２２，１２４の説明にひき続いて、図１１の以下のアーキテクチャ（architecture）がチェーン状データワードを発生するよう開示されてきている。セット−アップはモジュ−ルにより制御される３つのマルチプレクサ１２８，１３０，１３２、リセット信号により制御される第４のマルチプレクサ１３６、レジスタ１２６、アキュミュレータ（accumulator）１３４および増分値でラベルされたブロックで示されるような種々の信号発生器を有している。動作の一時停止は図５に示されるようにまた実行されることができる。
前述のごときモジュールは好適には図１２を参照して説明される制御アーキテクチャ（architecture）の反復方法で使用されることができる。かかる設計１４６の制御発生部分１４０は、すべて必要とされる制御ビット順次を発生するようすべてのパラメータ化可能なモジュールに加えることのいくつかの別のハードウェアを含んでいる。条件発生ブロック（condition generation block）１４２は生の条件値を信号にとって必要とされるより複雑な条件のセットに交換するに必要なブーリァン論理（boolean logic）を含んでいる。ＡＮＤ／ＯＲネットワーク１４４は、全制御器の仕様で定義されるごとく、最終制御信号を発生するため結果のＯＲ処理をとるとともに条件付きビット順次のＡＮＤ処理を実行する。
図１２の配置では、制御発生部分１４０は最も複雑なブロックで、そのなかで目標のアーキテクチャは実施例により図１３に示されている。他の部分で発生されたリセットパルス受信用に、および特定されるごときパラメータ用に一部ラッチされた１５０，１５２，１７０，１７４，１７６のような入力ポートが存在している。１５４，１６４，１６６，１６８のようにタップされ得るシフトレジスタがパラメータ化可能な制御モジュール１５６，１５８，１６０，１６２の入力パルスが出力を遅延させるために含まれ、例示されているように制御モジュールが種々の出力ポート１７８，１８０，１８２，１８４およびリセットポートに相互接続可能である。クロック入力１７２がまた備えられている。
（パラメータ化可能なコントローラの合成）
以下これに限定されない例により、テレビジョン表示用動き評価制御器に関係する図１３に示されるような回路のフレキシブルのある率直な合成についてその方法が説明される。最初に、各制御信号は可能な値について仕様の開始条件のリストに与えられるすべての条件提示によって特定される。条件のいくつかは値がドント・ケア（don't care）＜*＞である点冗長であるかもしれない。この条件は各信号の仕様から削除される。
例えば環境に対処するテレビジョンフレームに関するあたえられた条件リストは：
0003830526.tif 000005
である。
さらに、シフト値ｓ＝５は制御信号について定義されることができる。例えばメモリ書込み制御はメモリポートカンテンション（memory port contention）の故に遅延させられる必要があるかもしれない。シフト値を除去する最も簡単な方法は開始時間にそれを加算することである。このことのみは開始時間がパラメータ値として機能するのであれば課題を引きおこす。
排除されるべきシフト値をまた必要とするパラメータ開始時間を備えた信号が存在する。このことは制御発生器へ入力されるべき新らしいパラメータを導入することにより実行され以下の：
“tempp＿n”＜“start＿time＿parameter”＋／−shift＿time＞；に従って定義され、ここでｎは独自の整数である。もしシフト時間が加速されたリード（read）アクセスがメモリ上でなされた故の負であるなら、その時にはマイナス符号が印加される。
制御ワード順次で定義される制御信号は構成制御ビット順次に分離されねばならない。例えば信号cyclic＿０＿ctrlははじめ２−ビット制御ワードにより定義されてきた。今や、その名称を備えたどんな信号もcyclic＿０＿ctrl＿０およびcyclic＿０＿ctrl＿１と名付けられる２つの単一ビット制御信号それぞれに分離され、それらの許容差のみは信号用のリクワイヤード（Required）値とデフォルト（Default）値に帰することができる。この段以降は同じ名称を有する信号はどれも同じデフォルト値を持たねばならぬが、やむおえず同じリクワイヤード値を有する必要はない。
最適化処理は以下のごとく実行される。特定される段で割り当てられた値のない制御信号は*（ドント・ケア）のごとく示されるであろう。この表示は要求されるビット順次を発生するためＯＲ処理されねばならぬ異なったビット順次の数を削減するのに使用される。かくて：
1.未定義のデフォルト値を備えた信号を見いだし；
2.グループ中第１の名称と同じ名称を備えた信号すべてを結合させ；
3.リクワイヤード値“１”を有する信号の数をリクワイヤード“０”を有する数と比較する；
4.リクワイヤード値がほとんど共通である時は常に、それを“０”方向への小さなバイアスを備えたすべての信号についてのデフォルト値として選択する。
ひとたび上述のことが仕様にあるすべての信号についてなされると、同じリクワイヤードおよびデフォルト値をするどんな信号もす去られ、それら信号はその時もはや発生器を必要としない。他の最適化は以下のようなものである。ある条件の１つ以上の可能な値で定義される信号はどれも存在する組合せ条件と同じ数の等価の信号に分割される。これら信号の各々は各々が要求される単一の条件とは異なって正確に同じであろう。
それで：
0003830526.tif 000006
仕様のすべての信号についてこの準備がなされると、同じ名称、同じ開始瞬時などを備えた信号の各グループについて条件の最適化を始めることができる。仕様のヘッド（head）にリストされたすべての可能な条件を使用して、ストリング（string）は同じ名称などを備えた各信号が要求される条件を提示するよう作られる。これら条件ストリングは次にチャンネル用‘オン−セット（On-Set）’を説明する論理最小化ソフトウェアパッケージへ入力として使用され、次に各条件ストリング残余に要求される単一の信号を備えた条件に逆変換される。
各信号の周期および反復ベクトル用の別の種々の最適化ルールが存在する。さらに複数のベクトル内の値についてはじめの整列が有効になされ、それでそれら周期長の値は減少状態にある。反復値はもとの関連周期値内のままである。このことは周期ベクトルがパラメータを含まない時には特に簡単である。しかしながらパラメータが存在すると、各パラメータの最小値および最大値が決定され、複数のベクトルを整列するため互いにそしてノン−パラメータの値と比較される。例えば、開始時間ｓ＝２２を備えた特定の信号“errsum＿errorl＿１＿mux＿c＿１”はベクトルｐ＝［“pfl”，16，１，４］；Ｉ＝［１，“pl”，４，２］を有する。パラメータ“pfl”の定義から７２０であるその最小値が決定され、この値は１６より大きく、それでスワップ（swap）は要求されない。整列は継続されベクトル：ｐ＝［“pfl”，16，４，１］およびＩ＝［１，“pl”，２，４］を発生する。もしｐ値がより大きいというあいまいさが存在するとベクトルは整列されず、その信号に関するベクトル最適化を続ける必要がない。ひとたびすべてのベクトルがこのように整列されてしまうと、ベクトル最適化は適切に始まる。第１のルールはＩｆｐn-1＝ｐn*Ｉn，then：Ｉn-1＝Ｉn-1*Ｉn；ｐn-1＝ｐnであり、ｐnとＩnは使いすてることができる。上述の例で以下のことが得られる。
1.  ４＝１*４
2.  それで新らしいベクトルはｐ＝［“pfl”，16，１］およびＩ＝［１，“pl”，８］
3. 16≠１*８であるから処理は終了する。ビットストリームの検査は上述の正確さを立証する。
ベクトルにパラメータが存在する場合には、パラメータの定義は真実ｐｎ-1＝ｐn*Ｉnであるかどうかがチェックされる。もしそうなら、新らしいパラメータが新らしいＩn-1を記載するために創り出されるか、正しい定義を有する実在のパラメータが使用される。例えば、信号“diff＿off＿０＿cand＿０”はベクトルｐ＝［“pfl”，16，４］およびＩ＝［１，“pl”，４］を有する。ここで16＝４*４、さらに新らしいパラメータは定義された“tempp＿１”＜“pl”*４＞でベクトルｐ＝［“pgl”，４］およびＩ＝［１，“tempp＿１”］となる。
最后に、残余のベクトル対は以下のように最適化される。複数の制御順次は単一の処理サイクルについて定義されるから、それらは各サイクルごとに繰り返えされる。サイクル長に等しいｐ1を有しＩ1＝１であるｐ，Ｉベクトル対はどれも捨てさられるにせの値を有する。かくて信号“diff＿off＿０＿cand＿０”は最終ベクトルｐ＝〔４〕，Ｉ＝〔“tempp＿１”〕を有する。
この点でリセット信号はpulse＿at＿sの形態を取る仕様の各信号に割り当てられ、ここでｓはその信号についての実開始時間か、その開始時間を記述するパラメータの名前かである。今や空周期と反復ベクトルを有する信号は与えられた開始時間に単一のパルスを提示する。次に単一ではないエントリを備えた周期と反復ベクトルを有するどのような信号も単一エントリベクトルを有する新らしい信号に分割される。かく創り出された信号の各々にはユニークな名前temp＿sig＿ＵＩＤが与えられ、ここでＵＩＤは識別子であり、各制御信号用のリセット信号は今正に創り出された信号名と等しく作られる。例えば、
0003830526.tif 000007
コントローラ合成の最終の主段階で、仕様により含まれるハードウェアはネットリスト（netlist）を発生する前に最適化される。そのように取得された仕様に到達する間に、すべての異なった対ｐ，Ｉは制御発生のためにピックアップされる。また各ｐ，Ｉ対について反復の間に、かかるｐ，Ｉ値を必要とする制御信号がさがし出される。これらのことは２つのグループに分割される。第１のグループはその制御モジュールが入力パルスによってリセットされるだろうし、第２グループはそのリセット信号が他のモジュールにより発生される。
第１のグループでは複数の信号は昇順開始時間に従って整列され、もし適切ならパラメータ開始時間の最小値を見いだし、次に以下のステップが開始される。
1.制御モジュール用のユニークな名前を与えられたcontrol＿module＿ｐ＿Ｉ＿ＵＩＤとして単一なｐおよびＩ値を用いて作る。
2.最低の開始時間を備えた各信号についてその名前に等しいハードウェアをセットする。
3.変数this＿sig＿first＿availableをその開始時間にセットする。開始時間がパラメータであるなら、そのパラメータの定義からその最小値を見い出し、それを開始時間として使用する。
4.変数this＿sig＿now＿desiredを次の最高の開始時間にセットする。
5.ステップ（３）と（４）に見い出される２つの時間が全体として相関がない（パラメータに共通性がないか、１方の時間にパラメータがありもう一方にはない）ならその時は、第２の信号を発生させるため第１の信号を遅延させる可変長シフトレジスタが必要だろうし、従って代りには後者の信号を発生するため新しい制御モジュールを使用する。
6.ステップ（３）と（４）に見い出される時間に相関がある（両者が実値か両者が同じパラメータにより定義される）ならその時は、シフトレジスタ長（this＿sig＿now＿desired−this＿sig＿first＿available）のコストと与えられたｐ，Ｉ値用の新らしい制御モジュールのコストとを比較し、最も安い解一般には最小のシリコン面積を要求する解を選択する。
7.this＿sig＿first＿availableを値this＿sig＿now＿desiredにセットし、なお実行せねばならぬ信号がある限りステップ（４）にもどる。
今やなお入力パルスによりリセットされるビット順次毎について定義される制御モジュールもあればそのパルスの時間よりおそい開始時間を有する各順次について定義されるシフト値もある（出力１８０および１７６の信号はそれ用に設計されたハードウェアがある）。
最後に、ｐ，Ｉ対により定義されるすべてのビット順次がある制御モジュールの名前とおそらくはシフト／遅延値（例えば図１３の端子１８４と１７４の信号）とを有するまで、複数の制御モジュールの１つからの出力により（多分その１つのチェーンにより）リセットされるすべてのビット順次について同じことがなされる。ｐおよびＩベクトル最適化後に、いくつかの信号は残されたベクトルがなく、その場合それらはreset＿by信号として定義された入力パルスを直接（図１３の端子１８２で）か遅延されて（図１３の端子１７８で）使用するだろう。今や回路に含まれるべきすべてのパラメータ値は確かめられてきたが、これまで説明してきた本発明明細書に係る回路のパラメータのマッピングは当業者にとって自明であろう。
【図１】
0003830526.tif 000008
【図２】
0003830526.tif 000009
【図３】
0003830526.tif 000010
【図４】
0003830526.tif 000011
【図５】
0003830526.tif 000012
【図６】
0003830526.tif 000013
【図７】
0003830526.tif 000014
【図８】
0003830526.tif 000015
【図９】
0003830526.tif 000016
【図１０】
0003830526.tif 000017
【図１１】
0003830526.tif 000018
【図１２】
0003830526.tif 000019
【図１３】
0003830526.tif 000020