[go: up one dir, main page]

JP5471406B2 - Semiconductor verification apparatus and method - Google Patents

Semiconductor verification apparatus and method Download PDF

Info

Publication number
JP5471406B2
JP5471406B2 JP2009287433A JP2009287433A JP5471406B2 JP 5471406 B2 JP5471406 B2 JP 5471406B2 JP 2009287433 A JP2009287433 A JP 2009287433A JP 2009287433 A JP2009287433 A JP 2009287433A JP 5471406 B2 JP5471406 B2 JP 5471406B2
Authority
JP
Japan
Prior art keywords
value
storage element
unit
memory
frames
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.)
Active
Application number
JP2009287433A
Other languages
Japanese (ja)
Other versions
JP2011128937A (en
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2009287433A priority Critical patent/JP5471406B2/en
Publication of JP2011128937A publication Critical patent/JP2011128937A/en
Application granted granted Critical
Publication of JP5471406B2 publication Critical patent/JP5471406B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は半導体デバイスを検証するための半導体検証装置および方法に関する。   The present invention relates to a semiconductor verification apparatus and method for verifying a semiconductor device.

半導体技術の進歩により半導体デバイス(論理LSI(Large Scale Integrated circuit))の集積度が年々向上し、大規模なシステムを1チップに搭載することが可能になってきている。そのため、半導体デバイスの製造コストが極めて高価になり、その製造には多くの時間を要するため、製造前に十分な検証を行うことが重要になる。   With the progress of semiconductor technology, the degree of integration of semiconductor devices (logical LSI (Large Scale Integrated circuit)) has been improved year by year, and it has become possible to mount a large-scale system on one chip. For this reason, the manufacturing cost of the semiconductor device becomes extremely expensive, and it takes a lot of time to manufacture the semiconductor device. Therefore, it is important to perform sufficient verification before manufacturing.

半導体デバイスの検証は設計の様々な段階(フェーズ)で行われる。設計プロセスでは初期設計における抽象的なレベルから最終段階における詳細な製造レベルまで多くの段階を含み、各レベルに応じた論理情報を取り扱う。例えば、初期設計段階では入出力関係程度を確定する抽象レベルの論理情報を取り扱い、機能設計段階では各論理部の機能を確定する機能レベルの論理情報を取り扱い、最終的な詳細設計段階では論理構造を確定する構造レベルの論理情報を取り扱う。一般に、上述した種々の設計段階の論理情報は、各種のハードウェア記述言語(SystemC, SystemVerilog,Verilog−HDL、VHDL等)を用いて表現できる。   Verification of semiconductor devices is performed at various stages of design. The design process includes many stages from an abstract level in the initial design to a detailed manufacturing level in the final stage, and handles logical information corresponding to each level. For example, abstract level logical information that determines the degree of input / output relation is handled in the initial design stage, functional level logical information that determines the function of each logic unit is handled in the functional design stage, and logical structure is handled in the final detailed design stage. Handles structure-level logical information that establishes In general, the above-described logic information at various design stages can be expressed using various hardware description languages (SystemC, SystemVerilog, Verilog-HDL, VHDL, etc.).

半導体デバイスや複数の半導体デバイスを使用したシステムの論理検証方法には、ソフトウェアシミュレータによるものと、ハードウェアエミュレータによるものと、実際の半導体デバイスを利用するものとがある。   As a logic verification method for a semiconductor device or a system using a plurality of semiconductor devices, there are a method using a software simulator, a method using a hardware emulator, and a method using an actual semiconductor device.

ソフトウェアシミュレータは、ハードウェア記述言語で記述された論理情報をプログラムにしたがって処理するため、種々の設計段階において使用できる。さらに、回路動作についてもプログラムにしたがってシミュレーションできるため、ハードウェア記述言語における全ての変数の値等を容易に観測できるという利点を持っている。   Since the software simulator processes logical information described in a hardware description language according to a program, it can be used in various design stages. Further, since the circuit operation can be simulated according to the program, it has an advantage that the values of all variables in the hardware description language can be easily observed.

一方、実際の半導体デバイスやハードウェアエミュレータを使用した論理検証方法は、ハードウェアを用いることでソフトウェアシミュレータよりも論理演算を高速に実行できる。ハードウェアエミュレータには、例えば検証対象となる回路をプログラム制御により構成できるFPGA(Field Programmable Gate Array)やFPID(Field Programmable Interconnect Device)等が用いられる。   On the other hand, a logic verification method using an actual semiconductor device or hardware emulator can execute logic operations faster than a software simulator by using hardware. As the hardware emulator, for example, an FPGA (Field Programmable Gate Array) or an FPID (Field Programmable Interconnect Device) that can configure a circuit to be verified by program control is used.

しかしながら、一般的な半導体デバイスやハードウェアエミュレータでは、コストやハードウェア等の制約から全ての信号を観測することが困難であり、回路動作に不具合が生じたときの解析が困難であるという問題がある。   However, in general semiconductor devices and hardware emulators, it is difficult to observe all signals due to cost and hardware restrictions, and it is difficult to analyze when a malfunction occurs in circuit operation. is there.

このような問題を解決するための手法として、例えば特許文献1や特許文献2には、FPGAが有するリードバックと呼ばれる機能を、JTAG(IEEE1149.1)を利用して制御することで、特別なハードウェアのサポートを必要とすることなくFPGAに実装された任意の記憶素子の値を読み出す手法が開示されている。このようなFPGAをハードウェアエミュレータとして用いることで、観測可能な信号に対する制約を低減できる。   As a technique for solving such a problem, for example, in Patent Document 1 and Patent Document 2, a function called read back included in an FPGA is controlled by using JTAG (IEEE1149.1). A method of reading a value of an arbitrary storage element mounted on an FPGA without requiring hardware support is disclosed. By using such an FPGA as a hardware emulator, restrictions on observable signals can be reduced.

特開2005-174349号公報JP 2005-174349 A 特願2006−553063号公報Japanese Patent Application No. 2006-553063

上述したように、特許文献1や特許文献2は、ハードウェアエミュレータとして用いるFPGAを、該FPGAが備える、JTAG(IEEE1149.1)に対応した回路を利用して制御することで、該FPGA内部の記憶素子の値を読み出す手法を開示している。   As described above, Patent Document 1 and Patent Document 2 control an FPGA used as a hardware emulator by using a circuit corresponding to JTAG (IEEE1149.1) included in the FPGA, thereby controlling the internal of the FPGA. A method for reading a value of a storage element is disclosed.

しかしながら、JTAGは、少ないテスト用端子で半導体デバイスを検証できるようにシリアル通信方式を採用しており、さらに該少ないテスト用端子を用いて半導体デバイスの制御も行うため、検証対象の半導体デバイスやハードウェアエミュレータを所定の状態に設定するまでの制御手順が多くなり、所要の記憶素子の値を取得するまでに要する時間が長くなるという問題がある。   However, JTAG employs a serial communication system so that a semiconductor device can be verified with a small number of test terminals, and further controls the semiconductor device using the small number of test terminals. There is a problem that the number of control procedures until the wear emulator is set to a predetermined state increases, and it takes a long time to acquire a value of a required storage element.

例えば、ハードウェアエミュレータとして米国ザイリンクス社のVirtex−4FPGAを用いる場合、該FPGA内の記憶素子の値を読み出すには、最初にFPGAをシャットダウン(FPGAにJSHUTDOWNコマンドを入力する)し、次に所要の記憶素子の値を読み出すためのコマンドを入力し、次にFPGAにクロックを供給して記憶素子の値を読出し、最後にFPGAをスタート(FPGAにJSTARTコマンドを入力する)させる必要がある。そのため、該FPGAから複数の記憶素子の値を読み出す場合は、上記の制御手順を複数回繰り返す必要があり、FPGAから記憶素子の値を読み出すのに要する時間が長くなってしまう。   For example, when using a Virtex-4 FPGA manufactured by Xilinx, Inc. as a hardware emulator, to read the value of a storage element in the FPGA, first shut down the FPGA (by inputting the JSHUTDOWN command to the FPGA), and then It is necessary to input a command for reading the value of the storage element, then supply a clock to the FPGA to read the value of the storage element, and finally start the FPGA (input a JSTART command to the FPGA). Therefore, when reading the values of a plurality of memory elements from the FPGA, it is necessary to repeat the above control procedure a plurality of times, and the time required to read the values of the memory elements from the FPGA becomes long.

特に、一般のハードウェアエミュレータは、ユーザからの指示入力を受けて、ユーザが指定した記憶素子からの読み出し動作を開始するため、ユーザが指示を入力してから所要の記憶素子の値が出力されるまでの時間が長いと、ハードウェアエミュレータに構築された検証対象の回路を解析し難いことになる。例えば半導体デバイスに供給するクロックのサイクル毎に所要の記憶素子の値を取得して信号波形を表示したい場合や所定範囲のメモリ領域から複数のデータを読み出す場合等では、より多くの時間を要してしまうために、この問題が顕著になる。   In particular, a general hardware emulator receives an instruction input from a user and starts a read operation from a storage element designated by the user. Therefore, a value of a required storage element is output after the user inputs an instruction. If it takes a long time, it will be difficult to analyze the verification target circuit built in the hardware emulator. For example, when you want to display the signal waveform by acquiring the value of the required storage element for each clock cycle supplied to the semiconductor device, or when reading multiple data from a predetermined range of memory area, more time is required. Therefore, this problem becomes remarkable.

本発明は上述した背景技術が有する問題を解決するために成されたものであり、検証対象である半導体デバイスやハードウェアエミュレータが備える記憶素子の値を背景技術よりも高速に読み出すことが可能な半導体検証装置および方法を提供することを目的とする。   The present invention has been made to solve the above-described problems of the background art, and can read out the value of a memory element included in a semiconductor device or hardware emulator to be verified at a higher speed than the background art. An object is to provide a semiconductor verification apparatus and method.

上記目的を達成するため本発明の半導体検証装置は、第1番号及び第2番号によって半導体デバイスが備える複数の記憶素子を識別可能な、前記半導体デバイスを用いた半導体検証装置であって、
前記第1番号及び前記第1番号で指定される記憶素子から構成されるフレームの数を示すフレーム数に基づき、該第1番号から連続する該フレーム数に対応する記憶素子の値を外部に出力する読出ユニットと、
前記記憶素子毎の前記第1番号及び前記第2番号を示す番号データベース及び観測対象となる前記記憶素子を指定する観測信号リストに基づいて、前記観測対象となる前記記憶素子の値の読出方法を決定する制御情報を作成する制御情報計算部と、
前記制御情報に基づいて、前記読出ユニットから前記観測信号リストで指定された各記憶素子の値を取得する中央制御部と、
を有し、
前記制御情報計算部は、
前記観測信号リストに含まれる前記記憶素子を同じ第1番号を有するエントリとして分類し、全てのエントリを昇順もしくは降順で並べた時、1つのエントリを単独処理するのに必要な時間と、設定対象フレームに続くN−1個のエントリを連続して処理する時間との合計をPとし、設定対象フレームとこれに続くN−1個のエントリからなる計N個のエントリを連続して処理する時間をQとしたとき、P<Qを満たす最も大きいNを求め、設定対象フレームのフレーム数にN−1を設定し、
前記中央制御部は、
前記フレーム数単位で、前記読出ユニットから前記観測信号リストに含まれる前記記憶素子の値を読み出すことを特徴とする。
In order to achieve the above object, a semiconductor verification apparatus of the present invention is a semiconductor verification apparatus using the semiconductor device capable of identifying a plurality of memory elements included in the semiconductor device by a first number and a second number,
Based on the number of frames indicating the number of the first number and said storage element that consists of a frame specified by the first number, the external value of the memory element corresponding to the number of said consecutive frames from the first number and read out unit you output to,
A method of reading a value of the storage element to be observed based on a number database indicating the first number and the second number for each storage element and an observation signal list designating the storage element to be observed A control information calculation unit for creating control information to be determined;
Based on the control information, a central control unit that acquires the value of each storage element specified in the observation signal list from the reading unit;
Have
The control information calculation unit
When the storage elements included in the observation signal list are classified as entries having the same first number and all entries are arranged in ascending or descending order, the time required to process one entry alone and the setting target The total of N-1 entries following the frame and the time for continuously processing N entries are set as P, and a total of N entries consisting of the setting target frame and the N-1 entries following this are continuously processed. Where Q is Q, the largest N satisfying P <Q is determined, N-1 is set as the number of frames to be set,
The central control unit
A value of the storage element included in the observation signal list is read from the reading unit in units of the number of frames.

一方、本発明の半導体検証方法は、第1番号及び第2番号によって半導体デバイスが備える複数の記憶素子を識別可能な、前記半導体デバイスを用いた半導体検証方法であって、
前記第1番号及び前記第1番号で指定される記憶素子から構成されるフレームの数を示すフレーム数に基づき、該第1番号から連続する該フレーム数に対応する記憶素子の値を外部に出力する読出ユニットと、
前記記憶素子毎の前記第1番号及び前記第2番号を示す番号データベース及び観測対象となる前記記憶素子を指定する観測信号リストに基づいて、前記観測対象となる前記記憶素子の値の読出方法を決定する制御情報を作成する制御情報計算部と、
前記制御情報に基づいて、前記読出ユニットから前記観測信号リストで指定された各記憶素子の値を取得する中央制御部と、
を備えておき、
前記制御情報計算部が、
前記観測信号リストに含まれる前記記憶素子を同じ第1番号を有するエントリとして分類し、全てのエントリを昇順もしくは降順で並べた時、1つのエントリを単独処理するのに必要な時間と、設定対象フレームに続くN−1個のエントリを連続して処理する時間との合計をPとし、設定対象フレームとこれに続くN−1個のエントリからなる計N個のエントリを連続して処理する時間をQとしたとき、P<Qを満たす最も大きいNを求め、設定対象フレームのフレーム数にN−1を設定し、
前記中央制御部が、
前記フレーム数単位で、前記読出ユニットから前記観測信号リストに含まれる前記記憶素子の値を読み出す方法である。
On the other hand, the semiconductor verification method of the present invention is a semiconductor verification method using the semiconductor device capable of identifying a plurality of memory elements included in the semiconductor device by a first number and a second number,
Based on the number of frames indicating the number of the first number and said storage element that consists of a frame specified by the first number, the external value of the memory element corresponding to the number of said consecutive frames from the first number and read out unit you output to,
A method of reading a value of the storage element to be observed based on a number database indicating the first number and the second number for each storage element and an observation signal list designating the storage element to be observed A control information calculation unit for creating control information to be determined;
Based on the control information, a central control unit that acquires the value of each storage element specified in the observation signal list from the reading unit;
With
The control information calculation unit is
When the storage elements included in the observation signal list are classified as entries having the same first number and all entries are arranged in ascending or descending order, the time required to process one entry alone and the setting target The total of N-1 entries following the frame and the time for continuously processing N entries are set as P, and a total of N entries consisting of the setting target frame and the N-1 entries following this are continuously processed. Where Q is Q, the largest N satisfying P <Q is determined, N-1 is set as the number of frames to be set,
The central control unit is
In this method, the value of the storage element included in the observation signal list is read from the reading unit in units of the number of frames.

本発明によれば、検証対象である半導体デバイスやハードウェアエミュレータが備える記憶素子の値を背景技術よりも高速に読み出すことができる。   According to the present invention, the value of a memory element included in a semiconductor device or hardware emulator to be verified can be read faster than the background art.

図1は、本実施形態の半導体検証装置の一構成例を示すブロック図である。FIG. 1 is a block diagram illustrating a configuration example of the semiconductor verification apparatus according to the present embodiment. 図2は、図1に示した半導体デバイスが備える記憶素子を識別するための情報の一例を示すテーブル図である。FIG. 2 is a table diagram showing an example of information for identifying a memory element included in the semiconductor device shown in FIG. 図3は、図2に示した半導体デバイスが備える記憶素子を識別するための情報の具体例を示す模式図である。FIG. 3 is a schematic diagram showing a specific example of information for identifying a memory element included in the semiconductor device shown in FIG. 図4は、図1に示した全体制御ユニットが備える読出ユニット制御情報の一例を示すテーブル図である。FIG. 4 is a table showing an example of read unit control information included in the overall control unit shown in FIG. 図5は、図1に示した半導体デバイスの一構成例を示すブロック図である。FIG. 5 is a block diagram showing a configuration example of the semiconductor device shown in FIG. 図6は、図1に示したデバイス制御ユニットの一構成例を示すブロック図である。FIG. 6 is a block diagram illustrating a configuration example of the device control unit illustrated in FIG. 図6に示したデバイス制御ユニットの一動作例を示すタイミングチャートである。FIG. 7 is a timing chart illustrating an operation example of the device control unit illustrated in FIG. 6. FIG. 図8は、図1に示した全体制御ユニットが備える観測信号リストの一例を示すテーブル図である。FIG. 8 is a table showing an example of an observation signal list provided in the overall control unit shown in FIG. 図9は、図1に示した全体制御ユニットが備える制御情報計算部の処理手順の一例を示すフローチャートである。FIG. 9 is a flowchart illustrating an example of a processing procedure of a control information calculation unit included in the overall control unit illustrated in FIG. 図10は、図1に示した全体制御ユニットが備える制御情報の一例を示すテーブル図である。FIG. 10 is a table showing an example of control information provided in the overall control unit shown in FIG. 図11は、図1に示した全体制御ユニットが備える中央制御部の処理手順の一例を示すフローチャートである。FIG. 11 is a flowchart illustrating an example of a processing procedure of the central control unit included in the overall control unit illustrated in FIG. 1.

次に本発明について図面を用いて説明する。   Next, the present invention will be described with reference to the drawings.

図1に示すように、本実施形態の半導体検証装置は、検証対象となる半導体デバイス100から記憶素子の値を読み出すデバイス制御ユニット110と、半導体デバイス100にクロックを供給する、またはクロックの供給を停止するクロック制御ユニット140と、デバイス制御ユニット110及びクロック制御ユニット140の動作を制御する全体制御ユニット120とを有する。   As shown in FIG. 1, the semiconductor verification apparatus according to the present embodiment supplies a clock to or supplies a device control unit 110 that reads a value of a storage element from a semiconductor device 100 to be verified. The clock control unit 140 to be stopped and the overall control unit 120 for controlling the operation of the device control unit 110 and the clock control unit 140 are provided.

全体制御ユニット120は、例えばプログラムにしたがって所要の処理を実行するCPUやDSPと、情報が格納される記憶装置と、ユーザI/Fとを備えたコンピュータで実現できる。また、デバイス制御ユニット110は、例えばFPGA、FPIDあるいは論理回路やメモリ等を備えたLSI等で実現できる。クロック制御ユニット140は、上記コンピュータやLSI等で実現できる。なお、クロック制御ユニット140の機能は全体制御ユニット120あるいはデバイス制御ユニット110に含まれていてもよい。   The overall control unit 120 can be realized by, for example, a computer including a CPU or DSP that executes required processing according to a program, a storage device that stores information, and a user I / F. Further, the device control unit 110 can be realized by, for example, an FPGA or FPID, or an LSI having a logic circuit or a memory. The clock control unit 140 can be realized by the computer, LSI, or the like. The function of the clock control unit 140 may be included in the overall control unit 120 or the device control unit 110.

クロック制御ユニット140は、全体制御ユニット120の指示にしたがって半導体デバイス100にクロックを供給する、またはクロックの供給を停止する。   The clock control unit 140 supplies a clock to the semiconductor device 100 according to an instruction from the overall control unit 120, or stops supplying the clock.

半導体デバイス100は、クロック制御ユニット140から供給されるクロックに同期して動作する検証対象の半導体デバイスまたはハードウェアエミュレータであり、第1番号と第2番号とにより一意に識別可能な複数の記憶素子を備えている。半導体デバイス100が備える記憶素子とは、フリップフロップ回路、ラッチ回路、メモリ、レジスタ等を指す。また、半導体デバイス100は、デバイス制御ユニット110を介して記憶素子の値を読み出し可能にするための読出ユニット101を備えている。なお、本実施形態では、読出ユニット101とデバイス制御ユニット間でシリアル信号によりデータを送受信するため、読出ユニット101及びデバイス制御ユニット110には、パラレルデータをシリアル信号に変換するためのP/S変換回路(不図示)及びシリアル信号をパラレルデータに変換するためのS/P変換回路(不図示)を備えている。   The semiconductor device 100 is a semiconductor device or hardware emulator to be verified that operates in synchronization with a clock supplied from the clock control unit 140, and a plurality of storage elements that can be uniquely identified by a first number and a second number It has. The memory element included in the semiconductor device 100 refers to a flip-flop circuit, a latch circuit, a memory, a register, or the like. The semiconductor device 100 also includes a reading unit 101 for enabling reading of the value of the storage element via the device control unit 110. In the present embodiment, since data is transmitted and received between the reading unit 101 and the device control unit using a serial signal, the reading unit 101 and the device control unit 110 have P / S conversion for converting parallel data into a serial signal. A circuit (not shown) and an S / P conversion circuit (not shown) for converting a serial signal into parallel data are provided.

以下では、上記第1番号で指定される1つまたは複数の記憶素子の値を1フレームと定義する。例えば、各記憶素子に対して、図2に示すように第1番号及び第2番号が割り当てられている場合、第1番号0x1024で指定される記憶素子A及びDの値で1フレームが構成され、第1番号0x0384で指定される記憶素子Bの値で1フレームが構成され、第1番号0x2578で指定される記憶素子Cの値で1フレームが構成される。図2に示すような半導体デバイス100が備える全ての記憶素子を識別するための情報は、全体制御ユニット120が備える、後述する番号データベース124に格納される。   Hereinafter, the value of one or a plurality of storage elements designated by the first number is defined as one frame. For example, when the first number and the second number are assigned to each storage element as shown in FIG. 2, one frame is constituted by the values of the storage elements A and D specified by the first number 0x1024. One frame is composed of the value of the storage element B specified by the first number 0x0384, and one frame is composed of the value of the storage element C specified by the first number 0x2578. Information for identifying all the memory elements included in the semiconductor device 100 as shown in FIG. 2 is stored in a number database 124 described later, which is included in the overall control unit 120.

例えば、半導体デバイス100がハードウェアエミュレータであり、該ハードウェアエミュレータとして上記米国ザイリンクス社のVirtex−4FPGAを用いる場合、図2に示すような各記憶素子を識別するための情報はLogic Location Fileに格納されているため、該ファイルを用いて番号データベース124を構築すればよい。Virtex−4FPGAのLogic Location Fileについては、米国ザイリンクス社が発行している「Virtex−4コンフィグレーションガイド」(以下、非特許文献1と称す)のチャプター8、図8−8に記載されている。   For example, when the semiconductor device 100 is a hardware emulator and the Xilinx Corp. Virtex-4 FPGA is used as the hardware emulator, information for identifying each storage element as shown in FIG. 2 is stored in the Logic Location File. Therefore, the number database 124 may be constructed using the file. The Logic Location File of the Virtex-4 FPGA is described in the chapter 8 of “Virtex-4 Configuration Guide” (hereinafter referred to as Non-Patent Document 1) issued by Xilinx, USA, and FIG. 8-8.

図3は、上記Virtex−4コンフィグレーションガイド記載されたLogic Location Fileの一部を抜粋して示した図である。図3の第3カラムが上記第1番号(Frame Address)に相当し、第4カラムが上記第2番号(Frame Offset)に相当する。図3の第7カラムは記憶素子に付与された名前である。   FIG. 3 is a diagram showing a part of the Logic Location File described in the Virtex-4 Configuration Guide. The third column in FIG. 3 corresponds to the first number (Frame Address), and the fourth column corresponds to the second number (Frame Offset). The seventh column in FIG. 3 is a name assigned to the storage element.

全体制御ユニット120は、半導体デバイス100から読み出しユニット101を介して記憶素子の値を読み出す場合、上記第1番号及びフレーム数と共に読出ユニット制御情報125を指定する。読出ユニット制御情報125は、半導体デバイス100の種類に対応した、該半導体デバイス100から記憶素子の値を読み出すための制御命令等を示す情報である。図4は、この読出ユニット制御情報の一例を示すテーブル図である。   When reading the value of the storage element from the semiconductor device 100 via the reading unit 101, the overall control unit 120 specifies the reading unit control information 125 together with the first number and the number of frames. The read unit control information 125 is information indicating a control command or the like for reading the value of the storage element from the semiconductor device 100 corresponding to the type of the semiconductor device 100. FIG. 4 is a table showing an example of the reading unit control information.

図4に示す「デバイス停止命令」は、半導体デバイス100の動作を停止させるコマンドである。「第1番号命令」は、読出ユニット101に第1番号を入力するためのコマンドである。また、図4に示す「フレーム数指定命令」は、連続して読み出すフレーム数を指定するためのコマンドである。「読出命令」は、上記「第1番号命令」で指定された第1番号に対応する記憶素子の値を読出ユニット101から出力させるためのコマンドである。「デバイス開始命令」は、半導体デバイス100を動作状態に戻すためのコマンドである。   A “device stop instruction” shown in FIG. 4 is a command for stopping the operation of the semiconductor device 100. The “first number instruction” is a command for inputting a first number to the reading unit 101. The “frame number designation command” shown in FIG. 4 is a command for designating the number of frames to be read continuously. The “read command” is a command for causing the read unit 101 to output the value of the storage element corresponding to the first number designated by the “first number command”. The “device start command” is a command for returning the semiconductor device 100 to the operating state.

例えば、半導体デバイス100がハードウェアエミュレータであり、該ハードウェアエミュレータとして上記米国ザイリンクス社のVirtex−4FPGAを用いる場合、上記デバイス停止命令はJSHUTDOWNコマンドに相当し、上記デバイス開始命令はJSTARTコマンドに相当する。Virtex−4FPGAの場合、1フレームの大きさは1312ビットである。また、本実施形態の読出ユニット制御情報125として利用可能な、記憶素子の値を読み出すための制御手順を示す情報は、上記非特許文献1のチャプター8、テーブル8−5に記載されている。   For example, when the semiconductor device 100 is a hardware emulator, and the above Xilinx Virtex-4 FPGA is used as the hardware emulator, the device stop instruction corresponds to a JSHUTDOWN command, and the device start instruction corresponds to a JSTART command. . In the case of Virtex-4 FPGA, the size of one frame is 1312 bits. Information indicating a control procedure for reading the value of the storage element, which can be used as the reading unit control information 125 of this embodiment, is described in Chapter 8 and Table 8-5 of Non-Patent Document 1.

なお、半導体デバイス100が備える読出ユニット101は、第1番号に対応する1つまたは複数の記憶素子を読み出すための機能、及び複数の第1番号に対応する各記憶素子の値を連続して読み出すための機能を備えていればよく、その読み出し方式を限定するものではない。   Note that the reading unit 101 included in the semiconductor device 100 continuously reads a function for reading one or a plurality of storage elements corresponding to the first number and a value of each storage element corresponding to the plurality of first numbers. The readout method is not limited as long as it has a function for the purpose.

図5に示すように、半導体デバイス100は、複数の記憶素子1000.1.1−1000.M.Nから読み出された値を選択するためのM個の第1のセレクタ1001.1−1001.Mと、第1のセレクタ1001.1−1001.Mで選択された値から第1番号で指定された記憶素子の値を選択するための第2のセレクタ1001と、読出ユニット101の指示にしたがって第1のセレクタ1001.1−1001.Mに記憶素子1000.1.1−1000.M.Nから読み出された値を順次選択させるための選択信号を出力する第1のインクリメンタ1002と、読出ユニット101の指示にしたがって第2のセレクタ1001に第1番号で指定された記憶素子の値を選択させるための選択信号を出力する第2のインクリメンタ1003とを備えている。第2のセレクタ1001から出力された記憶素子の値は読出ユニット101を介してデバイス制御ユニット110へ出力される。ここで、Mは半導体デバイス100から読み出す各フレームに対して、例えば昇順に付与する番号(フレーム番号)であり、Nは1フレームに含まれる記憶素子のビット数である。   As shown in FIG. 5, the semiconductor device 100 includes a plurality of storage elements 1000.1.1.1-1000. M.M. M first selectors 1001.1-1001. For selecting a value read from N. M and the first selector 1001.1-1001. A second selector 1001 for selecting the value of the storage element designated by the first number from the value selected by M, and the first selector 1001.1-1001. The memory element 1000.1.1-1000. M.M. A first incrementer 1002 that outputs a selection signal for sequentially selecting the values read from N, and the value of the storage element designated by the first number in the second selector 1001 according to the instruction of the reading unit 101 And a second incrementer 1003 that outputs a selection signal for selecting. The value of the storage element output from the second selector 1001 is output to the device control unit 110 via the reading unit 101. Here, M is a number (frame number) given to each frame read from the semiconductor device 100 in ascending order, for example, and N is the number of bits of the storage elements included in one frame.

読出ユニット101は、デバイス制御ユニット110から第1番号命令及びフレーム数指定命令を受け取ると、第1番号命令に含まれる第1番号からフレーム数指定命令に含まれるフレーム数に対応する記憶素子の値を取得する。   When the reading unit 101 receives the first number command and the frame number designation command from the device control unit 110, the value of the storage element corresponding to the number of frames included in the frame number designation command from the first number included in the first number command To get.

例えば、第1番号(X)に対応する記憶素子1000.X(1≦X≦M).1〜1000.X.Nから、第1番号(X+1)に対応する記憶素子1000.X+1.1〜1000.X+1.Nの2フレーム分の値を読み出す場合、読出ユニット101は、最初に第1のインクリメンタ1002の値を「1」に設定し、第1のセレクタ1001.1〜1001.Mに記憶素子1000.1.1〜1000.M.1の値を出力させる。   For example, the memory element 1000. Corresponding to the first number (X). X (1 ≦ X ≦ M). 1-1000. X. N, the storage element 1000. Corresponding to the first number (X + 1). X + 1.1-1000. X + 1. When reading the value of N for two frames, the reading unit 101 first sets the value of the first incrementer 1002 to “1” and the first selectors 1001.1 to 1001. The memory element 1000.1.1-1000. M.M. A value of 1 is output.

次に、読出ユニット101は、第2のインクリメンタ1003に第1番号(X)を設定し、第2のセレクタ1001に記憶素子1000.X.1の値を出力させる。また、読出ユニット101は、第1のインクリメンタ1002の値を「2」に増加させ、第2のセレクタ1001に記憶素子1000.X.2の値を出力させる。   Next, the reading unit 101 sets the first number (X) in the second incrementer 1003 and the storage element 1000. X. A value of 1 is output. In addition, the reading unit 101 increases the value of the first incrementer 1002 to “2”, and stores the storage element 1000. X. The value of 2 is output.

読出ユニット101は、第1のインクリメンタ1002の値が「N」になるまで同様の処理を繰り返すことで、1フレームの記憶素子1000.X.1〜1000.X.Nの値を第2のセレクタ1001に出力させ、その結果を保持してデバイス制御ユニット110に出力する。   The reading unit 101 repeats the same processing until the value of the first incrementer 1002 becomes “N”, whereby the storage elements 1000. X. 1-1000. X. The value of N is output to the second selector 1001, and the result is held and output to the device control unit 110.

また、読出ユニット101は、第2のインクリメンタ1003の値を「X+1」に増加させ、上記と同様に、第1のインクメンタ1002の値を「1」から「N」まで増加させて第1番号(X+1)に対応する記憶素子1000.(X+1).1〜1000.(X+1).Nの値を第2のセレクタ1001に出力させ、その結果を保持してデバイス制御ユニット110に出力する。   Further, the reading unit 101 increases the value of the second incrementer 1003 to “X + 1” and increases the value of the first incrementer 1002 from “1” to “N” in the same manner as described above. Storage element 1000 .. corresponding to the number (X + 1). (X + 1). 1-1000. (X + 1). The value of N is output to the second selector 1001, and the result is held and output to the device control unit 110.

図1に示すように、デバイス制御ユニット110は、読出ユニット101を介して半導体デバイス100から記憶素子の値を読み出すための取得ユニット111と、全体制御ユニット120と取得ユニット111間で情報を送受信するための制御I/F113とを備えている。   As shown in FIG. 1, the device control unit 110 transmits and receives information between the acquisition unit 111 for reading the value of the storage element from the semiconductor device 100 via the reading unit 101, and the overall control unit 120 and the acquisition unit 111. Control I / F 113.

取得ユニット111は、読出ユニット101から出力された記憶素子の値をクロックサイクル毎に保持する入力メモリ115と、読出ユニット101に対してクロックサイクル毎に供給する、所要の記憶素子から値を読み出すための各種命令、第1番号、フレーム数等の情報を保持する出力メモリ116と、読出ユニット101から出力された記憶素子の値を入力メモリ115に保持させると共に、出力メモリ116から読出ユニット101に上記各種命令、第1番号、フレーム数等の情報を供給するメモリ制御ユニット117とを備えている。入力メモリ115及び出力メモリ116は読出ユニット101に直接接続されている。   The acquisition unit 111 reads the value from the input memory 115 that holds the value of the storage element output from the reading unit 101 every clock cycle, and the required storage element that is supplied to the reading unit 101 every clock cycle. The output memory 116 that holds information such as various commands, the first number, the number of frames, and the like, and the value of the storage element output from the reading unit 101 are held in the input memory 115, and the output memory 116 sends the value to the reading unit 101. And a memory control unit 117 that supplies information such as various instructions, a first number, and the number of frames. The input memory 115 and the output memory 116 are directly connected to the reading unit 101.

制御I/F113は、全体制御ユニット120と取得ユニット111間で情報やコマンドの送受信を可能にするためのインタフェース回路である。全体制御ユニット120を、例えばCPUを備えたコンピュータで実現する場合、制御I/F113は、該コンピュータと情報やコマンドを送受信するための、例えばPCI、PCIexpressバス、USB、IEEE1394、Ethernet(登録商標)等に対応したインタフェースである。   The control I / F 113 is an interface circuit for enabling transmission and reception of information and commands between the overall control unit 120 and the acquisition unit 111. When the overall control unit 120 is realized by a computer having a CPU, for example, the control I / F 113 is used to send and receive information and commands to and from the computer, for example, PCI, PCI express bus, USB, IEEE 1394, Ethernet (registered trademark). It is an interface corresponding to etc.

図6はデバイス制御ユニットが備える入力メモリ、出力メモリ及びメモリ制御ユニットの接続関係を示す接続図であり、図7は図6に示したデバイス制御ユニットの動作例を示すタイミングチャートである。   FIG. 6 is a connection diagram showing the connection relationship of the input memory, output memory and memory control unit provided in the device control unit, and FIG. 7 is a timing chart showing an operation example of the device control unit shown in FIG.

図6に示すように、メモリ制御ユニット117は、イネーブル信号生成手段、アドレス信号生成手段及びクロック信号生成手段を備えている。   As shown in FIG. 6, the memory control unit 117 includes an enable signal generation unit, an address signal generation unit, and a clock signal generation unit.

図7に示すクロック501は、読出ユニット101、入力メモリ115及び出力メモリ116に供給される信号であり、これらのユニットが同期して動作するために必要な信号である。クロック501は図6に示したクロック信号生成手段で生成される。   A clock 501 shown in FIG. 7 is a signal supplied to the reading unit 101, the input memory 115, and the output memory 116, and is a signal necessary for these units to operate in synchronization. The clock 501 is generated by the clock signal generating means shown in FIG.

図7に示すアドレス信号502は、読出ユニット101から出力された記憶素子の値を格納する入力メモリ115のアドレス、読出ユニット101に供給する情報が格納された出力メモリ116のアドレスを示す信号である。アドレス信号502は図6に示したアドレス信号生成手段で生成される。図6及び図7は、入力メモリ115と出力メモリ116とに同一のアドレス信号を供給する例を示しているが、デバイス制御ユニット110や読出ユニット101の処理速度が低下しなければ個別のアドレス信号を供給してもよい。   An address signal 502 shown in FIG. 7 is a signal indicating the address of the input memory 115 that stores the value of the storage element output from the reading unit 101 and the address of the output memory 116 that stores information to be supplied to the reading unit 101. . The address signal 502 is generated by the address signal generating means shown in FIG. 6 and 7 show an example in which the same address signal is supplied to the input memory 115 and the output memory 116. However, if the processing speed of the device control unit 110 and the reading unit 101 does not decrease, individual address signals are shown. May be supplied.

イネーブル信号503は、全体制御ユニットからの指示にしたがって入力メモリ115に対する情報の格納動作及び出力メモリ116からの情報の読み出し動作を有効にするための信号である。イネーブル信号503は図6に示したイネーブル信号生成手段で生成される。図6及び図7は、入力メモリ115と出力メモリ116とに同一のイネーブル信号を供給する例を示しているが、デバイス制御ユニット110や読出ユニット101の処理速度が低下しなければ個別のイネーブル信号を供給してもよい。   The enable signal 503 is a signal for enabling the operation of storing information in the input memory 115 and the operation of reading information from the output memory 116 in accordance with instructions from the overall control unit. The enable signal 503 is generated by the enable signal generating means shown in FIG. 6 and 7 show an example in which the same enable signal is supplied to the input memory 115 and the output memory 116. However, if the processing speed of the device control unit 110 and the reading unit 101 does not decrease, individual enable signals are shown. May be supplied.

図7に示す504は、出力メモリ116から読出ユニット101へ供給される情報の一例を示している。読出ユニット101は、この情報504に含まれる第1番号及びフレーム数で指定される記憶素子の値を入力メモリ115に出力する。   Reference numeral 504 shown in FIG. 7 shows an example of information supplied from the output memory 116 to the reading unit 101. The reading unit 101 outputs the value of the storage element specified by the first number and the number of frames included in the information 504 to the input memory 115.

なお、図6では、入力メモリ115、出力メモリ116及び読出ユニット101に供給するクロック501をメモリ制御ユニット117内で生成する例を示しているが、クロック501はメモリ制御ユニット117の外部で生成して入力メモリ115、出力メモリ116及び読出ユニット101に供給してもよい。   6 shows an example in which the clock 501 supplied to the input memory 115, the output memory 116, and the reading unit 101 is generated in the memory control unit 117. However, the clock 501 is generated outside the memory control unit 117. May be supplied to the input memory 115, the output memory 116, and the reading unit 101.

また、図7では、クロック501の1サイクル毎に1つの情報504を読出ユニット101に対して入力または出力する動作例を示しているが、読出ユニット101にはクロック501の複数サイクル毎に1つの情報504を入力または出力してもよい。   FIG. 7 shows an operation example in which one piece of information 504 is input to or output from the reading unit 101 for each cycle of the clock 501. However, the reading unit 101 includes one information 504 for each cycle of the clock 501. Information 504 may be input or output.

また、図7では、クロック501の1サイクル毎にアドレス信号をインクリメントする例を示しているが、アドレス信号はクロック501の1サイクル毎にデクリメントしてもよい。   FIG. 7 shows an example in which the address signal is incremented every cycle of the clock 501, but the address signal may be decremented every cycle of the clock 501.

また、図7では、入力メモリ115、出力メモリ116及び読出ユニット101が正論理で動作する例を示しているが、入力メモリ115、出力メモリ116及び読出ユニット101は負論理で動作してもよい。   7 shows an example in which the input memory 115, the output memory 116, and the reading unit 101 operate with positive logic. However, the input memory 115, the output memory 116, and the reading unit 101 may operate with negative logic. .

このように読出ユニット101に直接接続される出力メモリ116及び入力メモリ115を備え、出力メモリ116から読出ユニット101にクロック501の1サイクル毎に情報を入力し、読出ユニット101から入力メモリ115にクロック501の1サイクル毎に記憶素子の値を格納するため、例えば動作が比較的遅いFPGA等でデバイス制御ユニット110を実現しても、読出ユニット101から比較的高速に記憶素子の値を読み出すことができる。   As described above, the output memory 116 and the input memory 115 directly connected to the reading unit 101 are provided. Information is input from the output memory 116 to the reading unit 101 every cycle of the clock 501, and the reading unit 101 supplies the clock to the input memory 115. Since the value of the storage element is stored for each cycle of 501, the value of the storage element can be read from the reading unit 101 at a relatively high speed even if the device control unit 110 is realized by, for example, a relatively slow FPGA. it can.

なお、上述したように、本実施形態では、読出ユニット101とデバイス制御ユニット間でシリアル信号によりデータを送受信することを想定しているが、読出ユニット101が複数ビット単位でデータを入出力できる構成である場合、入力メモリ115及び出力メモリ116には、読出ユニット101と入出力ビット数が一致するメモリを用いるとよい。その場合、入力メモリ115及び出力メモリ116にて使用しないメモリ領域が無くなるため、メモリ領域の無駄を無くすことができる。また、シリアル信号をパラレルデータに変換するS/P変換回路やパラレルデータをシリアル信号に変換するP/S変換回路が不要になるため、半導体デバイス100内の記憶素子の値の読み出し時間を短縮できる。読出ユニット101が複数ビット単位でデータを入出力できる構成である場合、入力メモリ115及び出力メモリ116には、読出ユニット101よりも入出力ビット数が多いメモリを用いてもよい。その場合でも、上記S/P変換回路やP/S変換回路が不要になる。   As described above, in the present embodiment, it is assumed that data is transmitted / received between the reading unit 101 and the device control unit by a serial signal. However, the reading unit 101 can input / output data in units of a plurality of bits. In this case, a memory having the same number of input / output bits as the reading unit 101 may be used as the input memory 115 and the output memory 116. In that case, since there is no memory area that is not used in the input memory 115 and the output memory 116, the waste of the memory area can be eliminated. In addition, an S / P conversion circuit that converts serial signals into parallel data and a P / S conversion circuit that converts parallel data into serial signals are not required, so that the reading time of the value of the storage element in the semiconductor device 100 can be shortened. . When the reading unit 101 is configured to input / output data in units of a plurality of bits, a memory having a larger number of input / output bits than the reading unit 101 may be used as the input memory 115 and the output memory 116. Even in this case, the S / P conversion circuit and the P / S conversion circuit are not necessary.

また、図1では本実施形態の半導体検証装置により1つの半導体デバイス100を検証する構成例を示しているが、複数の半導体ユニット100が備える各読出ユニット101に対応して複数の取得ユニット111を備えていれば、1台の半導体検証装置により複数の半導体デバイス100を検証することも可能である。   FIG. 1 shows a configuration example in which one semiconductor device 100 is verified by the semiconductor verification apparatus of the present embodiment, but a plurality of acquisition units 111 are provided corresponding to each reading unit 101 provided in the plurality of semiconductor units 100. If provided, a plurality of semiconductor devices 100 can be verified by one semiconductor verification apparatus.

図1に示すように、全体制御ユニット120は、ユーザI/F部131、番号データベース124、制御情報計算部135、初期値計算部126、第1番号書換部129、フレーム数書換部133、取出部122及び中央制御部121を備えている。   As shown in FIG. 1, the overall control unit 120 includes a user I / F unit 131, a number database 124, a control information calculation unit 135, an initial value calculation unit 126, a first number rewriting unit 129, a frame number rewriting unit 133, an extraction Unit 122 and central control unit 121.

中央制御部121は、全体制御ユニット120が備えるユーザI/F部131、制御情報計算部135、初期値計算部126、取出部122、第1番号書換部129及びフレーム数書換部133の動作を制御すると共に、デバイス制御ユニット110及びクロック制御ユニット140の動作を制御する。   The central control unit 121 performs operations of the user I / F unit 131, the control information calculation unit 135, the initial value calculation unit 126, the extraction unit 122, the first number rewriting unit 129, and the frame number rewriting unit 133 included in the overall control unit 120. It controls the operation of the device control unit 110 and the clock control unit 140.

なお、中央制御部121は、クロック制御ユニット140を制御することで、例えば半導体デバイス100から出力された記憶素子の値に基づいて半導体デバイス100へ供給しているクロックを停止させる機能(ブレーク設定機能)、及び半導体デバイス100にユーザが指定するサイクル数のクロックを供給させる機能を備えていてもよい。その場合、1クロックサイクル単位で記憶素子の値を観測することが可能であり、所要のイベント発生時点で半導体デバイス100の動作を停止できる。   The central control unit 121 controls the clock control unit 140 to stop the clock supplied to the semiconductor device 100 based on, for example, the value of the memory element output from the semiconductor device 100 (break setting function). ), And a function of causing the semiconductor device 100 to supply a clock having the number of cycles specified by the user. In that case, the value of the memory element can be observed in units of one clock cycle, and the operation of the semiconductor device 100 can be stopped when a required event occurs.

また、中央制御部121は、半導体デバイス100がプログラムにしたがって処理を実行するCPUやDSP等を備えている場合、該CPUやDSPのプログラムカウンタを利用してクロック制御ユニット140によるクロックの供給/停止を制御してもよく、メモリの特定のアドレスに対する書き込みや読み出しを検出したときにクロック制御ユニット140によるクロックの供給/停止を制御してもよく、ブレークポイントへの到達回数を所定数になった時点でクロック制御ユニット140によるクロックの供給/停止を制御してもよい。   In addition, when the semiconductor device 100 includes a CPU or DSP that executes processing according to a program, the central control unit 121 supplies / stops the clock by the clock control unit 140 using the program counter of the CPU or DSP. The clock control unit 140 may control the supply / stop of the clock when a write or read to a specific address in the memory is detected, and the number of times that the breakpoint has been reached has reached a predetermined number. The clock supply / stop by the clock control unit 140 may be controlled at the time.

以上、まとめると半導体デバイス100に対するクロックの停止条件としては、
(1)観測対象の信号が所定の値になったとき、
(2)観測対象の信号の値が所定の範囲内または範囲外になったとき、
(3)(1)または(2)の条件が指定された回数に到達したとき、
(4)半導体デバイス100がプログラムにしたがって動作するCPUやDSP等を備えている場合、該CPUやDSPによる処理で所定のブレーク条件が発生したとき、
(5)複数の信号に対して上記(1)〜(4)の条件のいずれかが発生したとき、等が考えられる。
In summary, the clock stop conditions for the semiconductor device 100 are as follows:
(1) When the signal to be observed reaches a predetermined value,
(2) When the value of the signal to be observed falls within or outside the specified range,
(3) When the number of times specified in (1) or (2) is reached,
(4) When the semiconductor device 100 includes a CPU, a DSP, or the like that operates according to a program, when a predetermined break condition occurs in the processing by the CPU or the DSP,
(5) When any one of the above conditions (1) to (4) occurs for a plurality of signals, etc. can be considered.

