JP2006338144A - Emulation system of processor base - Google Patents

Emulation system of processor base Download PDF

Info

Publication number
JP2006338144A
JP2006338144A JP2005159567A JP2005159567A JP2006338144A JP 2006338144 A JP2006338144 A JP 2006338144A JP 2005159567 A JP2005159567 A JP 2005159567A JP 2005159567 A JP2005159567 A JP 2005159567A JP 2006338144 A JP2006338144 A JP 2006338144A
Authority
JP
Japan
Prior art keywords
processor
emulation
data
capture
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.)
Pending
Application number
JP2005159567A
Other languages
Japanese (ja)
Inventor
William F Beausoleil
エフ ビューソレイユ ウイリアム
Lawrence A Thomas
エイ トーマス ローレンス
Arthur P Sarkisian
ピー サルキシアン アーサー
Beshara Elmufdi
エルムフディ ベシャーラ
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.)
Quickturn Design Systems Inc
Original Assignee
Quickturn Design Systems 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 Quickturn Design Systems Inc filed Critical Quickturn Design Systems Inc
Priority to JP2005159567A priority Critical patent/JP2006338144A/en
Publication of JP2006338144A publication Critical patent/JP2006338144A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a processor-based emulation system for emulating integrated circuit design including an emulation circuit and a capturing circuit. <P>SOLUTION: A capturing circuit is able to capture a processing result from an emulation circuit. The captured processing result is available for deciding any functional error in an integrated circuit design. The processor-based emulation system includes a capturing circuit, and the emulation circuit is not used for capturing the processing result. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

関連出願Related applications

本出願は、2004年6月1日に出願された米国仮出願番号60/576123に対する優先権を主張する。この仮出願に対する優先権は、明白に請求され、また、仮出願の開示は、その全てを参照として本明細書に組み込まれている。   This application claims priority to US Provisional Application No. 60/576123, filed June 1, 2004. The priority to this provisional application is expressly claimed, and the disclosure of the provisional application is hereby incorporated by reference in its entirety.

本明細書の開示は、プロセッサベースのエミュレーションシステム(processor-based emulation system)に関し、特に、専用の捕獲回路(capture circuitry)を有するプロセッサベースのエミュレーションシステムに関する。また、プロセッサベースのエミュレーションシステムの可視化方法に関する。   The disclosure herein relates to a processor-based emulation system, and more particularly to a processor-based emulation system having dedicated capture circuitry. The present invention also relates to a visualization method for a processor-based emulation system.

ハードウェアエミュレーションシステムは、電子回路設計を、チップあるいは印刷回路ボードとして組み立てる前に検証するために設計される。典型的なエミュレーションシステムは、プログラム可能な相互接続チップによって相互接続されたプログラム可能な論理チップあるいはプログラム可能に相互接続されるプロセッサチップを用いる。
プログラム可能な論理チップ(例えば、フィールドプログラマブルゲートアレイ,FPGA)ベースのエミュレーションシステムでは、ユーザ設計(しばしば、“検証対象の設計”(”DUV“)あるいは“検査対象の設計”(“DUT”)と呼ばれる)に含まれている論理は、DUV内に実装された論理が、プログラム可能な論理装置内で実際の動作形態をとるように、論理チップ内にプログラムされる。
プロセッサベースのエミュレーションシステムでは、ユーザ設計は、設計の出力を計算することによって、その機能がプロセッサ内に生成されているように処理される。論理自身は、プロセッサベースのエミュレーションシステム内に実装されない。これは、DUVが、プロセッサ内で、実際の動作形態をとらないことを意味する。しかしながら、プロセッサの出力は、実際の装置内の論理の出力と等しい。
プログラム可能な論理装置を用いる、ハードウェア論理エミュレーションシステムの例は、例えば、米国特許第5109353号、5036473号、5475830号及び5960191号で見ることができる。米国特許第5109353号、5036473号、5475830号及び5960191号は、参照として本明細書に組み込まれている。
プロセッサチップを用いるハードウェア論理エミュレーションシステムの例は、例えば、米国特許第5551013号、第6035117号及び6051030号に開示されている。米国特許第5551013号、第6035117号及び6051030号は、参照として本明細書に組み込まれている。
米国特許第5109353号 米国特許第5036473号 米国特許第5475830号 米国特許第5960191号 米国特許第5551013号 米国特許第6035117号 米国特許第6051030号
Hardware emulation systems are designed to verify electronic circuit designs before assembling them as chips or printed circuit boards. A typical emulation system uses a programmable logic chip or a programmably interconnected processor chip interconnected by a programmable interconnect chip.
In programmable logic chip (eg, field programmable gate array, FPGA) based emulation systems, user design (often “design to be verified” (“DUV”) or “design to be tested” (“DUT”)) The logic contained in the logic chip is programmed in the logic chip so that the logic implemented in the DUV takes the actual form of operation in the programmable logic device.
In a processor-based emulation system, a user design is processed as its functionality is generated in the processor by calculating the output of the design. The logic itself is not implemented in a processor-based emulation system. This means that the DUV does not take the actual form of operation within the processor. However, the processor output is equal to the logic output in the actual device.
Examples of hardware logic emulation systems using programmable logic devices can be found, for example, in US Pat. Nos. 5,093,353, 5,036,473, 5,475,830, and 5,960,191. U.S. Pat. Nos. 5,093,353, 5,036,473, 5,475,830 and 5,960,191 are hereby incorporated by reference.
Examples of hardware logic emulation systems that use processor chips are disclosed, for example, in US Pat. Nos. 5,510,013, 6,035,117 and 6,510,030. U.S. Pat. Nos. 5,510,003, 6,035,117 and 6,510,030 are incorporated herein by reference.
US Pat. No. 5,093,353 US Pat. No. 5,036,473 US Pat. No. 5,475,830 US Pat. No. 5,960,191 US Pat. No. 5,551,003 US Pat. No. 6,035,117 US Pat. No. 6,051,030

トレーシング(tracing)とも呼ばれている可視化は、プロセッサベースのエミュレーションシステムでは重要な特徴である。可視化は、ユーザに、エミュレートされる設計内の要素の状態を捕獲及び観察させるための能力である。
ケイデンスデザインシステムズが“フル−ビジョン(Full-Vision)”と呼んでいる、特別の集積回路設計の全てのノードの状態(すなわち、プロセッサ出力)を観察する能力は、機能検証システムにとって非常に重要な特徴である。フル−ビジョンは、ある時間期間、すなわち、多くのクロックサイクルに亘って必要である。エミュレーションの間にノードの内部状態を捕獲することによって、ユーザは、エミュレートされる設計内の行動を観察することができ、それによって、設計をデバッグすることができる。エミュレーションの間にノードの内部状態を観察する能力が無いと、ユーザは、設計内のバグ(欠陥)の原因を理解するのが非常に困難である。
Visualization, also called tracing, is an important feature in processor-based emulation systems. Visualization is the ability to let the user capture and observe the state of the elements in the emulated design.
The ability to observe the state (ie processor output) of all nodes in a particular integrated circuit design, which Cadence Design Systems calls “Full-Vision”, is very important for functional verification systems. It is a feature. Full-vision is necessary over a period of time, i.e. many clock cycles. By capturing the internal state of the node during emulation, the user can observe behavior within the emulated design, thereby debugging the design. Without the ability to observe the internal state of the node during emulation, it is very difficult for the user to understand the cause of the bug (defect) in the design.

典型的には、フル−ビジョンは、システム内のノードの戦略的な部分を捕獲することによって達成される。そして、それらの出力は、システム内の他のノードの値を計算するために用いられる。これにより、ユーザは、設計の全てのノード上の行動を観察することができる。なお、いくつかの値は、物理的な抽出値(サンプル)であり、他の値は、計算から導き出される。
この戦略的な抽出技術は、ユーザに対して、システム内の任意のノード上の行動の観察を許容しながら、システム内の全てのノードを捕獲するための回路を必要としないため、有利である。
Typically, full-vision is achieved by capturing strategic parts of the nodes in the system. These outputs are then used to calculate values for other nodes in the system. This allows the user to observe the behavior on all nodes of the design. Some values are physical extracted values (samples), and other values are derived from calculations.
This strategic extraction technique is advantageous because it allows the user to observe behavior on any node in the system, while not requiring a circuit to capture all the nodes in the system. .

一般的なプロセッサベースのエミュレーションシステムは、設計内の要素の状態を捕獲するためにエミュレーションリソースを用いる。エミュレーションリソースは、検査される集積回路設計(例えば、エミュレーションプロセッサ)をエミュレートするために用いられる回路である。
設計の内部状態を捕獲するために必要なエミュレーションリソースの量は、ささいな量ではない。例えば、フル−ビジョンを達成するためには、エミュレーションリソースの約20%が用いられる。フル−ビジョンが要求されない場合でも、エミュレーションリソースのかなりの量を、設計の内部状態を捕獲するために用いなければならない。
同様に、エミュレーションに対して使用可能なメモリリソースのかなりの量が、設計の内部状態を捕獲するために用いられる。
したがって、ユーザは、エミュレーション機能あるいは捕獲機能を実行するために、プロセッサリソースの使用とメモリリソースの使用の間で交換を行わなければならない。
A typical processor-based emulation system uses emulation resources to capture the state of elements in the design. An emulation resource is a circuit that is used to emulate an integrated circuit design (eg, an emulation processor) to be tested.
The amount of emulation resources needed to capture the internal state of the design is not a trivial amount. For example, about 20% of emulation resources are used to achieve full-vision. Even when full-vision is not required, a significant amount of emulation resources must be used to capture the internal state of the design.
Similarly, a significant amount of memory resources available for emulation are used to capture the internal state of the design.
Thus, the user must exchange between using processor resources and using memory resources to perform the emulation or capture function.

状態獲得は、プロセッサベースのエミュレーションシステムにおける他の重要な特徴である。状態獲得によって、ユーザは、一方ではトリガに基づいて他の時間からのデータを無視しながら、“興味がある”時間点でデータを捕獲することができる。トリガは、データの捕獲を開始させる、予め設定されたイベントである。また、状態獲得は、システム内の利用可能な捕獲リソースを用いるための効率の良い方法を提供する。   State acquisition is another important feature in processor-based emulation systems. State acquisition allows the user to capture data at “interesting” time points while ignoring data from other times based on triggers. A trigger is a preset event that starts capturing data. State acquisition also provides an efficient way to use available capture resources in the system.

また、一般的なプロセッサベースのエミュレーションシステムは、状態獲得のためにエミュレーションリソースを用いる。特に、エミュレーションリソースは、トリガ状態が計算されるまで、エミュレーションプロセッサから出力されるデータを蓄積するために用いられる。エミュレーションプロセッサから出力されるデータは、通常、そのデータはトリガ状態が計算される前に利用可能であるため、蓄積されなければならない。   Also, a typical processor-based emulation system uses emulation resources for state acquisition. In particular, the emulation resource is used to store data output from the emulation processor until the trigger state is calculated. Data output from the emulation processor must usually be stored because the data is available before the trigger state is calculated.

したがって、プロセッサベースのエミュレーションシステムで生成されるデータを捕獲するための、改良された方法及び装置に対する要求がある。   Accordingly, there is a need for an improved method and apparatus for capturing data generated by a processor-based emulation system.

概要Overview

本明細書に開示されているさまざまの実施の形態は、改良されたプロセッサベースのエミュレーションシステムを提供する。エミュレーションシステムは、エミュレーションプロセッサ、専用の捕獲リソース及びメモリを有するエミュレーションエンジンを含んでいる。
専用の捕獲リソースは、エミュレーションプロセッサによって生成されたデータを捕獲し、捕獲したデータをメモリに供給するために用いられる。そして、ユーザは、集積回路設計のデバッグを援助するために、メモリ内の捕獲されたデータを検査することができる。
専用の捕獲リソースを提供することによって、エミュレーションプロセッサは、データ捕獲のために用いられない。これにより、より大きな集積回路設計が、定められたエミュレーションエンジン内でエミュレート可能である。
The various embodiments disclosed herein provide an improved processor-based emulation system. The emulation system includes an emulation engine having an emulation processor, dedicated capture resources, and memory.
A dedicated capture resource is used to capture the data generated by the emulation processor and supply the captured data to the memory. The user can then examine the captured data in the memory to assist in debugging the integrated circuit design.
By providing a dedicated capture resource, the emulation processor is not used for data capture. This allows larger integrated circuit designs to be emulated within a defined emulation engine.

装置及び要素の組み合わせの種々の独創性がある詳細を含む、本明細書に開示されている種々の実施の形態の前述した及び他の好ましい特徴及び利点は、添付の図面を参照してより詳しく説明されており、また、請求項に記載されている。特別の方法及び回路が、例示のためにのみ示され、制限のために示されていないことが理解される。当業者に理解されるように、本明細書に開示されている原理及び特徴は、本発明の概念から逸脱することなく、種々のまた多くの実施の形態で実現可能である。   The foregoing and other preferred features and advantages of various embodiments disclosed herein, including various inventive details of combinations of devices and elements, will be more fully described with reference to the accompanying drawings. As well as in the claims. It will be understood that the particular methods and circuits are shown by way of example only and not by way of limitation. As will be appreciated by those skilled in the art, the principles and features disclosed herein can be implemented in various and many embodiments without departing from the inventive concept.

発明の詳細な説明Detailed Description of the Invention

図面を参照して、本発明の実施の形態を説明する。   Embodiments of the present invention will be described with reference to the drawings.

プロセッサベースのエミュレーションシステム100の一例が、図1に示されている。プロセッサベースのエミュレーションシステム100は、集積回路設計が集積回路内に実際に実装される前に、集積回路設計が、所期のターゲットシステム内でテストされることを可能とする。
プロセッサベースのエミュレーションシステム100は、ホストコンピュータ102と、ターゲットシステム106に順次接続されるエミュレーションエンジン104を含んでいる。ホストコンピュータ102とエミュレーションエンジン104は、通信リンク108を介して互いに通信する。エミュレーションエンジン104とターゲットシステム106は、通信リンク110を介して互いに通信する。
通信リンクは、電気的、光学的あるいは無線の通信リンク等の、データを転送可能なあらゆる種類のリンクであってよい。ホストコンピュータ102は、エミュレーションエンジン104と通信可能なあらゆる種類のコンピュータであってよい。エミュレーションエンジン104は、以下で詳述するように、集積回路設計の機能をエミュレートし、集積回路設計がターゲットシステム106内でどのように動作するかをユーザが観察することを可能とする。
An example of a processor-based emulation system 100 is shown in FIG. The processor-based emulation system 100 allows the integrated circuit design to be tested in the intended target system before the integrated circuit design is actually implemented in the integrated circuit.
The processor-based emulation system 100 includes a host computer 102 and an emulation engine 104 that is sequentially connected to a target system 106. Host computer 102 and emulation engine 104 communicate with each other via communication link 108. Emulation engine 104 and target system 106 communicate with each other via communication link 110.
The communication link may be any type of link capable of transferring data, such as an electrical, optical or wireless communication link. The host computer 102 may be any type of computer that can communicate with the emulation engine 104. The emulation engine 104 emulates the functionality of the integrated circuit design, as will be described in detail below, and allows the user to observe how the integrated circuit design operates within the target system 106.

ターゲットシステム106は、典型的には、メモリ、マイクロプロセッサ、特定用途向け集積回路(application specific integrated circuit)(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)等の多くの装置112を含んでいる。また、ターゲットシステム106は、入力/出力114を含んでいる。入力/出力114は、エミュレートされる集積回路の入力及び出力に対応し、通信リンク110と電気的に通信可能である。   Target system 106 typically includes a number of devices 112, such as memory, a microprocessor, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), and the like. Target system 106 also includes an input / output 114. Input / output 114 corresponds to the input and output of the emulated integrated circuit and is in electrical communication with communication link 110.

集積回路設計をエミュレートするために、ユーザは、先ず、典型的には、集積回路設計ソフトウェアを用いて完成される集積回路設計を生成する。ユーザ設計は、時には、“検査対象の設計”(“DUT”)あるいは“検証対処の設計”(“DUV”)と呼ばれる。集積回路設計ソフトウェアは、ホストコンピュータ101あるいは他のコンピュータ上で動作する。
ユーザが、集積回路設計を完成させると、設計は、エミュレーションエンジン104と互換性があるデータフォーマットにコンパイルされる。
次に、コンパイルされた設計は、ホストコンピュータ102を介してエミュレーションエンジン104にロードされる。そして、集積回路設計をエミュレートするエミュレーションエンジン104は、集積回路設計がターゲットシステム106内で適切に動作するか否かを決定するために、ターゲットシステム106と共に動作する。ターゲットシステム106に接続されると、集積回路設計の入力及び出力は、ターゲットシステム106内の入力/出力114を通り、通信リンク110を介して伝送される。
To emulate an integrated circuit design, a user first generates an integrated circuit design that is typically completed using integrated circuit design software. User design is sometimes referred to as “design for inspection” (“DUT”) or “design for verification” (“DUV”). The integrated circuit design software runs on the host computer 101 or another computer.
When the user completes the integrated circuit design, the design is compiled into a data format that is compatible with the emulation engine 104.
The compiled design is then loaded into the emulation engine 104 via the host computer 102. An emulation engine 104 that emulates the integrated circuit design then operates with the target system 106 to determine whether the integrated circuit design operates properly within the target system 106. When connected to the target system 106, integrated circuit design inputs and outputs pass through the communication link 110 through the inputs / outputs 114 in the target system 106.

