JP5471406B2 - Semiconductor verification apparatus and method - Google Patents
Semiconductor verification apparatus and method Download PDFInfo
- 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
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
上述したように、特許文献1や特許文献2は、ハードウェアエミュレータとして用いるFPGAを、該FPGAが備える、JTAG(IEEE1149.1)に対応した回路を利用して制御することで、該FPGA内部の記憶素子の値を読み出す手法を開示している。
As described above, Patent Document 1 and
しかしながら、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.
次に本発明について図面を用いて説明する。 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
全体制御ユニット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
クロック制御ユニット140は、全体制御ユニット120の指示にしたがって半導体デバイス100にクロックを供給する、またはクロックの供給を停止する。
The
半導体デバイス100は、クロック制御ユニット140から供給されるクロックに同期して動作する検証対象の半導体デバイスまたはハードウェアエミュレータであり、第1番号と第2番号とにより一意に識別可能な複数の記憶素子を備えている。半導体デバイス100が備える記憶素子とは、フリップフロップ回路、ラッチ回路、メモリ、レジスタ等を指す。また、半導体デバイス100は、デバイス制御ユニット110を介して記憶素子の値を読み出し可能にするための読出ユニット101を備えている。なお、本実施形態では、読出ユニット101とデバイス制御ユニット間でシリアル信号によりデータを送受信するため、読出ユニット101及びデバイス制御ユニット110には、パラレルデータをシリアル信号に変換するためのP/S変換回路(不図示)及びシリアル信号をパラレルデータに変換するためのS/P変換回路(不図示)を備えている。
The
以下では、上記第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
例えば、半導体デバイス100がハードウェアエミュレータであり、該ハードウェアエミュレータとして上記米国ザイリンクス社のVirtex−4FPGAを用いる場合、図2に示すような各記憶素子を識別するための情報はLogic Location Fileに格納されているため、該ファイルを用いて番号データベース124を構築すればよい。Virtex−4FPGAのLogic Location Fileについては、米国ザイリンクス社が発行している「Virtex−4コンフィグレーションガイド」(以下、非特許文献1と称す)のチャプター8、図8−8に記載されている。
For example, when the
図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
図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
例えば、半導体デバイス100がハードウェアエミュレータであり、該ハードウェアエミュレータとして上記米国ザイリンクス社のVirtex−4FPGAを用いる場合、上記デバイス停止命令はJSHUTDOWNコマンドに相当し、上記デバイス開始命令はJSTARTコマンドに相当する。Virtex−4FPGAの場合、1フレームの大きさは1312ビットである。また、本実施形態の読出ユニット制御情報125として利用可能な、記憶素子の値を読み出すための制御手順を示す情報は、上記非特許文献1のチャプター8、テーブル8−5に記載されている。
For example, when the
なお、半導体デバイス100が備える読出ユニット101は、第1番号に対応する1つまたは複数の記憶素子を読み出すための機能、及び複数の第1番号に対応する各記憶素子の値を連続して読み出すための機能を備えていればよく、その読み出し方式を限定するものではない。
Note that the
図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
読出ユニット101は、デバイス制御ユニット110から第1番号命令及びフレーム数指定命令を受け取ると、第1番号命令に含まれる第1番号からフレーム数指定命令に含まれるフレーム数に対応する記憶素子の値を取得する。
When the
例えば、第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
次に、読出ユニット101は、第2のインクリメンタ1003に第1番号(X)を設定し、第2のセレクタ1001に記憶素子1000.X.1の値を出力させる。また、読出ユニット101は、第1のインクリメンタ1002の値を「2」に増加させ、第2のセレクタ1001に記憶素子1000.X.2の値を出力させる。
Next, the
読出ユニット101は、第1のインクリメンタ1002の値が「N」になるまで同様の処理を繰り返すことで、1フレームの記憶素子1000.X.1〜1000.X.Nの値を第2のセレクタ1001に出力させ、その結果を保持してデバイス制御ユニット110に出力する。
The
また、読出ユニット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
図1に示すように、デバイス制御ユニット110は、読出ユニット101を介して半導体デバイス100から記憶素子の値を読み出すための取得ユニット111と、全体制御ユニット120と取得ユニット111間で情報を送受信するための制御I/F113とを備えている。
As shown in FIG. 1, the
取得ユニット111は、読出ユニット101から出力された記憶素子の値をクロックサイクル毎に保持する入力メモリ115と、読出ユニット101に対してクロックサイクル毎に供給する、所要の記憶素子から値を読み出すための各種命令、第1番号、フレーム数等の情報を保持する出力メモリ116と、読出ユニット101から出力された記憶素子の値を入力メモリ115に保持させると共に、出力メモリ116から読出ユニット101に上記各種命令、第1番号、フレーム数等の情報を供給するメモリ制御ユニット117とを備えている。入力メモリ115及び出力メモリ116は読出ユニット101に直接接続されている。
The acquisition unit 111 reads the value from the
制御I/F113は、全体制御ユニット120と取得ユニット111間で情報やコマンドの送受信を可能にするためのインタフェース回路である。全体制御ユニット120を、例えばCPUを備えたコンピュータで実現する場合、制御I/F113は、該コンピュータと情報やコマンドを送受信するための、例えばPCI、PCIexpressバス、USB、IEEE1394、Ethernet(登録商標)等に対応したインタフェースである。
The control I /
図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
図7に示すクロック501は、読出ユニット101、入力メモリ115及び出力メモリ116に供給される信号であり、これらのユニットが同期して動作するために必要な信号である。クロック501は図6に示したクロック信号生成手段で生成される。
A
図7に示すアドレス信号502は、読出ユニット101から出力された記憶素子の値を格納する入力メモリ115のアドレス、読出ユニット101に供給する情報が格納された出力メモリ116のアドレスを示す信号である。アドレス信号502は図6に示したアドレス信号生成手段で生成される。図6及び図7は、入力メモリ115と出力メモリ116とに同一のアドレス信号を供給する例を示しているが、デバイス制御ユニット110や読出ユニット101の処理速度が低下しなければ個別のアドレス信号を供給してもよい。
An
イネーブル信号503は、全体制御ユニットからの指示にしたがって入力メモリ115に対する情報の格納動作及び出力メモリ116からの情報の読み出し動作を有効にするための信号である。イネーブル信号503は図6に示したイネーブル信号生成手段で生成される。図6及び図7は、入力メモリ115と出力メモリ116とに同一のイネーブル信号を供給する例を示しているが、デバイス制御ユニット110や読出ユニット101の処理速度が低下しなければ個別のイネーブル信号を供給してもよい。
The enable
図7に示す504は、出力メモリ116から読出ユニット101へ供給される情報の一例を示している。読出ユニット101は、この情報504に含まれる第1番号及びフレーム数で指定される記憶素子の値を入力メモリ115に出力する。
なお、図6では、入力メモリ115、出力メモリ116及び読出ユニット101に供給するクロック501をメモリ制御ユニット117内で生成する例を示しているが、クロック501はメモリ制御ユニット117の外部で生成して入力メモリ115、出力メモリ116及び読出ユニット101に供給してもよい。
6 shows an example in which the
また、図7では、クロック501の1サイクル毎に1つの情報504を読出ユニット101に対して入力または出力する動作例を示しているが、読出ユニット101にはクロック501の複数サイクル毎に1つの情報504を入力または出力してもよい。
FIG. 7 shows an operation example in which one piece of
また、図7では、クロック501の1サイクル毎にアドレス信号をインクリメントする例を示しているが、アドレス信号はクロック501の1サイクル毎にデクリメントしてもよい。
FIG. 7 shows an example in which the address signal is incremented every cycle of the
また、図7では、入力メモリ115、出力メモリ116及び読出ユニット101が正論理で動作する例を示しているが、入力メモリ115、出力メモリ116及び読出ユニット101は負論理で動作してもよい。
7 shows an example in which the
このように読出ユニット101に直接接続される出力メモリ116及び入力メモリ115を備え、出力メモリ116から読出ユニット101にクロック501の1サイクル毎に情報を入力し、読出ユニット101から入力メモリ115にクロック501の1サイクル毎に記憶素子の値を格納するため、例えば動作が比較的遅いFPGA等でデバイス制御ユニット110を実現しても、読出ユニット101から比較的高速に記憶素子の値を読み出すことができる。
As described above, the
なお、上述したように、本実施形態では、読出ユニット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
また、図1では本実施形態の半導体検証装置により1つの半導体デバイス100を検証する構成例を示しているが、複数の半導体ユニット100が備える各読出ユニット101に対応して複数の取得ユニット111を備えていれば、1台の半導体検証装置により複数の半導体デバイス100を検証することも可能である。
FIG. 1 shows a configuration example in which one
図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 /
中央制御部121は、全体制御ユニット120が備えるユーザI/F部131、制御情報計算部135、初期値計算部126、取出部122、第1番号書換部129及びフレーム数書換部133の動作を制御すると共に、デバイス制御ユニット110及びクロック制御ユニット140の動作を制御する。
The
なお、中央制御部121は、クロック制御ユニット140を制御することで、例えば半導体デバイス100から出力された記憶素子の値に基づいて半導体デバイス100へ供給しているクロックを停止させる機能(ブレーク設定機能)、及び半導体デバイス100にユーザが指定するサイクル数のクロックを供給させる機能を備えていてもよい。その場合、1クロックサイクル単位で記憶素子の値を観測することが可能であり、所要のイベント発生時点で半導体デバイス100の動作を停止できる。
The
また、中央制御部121は、半導体デバイス100がプログラムにしたがって処理を実行するCPUやDSP等を備えている場合、該CPUやDSPのプログラムカウンタを利用してクロック制御ユニット140によるクロックの供給/停止を制御してもよく、メモリの特定のアドレスに対する書き込みや読み出しを検出したときにクロック制御ユニット140によるクロックの供給/停止を制御してもよく、ブレークポイントへの到達回数を所定数になった時点でクロック制御ユニット140によるクロックの供給/停止を制御してもよい。
In addition, when the
以上、まとめると半導体デバイス100に対するクロックの停止条件としては、
(1)観測対象の信号が所定の値になったとき、
(2)観測対象の信号の値が所定の範囲内または範囲外になったとき、
(3)(1)または(2)の条件が指定された回数に到達したとき、
(4)半導体デバイス100がプログラムにしたがって動作するCPUやDSP等を備えている場合、該CPUやDSPによる処理で所定のブレーク条件が発生したとき、
(5)複数の信号に対して上記(1)〜(4)の条件のいずれかが発生したとき、等が考えられる。
In summary, the clock stop conditions for the
(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
(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
番号データベース124は、上述したように第1番号、第2番号及び記憶素子名を含む、半導体デバイス100内の各記憶素子を一意に識別するための情報(第1番号及び第2番号)が格納される。
As described above, the
ユーザI/F部131は、ユーザによる記憶素子の指定入力を受けつける機能、及び記憶素子から読み出した値をユーザに提示する機能を備えている。ユーザI/F部131を用いてユーザが指定した観測対象の記憶素子は中央制御部121の制御により観測信号リスト134として保存される。全体制御ユニット120をコンピュータで実現する場合、ユーザI/F部131は、例えばキーボードやマウス等の入力装置のインタフェース、並びにディスプレイやプリンタ等の出力装置のインタフェースに相当する。
The user I /
全体制御ユニット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
例えば、ユーザによって記憶素子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
図9に示すように、制御情報計算部135は、まず観測信号リスト134で指定された各記憶素子を同じ第1番号毎に分類し(ステップS900)、第1番号の昇順にソートして(ステップS901)、第1番号毎のエントリを作成する。各エントリには、1つの第1番号、フレーム数、1つまたは複数の第2番号、第1番号及び第2番号で識別される記憶素子の名前が含まれる。ステップS901までの処理では各エントリのフレーム数を「0」に設定しておく。エントリ毎のフレーム数は次のステップS902で決定する。
As shown in FIG. 9, the control
制御情報計算部135は、ステップS902にて、1つのフレームのみ読み出すか、または複数のフレームを連続して読み出すかを決定し、その決定結果に基づいて制御情報136にフレーム数を挿入する(ステップS902)。
In step S902, the control
フレーム数は、以下のように決定する。 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
例えば、第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
また、この例では、第1位置情報132は、出力メモリ116から読出ユニット101にシリアル信号として出力される情報のうち、24ビット〜56ビットに挿入され、フレーム数位置情報は68〜100ビットに挿入される。
In this example, the
第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
ところで、検証対象となる半導体デバイス100がJTAGに対応している場合、TDI(Test Data In)及びTMS(Test Mode Select)信号を用いて、半導体デバイス100の状態に応じたテスト用のデータを読出ユニット101に供給する必要があり、さらに半導体デバイス100の構成も考慮する必要があるため、第1位置情報132及びフレーム数位置情報133を求めるには複雑な計算が必要になる。
By the way, when the
そこで、本実施形態では、第1位置情報132及びフレーム数位置情報133を除く初期値情報127及び第2位置情報は予め計算して出力メモリ116に格納しておき、第1番号及びフレーム数のみ書き換える。このようにすることで、読出ユニット101から制御情報136に含まれるフレーム数単位で記憶素子の値を読み出す度に書き換える出力メモリ116の値を最小限に抑制できる。したがって、複数の記憶素子の値を読み出すのに必要な時間を短縮できる。
Therefore, in this embodiment, the
第1番号書換部129は、第1位置情報132を用いて、出力メモリ116で保持している第1番号の値を、中央制御部121から指示された値に書き換える。中央制御部121は、制御情報136に基づいて書き換える第1番号の値を第1番号書換部129に指定する。
The first number rewriting unit 129 uses the
第1番号書換部129は、中央制御部121から第1番号の書き換えが指示されると、第1位置情報131が示す出力メモリ116のビット(上記例の“XXXXXXXX”であり、初期値情報127の24ビット〜56ビット目)の値を、指定された第1番号の値に書き換える。
When rewriting of the first number is instructed from the
なお、出力メモリ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
一方、出力メモリ116をデュアルポートメモリで実現している場合、出力メモリ116から読出ユニット101への書き込み処理と、出力メモリ116における第1番号の書き換え処理とを並行して実施できる。そのため、出力メモリ116に対する第1番号の書き換え時間を見かけ上無くすことが可能であり、半導体デバイス100から記憶素子の値をより高速に読み出すことができる。
On the other hand, when the
フレーム数書換部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
取出部122は、前回の読み出し動作で指定したフレーム数と第2位置情報とを用いて、中央制御部121からの指示にしたがってフレーム毎の記憶素子の値を入力メモリ115から取得する。
The
取出部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
なお、入力メモリ115をデュアルポートメモリで実現する場合、入力メモリ115の入出力データのビット幅と制御I/F113で転送可能なデータのビット幅とを一致させておくことが好ましい。その場合、全体制御ユニット120とデバイス制御ユニット110間で最も効率良くデータを送受信することができる。例えば、制御I/F113が32ビットのPCIバスであれば、入力メモリ115に入出力データのビット幅が32ビットのメモリを用いれば、全体制御部120とデバイス制御ユニット110間で最も効率よくデータを送受信できる。
When the
次に、図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
次に、中央制御部121は、初期値情報127を制御I/F113を介して出力メモリ116に書き込む(ステップS1102)。
Next, the
ユーザがユーザI/F部131を用いて半導体デバイス100の観測対象の記憶素子を指定すると、中央制御部121は、指定された記憶素子から成る観測信号リスト134を作成し、保存する(ステップS1103)。
When the user uses the user I /
次に、中央制御部121は、観測信号リスト134及び番号データベース124に基づいて、制御情報計算部135に制御情報136を作成させる。このとき、制御情報136には、ユーザI/F機能131を用いてユーザが指定した、クロック制御ユニット140から半導体デバイス100に供給するクロックサイクル数等を含めてもよい。半導体デバイス100やクロック制御ユニット140がブレーク機能を有している場合、制御情報136にはユーザI/F機能131を用いてユーザが指定したブレーク条件等を含めてもよい。
Next, the
次に、中央制御部121は、クロック制御ユニット140を制御することで、半導体デバイス100にクロックを供給し、半導体デバイス100を動作させる(ステップS1104)。
Next, the
ユーザがユーザI/F131を用いて半導体デバイス100に対するクロックの供給停止を指示した場合、クロック制御ユニット140から予め指定されたサイクル数のクロックが供給された場合、または所定のブレーク条件が発生した場合、中央制御部121は、クロック制御ユニット140を制御して、半導体デバイス100へ供給しているクロックを停止させる(ステップS1105)。
When a user instructs the
中央制御部121は、クロック制御ユニット140により半導体デバイス100に対するクロックの供給を停止させると、制御情報136にしたがって半導体デバイス100の所要の記憶素子の値を読み出す(ステップS1106)。続いて、制御情報136の全てのエントリで指定された記憶素子の値の読み出しが終了したか否かを判定し(ステップS1107)、制御情報136の全てのエントリに記載された記憶素子の値の読み出しが終了していない場合は、ステップS1106の処理に戻ってステップS1106及びステップS1107を繰り返す。
When the
ここで、上記ステップ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
ステップS1106において、中央制御部121は、まず図10の第1処理で指定された第1番号(0x1)及びフレーム数(1)を取得する。
In step S1106, the
次に、中央制御部121は、第1番号書換部129を用いて出力メモリ116で保持している第1番号をステップS1106で取得した値に書き換え、フレーム数書換部133を用いて出力メモリ116で保持しているフレーム数をステップS1106で取得した値に書き換える。
Next, the
次に、中央制御部121は、メモリ制御ユニット117を用いて出力メモリ116で保持している情報を読出ユニット101へ供給し、読出ユニット101から出力された記憶素子の値を入力メモリ115に格納する。
Next, the
図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
以上の処理を制御情報136に含まれる残りの処理(図8に示す例では第2処理2及び第3処理)についても繰り返し、制御情報136の全てのエントリで指定された記憶素子の値の読み出しが終了すると、読み出した値をユーザI/F部131を用いて出力装置から出力し、ユーザに提示する。
The above processing is repeated for the remaining processing included in the control information 136 (
中央制御部121は、制御情報136の全てのエントリで指定された記憶素子の値の読み出しが終了すると、半導体デバイス100の動作を続行するか否かをユーザI/F部131を用いて出力装置から出力し、ユーザに提示する(ステップS1108)。
The
中央制御部121は、ユーザがユーザI/F部131を用いて動作停止を指示した場合は半導体デバイス100の動作を停止させ、ユーザが動作の続行を指示した場合はステップS1103の処理に戻ってステップS1103からステップS1108の処理を繰り返す。
The
本実施形態によれば、ユーザによって指定された、観測対象である記憶素子の値を読み出すのに必要な情報を出力メモリ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
また、各フレームの値を読み出す際に、総読み出し時間が最も短くなるように、制御情報計算部135にて複数のフレームの値を個別に読み出すか連続して読み出すかを計算し、該計算結果に基づくフレーム数を含む制御情報136を作成し、該制御情報にしたがって半導体デバイス100の記憶素子の値を読み出すため、複数の記憶素子の値の読み出しに必要な総読み出し時間を最小にできる。
Further, when reading the value of each frame, the control
例えば、半導体デバイス100がハードウェアエミュレータであり、該ハードウェアエミュレータとして上記米国ザイリンクス社のVirtex−4FPGAを用いる場合、3つのフレームの値を個別に読み出す場合は、FPGAのシャットダウン、FPGAからの記憶素子の値の読み出し、FPGAの開始処理を3回実行する必要がある。それに対して、3つのフレームの値を連続して読み出せば、1回の読み出し処理に要する時間は長くなるが、FPGAのシャットダウン及び開始処理は1回で済むため、3つのフレームの値の読み出しに必要な総読み出し時間を短縮できる。さらに、上記Virtex−4FPGAでは、読み出す先頭フレームが常にダミーフレーム(情報がないフレーム)であるため、例えば複数の記憶素子の値をフレーム毎に個別に読み出すと、ダミーフレームを3度読み出す必要がある。それに対して、3つのフレームの値を連続して読み出せばダミーフレームを1度読み出すだけで済むため、3つのフレームの値の読み出しに必要な総読み出し時間を短縮できる。
For example, when the
また、本実施形態の半導体検証装置では、デバイス制御ユニット110が備える出力メモリ116及び入力メモリ115を検証対象である半導体デバイス100の読出ユニット101に直接接続できるため、出力メモリ116から読出ユニット101に対して1クロックサイクル毎に記憶素子の値を読み出すためのコマンドや読み出す記憶素子を指定する情報を供給することが可能であり、読出ユニット101から入力メモリ115に対して1クロックサイクル毎に半導体デバイス100から読み出された値を格納できる。そのため、半導体デバイス100からの記憶素子の値の読み出し処理を簡易に制御できる。
In the semiconductor verification apparatus according to the present embodiment, the
したがって、本実施形態の半導体検証装置によれば、検証対象である半導体デバイスやハードウェアエミュレータが備える記憶素子の値を背景技術よりも高速に読み出すことができる。そのため、半導体デバイスやハードウェアエミュレータの検証作業をより効率よく実施できる。 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
Claims (6)
前記第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位置情報、前記出力メモリから前記読出ユニットに供給する情報における前記フレーム数の格納位置を示すフレーム数位置情報、前記読出ユニットから前記入力メモリに出力する情報における前記第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番号及び前記第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位置情報、前記出力メモリから前記読出ユニットに供給する情報における前記フレーム数の格納位置を示すフレーム数位置情報、前記読出ユニットから前記入力メモリに出力する情報における前記第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.
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)
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 |
-
2009
- 2009-12-18 JP JP2009287433A patent/JP5471406B2/en active Active
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 |