また、半導体デバイス100がハードウェアエミュレータである場合、検証対象の回路が変更可能であり、半導体デバイス100の任意の信号を用いてブレーク条件(クロックの供給を停止する条件)を設定できるため、より詳細な検証作業が可能になる。   Further, when the semiconductor device 100 is a hardware emulator, the circuit to be verified can be changed, and a break condition (condition for stopping clock supply) can be set using an arbitrary signal of the semiconductor device 100. Detailed verification work becomes possible.

番号データベース124は、上述したように第1番号、第2番号及び記憶素子名を含む、半導体デバイス100内の各記憶素子を一意に識別するための情報(第1番号及び第2番号)が格納される。   As described above, the number database 124 stores information (first number and second number) for uniquely identifying each storage element in the semiconductor device 100, including the first number, the second number, and the storage element name. Is done.

ユーザI/F部131は、ユーザによる記憶素子の指定入力を受けつける機能、及び記憶素子から読み出した値をユーザに提示する機能を備えている。ユーザI/F部131を用いてユーザが指定した観測対象の記憶素子は中央制御部121の制御により観測信号リスト134として保存される。全体制御ユニット120をコンピュータで実現する場合、ユーザI/F部131は、例えばキーボードやマウス等の入力装置のインタフェース、並びにディスプレイやプリンタ等の出力装置のインタフェースに相当する。   The user I / F unit 131 has a function of receiving a designation input of a storage element by a user and a function of presenting a value read from the storage element to the user. The observation target storage element designated by the user using the user I / F unit 131 is stored as an observation signal list 134 under the control of the central control unit 121. When the overall control unit 120 is realized by a computer, the user I / F unit 131 corresponds to an interface of an input device such as a keyboard or a mouse and an interface of an output device such as a display or a printer.