プロセッサベースのエミュレーションシステム100を用いて集積回路設計を検査し、機能的に検証することにより、集積回路設計内に機能的なエラーが存在する時に、時間と費用を大幅に節約することができる。これは、一般的なことであるが、集積回路設計内の機能エラーが、集積回路設計が実際の集積回路装置内に実装される前に確認及び決定することができるからである。   By examining and functionally verifying the integrated circuit design using the processor-based emulation system 100, significant time and expense can be saved when there is a functional error in the integrated circuit design. This is because, generally, functional errors in an integrated circuit design can be verified and determined before the integrated circuit design is implemented in an actual integrated circuit device.

集積回路設計内の機能エラーを確認するために、エミュレーションシステムは、エミュレーションの間に、デバッグ情報(すなわち、集積回路設計の内部状態に関する情報)を捕獲する。捕獲されると、この情報は、通信リンク108を介してホストコンピュータ102に転送される。そして、ホストコンピュータ102を用いて、ユーザは、デバッグ情報を観察し、設計内の機能エラーを確認及び決定するためにこの情報を用いることができる。   To verify functional errors in the integrated circuit design, the emulation system captures debug information (ie, information about the internal state of the integrated circuit design) during emulation. Once captured, this information is transferred to the host computer 102 via the communication link 108. Then, using the host computer 102, the user can observe debug information and use this information to confirm and determine functional errors in the design.

図2は、一般的なプロセッサベースのエミュレーションエンジン200を示している。一般的なプロセッサベースのエミュレーションエンジンは、図1に示されているプロセッサベースのエミュレーションシステム100のような、プロセッサベースのエミュレーションシステム内に実装可能である。
一般的なプロセッサベースのエミュレーションエンジン200は、プロセッサシステム(processor system)202とメモリ204を含んでいる。プロセッサシステム202は、典型的には、多くのエミュレーションプロセッサ(図示省略)と他の論理(図示省略)を含んでいる。
通信リンク210は、エミュレーションプロセッサ202からメモリ204へのエミュレーションデータ及びトレースデータを転送するために用いられる。通信リンク212は、エミュレーションプロセッサ202からメモリ204へのエミュレーションアドレス信号及びトレースアドレス信号を転送するために用いられる。同様に、通信リンク214は、エミュレーションプロセッサ202からメモリ204へのエミュレーションコントロール信号及びトレースコントロール信号を転送するために用いられる。
FIG. 2 shows a typical processor-based emulation engine 200. A typical processor-based emulation engine can be implemented in a processor-based emulation system, such as the processor-based emulation system 100 shown in FIG.
A typical processor-based emulation engine 200 includes a processor system 202 and a memory 204. The processor system 202 typically includes a number of emulation processors (not shown) and other logic (not shown).
Communication link 210 is used to transfer emulation data and trace data from emulation processor 202 to memory 204. Communication link 212 is used to transfer emulation address signals and trace address signals from emulation processor 202 to memory 204. Similarly, the communication link 214 is used to transfer emulation control signals and trace control signals from the emulation processor 202 to the memory 204.

エミュレーションエンジン200のような、一般的なプロセッサベースのエミュレーションエンジンでは、プロセッサシステム202内のエミュレーションプロセッサは、集積回路設計をエミュレートするために用いられる。しかしながら、エミュレーションプロセッサは、エミュレーションの間に、集積回路設計の内部状態を捕獲するためにも用いられる。
前述したように、エミュレーションに対して使用可能なエミュレーションリソースの量を著しく減少させるため、設計の内部状態を捕獲するためにエミュレーションプロセッサを用いることは好ましくない。
これは、定められた大きさのエミュレーションエンジン内でエミュレート可能な集積回路設計の大きさを制限する。このことは、集積回路設計が絶えずより大きくまたより複雑になっているため、非常に不利である。したがって、エミュレーションプロセッサは、捕獲回路に対して用いるよりも、設計内でブーラン論理を実行するために用いるのが好ましい。
In a typical processor-based emulation engine, such as emulation engine 200, the emulation processor in processor system 202 is used to emulate an integrated circuit design. However, the emulation processor is also used to capture the internal state of the integrated circuit design during emulation.
As previously mentioned, it is not desirable to use an emulation processor to capture the internal state of the design, as it significantly reduces the amount of emulation resources available for emulation.
This limits the size of integrated circuit designs that can be emulated within a defined size emulation engine. This is very disadvantageous because integrated circuit designs are constantly becoming larger and more complex. Thus, the emulation processor is preferably used to perform Boolean logic in the design rather than to the capture circuit.

図3は、本明細書に開示されている種々の実施の形態に対応するプロセッサベースのエミュレーションエンジン300を示している。プロセッサベースのエミュレーションエンジン300は、図1に示されているプロセッサベースのエミュレーションシステム100のような、プロセッサベースのエミュレーションシステム内に実装可能である。
プロセッサベースのエミュレーションエンジン300は、プロセッサシステム302、メモリ304及び捕獲リソース306を含んでいる。プロセッサシステム302は、多くのエミュレーションプロセッサ(図示省略)を含んでいる。エミュレーションプロセッサは、集積回路設計をエミュレートするように設計された特別な回路である。
捕獲リソース306によって、プロセッサベースのエミュレーションエンジン300は、前述した一般的なプロセッサベースのエミュレーションエンジンの不利な点を克服することができる。
プロセッサシステム302、捕獲リソース306及びメモリ304は、同じ集積回路あるいは共通のサブストレート(substrate)やバックプレーン(backplane)のいずれかに製造するのが好ましい。
FIG. 3 illustrates a processor-based emulation engine 300 corresponding to the various embodiments disclosed herein. The processor-based emulation engine 300 can be implemented in a processor-based emulation system, such as the processor-based emulation system 100 shown in FIG.
The processor-based emulation engine 300 includes a processor system 302, memory 304 and capture resources 306. The processor system 302 includes many emulation processors (not shown). An emulation processor is a special circuit designed to emulate an integrated circuit design.
Capture resource 306 allows processor-based emulation engine 300 to overcome the disadvantages of the general processor-based emulation engine described above.
The processor system 302, capture resources 306, and memory 304 are preferably manufactured on the same integrated circuit or on a common substrate or backplane.

捕獲リソース306は、プロセッサシステム302内でエミュレーションプロセッサによって生成されたデータを捕獲し、そして、捕獲されたデータをメモリ304に転送するために用いられる。捕獲リソース306は、集積回路設計をエミュレートするためには用いられない。捕獲リソース306が集積回路設計をエミュレートするために用いられないため、プロセッサシステム302内のエミュレーションプロセッサは、集積回路設計の機能をエミュレートするためにのみ使用可能である。これにより、より大きくまたより複雑な集積回路設計が、定められた大きさのエミュレーションエンジン内でエミュレート可能となる。   Capture resource 306 is used to capture data generated by the emulation processor in processor system 302 and transfer the captured data to memory 304. Capture resources 306 are not used to emulate an integrated circuit design. Since capture resources 306 are not used to emulate an integrated circuit design, the emulation processor in processor system 302 can only be used to emulate the functionality of the integrated circuit design. This allows larger and more complex integrated circuit designs to be emulated within a defined size emulation engine.

エミュレーションデータ及びトレースデータは、通信リンク310を介してプロセッサ302と捕獲リソース306との間で転送され、また、通信リンク311を介して捕獲リソース306とメモリ304との間で転送される。エミュレーションアドレス信号及びトレースアドレス信号は、通信リンク312を介してプロセッサ302と捕獲リソース306との間で転送され、また、通信リンク313を介して捕獲リソース306とメモリ304との間で転送される。エミュレーションコントロール信号及びトレースコントロール信号は、通信リンク314を介してプロセッサ302と捕獲リソース306との間で転送され、また、通信リンク315を介して捕獲リソース306とメモリ304との間で転送される。   Emulation data and trace data are transferred between the processor 302 and the capture resource 306 via the communication link 310, and are transferred between the capture resource 306 and the memory 304 via the communication link 311. The emulation address signal and the trace address signal are transferred between the processor 302 and the capture resource 306 via the communication link 312, and are transferred between the capture resource 306 and the memory 304 via the communication link 313. Emulation control signals and trace control signals are transferred between the processor 302 and the capture resource 306 via the communication link 314, and are transferred between the capture resource 306 and the memory 304 via the communication link 315.

捕獲リソース306は、プロセッサシステム302内の、選択されたエミュレーションプロセッサの出力を捕獲する。捕獲されるデータの量は、ユーザの要求に応じて変化する。例えば、ユーザが設計内への制限された可視性のみを必要とする場合には、捕獲リソース306は、制限されたデータ量を捕獲し、そのデータをメモリ304に供給可能である。また、捕獲リソース306は、トリガに基づいてデータを捕獲、すなわち、1あるいは多くの予め定められている状態が発生する時にデータを捕獲することができる。   Capture resource 306 captures the output of the selected emulation processor in processor system 302. The amount of data captured varies according to the user's request. For example, if the user only needs limited visibility into the design, the capture resource 306 can capture a limited amount of data and supply that data to the memory 304. The capture resource 306 can also capture data based on a trigger, that is, capture data when one or more predetermined conditions occur.

