特許第5779237号(P5779237)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アルテラ コーポレイションの特許一覧

特許5779237合成中に非同期および同期リセット解除を実行するための方法および装置
<>
  • 特許5779237-合成中に非同期および同期リセット解除を実行するための方法および装置 図000002
  • 特許5779237-合成中に非同期および同期リセット解除を実行するための方法および装置 図000003
  • 特許5779237-合成中に非同期および同期リセット解除を実行するための方法および装置 図000004
  • 特許5779237-合成中に非同期および同期リセット解除を実行するための方法および装置 図000005
  • 特許5779237-合成中に非同期および同期リセット解除を実行するための方法および装置 図000006
  • 特許5779237-合成中に非同期および同期リセット解除を実行するための方法および装置 図000007
  • 特許5779237-合成中に非同期および同期リセット解除を実行するための方法および装置 図000008
  • 特許5779237-合成中に非同期および同期リセット解除を実行するための方法および装置 図000009
  • 特許5779237-合成中に非同期および同期リセット解除を実行するための方法および装置 図000010
  • 特許5779237-合成中に非同期および同期リセット解除を実行するための方法および装置 図000011
  • 特許5779237-合成中に非同期および同期リセット解除を実行するための方法および装置 図000012
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5779237
(24)【登録日】2015年7月17日
(45)【発行日】2015年9月16日
(54)【発明の名称】合成中に非同期および同期リセット解除を実行するための方法および装置
(51)【国際特許分類】
   G06F 17/50 20060101AFI20150827BHJP
【FI】
   G06F17/50 654D
   G06F17/50 656A