全体制御ユニット120は、例えばキーボードを用いてユーザが入力した観測対象の記憶素子名を受け付けてもよく、ディスプレイに表示された記憶素子の一覧からユーザがマウスを用いて選択した観測対象の記憶素子名を受け付けてもよい。また、全体制御ユニット120は、観測対象として、ユーザによるバス信号全体の指定やメモリ全体の指定を可能にしてもよい。さらに、全体制御ユニット120は、読み出した記憶素子の値を1ビット毎に表示してもよく、バス信号全体を表示してもよく、16進数表示や10進数表示、記憶素子の値を波形表示する機能等を備えていてもよい。   The overall control unit 120 may receive the observation target storage element name input by the user using, for example, a keyboard, and the observation target storage element selected by the user using the mouse from the list of storage elements displayed on the display A name may be accepted. The overall control unit 120 may allow the user to specify the entire bus signal or the entire memory as an observation target. Further, the overall control unit 120 may display the read storage element value for each bit, may display the entire bus signal, hexadecimal display, decimal display, and waveform display of the storage element value. The function to perform may be provided.

制御情報計算部135は、番号データベース124及び観測信号リスト134に基づいて、ユーザが指定した観測対象となる各記憶素子の値の読出順序を示す制御情報136を生成する。この制御情報計算部135の動作について図8〜図10を用いて具体的に説明する。   Based on the number database 124 and the observation signal list 134, the control information calculation unit 135 generates control information 136 indicating the reading order of the values of the respective storage elements to be observed designated by the user. The operation of the control information calculation unit 135 will be specifically described with reference to FIGS.

例えば、ユーザによって記憶素子P,Q,R,S,T,U,V,Wが観測対象に指定され、図8に示すような観測信号リスト134が生成されたとする。この場合、制御情報計算部135は、図9に示したフローチャートにしたがって図10に示すような制御情報136を生成する。   For example, it is assumed that the storage elements P, Q, R, S, T, U, V, and W are designated as observation targets by the user, and an observation signal list 134 as shown in FIG. 8 is generated. In this case, the control information calculation unit 135 generates control information 136 as shown in FIG. 10 according to the flowchart shown in FIG.

図9に示すように、制御情報計算部135は、まず観測信号リスト134で指定された各記憶素子を同じ第1番号毎に分類し(ステップS900)、第1番号の昇順にソートして(ステップS901)、第1番号毎のエントリを作成する。各エントリには、1つの第1番号、フレーム数、1つまたは複数の第2番号、第1番号及び第2番号で識別される記憶素子の名前が含まれる。ステップS901までの処理では各エントリのフレーム数を「0」に設定しておく。エントリ毎のフレーム数は次のステップS902で決定する。   As shown in FIG. 9, the control information calculation unit 135 first classifies each storage element designated in the observation signal list 134 for each same first number (step S900), and sorts them in ascending order of the first numbers ( Step S901), an entry for each first number is created. Each entry includes one first number, the number of frames, one or more second numbers, the name of the storage element identified by the first number and the second number. In the processing up to step S901, the number of frames of each entry is set to “0”. The number of frames for each entry is determined in the next step S902.

制御情報計算部135は、ステップS902にて、1つのフレームのみ読み出すか、または複数のフレームを連続して読み出すかを決定し、その決定結果に基づいて制御情報136にフレーム数を挿入する(ステップS902)。   In step S902, the control information calculation unit 135 determines whether to read only one frame or to continuously read a plurality of frames, and inserts the number of frames into the control information 136 based on the determination result (step S902). S902).

フレーム数は、以下のように決定する。   The number of frames is determined as follows.

例えば、1フレームを単独で読み出す時間をCとし、設定対象であるフレームとそれに続くフレームを連続して読み出す時間をDとしたとき、2×C<Dであれば、設定対象であるフレーム数を「1」に設定する。   For example, when C is a time for reading one frame independently and D is a time for continuously reading a frame to be set and a subsequent frame, if 2 × C <D, the number of frames to be set is Set to “1”.

一方、2×C>Dである場合は、設定対象であるフレームとそれに続く2つのフレームを連続して読み出した場合の時間をEとし、C+D<Eであれば、設定対象であるフレームのフレーム数を(「2番目のフレームの第1番号」−「設定対象のフレームの第1番号」+1)として、設定対象であるフレームとそれに続く1つのフレームを連続して読み出すようにする。   On the other hand, when 2 × C> D, the time when the frame to be set and the subsequent two frames are continuously read is E, and when C + D <E, the frame of the frame to be set The number is (“first number of second frame” − “first number of frame to be set” +1) +1, and the frame to be set and one subsequent frame are read out successively.

一方、C+D>Eである場合は、設定対象であるフレームとそれに続く3つのフレームを連続して読み出す時間をFとし、C+E<Fであれば、設定対象であるフレーム数を(「3番目のフレームの第一番号」−「設定対象のフレームの第一番号」+1)として、設定対象であるフレームとそれに続く2つのフレームを連続して読み出すように設定する。以上の処理を繰り返すことで、最初に読み出すフレームに対応する各エントリのフレーム数を設定する。   On the other hand, when C + D> E, the time for continuously reading the frame to be set and the subsequent three frames is F, and when C + E <F, the number of frames to be set is set to “(third As “first number of frame” − “first number of frame to be set” +1), the setting target frame and the subsequent two frames are set to be read continuously. By repeating the above processing, the number of frames of each entry corresponding to the first frame to be read is set.

すなわち、観測信号リストに含まれる記憶素子を同じ第1番号を有するエントリとして分類し、全てのエントリを昇順もしくは降順で並べた時、1つのエントリを単独処理するのに必要な時間と、設定対象フレームに続くN−1個のエントリを連続して処理する時間との合計をPとし、設定対象フレームに続くN個のエントリを連続して処理する時間をQとしたときに、P<Qを満たす最も大きいNを求め、設定対象フレームのフレーム数にN−1を設定すればよい。   That is, when the storage elements included in the observation signal list are classified as entries having the same first number and all entries are arranged in ascending or descending order, the time required to process one entry alone and the setting target When the sum of the time for continuously processing N−1 entries following the frame is P and the time for continuously processing N entries following the setting target frame is Q, P <Q What is necessary is just to obtain | require the largest N satisfy | filled and to set N-1 to the number of frames of a setting object frame.

初期値計算部126は、半導体デバイス100が対応するテスト用の規格(JTAG等)及び上記読出ユニット制御情報125に基づいて、出力メモリ116で最初に保持する、半導体デバイス100に対応した記憶素子の値を読み出すための制御命令を含む初期値情報127と、出力メモリ116から読出ユニット101に供給する情報における第1番号の格納位置(ビット位置)を示す第1位置情報132と、出力メモリ116から読出ユニット101に供給する情報におけるフレーム数の格納位置(ビット位置)を示すフレーム数位置情報130と、読出ユニット101から入力メモリ115に出力する情報における第2番号に対応する記憶素子毎の格納位置(ビット位置)を示す第2位置情報128とを求める。   The initial value calculation unit 126 is a memory element corresponding to the semiconductor device 100 that is initially held in the output memory 116 based on the test standard (JTAG or the like) supported by the semiconductor device 100 and the read unit control information 125. Initial value information 127 including a control command for reading a value, first position information 132 indicating a storage position (bit position) of a first number in information supplied from the output memory 116 to the reading unit 101, and output memory 116 Frame number position information 130 indicating the storage position (bit position) of the number of frames in the information supplied to the reading unit 101, and the storage position for each storage element corresponding to the second number in the information output from the reading unit 101 to the input memory 115 Second position information 128 indicating (bit position) is obtained.

例えば、第1番号及びフレーム数が32ビットで表され、図4に示した各命令が12ビット(第1番号命令及びフレーム数指定命令は12+32=44ビット)であり、各命令が図4に示した値で表される場合、初期値情報127は、0x300_005_XXXXXXXX_002_YYYYYYYY_001_301となる。ここでは、各命令を16進数(4ビット)で表記している。また、XXXXXXXXは、制御情報136にしたがって半導体デバイス100から記憶素子の値がフレーム単位で読み出されるたびに書き換えられる第1番号を示し、YYYYYYYYは、制御情報136にしたがって半導体デバイス100から記憶素子の値がフレーム単位で読み出されるたびに書き換えられるフレーム数である。出力メモリ116にはMSB Firstで情報が入力される。   For example, the first number and the number of frames are represented by 32 bits, each instruction shown in FIG. 4 is 12 bits (the first number instruction and the frame number designation instruction are 12 + 32 = 44 bits), and each instruction is shown in FIG. When represented by the indicated value, the initial value information 127 is 0x300_005_XXXXXXXXX_002_YYYYYYYY_001_301. Here, each instruction is expressed in hexadecimal (4 bits). XXXXXXXXX indicates a first number that is rewritten each time a value of a storage element is read from the semiconductor device 100 according to the control information 136 in units of frames, and YYYYYYYY indicates a value of the storage element from the semiconductor device 100 according to the control information 136. Is the number of frames that are rewritten each time frame is read out in units of frames. Information is input to the output memory 116 by MSB First.

また、この例では、第1位置情報132は、出力メモリ116から読出ユニット101にシリアル信号として出力される情報のうち、24ビット〜56ビットに挿入され、フレーム数位置情報は68〜100ビットに挿入される。   In this example, the first position information 132 is inserted into 24 bits to 56 bits of information output as a serial signal from the output memory 116 to the reading unit 101, and the frame number position information is set to 68 to 100 bits. Inserted.

第2位置情報128は、第2番号及び読み出した時のフレーム数を入力として、各記憶素子の値を保持する入力メモリ115のビット位置を求めるための表である。例えば、1回の読み出し動作であれば、何フレーム連続して読み出しても入力メモリ115のアドレス0から順に書き込まれる装置である場合、1フレームのサイズが1312ビット(固定)であれば、入力メモリ115のアドレス0には「1番目のフレーム」の「第2番号0」の記憶素子の値が書き込まれ、アドレス1には「1番目のフレーム」の「第2番号1」の記憶素子の値が書き込まれ、アドレス1311には「1番目のフレーム」の「第2番号1311」の記憶素子の値が書き込まれ、アドレス1312には「2番目のフレーム」の「第2番号0」の記憶素子の値が書き込まれ、アドレス2623には「2番目のフレーム」の「第2番号1311」の記憶素子の値が書き込まれる。このような対応表を第2位置情報128として記録する。実際のデバイスでは、読出ユニット制御情報125やデバイス制御ユニット111の構成に依存し、このように順序良く並んでいない場合もあるため、読み出す時間を短縮するためには、このような対応表を第2位置情報128として用意する必要がある。   The second position information 128 is a table for obtaining the bit position of the input memory 115 that holds the value of each storage element by using the second number and the number of frames at the time of reading as inputs. For example, in the case of a single read operation, even if the number of frames is read continuously, the device is written sequentially from address 0 of the input memory 115. If the size of one frame is 1312 bits (fixed), the input memory The value of the storage element of “second number 0” in “first frame” is written in address 0 of 115, and the value of the storage element of “second number 1” in “first frame” is written in address 1 Is written, and the address 1311 is written with the value of the storage element “second number 1311” of “first frame”, and the address 1312 is the storage element of “second number 0” of “second frame”. The value of the storage element of “second number 1311” of “second frame” is written to address 2623. Such a correspondence table is recorded as the second position information 128. In an actual device, depending on the configuration of the reading unit control information 125 and the device control unit 111, it may not be arranged in this order, so in order to shorten the reading time, such a correspondence table is provided. It is necessary to prepare the 2-position information 128.

ところで、検証対象となる半導体デバイス100がJTAGに対応している場合、TDI(Test Data In)及びTMS(Test Mode Select)信号を用いて、半導体デバイス100の状態に応じたテスト用のデータを読出ユニット101に供給する必要があり、さらに半導体デバイス100の構成も考慮する必要があるため、第1位置情報132及びフレーム数位置情報133を求めるには複雑な計算が必要になる。   By the way, when the semiconductor device 100 to be verified is compatible with JTAG, test data corresponding to the state of the semiconductor device 100 is read using a TDI (Test Data In) and TMS (Test Mode Select) signal. Since it is necessary to supply the unit 101 and also to consider the configuration of the semiconductor device 100, complicated calculation is required to obtain the first position information 132 and the frame number position information 133.