図4Aは、例示的なプロセッサベースのエミュレーションエンジン400を示している。プロセッサベースのエミュレーションエンジン400は、図1に示されているプロセッサベースのエミュレーションシステム100のような、プロセッサベースのエミュレーションシステム内に実装可能である。
エミュレーションエンジン400は、処理システム(processing system)402、トレースアレイ(trace array)404、メモリ406、トレース論理(trace logic)408、RAMコントロール論理410、マルチプレクサ412及び414を含んでいる。
処理システム402は、複数のプロセッサクラスタ(processor cluster)416を含んでいる。プロセッサクラスタ16は、ブーラン式を実行するように設計された特別の回路であり、多くのエミュレーションプロセッサ(図4B参照)を含んでいる。図示されている実施の形態では、各プロセッサクラスタ416は、8つのエミュレーションプロセッサを含んでいる。プロセッサクラスタ416は、通信リンク417を介して互いにデータを転送可能である。
メモリ406は、プロセッサベースのエミュレーションエンジン400内の他の構成要素と同じ集積回路上に配設可能であり、または、1つあるいはより多くの別々の集積回路装置を有していてもよい。
FIG. 4A shows an exemplary processor-based emulation engine 400. The processor-based emulation engine 400 can be implemented in a processor-based emulation system, such as the processor-based emulation system 100 shown in FIG.
The emulation engine 400 includes a processing system 402, a trace array 404, a memory 406, trace logic 408, RAM control logic 410, and multiplexers 412 and 414.
The processing system 402 includes a plurality of processor clusters 416. The processor cluster 16 is a special circuit designed to execute a Boolean type and includes many emulation processors (see FIG. 4B). In the illustrated embodiment, each processor cluster 416 includes eight emulation processors. Processor clusters 416 can transfer data to each other via communication link 417.
The memory 406 can be disposed on the same integrated circuit as the other components in the processor-based emulation engine 400, or can have one or more separate integrated circuit devices.

エミュレーションデータ、すなわち、ユーザ設計を実行する時にエミュレーションプロセッサによって生成されるデータは、通信リンク421を介して処理システム402とマルチプレクサ412との間で転送される。
トレースデータは、通信リンク422を介して処理システム402とトレースアレイ404との間で転送される。各通信リンク422は、特別のプロセッサクラスタ416とトレースアレイ404との間での専用の接続を提供する。トレースデータは、通信リンク423を介してトレースアレイ404とマルチプレクサ412との間で転送される。
エミュレーションデータあるいはトレースデータは、選択信号424の値に応じて、通信回線425を介してマルチプレクサ412とメモリ406との間で転送される。
Emulation data, ie, data generated by the emulation processor when performing a user design, is transferred between processing system 402 and multiplexer 412 via communication link 421.
Trace data is transferred between processing system 402 and trace array 404 via communication link 422. Each communication link 422 provides a dedicated connection between a special processor cluster 416 and the trace array 404. Trace data is transferred between trace array 404 and multiplexer 412 via communication link 423.
The emulation data or trace data is transferred between the multiplexer 412 and the memory 406 via the communication line 425 according to the value of the selection signal 424.

エミュレーションアドレス信号は、通信リンク426を介して処理システム402とマルチプレクサ414との間で転送される。
トリガ信号は、通信リンク427を介して処理システム402とトレース論理408との間で転送される。
トレースアドレス信号は、通信リンク428を介してRAMコントロール論理410とマルチプレクサ414との間で転送される。
エミュレーションアドレス信号あるいはトレースアドレス信号は、選択信号424の値に応じて、通信リンク429を介してマルチプレクサ414とメモリ406との間で転送される。
Emulation address signals are transferred between processing system 402 and multiplexer 414 via communication link 426.
The trigger signal is transferred between processing system 402 and trace logic 408 via communication link 427.
The trace address signal is transferred between the RAM control logic 410 and the multiplexer 414 via the communication link 428.
The emulation address signal or the trace address signal is transferred between the multiplexer 414 and the memory 406 via the communication link 429 according to the value of the selection signal 424.

エミュレーションコントロール信号は、通信リンク430を介して処理システム402とRAMコントロール論理410との間で転送される。
トレースコントロール信号は、通信リンク431を介してトレース論理408とRAMコントロール論理410との間で転送される。
RAMコントロール信号は、通信リンク432を介してRAMコントロール論理410とメモリ406との間で転送される。
Emulation control signals are transferred between processing system 402 and RAM control logic 410 via communication link 430.
Trace control signals are transferred between trace logic 408 and RAM control logic 410 via communication link 431.
RAM control signals are transferred between RAM control logic 410 and memory 406 via communication link 432.

図4Bは、本明細書に開示されている実施の形態とともに用いられる、例示的なプロセッサクラスタ416を示している。
プロセッサクラスタ416は、8つのエミュレーションプロセッサ450、データスタック(data stack)452、マルチプレクサ454及び456、捕獲レジスタ458及び460を含んでいる。
エミュレーションプロセッサ450及びデータスタック452は、集積回路設計をエミュレートするためにのみ用いられるエミュレーションリソースとして作用する。すなわち、それらは、エミュレーションの間、集積回路設計の内部状態を捕獲するために用いられない。
これに比べて、マルチプレクサ454及び456、捕獲レジスタ458及び460は、エミュレーションの間、集積回路設計の内部状態を捕獲するための捕獲リソースとして作用する。すなわち、それらは、集積回路設計をエミュレートするために用いられない。
プロセッサクラスタ416は、単一の集積回路内に実装可能である。例えば、単一の集積回路は、1クラスタ当たり8つのプロセッサを有している96のプロセッサクラスタを包含可能である。
FIG. 4B illustrates an example processor cluster 416 for use with the embodiments disclosed herein.
The processor cluster 416 includes eight emulation processors 450, a data stack 452, multiplexers 454 and 456, and capture registers 458 and 460.
Emulation processor 450 and data stack 452 act as emulation resources that are used only to emulate an integrated circuit design. That is, they are not used to capture the internal state of the integrated circuit design during emulation.
In contrast, multiplexers 454 and 456 and capture registers 458 and 460 serve as capture resources for capturing the internal state of the integrated circuit design during emulation. That is, they are not used to emulate an integrated circuit design.
The processor cluster 416 can be implemented in a single integrated circuit. For example, a single integrated circuit can include 96 processor clusters with 8 processors per cluster.

各エミュレーションプロセッサ450は、通信リンク470を介して4つの入力ビットを受信する。各エミュレーションプロセッサは1ビットのデータを出力し、それは、8ビットの通信リンク471を介してデータスタック452に供給される、1ビットのデータを出力する。同様に、1あるいはより多くの他のプロセッサクラスタ(図示省略)から、エミュレーションプロセッサの1ビットの出力が、8ビットの通信リンク472を介してデータスタック452に供給される。データスタック452の32ビットの出力は、32ビットの通信リンク473を介してマルチプレクサ454及び456に転送される。
マルチプレクサ454は、選択信号476の値に応じて32の入力ビットの1つを選択し、そして、1ビットの通信リンク474を介して、選択されたビットをレジスタ458に供給する。同様に、マルチプレクサ456は、選択信号477の値に応じて32の入力ビットの1つを選択し、そして、1ビットの通信リンク475を介して、選択されたビットをレジスタ460に供給する。選択信号476と477は、独立している。これにより、32ビットのうちの2ビットが、レジスタ458と460に供給可能である。
以下に詳述するように、レジスタ458と460によって捕獲されたデータは、集積回路設計の内部状態を決定するために用いることができるトレースデータである。トレースデータは、2ビットの通信リンク422を介して、プロセッサクラスタ416とトレースアレイ404(図4A)との間で転送される。
Each emulation processor 450 receives four input bits via communication link 470. Each emulation processor outputs 1-bit data, which outputs 1-bit data that is supplied to the data stack 452 via an 8-bit communication link 471. Similarly, the 1-bit output of the emulation processor is supplied to the data stack 452 via the 8-bit communication link 472 from one or more other processor clusters (not shown). The 32-bit output of data stack 452 is forwarded to multiplexers 454 and 456 via 32-bit communication link 473.
Multiplexer 454 selects one of the 32 input bits in response to the value of select signal 476 and provides the selected bit to register 458 via 1-bit communication link 474. Similarly, multiplexer 456 selects one of the 32 input bits in response to the value of select signal 477 and provides the selected bit to register 460 via 1-bit communication link 475. The selection signals 476 and 477 are independent. Thereby, 2 bits out of 32 bits can be supplied to the registers 458 and 460.
As described in detail below, the data captured by registers 458 and 460 is trace data that can be used to determine the internal state of the integrated circuit design. Trace data is transferred between the processor cluster 416 and the trace array 404 (FIG. 4A) via a 2-bit communication link 422.

プロセッサクラスタ416のようなプロセッサクラスタや、エミュレーションプロセッサ450のような、プロセッサクラスタ内のエミュレーションに関する更なる詳細は、Beausoleilらに特許された米国特許第6618698号やBeausolilらに特許された米国特許第5551013号に開示されている。これらの双方は、参照として本明細書に組み込まれている。
エミュレーションプロセッサをクラスタ内に配置することによって、各クラスタ内のプロセッサは、共通のエミュレーションリソース(例えば、入力及びデータスタック)を分配する。これにより、相互の通信が改善され、米国特許第6618698号に説明されているように、エミュレーションの効率と速度が増大する。
For further details regarding processor clusters such as processor cluster 416 and emulation within processor clusters such as emulation processor 450, see US Pat. Nos. 6,618,698 and Beausolil et al. Is disclosed. Both of these are incorporated herein by reference.
By placing emulation processors in a cluster, the processors in each cluster distribute common emulation resources (eg, input and data stacks). This improves mutual communication and increases the efficiency and speed of emulation as described in US Pat. No. 6,618,698.

エミュレーションエンジン400及びプロセッサクラスタ416の動作は、図4A及び4Bを参照して説明されている。
ユーザが集積回路設計を完成した後、ユーザは、ホストコンピュータ102(図1)あるいは他のコンピュータ上で動作する特別のコンピュータソフトウェアを用いて、設計をコンパイルする。そして、コンパイルされた集積回路設計は、エミュレーションエンジン400内のエミュレーションプロセッサ450にロードされる。
一般的なエミュレーションエンジンと違って、捕獲論理は、コンパイルされた集積回路設計内に構築されず、したがって、エミュレーションプロセッサ450内にロードされないということを知ることが重要である。これにより、エミュレーションプロセッサ450は、集積回路設計内の論理を実行するためにのみ使用され、より大きくまたより複雑な集積回路設計が、定められた大きさのエミュレーショエンジン400内でエミュレートされることが可能となる。
The operation of emulation engine 400 and processor cluster 416 is described with reference to FIGS. 4A and 4B.
After the user completes the integrated circuit design, the user compiles the design using host computer 102 (FIG. 1) or special computer software running on another computer. The compiled integrated circuit design is then loaded into the emulation processor 450 in the emulation engine 400.
Unlike typical emulation engines, it is important to know that the capture logic is not built into the compiled integrated circuit design and is therefore not loaded into the emulation processor 450. Thus, the emulation processor 450 is used only to execute logic within the integrated circuit design, and larger and more complex integrated circuit designs are emulated within the emulation engine 400 of a defined size. It becomes possible.

集積回路設計は、メインサイクルとして参照されている、予め定められた数のステップ(例えば、256)を順次実行することによってエミュレートされる。各メインサイクルは、動作環境の単一のクロックサイクル(例えば、ターゲットシステム内のクロックサイクル)に対応する。各ステップは、エミュレートされる集積回路設計内のクロックサイクルに対応する。
図4Bを参照すると、4ビットが、各エミュレーションステップの間に、各エミュレーションプロセッサ450の入力に供給される。接続は示されていないが、各エミュレーションプロセッサ450に対する4ビットの入力は、データスタック452からの32ビットの出力のいくつかから選択可能である。各エミュレーションプロセッサ450は、4つの入力ビットの値に基づいて、論理機能(例えば、AND、OR、XOR、NOT、NOR、NAND等)あるいはメモリアクセス機能を実行する。そして、各エミュレーションプロセッサ450は、論理あるいはメモリ動作の結果に対応する1ビットの結果を出力する。
そして、プロセッサクラスタ416内の8つのエミュレーションプロセッサ450の1ビットの出力は、通信リンク471を介して、プロセッサクラスタのデータスタック452に書き込まれる。
さらに、1つあるいはより多くの他のプロセッサクラスタ(図示省略)から、エミュレーションプロセッサの1ビットの出力が、8ビットの通信リンク472を介してデータスタック452に書き込まれる。
An integrated circuit design is emulated by sequentially executing a predetermined number of steps (eg, 256), referred to as the main cycle. Each main cycle corresponds to a single clock cycle of the operating environment (eg, a clock cycle in the target system). Each step corresponds to a clock cycle within the emulated integrated circuit design.
Referring to FIG. 4B, 4 bits are provided to the input of each emulation processor 450 during each emulation step. Although the connection is not shown, the 4-bit input to each emulation processor 450 can be selected from some of the 32-bit outputs from the data stack 452. Each emulation processor 450 performs a logic function (eg, AND, OR, XOR, NOT, NOR, NAND, etc.) or memory access function based on the values of the four input bits. Each emulation processor 450 outputs a 1-bit result corresponding to the result of logic or memory operation.
The 1-bit output of the eight emulation processors 450 in the processor cluster 416 is written to the data stack 452 of the processor cluster via the communication link 471.
In addition, the 1-bit output of the emulation processor from one or more other processor clusters (not shown) is written to the data stack 452 via the 8-bit communication link 472.

データスタック452は、16ビットの幅で160ステップの深さであり、したがって、2560ビットのデータを蓄積可能である。
データスタック452の最初の8ビットは、8つのローカルエミュレーションプロセッサ450の1ビットの出力を蓄積するために用いられる。また、2番目の8ビットは、1あるいはより多くの他のプロセッサクラスタ(図示省略)からのエミュレーションプロセッサの8つの1ビットの出力を蓄積するために用いられる。これにより、16ビットが、エミュレーション内の各ステップに対して、データスタック452内に蓄積される。
The data stack 452 is 16 bits wide and 160 steps deep, and therefore can store 2560 bits of data.
The first 8 bits of data stack 452 are used to store the 1-bit output of 8 local emulation processors 450. The second 8 bits are also used to store the 8 1-bit outputs of the emulation processor from one or more other processor clusters (not shown). This stores 16 bits in the data stack 452 for each step in the emulation.

集積回路設計の内部状態は、各プロセッサクラスタ416内の捕獲リソースを用いて、各エミュレーションステップ(エミュレーションエンジンのクロックサイクルに等しい)で捕獲可能である。特に、選択論理(図示省略)は、データスタック452内の2560ビットの中の32ビットを選択し、これらビットを、通信リンク473を介してマルチプレクサ454と456に供給する。
マルチプレクサ454は、選択信号476の値に応じて、32ビットの中の1ビットを選択する。そのビットは、レジスタ458に蓄積される。同様に、マルチプレクサ456は、選択信号477の値に応じて、32ビットの中の1ビットを選択する。そのビットは、レジスタ460に蓄積される。そして、2つの蓄積されたビットは、通信リンク422を介してトレースアレイ404に供給される。
The internal state of the integrated circuit design can be captured at each emulation step (equal to the emulation engine clock cycle) using capture resources within each processor cluster 416. In particular, selection logic (not shown) selects 32 of the 2560 bits in data stack 452 and provides these bits to multiplexers 454 and 456 via communication link 473.
The multiplexer 454 selects one bit out of 32 bits according to the value of the selection signal 476. That bit is stored in register 458. Similarly, the multiplexer 456 selects one bit out of 32 bits according to the value of the selection signal 477. That bit is stored in register 460. The two accumulated bits are then provided to trace array 404 via communication link 422.

エミュレーションエンジン400は、各エミュレーションステップの間に、エミュレーションプロセッサ450の出力(8つの出力の中の2つ)の25%を捕獲可能であることを認識することが重要である。分析では、フル−ビジョンは、エミュレーションプロセッサ450の出力の約20%を捕獲することによって実行可能であることが示されている。したがって、エミュレーションエンジン400は、フル−ビジョン能力を提供する。
さらに、エミュレーションエンジン400は、エミュレーションエンジン400が、専用の捕獲リソースを含んでいるため、エミュレーションリソース(例えば、エミュレーションプロセッサ450)を用いることなく、フル−ビジョン能力を提供する。
It is important to recognize that the emulation engine 400 can capture 25% of the output of the emulation processor 450 (two of the eight outputs) during each emulation step. Analysis has shown that full-vision can be performed by capturing approximately 20% of the output of the emulation processor 450. Thus, the emulation engine 400 provides full-vision capabilities.
Further, the emulation engine 400 provides full-vision capabilities without using emulation resources (eg, the emulation processor 450) because the emulation engine 400 includes dedicated capture resources.

