JP2020529064A - 集積回路のためのロジックアナライザ - Google Patents

集積回路のためのロジックアナライザ Download PDF

Info

Publication number
JP2020529064A
JP2020529064A JP2020503043A JP2020503043A JP2020529064A JP 2020529064 A JP2020529064 A JP 2020529064A JP 2020503043 A JP2020503043 A JP 2020503043A JP 2020503043 A JP2020503043 A JP 2020503043A JP 2020529064 A JP2020529064 A JP 2020529064A
Authority
JP
Japan
Prior art keywords
circuit
file
logic analyzer
signal
integrated circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020503043A
Other languages
English (en)
Other versions
JP7354091B2 (ja
Inventor
アキレシュ マハジャン,
アキレシュ マハジャン,
ボッカ アブハイラン サイ クリシュナ,
ボッカ アブハイラン サイ クリシュナ,
ケーシャヴァ ゴパール ゴード チェルク,
ケーシャヴァ ゴパール ゴード チェルク,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xilinx Inc
Original Assignee
Xilinx Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xilinx Inc filed Critical Xilinx Inc
Publication of JP2020529064A publication Critical patent/JP2020529064A/ja
Priority to JP2023076497A priority Critical patent/JP2023100844A/ja
Application granted granted Critical
Publication of JP7354091B2 publication Critical patent/JP7354091B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/25Testing of logic operation, e.g. by logic analysers
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3177Testing of logic operation, e.g. by logic analysers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/3312Timing analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Debugging And Monitoring (AREA)

Abstract

集積回路内の信号を監視することは、集積回路100内に実装されたロジックアナライザ回路110を使用して集積回路100のプローブ対象信号を監視すること405、ロジックアナライザ回路110を使用してプローブ対象信号の状態変化を検出すること415、およびロジックアナライザ回路110内で、プローブ対象信号のタイムスタンプされた状態変化を指定するファイル120を生成すること430を含むことができる。【選択図】図1

Description

本開示は、集積回路(IC)に関し、より詳細には、IC内の信号を監視するためのロジックアナライザに関する。
ロジックアナライザは、別の電子システムの1つまたは複数の信号を監視することができる電子システムである。場合によっては、ロジックアナライザは、集積回路(IC)内に実装される回路設計に組み込むことができるコアとして利用することができる。そのような場合、ロジックアナライザと、ロジックアナライザによって監視される対象回路および/または信号は、同じIC内に実装されてもよい。
通常、ロジックアナライザは、監視対象信号の値をサンプリングする。通常、サンプリングレートはクロックレートと一致して、時間の経過と共に各クロックサイクルで信号の値を取り込む。ロジックアナライザは、IC自体のメモリ内に結果のデータ、例えばサンプリングされた値を保存するか、データを別のシステムに出力しようとする。サンプリングレート、監視される信号の数、および信号が監視されている時間枠により、ロジックアナライザは大量のデータを生成する。このデータがICに保存されると、かなりの量のメモリが必要になる。このデータがICから出力される場合、かなりの量の帯域幅が必要である。これらの制約は、信号を監視することができる時間枠を制限したり、監視することができる信号の数を制限したりする。
1つまたは複数の実施形態は、集積回路(IC)内の信号を監視するための方法に関する。一態様では、方法は、IC内に実装されたロジックアナライザ回路を使用して、ICのプローブ対象信号を監視することと、ロジックアナライザ回路を使用して、プローブ対象信号の状態変化を検出することと、ロジックアナライザ回路内で、プローブ対象信号のタイムスタンプされた状態変化を指定するファイルを生成することと、を含む。
いくつかの実施形態では、ファイルはASCIIフォーマットで指定されてもよい。
いくつかの実施形態では、ファイルは値変化ダンプファイルであってもよい。
いくつかの実施形態では、本方法は、生成されたファイルを実質的にリアルタイムで外部システムに出力することをさらに含んでもよい。
いくつかの実施形態では、本方法は、プローブ対象信号の状態変化がトリガ条件に対応すると判定することに応答して、トリガ条件に関連する所定のアクションを開始することをさらに含んでもよい。
いくつかの実施形態では、本方法は、集積回路内のプロセッサにファイルを提供することをさらに含んでもよい。プロセッサは、プログラムコードを実行するように構成されてもよい。
いくつかの実施形態では、本方法は、ファイルを外部システムに提供することをさらに含んでもよい。外部システムは、ファイルの視覚化を生成するように構成されてもよい。
いくつかの実施形態では、ファイルを生成することは、ヘッダーセクションを符号化することと、変数定義セクションを符号化することと、初期値セクションを符号化することと、値変化セクションを符号化することと、を含んでもよい。
いくつかの実施形態では、ロジックアナライザ回路は、集積回路のプログラム可能な回路を使用してハードウェアで実装されてもよい。
1つまたは複数の実施形態は、ICに関する。一態様では、ICは、信号を生成するように構成された監視対象回路と、ロジックアナライザ回路と、を含む。ロジックアナライザ回路は、信号を監視して信号の状態変化を検出し、信号のタイムスタンプされた状態変化を指定するファイルを生成するように構成される。
いくつかの実施形態では、ファイルはASCIIフォーマットのファイルであってもよい。
いくつかの実施形態では、ファイルは値変化ダンプファイルであってもよい。
いくつかの実施形態では、ロジックアナライザ回路は、信号を受信し、信号の現在の状態が信号の以前の状態と異なるかどうかを判定するように構成されたトレース回路と、トレース回路に結合されたファイル生成回路と、を含んでもよい。ファイル生成回路は、信号のタイムスタンプされた状態変化を指定するファイルを生成するように構成されてもよい。
いくつかの実施形態では、トレース回路は、信号の状態変化がトリガ条件に対応すると判定することに応答して、トリガ条件に関連する所定のアクションを開始するように構成されてもよい。
いくつかの実施形態では、ロジックアナライザ回路は、ファイル生成回路に結合されたインターフェースを含んでもよい。
いくつかの実施形態では、集積回路は、インターフェースに結合されたプロセッサをさらに含んでもよい。プロセッサは、プログラムコードを実行し、ファイルを受信するように構成されてもよい。
いくつかの実施形態では、プロセッサは、ファイルから監視対象信号の波形ビューを生成するように構成されてもよい。
いくつかの実施形態では、集積回路は、インターフェースに結合された入力/出力回路をさらに含んでもよい。入力/出力回路は、ファイルを外部システムに出力するように構成されてもよい。
いくつかの実施形態では、外部システムは、ファイルから信号の波形ビューを生成してもよい。
いくつかの実施形態では、ロジックアナライザ回路は、集積回路のプログラム可能な回路を使用してハードウェアで実装されてもよい。
この概要セクションは、特定の概念を紹介するためだけに提供されており、請求された主題の重要なまたは本質的な特徴を特定するためではない。本発明の構成の他の特徴は、添付の図面および以下の詳細な説明から明らかになるであろう。
本発明の構成は、例として添付図面に示されている。しかし、図面は、示された特定の実施態様のみに本発明の構成を限定するものと解釈するべきではない。以下の詳細な説明を検討し、図面を参照すると、様々な態様および利点が明らかになるであろう。
ロジックアナライザ回路を含む例示的な集積回路(IC)を示す図である。 ロジックアナライザ回路の例示的な実施態様を示す図である。 ロジックアナライザ回路を含む別の例示的なICを示す図である。 トレースデータを生成する例示的な方法を示す図である。 ICの例示的なアーキテクチャを示す図である。
本開示は、新規の特徴を定義する特許請求の範囲で終了するが、本開示内で説明される様々な特徴は、図面と併せて説明を考慮することでよりよく理解されると考えられる。本明細書に記載のプロセス、機械、製造物、およびそれらの任意の変形例は、例示の目的で提供されている。本開示内で説明される特定の構造および機能の詳細は、限定として解釈されるべきではなく、単に特許請求の範囲の基礎として、および実質的に任意の適切に詳細な構造で説明される特徴を様々に採用するように当業者に教示するための代表的な基礎として解釈されるべきである。さらに、本開示内で使用される用語および語句は、限定することを意図するものではなく、説明された特徴の理解可能な説明を提供することを意図している。
本開示は、集積回路(IC)に関し、より詳細には、IC内の信号を監視するためのロジックアナライザに関する。本開示内で説明される本発明の構成は、ICの内部信号の監視および解析を容易にする。1つまたは複数の実施形態では、ロジックアナライザはIC内に実装され、「プローブ対象信号」と呼ばれる1つまたは複数の選択された信号を監視することができる。さらに、ロジックアナライザは、IC自体のプローブ対象信号を解析することができる。
1つまたは複数の実施形態では、ロジックアナライザは、プローブ対象信号の状態変化を検出することができる。ロジックアナライザは、プローブ対象信号の検出された状態変化ごとにタイムスタンプを決定することができる。ロジックアナライザはさらに、プローブ対象信号のタイムスタンプされた状態変化を指定するファイルを生成することができる。このファイルは、IC内のロジックアナライザハードウェアによって生成される。ロジックアナライザはさらに、IC内の別の回路および/またはシステム、ならびに/あるいはIC外部の別の回路および/またはシステムにファイルを出力することができる。
従来のロジックアナライザは、プローブ対象信号の値を継続的に取り込もうとする。値は、例えば、監視されているシステムのクロックレートでサンプリングされる。サンプリングされた値は、少なくとも論理解析が実行される時間枠のトレースデータとして保存および保持される。したがって、ロジックアナライザは、大量のトレースデータ、例えば、プローブ対象信号が監視される時間枠にわたる各クロックサイクルでの各プローブ対象信号の値を生成して保存する。この量のデータを取り込むには、データを保存するためにICにかなりのメモリリソースが必要である。これは、ロジックアナライザがより大きく複雑になり、監視される電子システムの実装に使用することができるメモリリソース(およびルーティングリソース)が少なくなることを意味する。
また、大量のトレースデータを取り込むと、ICからタイムリーにトレースデータをオフロードするためにかなりの帯域幅が必要になる。多くの場合、IC内の従来のロジックアナライザは、ジョイントテストアクショングループ(JTAG)インターフェースを使用して、ICからトレースデータをオフロードする。しかし、JTAGインターフェースは低速になる傾向がある。例えば、JTAGインターフェースは、トレースデータが生成される速度よりもはるかに遅い速度でICからトレースデータをオフロードする。これは、トレースデータを保存するロジックアナライザを実装するために、ICのメモリリソースが不足している可能性があることを意味する。ロジックアナライザの複雑さの増加により、場合によっては、IC内での実装のための合成、配置、および/またはルーティング中に、回路設計の達成可能な最大動作周波数を下げることができる。そのような場合、従来のロジックアナライザが含まれる回路設計は、従来のロジックアナライザが含まれていない場合よりも遅い周波数で動作する。
本明細書で説明される例示的な実施形態は、状態変化データとしてトレースデータを表すファイルフォーマットを利用することにより、これらの制約およびその他に対処する。ファイルフォーマットは、ロジックアナライザのハードウェア自体によって、またはその中に生成される。ロジックアナライザハードウェアでファイルを生成することにより、ロジックアナライザハードウェアは、事実上、生成されたトレースデータに圧縮形式を適用する。例えば、プローブ対象信号の各サンプリング値は、前のクロックサイクルに対する状態変化を検出するために、数クロックサイクルを超えて保存する必要はない。さらに、結果のファイルは、その中に含まれるトレースデータにアクセスするための独自の復号化技術を必要としないフォーマットで指定される。
本発明の構成のさらなる態様は、図面を参照して以下により詳細に説明される。説明を簡単かつ明確にするために、図に示す要素は必ずしも縮尺通りに描かれていない。例えば、いくつかの要素の寸法は、明確にするために他の要素に比べて誇張されている場合がある。さらに、適切であると考えられる場合、対応する、類似の、または同様の特徴を示すために符号が図の間で繰り返されている。
図1は、ロジックアナライザ回路を含む例示的なIC100を示す。図1の例では、IC100は、様々な異なるタイプのICのいずれかとして実装されてもよい。例には、デジタルIC、特定用途向け集積回路(ASIC)、プログラマブルIC、部分的プログラマブルIC、またはその他の適切なICが含まれるが、これらに限定されない。プログラマブルおよび/または部分的プログラマブルICの例には、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブルロジックアレイ(PLA)、複合プログラマブルロジックデバイス(CPLD)、ならびに/あるいは1つまたは複数のプログラマブル回路ブロック、プログラマブル回路タイル、または他のプログラム可能な回路を含む他のICが含まれるが、これらに限定されない。
図示するように、IC100は監視対象回路105を含む。監視対象回路105は、ロジックアナライザ回路110に結合されている。より具体的には、1つまたは複数のワイヤ115または相互接続が、監視対象回路105とロジックアナライザ回路110とを結合する。ワイヤ115の各々が監視対象信号を運ぶ。説明の目的のために、ワイヤ115によって搬送される信号は、本明細書では「プローブ対象信号」と呼ばれる。
監視対象回路105は、監視される信号(例えば、プローブ対象信号)を含むかまたは生成する任意の回路として実装されてもよい。1つまたは複数の実施形態では、監視対象回路105は、ユーザにより指定される回路である。例えば、監視対象回路105は、ユーザ回路設計の一部として実装される回路を含んでもよい。プログラマブルICの場合、監視対象回路105は、ICのプログラム可能な回路を使用して全体的または部分的に実装されてもよい。
1つまたは複数の実施形態では、ロジックアナライザ回路110は、IC100内のハードワイヤード回路として実装される。1つまたは複数の他の実施形態では、ロジックアナライザ回路110は、ICのプログラム可能な回路内に実装される。例えば、ロジックアナライザ110は、監視対象回路105を含むユーザ回路設計に組み込まれ得るコア、回路もしくはコアのパラメータ化可能部分、または回路の所定のユニットとして提供されてもよい。後者の場合、プログラム可能な回路で実装される場合、ロジックアナライザ回路110はユーザが選択可能な数のプローブポートを有することができる。各プローブポートは、ユーザが選択可能なプローブ幅を有することができる。
いずれの場合でも、ロジックアナライザ回路110は、プログラムコードを実行するプロセッサとして実装されていない。むしろ、ロジックアナライザ回路110は、ハードワイヤードまたはハード回路、プログラム可能な回路、またはハード回路とプログラム可能な回路の組み合わせとして実装されるかどうかにかかわらず、本明細書に記載の動作を実行するための専用の回路である。
ロジックアナライザ回路110は、ワイヤ115によって運ばれるプローブ対象信号を受信することができる。ロジックアナライザ回路110はさらに、プローブ対象信号を解析することができる。1つまたは複数の実施形態では、ロジックアナライザ回路110は、監視対象回路105から受信したプローブ対象信号の各々の状態変化を検出することができる。検出された状態変化ごとに、ロジックアナライザ回路110は、検出された状態変化が生じたタイムスタンプを決定することができる。1つまたは複数の実施形態では、ロジックアナライザ回路110は、検出された状態変化に関係なくサンプリング信号値を連続的に保存するのではなく、プローブ対象信号のタイムスタンプされた状態変化のみを少なくとも一時的に保存する。
1つまたは複数の実施形態では、ロジックアナライザ回路110は、トリガ条件を検出することができる。トリガ条件は、プローブ対象信号のうちの1つまたは複数で特定のまたは所定の状態が発生することである。ロジックアナライザ回路110は、プローブ対象信号の状態を監視することができ、プローブ対象信号の所定の状態またはトリガ条件に対応する複数のプローブ対象信号の所定の状態の検出に応答して、トリガ条件に関連するアクションを開始することができる。一例では、ロジックアナライザ回路110は、特定のトリガ条件が検出されるまでファイル120の生成を控えることができる。トリガ条件の検出に応答して、ロジックアナライザ回路110は、トレースデータを出力するためにファイル120を生成するか、またはファイル120の生成を開始することができる。ロジックアナライザ回路110の複数のプローブポートは、例えばその上の信号の監視など、単一のトリガ条件に結合されてもよい。
1つまたは複数の実施形態では、ロジックアナライザ回路110は、プローブ対象信号のトレースデータをファイル120として出力することができる。ファイル120は、プローブ対象信号の状態変化データおよび状態変化データのタイムスタンプを指定してもよい。例えば、ファイル120は、プローブ対象信号の各々について各状態変化およびそのような状態変化のタイムスタンプを指定してもよい。
図1の例では、ファイル120はハードウェアで生成される。ロジックアナライザ回路110がファイル120を生成する。1つまたは複数の実施形態では、ファイル120は、情報交換のための米国標準コード(ASCII)を使用して符号化される。例示的かつ非限定的な例として、ファイル120は値変化ダンプ(VCD)ファイルとして実装される。1つまたは複数の実施形態では、ファイル120はIEEE標準1364−1995に準拠している。1つまたは複数の実施形態では、ファイル120はIEEE標準1364‐2001に準拠している。
リスト1は、ファイル120の一例を示している。リスト1は、VCDファイルとしてASCIIでフォーマットされている。
リスト1
$date Sept 10 2008 12:00:05 $end
#バージョン 例示的シミュレータV0.1 $end
$timescale 1ns $end
$scope module top $end
$var wire 32 ! data $end
$var wire 1 @ en $end
$var wire 1 # rx $end
$var wire 1 $ tx $end
$var wire 1% err $end
$var wire 1 ^ ready $end
$upscope $end
$enddefinitions $end
#0
b10000001 !
0@
1#
0$
1%
0^
#1
1@
#2
0@
#3
1@
#5
1@
#11
b0
0#
#16
b101010101010110101010101010101 !
1#
#20
0%
#23
...
トレースデータをASCIIフォーマットのファイルとして、またVCDファイルとして生成することにより、様々なシステムでトレースデータをさらに処理することなく簡単に表示およびレンダリングすることができる。例えば、VCDファイルをVCD波形ビューアに直接提供することができる。VCD波形ビューアは簡単に入手でき、例えば、トレースデータの特別な復号化や独自の復号化を実行する必要なく、標準ブラウザ内に実装することができる。
特定の実施形態では、ロジックアナライザ回路110は、ロジックアナライザ回路110がプローブ対象信号を監視している期間にわたってデータストリームとしてファイル120を出力し続けることができる。ロジックアナライザ回路110は、リアルタイムまたは実質的にリアルタイムでファイル120を出力することができ、その中で解析が実行される。したがって、1つまたは複数の実施形態では、ロジックアナライザ回路110は、IC100のオンチップメモリの量によって制限または制約されない。
本明細書で説明する本発明の構成によれば、ロジックアナライザ回路110は、各クロックサイクルの各監視対象信号のトレースデータを保存することなく、多数の信号を監視することができる。例示的な例として、ユーザは、ロジックアナライザ110がICのプログラム可能な回路に実装され、監視対象回路105の1,000個の信号を監視することを指定してもよい。ロジックアナライザは、クロックサイクルごとに1,000個のプローブ対象信号の各々の値をトレースデータとして保存するのではなく、各イベントの状態変化をトレースデータとして状態変化のタイムスタンプと共に保存するだけである。プローブ対象信号の既知の初期状態が与えられると、ファイル120の結果のトレースデータは、プローブ対象信号が監視される任意の所与の時点での各プローブ対象信号の値を示す。状態変化を記録することにより、ロジックアナライザは、従来のロジックアナライザの場合よりも少ないメモリリソースを使用することができる(例えば、使用するブロックランダムアクセスメモリが少なくなる)。
図2は、図1のロジックアナライザ回路110の例示的な実施態様を示している。図2の例では、ロジックアナライザ回路110は、トレース回路205、ファイル生成回路220、およびインターフェース225を含む。トレース回路205は、トレースキャプチャ回路210およびトレース解析回路215を含んでもよい。
トレースキャプチャ回路210は、ワイヤ115(図示せず)に結合されている。トレースキャプチャ回路210は、プローブ対象信号の各々を受信することができる。1つまたは複数の実施形態では、トレースキャプチャ回路210は、プローブ対象信号の値をバッファリングすることができる。1つまたは複数の実施形態では、トレースキャプチャ回路は、各プローブ対象信号の現在値(例えば、現在のクロックサイクルの)および各プローブ対象信号の以前の値(例えば、直前のクロックサイクルから現在のクロックサイクルの前まで)を取り込むまたは保存することができる。
トレース解析回路215は、プローブ対象信号の解析を実行することができる。1つまたは複数の実施形態では、トレース解析回路215は、各プローブ対象信号の状態が変化したかどうかを判定することができる。例えば、プローブ対象信号ごとに、トレース解析回路215は、プローブ対象信号の値が0から1に、または1から0に遷移したかどうかを判定する。トレース解析回路215は、トレースキャプチャ回路210から各プローブ対象信号の現在値および以前の値を受信し、各プローブ対象信号の現在値がプローブ対象信号の以前の値と異なるかどうかを判定する比較を実行することができる。
図2の例では、トレース解析回路215はトレースデータを出力することができる。トレースデータは、どのプローブ対象信号の状態が変化したか、およびプローブ対象信号の状態のそのような変化ごとのタイムスタンプを指定する。図示するように、ファイル生成回路220は、トレース解析回路215の出力に結合される。したがって、ファイル生成回路220はトレースデータを受信する。
ファイル生成回路220は、トレースデータを指定するファイルを生成することができる。1つまたは複数の実施形態では、ファイル生成回路220は、ASCII符号化されたファイルを生成することができる。ASCII符号化されたファイルは、VCDファイルまたは別の適切なファイルタイプである。したがって、経時的に(例えば、ロジックアナライザ110がアクティブでプローブ対象信号を監視している全時間に)各プローブ対象信号の値をトレースデータとして保存するのではなく、ロジックアナライザ110は、ファイル120の生成の一部として、プローブ対象信号の状態変化を検出し保存することができる。
説明したように、特定の実施形態では、ロジックアナライザ回路110は、IC 100のプログラム可能な回路に実装される。回路設計の実装の一部として、例えば、ユーザは、回路設計のどの信号を監視するかを指定することができる。電子設計自動化(EDA)システムは、ユーザの回路設計内にロジックアナライザ回路110のインスタンスを含めて、プローブ対象信号(ユーザが指定)を監視するようにロジックアナライザ回路110を構成し、実装フロー(例えば、合成、配置、およびルーティング)の一部として、プローブ対象信号をロジックアナライザ回路110にルーティングすることができる。
したがって、EDAシステムは、ファイル120の様々なセクションを作成および/または書き込むために、ロジックアナライザ回路110、より具体的にはファイル生成回路220を生成することができる。ロジックアナライザ回路110は、例えば、監視される信号を認識しているので、ファイル生成回路220は、ヘッダーセクションおよび変数定義セクションなどのファイル120の特定の部分を生成するように予め構成することができる。ファイル生成回路220は、そのような情報が検出されるとき、初期値および値の変化(タイムスタンプ付き)などの他のデータを符号化するために必要な回路を含む。
ファイル生成回路220は、ファイル120をインターフェース225に出力する。1つまたは複数の実施形態では、ファイル生成回路220はファイル120をメモリに書き込む。特定の実施形態では、メモリは、ファイル生成回路220内に実装されるかまたは含まれる。メモリは、先入れ先出し(FIFO)メモリまたは他のタイプのメモリ回路(例えば、バッファメモリまたはRAM)として実装されてもよい。インターフェース225は、メモリからファイル120を読み出し、ファイル120を別の回路および/またはシステムに提供することができる。1つまたは複数の実施形態では、インターフェース225は、ファイル120を回路および/またはシステムにストリーミングすることができる。例えば、インターフェース225は、ファイル120が完全に生成されるのを待つことなく(例えば、監視ウィンドウの終了のために)リアルタイムまたは実質的にリアルタイムでファイル120が生成されると、ファイル120を出力することができる。
一例では、インターフェース225はAMBA eXtensible Interface(AXI)バスとして実装される。AMBA AXIバスは、回路ブロックやシステム間でオンチップ接続を確立する際に使用する組み込みマイクロコントローラ・バス・インターフェースである。例えば、インターフェース225は、AXIストリームインターフェース、AXIメモリマップインターフェース、またはICの別のネイティブインターフェースとして実装されてもよい。相互接続またはインターフェースの他の実装例には、バス、クロスバー、およびネットワークオンチップ(NoC)が含まれてもよいが、これらに限定されない。
1つまたは複数の実施形態では、インターフェース225は、入力/出力(I/O)回路に結合される。I/O回路は、ギガビットトランシーバ、ユニバーサルシリアルバス(USB)ポート、イーサネットポート、または、ICがファイル120を外部システムに提供することを可能にするIC内に実装された他の通信ポートなどの様々な周辺回路および/またはポートとして実装されてもよい。I/O回路は、高速通信インターフェースであってもよく、それにより、ロジックアナライザ110からJTAG依存性を除去することができる。1つまたは複数の他の実施形態では、インターフェース225は、IC内に実装されるプロセッサに結合される。プロセッサは、プログラムコードを実行することができるものであってもよい。プロセッサは、IC内にハードワイヤードされてもよいし、ICに含まれるプログラム可能な回路を使用して実装されてもよい。
図2の例示的な実施態様は、トレースデータの取り込みから外部システムによるトレースデータの表示までの低レイテンシを容易にする。特定の実施形態では、図2に関連して説明される例示的なアーキテクチャは、IC 100の位置および近接性にかかわらず、ほぼすべての外部データ処理システムからのIC 100のライブ、例えばリアルタイムまたは実質的にリアルタイムのデバッグをサポートする。例えば、ファイル120は、ファイル120が生成され、ICから出力され、外部システムによって受信されると、外部システムによってリアルタイムでレンダリングされて表示されてもよい。
1つまたは複数の実施形態では、ロジックアナライザ回路110は、データの損失なしにクロック信号データの取り込みを容易にするためにパイプライン化されてもよい。例示的な実施態様では、ロジックアナライザ回路110は、(例えば、リモートシステムによる)ソフトウェアキャプチャが不可能であるか、ソフトウェア障害がある場合に512/1024サンプル保持を保証するのに十分なメモリリソース(例えば、ブロックRAM)を含んでもよい。
図3は、ロジックアナライザ回路110を含む別の例示的なIC300を示す。1つまたは複数の実施形態では、ロジックアナライザ回路110はプロセッサ305に結合される。プロセッサ305は、メモリ310およびI/O回路315に結合されている。図3の例では、I/O回路315もメモリ310に結合されてもよい。メモリ310は、様々な異なるタイプのRAMのいずれでもよい。例えば、I/O回路315は、1つまたは複数のダイレクトメモリアクセス(DMA)回路を介してメモリ310に結合されてもよい。したがって、プロセッサ305は、I/O回路315を介して外部システム320へのトレースデータファイルの出力を開始することができる。
1つまたは複数の実施形態では、プロセッサ305は、IC300のプログラム可能な回路を使用して実装される。1つまたは複数の実施形態では、プロセッサ305は、IC300のハードワイヤードプロセッサとして実装される。メモリ310は、プログラム可能な回路メモリリソースを使用して、またはハードワイヤードメモリリソースとしてオンチップで実装されてもよい。1つまたは複数の他の実施形態では、メモリ310はオフチップで実装される。
外部システム320は、コンピュータシステムなどのデータ処理システムであってもよい。例えば、外部システム320はサーバーであってもよい。1つまたは複数の実施形態では、IC300は、より大きく、より複雑なシステムおよび/またはデータセンターおよび/またはサーバーファーム内のコンピュータシステムなどのリモート環境内に含まれる。
外部システム320がデータ処理システムである実施形態では、外部システム320はブラウザを実行することができる。その場合、ブラウザは、ロジックアナライザ110(例えば、IC)から受信したファイルをレンダリングすることができる。例えば、外部システム320により実行されるブラウザまたは他のアプリケーションは、波形を示すファイルの視覚化を生成することができる。例えば、外部システム320は、実質的にリアルタイムでファイルを受信して、実質的にリアルタイムでファイルによって指定された波形を生成し続けることができるので、ユーザは、ファイル生成回路220によって生成されたトレースデータの波形を実質的にリアルタイムで閲覧することができる。
例示的な例では、プロセッサ305は、外部システム320からロジックアナライザ回路110を起動する要求を受信することができる。要求に応答して、プロセッサ305は、ロジックアナライザ回路110を起動し、外部システム320などの特定のアドレスまたは宛先にファイルを送信することができる。
1つまたは複数の他の実施形態では、プロセッサ305は、ファイル120を読み出しおよび/または処理することができるブラウザまたは他のソフトウェアを実行することができる。例えば、プロセッサ305は、ファイル120の波形ビューを生成(またはレンダリング)することができる。その場合、例えば、I/O回路315は、ファイル120の波形を表示するモニターに提供または結合され得るビデオ出力ポートであってもよい。
特定の実施形態では、ロジックアナライザ回路110は、プロセッサ305を利用および/または含むことなく、I/Oデバイス315に直接結合される。その場合、ロジックアナライザ回路110は、その中で生成されたファイルを、プロセッサ305および/またはメモリ310を使用またはそれらに依存することなく、I/O回路315を介して外部システム320に直接出力することができる。
図4は、トレースデータを生成する例示的な方法400を示している。方法400は、本明細書の図1〜図3に関連して説明されたロジックアナライザ回路によって実行されてもよい。方法400は、ロジックアナライザ回路が集積回路内に実装された状態で開始されてもよい。さらに、ユーザ回路設計などの監視対象回路のプローブ対象信号は、監視のためにロジックアナライザ回路にルーティングおよび/または提供されている。
ブロック405で、ロジックアナライザ回路はプローブ対象信号の監視を開始する。ブロック410で、ロジックアナライザ回路は、プローブ対象信号のうちの1つまたは複数またはすべてで状態変化が検出されたかどうかを判定する。ロジックアナライザが、プローブ対象信号の1つまたは複数またはすべての状態変化を検出した場合には、方法400はブロック415に続く。ロジックアナライザが状態変化を検出しない場合には、方法400はブロック405に戻って、プローブ対象信号の監視を続ける。
ブロック415で、ロジックアナライザは、トリガ条件が検出されたかどうかを判定する。1つまたは複数の実施形態では、トリガ条件は、プローブ対象信号の1つまたは複数における特定の値または状態の存在である。トリガ条件が検出された場合には、方法400はブロック420に進む。トリガ条件が検出されない場合には、方法400はブロック430に続く。
ブロック420で、トリガ条件が検出された場合に、ロジックアナライザは、検出された特定のトリガ条件に関連するアクションを選択する。例えば、ロジックアナライザは、複数の異なるアクションを開始することが可能であってもよい。これらの異なるアクションは、異なるトリガ条件に関連付けられてもよい。したがって、ロジックアナライザは、ブロック415で検出された特定のトリガ条件に基づいて、複数のアクションからアクションを選択することができる。
ブロック420の後に、方法400はブロック425に続く。ブロック425で、ロジックアナライザは、ブロック420で選択されたアクションを開始または実行する。
引き続きブロック430で、ロジックアナライザは、プローブ対象信号のタイムスタンプされた状態変化を指定するファイルを生成する。例えば、ロジックアナライザは、ASCII符号化ファイルを生成することができる。上述のように、1つまたは複数の実施形態では、ファイルはVCDファイルであってもよい。
1つまたは複数の実施形態では、ロジックアナライザは、ファイルのヘッダーセクションを生成および/または符号化する。ロジックアナライザはさらに、ファイルの変数定義セクションを生成および/または符号化することができる。ロジックアナライザはさらに、ファイルの初期値セクションを生成および/または符号化することができる。ファイルの初期値セクションは、プローブ対象信号の各々の開始値または状態を指定する。ロジックアナライザは、値変化セクションをさらに生成することができる。ロジックアナライザがプローブ対象信号を監視し、状態変化を検出し続ける限り、ロジックアナライザ回路は値変化セクションを生成し続けることを理解されたい。
例示的な例として、ロジックアナライザ回路はファイルの開始部分を生成してもよい。プローブ対象信号の状態変化がさらに検出されると、ロジックアナライザ回路は値変化セクションを生成し続ける。ファイルはロジックアナライザ回路によって継続的に生成されるため、ロジックアナライザ回路はファイルを出力することができる。したがって、ブロック435で、ロジックアナライザ回路はファイルを出力する。前述のように、ファイルを出力することには、ロジックアナライザ回路がファイルの一部を生成し、ファイルのさらなる部分を生成し続ける場合が含まれるので、ファイルは、ロジックアナライザ回路から別の回路および/またはシステムへ、あるいはICから別の回路および/またはICの外部のシステムへストリーム出力されてもよい。
説明したように、1つまたは複数の実施形態では、ファイルは外部システムに出力されてもよい。外部システムは、トレースデータの波形ビューを生成することができる。外部システムは、実質的にリアルタイムで波形ビューを受信し表示してもよい。例えば、外部システムは、プローブ対象信号を取り込んでから約1秒以内に波形ビューを生成することができる。
図5は、ICの例示的なアーキテクチャ500を示している。一態様では、アーキテクチャ500は、プログラマブルIC内に実装されてもよい。例えば、アーキテクチャ500を使用してFPGAを実装してもよい。アーキテクチャ500は、システムオンチップ(SOC)タイプのICの代表であってもよい。SOCは、プログラムコードを実行するプロセッサと、1つまたは複数の他の回路と、を含むICである。他の回路は、ハードワイヤード回路、プログラム可能な回路、および/またはそれらの組み合わせとして実装されてもよい。回路は、互いにおよび/またはプロセッサと協調して動作してもよい。1つまたは複数の実施形態では、監視対象回路105、ロジックアナライザ回路110、プロセッサ305、メモリ310、および/またはI/O回路315は、図5のそれと同一または類似のアーキテクチャを有するICで実装されてもよい。
図示するように、アーキテクチャ500は、いくつかの異なるタイプのプログラム可能な回路、例えば、ロジック、ブロックを含む。例えば、アーキテクチャ500は、多数の異なるプログラマブルタイルを含んでもよく、それには、マルチギガビットトランシーバ(MGT)501、構成可能な論理ブロック(CLB)502、ランダムアクセスメモリブロック(BRAM)503、入力/出力ブロック(IOB)504、構成およびクロック論理(CONFIG/CLOCKS)505、デジタル信号処理ブロック(DSP)506、特殊なI/Oブロック507(例えば、構成ポートおよびクロックポート)、ならびに、デジタルクロックマネージャ、アナログデジタルコンバータ、システム監視論理などの他のプログラム可能な論理508が含まれる。
いくつかのICでは、各プログラマブルタイルは、各隣接タイル内の対応する相互接続素子(INT)511との間の標準化された接続を有するプログラム可能なINT511を含む。したがって、INT511を合わせて、図示のICのプログラム可能な相互接続構造を実装する。各INT511は、図5の上部に含まれる例で示されているように、同じタイル内のプログラム可能な論理素子との接続も含む。
例えば、CLB502は、ユーザ論理に加えて単一のINT511を実装するようにプログラムされ得る構成可能な論理素子(CLE)512を含んでもよい。BRAM503は、1つまたは複数のINT511に加えて、BRAM論理素子(BRL)513を含んでもよい。通常、タイルに含まれるINT511の数は、タイルの高さに依存する。図示するように、BRAMタイルは5つのCLBと同じ高さであるが、他の数(例えば4)を使用してもよい。DSPタイル506は、適切な数のINT511に加えて、DSP論理素子(DSPL)514を含んでもよい。IOB504は、例えば、INT511の1つのインスタンスに加えて、I/O論理素子(IOL)515の2つのインスタンスを含むことができる。IOL 515に接続されている実際のI/Oパッドは、IOL 515の領域に限定されなくてもよい。
図5に描かれた例では、例えば領域505、507、508で形成されたダイの中心近くのカラム状領域は、構成、クロック、および他の制御ロジックに使用されてもよい。このカラムから延在する水平領域509を使用して、プログラマブルICの幅全体にクロックと構成信号を分配することができる。
図5に示すアーキテクチャを利用するいくつかのICは、ICの大部分を構成する通常のカラム構造を破壊する追加の論理ブロックを含む。追加の論理ブロックは、プログラム可能なブロックおよび/または専用回路であってもよい。例えば、PROC 510として示されているプロセッサブロックは、CLBとBRAMのいくつかのカラムにまたがっている。
一態様では、PROC510は、ICのプログラム可能な回路を実装するダイの一部として製造される専用回路、例えばハードワイヤードプロセッサとして実装されてもよい。PROC510は、個々のプロセッサ、例えば、プログラムコードを実行可能な単一コアから、1つまたは複数のコア、モジュール、コプロセッサ、インターフェースなどを有するプロセッサシステム全体まで、複雑さの範囲にわたる様々な異なるプロセッサタイプおよび/またはシステムのいずれかを表してもよい。
別の態様では、PROC510はアーキテクチャ500から省略され、記載されたプログラム可能ブロックの他の種類のうちの1つまたは複数と置き換えられてもよい。さらに、そのようなブロックは、PROC510の場合のように、プログラム可能な回路の様々なブロックを使用してプログラムコードを実行することができるプロセッサを形成することができるという点で、「ソフトプロセッサ」を形成するために利用されてもよい。
「プログラム可能な回路」という語句は、IC内のプログラム可能な回路素子、例えば、本明細書で説明する様々なプログラム可能または構成可能な回路ブロックまたはタイル、ならびに様々な回路ブロック、タイル、および/または素子を、ICにロードされた構成データに従って選択的に結合する相互接続回路を指す。例えば、CLB502およびBRAM503などのPROC510の外部にある図5に示す回路ブロックは、ICのプログラム可能な回路とみなされる。
一般に、プログラム可能な回路の機能は、構成データがICにロードされるまで確立されない。構成ビットのセットを使用して、FPGAなどのICのプログラム可能な回路をプログラムすることができる。通常、構成ビットは「構成ビットストリーム」と呼ばれる。一般に、最初に構成ビットストリームをICにロードしないと、プログラム可能な回路は動作も機能もしない。構成ビットストリームは、プログラム可能な回路内で特定の回路設計を効果的に実装する。回路設計は、例えば、プログラム可能回路ブロックの機能的側面と、様々なプログラム可能回路ブロック間の物理的接続性を指定する。
「ハードワイヤード」または「ハード化」された、すなわちプログラム可能でない回路がICの一部として製造される。プログラム可能な回路とは異なり、ハードワイヤード回路または回路ブロックは、ICの製造後に構成ビットストリームのロードにより実装されない。ハードワイヤード回路は一般に、専用の回路ブロックと相互接続を備えていると一般に考えられており、例えば、最初に構成ビットストリームをIC、例えばPROC510にロードすることなく機能する。
場合によっては、ハードワイヤード回路は、IC内の1つまたは複数のメモリ素子に保存されているレジスタ設定または値に従って設定または選択することができる1つまたは複数の動作モードを有してもよい。動作モードは、例えば、構成ビットストリームをICにロードすることで設定されてもよい。この機能にもかかわらず、ハードワイヤード回路は、ICの一部として製造されたときに動作可能であって、特定の機能を有するので、ハードワイヤード回路はプログラム可能回路とはみなされない。
SOCの場合、構成ビットストリームは、プログラム可能な回路内に実装される回路と、PROC 510またはソフトプロセッサによって実行されるプログラムコードを指定してもよい。場合によっては、アーキテクチャ500は、構成ビットストリームを適切な構成メモリおよび/またはプロセッサメモリにロードする専用の構成プロセッサを含む。専用の構成プロセッサは、ユーザ指定のプログラムコードを実行しない。他の場合では、アーキテクチャ500は、PROC 510を使用して、構成ビットストリームを受信し、構成ビットストリームを適切な構成メモリにロードし、および/または実行のためにプログラムコードを抽出してもよい。
図5は、プログラム可能な回路、例えばプログラマブルファブリックを含むICを実装するために使用してもよい例示的なアーキテクチャを示すことを意図している。例えば、カラムの論理ブロックの数、カラムの相対的な幅、カラムの数と順序、カラムに含まれる論理ブロックのタイプ、論理ブロックの相対的なサイズ、および図5の上部に含まれる相互接続/論理の実施態様は、純粋に例示的なものである。例えば、実際のICでは、ユーザ回路設計の効率的な実装を容易にするために、通常、CLBが現れる場所に複数のCLBの隣接するカラムが含まれる。しかし、隣接するCLBカラムの数は、ICの全体サイズによって異なってもよい。さらに、IC内のPROC 510などのブロックのサイズおよび/または位置は、例示のみを目的としており、限定として意図されていない。
本明細書で説明する例示的な実施形態により、従来のロジックアナライザ設計の場合よりも少ないICリソースを使用して、ロジックアナライザが多数の信号を監視することが可能になる。1つまたは複数の実施形態では、オンチップメモリの利用可能性に関する制限なしに、ICからVCDファイルフォーマットでデータを連続的に出力することができる。さらに、ブラウザを実行するホストシステムなどの外部システムは、ICの専有データフォーマットをEDAツールで使用されるフォーマットなどの使用可能なフォーマットに最初に変換することなく、VCDファイルを表示またはレンダリングすることができる。
1つまたは複数の実施形態では、プローブ対象信号の取り込みからVCDファイルの閲覧までのタイムラグはリアルタイムで生じる(例えば、プローブ対象信号取り込みの約1秒以内)。特定の実施形態では、クロック信号が監視されてもよい。したがって、設計者はICの内部信号をリアルタイムで監視することができる。さらに、設計者は、ロジックアナライザがICで使用可能な内部メモリの量に制約されないため、プローブ対象信号がIC内に保存されている場合よりも長い時間プローブ対象信号を監視することができる。
説明の目的で、本明細書に開示した様々な発明概念の完全な理解を提供するために、特定の命名法が示されている。しかし、本明細書で使用される用語は、本発明の構成の特定の態様を説明することのみを目的としており、限定することを意図していない。
本明細書で定義されるように、単数形「a」、「an」、および「the」は、文脈が明確にそうでないことを示さない限り、複数形も含むことを意図している。本明細書で定義されるように、「少なくとも1つ」、「1つまたは複数」、および「および/または」という用語は、特に明記しない限り、動作において連言的および選言的の両方である無制限表現である。例えば、「A、B、およびCの少なくとも1つ」、「A、B、またはCの少なくとも1つ」、「A、B、およびCの1つまたは複数」、「A、B、またはCの1つまたは複数」および「A、B、および/またはC」は、Aのみ、Bのみ、Cのみ、AとB共に、AとC共に、BとC共に、またはAとBとC共に、を意味する。
本明細書で定義されるように、「一実施形態」、「実施形態」、「1つまたは複数の実施形態」または類似の文言は、実施形態に関連して説明される特定の特徴、構造、または特性が、この開示内で説明される少なくとも1つの実施形態に含まれることを意味する。したがって、「一実施形態では」、「実施形態では」、「1つまたは複数の実施形態では」、および本開示を通して同様の文言の出現は、必ずしも同じではないが、すべて同じ実施形態を指す。
本明細書で定義される「リアルタイム」という用語は、特定のプロセスまたは決定が行われるのに十分に即時であるとユーザまたはシステムが感じる、またはプロセッサが何らかの外部プロセスに追いつくことができる処理応答性のレベルを意味する。
本明細書で定義されるように、「応答する」という用語は、アクションまたはイベントに容易に応答または反応することを意味する。したがって、第2のアクションが第1のアクションに「応答する」ように実行される場合、第1のアクションの発生と第2のアクションの発生との間には因果関係がある。「応答する」という用語は、因果関係を示す。
「実質的に」という用語は、列挙された特性、パラメータ、または値を正確に達成する必要がないことを意味する。しかし、例えば許容差、測定誤差、測定精度の制限、および当業者に知られている他の要因を含む偏差または変動は、特性が提供することを意図した効果を妨げない量で発生してもよい。
本明細書では、第1、第2などの用語を使用して、様々な要素を説明することがある。これらの要素はこれらの用語によって限定されるべきではなく、これらの用語は、特に明記しない限り、または文脈からそうでないことが明確に示されていない限り、ある要素を別の要素と区別するためにのみ使用されるからである。
図中のフローチャートおよびブロック図は、本発明の構成の様々な態様によるシステムおよび方法の可能な実施のアーキテクチャ、機能、および動作を示している。いくつかの代替的な実施態様では、ブロックに記載されている動作は、図に記載されている順序以外で生じてもよい。例えば、連続して示される2つのブロックは、実質的に同時に実行されてもよく、または時には、関連する機能に応じて、ブロックが逆の順序で実行されてもよい。他の例では、ブロックは一般に数字の昇順で実行されるが、さらに他の例では、1つまたは複数のブロックが様々な順序で実行され、結果が保存されて、後続のブロックまたはすぐに後続しない他のブロックで利用されてもよい。ブロック図および/またはフローチャート図の各ブロック、ならびにブロック図および/またはフローチャート図のブロックの組み合わせは、指定された機能または動作を実行するか、特殊用途のハードウェアとコンピュータ命令の組み合わせを実行する特殊用途のハードウェアベースのシステムによって実装されてもよいことにも留意されたい。
以下の特許請求の範囲に見られるすべての手段またはステッププラス機能要素の対応する構造、材料、動作、および均等物は、具体的に特許請求される他の特許請求された要素と組み合わせて機能を実行するための構造、材料、または動作を含むことを意図している。
1つまたは複数の実施形態は、IC内の信号を監視するための方法に関する。一態様では、方法は、IC内に実装されたロジックアナライザ回路を使用して、ICのプローブ対象信号を監視することと、ロジックアナライザ回路を使用して、プローブ対象信号の状態変化を検出することと、ロジックアナライザ回路内で、プローブ対象信号のタイムスタンプされた状態変化を指定するファイルを生成することと、を含む。
一態様では、ファイルはASCIIフォーマットで指定される。
別の態様では、ファイルは値変化ダンプファイルである。
別の態様では、本方法はまた、生成されたファイルを実質的にリアルタイムで外部システムに出力することを含むことができる。
別の態様では、本方法はまた、いくつかの実施形態では、プローブ対象信号の状態変化がトリガ条件に対応すると判定することに応答して、トリガ条件に関連する所定のアクションを開始することを含むことができる。
別の態様では、本方法はまた、集積回路内のプロセッサにファイルを提供することを含むことができ、プロセッサはプログラムコードを実行するように構成される。
別の態様では、本方法はまた、ファイルを外部システムに提供することを含むことができ、外部システムは、ファイルの視覚化を生成するように構成される。
別の態様では、ファイルを生成することは、ヘッダーセクションを符号化することと、変数定義セクションを符号化することと、初期値セクションを符号化することと、値変化セクションを符号化することと、を含む。
別の態様では、ロジックアナライザ回路は、集積回路のプログラム可能な回路を使用してハードウェアで実装される。
1つまたは複数の実施形態は、ICに関する。一態様では、ICは、信号を生成するように構成された監視対象回路と、ロジックアナライザ回路と、を含む。ロジックアナライザ回路は、信号を監視して信号の状態変化を検出し、信号のタイムスタンプされた状態変化を指定するファイルを生成するように構成される。
一態様では、ファイルはASCIIフォーマットのファイルである。
別の態様では、ファイルは値変化ダンプファイルである。
別の態様では、ロジックアナライザ回路は、信号を受信して、信号の現在の状態が信号の以前の状態と異なるかどうかを判定するように構成されたトレース回路を含む。ロジックアナライザ回路はまた、トレース回路に結合されたファイル生成回路を含むことができ、ファイル生成回路は、信号のタイムスタンプされた状態変化を指定するファイルを生成するように構成される。
別の態様では、トレース回路は、信号の状態変化がトリガ条件に対応すると判定することに応答して、トリガ条件に関連する所定のアクションを開始するように構成される。
別の態様では、ロジックアナライザ回路は、ファイル生成回路に結合されたインターフェースを含む。
別の態様では、ICは、インターフェースに結合されたプロセッサを含み、プロセッサは、プログラムコードを実行し、ファイルを受信するように構成される。
別の態様では、プロセッサは、ファイルから監視対象信号の波形ビューを生成するように構成される。
別の態様では、ICは、インターフェースに結合されたI/O回路を含み、I/O回路は、ファイルを外部システムに出力するように構成される。
別の態様では、外部システムはファイルから信号の波形ビューを生成する。
別の態様では、ロジックアナライザ回路は、ICのプログラム可能な回路を使用してハードウェアで実装される。
1つまたは複数の実施形態は、ロジックアナライザ回路を含むICを実装することに関する。一態様では、方法は、ロジックアナライザ回路を提供することを含むことができる。ロジックアナライザ回路は、信号を監視して信号の状態変化を検出し、信号のタイムスタンプされた状態変化を指定するファイルを生成するように構成される。例えば、ファイルはASCIIフォーマットのファイルにすることができる。特定の例では、ファイルは値変化ダンプファイルにすることができる。
別の態様では、本方法は、信号を受信し、信号の現在の状態が信号の以前の状態と異なるかどうかを判定するように構成されたトレース回路を含むように、ロジックアナライザ回路を提供することを含む。ロジックアナライザ回路を提供することは、トレース回路に結合されたファイル生成回路を提供することを含むことができ、ファイル生成回路は、信号のタイムスタンプされた状態変化を指定するファイルを生成するように構成される。
別の態様では、トレース回路は、信号の状態変化がトリガ条件に対応すると判定することに応答して、トリガ条件に関連する所定のアクションを開始するように構成される。
別の態様では、ロジックアナライザ回路を提供することは、ファイル生成回路に結合されたインターフェースを提供することを含む。
本明細書で提供される本発明の構成の説明は、例示の目的のためであり、網羅的であること、または開示された形態および例に限定されることを意図しない。本明細書で使用される用語は、発明の構成の原理、市場で見出される技術に対する実用的な応用または技術的改良を説明するために、ならびに/あるいは当業者が本明細書に開示する発明の構成を理解することができるように選択された。記載した発明の構成の範囲および趣旨から逸脱することなく、変更および変形が当業者には明らかであろう。したがって、そのような特徴および実施態様の範囲を示すものとして、前述の開示ではなく、以下の特許請求の範囲を参照すべきである。

Claims (15)

  1. 集積回路内の信号を監視するための方法であって、
    集積回路内に実装されたロジックアナライザ回路を使用して、前記集積回路のプローブ対象信号を監視することと、
    前記ロジックアナライザ回路を使用して、前記プローブ対象信号の状態変化を検出することと、
    前記ロジックアナライザ回路内で、前記プローブ対象信号のタイムスタンプされた状態変化を指定するファイルを生成することと、
    を含む方法。
  2. 前記ファイルはASCIIフォーマットで指定されるか、または前記ファイルは値変化ダンプファイルである、請求項1に記載の方法。
  3. 生成された前記ファイルを実質的にリアルタイムで外部システムに出力すること
    をさらに含む、請求項1に記載の方法。
  4. 前記プローブ対象信号の状態変化がトリガ条件に対応すると判定することに応答して、前記トリガ条件に関連する所定のアクションを開始すること
    をさらに含む、請求項1に記載の方法。
  5. 前記集積回路内のプロセッサに前記ファイルを提供することであって、前記プロセッサはプログラムコードを実行するように構成される、前記集積回路内のプロセッサに前記ファイルを提供すること、または、
    前記ファイルを外部システムに提供することであって、前記外部システムは前記ファイルの視覚化を生成するように構成される、前記ファイルを外部システムに提供すること
    をさらに含む、請求項1に記載の方法。
  6. 前記ファイルを生成することは、
    ヘッダーセクションを符号化することと、
    変数定義セクションを符号化することと、
    初期値セクションを符号化することと、
    値変化セクションを符号化することと、
    を含む、請求項1に記載の方法。
  7. 前記ロジックアナライザ回路は、前記集積回路のプログラム可能な回路を使用してハードウェアで実装される、請求項1に記載の方法。
  8. 信号を生成するように構成された監視対象回路と、
    前記信号を監視して前記信号の状態変化を検出し、前記信号のタイムスタンプされた状態変化を指定するファイルを生成するように構成されたロジックアナライザ回路と、
    を含む集積回路。
  9. 前記ファイルは、ASCII形式のファイルまたは値変化ダンプファイルである、請求項8に記載の集積回路。
  10. 前記ロジックアナライザ回路は、
    前記信号を受信して、前記信号の現在の状態が前記信号の以前の状態と異なるかどうかを判定するように構成されたトレース回路と、
    前記トレース回路に結合されたファイル生成回路であって、前記信号のタイムスタンプされた状態変化を指定するファイルを生成するように構成されたファイル生成回路と、
    を含む、請求項8に記載の集積回路。
  11. 前記トレース回路は、前記信号の状態変化がトリガ条件に対応すると判定することに応答して、前記トリガ条件に関連する所定のアクションを開始するように構成される、請求項10に記載の集積回路。
  12. 前記ロジックアナライザ回路は、
    前記ファイル生成回路に結合されたインターフェース
    を含む、請求項10に記載の集積回路。
  13. 前記インターフェースに結合されたプロセッサであって、プログラムコードを実行し、前記ファイルを受信するように構成され、前記ファイルから前記監視対象信号の波形ビューを生成するように構成されたプロセッサ
    をさらに含む、請求項12に記載の集積回路。
  14. 前記インターフェースに結合された入力/出力回路をさらに含み、前記入力/出力回路は、前記ファイルを外部システムに出力するように構成され、前記外部システムは、前記ファイルから前記信号の波形ビューを生成する、請求項12に記載の集積回路。
  15. 前記ロジックアナライザ回路は、前記集積回路のプログラム可能な回路を使用してハードウェアで実装される、請求項8に記載の集積回路。
JP2020503043A 2017-07-24 2018-07-11 集積回路のためのロジックアナライザ Active JP7354091B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2023076497A JP2023100844A (ja) 2017-07-24 2023-05-08 集積回路のためのロジックアナライザ

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/658,086 US10482205B2 (en) 2017-07-24 2017-07-24 Logic analyzer for integrated circuits
US15/658,086 2017-07-24
PCT/US2018/041674 WO2019022956A1 (en) 2017-07-24 2018-07-11 LOGIC ANALYZER FOR INTEGRATED CIRCUITS

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2023076497A Division JP2023100844A (ja) 2017-07-24 2023-05-08 集積回路のためのロジックアナライザ

Publications (2)

Publication Number Publication Date
JP2020529064A true JP2020529064A (ja) 2020-10-01
JP7354091B2 JP7354091B2 (ja) 2023-10-02

Family

ID=63080519

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2020503043A Active JP7354091B2 (ja) 2017-07-24 2018-07-11 集積回路のためのロジックアナライザ
JP2023076497A Pending JP2023100844A (ja) 2017-07-24 2023-05-08 集積回路のためのロジックアナライザ

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2023076497A Pending JP2023100844A (ja) 2017-07-24 2023-05-08 集積回路のためのロジックアナライザ

Country Status (6)

Country Link
US (1) US10482205B2 (ja)
EP (1) EP3658928B1 (ja)
JP (2) JP7354091B2 (ja)
KR (1) KR20200033881A (ja)
CN (1) CN110959121B (ja)
WO (1) WO2019022956A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023224024A1 (ja) * 2022-05-17 2023-11-23 三菱電機株式会社 ロジックアナライザ回路、集積回路および集積回路システム

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11442104B1 (en) 2019-02-25 2022-09-13 Marvell Asia Pte, Ltd. Configurable integrated logic analyzer
US11188697B1 (en) 2021-01-05 2021-11-30 Xilinx, Inc. On-chip memory access pattern detection for power and resource reduction

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH067069U (ja) * 1992-06-29 1994-01-28 東芝エンジニアリング株式会社 ロジックアナライザ
JP2001350646A (ja) * 2000-06-06 2001-12-21 Advantest Corp 半導体試験システム
JP2004220389A (ja) * 2003-01-16 2004-08-05 Fuji Xerox Engineering Co Ltd 情報収集装置及び情報収集分析システム
JP2006090727A (ja) * 2004-09-21 2006-04-06 Nec Engineering Ltd オンチップ・ロジックアナライザ
JP2006107071A (ja) * 2004-10-05 2006-04-20 Sony Corp ロジックアナライザ内蔵型電子部品
US7332929B1 (en) * 2006-03-03 2008-02-19 Azul Systems, Inc. Wide-scan on-chip logic analyzer with global trigger and interleaved SRAM capture buffers
JP2008089545A (ja) * 2006-10-05 2008-04-17 Matsushita Electric Ind Co Ltd 解析装置
JP2015035160A (ja) * 2013-08-09 2015-02-19 三菱電機株式会社 監視データ記憶装置、監視データ記憶方法およびプログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6286114B1 (en) * 1997-10-27 2001-09-04 Altera Corporation Enhanced embedded logic analyzer
US6687865B1 (en) * 1998-03-25 2004-02-03 On-Chip Technologies, Inc. On-chip service processor for test and debug of integrated circuits
US20120209892A1 (en) * 2011-02-14 2012-08-16 Macaskill Don Systems and methods related to aggregation of disparate database content
US20060117274A1 (en) * 1998-08-31 2006-06-01 Tseng Ping-Sheng Behavior processor system and method
US7031869B2 (en) 2001-12-28 2006-04-18 Hewlett-Packard Development Company, L.P. Method and apparatus for managing timestamps when storing data
US7991606B1 (en) 2003-04-01 2011-08-02 Altera Corporation Embedded logic analyzer functionality for system level environments
US20060117247A1 (en) * 2004-11-30 2006-06-01 Fite William R Web based data collaboration tool
US7496474B2 (en) 2005-11-16 2009-02-24 Lsi Corporation Dynamic on-chip logic analysis
US7944234B2 (en) 2008-03-19 2011-05-17 Micron Technology, Inc. Programmable on-chip logic analyzer apparatus, systems, and methods
US8516304B2 (en) * 2009-08-18 2013-08-20 Lexmark International, Inc. Integrated circuit including a programmable logic analyzer with enhanced analyzing and debugging capabilities and a method therefor
US9495492B1 (en) 2015-01-05 2016-11-15 Cadence Design Systems, Inc. Implementing synchronous triggers for waveform capture in an FPGA prototyping system

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH067069U (ja) * 1992-06-29 1994-01-28 東芝エンジニアリング株式会社 ロジックアナライザ
JP2001350646A (ja) * 2000-06-06 2001-12-21 Advantest Corp 半導体試験システム
JP2004220389A (ja) * 2003-01-16 2004-08-05 Fuji Xerox Engineering Co Ltd 情報収集装置及び情報収集分析システム
JP2006090727A (ja) * 2004-09-21 2006-04-06 Nec Engineering Ltd オンチップ・ロジックアナライザ
JP2006107071A (ja) * 2004-10-05 2006-04-20 Sony Corp ロジックアナライザ内蔵型電子部品
US7332929B1 (en) * 2006-03-03 2008-02-19 Azul Systems, Inc. Wide-scan on-chip logic analyzer with global trigger and interleaved SRAM capture buffers
JP2008089545A (ja) * 2006-10-05 2008-04-17 Matsushita Electric Ind Co Ltd 解析装置
JP2015035160A (ja) * 2013-08-09 2015-02-19 三菱電機株式会社 監視データ記憶装置、監視データ記憶方法およびプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023224024A1 (ja) * 2022-05-17 2023-11-23 三菱電機株式会社 ロジックアナライザ回路、集積回路および集積回路システム

Also Published As

Publication number Publication date
JP7354091B2 (ja) 2023-10-02
US10482205B2 (en) 2019-11-19
CN110959121A (zh) 2020-04-03
US20190026416A1 (en) 2019-01-24
EP3658928B1 (en) 2023-10-11
WO2019022956A1 (en) 2019-01-31
JP2023100844A (ja) 2023-07-19
CN110959121B (zh) 2023-02-17
KR20200033881A (ko) 2020-03-30
EP3658928A1 (en) 2020-06-03

Similar Documents

Publication Publication Date Title
JP2023100844A (ja) 集積回路のためのロジックアナライザ
US8214694B1 (en) Lightweight probe and data collection within an integrated circuit
US10318468B2 (en) FPGA-based interface signal remapping method
US8607174B2 (en) Verification module apparatus to serve as a prototype for functionally debugging an electronic design that exceeds the capacity of a single FPGA
TWI495887B (zh) 半導體裝置及用於系統單晶片之方法
US20220252665A1 (en) On-chip Debugging Device and Method
US9032344B2 (en) Verification module apparatus for debugging software and timing of an embedded processor design that exceeds the capacity of a single FPGA
JP2008513853A (ja) マルチコアアーキテクチャーにおけるデバッグ
US7861070B2 (en) Trace compression method for debug and trace interface wherein differences of register contents between logically adjacent registers are packed and increases of program counter addresses are categorized
JP2011100388A (ja) トレース情報収集装置,トレース情報処理装置,およびトレース情報収集方法
Ko et al. Design-for-debug architecture for distributed embedded logic analysis
CN114020511A (zh) 基于fpga的故障检测方法、装置、设备及可读存储介质
US20130097462A1 (en) Embedded logic analyzer
US8769357B1 (en) System and method for evaluation of a field programmable gate array (FPGA)
US8983790B1 (en) Method and system for gathering signal states for debugging a circuit
TW201743069A (zh) 邏輯分析儀及其資料擷取與效能測試之方法
CN114416452A (zh) 片上系统诊断方法和装置
US8799753B2 (en) Trace/failure observation system, trace/failure observation method, and trace/failure observation program
CN111506467B (zh) 信号处理方法、电子设备和计算机可读存储介质
US8745457B2 (en) Methods and structure for utilizing external interfaces used during normal operation of a circuit to output test signals
Blochwitz et al. Continuous live-tracing as debugging approach on FPGAs
US9846449B1 (en) System and method for monitoring bus transactions within a programmable integrated circuit by selectively inserting detector circuit at user specified insertion point corresponding to a bus interconnect
JP6068805B2 (ja) プロトタイプシステムにおける汎用的な可制御性及び可観測性のための方法及び装置
Leatherman et al. Processor and System Bus On-Chip Instrumentation
JP2010231818A (ja) デバッグシステム

Legal Events

Date Code Title Description
A529 Written submission of copy of amendment under article 34 pct

Free format text: JAPANESE INTERMEDIATE CODE: A529

Effective date: 20200310

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210611

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220413

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220419

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220701

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220809

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221017

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20230110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230508

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230515

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20230602

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: 20230822

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230920

R150 Certificate of patent or registration of utility model

Ref document number: 7354091

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150