そこで、本実施形態では、第1位置情報132及びフレーム数位置情報133を除く初期値情報127及び第2位置情報は予め計算して出力メモリ116に格納しておき、第1番号及びフレーム数のみ書き換える。このようにすることで、読出ユニット101から制御情報136に含まれるフレーム数単位で記憶素子の値を読み出す度に書き換える出力メモリ116の値を最小限に抑制できる。したがって、複数の記憶素子の値を読み出すのに必要な時間を短縮できる。   Therefore, in this embodiment, the initial value information 127 and the second position information excluding the first position information 132 and the frame number position information 133 are calculated in advance and stored in the output memory 116, and only the first number and the number of frames are stored. rewrite. In this way, the value of the output memory 116 that is rewritten every time the value of the storage element is read from the reading unit 101 in units of the number of frames included in the control information 136 can be suppressed to a minimum. Therefore, the time required to read the values of a plurality of storage elements can be shortened.

第1番号書換部129は、第1位置情報132を用いて、出力メモリ116で保持している第1番号の値を、中央制御部121から指示された値に書き換える。中央制御部121は、制御情報136に基づいて書き換える第1番号の値を第1番号書換部129に指定する。   The first number rewriting unit 129 uses the first position information 132 to rewrite the value of the first number held in the output memory 116 to the value instructed by the central control unit 121. The central control unit 121 designates a value of the first number to be rewritten based on the control information 136 to the first number rewriting unit 129.

第1番号書換部129は、中央制御部121から第1番号の書き換えが指示されると、第1位置情報131が示す出力メモリ116のビット(上記例の“XXXXXXXX”であり、初期値情報127の24ビット〜56ビット目)の値を、指定された第1番号の値に書き換える。   When rewriting of the first number is instructed from the central control unit 121, the first number rewriting unit 129 is the bit of the output memory 116 indicated by the first position information 131 (“XXXXXXX” in the above example, and the initial value information 127. The 24th to 56th bits) are rewritten to the designated first number value.

なお、出力メモリ116を32ビットの1ポートメモリで実現している場合、出力メモリ116には32ビット単位でデータを書き込むため、初期値情報127の24ビット〜56ビット目に位置する第1番号を一度に書き換えることはできない。その場合、初期値情報127の24ビットから32ビット目の値を書き換える処理と、33ビットから56ビット目の値を書き換える処理の2回の書き換え処理が必要になる。但し、出力メモリ116に対する初期値情報の格納位置を工夫すれば、出力メモリ116に格納されている第1番号を1度に書き換えることも可能である。例えば、初期値情報をアドレス「8」から格納し、全体制御ユニット120がアドレス「8」から出力メモリ116にアクセスするように制御すれば、第1番号は33ビットから64ビットに格納されるため、第1番号を1度の書き換え処理で全て書き換えることができる。   When the output memory 116 is realized by a 32-bit 1-port memory, data is written to the output memory 116 in units of 32 bits, so the first number located at the 24th to 56th bits of the initial value information 127 Cannot be rewritten at once. In this case, two rewrite processes are required: a process of rewriting the value from the 24th bit to the 32nd bit of the initial value information 127 and a process of rewriting the value of the 33rd bit to the 56th bit. However, if the storage location of the initial value information in the output memory 116 is devised, the first number stored in the output memory 116 can be rewritten at a time. For example, if the initial value information is stored from the address “8” and the overall control unit 120 is controlled to access the output memory 116 from the address “8”, the first number is stored from 33 bits to 64 bits. All of the first numbers can be rewritten by a single rewriting process.

一方、出力メモリ116をデュアルポートメモリで実現している場合、出力メモリ116から読出ユニット101への書き込み処理と、出力メモリ116における第1番号の書き換え処理とを並行して実施できる。そのため、出力メモリ116に対する第1番号の書き換え時間を見かけ上無くすことが可能であり、半導体デバイス100から記憶素子の値をより高速に読み出すことができる。   On the other hand, when the output memory 116 is realized by a dual port memory, the writing process from the output memory 116 to the reading unit 101 and the rewriting process of the first number in the output memory 116 can be performed in parallel. Therefore, it is possible to apparently eliminate the rewrite time of the first number for the output memory 116, and the value of the storage element can be read from the semiconductor device 100 at higher speed.

フレーム数書換部133は、フレーム数位置情報130を用いて、出力メモリ116で保持しているフレーム数の値を、中央制御部121から指示された値に書き換える。中央制御部121は、制御情報136に基づいて書き換えるフレーム数の値をフレーム数書換部133に指定する。フレーム数書換部133によるフレーム数の書き換え処理は、上述した第1番号書換部129による第1番号の書き換え処理と同様に実行すればよいため、ここではその説明を省略する。   The frame number rewriting unit 133 rewrites the value of the frame number held in the output memory 116 to the value instructed by the central control unit 121 using the frame number position information 130. The central control unit 121 designates the value of the number of frames to be rewritten to the frame number rewriting unit 133 based on the control information 136. Since the frame number rewriting process by the frame number rewriting unit 133 may be executed in the same manner as the first number rewriting process by the first number rewriting unit 129 described above, the description thereof is omitted here.

取出部122は、前回の読み出し動作で指定したフレーム数と第2位置情報とを用いて、中央制御部121からの指示にしたがってフレーム毎の記憶素子の値を入力メモリ115から取得する。   The extraction unit 122 acquires the value of the storage element for each frame from the input memory 115 according to the instruction from the central control unit 121 using the number of frames specified in the previous read operation and the second position information.

取出部122は、制御情報136に基づき中央制御部121から読み出す処理が指定されると、処理に記載されたフレーム数と処理に記載された各第2番号を用いて第2位置情報128から入力メモリ115のビット位置を求め、そのビット位置の値を制御I/F113を介して読み出す。例えば図8に示した記憶素子Qの値を読み出す場合、入力メモリ115には第1番号0xD、0XE及び0xFに対応する3つのフレームの値が連続して格納されているため、取出部122は、入力メモリ115のアドレス2625(=2×1312+1)の値を読み出せばよい。   When the processing to be read from the central control unit 121 is specified based on the control information 136, the extraction unit 122 inputs from the second position information 128 using the number of frames described in the processing and each second number described in the processing. The bit position of the memory 115 is obtained, and the value of the bit position is read via the control I / F 113. For example, when reading the value of the storage element Q shown in FIG. 8, since the values of three frames corresponding to the first numbers 0xD, 0XE, and 0xF are continuously stored in the input memory 115, the extracting unit 122 The value of the address 2625 (= 2 × 1312 + 1) of the input memory 115 may be read.

なお、入力メモリ115をデュアルポートメモリで実現する場合、入力メモリ115の入出力データのビット幅と制御I/F113で転送可能なデータのビット幅とを一致させておくことが好ましい。その場合、全体制御ユニット120とデバイス制御ユニット110間で最も効率良くデータを送受信することができる。例えば、制御I/F113が32ビットのPCIバスであれば、入力メモリ115に入出力データのビット幅が32ビットのメモリを用いれば、全体制御部120とデバイス制御ユニット110間で最も効率よくデータを送受信できる。   When the input memory 115 is realized by a dual port memory, it is preferable that the bit width of input / output data of the input memory 115 and the bit width of data that can be transferred by the control I / F 113 are matched. In that case, data can be most efficiently transmitted and received between the overall control unit 120 and the device control unit 110. For example, if the control I / F 113 is a 32-bit PCI bus, the most efficient data transfer between the overall control unit 120 and the device control unit 110 is achieved by using a memory with a bit width of input / output data of 32 bits for the input memory 115. Can be sent and received.

次に、図11を用いて本実施形態の半導体検証装置の動作について説明する。   Next, the operation of the semiconductor verification apparatus of this embodiment will be described with reference to FIG.

中央制御部121は、初期値計算部126により、読出ユニット制御情報125を用いて、初期値情報127、第1位置情報132、第2位置情報128及びフレーム数位置情報130をそれぞれ生成する(ステップS1101)。   The central control unit 121 generates initial value information 127, first position information 132, second position information 128, and frame number position information 130 by using the read unit control information 125 by the initial value calculation unit 126 (step). S1101).

次に、中央制御部121は、初期値情報127を制御I/F113を介して出力メモリ116に書き込む(ステップS1102)。   Next, the central control unit 121 writes the initial value information 127 to the output memory 116 via the control I / F 113 (step S1102).

ユーザがユーザI/F部131を用いて半導体デバイス100の観測対象の記憶素子を指定すると、中央制御部121は、指定された記憶素子から成る観測信号リスト134を作成し、保存する(ステップS1103)。   When the user uses the user I / F unit 131 to specify a storage element to be observed of the semiconductor device 100, the central control unit 121 creates and stores an observation signal list 134 including the specified storage element (step S1103). ).

次に、中央制御部121は、観測信号リスト134及び番号データベース124に基づいて、制御情報計算部135に制御情報136を作成させる。このとき、制御情報136には、ユーザI/F機能131を用いてユーザが指定した、クロック制御ユニット140から半導体デバイス100に供給するクロックサイクル数等を含めてもよい。半導体デバイス100やクロック制御ユニット140がブレーク機能を有している場合、制御情報136にはユーザI/F機能131を用いてユーザが指定したブレーク条件等を含めてもよい。   Next, the central control unit 121 causes the control information calculation unit 135 to create control information 136 based on the observation signal list 134 and the number database 124. At this time, the control information 136 may include the number of clock cycles supplied from the clock control unit 140 to the semiconductor device 100 specified by the user using the user I / F function 131. When the semiconductor device 100 or the clock control unit 140 has a break function, the control information 136 may include a break condition specified by the user using the user I / F function 131.

次に、中央制御部121は、クロック制御ユニット140を制御することで、半導体デバイス100にクロックを供給し、半導体デバイス100を動作させる(ステップS1104)。   Next, the central control unit 121 controls the clock control unit 140 to supply a clock to the semiconductor device 100 and operate the semiconductor device 100 (step S1104).

ユーザがユーザI/F131を用いて半導体デバイス100に対するクロックの供給停止を指示した場合、クロック制御ユニット140から予め指定されたサイクル数のクロックが供給された場合、または所定のブレーク条件が発生した場合、中央制御部121は、クロック制御ユニット140を制御して、半導体デバイス100へ供給しているクロックを停止させる(ステップS1105)。   When a user instructs the semiconductor device 100 to stop supplying a clock using the user I / F 131, when a clock having a predetermined number of cycles is supplied from the clock control unit 140, or when a predetermined break condition occurs The central control unit 121 controls the clock control unit 140 to stop the clock supplied to the semiconductor device 100 (step S1105).

中央制御部121は、クロック制御ユニット140により半導体デバイス100に対するクロックの供給を停止させると、制御情報136にしたがって半導体デバイス100の所要の記憶素子の値を読み出す(ステップS1106)。続いて、制御情報136の全てのエントリで指定された記憶素子の値の読み出しが終了したか否かを判定し(ステップS1107)、制御情報136の全てのエントリに記載された記憶素子の値の読み出しが終了していない場合は、ステップS1106の処理に戻ってステップS1106及びステップS1107を繰り返す。   When the clock control unit 140 stops the supply of the clock to the semiconductor device 100, the central control unit 121 reads a value of a required storage element of the semiconductor device 100 according to the control information 136 (step S1106). Subsequently, it is determined whether or not the reading of the values of the storage elements specified in all the entries of the control information 136 has been completed (step S1107), and the values of the storage elements described in all the entries of the control information 136 are determined. If the reading has not been completed, the process returns to step S1106 and steps S1106 and S1107 are repeated.

ここで、上記ステップS1106で実行する記憶素子の値の読出処理について、図10に示した制御情報136を備えている例で具体的に説明する。   Here, the reading process of the value of the storage element executed in step S1106 will be specifically described using an example including the control information 136 shown in FIG.

ステップS1106において、中央制御部121は、まず図10の第1処理で指定された第1番号(0x1)及びフレーム数(1)を取得する。   In step S1106, the central control unit 121 first acquires the first number (0x1) and the number of frames (1) specified in the first process of FIG.

次に、中央制御部121は、第1番号書換部129を用いて出力メモリ116で保持している第1番号をステップS1106で取得した値に書き換え、フレーム数書換部133を用いて出力メモリ116で保持しているフレーム数をステップS1106で取得した値に書き換える。   Next, the central control unit 121 rewrites the first number held in the output memory 116 using the first number rewriting unit 129 to the value acquired in step S1106, and uses the frame number rewriting unit 133 to output the output memory 116. The number of frames held in step S1106 is rewritten to the value acquired in step S1106.