【請求項の数】28
【全頁数】22
(21)【出願番号】特願2013-510216(P2013-510216)
(86)(22)【出願日】2011年5月9日
(65)【公表番号】特表2013-526738(P2013-526738A)
(43)【公表日】2013年6月24日
(86)【国際出願番号】US2011035807
(87)【国際公開番号】WO2011143141
(87)【国際公開日】20111117
【審査請求日】2014年3月12日
(31)【優先権主張番号】12/800,227
(32)【優先日】2010年5月11日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】597154922
【氏名又は名称】アルテラ コーポレイション
【氏名又は名称原語表記】Altera Corporation
(74)【代理人】
【識別番号】100078282
【弁理士】
【氏名又は名称】山本 秀策
(74)【代理人】
【識別番号】100113413
【弁理士】
【氏名又は名称】森下 夏樹
(72)【発明者】
【氏名】マノハララジャ, バラバン
【審査官】 合田 幸裕
(56)【参考文献】
【文献】 米国特許第07594211(US,B1)
【文献】 特開平10−340289(JP,A)
【文献】 特開2007−233842(JP,A)
【文献】 特開2010−211550(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/50
IEEE Xplore
CiNii
JSTPlus(JDreamIII)
(57)【特許請求の範囲】
【請求項1】
標的デバイス上でシステムを設計するための方法であって、該方法は、コンピュータシステムによって実行され、該コンピュータシステムは、合成ユニットを含み、
該方法は、
該合成ユニットが、共通リセット信号を用いて該システム内のレジスタセットを同定することと、
該レジスタセット内の各レジスタに対して、該合成ユニットが、該レジスタにリセット条件を適用することによって該システムの対応する冗長部分を同定することと、
該合成ユニットが、同定された該システムの冗長部分に基づいて、各レジスタに対するコストを決定することと、
既に解除されたリセットに対応しない該レジスタセット内の各レジスタに対して、最高から最低までのコスト順に、該合成ユニットが、該レジスタに対して同定された対応する冗長部分に結合された該リセット信号を解除することと
を含む、方法。
【請求項2】
前記リセット信号は、非同期リセット信号である、請求項1に記載の方法。
【請求項3】
前記リセット信号は、同期リセット信号である、請求項1に記載の方法。
【請求項4】
前記合成ユニットが、前記レジスタセットを同定することは、少なくとも所定の数のレジスタを同定することを含む、請求項1に記載の方法。
【請求項5】
前記所定の数は、およそ10万の大きさである、請求項4に記載の方法。
【請求項6】
前記合成ユニットが、同定された前記システムの前記冗長部分に基づいて、各レジスタに対する前記コストを決定することは、該合成ユニットが、冗長となる該システムの一部を考慮することを含む、請求項1に記載の方法。
【請求項7】
前記合成ユニットが、同定された前記システムの前記冗長部分に基づいて、各レジスタに対する前記コストを決定することは、該合成ユニットが、冗長となる論理ゲート、レジスタ配線の数を考慮することを含む、請求項1に記載の方法。
【請求項8】
前記合成ユニットが、同定された前記システムの前記冗長部分に基づいて、各レジスタに対する前記コストを決定することは、該合成ユニットが、冗長となる回路の深度を考慮することを含む、請求項1に記載の方法。
【請求項9】
前記合成ユニットが、同期リセット信号を同定することをさらに含む、請求項3に記載の方法。
【請求項10】
前記合成ユニットが、同期リセット信号を同定することは、
該合成ユニットが、第1の閾値よりも大きい論理出力を有する信号を同定することと、
該合成ユニットが、1の値を該信号に割り当てる場合に、一定である入力を有する第1の数のレジスタを同定することと、
該合成ユニットが、0の値を該信号に割り当てる場合に、一定である入力を有する第2の数のレジスタを同定することと、
該第1の数または第2の数のいずれか第2の閾値より大きいときに、該合成ユニットが、該信号を同期リセット信号として指定することと
を含む、請求項9に記載の方法。
【請求項11】
前記合成ユニットが、前記リセット信号を解除することは、該合成ユニットが、レジスタから、単一の論理出力ノードを通して、同期リセット信号まで逆行してトレースすることと、該リセット信号を反対の値に設定することとを含む、請求項3に記載の方法。
【請求項12】
前記合成ユニットが、前記リセット信号を解除後、前記システムにおいて最適化を行うことをさらに含む、請求項1に記載の方法。
【請求項13】
前記コンピュータシステムは、配置ユニットと経路設定ユニットとをさらに含み、
前記方法は、
該配置ユニットが、前記システムを前記標的デバイス上に配置することと、
該経路設定ユニットが、該システムを該標的デバイス上に経路設定することと
をさらに含む、請求項12に記載の方法。
【請求項14】
命令のシーケンスが記憶されているコンピュータ可読媒体であって、該命令のシーケンスは、プロセッサによって実行されると
システムの高水準記述をゲート、レジスタリセット回路に変換することによって、システムを合成することと、
冗長リセット回路を同定および解除するための分析を行うこと
該冗長リセット回路が解除された後に、該システムを最適化すること
を実行することを該プロセッサに行わせ、
該冗長リセット回路を同定および解除するための該分析を行うことは、共通リセット信号を用いてレジスタセットを同定することを含む、コンピュータ可読媒体。
【請求項15】
命令のシーケンスが記憶されているコンピュータ可読媒体であって、該命令のシーケンスは、プロセッサによって実行されると、
システムの高水準記述をゲート、レジスタ、リセット回路に変換することによって、システムを合成することと、
冗長リセット回路を同定および解除するための分析を行うことと、
該冗長リセット回路が解除された後に、該システムを最適化することと
を実行することを該プロセッサに行わせ、
冗長リセット回路を同定および解除するための分析を行うことは、同期リセット信号前に、非同期リセット信号関連付けられた冗長リセット回路を同定および解除することを含むコンピュータ可読媒体。
【請求項16】
前記冗長リセット回路を同定および解除するための前記分析を行うことは
該レジスタセット内の各レジスタに対して、該レジスタにリセット条件を適用することに基づいて、該システムの対応する冗長部分を同定することと、
同定された該システムの冗長部分に基づいて、各レジスタに対するコストを決定することと、
解除されたリセットに対応しない該レジスタセット内の各レジスタに対して、最高から最低までのコスト順に、該レジスタに対して同定された対応する冗長部分に結合されたリセット信号を解除することと
さらに含む、請求項14に記載のコンピュータ可読媒体。
【請求項17】
前記レジスタセットを同定することは、少なくと所定の数のレジスタを同定することを含む、請求項16に記載のコンピュータ可読媒体。
【請求項18】
同定された前記システムの前記冗長部分に基づいて、各レジスタに対する前記コストを決定することは、冗長となる該システムの一部を考慮することを含む、請求項16に記載のコンピュータ可読媒体。
【請求項19】
同定された前記システムの前記冗長部分に基づいて、各レジスタに対する前記コストを決定することは、冗長となる回路の深度を考慮することを含む、請求項16に記載のコンピュータ可読媒体。
【請求項20】
同期リセット信号を同定することをさらに含む、請求項16に記載のコンピュータ可読媒体。
【請求項21】
前記同期リセット信号を同定することは、
第1の閾値よりも大きい論理出力を有する信号を同定することと、
1の値を該信号に割り当てる場合に、一定である入力を有する第1の数のレジスタを同定することと、
0の値を該信号に割り当てる場合に、一定である入力を有する第2の数のレジスタを同定することと、
該第1の数または第2の数のいずれか第2の閾値より大きいときに、該信号を同期リセット信号として指定することと
を含む、請求項20に記載のコンピュータ可読媒体。
【請求項22】
前記システムを前記標的デバイス上に配置することと、
該システムを該標的デバイス上に経路設定することと
をさらに含む、請求項14に記載のコンピュータ可読媒体。
【請求項23】
システムデザイナであって、
該システムデザイナは、
リセット条件がシステム内のレジスタに適用されるときに、該システム内の冗長回路を同定するための冗長部分同定ユニットと、
該システム内のレジスタに対するコスト値をその対応する冗長回路に基づいて算出するためのコスト算出ユニットと、
対応するレジスタに割り当てられたコスト値に基づいて、該システム内の冗長回路に対するリセットを解除するためのリセット解除ユニットと
を含む、システムデザイナ。
【請求項24】
前記コスト値は、冗長となる前記システムの一部に基づいている、請求項23に記載のシステムデザイナ
【請求項25】
前記コスト値は、冗長となる論理ゲート、レジスタ配線の数に基づいている、請求項23に記載のシステムデザイナ
【請求項26】
前記コスト値は、冗長となる回路の深度に基づいている、請求項23に記載のシステムデザイナ
【請求項27】
同期リセット信号を同定するためのリセット同定ユニットをさらに含む、請求項23に記載のシステムデザイナ
【請求項28】
前記冗長部分同定ユニット、コスト算出ユニットリセット解除ユニットは、リセットが解除された後に、前記システム上で最適化を行う合成ユニット内に常駐する、請求項23に記載のシステムデザイナ
【発明の詳細な説明】
【技術分野】
【0001】
(優先権)
本願は、先に出願された米国実用特許出願第12/800,227号(2010年5月11日出願)の優先権を主張し、この出願は、本明細書に参照によって援用される。
【0002】
(分野)
本発明の実施形態は、標的デバイス上でシステムを設計するためのツールに関する。より具体的には、本発明の実施形態は、合成中の非同期および同期リセット解除のための方法および装置に関する。
【背景技術】
【0003】
大型システム用の電子設計は、何百万ものゲートおよびメガビットの組み込みメモリを含み得る。標的デバイス上の電子設計を管理および最適化する際に必要とされるタスクのうち、利用可能なリソースを利用した、合成、配置、および経路設定が最も困難で時間がかかるものとなり得る。大型システムの複雑性は、多くの場合、システムのための設計を管理および最適化するために、コンピュータ支援設計(CAD)または電子設計自動化(EDA)ツールの使用を必要とする。CADツールは、標的デバイス上の合成、配置、および経路設定という時間のかかるタスクを行う。
【0004】
システム内のレジスタは、起動中またはエラーの発生後に、システムを既知の状態にするように動作するリセット信号に接続され得る。リセット信号は、イベントの発生に応じて、または一定時間経過後に、システムをリセットするために使用され得る。しかしながら、レジスタリセットは、標的デバイス上でシステムを設計するための課題を呈する。非同期および同期リセットに関する課題として、リセット信号を多数の宛先に論理出力する必要があるとき、タイミング収束を達成すること、およびリセットのために配分された限定配線リソースとの適合を行う一方、リセットと関連付けられたクラスタ化制約に準拠することが挙げられる。非同期リセットはさらに、順次最適化問題に関するさらなる困難を呈する。CADまたはEDAツールによって使用される順次最適化アルゴリズムは、リセットまたは負荷等の非同期信号を有するレジスタをバイパスし得る。順次最適化がバイパスされない場合、非同期リセットによって生成される起動条件は、依然として、リタイミング後も維持される。さらに、論理は、正確な起動挙動を確実にするために追加される付加的論理を必要とするリセットを伴わずに、順次要素にパックされる必要があり得る。
【発明の概要】
【課題を解決するための手段】
【0005】
本発明のある実施形態によると、特定のリセット条件下において、冗長となるシステムの部分を同定し、解除することができるリセットを同定する分析が、合成中に行われる。リセットの解除後に、合成における最適化が行われてもよく、システムの配置および経路設定が行われてもよい。本発明のある側面によると、分析は、システム内のリセット信号の同定を含む。共通リセット信号を有するレジスタセットが同定される。レジスタセット内の各レジスタに対して、リセット条件が適用され、システムの冗長部分が同定され、コスト値が割り当てられる。解除のためにマークされていない最高から最低までのコスト順にあるレジスタセット内の各レジスタに対して、リセット条件が適用され、リセット信号接続等の冗長である回路が、解除のためにマークされる。コスト順の全レジスタが分析された後に、解除のためにマークされた回路内のレジスタに対するリセットが、解除される。
【0006】
本発明の実施形態の特徴および利点は、一例として例示され、本発明の実施形態の範囲を示された特定の実施形態に限定することを目的としていない。
本発明は、例えば、以下を提供する。
(項目1)
標的デバイス上でシステムを設計するための方法であって、
該方法は、
共通リセット信号によって該システム内のレジスタセットを同定することと、
該レジスタセット内の各レジスタに対して、該レジスタにリセット条件を適用することによって該システムの対応する冗長部分を同定することと、
同定された該システムの冗長部分に基づいて、各レジスタに対するコストを決定することと、
既に解除されたリセットに対応しない該レジスタセット内の各レジスタに対して、最高から最低までのコスト順に、該レジスタに対して同定された対応する冗長部分に連結された該リセット信号を解除することと
を含む、方法。
(項目2)
前記リセット信号は、非同期リセット信号である、項目1に記載の方法。
(項目3)
前記リセット信号は、同期リセット信号である、項目1に記載の方法。
(項目4)
前記レジスタセットを同定することは、少なくとも所定の数のレジスタを同定することを含む、項目1に記載の方法。
(項目5)
前記所定の数は、およそ10万の大きさである、項目4に記載の方法。
(項目6)
前記同定されたシステムの冗長部分に基づいて、各レジスタに対するコストを決定することは、冗長となる該システムの一部を考慮することを含む、項目1に記載の方法。
(項目7)
前記同定されたシステムの冗長部分に基づいて、各レジスタに対するコストを決定することは、冗長となる論理ゲート、レジスタ、および配線の数を考慮することを含む、項目1に記載の方法。
(項目8)
前記同定されたシステムの冗長部分に基づいて、各レジスタに対するコストを決定することは、冗長となる回路の深度を考慮することを含む、項目1に記載の方法。
(項目9)
同期リセット信号を同定することをさらに含む、項目3に記載の方法。
(項目10)
同期リセット信号を同定することは、
第1の閾値よりも大きい論理出力を有する信号を同定することと、
1の値を該信号に割り当てる場合に、一定である入力を有する第1の数のレジスタを同定することと、
0の値を該信号に割り当てる場合に、一定である入力を有する第2の数のレジスタを同定することと、
該第1の数または第2の数のいずれかが、第2の閾値より大きいときに、該信号を同期リセット信号として指定することと
を含む、項目9に記載の方法。
(項目11)
前記リセット信号を解除することは、レジスタから、単一の論理出力ノードを通して、同期リセット信号まで逆行してトレースすることと、該リセット信号を反対の値に設定することとを含む、項目3に記載の方法。
(項目12)
前記リセット信号を解除後、前記システムにおいて最適化を行うことをさらに含む、項目1に記載の方法。
(項目13)
前記システムを前記標的デバイス上に設置することと、
該システムを該標的デバイス上に経路設定することと
をさらに含む、項目12に記載の方法。
(項目14)
命令のシーケンスが記憶されているコンピュータ可読媒体であって、該命令のシーケンスは、プロセッサによって実行されると、該プロセッサが、
システムの高水準記述をゲート、レジスタ、およびリセット回路に変換することによって、システムを合成することと、
冗長リセット回路を同定および解除するための分析を行うこと、
該冗長リセット回路が解除された後に、該システムを最適化すること
を実行するようにさせる、コンピュータ可読媒体。
(項目15)
冗長リセット回路を同定および解除するための分析を行うことは、同期リセット信号前に、非同期リセット信号と関連付けられた冗長リセット回路を同定および解除することを含む、項目14に記載のコンピュータ可読媒体。
(項目16)
冗長リセット回路を同定および解除するための分析を行うことは、
共通リセット信号によって前記システム内のレジスタセットを同定することと、
該レジスタセット内の各レジスタに対して、該レジスタにリセット条件を適用することに基づいて、該システムの対応する冗長部分を同定することと、
同定された該システムの冗長部分に基づいて、各レジスタに対するコストを決定することと、
解除されたリセットに対応しない該レジスタセット内の各レジスタに対して、最高から最低までのコスト順に、該レジスタに対して同定された対応する冗長部分に連結されたリセット信号を解除することと
を含む、項目14に記載のコンピュータ可読媒体。
(項目17)
前記レジスタセットを同定することは、少なくとも、所定の数のレジスタを同定することを含む、項目16に記載のコンピュータ可読媒体。
(項目18)
同定された前記システムの冗長部分に基づいて、各レジスタに対するコストを決定することは、冗長となる該システムの一部を考慮することを含む、項目16に記載のコンピュータ可読媒体。
(項目19)
同定された前記システムの冗長部分に基づいて、各レジスタに対するコストを決定することは、冗長となる回路の深度を考慮することを含む、項目16に記載のコンピュータ可読媒体。
(項目20)
同期リセット信号を同定することをさらに含む、項目16に記載のコンピュータ可読媒体。
(項目21)
同期リセット信号を同定することは、
第1の閾値よりも大きい論理出力を有する信号を同定することと、
1の値を該信号に割り当てる場合に、一定である入力を有する第1の数のレジスタを同定することと、
0の値を該信号に割り当てる場合に、一定である入力を有する第2の数のレジスタを同定することと、
該第1の数または第2の数のいずれかが、第2の閾値より大きいときに、該信号を同期リセット信号として指定することと
を含む、項目20に記載のコンピュータ可読媒体。
(項目22)
前記システムを前記標的デバイス上に設置することと、
該システムを該標的デバイス上に経路設定することと
をさらに含む、項目14に記載のコンピュータ可読媒体。
(項目23)
システムデザイナであって、
該システムデザイナは、
リセット条件がシステム内のレジスタに適用されるときに、該システム内の冗長回路を同定するための冗長部分同定ユニットと、
該システム内のレジスタに対するコスト値をその対応する冗長回路に基づいて算出するためのコスト算出ユニットと、
対応するレジスタに割り当てられたコスト値に基づいて、該システム内の冗長回路に対するリセットを解除するためのリセット解除ユニットと
を含む、システムデザイナ。
(項目24)
前記コスト値は、冗長となる前記システムの一部に基づいている、項目23に記載の装置。
(項目25)
前記コスト値は、冗長となる論理ゲート、レジスタ、および配線の数に基づいている、項目23に記載の装置。
(項目26)
前記コスト値は、冗長となる回路の深度に基づいている、項目23に記載の装置。
(項目27)
同期リセット信号を同定するためのリセット同定ユニットをさらに含む、項目23に記載の装置。
(項目28)
前記冗長部分同定ユニット、コスト算出ユニット、およびリセット解除ユニットは、リセットが解除された後に、前記システム上で最適化を行う合成ユニット内に常駐する、項目23に記載の装置。
【図面の簡単な説明】
【0007】
図1図1は、本発明の例示的実施形態による、システムを設計するための方法を例示する、フローチャートである。
図2図2は、本発明の例示的実施形態による、合成を行うための方法を例示する、フローチャートである。
図3図3は、本発明の例示的実施形態による、リセット分析および解除を行うための方法を例示する。
図4図4は、本発明の例示的実施形態による、システムの冗長部分の第1の実施例を例示する。
図5図5は、本発明の例示的実施形態による、システムの冗長部分の第2の実施例を例示する。
図6図6は、本発明の例示的実施形態による、同期リセット同定を行うための方法を例示する。
図7図7は、本発明のある実施形態による、リセット分析および解除を行う実施例を例示する。
図8図8は、本発明のある実施形態による、システムデザイナを実装する、コンピュータシステムのブロック図を例示する。
図9図9は、本発明の例示的実施形態による、システムデザイナのブロック図である。
図10図10は、本発明のある実施形態による、リセット分析および解除ユニットのブロック図である。
図11図11は、本発明のある実施形態による、例示的標的デバイスを例示する。
【発明を実施するための形態】
【0008】
以下の説明において、説明の目的で、本発明の実施形態の徹底的な理解を提供するために、具体的な用語が記載される。本発明の実施形態を実践するために、説明における具体的詳細が必要とされなくてもよいことが、当業者に明白となるであろう。他の場合において、本発明の実施形態を不必要に曖昧にすることを回避するように、周知の回路、デバイス、およびブロックがブロック図形態で示されている。
【0009】
図1は、本発明の例示的実施形態による、標的デバイス上でシステムを設計するための方法を例示するフローチャートである。標的デバイスは、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、構造化ASIC、または他のデバイスであってもよい。一実施形態によると、図1に例示されたプロシージャは、コンピュータシステム上で実装されるコンピュータ支援設計(CAD)/電子設計自動化(EDA)ツールによって行われてもよい。101において、システムが合成される。本発明のある実施形態によると、合成は、実装されるシステムの論理設計を生成するステップを伴う。
【0010】
図2は、本発明のある実施形態による、合成を行うための方法を例示するフローチャートである。図2に例示される方法は、101を行うために利用されてもよい。201において、精緻化および抽出が行われる。本発明のある実施形態によると、精緻化および抽出は、システムの高水準記述から、システムの論理表現を生成するステップを含む。システムの高水準記述は、回路図、VHDL、Verilog、または他の設計定義の形態であってもよい。論理表現は、システムに必要とされる論理ゲートおよび論理要素等の機能ブロックおよびレジスタ(「構成要素」)を含む表現を含んでもよい。精緻化および抽出の間、初期最適化もまた、行われてもよい。初期最適化は、ネットリストのクリーンアウトおよび定数伝搬を含んでもよい。抽出ネットリストは、抽出の間に生成される。
【0011】
202において、パーティションが、抽出ネットリストから同定される。本発明のある実施形態によると、レジスタリセットは、特定のリセット条件下において、冗長となるシステムの部分を同定するために分析される。分析は、各レジスタリセットに対する冗長性の影響のコストを算出するステップを伴う。システムのこれらの冗長部分に対するサポートレジスタリセットと関連付けられた回路は、算出されたコストに基づいて、解除される。
【0012】
203において、最適化が、改訂されたシステム設計に適用される。リセット分析および解除プロシージャは、システム内の信号に、論理出力を喪失させるか、または同期リセットの場合、定数を設定させてもよい。最適化は、レジスタリタイミング、微妙な状態機械再合成、および他の最適化プロシージャを含んでもよい。最適化は、大型/コースブロックが最適化される、RTL合成、および単純ブロックが最適化されるゲートレベル合成を含んでもよい。
【0013】
204において、マッピング(技術マッピング)もまた、最適化論理設計上で行われる。本発明のある実施形態によると、マッピングは、標的デバイス上で利用可能なリソースによって、最適化論理表現において論理ゲートおよび論理要素をどのように実装するかを決定するステップを含む。利用可能なリソースとして、LUTおよび他のリソースが挙げられ得る。本発明のある実施形態によると、ネットリストは、マッピングから生成される。このネットリストは、HDLから生成される最適化技術マッピングネットリストであってもよい。
【0014】
図1に戻って参照すると、102において、マッピングされた論理システム設計内に構成要素が設置される。配置は、最適化技術マッピングネットリストに作用して、機能ブロックのそれぞれに対する配置を生成する。本発明のある実施形態によると、配置は、論理設計上のどのリソースが特定の論理要素に使用されるか、および合成中に決定されるようなシステムを実装するために決定される他の機能ブロックを決定することによって、標的デバイス上でシステムを適合するステップを含む。配置は、標的デバイス上に存在する論理クラスタを形成するように、論理要素を一緒にグループ化するステップを有するクラスタ化を含んでもよい。本発明の実施形態によると、クラスタ化は、配置の初期段階で行われ、配置準備段階の間の合成直後に発生する。
【0015】
103において、配置された設計が、経路設定される。経路設定の間、標的デバイス上の経路設定リソースが、標的デバイス上の論理ゲート、論理要素、および他の構成要素間の相互接続を提供するように配分される。経路設定可能性の最適化もまた、配置された論理設計上で行われ得る。本発明のある実施形態によると、経路設定可能性の最適化の目標は、配置された論理設計における構成要素を接続するために使用される配線の量を削減することである。経路設定可能性の最適化は、論理出力分割、論理重複、論理再配線、または他のプロシージャを行うステップを含んでもよい。プロシージャのうちの1つ以上が、配置された論理設計上で行われてもよいことを理解されたい。
【0016】
104において、アセンブリプロシージャが、行われる。アセンブリプロシージャは、101−103によって説明されるコンパイルプロシージャによって決定される情報を含む、データファイルを作成するステップを伴う。データファイルは、標的デバイスをプログラムするために使用され得るビットストリームであってもよい。本発明のある実施形態によると、図1に例示されるプロシージャは、第1のコンピュータシステム上で実行されるEDAツールによって行われてもよい。生成されるデータファイルは、システムの設計がさらに処理されることを可能にするように、第2のコンピュータシステムに伝送されてもよい。代替として、データファイルは、システム設計に従って、標的デバイスをプログラムするために使用され得る、第2のコンピュータシステムに伝送されてもよい。システムの設計は、表示デバイスまたは他の媒体上等で、他の形態で出力されてもよいことを理解されたい。
【0017】
105において、標的デバイスは、データファイルでプログラムされる。データファイルで標的をプログラムすることによって、標的デバイス上の構成要素は、システムを実装するように物理的に変換される。
【0018】
図3は、本発明のある実施形態による、リセット分析および解除を行うための方法を例示する。図3に例示される方法は、図2の202で実装されてもよい。301において、共通リセット信号xを有するレジスタセットR(x)が同定される。本発明のある実施形態によると、レジスタセットは、最小数のレジスタを有し、その数は、あらかじめ定められる。一実施形態において、最小数は約10万である。
【0019】
プロシージャ302−305は、レジスタセットR(x)内の各レジスタ上で行われる。
【0020】
302において、リセット条件が、以前に検討されていない、レジスタセットR(x)内の現在のレジスタyに適用される。本発明のある実施形態によると、リセット条件は、レジスタに0を出力させるリセット信号であってもよい。代替として、リセット条件は、レジスタに1を出力させるプリセット信号であってもよい。
【0021】
303において、システムの冗長部分が、同定される。本発明のある実施形態によるとシステムの冗長部分は、システムの一部であって、302で適用されたリセット条件下において冗長となる任意の部分である。
【0022】
図4は、本発明のある実施形態による、システムの冗長部分の第1の実施例をを例示する。図4は、2つのレジスタ、レジスタXおよびYと、論理ゲートZとを有するシステムの一部を例示する。レジスタXは、入力信号Aを受信し、レジスタYは、入力信号Bを受信する。レジスタXおよびYは、同一クロック信号CLKによってクロックされ、共通リセット信号を共有する。リセットがトリガされると、レジスタXおよびYは両方とも、ゼロを出力する。論理ゲートZはANDゲートであるので、論理ゲートZの出力は、レジスタXおよびYの出力のうちの少なくとも1つがゼロであるとき、ゼロである。リセット信号が、レジスタXおよびYのうちの一方のみに接続された場合、論理ゲートzの出力は、同一となるであろう。したがって、本実施例において、リセット条件が、レジスタXに適用されると、システムの冗長部分は、レジスタYを含むであろう。
【0023】
図5は、本発明のある実施形態による、システムの冗長部分の第2の実施例を例示する。図5は、第1のレジスタP集合および第2のレジスタQ集合と、制御レジスタRと、出力レジスタZ集合を有するシステムの一部を例示する。レジスタPは、入力信号Aを受信し、レジスタQは、入力Bを受信する。レジスタP、Q、R、およびZは、同一クロック信号CLKによってクロックされる。レジスタP、Q、およびRは、共通リセット信号を共有する。マルチプレクサMは、レジスタPまたはレジスタQのいずれかに由来する入力を選択する。リセット条件下において、制御レジスタRはゼロを出力し、マルチプレクサMに、レジスタQの条件または出力に関わらず、レジスタPに由来する入力を選択させる。したがって、本実施例において、リセット条件がレジスタRに適用されると、システムの冗長部分は、レジスタQを含むであろう。
【0024】
図3に戻って参照すると、304において、現在のレジスタyに対するコストが、同定されたシステムの冗長部分に基づいて、算出される。本発明のある実施形態によると、コストは、冗長となるシステムの一部、論理ゲート、レジスタの数、および/または冗長となる配線の数あるいは長さ、冗長となる回路の深度、もしくは他の測定基準に基づいてもよい。
【0025】
305において、コストが、レジスタセットR(x)内の最後のレジスタ(レジスタのすべて)に対して算出されたかどうか決定される。コストが、レジスタセット内の最後のレジスタに対して算出されていない場合、制御は、302に戻り、レジスタセットR(x)内の次のレジスタ上でプロシージャ302−304を行う。コストが、レジスタセット内の最後のレジスタに対して算出されている場合、制御は、306に進む。
【0026】
プロシージャ306−309は、解除のためにマークされていない、レジスタセットR(x)内のレジスタのそれぞれ上で行われる。
【0027】
306において、リセット条件が、コスト順に、解除のために以前にマークされていない、レジスタセットR(x)内の現在のレジスタyに適用される。
【0028】
307において、リセット条件の適用から生じる、システムの冗長部分が、解除のためにマークされる。
【0029】
308において、解除のために以前にマークされていない、レジスタセットR(x)内の最後のレジスタyに、リセット条件が適用されたかどうか決定される。解除のために以前にマークされていない、レジスタセット内の最後のレジスタに、リセット条件が適用されていない場合、制御は、306に戻り、レジスタセット内の次のレジスタ上でプロシージャ306−307を行う。解除のために以前にマークされていない、レジスタセット内の最後のレジスタに、リセット条件が適用された場合、制御は、309に進む。
【0030】
309において、解除のためにマークされている、各レジスタにおけるリセットが、解除される。
【0031】
プロシージャ301−309は、反復され、システム内の他のレジスタセットに的ようされ、解除すべき付加的リセットを同定してもよいことを理解されたい。さらに、図3に説明される方法は、非同期または同期リセットのリセット分析および解除を行うために使用されてもよいことを理解されたい。図3に説明される方法におけるプロシージャは、各グループのリセット(非同期または同期)301−309に別個に適用されるべきである。本発明のある実施形態によると、プロシージャ301−309は、同期リセットに適用される前に、非同期リセットに適用される。
【0032】
本発明のある実施形態によると、解除のためにマークされたレジスタにおいて、同期リセットを解除するとき、同期リセットが、レジスタに存在する場合、リセットが、解除される。しかしながら、リセット信号が、データ入力に連結される場合、接続は、レジスタから、単一論理出力ノードを通して、同期リセット信号へと逆行してトレースされてもよく、その場合、リセット信号は、反対の値に設定される。
【0033】
図6は、本発明のある実施形態による、同期リセット同定を行うための方法を例示する。図6に説明される方法は、図3において説明される方法を使用する前に行われ、同期リセットにおいてリセット分析および解除を行ってもよい。601において、第1の閾値数より大きい論理出力数を有する信号iが同定される。
【0034】
602において、1の値が信号に割り当てられる。
【0035】
603において、一定である入力を有する第1の数のレジスタが、1の値を信号に割り当てるステップによって、論理条件を評価した後に同定される。
【0036】
604において、0の値が信号に割り当てられる。
【0037】
605において、一定である入力を有する第2の数のレジスタが、0の値を信号に割り当てるステップによって論理条件を評価した後に、同定される。
【0038】
606において、第1の数のレジスタまたは第2の数のレジスタのいずれか大きい方が、第2の閾値数よりも大きいか否かを決定される。第1の数のレジスタまたは第2の数のレジスタのいずれか大きい方が第2の閾値数より大きい場合、制御は、607に進む。第1の数のレジスタまたは第2の数のレジスタのいずれか大きい方が、第2の閾値数より大きくない場合、制御は608に進む。
【0039】
607において、信号がリセット信号として指定される。
【0040】
608において、信号がリセット信号として指定されない。
【0041】
プロシージャ601−608が反復され、他の信号に適用され、信号がリセット信号であるか否か決定してもよいことを理解されたい。
【0042】
前述のプロシージャを参照して、第1の所定の閾値および第2の所定の閾値が使用されてもよいことを理解されたい。第1の所定の閾値は、最初に、高論理出力を有する信号を同定するために使用されてもよい。第2の所定の閾値は、信号が同期リセットであるか否かを同定することに先立って、一定となるレジスタを同定するために使用されてもよい。本発明の一側面によると、第1の所定の閾値は、第2の所定の閾値よりも大きくてもよい。
【0043】
本発明のある実施形態によると、リセットまたはプリセット信号として使用され得る信号が、同定される。レジスタをゼロにさせる場合、信号は「リセット」である。レジスタを1にさせる場合、信号は「プリセット」である。非同期リセット/プリセットの場合、信号は、レジスタ上でそれに連結されるポートが、リセットまたはプリセットポートであるか否かを検証することによって、リセットまたはプリセットのいずれかとして同定されてもよい。同期リセット/プリセットの場合、信号がリセットまたはプリセットであるか否か同定するために、分析が必要とされてもよい。分析は、最初に、高論理出力を有する信号を同定するステップを伴ってもよく、潜在的に、レジスタを1またはゼロに設定することができる。次に、信号が、1またはゼロに設定されるとき、どうなるかについて決定が行われてもよい。多数のレジスタ(閾値数より大きい)がゼロになる場合、リセットが同定される。しかしながら、多数のレジスタが1になる場合、プリセットが同定される。
【0044】
図1−3、および6は、本発明の実施形態を例示する、フローチャートである。例示される技術のうちのいくつかは、順次、並行して、または説明される順序および説明されるプロシージャが繰り返されてもよい順序以外の順序で行われてもよい。説明される技術の全てが行われることが要求されるわけではないこと、付加的な技術が追加されてもよいこと、および例示した技術のうちのいくつかが他の技術と置換されてもよいことを理解されたい。
【0045】
図7は、本発明のある実施形態による、リセット分析および解除の実施例を例示する。図7は、レジスタV、W、およびXを有するシステムの一部を例示する。レジスタVは、入力信号Aを受信する。レジスタWは、入力信号Bを受信する。レジスタXは、入力信号Cを受信する。レジスタV、W、およびXは、CLKによってクロックされ、リセット信号を共有する。論理ゲートYは、ORゲートであって、論理ゲートZは、ANDゲートである。
【0046】
図3を参照すると、301において、レジスタV、W、およびXは、共通リセットを有するとして同定される。
【0047】
302および303において、リセット条件がレジスタVに適用されると、レジスタVの出力は0となる。Vの出力は、論理ゲートYに入力される前にインバータを通過する。1の入力が、論理ゲートYに入力される場合、論理ゲートYは、レジスタWからの入力に関わらず、常に、1つを出力する。したがって、レジスタWからの入力は、冗長となる。論理ゲートZがANDゲートであるので、レジスタXから論理ゲートZへの入力は、依然として関連している。
【0048】
304において、冗長部分であるレジスタWに対するコストは、1レジスタである。他の測定基準も、冗長部分をコスト化するために使用され得ることを理解されたい。
【0049】
305において、レジスタVは、コストのために分析されるレジスタセット内の最後のレジスタではない。制御は、302に戻り、レジスタWを評価する。
【0050】
302および303において、リセット条件がレジスタWに適用されると、レジスタWの出力は0となる。Wの出力は、論理ゲートYに入力される。論理ゲートYは、ORゲートであるので、論理ゲートYへの他の入力も、依然として関連している。したがって、リセット条件がレジスタWに適用されると、システムの冗長部分は存在しない。
【0051】
304において、冗長部分に対するコストは、0である。
【0052】
305において、レジスタWは、コストに対して分析されるべきレジスタセット内の最後のレジスタではない。制御は、302に戻り、レジスタXを評価する。
【0053】
302および303において、リセット条件がレジスタXに適用されると、レジスタXの出力は0となる。論理ゲートZはANDゲートであるので、レジスタXからの入力が0である場合、論理ゲートZは、論理ゲートYからの入力に関わらず、常に、0を出力する。したがって、論理ゲートYからの入力は冗長となり、論理ゲートYならびにレジスタVおよびWは冗長である。
【0054】
304において、冗長部分である論理ゲートYならびにレジスタVおよびWに対するコストは、1論理ゲートおよび2レジスタである。他の測定基準も、冗長部分をコスト化するために使用され得ることを理解されたい。
【0055】
305において、レジスタV、W、およびXはすべて、コストに対して分析されたので、制御は306に進む。
【0056】
306において、最高コスト順のレジスタが、レジスタXとして決定される。レジスタXは、解除のためにマークされていないので、リセット条件がレジスタXに適用される。
【0057】
307において、冗長部分である論理ゲートYならびにレジスタVおよびWは、解除のためにマークされる。
【0058】
308において、レジスタXはマークされておらず、分析されたレジスタセット内の最後のレジスタであるので、制御は309に進む。
【0059】
309において、解除のためにマークされた各レジスタにおけるリセットが、解除される。
【0060】
図7に例示される実施例は、非同期リセットまたは同期リセットに対するものであり得る。同期リセットに対するリセットを解除する場合に、同期リセットがレジスタに存在するとき(SCLR)、リセットは解除されてもよいことを理解されたい。代替として、同期リセットがレジスタに存在しないとき、レジスタから、単一の論理出力ノードを通して、同期リセット信号へと逆行してトレースが行われてもよい。次いで、リセット信号は、反対の値に設定することによって解除されてもよい。
【0061】
図8は、本発明のある実施形態による、システムデザイナを実装するコンピュータシステムのブロック図を例示する。示されるように、コンピュータシステム800は、プロセッサ801を含む。プロセッサ801は、プロセッサ801とコンピュータシステム800内の他の構成要素との間でデータ信号を伝送するCPUバス810に連結される。
【0062】
コンピュータシステム800は、メモリ813を含む。メモリ813は、動的ランダムアクセスメモリデバイス、静的ランダムアクセスメモリデバイス、および/または他のメモリデバイスであってもよい。メモリ813は、プロセッサ801によって実行され得る、データ信号によって表される命令およびコードを記憶してもよい。ブリッジメモリコントローラ811が、CPUバス810およびメモリ813に連結される。ブリッジメモリコントローラ811は、プロセッサ801、メモリ813、およびコンピュータシステム800内の他の構成要素の間でデータ信号をダイレクトし、CPUバス810、メモリ813、および第1のIOバス820の間でデータ信号をブリッジする。
【0063】
第1のIOバス820は、単一のバスまたは複数のバスの組み合わせであってもよい。第1のIOバス820は、コンピュータシステム800内の構成要素間に通信リンクを提供する。ネットワークコントローラ821は、第1のIOバス820に連結される。ネットワークコントローラ821は、コンピュータシステム800をコンピュータのネットワーク(図示せず)にリンクさせ、機械間の通信をサポートする。表示デバイスコントローラ822が、第1のIOバス820に連結される。表示デバイスコントローラ822は、コンピュータシステム800への表示デバイス(図示せず)の連結を可能にし、表示デバイスとコンピュータシステム800との間のインターフェースの役割を果たす。
【0064】
第2のIOバス830は、単一のバスまたは複数のバスの組み合わせであってもよい。第2のIOバス830は、コンピュータシステム800内の構成要素間に通信リンクを提供する。データ記憶デバイス831が、第2のIOバス830に連結される。データ記憶デバイス831は、ハードディスクドライブ、フロッピー(登録商標)ディスクドライブ、CD−ROMデバイス、フラッシュメモリデバイス、または他の大容量記憶デバイスであってもよい。入力インターフェース832が、第2のIOバス830に連結される。入力インターフェース832は、コンピュータシステム800への入力デバイスの連結を可能にし、入力デバイスからコンピュータシステム100へデータ信号を伝送する。バスブリッジ823が、第1のIOバス820を第2のIOバス830に連結する。バスブリッジ823は、データ信号をバッファし、第1のIOバス820と第2のIOバス830との間でデータ信号をブリッジするように動作する。異なるアーキテクチャを有するコンピュータシステムもまた、コンピュータシステム800を実装するために使用されてもよいことを理解されたい。
【0065】
システムデザイナ840が、メモリ813の中に常駐し、プロセッサ801によって実行されてもよい。システムデザイナ840は、システムを合成する、標的デバイス上にシステムを配置する、システムを経路設定する、システムをアセンブルする、およびシステムを実装するよう標的デバイスをプログラムするように動作してもよい。合成の間、分析がシステムデザイナ840によって行われ、特定のリセット条件下において、冗長となるシステムの部分を同定し、解除されることができるリセットを同定してもよい。同定されたリセットを解除後に、合成における最適化が行われてもよい。
【0066】
図9は、本発明の例示的実施形態によるシステムデザイナ900を例示する。システムデザイナ900は、図8に示されるシステムデザイナ840を実装するために使用されてもよく、図1−3および6で説明されるプロシージャを行ってもよい。システムデザイナ900は、標的デバイス上でシステムを設計するためのCADツールであってもよい。標的デバイスは、例えば、ASIC、構造化ASIC、FPGA、プログラマブル論理デバイス(PLD)、プリント回路基板(PCB)、または他の回路であってもよい。図9は、システムデザイナ900の実施形態を実装するモジュールを例示する。一実施形態によると、システム設計は、例えば、図8に例示されるコンピュータシステム等のコンピュータシステムによって行われ、図9に示されるモジュールによって表される命令のシーケンスを実行してもよい。命令のシーケンスの実行は、以降で説明されるように、コンピュータシステムにシステム設計をサポートさせる。代替実施形態において、本発明を実装するために、ソフトウェア命令の代わりに、またはソフトウェア命令と組み合わせて、ハードワイヤ回路が使用されてもよい。したがって、本発明は、ハードウェア回路およびソフトウェアの任意の特定の組み合わせに限定されない。システムデザイナ900は、システムデザイナマネージャ910を含む。システムデザイナマネージャ910は、システムデザイナ900の構成要素に接続され、それらの間でデータを伝送する。システム設計マネージャ910はまた、システムデザイナ900に入力される設計情報に精緻化を行ってもよい。精緻化は、情報の構文が正しいことを確実にするように、設計情報を再検討することを含んでもよい。
【0067】
ブロック920は、合成ユニットを表す。本発明のある実施形態によると、合成ユニット920は、システムの高水準記述からシステムの論理表現を生成するステップを含む精緻化および抽出を行う。システムの高水準記述は、回路図、VHDL、Verilog、または他の設計定義の形態であってもよい。論理表現は、システムに必要とされる論理ゲートおよび論理要素等の機能ブロックおよびレジスタ(「構成要素」)を含む表現を含んでもよい。合成ユニット920は、レジスタリセットを分析し、特定のリセット条件下において、冗長となるシステムの部分を同定するリセット分析および解除ユニット921を含む。分析は、各レジスタリセットに対して、冗長性の影響のコストを算出するステップを伴う。これらのシステムの冗長部分に対して、サポートレジスタリセットと関連付けられた回路が、算出されたコストに基づいて解除される。システムの冗長部分に対する、サポートレジスタリセットと関連付けられた回路の解除後に、最適化が、改訂されたシステム設計に適用される。最適化は、レジスタリタイミング、微妙な状態機械再合成、および他の最適化プロシージャを含んでもよい。最適化は、大型/コースブロックが最適化されるRTL合成、および単純ブロックが最適化されるゲートレベル合成を含んでもよい。合成ユニット920はまた、最適化論理設計上でマッピング(技術マッピング)を行う。本発明のある実施形態によると、マッピングは、標的デバイス上で利用可能なリソースによって、最適化論理表現において論理ゲートおよび論理要素をどのように実装するかを決定するステップを含む。利用可能なリソースとして、LUTおよび他のリソースが挙げられ得る。本発明のある実施形態によると、ネットリストが、マッピングから生成される。このネットリストは、HDLから生成される最適化技術マッピングネットリストであってもよい。
【0068】
ブロック930は、配置ユニットを表す。配置ユニット930は、標的デバイス上のどの構成要素または領域が、特定の機能ブロックおよびレジスタのために使用されるかを決定することによって、標的デバイス上にシステムを配置する。システムデザイナ900のある実施形態によると、配置ユニット930は、最初に、クラスタ内に最適化論理設計の複数部分をどのように実装するかを決定する。クラスタは、論理設計上の構成要素の一部を表してもよい。クラスタは、例えば、一緒にグループ化された標準セルの数によって表されてもよい。本実施形態において、最適化論理設計の複数部分がクラスタ内に実装された後、クラスタは、標的デバイス上の特定の部分にクラスタを割り当てることによって配置されてもよい。配置ユニット930は、標的デバイス上のリソースの良好な割当を決定するために、コスト関数を利用してもよい。
【0069】
ブロック940は、経路設定ユニットを表す。経路設定ユニット940は、論理設計の機能ブロックおよびレジスタを実装する構成要素間の相互接続を提供するために使用する、標的デバイス上の経路設定リソースを決定する。
【0070】
ブロック950は、アセンブリユニットを表す。アセンブリユニット950は、システムデザイナ900によって行われるコンパイルプロシージャによって決定される情報を含む、データファイルを作成する。データファイルは、標的デバイスをプログラムするために使用され得る、ビットストリームであってもよい。本発明のある実施形態によると、生成されるデータファイルは、システムの設計がさらに処理されることを可能にするように、別のコンピュータシステムに伝送されてもよい。代替として、データファイルは、システム設計に従って標的デバイスをプログラムするために使用されてもよい、別のコンピュータシステムに伝送されてもよい。データファイルで標的デバイスをプログラムすることによって、標的デバイス上の構成要素は、システムを実装するように物理的に変換される。システムの設計は、表示デバイスまたは他の媒体上等で、他の形態で出力されてもよいことを理解されたい。
【0071】
図10は、本発明のある実施形態による、リセット分析および解除ユニット1000のブロック図である。リセット分析および解除ユニット1000は、図9に例示されるリセット分析および解除ユニット921を実装するために使用されてもよい。リセット分析および解除ユニット1000は、リセット分析および解除マネージャ1010を含む。リセット分析および解除マネージャ1010は、リセット分析および解除ユニット1000内の構成要素に連結され、その間で情報を伝達する。
【0072】
リセット分析および解除マネージャ1000は、リセット同定ユニット1020を含む。リセット同定ユニット1020は、同期リセットを同定するように動作する。本発明のある実施形態によると、リセット同定ユニット1020は、図6に例示されるプロシージャを行い、システム内の信号から、同期リセットを同定してもよい。
【0073】
リセット分析および解除ユニット1000は、冗長部分同定ユニット1030を含む。本発明のある実施形態によると、冗長部分同定ユニット1030は、共通同期リセットxを有するレジスタセットR(x)を同定し、リセット条件をレジスタセットR(x)内の各レジスタyに同時に適用し、システム内の論理の条件を分析し、リセット条件が適用されるとき、システムの他の論理に影響を及ぼさないシステムの部分を同定することによってシステムの冗長部分を同定する。
【0074】
リセット分析および解除ユニット1000は、コスト算出ユニット1040を含む。コスト算出ユニット1040は、同定されたシステムの冗長部分に基づいて、各レジスタyに対するコストを算出する。本発明のある実施形態によると、コストは、冗長となるシステムの一部、論理ゲートの数、および/または冗長となる配線の数あるいは長さ、冗長となる回路の深度、もしくは他の測定基準に基づいてもよい。
【0075】
リセット分析および解除ユニット1000は、リセット解除ユニット1050を含む。リセット解除ユニット1050は、コスト順に、解除のために以前にマークされていないレジスタセットR(x)内の各レジスタyにリセット条件を適用する。リセット解除ユニット1050は、解除のために以前にマークされていないレジスタR(x)内のレジスタすべてが、リセット条件が適用されるまで、解除のためのリセット条件の適用から生じる、システムの冗長部分をマークする。次いで、解除のためにマークされている、各レジスタにおけるリセットが、解除される。解除のためにマークされたレジスタにおいて、同期リセットを解除するとき、同期リセットがレジスタに存在する場合、リセットが、解除される。しかしながら、リセット信号がデータ入力に連結される場合、接続は、レジスタから、単一論理出力ノードを通して、同期リセット信号へと逆行してトレースされてもよく、その場合、リセット信号は反対の値に設定される。
【0076】
本発明の実施形態は、冗長リセット信号を同定を解除するステップを参照して論じられた。本発明の実施形態はまた、同様に、冗長プリセット信号を同定および解除するために使用されてもよいことを理解されたい。
【0077】
本発明の実施形態は、命令を有するコンピュータ可読または機械可読媒体を含み得る、コンピュータプログラム製品、またはソフトウェアとして提供されてもよいことを理解されたい。コンピュータ可読または機械可読媒体上の命令は、コンピュータシステムまたは他の電子デバイスをプログラムするために使用されてもよい。機械可読媒体は、フロッピー(登録商標)ディスク、光ディスク、CD−ROM、光磁気ディスク、または電子命令を記憶するために好適な他の種類の媒体/機械可読媒体を含んでもよいが、それらに限定されない。本明細書で説明される技術は、いずれの特定のソフトウェア構成にも限定されない。それらは、任意の計算または処理環境で適用性を見出してもよい。本明細書で使用される「コンピュータ可読媒体」または「機械可読媒体」という用語は、コンピュータによって実行するための命令のシーケンスを記憶または符号化することが可能であり、本明細書で説明される方法のうちのいずれか1つをコンピュータに行わせる任意の媒体を含むものとする。さらに、当技術分野では、1つの形態または別の形態(例えば、プログラム、プロシージャ、プロセス、アプリケーション、モジュール、ユニット、論理等)のソフトウェアを措置を講じるか、または結果を引き起こすものであると言うことが一般的である。そのような表現は、処理システムによるソフトウェアの実行が、結果を生じる動作をプロセッサに行わせることを述べる簡便な方法にすぎない。
【0078】
図11は、本発明のある実施形態による、標的デバイスを実装するために使用され得るデバイス1100を例示する。デバイス1100は、複数の論理アレイブロック(LAB)を含む、フィールドプログラマブルゲートアレイ(FPGA)である。各LABは、複数の論理ブロック、キャリーチェーン、LAB制御信号、参照テーブル(LUT)チェーン、およびレジスタチェーン接続ラインから形成されてもよい。論理ブロックは、ユーザ論理関数の効率的な実装を提供する論理の小単位である。論理ブロックは、1つ以上の組み合わせセルを含み、各組み合わせセルは、単一の出力およびレジスタを有する。本発明の一実施形態によると、論理ブロックは、Altera(登録商標)Corporationによって製造されているStratixまたはCycloneデバイスで見られるもの等の論理要素(LE)、またはXilinxInc.によって製造されているVirtexデバイスで見られるもの等の組み合わせ論理ブロック(CLB)と同様に動作してもよい。本実施形態において、論理ブロックは、構成可能なレジスタを有する4入力LUTを含んでもよい。本発明の代替実施形態によると、論理ブロックは、Altera Corporationによって製造されているStratixデバイスで見られるもの等の適応論理モジュール(ALM)と同様に動作してもよい。LABは、デバイス1100にわたって、行および列にグループ化されてもよい。LABの列は、1111−1116として示される。論理ブロックは、付加的または代替構成要素を含んでもよいことを理解されたい。
【0079】
デバイス1100は、メモリブロックを含む。メモリブロックは、例えば、最大で種々の周波数で最大で種々のビット幅の専用の真のデュアルポート、単純デュアルポート、または単一ポートメモリを提供する、二重ポートランダムアクセスメモリ(RAM)ブロックであってもよい。メモリブロックは、選択されたLABの間でデバイスにわたって列にグループ化されるか、またはデバイス1100内で個別に、あるいは対になって位置してもよい。メモリブロックの列は、1121−1124として示される。
【0080】
デバイス1100は、デジタル信号処理(DSP)ブロックを含む。DSPブロックは、加算または減算特徴を有する種々の構成の乗算器を実装するために使用されてもよい。DSPブロックは、シフトレジスタ、乗算器、加算器、および累算器を含む。DSPブロックは、デバイス1100を横断する列にグループ化されてもよく、1131として示される。
【0081】
デバイス1100は、複数の入力/出力要素(IOE)1140を含む。各IOEは、デバイス1100上のIOピン(図示せず)にフィードする。IOE1140は、デバイス1100の周辺の周囲におけるLAB行および列端に位置する。各IOEは、双方向IOバッファと、入力、出力、および出力イネーブル信号をレジスタするための複数のレジスタとを含んでもよい。
【0082】
デバイス1100は、標的デバイス上の構成要素間で信号を経路設定するように、LABローカル相互接続ライン、行相互接続ライン(「H型ワイヤ」)、および列相互接続ライン(「V型ワイヤ」)(図示せず)等の経路設定リソースを含んでもよい。
【0083】
前述の明細書において、本発明の実施形態は、その具体的な例示的実施形態を参照して説明されている。しかしながら、本発明の実施形態のより広い精神および範囲から逸脱することなく、種々の修正および変更が行われてもよいことが明白となるであろう。したがって、本明細書および図面は、限定的な意味よりもむしろ例示的な意味で見なされるものである。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11