図4Aに示されているように、エミュレーションデータあるいはトレースデータの一方は、メモリ406に供給可能である。ユーザは、ホストコンピュータ102を介して、メモリ406内に蓄積されているエミュレーションデータあるいはトレースデータを読み出し可能である。
エミュレーションデータは、以下のようにして、メモリ406に蓄積される。
処理システム402内のエミュレーションプロセッサ450によって生成されたエミュレーションデータは、通信リンク421を介してマルチプレクサ412に供給される。選択信号424は、エミュレーションデータ入力を選択する。そして、マルチプレクサ412は、エミュレーションデータを、通信リンク425を介してメモリ406に供給し、蓄積する。
同時に、処理システム402は、通信リンク426を介して、エミュレーションアドレス信号をマルチプレクサ414に供給する。選択信号424は、エミュレーションアドレス入力を選択する。そして、マルチプレクサ414は、エミュレーションアドレス信号を、通信リンク429を介してメモリ406に供給する。
また、処理システム402は、エミュレーションコントロール信号を、通信リンク430を介してRAMコントロール論理410に供給する。RAMコントロール論理410は、RAMコントロール信号を、通信リンク432を介してメモリ406に順に供給する。
As shown in FIG. 4A, either emulation data or trace data can be supplied to the memory 406. The user can read emulation data or trace data stored in the memory 406 via the host computer 102.
The emulation data is stored in the memory 406 as follows.
Emulation data generated by the emulation processor 450 in the processing system 402 is provided to the multiplexer 412 via the communication link 421. The selection signal 424 selects the emulation data input. Then, the multiplexer 412 supplies the emulation data to the memory 406 via the communication link 425 and stores it.
At the same time, processing system 402 provides an emulation address signal to multiplexer 414 via communication link 426. A selection signal 424 selects an emulation address input. The multiplexer 414 then supplies the emulation address signal to the memory 406 via the communication link 429.
Processing system 402 also provides emulation control signals to RAM control logic 410 via communication link 430. The RAM control logic 410 sequentially provides RAM control signals to the memory 406 via the communication link 432.

トレースデータは、以下のようにして、メモリ406に蓄積される。
トレースデータは、2ビットの通信リンク422を介してトレースアレイ404に供給される。トレースアレイ404は、トリガ状態の計算の間、トレースデータを一時的に蓄積するメモリ装置である。トレースアレイ404は、例えば、FIFO(ファーストイン−ファーストアウト)メモリ装置である。トレースアレイ404は、専用の捕獲リソースであり、集積回路設計のエミュレートに対しては用いられない。
トレースアレイ404が利用できない場合には、エミュレーションプロセッサ450のようなエミュレーションリソースが、トリガ状態の計算の間、トレースデータを一時的に蓄積するために用いられなければならない。
トリガ状態は、トレースデータがメモリ406に蓄積されるか否か、あるいは、トレースデータが廃棄されるか否かを決定する。トリガ状態は、トレースデータを捕獲するか否かを決定するために必要であるが、その状態の評価は、メモリ406に蓄積されるデータがトレースアレイ404に対して利用可能となった後に到来する。このトリガの評価における遅れは、トリガが、エミュレーションエンジン内の他のチップあるいはボードを含む、離れたか場所から到来する信号を用いているという事実に起因する。
トレースデータは、専用の捕獲リソースであるトレースアレイ404に蓄積されるが、トリガ状態は、エミュレーションリソースを用いて計算される。
The trace data is stored in the memory 406 as follows.
Trace data is provided to trace array 404 via a 2-bit communication link 422. The trace array 404 is a memory device that temporarily stores trace data during the calculation of the trigger state. The trace array 404 is, for example, a FIFO (first in-first out) memory device. Trace array 404 is a dedicated capture resource and is not used for emulating integrated circuit designs.
If trace array 404 is not available, emulation resources such as emulation processor 450 must be used to temporarily store trace data during the calculation of the trigger state.
The trigger state determines whether trace data is stored in the memory 406 or whether the trace data is discarded. Although a trigger state is necessary to determine whether to capture trace data, an evaluation of that state comes after the data stored in memory 406 is available to trace array 404. . This delay in the evaluation of the trigger is due to the fact that the trigger uses signals coming from a remote location, including other chips or boards in the emulation engine.
Trace data is stored in a trace array 404, which is a dedicated capture resource, but the trigger state is calculated using emulation resources.

トリガ状態が有効である場合には、トレースアレイ404に蓄積されているトレースデータは、メモリ406に書き込まれる。これを完成させるために、選択信号424が、マルチプレクサ412へのトレースデータ入力とマルチプレクサ414へのトレースアドレス信号を選択する。そして、適切なトレースアドレス信号とトレースコントロール信号が生成され、それぞれ通信リンク429及び432を介してメモリに供給される。
フル−ビジョンモードで動作する場合、トリガ状態は、常に有効であり、全てのトレースデータがメモリ406に蓄積される。
When the trigger state is valid, the trace data stored in the trace array 404 is written into the memory 406. To complete this, select signal 424 selects the trace data input to multiplexer 412 and the trace address signal to multiplexer 414. Appropriate trace address signals and trace control signals are then generated and provided to the memory via communication links 429 and 432, respectively.
When operating in full-vision mode, the trigger state is always valid and all trace data is stored in the memory 406.

RAMアドレス及びRAMコントロール線は、処理システム402内の特別の論理(図示省略)によって生成される。RAMアドレス及びRAMコントロール線は、メモリ406自身が捕獲データ及びエミュレーションデータを蓄積するために用いられるため、捕獲使用とエミュレーション使用との間で分配される。捕獲モードで動作する場合には、アドレス及びコントロール信号は、専用の捕獲リソースで生成され、したがって、エミュレーションリソースは用いられない。   The RAM address and RAM control lines are generated by special logic (not shown) within the processing system 402. The RAM address and RAM control lines are distributed between capture use and emulation use because the memory 406 itself is used to store capture data and emulation data. When operating in capture mode, the address and control signals are generated with dedicated capture resources and therefore no emulation resources are used.

いくつかの実施の形態では、メモリ406はDRAMである。エミュレーションサイクルの始めでは、DRAM406は、バーストモードに設定可能である。バーストモードであるが、トレースデータは、エミュレーションサイクル内の全てのステップでDRAMに書き込み可能である。エミュレーションサイクルの終わりでは、DRAM406は、バーストモードから解除され、リフレッシュ可能である。   In some embodiments, the memory 406 is a DRAM. At the beginning of the emulation cycle, the DRAM 406 can be set to burst mode. Although in burst mode, trace data can be written to the DRAM at every step in the emulation cycle. At the end of the emulation cycle, DRAM 406 is released from burst mode and can be refreshed.

当業者は、エミュレーションエンジン400が、一般的なエミュレーションエンジンを越える多くの利益を提供することを認識する。
第一に、トレースデータを捕獲するための専用のリソースを用いることは、トレースが、エミュレーションリソースを用いる場合と比べて高速で実行可能であることを意味する。これらの捕獲リソースが、他のプロセッサの出力だけでなく、数ステップ前に対するローカルプロセッサクラスタの出力から選択することができるとう事実は、効率を改善する。また、トレースを作動させることは、エミュレーション目的に利用可能なプロセッサの数に影響を及ぼさない。メモリは依然として分配されるが、メモリの数は、ユーザが、フル−ビジョンモード時でも利用可能なメモリを有するように、増加可能である。状態獲得に対してトレースアレイを用いることによって、非常に多くのエミュレーションリソースが節約される。トリガ状態計算の結果を待機しながら、エミュレーションプロセッサを用いてトレースデータを蓄積する必要が無いことは、これらのプロセッサがエミュレーションリソースとして使用可能であることを意味する。
Those skilled in the art will recognize that the emulation engine 400 offers many benefits over a typical emulation engine.
First, using a dedicated resource for capturing trace data means that tracing can be performed faster than when using emulation resources. The fact that these capture resources can be selected not only from the output of other processors, but also from the output of the local processor cluster over several steps ago, improves the efficiency. Also, activating trace does not affect the number of processors available for emulation purposes. Although the memory is still distributed, the number of memories can be increased so that the user has memory available even in full-vision mode. By using a trace array for state acquisition, a great deal of emulation resources are saved. The fact that there is no need to accumulate trace data using the emulation processor while waiting for the result of the trigger state calculation means that these processors can be used as emulation resources.

第二に、エミュレーションエンジン400は、エミュレートされる設計を修正する必要なしに、異なるデータが捕獲されるのを可能とする。ユーザは、選択信号476及び477に対して異なる値を用いることによって、異なるデータを捕獲可能である。一般的なプロセッサベースのエミュレーションシステムでは、捕獲されるデータが変化すると、設計を再コンパイルする必要がある。なぜなら、蓄積される必要があるデータは、正しいエミュレーションプロセッサに再方向付けされる必要があり、また、そのエミュレーションプロセッサ内で実行される論理機能が、他のエミュレーションプロセッサに移されなければならないからである。   Second, the emulation engine 400 allows different data to be captured without having to modify the emulated design. The user can capture different data by using different values for the selection signals 476 and 477. In a typical processor-based emulation system, the design needs to be recompiled as the captured data changes. This is because the data that needs to be stored needs to be redirected to the correct emulation processor, and the logical functions that are executed in that emulation processor must be transferred to other emulation processors. is there.

最後に、エミュレーションエンジン400は、実際に達成するのが非常に困難である、非常に大規模のエミュレーションシステムにおいて、フル−ビジョンを達成するために使用可能である。例えば、ケイデンスデザインシステムズによって開発中の大規模のエミュレーションシステムは、約2億5千6百万個のASICゲートと等しい機能である、合計884736個のエミュレーションプロセッサを含んでいる。このシステム内のエミュレーションプロセッサは、約200MHzで動作する。本明細書に開示されているものと同様の実施の形態を用いることによって、このエミュレーションシステムは、200MHzにおいて1クロック当たり221184ビットである、全てのプロセッサ出力の約25%を捕獲することができる。このデータを捕獲するためには、エミュレーションシステムは、それぞれ400MHz(すなわち、200MHzのエミュレーションプロセッサクロックの2倍の速さ)で動作する、多くの一般的なRAMチップを用いる。各RAMチップは、エミュレーションクロックサイクル当たり64ビットを捕獲することができる。したがって、プロセッサからの221184ビットの出力を捕獲するためには、合計3456個のRAMチップが使用される。   Finally, the emulation engine 400 can be used to achieve full-vision in very large scale emulation systems that are very difficult to achieve in practice. For example, a large emulation system under development by Cadence Design Systems includes a total of 884736 emulation processors, which is equivalent to approximately 256 million ASIC gates. The emulation processor in this system operates at approximately 200 MHz. By using an embodiment similar to that disclosed herein, the emulation system can capture approximately 25% of all processor outputs, which is 221184 bits per clock at 200 MHz. To capture this data, the emulation system uses many common RAM chips, each running at 400 MHz (ie, twice as fast as a 200 MHz emulation processor clock). Each RAM chip can capture 64 bits per emulation clock cycle. Thus, a total of 3456 RAM chips are used to capture the 221184-bit output from the processor.

このシステムの帯域幅(1秒当たりのビット)は、44トリロン(1012)ビット/秒(すなわち、211184ビット×200MHz)に等しい。さらに、このシステムで用いられるメモリの深さは2Mである。このことは、エミュレーションシステムが、合計450ビリオン(10)ビットのデータを捕獲する能力を有していることを意味する。当業者が認識するように、このエミュレーションシステムによって捕獲可能なデータ量は、非常に大きく、また、大規模エミュレーションシステム内でフル−ビジョンを達成するための能力は、重要な技術業績である。 The bandwidth (bits per second) of this system is equal to 44 torrons (10 12 ) bits / second (ie 211184 bits × 200 MHz). Furthermore, the depth of the memory used in this system is 2M. This means that the emulation system has the ability to capture a total of 450 virion (10 9 ) bits of data. As those skilled in the art will appreciate, the amount of data that can be captured by this emulation system is very large, and the ability to achieve full vision within a large emulation system is an important technical achievement.

当業者は、多くの修正が、エミュレーションエンジン400に対して実行可能であることを認識する。前述したように、エミュレーションエンジン400は、エミュレーションプロセッサ出力の25%を捕獲することができる。したがって、エミュレーションエンジンは、エミュレーションプロセッサの出力の大体20%がフル−ビジョンを達成するために捕獲される必要があるため、フル−ビジョンを実行することができる。
しかしながら、エミュレーションエンジン400は、必要であれば、他のデータを捕獲するように容易に修正することができる。例えば、捕獲されるビットの数が増加可能であり、および/または、データスタック452の深さが増加可能である。より多くの出力ビットが捕獲される場合には、フル−ビジョンを達成するために必要な計算が少なくなり、システムの速度を潜在的に増大させることができる。
また、修正は、捕獲レジスタ458及び460が、データを捕獲するために用いられる回路の量を増加させることなく、より多くのデータの捕獲を可能とする増大された速度で作動するように実行可能である。
また、トレースアレイ404は、より洗練された方法で、トレースデータを捕獲するために用いることができる。例えば、トレースアレイ404は、エミュレーションの全ステップの間ではないが、フル−ビジョンに対して必要な、エミュレーションプロセッサの出力の量を捕獲することができる。
トリガを用いることによって、任意のステップのみ捕獲することができる。これにより、“興味がある”サイクルでのみフル−ビジョンを提供する。
また、エミュレーションエンジン400は、エミュレーションが停止し、そして、捕獲リソースが、エミュレーションエンジン400内の全てのデータスタック452をメモリ406内にダンプするために用いられるように修正可能である。これは、ユーザに、最後の数サイクルに対する、チップ内の全ての単一のプロセッサの出力を提供する。これは、フル−ビジョンのようなものに対して必要とされる値だけでなく、任意のプロセッサ出力の値を再生成する必要なしに、ユーザに設計の可視性を与える、全ての中間値を含んでいる。
Those skilled in the art will recognize that many modifications can be made to the emulation engine 400. As described above, the emulation engine 400 can capture 25% of the emulation processor output. Thus, the emulation engine can perform full-vision since approximately 20% of the output of the emulation processor needs to be captured to achieve full-vision.
However, the emulation engine 400 can be easily modified to capture other data if necessary. For example, the number of captured bits can be increased and / or the depth of the data stack 452 can be increased. If more output bits are captured, less computation is required to achieve full-vision, potentially increasing the speed of the system.
Modifications can also be made so that capture registers 458 and 460 operate at an increased rate that allows more data to be captured without increasing the amount of circuitry used to capture the data. It is.
Trace array 404 can also be used to capture trace data in a more sophisticated manner. For example, the trace array 404 can capture the amount of emulation processor output required for full-vision, but not during every step of emulation.
By using a trigger, only an arbitrary step can be captured. This provides full-vision only on “interesting” cycles.
Emulation engine 400 can also be modified so that emulation stops and capture resources are used to dump all data stacks 452 in emulation engine 400 into memory 406. This provides the user with the output of all single processors in the chip for the last few cycles. This is not only the value needed for things like full-vision, but also all intermediate values that give the user design visibility without having to regenerate any processor output values. Contains.

また、当業者は、本明細書に開示されている実施の形態が、エミュレーションエンジン及びシミュレーションアクセラレータに適用可能であることを認識する。双方における根本的な技術は、プロセッサの使用であるため、本明細書に開示されている実施の形態は、双方の適用に有益である。   Those skilled in the art will also recognize that the embodiments disclosed herein are applicable to emulation engines and simulation accelerators. Since the underlying technology in both is the use of a processor, the embodiments disclosed herein are beneficial for both applications.

種々の独創性がある概念が、前述の特別な実施の形態を参照にして説明されている。しかしながら、本明細書に開示されている独創性がある概念のより広い精神及び範囲から逸脱することなく、種々の修正及び変更がそれらに対して実行可能であることは明らかである。例えば、読み手は、本明細書に開示されているプロセッサ行動の特別な順序や組み合わせは、単に例示であり、独創性がある概念は、異なるあるいは追加の処理行動、処理行動の異なる組み合わせあるいは順序を用いて実行可能であることを理解すべきである。したがって、明細書及び図面は、限定の意味ではなく例示の意味で認識され、独創性がある概念は、請求項及びそれらの法律上の均等物に対応する場合を除いて、限定あるいは制限されない。   Various inventive concepts have been described with reference to the specific embodiments described above. It will be apparent, however, that various modifications and changes can be made thereto without departing from the broader spirit and scope of the inventive concepts disclosed herein. For example, readers may note that the particular order or combination of processor behaviors disclosed herein is merely an example, and the inventive concept is for different or additional processing behaviors, different combinations or orders of processing behaviors. It should be understood that it is feasible to use. Accordingly, the specification and drawings are to be regarded in an illustrative sense rather than a restrictive sense, and the inventive concept is not limited or restricted except as it corresponds to the claims and their legal equivalents.

プロセッサベースのエミュレーションシステムの一例を示す。1 illustrates an example of a processor-based emulation system. 一般的なプロセッサベースのエミュレーションエンジンの一例を示す。An example of a general processor-based emulation engine is shown. 本明細書に開示されている実施の形態に対応するプロセッサベースのエミュレーションエンジンの一例を示す。2 illustrates an example of a processor-based emulation engine corresponding to the embodiments disclosed herein. 本明細書に開示されている実施の形態に対応するプロセッサベースのエミュレーションエンジンの一例を示す。2 illustrates an example of a processor-based emulation engine corresponding to the embodiments disclosed herein. 本明細書に開示されている実施の形態に対応するプロセッサクラスタの一例を示す。2 shows an example of a processor cluster corresponding to the embodiment disclosed in the present specification.

符号の説明Explanation of symbols

102 ホストコンピュータ
104、200、300、400 エミュレーションエンジン
106 ターゲットシステム
202、302 プロセッサシステム
204、304、406 メモリ
306 捕獲リソース
402 処理システム
404 トレースアレイ
408 トレース論理
410 RAMコントロール論理
412、414、454、456 マルチプレクサ
416 プロセッサクラスタ
450 エミュレーションプロセッサ
452 データスタック
458、460 レジスタ
102 Host computer 104, 200, 300, 400 Emulation engine 106 Target system 202, 302 Processor system 204, 304, 406 Memory 306 Capture resource 402 Processing system 404 Trace array 408 Trace logic 410 RAM control logic 412, 414, 454, 456 Multiplexer 416 processor cluster 450 emulation processor 452 data stack 458, 460 registers

Claims (18)

集積回路設計をエミュレートするためのシステムであって、
集積回路設計をエミュレートするための複数のプロセッサクラスタと、
集積回路設計のエミュレーションの間にデータを捕獲するための捕獲回路と、
捕獲されたデータを蓄積するためのメモリとを備え、
各プロセッサクラスタは、捕獲回路と電気的に通信可能であり、捕獲回路は、メモリと電気的に通信可能である。
A system for emulating an integrated circuit design,
Multiple processor clusters to emulate an integrated circuit design;
A capture circuit for capturing data during emulation of an integrated circuit design;
A memory for storing captured data;
Each processor cluster is in electrical communication with the capture circuit, and the capture circuit is in electrical communication with the memory.
請求項1のシステムであって、メモリは、ランダムアクセスメモリである。   The system of claim 1, wherein the memory is a random access memory. 請求項1のシステムであって、各プロセッサクラスタは、集積回路設計をエミュレートするように設計された複数のプロセッサを含んでいる。   2. The system of claim 1, wherein each processor cluster includes a plurality of processors designed to emulate an integrated circuit design. 請求項1のシステムであって、各プロセッサクラスタは、
複数のプロセッサと、
複数のプロセッサと電気的に通信可能であるデータスタックを含んでいる。
The system of claim 1, wherein each processor cluster is
Multiple processors,
A data stack that is in electrical communication with a plurality of processors is included.
請求項1のシステムであって、各プロセッサクラスタは、
複数のプロセッサと、
複数のプロセッサと電気的に通信可能であるデータスタックと、
データスタックと電気的に通信可能である複数のマルチプレクサを含んでいる。
The system of claim 1, wherein each processor cluster is
Multiple processors,
A data stack capable of electrical communication with multiple processors;
A plurality of multiplexers that are in electrical communication with the data stack are included.
請求項1のシステムであって、各プロセッサクラスタは、
複数のプロセッサと、
複数のプロセッサと電気的に通信可能であるデータスタックと、
データスタックと電気的に通信可能である複数のマルチプレクサと、
複数のマルチプレクサと電気的に通信可能である複数のレジスタを含んでいる。
The system of claim 1, wherein each processor cluster is
Multiple processors,
A data stack capable of electrical communication with multiple processors;
A plurality of multiplexers in electrical communication with the data stack;
A plurality of registers that are in electrical communication with the plurality of multiplexers are included.
請求項1のシステムであって、プロセッサクラスタは、通信リンクを介して、データを互いに転送可能である。   The system of claim 1, wherein the processor clusters are capable of transferring data to each other via a communication link. 請求項1のシステムであって、捕獲回路は、FIFO(ファーストイン−ファーストアウト)メモリを含んでいる。   2. The system of claim 1, wherein the capture circuit includes a FIFO (first in-first out) memory. 請求項1のシステムであって、プロセッサクラスタ及び捕獲回路は、単一の集積回路に実装されている。   The system of claim 1, wherein the processor cluster and capture circuit are implemented in a single integrated circuit. プロセッサベースのエミュレーションシステムであって、
集積回路設計からの論理を実行する複数のエミュレーションプロセッサを有する複数のプロセッサクラスタと、
集積回路設計のエミュレーションの間に、プロセッサクラスタによって生成されるデータを捕獲するように動作可能な捕獲回路とを備え、
各プロセッサクラスタは、捕獲回路に対する専用の接続を有している。
A processor-based emulation system,
A plurality of processor clusters having a plurality of emulation processors executing logic from an integrated circuit design;
A capture circuit operable to capture data generated by the processor cluster during emulation of the integrated circuit design;
Each processor cluster has a dedicated connection to the capture circuit.
請求項10のプロセッサベースのエミュレーションシステムであって、さらに、捕獲回路と電気的に通信可能であるメモリを有している。   11. The processor-based emulation system of claim 10, further comprising a memory that is in electrical communication with the capture circuit. 請求項10のプロセッサベースのエミュレーションシステムであって、各プロセッサクラスタは、集積回路設計をエミュレートするように設計された複数のプロセッサを含んでいる。   12. The processor-based emulation system of claim 10, wherein each processor cluster includes a plurality of processors designed to emulate an integrated circuit design. 請求項10のプロセッサベースのエミュレーションシステムであって、各プロセッサクラスタは、
複数のプロセッサと、
複数のプロセッサと電気的に通信可能であるデータスタックを含んでいる。
11. The processor-based emulation system of claim 10, wherein each processor cluster is
Multiple processors,
A data stack that is in electrical communication with a plurality of processors is included.
請求項10のプロセッサベースのエミュレーションシステムであって、各プロセッサクラスタは、
複数のプロセッサと、
複数のプロセッサと電気的に通信可能であるデータスタックと、
データスタックと電気的に通信可能である複数のマルチプレクサを含んでいる。
11. The processor-based emulation system of claim 10, wherein each processor cluster is
Multiple processors,
A data stack capable of electrical communication with multiple processors;
A plurality of multiplexers that are in electrical communication with the data stack are included.
請求項10のプロセッサベースのエミュレーションシステムであって、各プロセッサクラスタは、
複数のプロセッサと、
複数のプロセッサと電気的に通信可能であるデータスタックと、
データスタックと電気的に通信可能である複数のマルチプレクサと、
複数のマルチプレクサと電気的に通信可能である複数のレジスタを含んでいる。
11. The processor-based emulation system of claim 10, wherein each processor cluster is
Multiple processors,
A data stack capable of electrical communication with multiple processors;
A plurality of multiplexers in electrical communication with the data stack;
A plurality of registers that are in electrical communication with the plurality of multiplexers are included.
請求項10のプロセッサベースのエミュレーションシステムであって、プロセッサクラスタは、通信リンクを介して、互いにデータを転送可能である。   12. The processor-based emulation system of claim 10, wherein processor clusters can transfer data to each other over a communication link. 請求項10のプロセッサベースのエミュレーションシステムであって、捕獲回路は、FIFO(ファーストイン−ファーストアウト)メモリを含んでいる。   11. The processor-based emulation system of claim 10, wherein the capture circuit includes a FIFO (first in-first out) memory. 請求項10のプロセッサベースのエミュレーションシステムであって、プロセッサクラスタ及び捕獲回路は、単一の集積回路に実装されている。   11. The processor-based emulation system of claim 10, wherein the processor cluster and capture circuit are implemented on a single integrated circuit.
JP2005159567A 2005-05-31 2005-05-31 Emulation system of processor base Pending JP2006338144A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005159567A JP2006338144A (en) 2005-05-31 2005-05-31 Emulation system of processor base

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005159567A JP2006338144A (en) 2005-05-31 2005-05-31 Emulation system of processor base

Publications (1)

Publication Number Publication Date
JP2006338144A true JP2006338144A (en) 2006-12-14

Family

ID=37558674

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005159567A Pending JP2006338144A (en) 2005-05-31 2005-05-31 Emulation system of processor base

Country Status (1)

Country Link
JP (1) JP2006338144A (en)

Similar Documents

Publication Publication Date Title
US7739093B2 (en) Method of visualization in processor based emulation system
US10503848B2 (en) Target capture and replay in emulation
US9703579B2 (en) Debug environment for a multi user hardware assisted verification system
US9081925B1 (en) Estimating system performance using an integrated circuit
US11475193B2 (en) Control path verification of hardware design for pipelined process
US7054802B2 (en) Hardware-assisted design verification system using a packet-based protocol logic synthesized for efficient data loading and unloading
JP2002358340A (en) Circuit for logical emulation, logical board with the circuit, logical emulator, and communication method in logical emulation
US8626965B2 (en) Using a DMA engine to automatically validate DMA data paths
US10664563B2 (en) Concurrent testbench and software driven verification
US8027828B2 (en) Method and apparatus for synchronizing processors in a hardware emulation system
US10664637B2 (en) Testbench restoration based on capture and replay
US20060212768A1 (en) Verification circuitry for master-slave system
US20180120379A1 (en) Driving pervasive commands using breakpoints in a hardware-accelerated simulation environment
US10546081B2 (en) Full memory logical erase for circuit verification
US20110239067A1 (en) Verification of design information for controlling manufacture of a system on a chip
US11176018B1 (en) Inline hardware compression subsystem for emulation trace data
US20110307239A1 (en) Hardware Emulation Proxy for Hardware Software Co-Emulation
US10409624B1 (en) Data array compaction in an emulation system
US7389455B2 (en) Register file initialization to prevent unknown outputs during test
US11113441B1 (en) Reduce/broadcast computation-enabled switching elements in an emulation network
US20130054218A1 (en) Method and Software Tool for Automatically Testing a Circuit Design
JP2006338144A (en) Emulation system of processor base
US10410713B1 (en) Content addressable memory modeling in emulation and prototyping
US9721048B1 (en) Multiprocessing subsystem with FIFO/buffer modes for flexible input/output processing in an emulation system
KR100439073B1 (en) A semiconductor device comprising a function evaluation function