次に、中央制御部121は、メモリ制御ユニット117を用いて出力メモリ116で保持している情報を読出ユニット101へ供給し、読出ユニット101から出力された記憶素子の値を入力メモリ115に格納する。   Next, the central control unit 121 supplies the information held in the output memory 116 to the reading unit 101 using the memory control unit 117 and stores the value of the storage element output from the reading unit 101 in the input memory 115. To do.

図10の第1処理で指定された記憶素子の値が入力メモリ115に格納されると、中央制御部121は、制御情報136の第1処理に含まれるフレーム数及び第2番号を取出部122に供給する。取得部122は、第2位置情報128を用いて、中央制御部121から指定されたフレーム数及び第2番号より、第1処理で読み出す記憶素子の値が格納された入力メモリ115のビット位置を求め、制御I/F113を介して、該ビット位置から第2番号に対応する記憶素子の値を取得する。   When the value of the storage element specified in the first process of FIG. 10 is stored in the input memory 115, the central control unit 121 extracts the number of frames and the second number included in the first process of the control information 136. To supply. The acquisition unit 122 uses the second position information 128 to determine the bit position of the input memory 115 in which the value of the storage element to be read in the first process is stored based on the number of frames and the second number specified by the central control unit 121. The value of the storage element corresponding to the second number is obtained from the bit position via the control I / F 113.

以上の処理を制御情報136に含まれる残りの処理(図8に示す例では第2処理2及び第3処理)についても繰り返し、制御情報136の全てのエントリで指定された記憶素子の値の読み出しが終了すると、読み出した値をユーザI/F部131を用いて出力装置から出力し、ユーザに提示する。   The above processing is repeated for the remaining processing included in the control information 136 (second processing 2 and third processing in the example shown in FIG. 8), and the values of the storage elements specified in all the entries of the control information 136 are read. Is completed, the read value is output from the output device using the user I / F unit 131 and presented to the user.

中央制御部121は、制御情報136の全てのエントリで指定された記憶素子の値の読み出しが終了すると、半導体デバイス100の動作を続行するか否かをユーザI/F部131を用いて出力装置から出力し、ユーザに提示する(ステップS1108)。   The central control unit 121 uses the user I / F unit 131 to output whether or not to continue the operation of the semiconductor device 100 when reading of the values of the storage elements specified in all the entries of the control information 136 is completed. Are output to the user (step S1108).

中央制御部121は、ユーザがユーザI/F部131を用いて動作停止を指示した場合は半導体デバイス100の動作を停止させ、ユーザが動作の続行を指示した場合はステップS1103の処理に戻ってステップS1103からステップS1108の処理を繰り返す。   The central control unit 121 stops the operation of the semiconductor device 100 when the user instructs the operation stop using the user I / F unit 131, and returns to the process of step S1103 when the user instructs the continuation of the operation. The processing from step S1103 to step S1108 is repeated.

本実施形態によれば、ユーザによって指定された、観測対象である記憶素子の値を読み出すのに必要な情報を出力メモリ116に格納しておき、出力メモリ116から半導体デバイス100が備える読出ユニット101に該情報を供給し、該情報にしたがって読出ユニット101で読み出された記憶素子の値を入力メモリ115に格納しつつ、次に読み出す記憶素子を指定するのに必要な情報として、出力メモリ116で保持した第1番号及びフレーム数の値のみ書き換える。そのため、所要の記憶素子の値を読み出すのに必要な処理の時間を短縮できる。   According to the present embodiment, information necessary for reading the value of the storage element to be observed designated by the user is stored in the output memory 116, and the reading unit 101 included in the semiconductor device 100 is provided from the output memory 116. Is output to the output memory 116 as information necessary for designating the storage element to be read next while storing the value of the storage element read by the reading unit 101 in accordance with the information in the input memory 115. Only the values of the first number and the number of frames held in step 1 are rewritten. For this reason, it is possible to shorten the processing time required to read the value of the required storage element.

また、各フレームの値を読み出す際に、総読み出し時間が最も短くなるように、制御情報計算部135にて複数のフレームの値を個別に読み出すか連続して読み出すかを計算し、該計算結果に基づくフレーム数を含む制御情報136を作成し、該制御情報にしたがって半導体デバイス100の記憶素子の値を読み出すため、複数の記憶素子の値の読み出しに必要な総読み出し時間を最小にできる。   Further, when reading the value of each frame, the control information calculation unit 135 calculates whether to read the values of a plurality of frames individually or sequentially so that the total reading time is the shortest, and the calculation result Since the control information 136 including the number of frames based on is generated and the value of the memory element of the semiconductor device 100 is read according to the control information, the total read time required for reading the values of the plurality of memory elements can be minimized.

例えば、半導体デバイス100がハードウェアエミュレータであり、該ハードウェアエミュレータとして上記米国ザイリンクス社のVirtex−4FPGAを用いる場合、3つのフレームの値を個別に読み出す場合は、FPGAのシャットダウン、FPGAからの記憶素子の値の読み出し、FPGAの開始処理を3回実行する必要がある。それに対して、3つのフレームの値を連続して読み出せば、1回の読み出し処理に要する時間は長くなるが、FPGAのシャットダウン及び開始処理は1回で済むため、3つのフレームの値の読み出しに必要な総読み出し時間を短縮できる。さらに、上記Virtex−4FPGAでは、読み出す先頭フレームが常にダミーフレーム(情報がないフレーム)であるため、例えば複数の記憶素子の値をフレーム毎に個別に読み出すと、ダミーフレームを3度読み出す必要がある。それに対して、3つのフレームの値を連続して読み出せばダミーフレームを1度読み出すだけで済むため、3つのフレームの値の読み出しに必要な総読み出し時間を短縮できる。   For example, when the semiconductor device 100 is a hardware emulator and the above Xilinx Corp. Virtex-4 FPGA is used as the hardware emulator, when reading three frame values individually, the FPGA is shut down, and the memory element from the FPGA. Need to be read three times, and the FPGA start process must be executed three times. On the other hand, if the values of the three frames are read continuously, the time required for one read process becomes longer, but the FPGA shutdown and start process only needs to be performed once, so the values of the three frames are read. The total readout time required for the process can be shortened. Further, in the above-described Virtex-4 FPGA, the first frame to be read is always a dummy frame (a frame without information). For example, if the values of a plurality of storage elements are individually read for each frame, the dummy frame needs to be read three times. . On the other hand, if the values of the three frames are read continuously, it is only necessary to read the dummy frame once, so that the total reading time required for reading the values of the three frames can be shortened.

また、本実施形態の半導体検証装置では、デバイス制御ユニット110が備える出力メモリ116及び入力メモリ115を検証対象である半導体デバイス100の読出ユニット101に直接接続できるため、出力メモリ116から読出ユニット101に対して1クロックサイクル毎に記憶素子の値を読み出すためのコマンドや読み出す記憶素子を指定する情報を供給することが可能であり、読出ユニット101から入力メモリ115に対して1クロックサイクル毎に半導体デバイス100から読み出された値を格納できる。そのため、半導体デバイス100からの記憶素子の値の読み出し処理を簡易に制御できる。   In the semiconductor verification apparatus according to the present embodiment, the output memory 116 and the input memory 115 provided in the device control unit 110 can be directly connected to the reading unit 101 of the semiconductor device 100 to be verified. On the other hand, it is possible to supply a command for reading a value of a storage element every clock cycle and information designating a storage element to be read, and the semiconductor device is read from the reading unit 101 to the input memory 115 every clock cycle. A value read from 100 can be stored. Therefore, the reading process of the value of the memory element from the semiconductor device 100 can be easily controlled.

したがって、本実施形態の半導体検証装置によれば、検証対象である半導体デバイスやハードウェアエミュレータが備える記憶素子の値を背景技術よりも高速に読み出すことができる。そのため、半導体デバイスやハードウェアエミュレータの検証作業をより効率よく実施できる。   Therefore, according to the semiconductor verification apparatus of this embodiment, the value of the memory element included in the semiconductor device or hardware emulator to be verified can be read faster than the background art. Therefore, the verification work of the semiconductor device and the hardware emulator can be performed more efficiently.

100 半導体デバイス
101 読出ユニット
110 デバイス制御ユニット
111 取得ユニット
113 制御I/F部
115 入力メモリ
116 出力メモリ
117 メモリ制御ユニット
120 全体制御ユニット
121 中央制御部
122 取出部
124 番号データベース
126 初期値計算部
129 第1番号書換部
131 ユーザI/F部
133 フレーム数書換部
135 制御情報計算部
136 制御情報
140 クロック制御ユニット
DESCRIPTION OF SYMBOLS 100 Semiconductor device 101 Reading unit 110 Device control unit 111 Acquisition unit 113 Control I / F part 115 Input memory 116 Output memory 117 Memory control unit 120 Overall control unit 121 Central control part 122 Extraction part 124 Number database 126 Initial value calculation part 129 1st 1-number rewriting unit 131 User I / F unit 133 Frame number rewriting unit 135 Control information calculating unit 136 Control information 140 Clock control unit

Claims (6)

第1番号及び第2番号によって半導体デバイスが備える複数の記憶素子を識別可能な、前記半導体デバイスを用いた半導体検証装置であって、
前記第1番号及び前記第1番号で指定される記憶素子から構成されるフレームの数を示すフレーム数に基づき、該第1番号から連続する該フレーム数に対応する記憶素子の値を外部に出力する読出ユニットと、
前記記憶素子毎の前記第1番号及び前記第2番号を示す番号データベース及び観測対象となる前記記憶素子を指定する観測信号リストに基づいて、前記観測対象となる前記記憶素子の値の読出方法を決定する制御情報を作成する制御情報計算部と、
前記制御情報に基づいて、前記読出ユニットから前記観測信号リストで指定された各記憶素子の値を取得する中央制御部と、
を有し、
前記制御情報計算部は、
前記観測信号リストに含まれる前記記憶素子を同じ第1番号を有するエントリとして分類し、全てのエントリを昇順もしくは降順で並べた時、1つのエントリを単独処理するのに必要な時間と、設定対象フレームに続くN−1個のエントリを連続して処理する時間との合計をPとし、設定対象フレームとこれに続くN−1個のエントリからなる計N個のエントリを連続して処理する時間をQとしたとき、P<Qを満たす最も大きいNを求め、設定対象フレームのフレーム数にN−1を設定し、
前記中央制御部は、
前記フレーム数単位で、前記読出ユニットから前記観測信号リストに含まれる前記記憶素子の値を読み出すことを特徴とする半導体検証装置。
A semiconductor verification apparatus using the semiconductor device capable of identifying a plurality of storage elements included in the semiconductor device by a first number and a second number,
Based on the number of frames indicating the number of the first number and said storage element that consists of a frame specified by the first number, the external value of the memory element corresponding to the number of said consecutive frames from the first number and read out unit you output to,
A method of reading a value of the storage element to be observed based on a number database indicating the first number and the second number for each storage element and an observation signal list designating the storage element to be observed A control information calculation unit for creating control information to be determined;
Based on the control information, a central control unit that acquires the value of each storage element specified in the observation signal list from the reading unit;
Have
The control information calculation unit
When the storage elements included in the observation signal list are classified as entries having the same first number and all entries are arranged in ascending or descending order, the time required to process one entry alone and the setting target The total of N-1 entries following the frame and the time for continuously processing N entries are set as P, and a total of N entries consisting of the setting target frame and the N-1 entries following this are continuously processed. Where Q is Q, the largest N satisfying P <Q is determined, N-1 is set as the number of frames to be set,
The central control unit
A semiconductor verification apparatus, wherein the value of the storage element included in the observation signal list is read from the reading unit in units of the number of frames .
前記読出ユニットに供給する前記第1番号及び前記フレーム数を含む、前記記憶素子の値を読み出すための情報を保持する出力メモリと、
前記読出ユニットから出力された前記記憶素子の値を保持する入力メモリと、
前記半導体デバイスから前記記憶素子の値を読み出すための制御命令を含む初期値情報、前記出力メモリから前記読出ユニットに供給する情報における前記第1番号の格納位置を示す第1位置情報、前記出力メモリから前記読出ユニットに供給する情報における前記フレーム数の格納位置を示すフレーム数位置情報、前記読出ユニットから前記入力メモリに出力する情報における前記第2番号に対応する記憶素子毎の格納位置を示す第2位置情報を求める初期値計算部と、
を有し、
前記中央制御部は、
前記フレーム数単位で、前記出力メモリで保持している前記第1番号及び前記フレーム数のみを変更し、
前記第1位置情報及び前記フレーム数位置情報を含む前記初期値情報、並びに前記第2番号に基づいて、前記フレーム数単位で、前記入力メモリから前記記憶素子の値を取り出すことを特徴とする請求項1記載の半導体検証装置。
An output memory holding information for reading the value of the storage element, including the first number and the number of frames supplied to the reading unit;
An input memory for holding the value of the storage element output from the reading unit;
Initial value information including a control command for reading the value of the storage element from the semiconductor device, first position information indicating a storage position of the first number in information supplied from the output memory to the reading unit, and the output memory The frame number position information indicating the storage position of the number of frames in the information supplied from the read unit to the read unit, and the storage position for each storage element corresponding to the second number in the information output from the read unit to the input memory. 2 an initial value calculation unit for obtaining position information;
Have
The central control unit
Change only the first number and the number of frames held in the output memory in units of the number of frames,
The value of the storage element is extracted from the input memory in units of the number of frames based on the initial value information including the first position information and the frame number position information, and the second number. Item 2. The semiconductor verification device according to Item 1.
前記半導体デバイスにクロックを供給する、または該クロックの供給を停止するクロック制御ユニットを備え、
前記中央制御部は、
(1)観測対象の記憶素子の値が所定の値になったとき、
(2)観測対象の記憶素子の値が所定の範囲内または範囲外になったとき、
(3)前記(1)または前記(2)に示す条件が予め指定された回数に到達したとき、
(4)前記半導体デバイスによる処理で所定のブレーク条件が発生したとき、
(5)複数の記憶素子の値で前記(1)〜(4)に示す条件が発生したとき、
前記クロック制御ユニットに、前記半導体デバイスに対するクロックの供給を停止させた後、前記記憶素子の値を読み出すことを特徴とする請求項2記載の半導体検証装置。
A clock control unit for supplying a clock to the semiconductor device or stopping the supply of the clock;
The central control unit
(1) When the value of the memory element to be observed becomes a predetermined value,
(2) When the value of the memory element to be observed falls within or outside the predetermined range,
(3) When the condition shown in (1) or (2) reaches a predetermined number of times,
(4) When a predetermined break condition occurs in the processing by the semiconductor device,
(5) When the conditions shown in the above (1) to (4) occur in the values of a plurality of storage elements,
3. The semiconductor verification apparatus according to claim 2 , wherein the value of the storage element is read after the clock control unit stops supplying the clock to the semiconductor device.
第1番号及び第2番号によって半導体デバイスが備える複数の記憶素子を識別可能な、前記半導体デバイスを用いた半導体検証方法であって、
前記第1番号及び前記第1番号で指定される記憶素子から構成されるフレームの数を示すフレーム数に基づき、該第1番号から連続する該フレーム数に対応する記憶素子の値を外部に出力する読出ユニットと、
前記記憶素子毎の前記第1番号及び前記第2番号を示す番号データベース及び観測対象となる前記記憶素子を指定する観測信号リストに基づいて、前記観測対象となる前記記憶素子の値の読出方法を決定する制御情報を作成する制御情報計算部と、
前記制御情報に基づいて、前記読出ユニットから前記観測信号リストで指定された各記憶素子の値を取得する中央制御部と、
を備えておき、
前記制御情報計算部が、
前記観測信号リストに含まれる前記記憶素子を同じ第1番号を有するエントリとして分類し、全てのエントリを昇順もしくは降順で並べた時、1つのエントリを単独処理するのに必要な時間と、設定対象フレームに続くN−1個のエントリを連続して処理する時間との合計をPとし、設定対象フレームとこれに続くN−1個のエントリからなる計N個のエントリを連続して処理する時間をQとしたとき、P<Qを満たす最も大きいNを求め、設定対象フレームのフレーム数にN−1を設定し、
前記中央制御部が、
前記フレーム数単位で、前記読出ユニットから前記観測信号リストに含まれる前記記憶素子の値を読み出すことを特徴とする半導体検証方法。
A semiconductor verification method using the semiconductor device, wherein a plurality of memory elements included in the semiconductor device can be identified by a first number and a second number,
Based on the number of frames indicating the number of the first number and said storage element that consists of a frame specified by the first number, the external value of the memory element corresponding to the number of said consecutive frames from the first number and read out unit you output to,
A method of reading a value of the storage element to be observed based on a number database indicating the first number and the second number for each storage element and an observation signal list designating the storage element to be observed A control information calculation unit for creating control information to be determined;
Based on the control information, a central control unit that acquires the value of each storage element specified in the observation signal list from the reading unit;
With
The control information calculation unit is
When the storage elements included in the observation signal list are classified as entries having the same first number and all entries are arranged in ascending or descending order, the time required to process one entry alone and the setting target The total of N-1 entries following the frame and the time for continuously processing N entries are set as P, and a total of N entries consisting of the setting target frame and the N-1 entries following this are continuously processed. Where Q is Q, the largest N satisfying P <Q is determined, N-1 is set as the number of frames to be set,
The central control unit is
A semiconductor verification method, wherein a value of the storage element included in the observation signal list is read from the reading unit in units of the number of frames .
前記読出ユニットに供給する前記第1番号及び前記フレーム数を含む、前記記憶素子の値を読み出すための情報を保持する出力メモリと、
前記読出ユニットから出力された前記記憶素子の値を保持する入力メモリと、
前記半導体デバイスから前記記憶素子の値を読み出すための制御命令を含む初期値情報、前記出力メモリから前記読出ユニットに供給する情報における前記第1番号の格納位置を示す第1位置情報、前記出力メモリから前記読出ユニットに供給する情報における前記フレーム数の格納位置を示すフレーム数位置情報、前記読出ユニットから前記入力メモリに出力する情報における前記第2番号に対応する記憶素子毎の格納位置を示す第2位置情報を求める初期値計算部と、
を備えておき、
前記中央制御部が、
前記フレーム数単位で、前記出力メモリで保持している前記第1番号及び前記フレーム数のみを変更し、
前記第1位置情報及び前記フレーム数位置情報を含む前記初期値情報、並びに前記第2番号に基づいて、前記フレーム数単位で、前記入力メモリから前記記憶素子の値を取り出すことを特徴とする請求項4記載の半導体検証方法。
An output memory holding information for reading the value of the storage element, including the first number and the number of frames supplied to the reading unit;
An input memory for holding the value of the storage element output from the reading unit;
Initial value information including a control command for reading the value of the storage element from the semiconductor device, first position information indicating a storage position of the first number in information supplied from the output memory to the reading unit, and the output memory The frame number position information indicating the storage position of the number of frames in the information supplied from the read unit to the read unit, and the storage position for each storage element corresponding to the second number in the information output from the read unit to the input memory. 2 an initial value calculation unit for obtaining position information;
With
The central control unit is
Change only the first number and the number of frames held in the output memory in units of the number of frames,
The value of the storage element is extracted from the input memory in units of the number of frames based on the initial value information including the first position information and the frame number position information, and the second number. Item 5. The semiconductor verification method according to Item 4.
前記半導体デバイスにクロックを供給する、または該クロックの供給を停止するクロック制御ユニットを備えておき、
前記中央制御部が、
(1)観測対象の記憶素子の値が所定の値になったとき、
(2)観測対象の記憶素子の値が所定の範囲内または範囲外になったとき、
(3)前記(1)または前記(2)に示す条件が予め指定された回数に到達したとき、
(4)前記半導体デバイスによる処理で所定のブレーク条件が発生したとき、
(5)複数の記憶素子の値で前記(1)〜(4)に示す条件が発生したとき、
前記クロック制御ユニットに、前記半導体デバイスに対するクロックの供給を停止させた後、前記記憶素子の値を読み出すことを特徴とする請求項5記載の半導体検証方法。
A clock control unit for supplying a clock to the semiconductor device or stopping the supply of the clock;
The central control unit is
(1) When the value of the memory element to be observed becomes a predetermined value,
(2) When the value of the memory element to be observed falls within or outside the predetermined range,
(3) When the condition shown in (1) or (2) reaches a predetermined number of times,
(4) When a predetermined break condition occurs in the processing by the semiconductor device,
(5) When the conditions shown in the above (1) to (4) occur in the values of a plurality of storage elements,
The semiconductor verification method according to claim 5 , wherein the value of the storage element is read after the clock control unit stops supplying a clock to the semiconductor device.
JP2009287433A 2009-12-18 2009-12-18 Semiconductor verification apparatus and method Active JP5471406B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009287433A JP5471406B2 (en) 2009-12-18 2009-12-18 Semiconductor verification apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009287433A JP5471406B2 (en) 2009-12-18 2009-12-18 Semiconductor verification apparatus and method

Publications (2)

Publication Number Publication Date
JP2011128937A JP2011128937A (en) 2011-06-30
JP5471406B2 true JP5471406B2 (en) 2014-04-16

Family

ID=44291466

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009287433A Active JP5471406B2 (en) 2009-12-18 2009-12-18 Semiconductor verification apparatus and method

Country Status (1)

Country Link
JP (1) JP5471406B2 (en)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001209556A (en) * 1999-11-18 2001-08-03 Yokogawa Electric Corp Verification supporting system
JP2002215418A (en) * 2001-01-15 2002-08-02 Nec Corp Logic verifying device by cooperation simulation
JP2004280426A (en) * 2003-03-14 2004-10-07 Mitsubishi Electric Corp Internal signal tracing device for logic integrated circuit
US7120571B2 (en) * 2003-06-16 2006-10-10 Fortelink, Inc. Resource board for emulation system
DE102004050037B4 (en) * 2003-10-09 2015-01-08 Samsung Electronics Co., Ltd. Memory device, memory system and mode of operation network method
JP4656929B2 (en) * 2003-11-18 2011-03-23 クイックターン・デザイン・システムズ・インコーポレイテッド Optimized interface for simulation and visualization data transfer between emulation system and simulator

Also Published As

Publication number Publication date
JP2011128937A (en) 2011-06-30

Similar Documents

Publication Publication Date Title
JP4994393B2 (en) System and method for generating multiple models at different levels of abstraction from a single master model
US8356272B2 (en) Logic verification module apparatus to serve as a hyper prototype for debugging an electronic design that exceeds the capacity of a single FPGA
US9298865B1 (en) Debugging an optimized design implemented in a device with a pre-optimized design simulation
EP2743848A1 (en) Verification module apparatus for debugging software and timing of an embedded processor design that exceeds the capacity of a single FPGA
EP3149577A1 (en) Extracting system architecture in high level synthesis
JP2008186252A (en) Behavioral synthesis device and method having test bench generation function, and program
US8909833B2 (en) Systems, methods, and articles of manufacture to stream data
CN107784185B (en) Method and device for extracting pseudo path in gate-level netlist and terminal equipment
US20090164967A1 (en) High-level synthesis apparatus, high-level synthesis system and high-level synthesis method
US9824173B1 (en) Software development-based compilation flow for hardware implementation
US8074192B2 (en) Verification support apparatus, verification support method, and computer product
JP4492803B2 (en) Behavioral synthesis apparatus and program
JP5979966B2 (en) Circuit design support apparatus, circuit design support method, and program
JP5471406B2 (en) Semiconductor verification apparatus and method
US20120265515A1 (en) Method and system and computer program product for accelerating simulations
US7302667B1 (en) Methods and apparatus for generating programmable device layout information
WO2010016300A1 (en) Semiconductor verifying device, method, and program
JP6091140B2 (en) Information processing apparatus, information processing method, and program
JP5333792B2 (en) Semiconductor verification apparatus, method and program
Baranov ASMs in high level synthesis of EDA tool Abelite
US9628085B1 (en) Method and device for accelerated access to signals of a programmable logic device
US8966124B1 (en) Systems, methods, and articles of manufacture to stream data
Rădoi et al. HDL simulation model for testing and verification of “system in package” sensor architectures
US20030046054A1 (en) Providing modeling instrumentation with an application programming interface to a GUI application
JP2011134308A (en) High level synthesizer, high level synthesis method, and high level synthesis program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121108

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130618

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130625

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130807

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140120

R150 Certificate of patent or registration of utility model

Ref document number: 5471406

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150