JP4800548B2 - 集積回路論理要素 - Google Patents
集積回路論理要素 Download PDFInfo
- Publication number
- JP4800548B2 JP4800548B2 JP2001583387A JP2001583387A JP4800548B2 JP 4800548 B2 JP4800548 B2 JP 4800548B2 JP 2001583387 A JP2001583387 A JP 2001583387A JP 2001583387 A JP2001583387 A JP 2001583387A JP 4800548 B2 JP4800548 B2 JP 4800548B2
- Authority
- JP
- Japan
- Prior art keywords
- integrated circuit
- circuit logic
- data
- logic element
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/331—Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
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)
- Logic Circuits (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Description
この出願は、参照によって組み込まれている、継続中の、2000年5月11日に出願した米国特許出願09/569,695号の一部継続出願であり、その優先権を主張している。ライアン&ライアンの整理番号が220/290、名称が「最適化エミュレーション及びプロトタイピング構造」である、1997年11月12日に出願した米国特許出願08/968,401号は、その全てを参照によって組み込まれ、本出願の部分を形成している。
【0002】
【発明の属する分野】
本発明の分野は、一般的にはエミュレーションシステムのための集積回路チップに関し、特に、レースタイム問題(race time problem)を除去するホールドタイムアルゴリズム(hold time algorithm)を有するエミュレーションシステムのための改良された論理要素に関する。
【0003】
【従来の技術】
在庫がある構成要素として手に入れることができる(すなわち、商業的に手に入れることができる)一般目的のプログラマブル論理チップ(プログラム可能な論理チップ)は、一般的には、論理エミュレーション、プロトタイピング(prototyping)及びコンピューティング(computing)等の特別の応用のためにカスタム設計されない。一般目的のプログラマブル論理チップの例は、フィールドプログラマブルゲートアレイ(field programmable gate array)(“FPGA”)、プログラマブル論理アレイ(programmable logic array)(“PLA”)及びプログラマブルアレイ論理(programmable array logic)(“PAL”)である。
一般目的のプログラマブル論理チップは、ハードウェア論理エミュレーション、プロトタイピング及びコンピューティング等の応用の初期の開発段階では十分に役に立っていた。
しかしながら、これらの応用では、一般目的の論理チップは、いくつかの欠点を有している。多くの一般目的の論理チップは、他の目的より速さと密度(すなわち、どのくらいの論理ゲートが単一のチップに実装可能か)を強調した。大部分の応用に対する費用効果をあげるためには、一般目的のプログラマブル論理構造は、その中に設計を納めることができるために十分なルーティングリソース(routing resource)を提供し、大部分の有用な論理ゲートを集積回路内で使用可能にする必要がある。
しかしながら、一般目的のプログラマブル論理構造では、ゲートカウント(すなわち、チップを必要とするプログラマブル論理チップの製造者が実装可能なゲートの数)がチップの定格容量の範囲内であっても、常に、与えられた設計またはパーティション(区分)(partition)が実装できない可能性を有している。また、編集処理の速度は、一般目的の論理チップでは、あまり重要ではない。
【0004】
【発明が解決しようとする課題】
対照的に、論理エミュレーション、プロトタイピングまたはコンピューティングの応用では、優先度が異なる。論理チップは、通常、大きな、複合チップシステム(multi-chip system)(しばしば、数十または数百の論理チップを有する)の部分である。大きな入力設計ネットリスト(input design netlist)は、最小のユーザの介在で、非常に高い成功率で、全てのこれらの論理チップ内に自動的に編集される必要がある。ネットリストは、設計の構成要素(すなわち、論理ゲート)及び構成要素がどのように相互接続されるかを指定する論理設計の記述である。ネットリストの各“ネット”(net)は、構成要素または入力/出力パッド上のピンの間の回路通路を定義する。これらの応用で使用される論理チップが、ほとんどいつも、大部分の論理リソースが完全に自動的な編集処理によって使用できるほど十分に柔軟性と能力を有するルーティングリソースを提供することは、本質的なことである。この編集処理は、迅速に実行されなければならない。編集時間を速くすることにより、ユーザの設計がエミュレータシステムに提供されてから、全ての論理チップがプログラムされ、ユーザの設計を実行する準備ができる(すなわち、ユーザの設計をエミュレートする)までに必要な時間を最小化する。
【0005】
一般目的の論理チップの目的と、エミュレーション、プロトタイピング及びコンピューティングの応用で使用される論理チップの目的の違いにより、論理エミュレーション、プロトタイピング及びコンピューティングの応用のために特殊化された論理チップが必要である。
【0006】
さらに、できるだけルーティングの失敗の可能性を減少させなければならないエミュレーションに使用される集積回路の設計及び相互接続の柔軟性によって、エミュレートされるゲートの容量を高度に予測することができ、所定のタイミング問題を解決することができる。非常に大きい設計を多くのプログラマブル論理チップにパーティショニング(区分け)(partitioning)する際の共通の問題は、元のネットリストのタイミングが保持されないということである。元の設計の通常の区分けは、おそらく、最終の単一チップの実装時におけるタイミングを反映する。しかしながら、ネットリストをプログラマブル論理ターゲット(programmable logic target)に再構成及び再区分けするソフトウェアは、そのターゲットに対して異なる区分けを課するに違いない。信号通路の遅延は、大きくなるが、一様ではない。これらの遅延の拡大の違いは、設計ネットリストに固有ではないが、タイミング問題(すなわち、スキュー、セットアップ及びホールド妨害)を引き起こす。時には、設計ネットリスト内に存在するタイミング問題は、プログラマブル論理システムへのマッピング(mapping)によって隠れてしまう。これらのタイミング問題は、ユーザまたはエミュレーターにとって不満足である。エミュレーション構造は、加えられたタイミング問題を検出し、これらのタイミング問題を除去するためのハードウェアを有する必要がある。
【0007】
エミュレーション集積回路は、従来、より複雑なブロックを形成するために一緒に結合され、その後完全なチップを形成するために結合される、所望の論理機能を実行可能な簡単な論理ブロックを有する、多段レベル階層状に構成されている。典型的には、相互接続の量は、階層の最も低いレベルで最も多く、高いレベルでは減少する。結果的に、最も低いレベルの相互接続の設計は、チップの全サイズ及びコストに大きく影響する。
【0008】
階層の最も低いレベルでの相互接続は、従来、(1)論理要素(例えば、Xilink 4000シリーズで使用されているFPGA)の列と行を相互接続する、部分的に埋められる(partially populated)マルチプレクサ構造、または、(2)論理要素の小グループ(例えば、Altera Flex 8000で使用されているFPGA群)を相互接続する完全クロスバー(full crossbar)を介して達成されていた。しかしながら、部分的に埋められるマルチプレクサ構造は、制限されたルーティングの柔軟性の悩みがある。1つの論理要素から他の論理要素への多くのローカル接続(local connection)を必要とする回路設計は、与えられたチップ内の全てにおいてルーティング可能ではなく、あるいは、論理要素間を完全にルーティングするために非常に複雑なソフトウェア及び長い計算時間を必要とする。
【0009】
階層の最も低いレベルでの完全クロスバー相互接続は、論理要素の小グループ間の完全な相互接続性を保障することによって、部分的に埋められるマルチプレクサ相互接続の問題を回避している。しかしながら、完全クロスバー相互接続構成に対する欠点は、完全クロスバーを実装するために必要なシリコンの量である。必要なシリコンの面積は、相互接続される論理要素の数の2乗に比例する。このように、論理要素の少数の場合にのみ、コストが高くなる前に、完全クロスバーを介して相互接続可能である。1例として、Altera Flex 8000のチップ内の最も低いレベルは、8つの論理要素を有している。このような小さな、低レベルのブロックを使用して大きな集積回路を構築することは、膨大な数のブロックや相互接続信号がチップ内の高いレベルで必要なため、困難である。
【0010】
論理要素は、エミュレーションシステムのための集積回路チップを構築するために順に使用される論理ブロックの基本的な骨格ブロックであるため、エミュレーションにおいてより高い正確性及び効率性を達成するためには、論理要素内の改良が必要である。レースタイム問題及び動作関連問題は、現在の論理要素を改良する必要性を生じさせる。また、機能のテスト及び調査を提供する必要がある。
従来のシステム及び回路の更なる制限及び欠点は、当業者には、図面を参照して本発明の応用の残りの部分を見直した後に明らかになるであろう。
【0011】
【課題を解決するための手段】
本発明の種々の異なるアスペクトは、エミュレーションシステムのための改良された回路内に見出すことができる。改良された回路は、RAM、ルックアップテーブル、オプションの遅延要素及びフリップフロップ/ラッチを有する論理要素を備えている。フリップフロップ/ラッチは、フリップフロップまたはラッチとして動作し、別々のセット及びリセット信号を有している。遅延要素は、レースタイム問題を軽減するために、論理要素のデータ通路内に選択可能な遅延量を挿入する。論理要素は、RAMの大きさを増大させるために、入力信号を分配するように結合される。また、改良された回路は、論理要素からの標本抽出データを格納し、デバッグ目的のためにエミュレーションデータを再生するために使用されるシャドウメモリ(shadow memory)を有している。複数の読出ポートによって、ユーザは、時間多重方法でエミュレーションを行っている間に、改良された回路からデータを読み出すことができる。入力/出力ピンは、複数の信号を一方方向または双方向に搬送するために時間多重化される。また、改良された回路は、レースタイム問題を軽減するために、ホールドタイムアルゴリズムを有している。
【0012】
第1に、本発明の別のアスペクトは、論理要素のデータ通路内に調整可能な遅延量を挿入する遅延要素を論理要素が含んでいるエミュレーションシステムにおいて使用する集積回路の論理ブロックのための論理要素である。
第2に、本発明の別のアスペクトは、別々のセット及びリセット信号を有するフリップフロップラッチを論理要素が含んでいるエミュレーションシステムにおいて使用する集積回路のための論理要素である。
第3に、本発明の別のアスペクトは、論理要素が6つの入力のルックアップテーブルを含んでいるエミュレーションシステムにおいて使用する集積回路のための論理要素である。
第4に、本発明の別のアスペクトは、論理要素からの標本抽出データを格納し、そのデータをユーザに対する表示のために再生するメモリを有するエミュレーションシステムにおいて使用する集積回路である。
第5に、本発明の別のアスペクトは、各論理要素が、RAMを有し、より大きなRAMを生成するために結合されるエミュレーションシステムにおいて使用する集積回路のための論理要素である。
第6に、本発明の別のアスペクトは、複数の読出ポートを有し、ユーザが、時間多重方法でエミュレーションを行っている間に、改良された回路からデータを読み出すことができるエミュレーションシステムにおいて使用する集積回路である。
第7に、本発明の別のアスペクトは、複数の信号を一方方向に搬送するために、入力/出力ピンが時間多重化されているエミュレーションシステムにおいて使用する集積回路である。
第8に、本発明の別のアスペクトは、複数の信号を双方向に搬送するために、入力/出力ピンが時間多重化されているエミュレーションシステムにおいて使用する集積回路である。
第9に、本発明の別のアスペクトは、前記した別のアスペクトのいずれかを、個々にまたはいくつかを結合して実行するエミュレーション方法である。
第10に、本発明の別のアスペクトは、個別またはいくつかを結合する、前記した別のアスペクトのいずれかである。
本発明の他のシステム、方法、特徴及び利点は、以下の図面及び詳細な説明を考査することによって当業者に明らかとなる。全ての追加のシステム、方法、特徴及び利点は、この記述内に含まれ、本発明の範囲内にあり、添付の請求の範囲によって保護されるように意図されている。
本発明は、以下の図面を参照することによってよりよく理解することができる。図面中の構成要素は、本発明の原理を説明するために配置されており、必ずしも、大きさや強調に対するものではない。さらに、異なる図面を通して、同じ参照数字は対応する要素を示している。
【0013】
【発明の実施の形態】
本発明の現時点での好ましい装置及び方法を説明する。
エミュレーションに最適であるためには、論理チップは、何回でも電気的に再構成可能であり、あらゆるデジタル結合論理ネットワークに応じて構成可能であり、あらゆるデジタルネットワークに自由に接続可能である必要がある。以下の一般的な論議は、図面を参照して一般的な背景を提供する。さらに、プログラマブル論理システム及び相互接続ネットワークの詳細な説明は、本出願の譲受人に譲り受けられている、米国特許第5,036,473号、米国特許第5,109,353号、米国特許第5,448,496号及び米国特許第5,452,231号に記載されている。米国特許第5,036,473号、米国特許第5,036,353号、米国特許第5,448,496号及び米国特許第5,452,231号の記載は、全て参照により組み込まれている。
【0014】
本発明にしたがって構築された集積回路は、結合論理機能(例えば、ANDゲート、ORゲート)、シーケンシャル論理機能(例えば、フリップフロップ、ラッチ等)及び蓄積機能を提供するようにプログラム可能な内部論理ブロックを含んでいる。各論理ブロックは、論理ブロックを特別な論理ブロックそれぞれの外部の回路に相互接続するために使用される、複数の入力/出力(“I/O”)ピンを含んでいる。
また、集積回路は、外部入力/出力(“I/O”)パッド及びプログラマブル相互接続を含んでいる。外部I/Oパッドによって、他のチップ及び装置に接続することができる。プログラマブル相互接続は、論理ブロック及び/またはI/Oパッド間に信号を通す。特に、プログラマブル相互接続は、部分クロスバー相互接続構造を使用する。
【0015】
3つのレベルの階層を有するプログラマブル論理チップが、図1Aに示されている。このチップの階層は、後述する。
第1レベルの論理ブロックは、L0ブロック525として表される。L0ブロック525は、それぞれ小さい結合論理機能及び/または少量の蓄積を提供する、多くの論理要素(LE)526を含んでいる。時には、論理要素は、集積回路内の基本構築ブロックであるため、論理ユニット(LU)として表される。LE526は、X0相互接続527として表される相互接続によって相互接続される。X0相互接続527は、相互接続の次のレベルへの接続を可能にするためのI/Oピン528を有している。
【0016】
第2レベルの論理ブロックは、L1ブロック505として表されている。L1ブロック505は、X1相互接続521として表される相互接続によって相互接続される多くのL0論理ブロック525を含んでいる。X1相互接続521は、次のレベルに接続するためのI/Oピン522を有している。
第3レベルの論理ブロックは、L2ブロック425として表されている。L2ブロック425は、多くのL1論理ブロック505を含んでいる。L1論理ブロック505は、X2相互接続511として表される相互接続によって相互接続される。X2相互接続511は、I/Oピン512を有している。
本発明の現時点での好ましい実施の形態では、単一のL2論理ブロックは、全てプログラム可能な論理チップを有している。そのI/Oピン512は、チップがまとめられる時に外部のピンまたは導線に接続されるチップI/Oパッド435に接続する。
【0017】
各レベルでの論理ブロックの論理容量を支持するために、十分なI/Oピンが必要である。X0相互接続527、X1相互接続521及びX2相互接続511の各々の好ましい大きさは、相互接続されるI/Oピンの数の関数である。最適なバランスは、使用されるレベルの総数、各レベルにおける論理ブロックの大きさ、各レベルにおける論理ブロックI/Oピンの数及び相互接続の最終の大きさの間である。
【0018】
図1Aの多段レベル階層状に相互接続されているプログラマブル論理チップ内のX0相互接続527、X1相互接続521及びX2相互接続511は、多くの異なる構造の1または複数を使用可能である。例えば、クロスバーベースの構造(crossbar-based architecture)は、完全にまたは部分的に埋められている単一の簡単なクロスバー、あるいは複数の簡単なクロスバーを有する部分クロスバー相互接続が使用される。
【0019】
図1Aのプログラマブル論理チップの1つの可能なフロアプラン(floor plan)が、図1Bに示されている。図9は、図1BのL2論理ブロック1100配列の論理構造を示している。
単一のL2論理ブロック425は、エミュレーション及びプロトタイピングチップとして機能するように構成されている。L2チップの階層425では、複数のX2クロスバーが、複数のL1論理ブロック505間のX2部分クロスバー相互接続511を形成する。各L1論理ブロック505は、複数のL0論理ブロック525間にX1部分クロスバー相互接続521を形成する複数のX1クロスバーを含んでいる。各L0論理ブロック525は、複数の論理要素(図示していない)を相互接続するX0相互接続を含んでいる。入力/出力パッド435は、L2論理ブロックI/Oピンに接続される。いくつかのパッドは、第2の制御目的と、電力及びグランド接続のために使用される。
【0020】
X2部分クロスバー相互接続1120内には、72のX2クロスバー1110が存在する。各X2クロスバーは、それぞれL1論理ブロックI/Oピンに接続される、32個のローカル端子(local terminal)を有している。各X2クロスバーは、それぞれL2論理ブロックI/Oピン1190である、16個の外部端子を有している。L2論理ブロック1100は、432個のパッド1190を含んでいる。そのうちの288個のパッドは、L2論理ブロックI/Oピン1190に接続されるパッドである。残りのパッドは、第2の制御目的、電力及びグランド接続のために使用される。
【0021】
それぞれ288個のI/OピンとX1部分クロスバー相互接続1150を含んでいる、8個のL1論理ブロック1130が存在する。X1部分クロスバー相互接続1150は、18個のX1クロスバー1140を有している。各X1クロスバーは、それぞれL0論理ブロックI/Oピンに接続されている、32個のローから端子を有している。各X1クロスバーは、それぞれL1論理ブロックI/Oである、16個の外部端子を有している。各L1論理ブロック1130は、それぞれ72個のI/OピンとX0相互接続1170を含んでいる、8個のL0論理ブロック1160を含んでいる。X0相互接続1170は、36個の論理要素(LE)1180を接続する。各LE1180は、メモリ要素、フリップフロップ/ラッチ及びプログラマブル遅延要素を含んでいる。各L1論理ブロック1130内には、288個のLE1180が存在する。したがって、L2論理ブロック1100内には、2304個のLE1180が存在する。
このようなプログラマブル論理チップ上のL2論理ブロックは、大きさとルーティングの効率によってのみ選択が指示される、多くの他の可能な配置に応じて配列される。
【0022】
図1Aの多段レベル階層状に相互接続されたプログラマブル論理チップの特別な実施の形態である図2に示すように、1個のL0ブロック525に36個のLE526、1個のL1ブロック505に8個のL0ブロック525、1個のL2ブロックに8個のL1ブロック505が存在する。1個のL1ブロック505に18個のX1相互接続ネットワーク521、合計1152のI/0信号を搬送するL2ブロック1個に72個のX2ブロック511、そして288個のI/Oブロック435が存在する。
勿論、本発明は、これらの構成要素の特定の数に限定されるものではない。特別の構成要素の数及び多段レベル階層におけるレベルの数は、任意の適当な数の中から選択可能である。
【0023】
次に、クロスバー相互接続階層の例を説明する。
簡単なクロスバー410の概略ブロック図を図3に示す。クロスバー410は、ローカル端子411間に接続を確立するようにプログラム可能である。クロスバー410が完全に埋められる場合には、任意のローカル端子411から1または複数の他のローカル端子411への接続がプログラムされる。部分的に埋められる場合には、全ての接続ではないが、いくつかの接続がプログラムされる。部分的に埋められるクロスバーは、ハードウェアに関しては安いコストであるが、相互接続に関しては低い能力であり、また、接続を決定するためにより複雑なソフトウェアまたは追加のソフトウェア手続が必要である。
【0024】
クロスバー410のための外部端子412が、図3に示されている。
クロスバー410は、外部端子412とローカル端子411間の接続を確立することができる。外部端子412と他の外部端子412間の接続は、必ずしも必要ではない。クロスバー410が部分クロスバー相互接続において使用される場合には、ローカル端子411は相互接続される論理ブロックに接続され、外部端子412は高レベル論理ブロックのためのI/Oピンとして使用される。
本明細書中に言及され、参照によって組み込まれている米国特許及び米国特許出願に記載されている多くの形式のクロスバーが使用可能である。これらのクロスバー410の実装形式は、本出願を満足するために使用可能な十分なルーティング性を有している限り、本発明の概念の範囲内である。例えば、クロスバー410は、ローカル端子411及び外部端子412の各々がプログラム可能な双方向送受信機(図示していない)に接続される、クロスポイント式クロスバー(crosspoint-type crossbar)であってもよい。
更に、任意の相互接続階層における変更も予想される。例えば、チップ上に部分クロスバー相互接続を実装する場合には、相互接続される論理ブロック、クロスバー及び相互接続線が、全て同じ媒体中に存在し、異なるパッケージに分けられないので、システムレベルでの形式とは異なる形式を採用する。
改良された論理要素を使用するエミュレーションシステムは、チップ上に部分クロスバー相互接続を実装するいくつかの方法を含んでいる。部分クロスバー相互接続は、単一レベル部分クロスバー相互接続よりも効率的に多数の論理ブロックを結ぶために、クロスバーの多段レベルを使用して、階層的に用いられる。
【0025】
各L1論理ブロック505の構成要素は、図4に示されている。
X1相互接続521は、クロスバー410(図3に示されている)の例である、ローカル端子916及び外部端子915を有するX1クロスバー520と、L0論理ブロックI/Oピン925を有するローカル端子916を接続する導線とにより構成されている。このX1相互接続521では、X1クロスバー520は、L0論理ブロック525に接続される。これにより、各L0論理ブロック525のI/Oピン925は、各L0論理ブロック525上で同じ分割を使用して、適当なサブセットに分割される。各X1クロスバー520のローカル端子916は、各L1論理ブロック505それぞれからのI/Oピン725の同じサブセットに接続される。外部端子915は、図2に示されているように、X2クロスバー510に接続されるL1論理ブロック505のI/Oピン725に接続される。
【0026】
L0論理ブロック525の数、各L0論理ブロック上のI/Oピン925の数、X1クロスバー520の数及び各X1クロスバー520上のローカル端子916の数にしたがって、各L0ブロック525とX1クロスバー520対の間の導線の数“n”が決まる。例えば、それぞれに64個のI/Oピン925を有する8個のL0論理ブロックと、それぞれ32個のローカル端子916を有する16個のX1クロスバー520が存在する場合、“n”は4である。すなわち、各L0ブロック525とX1クロスバー250の対の間に4本の導線が存在する。“n”の値が大きいほど、ルーティングが容易となり、ルーティングの成功の可能性が高くなる。
【0027】
クロスバー410の他の実装方法は、集積回路を設計する時に通常実行される、単一のシリコン型上における構成要素の直線配置により適合しており、また、作用上の利点を有しているため、特別な応用のためのプログラマブル論理チップでの使用により適している。このように、例えば、クロスバー410は、マルチプレクサ形式のクロスバーとして実装可能である。このクロスバーのマルチプレクサ実装は、クロスバーのプログラミングに比較的に影響されない、有利な伝播遅延を有している。
クロスバーの前記した形式についての詳細は、例えば、ライアン&ライアンの整理番号が220/290、発明の名称が「最適化エミュレーション及びプロトタイピング構造」である米国特許出願番号08/968,401号に開示されている。
【0028】
図5は、論理チップ上の関係する物理配列におけるL0論理ブロック525の基本構成要素を示している。
X0相互接続527は、長さ方向の一方側または両側に沿って配置されている論理要素(LE)526を有している。L0ブロック525のI/Oピン528は、X0相互接続527の端部の一方側または両側に設けられている。X0相互接続527は、完全に埋められる簡単なクロスバーまたは部分的に埋められる簡単なクロスバーまたは双方の組み合わせを含む、多くの異なる形式の1つ内に構築される。
【0029】
図6は、L0論理ブロック525内のX0相互接続527の1つの可能な実装を示している。
X0相互接続527は、2つのクロスバー、X0入力クロスバー600及びX0出力クロスバー700を有している。これにより、各クロスバーは、その機能に応じて最適化される。このX0相互接続527の特別な例では、クロスバーの他の形式も考慮されるが、X0入力クロスバー600は完全に埋められるクロスバーであり、X0出力クロスバー700は部分的に埋められるクロスバーである。
図7は、図6の完全に埋められるX0入力クロスバー600の論理表示を示し、X0入力クロスバー600(円602で示されている)に接続される各LEの各入力を示している。
同様に、図8は、部分的に埋められるL0出力クロスバーの論理表現であり、L0出力クロスバー(円702によって示されている)に接続されるLEのいくつかの出力を示している。
図6に戻り、X0入力クロスバー600は、LE出力560及びL0論理ブロックI/Oピン528から入力を得る。X0入力クロスバー600の出力は、各LE526の入力550に接続される。X0出力クロスバー700は、LE出力560から入力を得る。その出力は、L0論理ブロックI/Oピン528に接続される。
【0030】
図10及び11は、本発明の実施の形態にしたがって構築された論理要素LE526を示している。図11は、図10に示されていない詳細を示しているが、図13及び14に関連して後述するオプションの入力分配特徴を示していない。
論理要素526は、64ビットRAM100、RAM100内のルックアップテーブル98、オプションの遅延要素116及びプログラマブルフリップフロップ/ラッチ140を含んでいる。論理要素526には、調査フリップフロップ(プローブフリップフロップ)(probe flip flop)150及び捕獲アラッチ(キャプチュアラッチ)(capture latch)160が接続されている。
2つのクロック信号、CK114と高速(FAST)クロック112が存在する。64ビットRAM100は、アドレスビット102、データ入力104、書き込みイネーブル信号106及びCKクロック114を受信する。フリップフロップ/ラッチ140は、データ118、アクティブハイクロック(active-high clock)イネーブル信号142、クロックCK114、FASTクロック112、非同期リセット信号122及び非同期セット信号124を受信する。
論理要素526への6つの入力は、データビット出力114を出力するルックアップテーブル98にアドレスビットを供給する。論理要素526への入力は、典型的にはデータビットであるが、クロックとしても使用可能である。例えば、論理要素入力信号は、活性化されている時にはいつも、フリップフロップ/ラッチ140をクロックするために使用可能である。
【0031】
図11は、マルチプレクサ122のような入力マルチプレクサと、RESET信号122の値を選択するために使用されるプログラミングビット124を示している。同様に、入力マルチプレクサ126はプログラミングビット128によって制御され、入力マルチプレクサ130は複数のプログラミングビット132によって制御される。
ここで、入力マルチプレクサは、フリップフロップ/ラッチ140へのCKクロック信号114、クロックイネーブル信号142、SET信号124及びRESET信号122の状態を制御する。プロセッサは、RAMあるいはEPROM内に構成ビット(configuration bit)を書き込み可能である。
【0032】
この特別な実施の形態では、ルックアップテーブル98は、6までの変数を含む結合機能を実行する静的ランダムアクセスメモリ(SRAM)である。フリップフロップ/ラッチ140のCKクロック信号114、クロックイネーブル信号142、RESET信号122及びSET信号124を制御するためにルックアップテーブル98と入力マルチプレクサを組み合わせると、その入力が任意の信号を搬送するために自由に交換可能である論理要素526が生じる。例えば、与えられた信号が6つの論理要素入力ラインの1つに伝送されると、与えられた機能を種々の方法で実装することができる、適応性のある論理要素が生成される。論理要素入力が交換されると、それに応じてルックアップテーブル98の内容が変更され、論理要素は同じ機能を実装することができる。
同様に、入力マルチプレクサ(CKクロック、クロックイネーブル、リセットまたはセット)を制御する論理要素入力が交換されると、マルチプレクサを制御する構成ビットは、交換された入力を反映するように変更される。論理要素526への各入力の使用のそのような適応性によって、高レベルのブロック(L1及びL2ブロック等)のより良いルーティング性が生じる。
これらの論理要素526を使用することにより、殆どすべての結合またはシーケンシャル論理機能が実装可能である。また、論理要素526は、与えられた機能を実行するためにL0ルーティングの間自由に交換される。
【0033】
遅延要素116は、RAM100からデータ出力114を受信し、FASTクロック112によってクロックされる。
フリップフロップ/ラッチ140は、論理要素526によって実装される機能にしたがって、ラッチまたはフリップフロップとして動作する。フリップフロップは、クロック信号のエッジにより、そのD入力ラインのデータをQ出力ラインに転送する。一方、ラッチは、クロック信号が低レベルに低下するまで、D入力ラインからのデータをQ出力ラインに連続的に転送する。
データインマルチプレクサ(data-in multiplexer)443は、遅延要素116によって発生される遅延をデータ流内に選択的に挿入する。
フリップフロップ/ラッチ140は、データを予めロード可能である。フリップフロップ/ラッチ140は、立ち上がりエッジでトリガーされるフリップフロップまたは透明な(透過する)ラッチ(transparent latch)であり得る。その入力は、RAM100からの出力114または遅延要素116からの遅延された出力である。データインマルチプレクサ443の出力は、フリップフロップ/ラッチ140のD入力を駆動する。フリップフロップ/ラッチ140のQ出力は、データアウトマルチプレクサ(data-out multiplexer)442を介して論理要素の出力ピン120に供給され、同じL0論理ブロック内の他の論理要素に進むかL0論理ブロックからX1クロスバーネットワークに出る。
【0034】
フリップフロップ/ラッチ140は、特別な機能を実装するために論理要素526に対して必要とされる時に使用される。例えば、論理要素526が、ルックアップテーブル98によって提供される純粋な結合機能を簡単に実装する場合には、フリップフロップ/ラッチ140が必要となる。
フリップフロップ/ラッチ140からのQ出力は、論理要素の出力ピン120に進む。このように、論理要素526のQ出力120は、直接にRAM100からの出力114(遅延要素116によって加えられた遅延を有しまたは有さないで)またはフリップフロップ/ラッチ140からの出力Qを選択するようにプログラム可能である。
RAMメモリ出力114を論理要素526の構成要素を介して(直接よりも)X0相互接続ネットワークに送信することにより、メモリ出力をルーティングするために、追加のX0ルーティングラインを必要としない。代わりに、RAMメモリ出力114は、X0相互接続ネットワークを得るために、論理要素526の部分を単純に及び有意義に使用する。
同様に、RAM100は、信号を受信するために論理要素の入力ラインのいくつかを使用可能であり、追加のX0ルーティングラインは必要でない。さらに。6つの論理要素入力のいくつかのみがメモリ機能によって消費される場合には、残りの論理要素入力は、結合またはシーケンシャル論理機能に対して論理要素526によって使用可能である。いくつかの自由な入力ラインを有する論理要素526は、大きなメモリまたは異なる構成のメモリとして動作するために、ラッチデータ、ラッチアドレスまたは時間多重の複数のメモリに対して使用される。したがって、回路リソースは、より効果的及び効率的に使用される。
この論理要素設計は、必要な論理要素入力への接続の指示に対して、増加された密度、ルーティングの容易性及び自由度を提供する。この論理要素設計は、さらに、完全クロスバーの代わりに部分的に埋められるクロスバーを用いて容易にルーティングすることができる。
【0035】
CKクロック信号114はフリップフロップ/ラッチ140へのクロック信号として作用し、それによって、フリップフロップ/ラッチ140は、データをD入力ラインからQ出力ラインに転送する。クロックイネーブル信号142は、フリップフロップ/ラッチ140がCKクロック信号114に応答することを許可する。RESET信号122は、フリップフロップ/ラッチ140をクリアし、Q出力を「0」にリセットする。SET信号124は、フリップフロップ/ラッチ140のQ出力を「1」にセットする。
【0036】
公知のシステムでは、4ビットルックアップテーブルが、最小面積を有するテーブルを生じる。しかしながら、本発明にしたがって構築されるシステムの好ましい実施の形態では、6入力ルックアップテーブル98を有している。6入力ルックアップテーブル98は、図10及び11の64ビットRAM100の内部に存在する。
ルックアップテーブル98への入力の数が増加すると、粒状性が増加するが、増大したシリコン面積のコストが増大する。要求される相互接続の数を減少させる粒状性の増大は、システムの容量及び実行速度を改良する。基本的に、粒状性が増大すると、論理要素256はより多くのゲートを有し、論理要素526内のメモリ100は大きくなる。例えば、実施の形態では、6入力ルックアップテーブル98は16ビットメモリを許可するが、4入力ルックアップテーブルは4ビットメモリしか許可しない。
【0037】
フリップフロップ/ラッチ140は、リセット入力122と独立しているセット入力124を有している。図12は、マスターラッチ200、スレーブラッチ202、マスターラッチとスレーブラッチ間の遅延量を決定するスレーブパルサー(slave pulser)180を含む、フリップフロップ140の内部回路を示している。マスターラッチ200とスレーブラッチ202の双方が使用される場合には、図12の回路はフリップフロップとして動作する。スレーブラッチ202のみが使用される場合には、回路はラッチとして動作する。
したがって、独立したセット入力とリセット入力を有することによって、必要なゲートの数を減少させる結合論理の数が少なくなり、また、これらのゲートはクロック信号を必要とするので、ホールドタイム状態を改良する。追加の結合論理は、回路の複雑性及びタイミング問題を増加させる。しかしながら、独立したセット入力及びリセット入力を実装するためには、追加のピンが必要である。
【0038】
図17は、そのうちの2つが論理要素526のフリップフロップ140であるラッチ回路を示している。回路141は、ユーザがメモリセル360の状態を変化することを許可する回路362、364を有している。言い換えれば、回路362、364は、メモリセル360にラッチ機能を追加する。また、回路141は、非同期のセット入力122とリセット入力124を有している。
【0039】
高速クロック112(図11のFASTクロックまたはMUXCLK参照)は、その出力が、駆動部(ドライバ)によってゲートされた後、スレーブラッチ202をゲートするために進行するスレーブパルサー180を駆動する。マスターラッチ200のゲーティングは、LOAD信号及びクロックCK114によって決定される。クロックイネーブル信号142は、データ入力Dを受信する駆動部を制御する。各マスターラッチ200及びスレーブラッチ202内のセット信号124及びリセット信号122は、独立しており、分離している。
ホールドタイム妨害は、スレーブラッチ202のための新しいクロック信号を形成することにより、それまでの状態のフリップフロップ/ラッチ140のクロックCK114から出力Q120までの時間を延長することによって、データ通路ソースにおける遅延を加算することにより軽減される。
クロックCK114は、低レベルの時にマスターラッチ200を開く。通常、クロックCK114は、高レベルの時にスレーブラッチ202を開く。しかしながら、PSDLY[1]が「1」である場合には、スレーブラッチ202は、2つのスレーブパルサー出力Q0またはQ1の1つによって開けられる。Q0は、CKクロック114の立ち上がりエッジの後にFASTクロック112が高レベルになると同時に高レベルとなり、FASTクロック112が低レベルになる時に低レベルとなる。これにより、スレーブラッチ202を簡単に開く。
効果は、クロックCKから出力Q120までの時間をFASTクロックの1〜2期間延長することである。Q1出力が1サイクル後もパルスを出力するように選択されている場合には、クロックCKから出力Q120までの時間は、FASTクロックの2〜3期間延長される。
【0040】
フリップフロップ/ラッチ140がラッチとして使用される場合には(PFF=0)、マスターラッチ200は透明であり、スレーブラッチ202はラッチである。PSDLY[1]が「1」である場合には、ラッチは、クロックCK114の持続期間開かない。代わりに、CKクロック114の立ち上がりエッジの後、1〜3FASTクロックサイクルからFASTクロックの半期間開かれる。
また、論理要素526は、図10及び11に示されていないが、当該技術分野では周知である、追加の回路が含まれている。例えば、論理要素526は、さらに、ルックアップテーブル98をプログラミングするための論理、構成ビットをプログラミングするための論理、フリップフロップ/ラッチ140にデータをロード(負荷)するための論理、及び/または設計をデバッグするための外部ポートを介してフリップフロップ/ラッチ140の内容を読み出すための論理を有している。
【0041】
2つの論理要素526が対とされることによって、それらのRAMメモリ(16×1)は、(128×1)RAMを形成するために結合される。これを達成するために、図13に示すように、論理要素526の各対は、プログラミングビット(「PAIR」が付されている)222、入力マルチプレクサ対218、220及びゲート対224、226を有している。論理要素526は、同一である。
SELECT信号225とPAIR信号222は、論理要素526を制御する。論理要素526間の相互接続ネットワークは、論理要素526がデータを交換することを許可する(図13のALTIN及びALTOUT参照)。
アドレスADDR210と制御入力は、各論理要素526内で別々に分配され、RAMアドレスのためのA[5:0]と、制御入力及びクロック入力のためのC[5:0]を形成する。C[5:0]は、WE106、データ入力Din104、セット124、リセット122、クロック114及びクロックイネーブル142入力である。PAIRプログラミングビットが「0」である場合には、入力分配は行われない。
X0入力クロスバーからの偶数側の6つの入力206(「X0IN.LEAn.[5:0]」が付されている)は、偶数論理要素(even logic element)526のアドレス入力212及び制御入力210の双方に直接にルーティングされる。同様に、X0入力クロスバーからの奇数側の6つの入力208(「X01N.LEAn+1.[5:0]が付されている)は、奇数論理要素(odd logic element)526のアドレス入力216及び制御入力214の双方にルーティングされる。このように、論理要素526は、入力を分配しない。両論理要素526へのSELECT入力225は真(true)であり、RAMの書き込みイネーブルWE106及びRAMのDout出力114をイネーブルする。
【0042】
PAIRプログラミングビットが「1」である場合には、入力分配はない。X0入力クロスバーからの奇数側の6つの入力208は、両論理要素526のアドレス入力212、216にルーティングされる。X0入力クロスバーからの偶数側の6つの入力206は、両論理要素526の制御入力210、214にルーティングされる。このように、合計12の入力が、両論理要素526によって分配される
奇数側の6つの入力208は、両論理要素526内のRAMをアドレスする。偶数側の6つの入力206は、データインDin104、書き込みイネーブル106、両論理用要素526のためのフリップフロップ制御及び7番目のアドレスビット(偶数側のビット3)を提供する。7番目のアドレスビットが「0」である場合には偶数論理要素526のSELECT入力225が指示され、7番目のアドレスビットが「1」である場合には奇数論理要素526のSELECT入力225が指示される。選択された論理要素526に対しては、書き込みイネーブル106が能動化され、自身のRAM出力がフリップフロップ140の出力として使用される。切断された論理要素526に対しては、書き込みイネーブル106が抑制され、他の論理要素526のRAM出力が他の論理要素のALTOUT出力からそのALTIN入力で受信され、このRAM出力がフリップフロップ140の出力として使用される。
ここで、論理要素対は、単一の[128×1]RAMとして動作する。勿論、各論理要素内のメモリの大きさが変更される場合には、論理要素対は、異なる大きさのメモリとして動作する。論理要素526からの両出力120は、使用可能である。対とされた論理要素526のRAM100は、他の方法で、単一の論理要素の場合と同じ動作をする。
【0043】
図14に戻り、各論理要素526は、SELECT225及びPAIR222入力を受信する。PAIRが「0」の場合(通常の場合)には、PWE1が、[16×1]RAMモードに対してRAMアドレス入力4及び5を抑制するように設定する。PAIRが「1」である場合には、抑制がブロックされ全ての6つのアドレス入力が使用される。SELECT信号225が「0」である場合には、RAM100への書き込みイネーブル106がブロックされ、他の論理要素526からのRAMの出力が、ALTIN通路の使用に代えて選択される。SELECT信号225が「1」である場合には、論理要素は通常に動作する。
【0044】
図10及び11に示されているように、LEは、オプションのクロック遅延要素116を有している。PDDLYプログラミングビットが「1」である場合には、遅延要素116は、データ通路出力に遅延を加える。遅延要素116は、FASTクロック112によってクロックされるため、遅延量は正確に制御される。古いシステムは、その遅延が半導体の処理に依存し、そのため、厳密でなく制御できない遅延要素を使用した。実施の形態では、遅延要素116は、1/2クロックサイクルと2クロックサイクルの間の遅延を有するように制御可能である。遅延要素116の1つの実施の形態は、直接に接続され、FASTクロック112によってクロックされる、1対のエッジトリガフリップフロップ(edge-triggered flip flop)である。
遅延要素116によって、システムは、フリップフロップ/ラッチ140を論理要素として扱うことができる。遅延要素116によって遅延量を調整することにより、システムは、入力信号がホールドタイム障害を生ずることなくより早く変化できることを許容しながら、フリップフロップ/ラッチ140に要求されるホールドタイムを軽減することができる。
【0045】
1つまたは2つのFPGAの典型的なユーザは、チップによって保証されたホールドタイムを有する。しかしながら、エミュレーションシステム等の巨大なシステムでは、システム内の全てのクロックを同期化させるために特別の設計を考慮していない場合には、クロックひずみは、ホールドタイムを保証できないほど大きくなる。1/2クロックサイクル遅延から2クロックサイクル遅延範囲が不十分である場合には、遅延要素116に供給されるFASTクロック112は、減少または増加する。
実施の形態では、32メガヘルツ(MHz)または64MHzのFASTクロック112を使用しているが、任意の速度のクロックが考慮される。FASTクロック112の期間を変更することによって、必要な多くの遅延が挿入可能である。追加のデータ通路遅延は、論理要素を直列に結合し、通過遅延(pass-through delay)に対して最後ではないが全てをセットすることによって、プルグラム可能である。
【0046】
FASTクロック112は、遅延要素によって提供される遅延が正確に制御可能となるように遅延要素116をクロックするために使用される。また、FASTクロック112は、フリップフロップ/ラッチ140内のタイミング修正論理298(図15、21参照)をクロックするために使用される。
図21に示されているように、フリップフロップ140は、2つのラッチ200及び202を有している。ラッチ200はマスターステージ(master stage)であり、ラッチ220はスレーブステージ(slave stage)である。論理要素LE526が、フリップフロップベースの設計(flip flop based design)をエミュレートするために使用される場合には、両スレーブが使用される。論理要素LE526が、ラッチベースの設計(latch-based design)をエミュレートする場合には、スレーブラッチのみが使用される。
タイミング修正論理298は、正確な幅の2つの遅延パルスを生成するために、クロック114の立ち上がりエッジを使用する。2つのクロックのうちの1つは、スレーブラッチ202をクロックするために選択される。フリップフロップベースの設計をエミュレートする時には、スレーブステージをクロックするための遅延パルスを生成する回路298を使用することにより、マスターステージ200のためのクロックとオーバーラップしないことが保証される。そして、回路298は、エミュレートされた回路内の後続するフリップフロップへのクロックひずみ(clock skew)を補償するため、したがって、ホールドタイムを保障するために、データ出力を少し遅延させる。非オーバーラップクロック信号が、図16に示されている。
【0047】
タイミング修正回路298は、図15に示されているように、遅延されたスレーブラッチクロックを発生するパルス形成回路である。
非同期エッジ検出回路270は、クロック信号114を受信し、NANDゲート272、274、276、278及び280を有している。クロック信号11の立ち上がりエッジは、TRIG信号の能動高レベル主張(active high assertion)を生成する。フリップフロップ300は、FASTクロック112(図15では「FCLK」が付されている)の立ち上がりエッジによりTRIG信号の主張を検出する。フリップフロップ310は、FASTクロック112の立ち下りエッジによりTRIG信号の主張を検出する。
デモルガンの変形NANDゲート316は、フリップフロップ300、310の出力を受信し、基本的に、FASTクロック112の立ち上がり及び立ち下りエッジに同期化されたTRIG信号の新しい変形であるPN信号を生成する。
フリップフロップ320と350は、FASTクロック112の立ち上がりエッジによってクロックされる第1のステージ及びFASTクロック112の立ち下がりエッジによってクロックされる第2のステージを有する2つのステージシフトレジスタを形成する。PN信号はこれらの2つのステージを通して伝播するため、ANDゲート356は、FASTクロック112の立ち上がり及び立ち下がりエッジの位相差に等しい幅を有する能動高レベルパルス(active high pulse)を信号Q0に生成する。信号Q1は、同様の方法で生成されるが、FASTクロック112の1サイクルだけ遅延される。このように、Q0とQ1は、論理要素構成を介して使用するために選択される、遅延されたスレーブラッチ202のクロックである。このタイミング修正回路298は、図16のタイミング図を生成する。
【0048】
また、システムは、図11で捕獲ラッチと呼ばれているシャドウレジスタ(shadow register)を有している。
捕獲ラッチ160は、図18により詳しく示されている。CAPENB信号によってゲートされると、捕獲ラッチ160は、メモリセル361内のLE526のQ出力120のコピーを蓄積し、デバッグ目的のために使用される。捕獲アラッチ160の特別の実施の形態では、図18では非同期セット及びリセット入力が存在しないことを除いて、図17に示されているラッチ回路と同じ回路を使用する。
【0049】
捕獲ラッチ160の他に、システムは、再生RAMと呼ばれるシャドウRAMを有している。
RAM100は、例えば、[16×4](列×行)RAMである。RAM100は、4つの個別の[16×1]RAMとして動作可能である。4つのRAMの1つがエミュレーションデータを格納するために使用される場合には、他の3つの[16×1]RAMは、再生RAMとして動作する。再生RAMは、RAM100に追加の機能を与えることによって、論理要素526の現存するRAM100を改良する。
RAM100が、(1)ルックアップテーブル及び(2)メモリとして機能する時、再生RAMは、蓄積及び格納容量を有する再生機能を可能にする。この特別な実施の形態では、システムがデータをRAM100内の[16×1]メモリに書き込む時、データは、1から3の再生RAM(各々[16×1]の大きさ)内に同時に書き込まれる。
このように、RAM100内のメモリは、合計のメモリの大きさが[48×1]、それぞれ[16×1]の再生RAMを想定すると、再生RAM内に3つまでのシャドウコピーを有する。再生RAMは、システムをデバッグするために使用される道具である論理分析装置の動作を著しく改良する。
ここで、システムは、RAMメモリの3つまでのコピーを作る。各コピーは、異なる時点におけるメモリの状態を示している。論理分析装置は、システムをデバッグするために、蓄積されたデータを研究することができる。メモリで形成されるコピーの数が多いほど(全て時間的に異なる時点における)、再生がより滑らかになり、診断に有用な情報がより多くなる。
【0050】
図19は、シャドウRAMへの同時書き込みを実装するために使用される行デコーダを示している。
データがRAM100内の[16×1]RAMの1つに書き込まれる時、データは、RAM100内の他の[16×1]RAMの3つまでに同時にコピー/書き込み可能である。
図19の列デコーダ及び行デコーダは、データが格納されるRAM100内のメモリセルを選択するために使用される。図19の行デコーダは、一度に複数の行を選択することができるため、データを複数の他のメモリセルに同時に書き込ませる。行デコーダが3つの行を選択する場合、データは、3つの行と列デコーダによって選択された列との交点に配置されている3つのメモリセル内に書き込まれる。より詳しくは、対の通過トランジスタが、RAM100内の行を選択するためにオンされる。通常の場合には、出力Z(3)が能動化(高レベル)されると、トランジスタ370と372がオンする。しかしながら、信号CAPENBが能動化(高レベル)されている場合には、行デコーダは、データのコピーをシャドウRAMの少なくとも1つに蓄積する。特に、信号CAPENBが能動化されている時、ANDゲート371からの信号SHDW1がオンとなり、シャドウRAM内の行を選択する通過トランジスタ374及び376がオンする。同様に、通常の場合、出力Z(2)が能動化(高レベル)されている時、トランジスタ375及び177がオンする。
しかしながら、信号CAPENBが能動化(高レベル)されている場合には、ANDゲート373からの信号SHDW0がオンとなり、シャドウRAM内の行を選択する対の通過トランジスタ378及び380がオンする。
【0051】
シャドウRAM362は、蓄積及び修復機能も可能である。蓄積及び修復機能は、始めの時点の代わりに、中間の時点からエミュレーションを開始することを許可する。2つの論理要素が[128×1]RAMを形成するために結合される場合には、論理要素はシャドウメモリを有しないということに注意すべきである。
【0052】
デバッグ及びデータ分析の目的のために、各論理要素526のフリップフロップ/ラッチ140の出力からのデータだけでなく、遅延要素116からの、RAM100内の結合論理からのデータ出力も読み出す必要がある。このデータを読み出すために、各論理要素526は、一般的に図20に示されている、8つの読出ポートを有している。図20は、デバッグ目的のために使用される論理分析装置430の主要構成要素の論理図を示している。
【0053】
論理分析装置430は、調査フリップフロップ(プローブフリップフロップ)150を有している。各調査フリップフロップ150は、トレースクロック(trace clock)の立ち上がりエッジ(図20のTRENBまたは図21、22のD2TRENB参照)により、論理要素526内のデータの標本を捕獲する。
調査フリップフロップ150からデータを読み出すために、読出ポート436は、各論理要素526に接続されている調査フリップフロップ150によって分配される。この特別な実施の形態では、確かに、読出ポートの数は、望むように増加または減少するが、8つの読出ポート436が存在する。8つの読出ポート436は、全てのプローブフリップフロップ436が、16の調査データ流のいずれかへのランダムなアクセス方法で読み出されることを許可する。インクリメントカウンター432によってアドレスされる調査シーケンスメモリ434は、MUXCLK110の各サイクルでこれらの読出ポート436をアドレスする。
全てのフリップフロップ140からデータを読み出すゲートの観点から見た場合にはコストが非常に高くなるため、時分割多重構成が使用される。MUXCLK110は、エミュレーションチップが合計64の時間領域を有するように64に分割される。しかしながら、クロックパルスの立ち上がり及び立ち下がりエッジの双方を使用することによって、2つまでのデータのコピーが実行される。
読み出されたデータは、イベント検出器438及びパイプライン遅延FIFO(ファーストイン、ファーストアウト)(pipeline delay FIFO)バッファ440に送られる。FIFO440は、イベント検出器に対して1トレースクロックサイクルだけ調査データ流を遅延させる。また、随意選択可能に、システムの広範なイベント分析に対する時間を許可するために、調査データ流を7トレースクロックサイクルだけ遅延させる。
調査データ流は、L1ブロック505のX1相互接続521に接続され、結果的にはボードレベル(board-level)の同期グラフィックRAM(SGRAM)456にルーティングするために、いずれかの入力/出力ピンにルーティングされる。12個のイベント検出器438の各々は、8個のイベント出力全てに対して、16個までの調査フリップフロップ436を監視する。
【0054】
このように、イベント調査装置(eventable probe)(調査フリップフロップ150)の数は、各調査データ流における調査装置の数に12を乗算した値である。
この特別な実施の形態では、それぞれ64個までの調査フリップフロップ436を有する、16の調査データ流が発生される。これらの直列調査データ流は、任意の注文において任意の調査フリップフロップを含み、任意の入力/出力ブロックにルーティングされる。
エミュレーションチップ内の各位置がランダムにアクセス可能であるため、フィールドプログラマブルゲートアレイであるが、エミュレーションチップは、静的RM(SRAM)として動作する。この構造により、ユーザは、エミュレーションの間十分な標本抽出レートで、任意の回路ノードの完全に相互作用する調査とイベント定義を行うことができる。例えば、MUXCLK110が32MHzの場合には、最大1024個の調査フリップフロップ150が64個のMUXCLKクロックサイクル内で読み出すことができ、0.5MHzの標本抽出レートが達成される。16MHzの標本抽出レートでは、32個の調査フリップフロップは、各読出ポート436が1つのMUXCLKクロックサイクルで2回読み出されるため、1つの調査データ流で2回、すなわち、MUXCLK110が高レベルの時とMUXCLK110が低レベルの時に読み出し可能である。勿論、時間領域の数は、必要に応じて、変更、増加または減少可能である、
【0055】
図21は、読出ポート436の回路図であり、それらがどのように論理要素526の調査フリップフロップ150に接続されているかを示している。
第1の読出ポートは、調査フリップフロップ150の出力に接続されている。調査フリップフロップ150への入力は、マルチプレクサ442の出力(バッファとインバータの後)から到来する。マルチプレクサ442は、結合論理出力(遅延要素116によって遅延されまたは遅延されていない)またはフリップフロップ/ラッチ140のスレーブラッチ202からの出力である。
タイミング修正回路298は、スレーブラッチ202をゲートするために使用される2つのオーバーラップしていないクロックパルスを供給する。図18は、ブロック444内の回路を示している。
【0056】
図22は、読出ポート800が論理要素526にどのように接続されているかについての実施の形態を示している。
この実施の形態では、8個の読出ポート800が存在する。各論理要素526は、そのLEのQ出力120を調査フリップフロップ150送る。D2TRENBによってクロックされると、調査フリップフロップ150は、データをトリステート駆動部(3状態駆動部)(tristate driver)446に出力する。駆動部446は、本実施の形態では、論理要素526の1行に8ビットのラインが存在するため、実際には並列な8個の駆動部である。
また、論理部分析装置(LA)内には、1列に8ワードのラインが存在する。論理分析装置からの8ワードのラインは、8個の駆動部446の1つを選択して能動化する。駆動部446は、読出ポート800のそれぞれへの情報のビットを通す。このように、与えられた論理要素526内の8個の駆動部446は、8個の読出ポート800に8ビットを送る。情報の各ビットは、異なる読出ポート800に進む。
読出ポートのこの実施の形態では、読出ポート800は、144から1までの間のマルチプレクサ802と、MUXCLK110によってクロックされる3つのDフリップフロップ804を有している。144から1までの間のマルチプレクサ802は、各駆動部446からのビット、合計144ビットを受信し、調査シーケンスメモリ入力806に基づいて1つのビットを選択する。この選択されたビットは、フリップフロップ804の2つに入力される。フリップフロップ804は、ビット情報を調査データ808の16ビットとして同時にクロック出力させるように動作する。
【0057】
図23に戻って、X0入力の完全に埋められるクロスバー600のためのプリデコーダは、結果的に生じるチップの面積を減少させる。結果として、X0完全クロスバーは、2つのレベルを有している。第1のレベルはプリデコードを行い、第2のレベルはデコードを終了する。
クロスバー入力は、2から4個のデコーダ250が論理要素526に入力するためのクロスバー出力254を選択する4つのグループに分けられる。与えられたクロスバー入力に対して、各入力は、4つの入力グループのための共通ラインへのスイッチを有している。クロスバース出力における2つのプログラミングビットは、全てのグループの4つのスイッチの1つをオンする。各入力グループは、グループの共通ラインから実際のクロスバー出力254へのスイッチをオンする1以上のプログラミングビットを有する。
【0058】
図2に戻り、入力/出力ブロック436をより詳細に説明する。
入力/出力ブロック436は、例えば、図32に示すような実施の形態である。ピンの数を減少させるために、各入力/出力ピンは、時間多重化される。このように、各ピンは、4つの信号または所望の数の信号を搬送する。
この実施の形態における各入力/出力ブロック436は、4つの入力または出力ライン(A、B、C、D)を有している。クロスバー702内の入力/出力ブロックは、信号A、B、C及びDが、信号IO.n.0、IO.n.1、IO.n.2またはIO.n.3のうちの1つに多重化されるのを許可する。入力/出力パッド435からの1つの信号は、入力/出力パッド435が時間多重化方法で4つまでの別々の信号を搬送するように、信号A、B、CまたはDの1つに多重化される。
【0059】
図24に戻り、入力/出力ブロック436の主要構成要素は、入力/出力パッド435、入力/出力パッド435に接続され、ピンの競合によって生じる過電流から入力/出力パッドを保護しながら、入力/出力パッド435への出力信号を通す出力駆動部624、相互接続通路として役立つ多重化データ通路626、多重化データ通路626とX2相互接続の間に結合された入力/出力ピンクロスバー628及びクロック分割論理回路630である。
MUXCLK110は、各入力/出力ピンの位相を制御する。各ピンは、双方向であってもよいし、そうでなくてもよい。図25〜32に関連して以下に説明するように、変更例には、1つの信号、2つの信号または4つの信号を、双方向また一方方向方法で搬送するようにピンを構成することが含まれる。
信号A、B、C及びDは、入力/出力ブロック436に対して内部の信号を示している。一方、信号IO.n.0、IO.n.1、IO.n.2及びIO.n.3は、入力/出力ブロック436に対して外部の信号を示している。
出力駆動部624は、いずれかの出力の短絡を検出する過電流検出器及び電流制限回路を含み、専用の開放コレクタ出力パッド(open collector output pad)上に遮断を生成し、短絡されたピンの電流を安全レベルに制限する。短絡されたピンの位置は、後で、JTAGバスを介して判断される。
エラー検出論理は、パッドが駆動されている時にはいつも、入力/出力パッド435の状態を監視することによって、非多重化モードで作動する。パッド435が、低い状態で駆動されているが、高すぎる状態が維持されている場合、または高い状態で駆動され、1エラークロックサイクルより長い期間継続して低すぎる状態が維持されている場合に、出力駆動部624内のエラー検出論理がトリガーされる。
【0060】
図25は、直接入力/出力のみに対して構成される(すなわち、時間多重化に対しては構成されていない)入力/出力ブロック436を示している。直接入力/出力ブロックの利点は、時分割多重を使用する入力/出力ブロックより速いことである。
出力信号A及びBは、入力/出力パッド435から他の回路に進行する。一方、入力信号C及びDは、他の回路から入力/出力パッド435に進行する。
プログラミングビットOUTREG641は、マルチプレクサ649が、データを入力/出力パッド435から出力信号Aに通すか、またはフリップフロップ640のQ出力から出力信号Aに通すかを制御する。例えば、OUTREG641が「0」である場合には、マルチプレクサ649は、データを入力/出力パッド435から出力信号Aに通す。OUTREG641が「1」である場合には、マルチプレクサ649は、データをフリップフロップ640のQ出力から出力信号Aに通す。
同様に、プログラミングビットOUTREG641は、マルチプレクサ650が、データを入力信号Cまたはフリップフロップ644のQ出力から出力I/Oパッド駆動部652、そして入力/出力パッド435に通すか否かを制御する。プログラミングビットOUTREG641が「1」である場合には、IO_MUXCLK638の立ち上がりエッジによってクロックされるフリップフロップ644は、入力信号Cからの出力データ通路内に存在し、IO_MUXCLK638の立ち下りエッジによってクロックされるフリップフロップ640は、出力信号Aへの入力データ通路内に存在する。出力信号Bは、IO_MUXCLK638の立ち上がりエッジによってクロックされるフリップフロップ642を通過する値で駆動される。ORゲート653に進行するプログラミングビットOUT/IN646が「1」である場合には、出力I/Oパッド駆動部652は常にオンであり、入力信号Cは入力/出力パッド435に送られる。OUT/IN646が「0」である場合には、入力信号Dは、駆動部652を制御する。
例えば、入力/出力パッド435が信号Aへの単純入力である場合には、信号Dが低レベル、信号IN/TRI647が「1」になり、信号Dが「0」に下げられて、駆動部652がオフする。入力/出力435が双方向である場合には、信号IN/TRI647は「0」になる。プログラミングビットDLYINによって制御されるとき、マルチプレクサ648は、入力/出力パッド435とフリップフロップ640、642の入力の間に選択的に遅延を挿入する。
【0061】
図26は、2方向時間多重化に対して構成された入力/出力ブロック436の部分を示している。
信号IO_MUXCLK638は、入力/出力ブロック436内に存在するMUXCLK110と同じである。信号IO_MUXSEL665は、MUXSELと同じである。入力/出力パッド435は、2までの入力信号または2までの出力信号を搬送する。2つの入力信号を搬送する場合には、信号は、出力信号A及びB上に時間多重化される。2つの出力信号を搬送する場合には、信号は、入力信号C及びDから時間多重化される。
OUT/IN646が活性化(高レベル)されている場合には、出力駆動部652は能動化され、入力/出力パッド435は、入力信号CまたはDから導出される信号を搬送するための出力ピンとして動作する。OUT/IN646が非活性化(低レベル)である場合には、入力/出力パッド435は入力ピンであり、その出力は無能化され、入力標本抽出フリップフロップ660、662は能動化される。2方向多重ピンとして行動するピンに対しては、入力フリップフロップ660、662は、常に、ピンを“偶数”信号A及び“奇数”信号Bに多重化しながら、クロックのエッジ毎に動作する。言い換えると、入力/出力パッド435は、2つの信号を搬送する。2つの信号の一方は信号Aとして多重化され、他方は信号Bとして多重化される。
【0062】
図27は、図26の、2方向に時間多重化された入力/出力ブロックのタイミング図の例を示している。I−O及びI−Eは、それぞれ奇数入力(B)及び偶数入力(A)に対応している。O−O及びO−Eは、それぞれ奇数出力(D)及び偶数出力(C)に対応している。
入力/出力ブロックが、データをその入力ピンA及びBに送る場合、奇数入力信号(図27では、奇数入力に対する“I−O”として示されている)は、信号Bとして多重化されている。偶数入力信号(図27では、偶数入力に対する“I−E”として示されている)は、信号Aとして多重化されている。このパターンは、“B、A、B、A・・・”パターンで繰り返される。
同様に、入力/出力パッド435は、2つの信号を搬送する。2つの信号の一方は信号Cから多重化され、他方は信号Dから多重化される。入力/出力ブロックが出力ピンC及びDからのデータを受信すると、奇数出力信号(図27では、奇数出力に対して“O−O”として示されている)は、信号Dから入力/出力パッド435に多重化される。偶数出力信号(図27では、偶数出力に対して“O−E”として示されている)は、信号Cから入力/出力パッド435に多重化される。このパターンは、“D、C、D、C・・・”パターンで繰り返される。
【0063】
プログラミングビットまたは信号OUTREG661は、信号がマルチプレクサ650によって通るのを制御する。“偶数”及び“奇数”出力信号C及びDは、OUTREG661が「1」である場合には、出力フリップフロップ664、666によって記憶され、そうでない場合には、それらは、直接に入力/出力パッド435に多重化される。
IO_MUXCLK638が立ち上がると、偶数出力信号Aは、フリップフロップ664によってCから標本抽出される。IO_MUXCLK638が立ち上がると直ぐに、先に標本抽出された偶数出力信号Cまたは偶数出力信号そのものは、出力ピンA上に多重化される。入力ピン上では、IO_MUXCLK638の立ち下りエッジによりフリップフロップ660によって標本抽出され、A入力信号となる。入力信号Aをアップデートするために出力信号Cを標本抽出する間に、IO_MUXCLKの1.5サイクルが経過する。IO_MUXCLK638が立ち下がると、奇数出力信号Bは、フリップフロップ666によって入力信号Dから標本抽出される。IO_MUXCLK638が立ち下がるとすぐに、先に標本抽出した奇数出力信号Dまたは奇数出力信号Dそのものは、出力ピンB上に多重化される。入力ピン上では、IO_MUXCLK638の立ち上がりエッジによりフリップフロップ662によって標本抽出され、入力信号Bとなる。プログラミングビットDLYINによって制御される時、マルチプレクサ648は、入力/出力パッド435とフリップフロップ660、662の入力の間に、選択的に遅延が挿入される。
【0064】
図28は、4方向双方向時間多重化に対して構成された入力/出力ブロック436の部分を示している。図29は、図28の回路に対するタイミングを示している。
入力/出力パッド435は、4つまでの時間多重化信号を搬送する。この双方向の場合、4つの時間多重化信号は、2つの入力信号と2つの出力信号により構成されている。このように、2つの出力が1つのピン上に送られ、2つの入力が1つのピン上で受信される。
回路は、図26のOUT/IN646が、本実施の形態ではIO_MUXTRI信号及びその逆信号である、入力出力ピン670及び出力入力ピン672に分離していることを除いて、図26と同様である。IO_MUXTRI670は、システムボード上のグローバル信号であり、すべてのエミュレーションチップに使用可能である。
いくつかのチップは受信器として動作し、他のものは送信器として動作する。逆IO_MUXTRI信号は、受信チップと送信チップの間のタイミングを整合させるために提供される。IO_MUXTRI信号670及びその逆信号672は、4方向時間多重ピンA、B、C及びDの入力/出力の駆動を転換する。IO_MUXTRIは、ライン上の駆動方向を変更するために使用される。IO_MUXTRIが高レベルである時には、出力ピン672は、信号D、そして信号Cを駆動し、入力ピン670は、信号を受信し、それらをそれぞれ信号B及びAとして出力するためにフリップフロップ660、662への入力をイネーブルする。IO_MUXTRIが立ち下がると、入力ピン670は、信号D及びCを駆動し、出力ピン672は、フリップフロップ660、662が信号を信号B及びAとして受信するようにイネーブルする。
結果は、1つの導線上にそれぞれの方向に2つの信号を送ることである。各信号は、IO_MUXCLKの2サイクル毎に更新される。プログラミングビットDLYINによって制御される時、マルチプレクサ648は、入力/出力パッド435とフリップフロップ660、662の入力の間に選択的に遅延を挿入する。
【0065】
図30は、4方向一方方向出力時間多重化に対して構成された入力/出力ブロック436の部分を示している。このモードによって提供される利点は、パーティショニング及び電気信号の完全性に影響する。
双方向4方向多重化を用いると、チップ出力に対するチップ入力の総合割合は、常に、チップへの論理のパーティショニングを拘束する[1:1]である。一方方向4方向多重化を用いると、出力に対する入力のあらゆる総合割合が可能である。双方向4方向多重化では、相互接続線上の信号の方向は、常に、2つの出力駆動部の簡易な競合が可能となるように、MUXTRI(またはIO_MUXTRI)によってセットされる。一方方向多重化を用いると、出力競合の可能性はない。X2クロスバーからの4つの信号は、図32に示されているように、信号A、B、C及びDへの入力/出力ブロックピンクロスバー702を介して駆動される。4から1個のマルチプレクサ688、689、690は、IO_MUXSEL信号665及びIO_MUXTRI信号670によって制御され、4つの信号A、B、C及びDを、入力/出力パッド435上の4方向時間多重化出力信号として結合する。
【0066】
図32は、図25〜30の機能を実行するように構成可能な入力/出力ブロック436の実施の形態を示している。すなわち、図32の回路は、2方向または4方向多重化、双方向多重化、一方方向多重化または直接入力/出力を実行するように構成可能である。
入力/出力ブロック436は、入力/出力ブロッククロスバー702、時間多重A、B、C及びD信号、時間多重外部ピンIO.n.0、IO.n.1、IO.n.2、IO.n.3及びそれらに関連するフリップフロップ、マルチプレクサ及び信号を組み込む。双方向IO.n.0〜IO.n.3駆動部の方向のプログラミングは、X2ピン駆動部の方向と調和する必要があり、M0、M1及びOUT/IN信号は、以下のようにピンA、B、C及びDの駆動方向を決定する必要がある。
【0067】
【0068】
上記テーブルでは、[*]は、ピンがデータを入力/出力ブロックピンクロスバー702内に駆動していることを意味し、[−]は、ピンが入力/出力ブロックピンクロスバー702からのデータを受信していることを意味している。
OUTREG661は、フリップフロップ680、681、682及び683と共同する2から1個のマルチプレクサを制御する。例えば、OUTREG661が「0」である場合には、信号A、B、C、Dからのデータは、フリップフロップ680、681、682及び683を飛び越し、マルチプレクサ684、685、686及び687に直接的に通る。OUTREG661が「1」である場合には、信号A、B、C、Dからのデータは、フリップフロップ680、681、682及び683に入力され、そして、マルチプレクサ684、685、686及び687に進む。
また、各A、B、C及びDピンは、捕獲ラッチ720、722、724、726(図11に参照番号160として示されている)を有している。各捕獲ラッチ160は、CAPENB信号が「1」の時にデータを捕獲するように動作する。データは、捕獲ラッチ160から読み出され及び捕獲ラッチ160に書き込まれる。デコーダ730及びそれらの対応するプログラミングビットは、内部A、B、C及びD信号が外部IO.n.0、IO.n.1、IO.n.2、IO.n.3ピンにどのように接続されるかを制御する。IN/TRI647が「1」である場合には、図25に示されているように、信号Dは「0」に下げられる。
【0069】
図31は、図32の入力/出力ブロックピンクロスバー702の詳細を示している。
[4×4]双方向クロスバー702は、入力/出力ブロック436の4つの内部A、B、C及びDピンとその4つの外部ピンIO.n.0、IO.n.1、IO.n.2及びIO.n.3の間に入れられる。クロスバー702は、入力/出力外部ピンIO.n.0、IO.n.1、IO.n.2及びIO.n.3が入力/出力信号を搬送するために使用されるように機能する。
各外部ピンは、異なるX2クロスバーに接続されるため、この設計は、入力/出力ピンの位置が固定される時に、L1/L2相互接続のルーティング性を改良する。A、B、C及びD内部ピンのそれぞれは、各A、B、CまたはDピンのためのデコーダ730と共同する2つの2進エンコードされたプログラミングビットに応じて、IO.n.0、IO.n.1、IO.n.2及びIO.n.外部ピンの1つに接続される。例えば、クロスバー702をピンAに接続するために、AENプログラミングビット704は、ピンAと入力/出力ブロックピンクロスバー702の間の接続を閉じるようにプログラムされる。AENプログラミングビット704がオフにプログラムされると、ピンAは、クロスバー702、IO.n.0、IO.n.1、IO.n.2及びIO.n.3外部ピン、したがってX2ピンから絶縁される。同様に、ピンB、C及びDをクロスバー702に接続するために、プログラミングビットBEN706、CEN708及びDEN710をそれぞれ能動化させる。
この特徴は、A、B、C及びD間の不使用ピンのIO.n.0、IO.n.1、IO.n.2及びIO.n.3外部ピンからの切断を容易とし、入力/出力ブロック駆動部とX2ピン駆動部間の意図しない対立に対して保護する。
【0070】
主題発明の実施の形態及び実装を図示及び記載したが、より多くの実施の形態及び実装が主題発明の範囲内に存在することが明らかである。したがって、本発明は、クレーム及びそれらの均等物に照らされることを除いては、限定されない。
【図面の簡単な説明】
【図1A】 本発明にしたがって構築されたエミュレーションチップの一実施の形態における主要構成要素のブロック図である。
【図1B】 図1Aのエミュレーションチップの実施の形態のチップフロアプランの1例のブロック図である。
【図2】 図1Aのエミュレーションチップの実施の形態の部分のブロック図である。
【図3】 簡単なクロスバーのブロック図である。
【図4】 L1論理ブロックの構成要素のブロック図である。
【図5】 エミュレーションチップの実施の形態の関係する物理的配列におけるL0論理ブロックの基本構成要素のブロック図である。
【図6】 L0論理ブロックにおけるX0相互接続ネットワークの実施の形態のブロック図である。
【図7】 図6のX0入力クロスバーの完全に埋められるクロスバーの論理表現である。
【図8】 図6のX0出力クロスバーの部分的に埋められるクロスバーの論理表現である。
【図9】 図1Aのエミュレーションチップの実施の形態の論理構造のブロック図である。
【図10】 本発明にしたがって構築された論理要素の実施の形態の簡略ブロック図である。
【図11】 本発明にしたがって構築された論理要素の実施の形態の詳細ブロック図である。
【図12】 図10及び11のフリップフロップ/ラッチ140の内部の回路の実施の形態の概略図である。
【図13】 論理要素が入力を分配することを許可する回路を有する論理要素対の実施の形態のブロック図である。
【図14】 入力を他の論理要素と分配するように構成された論理要素内の回路の実施の形態の概略図である。
【図15】 2つのオーバーラップしないクロック信号を発生するタイミング修正回路の実施の形態の概略図である。
【図16】 図15の回路のタイミング図である。
【図17】 本発明にしたがって構築された論理要素のフリップフロップ/ラッチの内部のラッチの実施の形態の回路図である。
【図18】 本発明にしたがって構築されたキャプチュアラッチ(捕獲ラッチ)の実施の形態の回路図である。
【図19】 本発明にしたがって構築されたシャドウRAMの実施の形態の回路図である。
【図20】 論理分析装置の実施の形態の全体の論理図である。
【図21】 論理分析装置によって使用される読出ポートの実施の形態の回路図である。
【図22】 読出ポート及び論理要素への読出ポートの接続の実施の形態の回路図である。
【図23】 X0入力クロスバーの物理的実装例の回路図である。
【図24】 入力/出力ブロックの主要構成要素の実施の形態のブロック図である。
【図25】 直接入力/出力ブロックの実施の形態の回路図である。
【図26】 2方向時間多重化のために構成された入力/出力ブロックの実施の形態の回路図である。
【図27】 図26の入力/出力ブロックのタイミング図である。
【図28】 4方向双方向時間多重化のために構成された入力/出力ブロックの実施の形態の回路図である。
【図29】 図28の入力/出力ブロックのタイミング図である。
【図30】 4方向一方方向出力時間多重化のために構成された入力/出力ブロックの実施の形態の回路図である。
【図31】 入力/出力ブロックピンクロスバーの実施の形態の回路図である。
【図32】 入力/出力ブロックの実施の形態の詳細ブロック図である。
【符号の説明】
98 ルックアップテーブル
116 遅延要素
140 フリップフロップ/ラッチ
150 調査フリップフロップ(プローブフリップフロップ)
160 捕獲フリップフロップ(キャプチュアフリップフロップ)
200 マスターラッチ
202 スレーブラッチ
180 スレーブパルサー
425 L2論理ブロック
435 I/Oパッド
438 イベント検出器
505 L1論理ブロック
511 X2相互接続
512、528、522 I/Oピン
521 X1相互接続
525 L0ブロック
526 論理要素
527 X0相互接続
Claims (46)
- 再構成可能な論理を実装するための集積回路論理要素であって、
集積回路論理要素に信号を入力する入力ラインと、
入力された信号を受信する入力ラインに結合され、第1の出力ラインに第1のデータを出力するルックアップテーブルと、
第1の出力ライン上の第1のデータ及び第1のクロック信号を受信し、選択可能な量だけ遅延された第1のデータである遅延された第1のデータを出力するプログラム可能な遅延回路であって、選択可能な量は、第1のクロック信号に基づいて決定され、プログラム可能な遅延回路は、選択的に能動化されるものと、
プログラム可能な遅延回路に結合され、遅延された第1のデータを受信し、その出力に第2のデータを出力するデータラッチと、
第1のデータ、遅延された第1のデータまたは第2のデータの1つを受信し、それを集積回路論理要素の外に通す出力ラインと
を備えていることを特徴とする集積回路論理要素。 - 請求項1に記載の集積回路論理要素であって、プログラム可能な遅延回路は、フリップフロップを含んでいることを特徴とする集積回路論理要素。
- 請求項2に記載の集積回路論理要であって、フリップフロップは、エッジトリガされることを特徴とする集積回路論理要素。
- 請求項1に記載の集積回路論理要素であって、プログラム可能な遅延回路は、直列に接続された複数のフリップフロップを含んでいることを特徴とする集積回路論理要素。
- 請求項4に記載の集積回路論理要素であって、複数のフリップフロップは、エッジトリガされることを特徴とする集積回路論理要素。
- 請求項1に記載の集積回路論理要素であって、更に、プログラム可能な遅延回路によって発生された遅延量だけ変化させるために第1のクロック信号の速度を調整するクロック調整器を備えていることを特徴とする集積回路論理要素。
- 請求項1に記載の集積回路論理要素であって、更に、ルックアップテーブルに結合された第2のクロック信号を備え、第1のクロック信号は第2のクロック信号より速いことを特徴とする集積回路論理要素。
- 請求項1に記載の集積回路論理要素であって、更に、ルックアップテーブル、プログラム可能な遅延回路及びデータラッチに結合され、第1のデータ、遅延された第1のデータ及び第2のデータを受信し、第1のデータ、遅延された第1のデータ及び第2のデータの1つを出力ラインに通す選択回路を備えていることを特徴とする集積回路論理要素。
- 請求項1に記載の集積回路論理要素であって、更に、ルックアップテーブル、プログラム可能な遅延回路及びデータラッチに結合され、第1のデータ及び遅延された第1のデータを受信し、第1のデータまたは遅延された第1のデータの1つをデータラッチに通す選択回路を備えていることを特徴とする集積回路論理要素。
- 請求項1に記載の集積回路論理要素であって、更に、複数の入力ラインと、データラッチを制御する信号を通すために入力ラインの1つを選択するマルチプレクサを備えていることを特徴とする集積回路論理要素。
- 請求項1に記載の集積回路論理要素であって、データラッチは、ラッチまたはフリップフロップとして機能することを特徴とする集積回路論理要素。
- 請求項1に記載の集積回路論理要素であって、データラッチは、データラッチの出力を1つの論理状態にセットする第1のピン上のセット信号及びデータラッチの出力を他の論理状態にリセットする第2のピン上のリセット信号を受信し、第1のピンは第2のピンと離れていることを特徴とする集積回路論理要素。
- 請求項1に記載の集積回路論理要素であって、データラッチは、直列に接続されたマスターフリップフロップとスレーブフリップフロップを有していることを特徴とする集積回路論理要素。
- 請求項1に記載の集積回路論理要素であって、更に、入力ラインに結合され、集積回路論理要素が入力を他の集積回路論理要素と分配することを許可する入力分配回路を備えていることを特徴とする集積回路論理要素。
- 請求項14に記載の集積回路論理要素であって、更に、入力ラインに結合されたランダムアクセスメモリを有し、入力分配回路は、集積回路論理要素がランダムアクセスメモリ内のデータを他の集積回路論理要素と分配することを許可することを特徴とする集積回路論理要素。
- 請求項14に記載の集積回路論理要素であって、入力分配回路は、データを集積回路論理要素から他の集積回路論理要素に通すラインを含んでいることを特徴とする集積回路論理要素。
- 請求項15に記載の集積回路論理要素であって、入力分配回路は、データを集積回路論理要素のランダムアクセスメモリから他の集積回路論理要素に通すラインを含んでいることを特徴とする集積回路論理要素。
- 請求項17に記載の集積回路論理要素であって、入力分配回路は、データを他の集積回路論理要素のランダムアクセスメモリから受信するラインを含んでいることを特徴とする集積回路論理要素。
- 請求項18に記載の集積回路論理要素であって、入力分配回路は、データを他の集積回路論理要素のランダムアクセスメモリから受信し、データを集積回路論理要素のランダムアクセスメモリに格納することを特徴とする集積回路論理要素。
- 請求項14に記載の集積回路論理要素であって、入力分配回路は、信号を入力ラインから集積回路論理要素にルーティングするためのマルチプレクサを含んでいることを特徴とする集積回路論理要素。
- 請求項1に記載の集積回路論理要素であって、ルックアップテーブルは、少なくとも5つの入力を受信することを特徴とする集積回路論理要素。
- 請求項1に記載の集積回路論理要素であって、ルックアップテーブルは、6つの入力を受信することを特徴とする集積回路論理要素。
- 再構成可能な論理を実装するための集積回路論理要素であって、
信号を集積回路論理要素に入力する入力ラインと、
入力された信号を受信するための入力ラインと電気的に通信可能なルックアップテーブルを有し、第1のデータを第1の出力ラインに出力するランダムアクセスメモリと、
第1の出力ライン上の第1のデータ及び第1のクロック信号を受信し、選択可能な量だけ遅延された第1のデータである遅延された第1のデータを出力するプログラム可能な遅延回路であって、選択可能な量は、第1のクロック信号に基づいて決定され、プログラム可能な遅延回路は、選択的に能動化されるものと、
ランダムアクセスメモリ内に形成される第2のメモリと、
ランダムアクセスメモリに結合され、第1のデータを受信し、第2のデータをその出力に出力するデータラッチと、
第1のデータまたは第2のデータを受信し、それを集積回路論理要素の外に通す出力ラインと
を備えていることを特徴とする集積回路論理要素。 - 請求項23に記載の集積回路論理要素であって、第2のメモリは、ランダムアクセスメモリ内のデータを読み出し、データのコピーを第2のメモリ内に格納することを特徴とする集積回路論理要素。
- 請求項23に記載の集積回路論理要素であって、第2のメモリは、データをランダムアクセスメモリから標本抽出し、標本抽出したデータを第2のメモリに格納することを特徴とする集積回路論理要素。
- 請求項25に記載の集積回路論理要素であって、第2のメモリは、複数のメモリブロックを含み、各メモリブロックは、ランダムアクセスメモリからの異なる標本抽出データを格納することを特徴とする集積回路論理要素。
- 請求項23に記載の集積回路論理要素であって、第2のメモリに格納されているデータは、ユーザが読み出し可能であることを特徴とする集積回路論理要素。
- 請求項26に記載の集積回路論理要素であって、第2のメモリのメモリブロックに格納されている標本抽出データは、ユーザが順に読み出し可能であることを特徴とする集積回路論理要素。
- 請求項23に記載の集積回路論理要素であって、更に、プログラム可能な遅延回路によって発生される遅延量だけ変化させるために第1のクロック信号の速度を調整するクロック調整器を備えていることを特徴とする集積回路論理要素。
- 請求項23に記載の集積回路論理要素であって、プログラム可能な遅延回路は、フリップフロップを含んでいることを特徴とする集積回路論理要素。
- 請求項30に記載の集積回路論理要素であって、フリップフロップは、エッジトリガされることを特徴とする集積回路論理要素。
- 請求項23に記載の集積回路論理要素であって、プログラム可能な遅延回路は、直列に接続された複数のフリップフロップを含んでいることを特徴とする集積回路論理要素。
- 請求項32に記載の集積回路論理要素であって、複数のフリップフロップはエッジトリガされることを特徴とする集積回路論理要素。
- 請求項29に記載の集積回路論理要素であって、更に、ランダムアクセスメモリに結合される第2のクロック信号を備え、第1のクロック信号は第2のクロック信号より速いことを特徴とする集積回路論理要素。
- 請求項23に記載の集積回路論理要素であって、更に、ランダムアクセスメモリ及びデータラッチに結合され、第1のデータ及び第2のデータを受信し、第1のデータ及び第2のデータの1つを出力ラインに通す選択回路を備えていることを特徴とする集積回路論理要素。
- 請求項29に記載の集積回路論理要素であって、更に、ランダムアクセスメモリ、遅延回路及びデータラッチに結合され、第1のデータ、遅延された第1のデータ及び第2のデータを受信し、第1のデータ、遅延された第1のデータまたは第2のデータの1つを出力ラインに通す選択回路を備えていることを特徴とする集積回路論理要素。
- 請求項23に記載の集積回路論理要素であって、データラッチは、ラッチまたはフリップフロップとして機能することを特徴とする集積回路論理要素。
- 請求項23に記載の集積回路論理要素であって、データラッチは、データラッチの出力を1つの論理状態にセットする、第1のピン上のセット信号と、データラッチの出力を他の論理状態にリセットする、第2のピン上のリセット信号を受信し、第1のピンは第2のピンと離れていることを特徴とする集積回路論理要素。
- 請求項23に記載の集積回路論理要素であって、更に、入力ラインに結合され、集積回路論理要素が他の集積回路論理要素と入力を分配することを許可する入力分配回路を備えていることを特徴とする集積回路論理要素。
- 請求項39に記載の集積回路論理要素であって、入力分配回路は、集積回路論理要素が他の集積回路論理要素とランダムアクセスメモリ内のデータを分配することを許可することを特徴とする集積回路論理要素。
- 請求項39に記載の集積回路論理要素であって、入力分配回路は、データを集積回路論理要素から他の集積回路論理要素に通すラインを含んでいることを特徴とする集積回路論理要素。
- 請求項40に記載の集積回路論理要素であって、入力分配回路は、データを集積回路論理要素のランダムアクセスメモリから他の集積回路論理要素に通すラインを含んでいることを特徴とする集積回路論理要素。
- 請求項42に記載の集積回路論理要素であって、入力分配回路は、データを他の集積回路論理要素のランダムアクセスメモリから受信するラインを含んでいることを特徴とする集積回路論理要素。
- 請求項43に記載の集積回路論理要素であって、入力分配回路は、データを他の集積回路論理要素のランダムアクセスメモリから受信し、データを集積回路論理要素のランダムアクセスメモリに格納することを特徴とする集積回路論理要素。
- 請求項23に記載の集積回路論理要素であって、更に、入力ラインに結合され、少なくとも5つの入力を受信し、第1のデータを第1の出力ラインに出力するルックアップテーブルを備えていることを特徴とする集積回路論理要素。
- 請求項45に記載の集積回路論理要素であって、ルックアップテーブルは、6つの入力を受信することを特徴とする集積回路論理要素。
Applications Claiming Priority (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US09/569,695 US6697957B1 (en) | 2000-05-11 | 2000-05-11 | Emulation circuit with a hold time algorithm, logic analyzer and shadow memory |
| US09/569,695 | 2000-05-11 | ||
| US09/570,142 US6446249B1 (en) | 2000-05-11 | 2000-05-12 | Emulation circuit with a hold time algorithm, logic and analyzer and shadow memory |
| US09/570,142 | 2000-05-12 | ||
| PCT/US2001/014064 WO2001086513A2 (en) | 2000-05-11 | 2001-04-30 | Emulation circuit with a hold time algorithm, logic analyzer and shadow memory |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| JP2004533025A JP2004533025A (ja) | 2004-10-28 |
| JP2004533025A5 JP2004533025A5 (ja) | 2005-12-22 |
| JP4800548B2 true JP4800548B2 (ja) | 2011-10-26 |
Family
ID=24276483
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2001583387A Expired - Fee Related JP4800548B2 (ja) | 2000-05-11 | 2001-04-30 | 集積回路論理要素 |
Country Status (3)
| Country | Link |
|---|---|
| US (2) | US6697957B1 (ja) |
| JP (1) | JP4800548B2 (ja) |
| KR (1) | KR20030028469A (ja) |
Families Citing this family (73)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6581191B1 (en) * | 1999-11-30 | 2003-06-17 | Synplicity, Inc. | Hardware debugging in a hardware description language |
| US7065481B2 (en) * | 1999-11-30 | 2006-06-20 | Synplicity, Inc. | Method and system for debugging an electronic system using instrumentation circuitry and a logic analyzer |
| US7240303B1 (en) | 1999-11-30 | 2007-07-03 | Synplicity, Inc. | Hardware/software co-debugging in a hardware description language |
| US7072818B1 (en) * | 1999-11-30 | 2006-07-04 | Synplicity, Inc. | Method and system for debugging an electronic system |
| US6697957B1 (en) * | 2000-05-11 | 2004-02-24 | Quickturn Design Systems, Inc. | Emulation circuit with a hold time algorithm, logic analyzer and shadow memory |
| US7379859B2 (en) * | 2001-04-24 | 2008-05-27 | Mentor Graphics Corporation | Emulator with switching network connections |
| US7222315B2 (en) * | 2000-11-28 | 2007-05-22 | Synplicity, Inc. | Hardware-based HDL code coverage and design analysis |
| JP2002246471A (ja) * | 2001-02-14 | 2002-08-30 | Sony Corp | 半導体装置 |
| US20020150252A1 (en) * | 2001-03-27 | 2002-10-17 | Leopard Logic, Inc. | Secure intellectual property for a generated field programmable gate array |
| US20020178427A1 (en) * | 2001-05-25 | 2002-11-28 | Cheng-Liang Ding | Method for improving timing behavior in a hardware logic emulation system |
| JP2003243509A (ja) * | 2002-02-20 | 2003-08-29 | Nec Microsystems Ltd | 半導体集積回路設計方法、及び半導体集積回路設計プログラム |
| US7827510B1 (en) | 2002-06-07 | 2010-11-02 | Synopsys, Inc. | Enhanced hardware debugging with embedded FPGAS in a hardware description language |
| US6734703B1 (en) * | 2002-07-19 | 2004-05-11 | Xilinx, Inc. | Circuits and methods for analyzing timing characteristics of sequential logic elements |
| US7051197B2 (en) | 2002-11-22 | 2006-05-23 | Texas Instruments Incorporated | Tracing through reset |
| US6889311B2 (en) * | 2002-11-22 | 2005-05-03 | Texas Instruments Incorporated | Pipeline stage single cycle sliding alignment correction of memory read data with integrated data reordering for load and store instructions |
| US6996735B2 (en) * | 2002-11-22 | 2006-02-07 | Texas Instruments Incorporated | Apparatus for alignment of data collected from multiple pipe stages with heterogeneous retention policies in an unprotected pipeline |
| US7440884B2 (en) * | 2003-01-23 | 2008-10-21 | Quickturn Design Systems, Inc. | Memory rewind and reconstruction for hardware emulator |
| EP1450278B1 (en) * | 2003-01-23 | 2013-04-24 | Cadence Design Systems, Inc. | Methods and apparatus for verifying the operation of a circuit design |
| US7039822B2 (en) * | 2003-02-27 | 2006-05-02 | Promos Technologies Inc. | Integrated circuit memory architecture with selectively offset data and address delays to minimize skew and provide synchronization of signals at the input/output section |
| US7286976B2 (en) * | 2003-06-10 | 2007-10-23 | Mentor Graphics (Holding) Ltd. | Emulation of circuits with in-circuit memory |
| US20040254778A1 (en) * | 2003-06-12 | 2004-12-16 | Mentor Graphics Corporation | Reconfigurable logic element with input swapping |
| US7340656B2 (en) * | 2003-07-08 | 2008-03-04 | Tektronix, Inc. | Method and apparatus for probing a computer bus |
| ATE452408T1 (de) * | 2003-07-14 | 2010-01-15 | Fulcrum Microsystems Inc | Asynchroner statischer direktzugriffspeicher |
| US6952813B1 (en) * | 2003-07-30 | 2005-10-04 | Xilinx, Inc. | Method and apparatus for selecting programmable interconnects to reduce clock skew |
| US20050077938A1 (en) * | 2003-10-13 | 2005-04-14 | International Business Machines Corporation | High voltage i/o signal propagation boost circuit |
| US7139864B2 (en) * | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
| US7721036B2 (en) * | 2004-06-01 | 2010-05-18 | Quickturn Design Systems Inc. | System and method for providing flexible signal routing and timing |
| US7739093B2 (en) * | 2004-06-01 | 2010-06-15 | Quickturn Design System, Inc. | Method of visualization in processor based emulation system |
| US7640155B2 (en) * | 2004-06-01 | 2009-12-29 | Quickturn Design Systems, Inc. | Extensible memory architecture and communication protocol for supporting multiple devices in low-bandwidth, asynchronous applications |
| US7606697B2 (en) * | 2004-06-01 | 2009-10-20 | Quickturn Design Systems, Inc. | System and method for resolving artifacts in differential signals |
| US7738399B2 (en) * | 2004-06-01 | 2010-06-15 | Quickturn Design Systems Inc. | System and method for identifying target systems |
| US7440866B2 (en) * | 2004-06-01 | 2008-10-21 | Quickturn Design Systems Inc. | System and method for validating an input/output voltage of a target system |
| US7375550B1 (en) * | 2005-07-15 | 2008-05-20 | Tabula, Inc. | Configurable IC with packet switch configuration network |
| US7443196B2 (en) * | 2005-07-15 | 2008-10-28 | Tabula, Inc. | Configuration network for a configurable IC |
| US7574687B1 (en) * | 2006-01-03 | 2009-08-11 | Cisco Technology, Inc. | Method and system to optimize timing margin in a system in package module |
| US7555424B2 (en) | 2006-03-16 | 2009-06-30 | Quickturn Design Systems, Inc. | Method and apparatus for rewinding emulated memory circuits |
| US7525723B2 (en) * | 2006-06-30 | 2009-04-28 | Intel Corporation | Circuit board-to-circuit board connectors having electro-optic modulators |
| US20080122463A1 (en) * | 2006-06-30 | 2008-05-29 | Sanjay Dabral | Testing microelectronic devices using electro-optic modulator probes |
| US7594211B1 (en) * | 2006-11-17 | 2009-09-22 | Synopsys, Inc. | Methods and apparatuses for reset conditioning in integrated circuits |
| US7694242B1 (en) * | 2006-12-11 | 2010-04-06 | Cadence Design Systems, Inc. | System and method of replacing flip-flops with pulsed latches in circuit designs |
| US20090093687A1 (en) * | 2007-03-08 | 2009-04-09 | Telfort Valery G | Systems and methods for determining a physiological condition using an acoustic monitor |
| JP4403187B2 (ja) * | 2007-03-30 | 2010-01-20 | 富士通株式会社 | 設計データ変換プログラム、該プログラムを記録した記録媒体、設計データ変換装置、および設計データ変換方法 |
| US7501855B2 (en) * | 2007-06-27 | 2009-03-10 | Tabula, Inc | Transport network for a configurable IC |
| US7595655B2 (en) * | 2007-06-27 | 2009-09-29 | Tabula, Inc. | Retrieving data from a configurable IC |
| US7579867B2 (en) * | 2007-06-27 | 2009-08-25 | Tabula Inc. | Restructuring data from a trace buffer of a configurable IC |
| US8069425B2 (en) * | 2007-06-27 | 2011-11-29 | Tabula, Inc. | Translating a user design in a configurable IC for debugging the user design |
| US7839162B2 (en) | 2007-06-27 | 2010-11-23 | Tabula, Inc. | Configurable IC with deskewing circuits |
| US8412990B2 (en) | 2007-06-27 | 2013-04-02 | Tabula, Inc. | Dynamically tracking data values in a configurable IC |
| US7652498B2 (en) * | 2007-06-27 | 2010-01-26 | Tabula, Inc. | Integrated circuit with delay selecting input selection circuitry |
| US8990651B2 (en) | 2007-09-19 | 2015-03-24 | Tabula, Inc. | Integrated circuit (IC) with primary and secondary networks and device containing such an IC |
| US8081710B2 (en) * | 2007-11-08 | 2011-12-20 | Pine Valley Investments, Inc. | System and method for corrected modulation with nonlinear power amplification |
| US7830734B2 (en) | 2008-03-14 | 2010-11-09 | Promos Technologies Pte. Ltd. | Asymetric data path position and delays technique enabling high speed access in integrated circuit memory devices |
| US8006151B2 (en) * | 2008-03-28 | 2011-08-23 | Texas Instruments Incorporated | TAP and shadow port operating on rising and falling TCK |
| WO2010016857A1 (en) | 2008-08-04 | 2010-02-11 | Tabula, Inc. | Trigger circuits and event counters for an ic |
| US8370557B2 (en) * | 2008-12-19 | 2013-02-05 | Intel Corporation | Pseudo dual-port SRAM and a shared memory switch using multiple memory banks and a sideband memory |
| US8072234B2 (en) | 2009-09-21 | 2011-12-06 | Tabula, Inc. | Micro-granular delay testing of configurable ICs |
| TWI450118B (zh) * | 2010-11-02 | 2014-08-21 | Global Unichip Corp | 混合的電子設計系統及其可重組連接矩陣 |
| US9230046B2 (en) | 2012-03-30 | 2016-01-05 | International Business Machines Corporation | Generating clock signals for a cycle accurate, cycle reproducible FPGA based hardware accelerator |
| US9286423B2 (en) | 2012-03-30 | 2016-03-15 | International Business Machines Corporation | Cycle accurate and cycle reproducible memory for an FPGA based hardware accelerator |
| US8595683B1 (en) | 2012-04-12 | 2013-11-26 | Cadence Design Systems, Inc. | Generating user clocks for a prototyping environment |
| EP2974025B1 (en) * | 2013-03-15 | 2018-10-31 | The Regents of The University of California | Network architectures for boundary-less hierarchical interconnects |
| US9436565B2 (en) | 2013-07-04 | 2016-09-06 | Altera Corporation | Non-intrusive monitoring and control of integrated circuits |
| US9405877B1 (en) | 2014-12-22 | 2016-08-02 | Cadence Design Systems, Inc. | System and method of fast phase aligned local generation of clocks on multiple FPGA system |
| US9495492B1 (en) * | 2015-01-05 | 2016-11-15 | Cadence Design Systems, Inc. | Implementing synchronous triggers for waveform capture in an FPGA prototyping system |
| US9294094B1 (en) | 2015-01-08 | 2016-03-22 | Cadence Design Systems, Inc. | Method and apparatus for fast low skew phase generation for multiplexing signals on a multi-FPGA prototyping system |
| US9859896B1 (en) * | 2015-09-11 | 2018-01-02 | Xilinx, Inc. | Distributed multi-die routing in a multi-chip module |
| US10068041B2 (en) | 2016-02-01 | 2018-09-04 | King Fahd University Of Petroleum And Minerals | Multi-core compact executable trace processor |
| US9817593B1 (en) | 2016-07-11 | 2017-11-14 | Sandisk Technologies Llc | Block management in non-volatile memory system with non-blocking control sync system |
| US10796048B1 (en) * | 2017-06-16 | 2020-10-06 | Synopsys, Inc. | Adding delay elements to enable mapping a time division multiplexing circuit on an FPGA of a hardware emulator |
| US11194942B1 (en) * | 2018-12-06 | 2021-12-07 | Cadence Design Systems, Inc. | Emulation system supporting four-state for sequential logic circuits |
| CN114121132B (zh) * | 2020-08-31 | 2023-10-13 | 长鑫存储技术(上海)有限公司 | 测试电路、测试装置及其测试方法 |
| US12468334B2 (en) * | 2021-07-27 | 2025-11-11 | Synopsys, Inc. | Clock signal realignment for emulation of a circuit design |
| US12505067B2 (en) * | 2024-05-08 | 2025-12-23 | Efinix, Inc. | Configurable logic system and method for pipelined data transfer |
Family Cites Families (48)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE3149460C2 (de) | 1981-12-14 | 1984-04-12 | Rohde & Schwarz GmbH & Co KG, 8000 München | Logikanalysator |
| USRE34363E (en) | 1984-03-12 | 1993-08-31 | Xilinx, Inc. | Configurable electrical circuit having configurable logic elements and configurable interconnects |
| US4642487A (en) | 1984-09-26 | 1987-02-10 | Xilinx, Inc. | Special interconnect for configurable logic array |
| US4775942A (en) | 1985-12-09 | 1988-10-04 | International Business Machines Corporation | Seed and stitch approach to embedded arrays |
| JPS6397012A (ja) * | 1986-10-13 | 1988-04-27 | Matsushita Electric Ind Co Ltd | 半導体装置 |
| US4922441A (en) | 1987-01-19 | 1990-05-01 | Ricoh Company, Ltd. | Gate array device having a memory cell/interconnection region |
| JPS63232712A (ja) * | 1987-03-20 | 1988-09-28 | Nec Corp | ダイナミツク方式プログラマブルロジツクアレイ |
| JPH0193928A (ja) * | 1987-10-05 | 1989-04-12 | Nec Corp | ダイナミック方式プログラマブルロジックアレイ |
| US4992441A (en) | 1987-10-14 | 1991-02-12 | Mcneilab, Inc. | 1-[[5-[[4-substituted-1-piperazinyl]methyl]-pyrrol-2-yl or furan-2-yl]methyl-2-piperidinones useful in treating schizophrenia |
| US4924468A (en) | 1987-11-30 | 1990-05-08 | Kontron Holding Ag | Logic analyzer |
| US5452231A (en) | 1988-10-05 | 1995-09-19 | Quickturn Design Systems, Inc. | Hierarchically connected reconfigurable logic assembly |
| ATE265712T1 (de) | 1988-10-05 | 2004-05-15 | Quickturn Design Systems Inc | Verfahren zur verwendung einer elektronisch wiederkonfigurierbaren gatterfeld-logik und dadurch hergestelltes gerät |
| US5109353A (en) | 1988-12-02 | 1992-04-28 | Quickturn Systems, Incorporated | Apparatus for emulation of electronic hardware system |
| US5329470A (en) | 1988-12-02 | 1994-07-12 | Quickturn Systems, Inc. | Reconfigurable hardware emulation system |
| US5260881A (en) | 1989-10-30 | 1993-11-09 | Advanced Micro Devices, Inc. | Programmable gate array with improved configurable logic block |
| US5212652A (en) | 1989-08-15 | 1993-05-18 | Advanced Micro Devices, Inc. | Programmable gate array with improved interconnect structure |
| US5255203A (en) | 1989-08-15 | 1993-10-19 | Advanced Micro Devices, Inc. | Interconnect structure for programmable logic device |
| US5377124A (en) | 1989-09-20 | 1994-12-27 | Aptix Corporation | Field programmable printed circuit board |
| JPH03231515A (ja) * | 1990-02-06 | 1991-10-15 | Mitsubishi Electric Corp | プログラマブル論理装置 |
| US5140193A (en) | 1990-03-27 | 1992-08-18 | Xilinx, Inc. | Programmable connector for programmable logic device |
| DE69123077D1 (de) * | 1990-04-30 | 1996-12-19 | Advanced Micro Devices Inc | Programmierbare logische Vorrichtung |
| US5122685A (en) | 1991-03-06 | 1992-06-16 | Quicklogic Corporation | Programmable application specific integrated circuit and logic cell therefor |
| US5321828A (en) * | 1991-06-07 | 1994-06-14 | Step Engineering | High speed microcomputer in-circuit emulator |
| US5338984A (en) | 1991-08-29 | 1994-08-16 | National Semiconductor Corp. | Local and express diagonal busses in a configurable logic array |
| US5208491A (en) | 1992-01-07 | 1993-05-04 | Washington Research Foundation | Field programmable gate array |
| US5352123A (en) | 1992-06-08 | 1994-10-04 | Quickturn Systems, Incorporated | Switching midplane and interconnection system for interconnecting large numbers of signals |
| WO1994003856A1 (en) | 1992-08-07 | 1994-02-17 | Massachusetts Institute Of Technology | Column-associative cache |
| US5425036A (en) | 1992-09-18 | 1995-06-13 | Quickturn Design Systems, Inc. | Method and apparatus for debugging reconfigurable emulation systems |
| US5729752A (en) | 1993-02-19 | 1998-03-17 | Hewlett-Packard Company | Network connection scheme |
| US5315178A (en) | 1993-08-27 | 1994-05-24 | Hewlett-Packard Company | IC which can be used as a programmable logic cell array or as a register file |
| US5630048A (en) | 1994-05-19 | 1997-05-13 | La Joie; Leslie T. | Diagnostic system for run-time monitoring of computer operations |
| US5659716A (en) | 1994-11-23 | 1997-08-19 | Virtual Machine Works, Inc. | Pipe-lined static router and scheduler for configurable logic system performing simultaneous communications and computation |
| US5630088A (en) | 1995-03-09 | 1997-05-13 | Hewlett-Packard Company | Virtual to physical address translation |
| US5649176A (en) | 1995-08-10 | 1997-07-15 | Virtual Machine Works, Inc. | Transition analysis and circuit resynthesis method and device for digital circuit modeling |
| US5784313A (en) * | 1995-08-18 | 1998-07-21 | Xilinx, Inc. | Programmable logic device including configuration data or user data memory slices |
| US5821773A (en) | 1995-09-06 | 1998-10-13 | Altera Corporation | Look-up table based logic element with complete permutability of the inputs to the secondary signals |
| US5777489A (en) | 1995-10-13 | 1998-07-07 | Mentor Graphics Corporation | Field programmable gate array with integrated debugging facilities |
| US5754827A (en) | 1995-10-13 | 1998-05-19 | Mentor Graphics Corporation | Method and apparatus for performing fully visible tracing of an emulation |
| US5574388A (en) | 1995-10-13 | 1996-11-12 | Mentor Graphics Corporation | Emulation system having a scalable multi-level multi-stage programmable interconnect network |
| US5732407A (en) | 1995-12-11 | 1998-03-24 | Hewlett-Packard Co. | Configurable random access memory for programmable logic devices |
| US5790832A (en) | 1996-04-23 | 1998-08-04 | Mentor Graphics Corporation | Method and apparatus for tracing any node of an emulation |
| US5790771A (en) | 1996-05-01 | 1998-08-04 | Hewlett-Packard Company | Apparatus and method for configuring a reconfigurable electronic system having defective resources |
| US5742181A (en) | 1996-06-04 | 1998-04-21 | Hewlett-Packard Co. | FPGA with hierarchical interconnect structure and hyperlinks |
| US5943490A (en) | 1997-05-30 | 1999-08-24 | Quickturn Design Systems, Inc. | Distributed logic analyzer for use in a hardware logic emulation system |
| US6011744A (en) * | 1997-07-16 | 2000-01-04 | Altera Corporation | Programmable logic device with multi-port memory |
| US6289494B1 (en) * | 1997-11-12 | 2001-09-11 | Quickturn Design Systems, Inc. | Optimized emulation and prototyping architecture |
| US6697957B1 (en) * | 2000-05-11 | 2004-02-24 | Quickturn Design Systems, Inc. | Emulation circuit with a hold time algorithm, logic analyzer and shadow memory |
| DE10196175T1 (de) * | 2000-05-11 | 2003-04-17 | Quickturn Design Systems Inc | Emulations-Schaltkreis mit einem Haltezeit-Algorithmus, Logikanalysierer und Shadow-Speicher |
-
2000
- 2000-05-11 US US09/569,695 patent/US6697957B1/en not_active Expired - Lifetime
- 2000-05-12 US US09/570,142 patent/US6446249B1/en not_active Expired - Fee Related
-
2001
- 2001-04-30 JP JP2001583387A patent/JP4800548B2/ja not_active Expired - Fee Related
- 2001-04-30 KR KR1020027015110A patent/KR20030028469A/ko not_active Withdrawn
Also Published As
| Publication number | Publication date |
|---|---|
| US6697957B1 (en) | 2004-02-24 |
| KR20030028469A (ko) | 2003-04-08 |
| JP2004533025A (ja) | 2004-10-28 |
| US6446249B1 (en) | 2002-09-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4800548B2 (ja) | 集積回路論理要素 | |
| US6539535B2 (en) | Programmable logic device having integrated probing structures | |
| US6829756B1 (en) | Programmable logic device with time-multiplexed interconnect | |
| US6853215B1 (en) | Programmable I/O element circuit for high speed logic devices | |
| US5734869A (en) | High speed logic circuit simulator | |
| US5136188A (en) | Input/output macrocell for programmable logic device | |
| US5426738A (en) | Apparatus for flexibly routing signals between pins of electronic devices | |
| US6249144B1 (en) | Methods for configuring FPGA's having variable grain components for providing time-shared access to interconnect resources | |
| CN101802800B (zh) | 用于集成电路的高带宽互连网络 | |
| US20040178820A1 (en) | Reconfigurable integrated circuit with integrated debugging facilities and scalable programmable interconnect | |
| US20020161568A1 (en) | Memory circuit for use in hardware emulation system | |
| EP0379071B1 (en) | Multiple page programmable logic architecture | |
| JPH09181599A (ja) | 時間多重書込可能論理装置 | |
| EP0610426A1 (en) | Sampling buffer for field programmable interconnect device | |
| JPH09231788A (ja) | シフトレジスタ及びプログラマブル論理回路並びにプログラマブル論理回路システム | |
| US7768819B2 (en) | Variable sized soft memory macros in structured cell arrays, and related methods | |
| JPWO2014065424A1 (ja) | 再構成可能な半導体装置 | |
| US7268581B1 (en) | FPGA with time-multiplexed interconnect | |
| US6059836A (en) | Logic circuit emulator | |
| US20080074142A1 (en) | Routing for Microprocessor Busses | |
| US5638008A (en) | Method and apparatus for generating an asynchronously clocked signal in a synchronously clocked programmable device | |
| JP2820462B2 (ja) | データ列発生装置 | |
| US6977520B1 (en) | Time-multiplexed routing in a programmable logic device architecture | |
| US6124730A (en) | Methods for configuring FPGA's having variable grain components for providing time-shared access to interconnect resources | |
| Tavana et al. | Logic block and routing considerations for a new SRAM-based FPGA architecture |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A072 | Dismissal of procedure [no reply to invitation to correct request for examination] |
Free format text: JAPANESE INTERMEDIATE CODE: A072 Effective date: 20040928 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080409 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110412 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110701 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110725 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110804 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140812 Year of fee payment: 3 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |