JP6446937B2 - Logic analysis terminal, logic analysis system, delay correction method, and program - Google Patents
Logic analysis terminal, logic analysis system, delay correction method, and program Download PDFInfo
- Publication number
- JP6446937B2 JP6446937B2 JP2014190382A JP2014190382A JP6446937B2 JP 6446937 B2 JP6446937 B2 JP 6446937B2 JP 2014190382 A JP2014190382 A JP 2014190382A JP 2014190382 A JP2014190382 A JP 2014190382A JP 6446937 B2 JP6446937 B2 JP 6446937B2
- Authority
- JP
- Japan
- Prior art keywords
- signal
- circuit
- delay
- clock
- monitor
- 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
Landscapes
- Tests Of Electronic Circuits (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Description
本発明はロジック解析端末及びロジック解析システムと遅延補正方法並びにプログラムに関する。 The present invention relates to a logic analysis terminal, a logic analysis system, a delay correction method, and a program.
ASIC(Application Specific IC; 特定目的向け集積回路)の開発では、個別ブロックをブレッドボード上で組みあげた試験や論理シミュレータ等を利用して設計検証が行われる。例えば特許文献1や特許文献2に開示されているように、FPGA(Field Programmable Gate Array)などのPLD(Programmable Logic Device; プログラム可能論理素子)が開発されている。FPGAは多数のSRAM(Static RAM(random Access memory))構造のLUT(Look-up Table)と、フリップフロップ(Flip-Flop: FF)と、それらを相互に接続するインターコネクト(Interconnect)と呼ばれるスイッチ・マトリクスやその他の要素を1チップに集積したLSI(Large Scale Integrated circuit)である。LUTの記憶内容とインターコネクトによる内部配線状態を制御することにより、その集積度の範囲内で、所望の論理動作を実現することができる。LUTやインターコネクトの設定は書き換え可能(programmable)である。すなわち、FPGAの論理動作は、何度でも書き換えることができる。FPGAは、最終製品に組み込まれることもあるが、ASICとして製造する予定の論理回路の試作等に利用されることも多い。
In the development of an ASIC (Application Specific IC), design verification is performed using a test in which individual blocks are assembled on a breadboard, a logic simulator, or the like. For example, as disclosed in
図1は、FPGAの一般的な構成を模式的に示す図である。FPGAのチップ1は、各々が不図示のLUTとFFを含む複数のロジックエレメント(Logic Element; LE)101が規則的にならべられ、LE101同士やI/Oピン103を相互に接続するインターコネクト(interconnect)102と呼ばれるスイッチ・マトリクスを備える。なお、乗算器やメモリブロックなどの専用マクロブロックを内蔵する品種もある。LE101はLUTとフリップフロップで構成されている。
FIG. 1 is a diagram schematically showing a general configuration of an FPGA. The
図2は、図1のLE101の一般的な概略構成を模式的に示す図である。LUT110は、複数のSRAM(Static RAM)セル111と、2入力の一方を選択するマルチプレクサ112を備えている。複数のSRAMセル111と、複数のマルチプレクサ112はアドレスデコーダを構成する。LUT110の入力IN[0]〜IN[2]は、3段にトーナメント方式に接続されたマルチプレクサ112の各段の選択信号とされ、3段目のマルチプレクサ112の出力がLUT110の出力になっている。
FIG. 2 is a diagram schematically showing a general schematic configuration of the
図3は、図2のLUT110の一般的な構造を模式的に示す図である。LUTは、LUTマスクと呼ばれる、SRAMセル111に記憶される内容により、任意の論理函数(真理値表)を実現することができる。SRAMセル111−1、111−2の出力を入力とするマルチプレクサ112−1、SRAMセル111−3、111−4の出力を入力とするマルチプレクサ112−2、マルチプレクサ112−1、112−2の出力を入力とするマルチプレクサ112−3を備え、入力Xはマルチプレクサ112−1、112−2の選択信号、入力Yはマルチプレクサ112−3の選択信号とされ、マルチプレクサ112−3の出力がLUT110の出力Zとされる。図4(A)のLUT110は、2つの入力X、Yを有する、2入力LUTでAND函数(Z=AND(X,Y))を実現するLUTマスクの内容を示している。図4(B)は、図4(A)のAND函数の真理値表である。なお、図4(A)は2入力LUTの例であるが、LUTの入力数は2、3等に限定されるものではないことは勿論である。1個のLUTでは実現できない複雑な組み合わせ論理回路(組み合わせ回路)は、LUTの組み合わせ論理出力COUTが隣接する別のLUTの入力にインターコネクトを経由して接続され、従属接続される構成とすることにより実現できる。また、LUTの入力が‘1’や‘0’に固定接続される構成とすることで、より少ない入力数のLUTを模擬することも可能である。
FIG. 3 is a diagram schematically showing a general structure of the
近時の半導体技術の微細化の進展、集積度の向上に伴い、論理回路の複雑度も増大する傾向にある。このため、汎用モジュールや論理シミュレータによる事前の設計検証だけでは、最初から誤りのない状態に仕上げることは困難、ないし不可能な状況が生じている。現在の論理回路設計では、初期段階では誤りが含まれることを前提とし、FPGAなどのPLD(Programmable Logic Device)素子に試作中の論理回路を書き込み(あるいは「設定」し)、実機試験をしながら誤りを取り除く作業(デバッグ作業)を重ねる方法が主流となっている。 With the recent progress of miniaturization of semiconductor technology and improvement of integration, the complexity of logic circuits tends to increase. For this reason, it has been difficult or impossible to achieve an error-free state from the beginning only by prior design verification using a general-purpose module or a logic simulator. In the current logic circuit design, assuming that errors are included in the initial stage, the logic circuit under trial production is written (or “set”) into a PLD (Programmable Logic Device) element such as an FPGA, and an actual machine test is performed. The method of repeating the work of removing errors (debugging work) has become the mainstream.
図5に示すように、観測対象回路の内部ノードをPLDのI/Oピンに引き出し、外部のロジックアナライザ50により表示させる手法がある。 As shown in FIG. 5, there is a method in which an internal node of an observation target circuit is drawn out to an I / O pin of a PLD and displayed by an external logic analyzer 50.
以下に関連技術の分析を与える。 The analysis of related technology is given below.
図5に示した手法はその簡便さから広く利用されているが、いくつかの問題点がある。 Although the method shown in FIG. 5 is widely used because of its simplicity, there are some problems.
第一の問題点は、ロジックアナライザ50は大型かつ高価であるため、可用性に難がある、ということである。 The first problem is that since the logic analyzer 50 is large and expensive, there is a difficulty in availability.
第二の問題点は、PLD(FPGA20)においてモニタ用のI/Oピンを、観測したい内部ノードの数と同じだけ使用することになる、ということである。このため、特にI/Oピン数の少ないPLDを使用する場合には、本来の要求機能を果たす目的と、内部信号の観測用の目的とでI/Oピンの取り合いが起こる。FBGA(Fine-line Ball Grid Array)パッケージの普及により2000本程度のピン数を有するFPGAも利用可能であるが、観測用信号の引き回しが基板のレイアウトに制限を与え、基板上の外部ロジックアナライザとの接続用のコネクタのサイズが大きくなる。 The second problem is that the PLD (FPGA 20) uses as many I / O pins for monitoring as the number of internal nodes to be observed. For this reason, especially when a PLD with a small number of I / O pins is used, I / O pin conflict occurs between the purpose of fulfilling the originally required function and the purpose of observing internal signals. With the widespread use of FBGA (Fine-line Ball Grid Array) packages, FPGAs with about 2000 pins can be used. However, the routing of observation signals limits the layout of the board. This increases the size of the connector for connection.
この問題を部分的に解決するために、例えば図5に示すように、FPGA20の内部にマルチプレクサ22を設置し、必要に応じて観測対象ノードを切り替えることが行われている。この手法を用いても、FPGA20においてモニタ用のI/Oピンの使用数は、同時に観測すべき内部ノードの数以下にはできない。
In order to partially solve this problem, for example, as shown in FIG. 5, a
第三の問題点は、観測対象信号の信号品質(例えば観測対象信号としての見易さ)と、FPGAの配置配線の容易性を両立させることが難しくなる、ということである。 The third problem is that it is difficult to achieve both the signal quality of the observation target signal (for example, the visibility as the observation target signal) and the ease of placement and wiring of the FPGA.
なお、特許文献3には、プログラマブル論理デバイスにロジック(論理)アナライザを埋め込むことにより、トリガ条件(ブレークポイント)の前および後の双方で信号を捕捉することを可能とした構成が開示されている。この構成では、ロジックアナライザ機能をFPGA自体に取り込み、FPGAのJTAG(Joint Test Action Group)ポートを介して外部のホストコンピュータから同機能を制御するようにしている。ホストコンピュータとFPGAの接続には「Byte Blaster」として公知の安価かつ小型な製品を利用しているため、外部ロジックアナライザを不要とすることができ、安価かつ小型であり、上記第一の問題点(可用性)の面では向上している。また、FPGAのI/Oピンをモニタピンとして確保する必要もないため、第二の問題点も改善しているといえる。さらに、観測対象信号は、クロックエッジに同期して取り込まれるため、ビット間スキューや非同期グリッチが観測対象信号の見易さを損なうこともなく、第三の問題点も一部解決しているといえる。
しかしながら、特許文献3の構成では、観測対象波形を内部に記憶するために、FPGAの配置配線資源を大量に使用する、という問題がある。FPGAの内部に確保できる記憶容量は限られている。このため、例えば長時間にわたり観測対象波形を観測・記憶することができない。
However, the configuration of
特許文献4には、FPGA内部の記憶容量に依拠する代わりに、観測対象信号をポッドボックス部に記憶し、ポッドボックスからホストコンピュータに転送する構成が開示されている。
特許文献4では、開発対象FPGAからポッドボックス部に観測対象信号を引き出すために、同期化用のフリップフロップ(「レジスタ」)を使用している。これが、高速クロックを使用する大規模FPGAの設計では、問題になる。同期化用のフリップフロップを使用することは、観測対象ノードから、該同期化用のフリップフロップに至る経路のタイミング制約を付す、ということであり、モニタ関連経路だけでなく、FPGA全体のタイミング要求を満たすことが困難となる可能性が高くなる。
In
特許文献5には、データ受信機をそれぞれが有するチャネルでデジタル信号を受信するシステムであって少なくとも2つのチャネルと該2つのチャネルの該データ受信機とを含む少なくとも1つの集まりで動作するシステムにおいて、該集まりについて制約されたサンプリングパラメータ値を選択するための方法が開示されている。特許文献5によれば、モニタデータの安定点をモニタクロックで確定することが、ビット毎には可能であっても、複数ビットが束ねられてバスになったモニタデータで、ビット間スキューが大きい場合には、各ビットの安定点がどのクロックサイクルに属するかを誤る可能性がある。例えば図8では、並列4ビットデータDATA[3]〜[0]の黒丸●を付けた変化点は、モニタクロックの立ち上がりエッジのうち数字「1」を付した白丸○の立ち上がりに属するが、特許文献5の構成では、DATA[2]については、数字「0」を付した立ち上がりに属し、DATA[0]については、数字「2」を付した立ち上がりに属すると判断される可能性がある。
また、特許文献5では、モニタ回路に、タイミング緩和条件を付して配置配線を行うときに、FPGA内部の遅延は、モニタ面(例えばモニタ対象信号の一揃え(集まり)のバス)ごとに大きくばらつく。このため、仮に試験信号にモニタ面を切り替えてデータの取り込み位相を調整しても、その後、観測対象ノードを含むモニタ面に切り替えた時点で、FPGA内部での遅延量がずれると(特に1サイクル以上変化すると)、正しいデータ取り込み位相からずれる、という問題がある。
Further, in
したがって、本発明は、上記問題点に鑑みてなされたもので、その目的は、観測対象信号の観測を容易化するロジック解析システムを提供することにある。 Therefore, the present invention has been made in view of the above problems, and an object thereof is to provide a logic analysis system that facilitates observation of an observation target signal.
本発明の1つの側面によれば、半導体装置に実装され、前記半導体装置の内部状態をモニタするモニタ回路であって、前記半導体装置内部の複数の観測対象ノードの複数の観測対象信号を入力し第1選択信号に応じて観測対象信号を選択して出力する第1マルチプレクサと、複数のクロック信号を入力し第2選択信号に応じてモニタ用のクロック信号を選択して出力する第2マルチプレクサと、を少なくとも含み、前記第1及び第2マルチプレクサの少なくとも1つは、複数の信号入力のうち少なくとも1つの信号入力の極性変化に対して出力へのグリッチの伝搬を抑止する構成とされたマルチプレクサを含むモニタ回路と、
前記モニタ回路からの信号を受けるロジック解析端末であって、
第2クロック源と、
前記モニタ回路からシリアルに送信された信号を受けパラレル信号に変換するシリアル受信回路と、
前記シリアル受信回路からのパラレル信号を、前記シリアル受信回路からのパラレルクロック信号で書き込み、前記第2のクロック源からのクロック信号で読み出す第2バッファ部と、
前記モニタ回路からパラレルに送信された信号の遅延の補正を行う第2遅延補正回路と、
前記モニタ回路の前記第2マルチプレクサで選択されたクロック信号又は前記第2クロック源からのクロック信号を受け、第4選択信号に基づき1方を選択する第4マルチプレクサと、
前記モニタ回路から受信した観測対象信号を前記第4マルチプレクサで選択されたクロック信号で書き込み、前記第2のクロック源からのクロック信号で読み出す第3バッファ部と、
前記第2及び第3バッファ部から読み出された信号を記憶する記憶部と、を含むロジック解析端末を備えたロジック解析システムが提供される。
According to one aspect of the present invention, a monitor circuit is mounted on a semiconductor device and monitors an internal state of the semiconductor device, and inputs a plurality of observation target signals of a plurality of observation target nodes inside the semiconductor device. A first multiplexer that selects and outputs an observation target signal according to a first selection signal; a second multiplexer that receives a plurality of clock signals and selects and outputs a monitoring clock signal according to a second selection signal; , And at least one of the first and second multiplexers includes a multiplexer configured to suppress glitch propagation to the output with respect to a change in polarity of at least one of the plurality of signal inputs. Including a monitor circuit ;
A logic analysis terminal that receives a signal from the monitor circuit,
A second clock source;
A serial receiving circuit that receives a signal transmitted serially from the monitor circuit and converts it into a parallel signal;
A second buffer unit for writing a parallel signal from the serial receiving circuit with a parallel clock signal from the serial receiving circuit and reading with a clock signal from the second clock source;
A second delay correction circuit for correcting a delay of a signal transmitted in parallel from the monitor circuit;
A fourth multiplexer that receives a clock signal selected by the second multiplexer of the monitor circuit or a clock signal from the second clock source and selects one based on a fourth selection signal;
A third buffer unit for writing the observation target signal received from the monitor circuit with the clock signal selected by the fourth multiplexer, and reading with the clock signal from the second clock source;
There is provided a logic analysis system including a logic analysis terminal including a storage unit for storing signals read from the second and third buffer units .
本発明の他の側面によれば、半導体装置内部の観測対象ノードの観測対象信号と、試験信号発生回路からの試験信号とを切り替えて送信する送信端と、前記送信端からの信号の受信端との間に遅延が存在する回路における遅延の補正を、コンピュータを用いて行う方法であって、
前記試験信号発生回路の駆動クロック源から、前記送信端に至る経路の配置配線結果のタイミング解析より第1の遅延解析結果:Aを取得し、
前記観測対象ノードの駆動クロック源から送信端に至る経路の配置配線結果のタイミング解析より第2の遅延解析結果:Bを取得し、
前記試験信号が送信されているときに前記受信端において前記試験信号が正常に受信できた時の遅延補正値:Cを取得し、A−B+Cにより、前記観測対象信号を、正常に受信するのに必要な遅延補正値を求める遅延補正方法が提供される。
According to another aspect of the present invention, a transmission end that switches and transmits an observation target signal of an observation target node inside a semiconductor device and a test signal from a test signal generation circuit, and a reception end of a signal from the transmission end Compensation of delay in a circuit in which there is a delay between and using a computer,
A first delay analysis result: A is obtained from a timing analysis of a placement and routing result of a path from the drive clock source of the test signal generation circuit to the transmission end,
The second delay analysis result: B is acquired from the timing analysis of the placement and routing result of the path from the drive clock source of the observation target node to the transmission end,
When the test signal is transmitted, a delay correction value C is obtained when the test signal is normally received at the receiving end, and the observation target signal is normally received by A−B + C. A delay correction method for obtaining a delay correction value necessary for the above is provided.
本発明の他の側面によれば、半導体装置内部の観測対象ノードの観測対象信号と、試験信号発生回路からの試験信号とを切り替えて送信する送信端と、前記送信端からの信号の受信端と、の間に未知の遅延が存在する回路における遅延の補正をコンピュータに実行させるプログラムであって、
前記試験信号発生回路の駆動クロック源から、前記送信端に至る経路の配置配線結果のタイミング解析より第1の遅延解析結果:Aを取得する処理と、
前記観測対象ノードの駆動クロック源から送信端に至る経路の配置配線結果のタイミング解析より第2の遅延解析結果:Bを取得する処理と、
前記試験信号が送信されているときに前記受信端において前記試験信号が正常に受信できた時の遅延補正値:Cを取得し、A−B+Cにより、前記観測対象信号を、正常に受信するのに必要な遅延補正値を求める処理と、を含む、プログラムが提供される。本発明によれば、該プログラムを記録したコンピュータ読み出し可能な記録媒体(例えば半導体メモリや磁気/光ディスク等媒体等)が提供される。
According to another aspect of the present invention, a transmission end that switches and transmits an observation target signal of an observation target node inside a semiconductor device and a test signal from a test signal generation circuit, and a reception end of a signal from the transmission end A program for causing a computer to perform delay correction in a circuit having an unknown delay between
A process of obtaining a first delay analysis result: A from a timing analysis of a placement and routing result of a path from the drive clock source of the test signal generation circuit to the transmission end;
A process of acquiring a second delay analysis result: B from a timing analysis of a placement and routing result of a path from the drive clock source of the observation target node to the transmission end;
When the test signal is transmitted, a delay correction value C is obtained when the test signal is normally received at the receiving end, and the observation target signal is normally received by A−B + C. And a process for obtaining a delay correction value required for the program. According to the present invention, a computer-readable recording medium (for example, a medium such as a semiconductor memory or a magnetic / optical disk) on which the program is recorded is provided.
本発明によれば、観測対象信号の観測を容易化することができる。 According to the present invention, observation of a signal to be observed can be facilitated.
以下では、はじめに、発明の前提として、本発明者による分析に基づき、前述した第三の問題点について説明し、つづいて発明の概要、実施形態について説明する。 In the following, first, as a premise of the invention, the third problem described above will be described based on the analysis by the present inventor, and then the outline and embodiments of the invention will be described.
観測対象信号の動作クロックスピードの高速化、FPGAの集積度の向上にしたがって、観測対象信号の信号品質(観測対象信号としての見易さ)とFPGAの配置配線の容易性を両立することが難しくなる。先ず、FPGAの代表的な開発工程について説明する。該開発工程は、例えば以下の(1)から(6)の工程の繰り返しとなる。 As the operation clock speed of the observation target signal increases and the integration degree of the FPGA increases, it is difficult to achieve both the signal quality of the observation target signal (ease of being viewed as the observation target signal) and the ease of placement and wiring of the FPGA. Become. First, a typical FPGA development process will be described. The development process is, for example, a repetition of the following processes (1) to (6).
(1)VHDL(VHSIC(Very High-Speed Integrated Circuit) Hard-ware Description Language)やVerilogなどのハードウェア記述言語(HDL)により希望する論理動作を記述したソースコードを作成する。 (1) VHDL (VHSIC (Very High-Speed Integrated Circuit)) A source code describing a desired logic operation is created by a hardware description language (HDL) such as Verilog.
(2)別途、論理回路のタイミング制約やその他の回路生成条件を定義する。 (2) Separately define timing constraints for logic circuits and other circuit generation conditions.
(3)上記ソースコードを論理合成ソフトウェアにより、ハードウェア記述言語よりも低位のゲートレベルのネットリストに変換する。 (3) The source code is converted into a net list of a gate level lower than that of the hardware description language by logic synthesis software.
(4)上記論理合成結果を配置配線ソフトウェアにより、合成された論理回路をFPGAチップ上に散在するLUTやインターコネクトに割り当て、FPGAチップの設定内容(コンフィギュレーションデータ)に変換する。 (4) The logic synthesis result is assigned to LUTs and interconnects scattered on the FPGA chip by the placement and routing software and converted into setting contents (configuration data) of the FPGA chip.
(5)配置配線結果をタイミング解析ソフトウェアにより検証し、(2)で与えたタイミング制約を満たしているかどうかを確認する。満たしていない場合には、(4)の工程を繰り返す。この際、前回とは異なる初期の配置状態から開始することにより、前回とは異なる配置配線結果(ひいては異なるタイミング解析結果)が得られる。 (5) The placement and routing result is verified by the timing analysis software, and it is confirmed whether or not the timing constraint given in (2) is satisfied. If not, the step (4) is repeated. At this time, by starting from an initial placement state different from the previous time, a placement and routing result (and thus a different timing analysis result) different from the previous time is obtained.
(6)タイミング解析の結果、配置配線結果がタイミング制約を満たしていることが確認できたならば、実機試験を行い、論理回路に誤りがないかを確認する。誤りがあれば、(1)の論理動作の設計からやり直すことになる。 (6) As a result of timing analysis, if it can be confirmed that the placement and routing result satisfies the timing constraint, an actual machine test is performed to check whether there is an error in the logic circuit. If there is an error, the logic operation design of (1) is repeated.
なお、上記(2)で与えたタイミング制約やその他の回路生成条件は、上記(5)のタイミング解析だけでなく、上記(3)の論理合成や上記(4)の配置配線の工程でのソフトウェアの挙動に影響を与える。 Note that the timing constraints and other circuit generation conditions given in (2) above are not only the timing analysis in (5) above, but also software in the logic synthesis in (3) above and the placement and routing steps in (4) above. Affects the behavior of
ここで、タイミング制約には、大別して、
(A)論理回路が満たすべき最低動作周波数あるいは許容可能な最大遅延といった論理回路の要求諸元を定める系統(狭義の「タイミング制約」)のものと、
(B)論理回路のうち最低動作周波数などの定めがなく、タイミング解析を行わなくても良い部分(多少、動作速度が遅くても、構わない、つながってさえいれば、正しく動作すると期待される回路)を、緩和条件として定める系統(「緩和系統のタイミング制約」)のものがある。
Here, timing constraints are roughly divided into
(A) a system (a “timing constraint” in a narrow sense) that defines the required specifications of the logic circuit, such as the minimum operating frequency to be satisfied by the logic circuit or the maximum allowable delay;
(B) A portion of the logic circuit that does not have a minimum operating frequency and does not require timing analysis (somewhat slow in operation speed is acceptable, as long as it is connected, it is expected to operate correctly) There is a system ("relaxation system timing constraint") that defines a circuit) as a relaxation condition.
(A)のタイミング制約は、動作周波数や最大許容遅延などのパラメータとして与えることになる。 The timing constraint (A) is given as parameters such as the operating frequency and the maximum allowable delay.
(B)は、フォルスパス(false path:タイミング解析中に無視できるパス)指定やマルチサイクル(multi cycle)指定として、パスごとに規定される。例えばマルチサイクル制約が指定された場合、セットアップまたはホールド検証の厳しさが、指定クロック・サイクル数だけ緩和される。 (B) is defined for each path as a false path (false path: path that can be ignored during timing analysis) designation or multicycle designation. For example, when multi-cycle constraints are specified, the severity of setup or hold verification is relaxed by the specified number of clock cycles.
(A)、(B)いずれのタイミング制約も、例えばシノプシスインコーポレーテッド社のSDC(Synopsis Design Constraints) 形式など公知の記述言語により規定することができる。 Both the timing constraints (A) and (B) can be defined by a well-known description language such as SDC (Synopsis Design Constraints) format of Synopsys Incorporated.
原則として、すべての回路は、(A)か(B)のいずれかの系統の制約を付加されることになる。以後、単純にタイミング制約という場合、(A)のタイミング制約を指すものとする。 In principle, all of the circuits are subject to restrictions on either system (A) or (B). Hereinafter, when simply referred to as a timing constraint, it refers to the timing constraint of (A).
タイミング制約が与えられた回路は、与えられた条件を満たすべく、上記(3)の論理合成の工程で高速な動作を実現しやすい構成に合成される。また、上記(4)の配置配線の工程でも、タイミング制約を付された回路は、要求されたタイミングを満足すべく、その他の回路よりも優先的な扱いを受ける。 In order to satisfy the given condition, the circuit given the timing constraint is synthesized in a configuration that facilitates high-speed operation in the logic synthesis step (3). Also, in the placement and routing step (4), the circuit to which the timing constraint is applied receives preferential treatment over the other circuits in order to satisfy the requested timing.
逆に、緩和系統のタイミング制約を付された回路は、上記(3)の論理合成の工程では、タイミング性能を考慮しなくても良いため、速度以外の点で最適化され、回路面積(例えばLE使用数)や消費電力が低くなる構成に合成されることが多い。 On the contrary, the circuit with the timing constraint of the relaxed system does not need to consider the timing performance in the logic synthesis process of (3) above, and is optimized in terms other than the speed, and the circuit area (for example, The number of LEs used) and power consumption are often reduced.
また、緩和系統のタイミング制約を付された回路は、上記(4)の配置配線の工程では、よりタイミング要求の厳しい回路に優先度を譲ることになるので、多くの場合、タイミング性能は、タイミング制約付きの回路よりも、大幅に悪化する結果となる。もともと、緩和系のタイミング制約は、タイミング要求のない、あるいは、緩い回路に適用することが前提である。このため、仮に、タイミング性能が悪化しても、本来は、問題ないのであるが、モニタ回路に適用する場合には、事情が異なる。より詳しくは、後述する。 In addition, in the placement and routing process of (4) above, the circuit to which the timing constraints of the relaxed system are given priority is given to the circuit with more severe timing requirements. This results in much worse than a constrained circuit. Originally, the timing constraints of the relaxation system are premised on being applied to a circuit having no timing requirement or a loose circuit. For this reason, even if the timing performance deteriorates, there is essentially no problem, but the situation is different when applied to a monitor circuit. More details will be described later.
なお、FPGAに集積されたLUTやインターコネクトなどの資源の使用率が高い場合や、クロック周波数が高い場合には、上記(4)〜(5)の工程を、1回だけ実行してもタイミング制約を満足する配置配線結果とならない。このため、初期配置を変えながら、上記(4)〜(5)の工程を複数回繰り返す必要がしばしば生じる。初期配置をわずかに変えるだけで、最終的なタイミング解析結果が異なってくる。このため、例えば、初期配置をわずかに変えながら配置配線の試行を多数回実行することにより、タイミング制約を満たす結果が現れる。ここで、タイミング要求を満たすことが難しい事例として、以下に一具体例を挙げる。 Note that if the usage rate of resources such as LUTs and interconnects integrated in the FPGA is high or the clock frequency is high, the above steps (4) to (5) may be executed once even if the process is executed only once. Placement and routing results that satisfy For this reason, it is often necessary to repeat the steps (4) to (5) a plurality of times while changing the initial arrangement. Even if the initial arrangement is changed slightly, the final timing analysis results will be different. For this reason, for example, the result of satisfying the timing constraint appears by performing many placement and routing trials while slightly changing the initial placement. Here, as a case where it is difficult to satisfy the timing requirement, a specific example is given below.
使用FPGA品種の集積ロジックエレメント相当数:700,000、
FPGAに実装する論理回路の動作クロック周波数:250MHz(Mega Herz)、
FPGAに実装する論理回路のロジックエレメント使用比率:90%。
The equivalent number of integrated logic elements of the FPGA type used: 700,000,
Operation clock frequency of logic circuit mounted on FPGA: 250 MHz (Mega Herz),
Logic element usage ratio of the logic circuit mounted on the FPGA: 90%.
動作クロック周波数250MHzの実現は、ロジックエレメントLEの使用比率が低いうちは、配置配線の自由度が高いために、比較的、容易であることが多い。しかし、例えばロジックエレメントLEの全使用可能数の90%を使用するような使用率が高い状況では、配置配線の自由度が大幅に低下する。このため、一般に、数回程度の配置配線の試行によりタイミングを満足することはほとんどあり得ない。すなわち、タイミング要求を満足するために要する配置配線の試行回数が増加する。例えば配置配線の試行を100回程度繰り返さなければタイミング制約を満足する配置配線結果にならないことがある。これには、高性能なコンピュータのマシンタイムを、例えば数日間にわたり必要とする計算量となることもある。このため、開発コストに占める大きな要因となり得る。 The realization of the operation clock frequency of 250 MHz is often relatively easy because the degree of freedom of placement and routing is high while the usage ratio of the logic element LE is low. However, for example, in a situation where the usage rate is high such that 90% of the total usable number of logic elements LE is used, the degree of freedom of placement and routing is greatly reduced. For this reason, in general, it is almost impossible to satisfy the timing by several trials of placement and routing. That is, the number of placement and routing trials required to satisfy the timing requirement increases. For example, if the placement and routing trial is not repeated about 100 times, the placement and routing result may not satisfy the timing constraint. This may result in a computation amount that requires the machine time of a high-performance computer, for example, over several days. This can be a major factor in development costs.
モニタ信号にもタイミング制約を付すことは、配置配線の難易度を、さらに上昇させることになる。これは、以下の理由による。 Applying timing constraints to the monitor signal further increases the difficulty of placement and routing. This is due to the following reason.
(a)観測対象回路とモニタデータピン(図5参照)がFPGAチップ上で離れていることが多く、タイミング制約を与えても、該制約を満足することが事実上不可能なことが多い。 (A) The observation target circuit and the monitor data pin (see FIG. 5) are often separated on the FPGA chip, and even when a timing constraint is given, it is often impossible to satisfy the constraint.
(b)観測対象回路が多数あり、モニタデータピンの数を抑えるために、モニタする信号を選択するマルチプレクサ(例えば図5の22)により、多数のモニタ信号を入力して所定数のモニタ信号を選択する場合、マルチプレクサ(例えば図5の22)による遅延が大きくなり、タイミング制約を与えても、実際にその条件を満足することは不可能なことが多い。 (B) In order to suppress the number of monitor data pins because there are many circuits to be observed, a large number of monitor signals are input by a multiplexer (for example, 22 in FIG. 5) that selects a signal to be monitored, and a predetermined number of monitor signals are When selecting, the delay due to the multiplexer (for example, 22 in FIG. 5) becomes large, and it is often impossible to actually satisfy the condition even if timing constraints are given.
(c)上記(4)の工程において、モニタ回路のタイミング制約条件を満たすべく、モニタ回路が優先的に配置配線されるために、モニタ回路の観測対象となっている回路が、モニタ回路に無理に引き寄せられたり、非観測対象の回路が、モニタ回路に対して、劣後的扱いを受ける場合があり、その配置配線に影響する。 (C) In the process (4), since the monitor circuit is preferentially placed and routed so as to satisfy the timing constraint condition of the monitor circuit, the circuit to be observed by the monitor circuit cannot be applied to the monitor circuit. The circuit to be attracted to or not to be observed may be subject to subordinate treatment with respect to the monitor circuit, which affects the placement and routing.
(d)場合によっては、観測対象回路そのものがモニタデータピンに近い場所に配置されたことにより、本来の要求機能を実現するために必要な回路との配置距離が離れてしまい、タイミング制約を満たせなくなる、こともある。 (D) In some cases, the observation target circuit itself is arranged near the monitor data pin, so that the arrangement distance from the circuit necessary for realizing the original required function is increased, and the timing constraint can be satisfied. It may disappear.
ここで、モニタ回路に、タイミング緩和条件を付加しない場合には、モニタ回路自体のタイミングを満足することができないだけではなく、チップ本来の要求機能を実現するために必要な回路のタイミング制約の満足も困難となることも起こり得る。 Here, if the timing relaxation condition is not added to the monitor circuit, not only the timing of the monitor circuit itself cannot be satisfied, but also the timing constraints of the circuit necessary for realizing the original required function of the chip are satisfied. Can be difficult.
図6は、無理なタイミング制約によりタイミング要求を満たせなくなる配置配線例を説明する図である。図6(A)において、信号配線のうち太線(実線)は、タイミング制約のある配線を表している。図6(A)では、一般的な回路記号を用いているが、図面上でこれらの回路記号の相対距離が、FPGAチップ上で配置配線される資源の相対距離を表現しているものとする。 FIG. 6 is a diagram for explaining an example of placement and routing in which timing requirements cannot be satisfied due to unreasonable timing constraints. In FIG. 6A, a thick line (solid line) among the signal wirings represents a wiring with timing constraints. In FIG. 6A, general circuit symbols are used, but in the drawing, the relative distances of these circuit symbols represent the relative distances of resources arranged and wired on the FPGA chip. .
図6(A)では、フリップフロップ120−1(FF1)の出力端子(Q)からの出力信号(FF1出力)とフリップフロップ120−2(FF2)の出力端子(Q)からの出力信号(FF2出力)の論理積をとるANDゲート123の出力ノードが観測対象ノードとなっている。このように論理回路の出力をロジックアナライザ(不図示)のトリガー条件(モニタ波形を取得する契機)とする場合が少なくない。ここで、フリップフロップ120―1、フリップフロップ120−2の出力からモニタピン(モニタデータピン)125の出力まですべてをタイミング制約の対象としている。
In FIG. 6A, the output signal (FF1 output) from the output terminal (Q) of the flip-flop 120-1 (FF1) and the output signal (FF2) from the output terminal (Q) of the flip-flop 120-2 (FF2). The output node of the AND
フリップフロップ120―1と120−2は、観測対象ノードとのタイミング制約が要求されている。このため、いずれも、タイミング制約を満たすために、ANDゲート123に近いところに配置されている。一方で、フリップフロップ120―1と120−2は、本来の要求機能を実現するために、それぞれの出力(FF1出力、FF2出力)は、次段のフリップフロップ120―3(FF3)とフリップフロップ120―4(FF4)にも接続される必要があり、それぞれの経路にもタイミング制約が付されている。フリップフロップ120―3と120―4は、さらにその先の回路との間でタイミング要求を満たす必要があり、該その先の回路に近い場所に配置されている。フリップフロップ120―1と120−2が観測対象ノードに「引きずられた」ために、フリップフロップ120―1と120−2と、フリップフロップ120―3と120―4とが離れてしまい、無理のある配置となっている。
The flip-flops 120-1 and 120-2 are required to have timing constraints with the observation target node. For this reason, both are arranged near the AND
図6(B)は、図6(A)の回路の動作例を示すタイミング図である。フリップフロップ120−2の出力である「FF2出力」からフリップフロップ120−4の入力である「FF4入力」までの遅延が1クロックサイクルを超え、タイミング違反を発生させている。 FIG. 6B is a timing chart illustrating an operation example of the circuit in FIG. The delay from the “FF2 output” that is the output of the flip-flop 120-2 to the “FF4 input” that is the input of the flip-flop 120-4 exceeds one clock cycle, causing a timing violation.
以上の理由で、モニタ回路には、緩和系の制約条件を付加せざるを得ない。このため、モニタ信号に関する論理回路(図6(A)のANDゲート123)は、緩和条件(「成り行き」の、タイミング制約がある回路にくらべ、劣後的条件での)での配置配線結果となり、観測可能なモニタ波形の品質が劣化することになる。
For the reasons described above, a relaxation system constraint condition must be added to the monitor circuit. For this reason, the logic circuit related to the monitor signal (the AND
以下、図7を参照して説明する。図7(A)は、モニタ回路にタイミング緩和条件を付して配置配線した例を説明する図である。図7(A)には、フリップフロップ120―1と120−2からANDゲート123までの経路に、タイミング緩和条件を付して、配置配線を行った例が模式的に示されている。なお、図7(A)において、信号配線の太実線は、タイミング制約のある配線を表している。フリップフロップ120―1と120−2から本来の要求機能を実現するために必要な次段のフリップフロップ120―3と120−4への配線は無理なく行われている。ANDゲート123への配線は、タイミング制約が緩和された条件で配置配線されることにより、フリップフロップ120−2の出力(FF2出力)からANDゲート123の入力(AND入力2)への配線距離は、図6(A)の当該配線距離と比較して長く伸びている。
Hereinafter, a description will be given with reference to FIG. FIG. 7A is a diagram illustrating an example in which the monitor circuit is arranged and wired with a timing relaxation condition. FIG. 7A schematically shows an example in which the placement and routing are performed by adding timing relaxation conditions to the paths from the flip-flops 120-1 and 120-2 to the AND
この結果、図7(B)に示すように、フリップフロップ120−2の出力(FF2出力)は、ANDゲート123の入力時点(AND2入力)で、AND入力1との遅延が1クロックサイクル以上ずれている。この結果、本来は、‘1’を出力すべきタイミングで、ANDゲート123の出力が‘0’のままである。
As a result, as shown in FIG. 7B, the output of the flip-flop 120-2 (FF2 output) is shifted from the AND
以上は、観測対象信号が1ビットの場合であるが、観測対象信号が複数の信号を束ねたバスとなっている場合には、ビット間のタイミングスキュー(以下「スキュー」という)が大きな問題になる。ビット間のスキューの問題について、再び、図5を参照して説明する。図5(B)は、図5(A)における配置配線遅延を示している。 The above is a case where the observation target signal is 1 bit. However, when the observation target signal is a bus in which a plurality of signals are bundled, timing skew between bits (hereinafter referred to as “skew”) is a serious problem. Become. The problem of skew between bits will be described again with reference to FIG. FIG. 5B shows the placement and routing delay in FIG.
モニタデータ経路にかかわる配置配線遅延は、
・クロック源11から、出力が観測対象ノードに接続するフリップフロップ21までの遅延Dclk_tgt、
・観測対象フリップフロップ21の出力、又は、場合により、その先で組み合わせ論理を通過した後の観測対象ノードからモニタデータマルチプレクサ22までの遅延Dtgt_dmux、
・モニタデータマルチプレクサ22からモニタデータピン23までの遅延Ddmux_mpin、
となっている。
Place and route delays related to the monitor data path
A delay Dclk_tgt from the clock source 11 to the flip-flop 21 whose output is connected to the observation target node,
The output of the observation target flip-flop 21, or in some cases, the delay Dtgt_dmux from the observation target node to the
Delay Ddmux_mpin from the
It has become.
なお、特に添え字を付さないが、上記の各遅延は、観測対象回路からモニタデータマルチプレクサ22までは、モニタデータピン23の数とモニタデータマルチプレクサ22で選択される信号の積だけ個別に存在しており、モニタデータマルチプレクサ22から先の遅延に関してモニタデータピン23の数だけ、それぞれ個別に存在することになる。
Although no particular subscript is added, each delay described above exists individually from the observation target circuit to the
一方、ロジックアナライザ50でモニタデータマルチプレクサ22のサンプリングポイントを確定させる目的で使用するモニタクロック信号にかかわる配置配線遅延は、
・クロック源11からモニタクロックピン24に至る遅延Dclk_cpin
となっている。
On the other hand, the placement and routing delay related to the monitor clock signal used for the purpose of determining the sampling point of the
-Delay Dclk_cpin from the clock source 11 to the
It has become.
なお、モニタクロックについても途中に、モニタクロックマルチプレクサ(例えば後の説明で参照される図13の207)が挿入されることがある。この場合、モニタクロックマルチプレクサで選択対象となる複数のクロック源からモニタクロックマルチプレクサ(図13の207)までの遅延は個別に存在することになる。 Note that a monitor clock multiplexer (for example, 207 in FIG. 13 referred to later) may be inserted in the middle of the monitor clock. In this case, there are individual delays from a plurality of clock sources to be selected by the monitor clock multiplexer to the monitor clock multiplexer (207 in FIG. 13).
図8は、ビット間スキューが観測上の問題になる例を説明する図である。図8に示す波形は、並列4ビットの信号DATA[3:0]を外部にバス信号として引き出した例である。図8では、ビット間のスキューが1クロック周期以上になっている。このような信号を4ビットまとめてDATA[3:0]として表示すると、図8に示すように、同じクロックエッジに属する信号の静定箇所がなくなる。この結果、モニタクロックがいかなる位相であったとしても、並列4ビットDATA[3:0]として同期して取り込むことはできない。このため、観測信号としては使えない。このような場合には、モニタクロックにより、バス信号DATA[3:0]を同期化して観測することはあきらめて、例えばロジックアナライザの自走クロックで非同期に取り込みを行うことになる。この場合、バス信号DATA[3:0]に残るスキューは、そのままロジックアナライザに表示される。このため、デバッグを実行する担当者は、DATA[3:0]のビット毎の変化点がどのクロックエッジに属する変化点であるかを、推測しなくてはならない。FPGAの動作速度が低い場合には、ビット間のスキューが1クロック周期以下になることが多い。FPGA内部の動作速度が向上する中で、ビット間のスキューは問題となっている。 FIG. 8 is a diagram illustrating an example in which the inter-bit skew becomes an observation problem. The waveform shown in FIG. 8 is an example in which a parallel 4-bit signal DATA [3: 0] is externally extracted as a bus signal. In FIG. 8, the skew between bits is one clock cycle or more. When such signals are collectively displayed as DATA [3: 0] as 4 bits, as shown in FIG. 8, there is no place where the signals belonging to the same clock edge exist. As a result, no matter what the phase of the monitor clock is, it cannot be taken in synchronously as parallel 4-bit DATA [3: 0]. For this reason, it cannot be used as an observation signal. In such a case, the observation of the bus signal DATA [3: 0] in synchronization with the monitor clock is abandoned, and the capture is performed asynchronously with the free-running clock of the logic analyzer, for example. In this case, the skew remaining in the bus signal DATA [3: 0] is displayed as it is on the logic analyzer. For this reason, the person in charge of debugging must guess which clock edge the change point for each bit of DATA [3: 0] belongs to. When the operation speed of the FPGA is low, the skew between bits often becomes 1 clock cycle or less. As the operation speed inside the FPGA improves, skew between bits becomes a problem.
また、組み合わせ論理回路では、グリッチ(glitch)と呼ばれる細いひげ状の波形が発生することがある。モニタ回路に用いられるマルチプレクサも、論理回路の一種であり、構成次第ではグリッチが発生する可能性がある。グリッチの発生により被観測信号の信号品質が低下する。この問題について説明する。 In a combinational logic circuit, a thin whisker-like waveform called a glitch may be generated. The multiplexer used in the monitor circuit is also a kind of logic circuit, and a glitch may occur depending on the configuration. The signal quality of the signal under observation is degraded due to the occurrence of glitches. This problem will be described.
VHDLやVerilog HDLといったハードウェア記述言語では、抽象度の高い(高級な)記述が可能であり、通常、マルチプレクサ程度の論理はマルチプレクサの入力と同数程度の行数での記述で済ませることが多い。このため、マルチプレクサが最終的にどのような論理回路として実装されるかが不明であることにある。同期式設計では、グリッチが発生しても、クロックで信号を確定するタイミングで、信号が静定していれば良いという仮定が置かれる。このため、仮にマルチプレクサに何らかのタイミング制約を加えたとしても、論理合成ソフトウェアがグリッチを発生させる回路形式に合成する可能性は否定できない。なお、仮に、基本論理ゲート程度の演算子のみを用いて抽象度の低い記述を行ったとしても、通常、論理合成ソフトウェアは、チップ面積又は動作速度(入力から出力までの遅延)を最小化することを目標として論理式の最適化(論理圧縮)を実行する。このため、特別の配慮をしない限り、抽象度の高い記述を行った場合と同等の論理合成結果となることが予想される。 In hardware description languages such as VHDL and Verilog HDL, high-level (high-level) description is possible, and usually the logic of a multiplexer is often described with the same number of lines as the input of the multiplexer. For this reason, it is unclear as to what logic circuit the multiplexer is finally mounted. In the synchronous design, even if a glitch occurs, it is assumed that the signal only needs to be settled at the timing when the signal is determined by the clock. For this reason, even if some timing constraint is added to the multiplexer, the possibility that the logic synthesis software synthesizes into a circuit format that generates a glitch cannot be denied. Note that even if a low-level description is made using only operators that are about the same as basic logic gates, logic synthesis software usually minimizes the chip area or operation speed (delay from input to output). The optimization of the logical expression (logical compression) is executed with the goal of this. For this reason, unless special consideration is given, it is expected that a logical synthesis result equivalent to a description with a high level of abstraction will be obtained.
グリッチが発生する具体例を説明する。単に説明の容易化のため、2入力LUTで個々の論理ゲートを実現し、それらを組み合わせて2入力マルチプレクサを構成する例で説明する。ここでは、論理ゲートは、それ自体では、グリッチを発生させないものとする。 A specific example in which a glitch occurs will be described. For ease of explanation, an example in which individual logic gates are realized by a 2-input LUT and combined to form a 2-input multiplexer will be described. Here, it is assumed that the logic gate itself does not generate a glitch.
表1は、マルチプレクサの中でも最も基本的な2入力形マルチプレクサの真理値表を示している。 Table 1 shows a truth table of the most basic two-input multiplexer among the multiplexers.
選択入力Sが0であるとき出力ZにはX入力と同じ極性が出力され、選択入力Sが1であるとき出力ZにはY入力と同じ極性が出力される。この真理値表に対応する代表的な標準形式によるブール代数表現としては以下の論理式が挙げられる。 When the selection input S is 0, the output Z has the same polarity as the X input, and when the selection input S is 1, the output Z has the same polarity as the Y input. The following logical expressions are given as representative Boolean algebra expressions corresponding to this truth table.
DNF : (S and Y) or ( not S and X) DNF: (S and Y) or (not S and X)
CNF : ( not S or Y) and (S or X) CNF: (not S or Y) and (S or X)
ANF : (S and X) xor (S and Y) xor X ANF: (S and X) xor (S and Y) xor X
NOR : ( not S nor Y) nor (S nor X) NOR: (not S nor Y) nor (S nor X)
NAND : (S nand Y) nand ( not S nand X) NAND: (S nand Y) nand (not S nand X)
AND : not (S and not Y) and not ( not S and not X) AND: not (S and not Y) and not (not S and not X)
OR : not ( not S or not Y) or not (S or not X) OR: not (not S or not Y) or not (S or not X)
DNF : Disjunctive Normal Form: 加法標準形、
CNF : Conjunctive Normal Form: 乗法標準形、
ANF : Algebraic Normal Form 又はReed-Muller標準形、
DNF: Disjunctive Normal Form
CNF: Conjunctive Normal Form
ANF: Algebraic Normal Form or Reed-Muller standard type
ここでは、2入力マルチプレクサをDNF形式とANF形式でブール代数表現した論理式を論理回路に置き換える。 Here, a logical expression in which a 2-input multiplexer is expressed as a Boolean algebra in the DNF format and the ANF format is replaced with a logic circuit.
図9(A)はDNF形式を論理回路に置き換えた回路形式を示す図である。2入力LUT131−1、131−2はAND演算回路、2入力LUT132はOR演算回路である。図9(B)は、図9(A)において、S=1(Y入力選択中)のCLK、X、Y、S、X'、Y'、S&X'、!S&Y'、(S&X')or (!S&Y')の波形を模式的に示す図である。 FIG. 9A shows a circuit format in which the DNF format is replaced with a logic circuit. The 2-input LUTs 131-1 and 131-2 are AND operation circuits, and the 2-input LUT 132 is an OR operation circuit. FIG. 9B shows CLK, X, Y, S, X ′, Y ′, S & X ′, S = 1 in FIG. 9A when S = 1 (Y input selected). It is a figure which shows typically the waveform of S & Y ', (S & X') or (! S & Y ').
図9(A)から分かるように、DNF形式ではX入力やY入力がS入力とともにANDゲートに入力された結果がORゲートに入力されるため、非選択中の入力はANDゲートで遮断される。このため、仮に、AND/ORゲートを実現する2入力LUT自体が発生し得るグリッチを考慮したとしても、S入力の極性が一定であれば、グリッチは発生しないという特徴を持つ。 As can be seen from FIG. 9A, in the DNF format, the result that the X input and the Y input are input to the AND gate together with the S input is input to the OR gate, so that the unselected input is blocked by the AND gate. . For this reason, even if a glitch that can generate a 2-input LUT itself that realizes an AND / OR gate is taken into consideration, the glitch does not occur if the polarity of the S input is constant.
S入力が変化する瞬間にはグリッチが発生する可能性がある。グリッチを避けるためには、X入力とY入力の値(極性)が一定である期間(瞬間)に、S入力を変化させる必要がある。モニタデータマルチプレクサとしての応用を考えるならば、興味の対象となる波形を観測中に、モニタ面を切り替えることはない(S入力を切り替えることはない)。このため、グリッッチの問題は無視しても良いことになる。 A glitch may occur at the moment when the S input changes. In order to avoid glitches, it is necessary to change the S input during a period (instant) in which the values (polarity) of the X input and Y input are constant. If the application as a monitor data multiplexer is considered, the monitor plane is not switched during observation of the waveform of interest (the S input is not switched). For this reason, the problem of glitches can be ignored.
一方、図10(A)は、ANF形式を論理回路に置き換えた論理回路を示す図である。2入力LUT131−1、131−2はAND演算回路、2入力LUT133−1、133−2はXOR演算回路である。図10(B)は、図10(A)において、S=1(Y入力選択中)のCLK、X、Y、S、X'、S&X'、S&Y、(S&X')xor (S&Y)、(S&X')xor (S&Y) xor Xの波形を示す図である。このように、ANF形式の論理回路では、たとえS入力が一定に保たれていても、論理回路中の遅延により、グリッチが発生し得る。このようなマルチプレクサでモニタ面を切り替えようとすると、観測中の興味の対象ではない、他の観測対象回路からの波形により、グリッチが発生し得る。この結果、観測波形の品質の劣化につながる可能性がある。 On the other hand, FIG. 10A illustrates a logic circuit in which the ANF format is replaced with a logic circuit. The 2-input LUTs 131-1 and 131-2 are AND operation circuits, and the 2-input LUTs 133-1 and 133-2 are XOR operation circuits. FIG. 10 (B) is the same as FIG. 10 (A), with CLK = 1, S = 1 (Y input selected), CLK, X, Y, S, X ′, S & X ′, S & Y, (S & X ′) xor (S & Y), ( FIG. 4 is a diagram illustrating a waveform of S & X ′) xor (S & Y) xorX. Thus, in the ANF format logic circuit, even if the S input is kept constant, glitches may occur due to the delay in the logic circuit. When switching between monitor surfaces using such a multiplexer, glitches may occur due to waveforms from other observation target circuits that are not the object of interest during observation. As a result, the quality of the observed waveform may be degraded.
このように、観測対象となる信号の数がある程度以上になると、モニタ回路自体のタイミングやその他の回路のタイミング収束が困難となる。モニタ回路のタイミングを緩和する制約を付すと、モニタ波形の品質を保証できなくなる。 As described above, when the number of signals to be observed exceeds a certain level, it becomes difficult to converge the timing of the monitor circuit itself and other circuits. If a constraint that relaxes the timing of the monitor circuit is added, the quality of the monitor waveform cannot be guaranteed.
観測対象ノードからモニタデータピンに至るまでの途中経路に同期化用のフリップフロップを挿入するという、一般的な技術が用いられる。これは、パイプライン化の技法として周知である。パイプライン化すると、モニタ波形の遅延やビット間スキュー(バス信号を観測する場合)が許容範囲以上になる前に、中間地点に挿入されたフリップフロップ(パイプライン段)により、FFが駆動されるクロックエッジにデータ変化点が揃えられる。また、グリッチもパイプライン段により取り除くことができる(「リタイミング効果」等とも呼ばれる)。 A general technique is used in which a synchronization flip-flop is inserted on the way from the observation target node to the monitor data pin. This is well known as a pipelining technique. When pipelined, the FF is driven by a flip-flop (pipeline stage) inserted at an intermediate point before the monitor waveform delay or inter-bit skew (when observing the bus signal) exceeds the allowable range. Data change points are aligned with clock edges. Also, glitches can be removed by pipeline stages (also called “retiming effect” etc.).
図11(A)は、図5(A)のモニタ回路に、2段のパイプライン化を施した例を模式的に示す図である。図11(A)において、フリップフロップ21−3、21−4はパイプライン1段目、モニタデータマルチプレクサ22の後段のフリップフロップ21−5はパイプライン2段目である。図11(B)において、
(1)は、観測対象回路からパイプライン1段目までのデータ経路の遅延(Dclk_tgt+Dtgt_pl1)、
(2)は、クロック源25からパイプライン1段目までのクロック経路の遅延(Dclk_pl1)、
(3)のDpl1-pl2は、パイプライン1段目からパイプライン2段目までのデータ経路の遅延、
(4)は、クロック源25からパイプライン2段目までのクロック経路の遅延(Dclk_pl2)、
(5)のDpl2-mpinは、パイプライン2段目からモニタデータピン23の出力(コネクタ端)までのデータ経路の遅延、
(6)は、クロック源25からモニタクロックピン24の出力(コネクタ端)までのクロック経路の遅延(Dclk-cpin)である。
FIG. 11A is a diagram schematically showing an example in which the monitor circuit of FIG. 5A is two-stage pipelined. In FIG. 11A, the flip-flops 21-3 and 21-4 are the first stage of the pipeline, and the flip-flop 21-5 at the rear stage of the
(1) is the data path delay (Dclk_tgt + Dtgt_pl1) from the observation target circuit to the first stage of the pipeline.
(2) is the delay of the clock path from the
(3) Dpl1-pl2 is the delay of the data path from the first stage of the pipeline to the second stage of the pipeline.
(4) is the clock path delay (Dclk_pl2) from the
(5) Dpl2-mpin is the delay of the data path from the second stage of the pipeline to the output (connector end) of the monitor data pin 23,
(6) is a delay (Dclk-cpin) of the clock path from the
図11(A)の観測対象回路から1段目のパイプラインまでの遅延について考えると、データ経路の遅延は、図11(B)の(1)に示すように、
・クロック源25から観測対象回路のフリップフロップ21−1(21−2)までの遅延Dclk_tgtと、
・観測対象回路のフリップフロップ21−1(21−2)からパイプライン1段目のフリップフロップ21−3(21−4)までの遅延Dtgt_pl1
の和:
Dclk_tgt+Dtgt_pl1
となる。
Considering the delay from the observation target circuit of FIG. 11A to the first stage pipeline, the delay of the data path is as shown in (1) of FIG.
A delay Dclk_tgt from the
Delay Dtgt_pl1 from the flip-flop 21-1 (21-2) of the observation target circuit to the flip-flop 21-3 (21-4) in the first stage of the pipeline
Sum of:
Dclk_tgt + Dtgt_pl1
It becomes.
クロック経路の遅延は、図11(B)の(2)に示すように、
・クロック源25からパイプライン1段目のフリップフロップ21−3(21−4)までの遅延Dclk_pl1となる。
The delay of the clock path is as shown in (2) of FIG.
A delay Dclk_pl1 from the
ここで、データ経路の遅延:Dclk_tgt+Dtgt_pl1が、クロック経路の遅延:Dclk_pl1以下になると、パイプライン1段目のフリップフロップ(FF)21−3(21−4)のホールドタイム違反となる。また、データ経路の遅延がクロック経路の遅延よりも1CLK周期以上になると、パイプライン1段目のフリップフロップ(FF)21−3、21−4のセットアップタイム違反となる。 Here, if the delay of the data path: Dclk_tgt + Dtgt_pl1 becomes equal to or less than the delay of the clock path: Dclk_pl1, a violation of the hold time of the flip-flop (FF) 21-3 (21-4) at the first stage of the pipeline occurs. If the delay of the data path is 1 CLK period or more than the delay of the clock path, the setup time of the flip-flops (FFs) 21-3 and 21-4 in the first stage of the pipeline is violated.
0 < Dclk_tgt + Dtgt_pl1 - Dclk_pl1 < (1クロック周期)
が成り立つ限り、パイプライン1段目のフリップフロップ(FF)21−3、21−4の出力では、リタイミングができることになる。
0 <Dclk_tgt + Dtgt_pl1-Dclk_pl1 <(1 clock cycle)
As long as this holds, retiming can be performed at the outputs of the flip-flops (FF) 21-3 and 21-4 in the first stage of the pipeline.
パイプライン1段目のフリップフロップ(FF)21−3、21−4から2段目のフリップフロップ(FF)21−5までの経路と、2段目のフリップフロップ(FF)21−5からモニタクロックピン24までの経路についても同様の条件でリタイミングができることになる。
Pipeline first-stage flip-flop (FF) 21-3, 21-4 to second-stage flip-flop (FF) 21-5, and second-stage flip-flop (FF) 21-5 to monitor The timing to the
図12は、図11のパイプライン化によるリタイミングの効果を模式的に示す図である。このように、パイプライン段数を増やして、観測対象回路(出発地点)からモニタピン(目的地点)までの段数を細かく区切るほど、1クロック周期以上の遅延やビット間スキューが発生する前に、リタイミングによりそれらを吸収・平準化することが可能となる。 FIG. 12 is a diagram schematically showing the effect of retiming by the pipelining of FIG. As the number of pipeline stages is increased and the number of stages from the observation target circuit (departure point) to the monitor pin (destination point) is finely divided, retiming can occur before a delay of 1 clock cycle or more and skew between bits occur. This makes it possible to absorb and level them.
しかしながら、パイプライン化には、段数を増やせば増やすほど、多数のフリップフロップが必要になる。開発対象のFPGAにはパイプライン化に必要なフリップフロップの余りが殆ど無い状態に達している場合、パイプライン化を行うと、フリップフロップを消費して配置配線の自由度が小さくなる。さらに、パイプライン化はタイミング制約を満足することを容易化するが、タイミング緩和条件を付して配置配線する場合ほどには、配置配線の自由度が上がらない場合もある。 However, pipelining requires a larger number of flip-flops as the number of stages increases. When the FPGA to be developed has reached a state where there are almost no flip-flops necessary for pipelining, if the pipelining is performed, the flip-flops are consumed and the degree of freedom of placement and routing is reduced. Furthermore, although pipelining facilitates satisfying the timing constraint, the degree of freedom of placement and routing may not increase as much as placement and routing with timing relaxation conditions.
<発明の概要>
前述した第一〜第三の問題点の少なくとも1つを解決する発明の概要を以下に説明する。
<Outline of the invention>
An outline of the invention that solves at least one of the first to third problems described above will be described below.
本発明の一形態によれば、半導体装置(例えばFPGA)に実装され、前記半導体装置の内部状態をモニタするモニタ回路であって、前記半導体装置内部の複数の観測対象ノードの複数の観測対象信号を入力し第1選択信号に応じて観測対象信号を選択して出力する第1マルチプレクサ(モニタデータマルチプレクサ:図13の205、206)と、複数のクロック信号を入力し第2選択信号に応じてモニタ用のクロック信号を選択して出力する第2マルチプレクサ(モニタクロックマルチプレクサ:図13の207)と、を少なくとも含み、前記第1及び第2マルチプレクサの少なくとも1つは、例えば複数の入力信号のうち選択されていない入力信号の極性変化等、複数の入力信号のうち少なくとも1つの入力信号の極性変化に対して出力へのグリッチの伝搬を抑止する構成とされたマルチプレクサを含む。少なくとも、前記観測対象ノードから前記第1マルチプレクサの出力に至る経路は、タイミング制約に関して緩和条件を付して配置配線された構成としてもよい。 According to an aspect of the present invention, the monitor circuit is mounted on a semiconductor device (for example, FPGA) and monitors an internal state of the semiconductor device, and a plurality of observation target signals of a plurality of observation target nodes inside the semiconductor device. The first multiplexer (monitor data multiplexer: 205 and 206 in FIG. 13) that selects and outputs the observation target signal according to the first selection signal, and the plurality of clock signals are input according to the second selection signal And a second multiplexer (monitor clock multiplexer: 207 in FIG. 13) that selects and outputs a monitor clock signal, and at least one of the first and second multiplexers is, for example, a plurality of input signals Output for a polarity change of at least one of the input signals, such as a polarity change of an unselected input signal. A multiplexer which is configured to prevent the propagation of glitches to. At least the path from the observation target node to the output of the first multiplexer may be arranged and wired with a relaxation condition regarding timing constraints.
本発明の一形態によれば、半導体装置のモニタ回路は、前記第2マルチプレクサから出力されるクロック信号に同期して試験信号を出力する試験信号発生回路(図13の209)と、前記試験信号と前記第1マルチプレクサで選択された観測対象信号を入力し第3選択信号に応じて一方を選択して出力する第3マルチプレクサ(図13の208)と、をさらに含む構成としてもよい。 According to an aspect of the present invention, the monitor circuit of the semiconductor device includes a test signal generation circuit (209 in FIG. 13) that outputs a test signal in synchronization with the clock signal output from the second multiplexer, and the test signal. And a third multiplexer (208 in FIG. 13) that inputs the observation target signal selected by the first multiplexer and selects and outputs one of the signals in accordance with the third selection signal.
本発明の一形態によれば、前記半導体装置が、組み合わせ論理回路をさらに備え、前記観測対象ノードが前記組み合わせ論理回路の出力ノードであり、前記組み合わせ論理回路の出力に至る経路の信号間のスキューは、前記観測対象信号の1周期以内とする構成としてもよい。 According to an aspect of the present invention, the semiconductor device further includes a combinational logic circuit, the observation target node is an output node of the combinational logic circuit, and a skew between signals in a path leading to the output of the combinational logic circuit May be configured to be within one cycle of the observation target signal.
本発明の一形態によれば、半導体装置のモニタ回路は、前記第1マルチプレクサ(図13の206)から出力される前記観測対象信号に対して遅延を補正して出力する第1遅延補正回路(図13の211、212)と、前記第1遅延補正回路で遅延が補正された前記観測対象信号を受け、前記第2マルチプレクサ(図13の207)で選択されたクロック信号を書き込みクロック信号として前記観測対象信号の書き込みを行い、読み出しクロックにしたがって読み出しを行う第1バッファ部(図13の216)と、前記第1バッファ部から読み出された前記観測対象信号を入力しビット幅及びレート変換を行うビット幅・レート変換部(図12の214)と、前記ビット幅・レート変換部から出力された前記観測対象信号をシリアル信号に変換して前記半導体装置の出力端子(図13の221)からシリアル出力するシリアル送信回路(図13の215)と、を備えた構成としてもよい。前記第3マルチプレクサ(図13の208)で選択出力された信号は、前記半導体装置の出力端子(図13の220)からパラレルに出力される構成としてもよい。 According to an aspect of the present invention, the monitor circuit of the semiconductor device corrects a delay with respect to the observation target signal output from the first multiplexer (206 in FIG. 13) and outputs the first delay correction circuit ( 13, 212) and the observation target signal whose delay is corrected by the first delay correction circuit, and the clock signal selected by the second multiplexer (207 of FIG. 13) is used as the write clock signal. A first buffer unit (216 in FIG. 13) that writes an observation target signal and performs reading according to a read clock, and inputs the observation target signal read from the first buffer unit, and performs bit width and rate conversion. The bit width / rate conversion unit (214 in FIG. 12) to be performed and the observation target signal output from the bit width / rate conversion unit are converted into serial signals. An output terminal of to the semiconductor device serial transmission circuit for serial output from the (221 in FIG. 13) (215 in FIG. 13), may be configured to include. The signal selected and output by the third multiplexer (208 in FIG. 13) may be output in parallel from the output terminal (220 in FIG. 13) of the semiconductor device.
本発明の一形態によれば、モニタ回路からの信号を受けるロジック解析端末(図16の30)であって、第2クロック源(図16の313)と、前記モニタ回路からシリアルに送信された信号を受けパラレル信号に変換するシリアル受信回路(図16の307)と、前記シリアル受信回路からのパラレル信号を、前記シリアル受信回路からのパラレルクロック信号で書き込み、前記第2のクロック源からのクロック信号で読み出す第2バッファ部(図16の311)と、前記モニタ回路からパラレルに送信された信号の遅延の補正を行う第2遅延補正回路(図16の306、308)と、前記モニタ回路の前記第2マルチプレクサで選択されたクロック信号又は前記第2クロック源(313)からのクロック信号を受け、第4選択信号に基づき1方を選択する第4マルチプレクサ(図16の309)と、前記モニタ回路から受信した観測対象信号を前記第4マルチプレクサで選択されたクロック信号で書き込み、前記第2のクロック源からのクロック信号で読み出す第3バッファ部(図16の310)と、前記第2及び第3バッファ部から読み出された信号を記憶する記憶部(図16の316)と、を含む構成としてもよい。さらに、ホストコンピュータに接続するインターフェース部(図16の318)と、前記記憶部の内容を読み出し前記ホストコンピュータに送信する読み出し制御回路(図16の317)と、前記記憶部への信号の書き込み開始・停止制御を行う制御部(図16の312)とを備えた構成としてもよい。 According to one aspect of the present invention, a logic analysis terminal (30 in FIG. 16) that receives a signal from a monitor circuit, which is serially transmitted from the second clock source (313 in FIG. 16) and the monitor circuit. A serial receiving circuit (307 in FIG. 16) that receives a signal and converts it into a parallel signal, and writes a parallel signal from the serial receiving circuit as a parallel clock signal from the serial receiving circuit, and a clock from the second clock source. A second buffer section (311 in FIG. 16) to be read as a signal, a second delay correction circuit (306, 308 in FIG. 16) for correcting the delay of the signal transmitted in parallel from the monitor circuit, and the monitor circuit The clock signal selected by the second multiplexer or the clock signal from the second clock source (313) is received and based on the fourth selection signal. The fourth multiplexer (309 in FIG. 16) for selecting one and the observation target signal received from the monitor circuit are written with the clock signal selected by the fourth multiplexer, and the clock signal from the second clock source is used. It is good also as a structure containing the 3rd buffer part (310 of FIG. 16) to read, and the memory | storage part (316 of FIG. 16) which memorize | stores the signal read from the said 2nd and 3rd buffer part. Furthermore, an interface unit (318 in FIG. 16) connected to the host computer, a read control circuit (317 in FIG. 16) that reads the contents of the storage unit and transmits them to the host computer, and starts writing signals to the storage unit -It is good also as a structure provided with the control part (312 of FIG. 16) which performs stop control.
本発明の一形態によれば、ホストコンピュータ(図16の40)は、例えば前記ロジック解析端末(図22、図23の30)の前記第2遅延補正回路(図22、図23の306、308)の遅延補正を、制御するにあたり、
(A)前記半導体装置の配置配線後のタイミング解析結果から、前記半導体装置(図22の20)内の前記試験信号発生回路(図22の209)から前記半導体装置の出力端子(図22の220)に至る経路の遅延と、前記半導体装置(図23の20)内の観測対象ノードから前記半導体装置の出力端子(図23の220)に至る経路の遅延を取得して記憶しておき、
(B)記半導体装置(図22の20)内の前記試験信号発生回路(図22の209)の試験信号をモニタ対象として、前記第2遅延補正回路(図22の306、308)に対して遅延量をゼロに初期化し、
(C)前記半導体装置(図22の20)内の前記試験信号発生回路(図22の209)からの受信したデータパターンが既知の試験信号パターンに合致するかを判断し、既知の試験信号パターンに合致するまで前記第2遅延補正回路(図22の306、308)に対して遅延量を増加させ、前記受信したデータパターンが前記既知の試験信号パターンに合致すると、その時の第2遅延補正回路(図22の306、308)に設定された遅延量を記憶し、
(D)前記半導体装置(図23の20)内の前記観測対象ノードからの観測対象信号をモニタ対象として、前記第2遅延補正回路(図23の306、308)に設定された遅延量に対し、前記半導体装置(図23の20)内の前記観測対象ノードから前記半導体装置の出力端子(図23の220)に至る経路の遅延から、前記半導体装置(図22の20)内の前記試験信号発生回路(図22の209)から前記半導体装置の出力端子(図22の220)に至る経路の遅延を差し引いた値を足した遅延量を、前記第2遅延補正回路(図22、図23の306、308)に対して設定する構成としてもよい。
According to one aspect of the present invention, the host computer (40 in FIG. 16) may be configured to, for example, use the second delay correction circuit (306 and 308 in FIG. 22 and FIG. 23) of the logic analysis terminal (30 in FIGS. 22 and 23). ) To control the delay compensation,
(A) From the timing analysis result after the placement and routing of the semiconductor device, the test signal generation circuit (209 in FIG. 22) in the semiconductor device (20 in FIG. 22) to the output terminal (220 in FIG. 22). ) And the delay of the path from the observation target node in the semiconductor device (20 in FIG. 23) to the output terminal (220 in FIG. 23) of the semiconductor device, and stored.
(B) The test signal of the test signal generation circuit (209 in FIG. 22) in the semiconductor device (20 in FIG. 22) is monitored, and the second delay correction circuit (306 and 308 in FIG. 22) is monitored. Initialize the delay amount to zero,
(C) It is determined whether the data pattern received from the test signal generation circuit (209 in FIG. 22) in the semiconductor device (20 in FIG. 22) matches a known test signal pattern, and the known test signal pattern When the received data pattern matches the known test signal pattern, the second delay correction circuit at that time is increased by increasing the delay amount with respect to the second delay correction circuit (306 and 308 in FIG. 22). The delay amount set in (306, 308 in FIG. 22) is stored,
(D) With respect to the delay amount set in the second delay correction circuit (306 and 308 in FIG. 23), the observation target signal from the observation target node in the semiconductor device (20 in FIG. 23) is a monitoring target. The test signal in the semiconductor device (20 in FIG. 22) from the delay of the path from the observation target node in the semiconductor device (20 in FIG. 23) to the output terminal (220 in FIG. 23) of the semiconductor device. The delay amount obtained by adding the value obtained by subtracting the delay of the path from the generation circuit (209 in FIG. 22) to the output terminal (220 in FIG. 22) of the semiconductor device is used as the second delay correction circuit (in FIGS. 22 and 23). 306, 308) may be set.
上記したように、本発明によれば、モニタ回路に、タイミング緩和条件を付して配置配線を行い、事後に別途の手段で遅延補正を行うことで、配置配線の容易さを損なうことなく、モニタデータの安定点をモニタクロックで識別している。 As described above, according to the present invention, the monitor circuit is placed and routed with a timing relaxation condition, and after that, by performing a delay correction by a separate means, without compromising the ease of placement and routing, The monitor data stable point is identified by the monitor clock.
本発明によれば、観測対象FPGAに実装するモニタ回路は、観測対象ノードからパラレルモニタ信号をパラレルに受信する回路(パラレルモニタ受信回路)に至る経路中のフリップフロップを廃止している。また、上記モニタ回路のうち、観測対象ノードからパラレルモニタ受信回路に至る経路には、タイミング制約を付さない。また、上記モニタ回路に含まれるモニタ面の切り替えを行うマルチプレクサは、グリッチ・フリーマルチプレクサから構成される。マルチプレクサは、複数のグリッチ・フリーマルチプレクサを2進木形態に接続して構成してもよい。 According to the present invention, the monitor circuit mounted on the observation target FPGA eliminates the flip-flop in the path from the observation target node to the circuit (parallel monitor reception circuit) that receives the parallel monitor signal in parallel. Also, no timing constraint is applied to the path from the observation target node to the parallel monitor receiving circuit in the monitor circuit. The multiplexer for switching the monitor plane included in the monitor circuit is composed of a glitch free multiplexer. The multiplexer may be configured by connecting a plurality of glitch free multiplexers in a binary tree form.
本発明によれば、ロジック解析システムは、ビット毎の遅延時間を解析するための試験信号発生回路と、遅延補正回路とを有する。 According to the present invention, the logic analysis system includes a test signal generation circuit for analyzing a delay time for each bit and a delay correction circuit.
本発明において、上記モニタ回路は、パラレルモニタ信号をロジック解析端末にシリアル信号に変換して送信するためのシリアル送信回路を有する。上記モニタ回路は、一部のモニタ信号は、シリアル信号に変換せず、パラレル信号のまま、直接、FPGAの外部ピンに出力する。 In the present invention, the monitor circuit includes a serial transmission circuit for converting the parallel monitor signal into a serial signal for transmission to the logic analysis terminal. The monitor circuit does not convert some of the monitor signals into serial signals, but outputs them directly to the external pins of the FPGA as parallel signals.
本発明において、ロジック解析端末は、モニタ回路からのシリアル信号をシリアルに受信しパラレル信号に変換するシリアル受信回路と、受信したデータを格納するメモリと、受信したデータを監視し、所定のトリガ条件が発生したときに、メモリへの書き込みを停止する制御回路を有する。上記ロジック解析端末は、シリアルレ受信回路のほか、観測対象FPGAの外部ピンから出力されたパラレルモニタ信号を受信する入力ピンと、受信したパラレルモニタ信号の遅延を補正する遅延補正回路とを有する。 In the present invention, the logic analysis terminal receives a serial signal from the monitor circuit serially and converts it into a parallel signal, a memory for storing the received data, and monitors the received data to obtain a predetermined trigger condition. Has a control circuit that stops writing to the memory when this occurs. In addition to the serial reception circuit, the logic analysis terminal includes an input pin that receives a parallel monitor signal output from an external pin of the observation target FPGA, and a delay correction circuit that corrects the delay of the received parallel monitor signal.
本発明の遅延補正方法は、半導体デバイスからのモニタ出力を遅延させる遅延補正回路の遅延補正方法であって、
前記半導体デバイスの配置配線後のタイミング解析結果から、前記半導体デバイス内の試験信号発生回路から前記半導体デバイスの出力ピンに至る経路の遅延と、前記半導体デバイス内の観測対象ノードから前記半導体デバイスの出力ピンに至る経路の遅延を取得して記憶し、
前記試験信号発生回路の試験信号をモニタ対象として、前記遅延補正回路に対して遅延量をゼロに初期化し、
前記半導体デバイス内の前記試験信号発生回路からのデータパターンが既知の試験信号パターンに合致するかを判断し、既知の試験信号パターンに合致するまで前記遅延補正回路に対して遅延量を増加させ、前記受信したデータパターンが前記既知の試験信号パターンに合致すると、その時の遅延補正回路に設定された遅延量を記憶し、
前記半導体デバイス内の前記観測対象ノードからの観測対象信号をモニタ対象として、前記遅延補正回路に設定された遅延量に対し、前記観測対象ノードから前記半導体デバイスの出力ピンに至る経路の遅延から、前記試験信号発生回路から前記半導体デバイスの出力ピンに至る経路の遅延を差し引いた値を足した遅延量を、前記遅延補正回路に対して設定する。
A delay correction method of the present invention is a delay correction method of a delay correction circuit for delaying a monitor output from a semiconductor device,
From the timing analysis result after the placement and routing of the semiconductor device, the delay of the path from the test signal generation circuit in the semiconductor device to the output pin of the semiconductor device, and the output of the semiconductor device from the observation target node in the semiconductor device Get and store the delay of the route to the pin,
The test signal of the test signal generation circuit is to be monitored, the delay amount for the delay correction circuit is initialized to zero,
Determining whether a data pattern from the test signal generation circuit in the semiconductor device matches a known test signal pattern, and increasing a delay amount with respect to the delay correction circuit until it matches a known test signal pattern; When the received data pattern matches the known test signal pattern, the delay amount set in the delay correction circuit at that time is stored,
From the delay of the path from the observation target node to the output pin of the semiconductor device, with respect to the delay amount set in the delay correction circuit, with the observation target signal from the observation target node in the semiconductor device as a monitoring target, A delay amount obtained by adding a value obtained by subtracting the delay of the path from the test signal generation circuit to the output pin of the semiconductor device is set for the delay correction circuit.
以下、図面を参照して実施形態について詳細に説明する。 Hereinafter, embodiments will be described in detail with reference to the drawings.
<実施形態1>
図13は、本発明の一実施形態において、観測対象となるFPGAに実装されるべきモニタ回路の構成を例示する図である。なお、本実施形態では、シリアル送信回路とシリアル受信回路を利用する高速シリアルモニタと、通常のI/Oピンを用いるパラレルモニタとを同時に2種類実装した例を示しているが、どちらか一方のみを備えた構成としてもよい。モニタ回路に使用するI/Oピンの数を減らすには、高速シリアルモニタを実装することが好適である。シリアル送信回路を持たない品種のFPGAを利用する場合や、非同期信号をモニタしたい場合などには、パラレルモニタも、適宜の本数を併用することが有効である。
<
FIG. 13 is a diagram illustrating a configuration of a monitor circuit to be mounted on an FPGA to be observed in an embodiment of the present invention. In this embodiment, an example is shown in which two types of high-speed serial monitor using a serial transmission circuit and a serial reception circuit and a parallel monitor using a normal I / O pin are mounted at the same time. It is good also as a structure provided with. In order to reduce the number of I / O pins used in the monitor circuit, it is preferable to mount a high-speed serial monitor. When using a variety of FPGAs that do not have a serial transmission circuit, or when monitoring asynchronous signals, it is effective to use an appropriate number of parallel monitors.
観測対象の基板10には、観測対象のFPGA20が搭載され、観測対象のFPGA20から引き出したモニタ回路関連信号がコネクタ12とケーブル13を介して後述するモニタ解析端末に接続される。なお、基板10上の配線やコネクタ、ケーブルは関連信号の伝送に対応した電気的特性を有する。
An
観測対象FPGA20は、観測対象回路200及びモニタ用の回路ブロック210が実装されるFPGAである。
The
観測対象回路200は、FPGA20が本来の要求機能を実現するために実装される回路であり、デバッグ対象とされる回路である。観測対象ノードは、デバッグ対象箇所である。観測対象ノードは、フリップフロップ(FF)201の出力でも、組み合わせ論理回路202を通過した後の箇所でも良い。どちらでも良い場合は、配置配線の難易度を減らし、モニタ品質を向上させるためにフリップフロップ201の出力としたほうが良い。
The
モニタデータマルチプレクサ205、206はモニタ面を切り替えるためのバス信号(複数ビットのセット)のマルチプレクサである。モニタデータマルチプレクサ205は非同期信号用、モニタデータマルチプレクサ206は同期信号用である。
Monitor data multiplexers 205 and 206 are multiplexers of bus signals (a set of a plurality of bits) for switching monitor surfaces. The
なお、モニタ面は、関心の対象となる観測対象回路をデバッグするために必要な観測対象信号の一揃えのバスのことを指す。1つの信号は信号線であるが、バスは複数の信号を束ねた面としてとらえることができることから、モニタ対象の信号(1本又は複数本)をモニタ面という。 The monitor plane refers to a set of observation target signal buses necessary for debugging an observation target circuit of interest. One signal is a signal line, but since the bus can be regarded as a surface where a plurality of signals are bundled, the signal to be monitored (one or more) is referred to as a monitor surface.
観測対象回路200が複数あり、それらを同時に観測する必要がないときは、それぞれの回路の観測対象ノードを、モニタデータマルチプレクサ205、206の別の面(他の入力)に割り当て、モニタデータマルチプレクサ205、206にて、モニタ面選択信号で、選択するモニタ面を切り替え、観測ができるようになる。
When there are a plurality of
モニタクロックマルチプレクサ207は、観測対象回路200のクロックドメインに応じてモニタ回路に導くクロックを選択するためのものである。モニタクロックマルチプレクサ207で選択されたクロック信号は、試験信号発生回路209の駆動源クロックとしても使用される。また、モニタクロックマルチプレクサ207で選択されたクロック信号は、デュアルクロックFIFO(First In First Out)213にも入力され、さらに、モニタクロックピン223から基板配線14を介してコネクタ12に接続される。
The
試験信号マルチプレクサ208は、遅延調整のため試験信号を送信する場合に、試験信号選択信号に基づき、本来のモニタデータと切り替えるためのものであり、モニタデータマルチプレクサと同様の構成とする。試験信号マルチプレクサ208は、試験信号面をモニタデータマルチプレクサ205の面に含める場合には省略される。
The
モニタデータマルチプレクサ205、206と、モニタクロックマルチプレクサ207と、試験信号マルチプレクサ208の各々は、後述のようにグリッチの発生を防止するため、グリッチフリーマルチプレクサにより構成する。特に限定されるものでないが、各マルチプレクサは、例えば2入力の一方を選択するグリッチフリーマルチプレクサを複数段、樹状(ツリー状)に接続することで構成される。
Each of the
モニタデータマルチプレクサ205、206、モニタクロックマルチプレクサ207、試験信号マルチプレクサ208のモニタ面の切り替えは、例えば、不図示のホストコンピュータからロジック解析端末を経由して、JTAG I/F(Joint Test Action Group Interface)216で行う。試験信号マルチプレクサ208の出力は、出力端子(パラレルモニタピン)220から基板配線14を介してコネクタ12に接続される。
For example, the monitor planes of the
遅延補正回路211はモニタデータの遅延補正を行い、ビット間のスキュー調整をする。遅延補正回路211の遅延量は不図示のホストコンピュータからロジック解析端末を経由し、JTAG I/F216で行う。
The
本実施形態では、遅延補正回路211は、遅延ラインに複数のタップ(遅延時間が互いに異なる)を設け、マルチプレクサ212で1つのタップを選択し、補正する遅延量を選択しているが、他の構成で実現しても良いことは勿論である。
In this embodiment, the
デュアルクロックFIFO213は、観測対象回路200のクロックドメイン(モニタクロックマルチプレクサ207で選択されたクロック信号)からシリアル送信回路215のクロックドメインにクロック乗せ替えを行うためのバッファである。
The
シリアル送信回路215は、入力されたパラレルデータをシリアルビット列にパラレル・シリアル変換して出力端子(モニタデータピン)221からシリアル出力し、FPGA20が実装される基板10上の伝送路に差動出力する。品種にもよるが、例えばFPGAの標準的なハードマクロとして内蔵されているものが使用できる。シリアル送信回路215からのパラレルクロック信号は、シリアルビットの駆動用クロック信号をm分周したクロック信号に対応する。モニタデータピン221からのシリアルデータ(差動信号)は基板配線14を介してコネクタ12に接続される。
The
なお、遅延補正回路211からシリアル送信回路215までの回路ブロック210のうち、シリアル送信回路215以外の回路は、通常のFPGAに集積された資源により実現することも可能である。しかしながら、回路ブロック210内の回路は所定のタイミング条件を満足する必要があるため、タイミング緩和条件を付す対象からは除外する必要がある。このためにFPGAの配置配線の難易度が増大することも考えられる。そこで、回路ブロック210全体をデバッグ支援用のハードマクロとして予めFPGAチップ上に集積することが望ましい。
Of the circuit blocks 210 from the
ビット幅・レート変換部214の役割を以下に例示する。
The role of the bit width /
(1)ビット幅変換:一般に、シリアル送信回路215は数Gbps〜28.05Gbps(Giga bits per second)で動作するのに対して、FPGA内部の動作クロックは、高々数百MHzに制限される。FPGA内部でのデータの授受は、いくつかのシリアルデータビットを組にしてパラレルデータにて行うことで、必要な伝送帯域幅を得ている。パラレルデータの入出力に使用するクロックがパラレルクロックである。このように、パラレルデータのデータ幅は、シリアル送信回路215の転送速度等に応じて決定されるので、モニタデータのビット幅とシリアル送信回路215のパラレルデータ幅は、必ずしも一致しない。このため、ビット幅をそろえる必要がある。
(1) Bit width conversion: Generally, the
(2)レート変換:モニタクロック信号とシリアル送信回路215のパラレルクロックは必ずしも周波数同調していない。このため、デュアルクロックFIFO213を用いてクロックドメイン間のデータ受け渡しを行っている。
(2) Rate conversion: The monitor clock signal and the parallel clock of the
FPGAの設計者は、ビット幅変換後のモニタデータの伝送に必要な伝送帯域幅がシリアル送信回路の実効伝送帯域幅(8b10b変換(8ビットデータを10ビットのシンボルに変換して伝送)や64b66b変換(64ビット(8×8ビット)のデータを66ビットに変換する)などの符号化によるオーバーヘッドを除いた実質的な伝送帯域幅)を超過しないように、モニタデータ幅を選定する。パラレルクロック毎に、デュアルクロックFIFO213からデータを読み出すとすれば、デュアルクロックFIFO213がアンダーフロー(データ枯渇)を起こす。このため、調速機構が必要になる。
The FPGA designer determines that the transmission bandwidth required for transmission of the monitor data after bit width conversion is the effective transmission bandwidth of the serial transmission circuit (8b10b conversion (8-bit data is converted into a 10-bit symbol and transmitted) or 64b66b. The monitor data width is selected so as not to exceed the conversion (substantial transmission bandwidth excluding overhead due to encoding, such as conversion of 64 bits (8 × 8 bits) data to 66 bits). If data is read from the
具体的には、デュアルクロックFIFO213から読み出せるデータがなくなった時点で、出力データに、他のデータとは分別可能なスキップコードを挿入し、受信側で判別できるようにする。
Specifically, when there is no more data that can be read from the
ビット幅レート変換部214の動作例を挙げて説明する。図14は、シリアル送信回路215のパラレルデータのビット幅が32ビットで、モニタデータのビット幅が60ビットの例である。図14では、ビット幅変換動作は、1フレーム128ビットで行われている。
An operation example of the bit width
2個のモニタデータ(120ビット)は、4個のパラレルデータ(32×4=128ビット)にまたがって収納され、末尾の8ビットはフィラー(未使用)ビットで埋められる。 Two monitor data (120 bits) are stored across four parallel data (32 × 4 = 128 bits), and the last 8 bits are filled with filler (unused) bits.
シリアル送信回路215が実効伝送帯域幅10Gbpsに対応しているとすれば、パラレルデータクロックは312.5MHzとなる。フィラービットも含めたモニタデータ幅は等価的に64ビットとなるので、156.25MHzまでのモニタクロックに対応できることになる。なお、ビット幅変換のフレームを、パラレルデータビット幅とモニタデータ幅の最小公倍数となるビット数で構成すれば、フィラービットによる無駄をなくすことができる。たただし、これは回路規模見合い(回路規模の増大がフィラービットによる無駄解消とつり合うか否か)となる。
If the
この例では、1フレームを480ビットで構成することにすれば、フィラービットが不要になり、64ビット幅のモニタデータ幅を実現できる。 In this example, if one frame is composed of 480 bits, filler bits are not necessary, and a monitor data width of 64 bits can be realized.
スタートシンボルは、フレームの開始を判別するための特殊なシンボルであり、例えば、8b10b符号化方式のK(カンマ)コードなどを用いることにすれば、通常のデータと識別することができる。スタートシンボルは、データ送信の最初だけ送信すればよいので、所要伝送帯域には影響しない。 The start symbol is a special symbol for determining the start of the frame. For example, if a K (comma) code of the 8b10b encoding method is used, it can be identified as normal data. Since the start symbol need only be transmitted at the beginning of data transmission, it does not affect the required transmission band.
スキップシンボルは、調速に用いられ、ビット幅変換部がデュアルクロックFIFO213のデータの格納状況を監視し、残りデータが枯渇寸前になったときに挿入することでアンダーフローを防止するものである。スキップシンボルも、Kコードなどを用いれば通常のデータと識別することができる。
The skip symbol is used for speed control, and the bit width conversion unit monitors the data storage state of the
図15は、シリアル送信回路215のパラレルデータ幅が128ビットで、モニタデータ幅が120ビットの例である。ここでは、ビット幅変換動作は1フレーム256ビットで行われている。
FIG. 15 shows an example in which the
2個のモニタデータ(120×2ビット)は、2個のパラレルデータにまたがって収納され、末尾の16ビットはフィラー(未使用)ビットで埋められる。 Two monitor data (120 × 2 bits) are stored across two parallel data, and the last 16 bits are filled with filler (unused) bits.
シリアル送信回路215が実効伝送帯域幅27.2Gbpsとすれば、パラレルデータクロックは212.5MHzとなる。フィラービットも含めたモニタデータ幅は等価的に128ビットとなるので、212.5MHzまでのモニタクロックに対応できる。
If the
図16は、本実施形態におけるロジック解析端末30の構成を示すブロック図である。特に制限されるものではないが、図16の装置(端末)は、例えば、はがき大の基板に実装することが可能である。
FIG. 16 is a block diagram showing a configuration of the
図16において、シリアル受信回路307は、基板上の差動伝送路から入力されたシリアルビット列をパラレルデータにシリアル・パラレル変換する。なお、特に制限されるものではないが、シリアル受信回路307は、シリアルモニタ入力304から入力した受信データ(シリアルビット)から該データに同期したクロック信号を再生する不図示のクロック・データリカバリ(clock and data recovery)回路を備えた構成としてもよい。クロック・データリカバリ回路は、不図示のPLL(Phase Locked Loop)回路等から生成されるクロック信号(装置内クロック)を受信データに同期させてクロックの再生を行い、該再生クロックを用いて受信データをシリアル・パラレル変換し、パラレルデータを書き込みデータとしてパラレルクロック信号とともに出力する。mビットのシリアルビット列をパラレルデータに変換する場合、パラレルクロック信号はシリアルビット列の同期クロック信号をm分周した信号に対応する。
In FIG. 16, a
遅延補正回路306は、観測対象FPGAからシリアル送信回路215を経ずに出力されたパラレルモニタ入力のビット間のスキュー調整をする。遅延補正回路306は図15の観測対象FPGA側の遅延補正回路211と同様の機能を有する。
The
デュアルクロックFIFO311、310は、シリアル受信回路307やパラレルモニタ入力側のクロックドメインから、メモリクロックドメインへのクロック乗せ替えを行うためのバッファである。デュアルクロックFIFO311はシリアル受信回路307からのパラレル信号をシリアル受信回路307からのパラレルクロック信号で書き込み、メモリクロック源313からのクロック信号で読み出す。クロックマルチプレクサ309は、FPGA20から送信されたモニタクロック信号(入力ピン303から入力される)又はメモリクロック源313からのクロック信号を取り込みクロック信号で選択して、デュアルクロックFIFO310に書き込みクロックとして供給する。デュアルクロックFIFO310は、パラレルモニタ入力ピン302からのパラレルモニタデータを遅延補正回路306、マルチプレクサ308で補正した信号を、書き込みデータとして、クロックマルチプレクサ309からのクロックで書き込み、メモリクロック源313からのクロック信号を読み出しクロックとして読み出す。
The
Run/Stop/トリガ制御回路312は、ホストコンピュータ40からの指示に従い、デュアルクロックFIFO310、311から読み出される受信データのメモリ316への書き込みを開始・停止し、前記受信データを監視し、予めホストコンピュータ40により設定されたトリガ条件に合致する条件を発見したとき、メモリ316への書き込みを停止する。
The run / stop /
タイムベース回路314は、モニタクロックやメモリクロックをカウントすることにより時刻情報を作成する。特に、後述する基準ビットの遅延を変化させながら、極性の判別を行う際の基準エッジ位置はタイムベース回路314にてモニタクロックをカウントすることにより得る。
The
タイムスタンプ付加回路315は、タイムベース回路314から受け取った時刻情報を受信したモニタデータに添えてメモリ316に出力する。
The time
メモリ316は受信したモニタデータをリアルタイムに取り込み、保持する機能を有し、DDR3(Double Data Rate 3) SDRAM(Synchronous Dynamic Random Access Memory)やQDR(Quad Data Rate) SRAM(Static Random Access Memory)などにより実現される。
The
読み出し制御回路317は、ホストコンピュータ40からの要求に応じてメモリ316に記憶されたモニタデータを読み出し、ホストI/F318を経由してホストコンピュータ40に送信する。
The
ホストI/F318は、ホストコンピュータ40からの指令をロジック解析端末の各部に送出し、それら指令への各部からの応答をホストコンピュータ40に返送する。
The host I /
JTAGブリッジ305は、観測対象FPGA20とホストI/F318の中間に設置されることで、ホストコンピュータ40からの指令を観測対象FPGAに送出し、それら指令への応答をホストコンピュータ40に返送する。
The
次に、モニタデータマルチプレクサ、モニタクロックマルチプレクサ、試験データマルチプレクサの構成を説明する。 Next, the configuration of the monitor data multiplexer, the monitor clock multiplexer, and the test data multiplexer will be described.
観測対象FPGAが2入力LUTを有する品種の場合には、すでに説明したDNF形式による2入力マルチプレクサを、単位グリッチフリーマルチプレクサとして利用することができる。ただし、FPGAは、より多入力のLUTを備えることが多く、それらのLUTを2入力LUTとして使用することは不可能ではないが、不経済である。そこで、3入力以上のLUT 1個でグリッチフリーマルチプレクサを構成することを考える。 When the observation target FPGA is a product having a 2-input LUT, the 2-input multiplexer in the DNF format already described can be used as a unit glitch-free multiplexer. However, FPGAs often have more input LUTs, and using these LUTs as 2-input LUTs is not impossible, but uneconomical. Therefore, consider forming a glitch-free multiplexer with one LUT having three or more inputs.
LUTがグリッチを発生させない信号遷移の条件は、例えば以下の(I)又は(II)のようになる。 The condition for signal transition that does not cause the glitch in the LUT is, for example, the following (I) or (II).
(I)入力のうちのいずれか1ビットの極性が反転する。 (I) The polarity of any one of the inputs is inverted.
(II)複数の入力が同時に極性を反転させる場合で、その途中、入力間の微小な遅延により生じ得るすべての入力の組み合わせにより参照されるLUTマスク(SRAMセル)が保持するビットの極性が、同一の極性である。 (II) In the case where a plurality of inputs simultaneously invert the polarity, the polarity of the bit held by the LUT mask (SRAM cell) referenced by all input combinations that may occur due to a minute delay between the inputs is They have the same polarity.
ここで、図17(A)に示すように、3入力LUTを用いて、2入力マルチプレクサを実現した例について説明する。図17の例において、LUTマスク(SRAMセルの記憶内容)は、S入力が0のときは、X入力の極性と同じ極性がZ出力に現れる。また、S入力が1のときはY入力の極性がZ出力に現れる。一般的なマルチプレクサには、S入力により選択中の入力の極性が変化するとき、出力が0→1→0→・・・→1→0→1と数回反転し、グリッチが発生するものも存在する。図17(A)に示すマルチプレクサは、上記(I)の条件を満たすことから、この問題が発生しないことは勿論である。 Here, an example in which a two-input multiplexer is realized using a three-input LUT as shown in FIG. In the example of FIG. 17, the LUT mask (stored contents of the SRAM cell) has the same polarity as the polarity of the X input at the Z output when the S input is 0. When the S input is 1, the polarity of the Y input appears in the Z output. In general multiplexers, when the polarity of the selected input is changed by the S input, the output is inverted several times from 0 → 1 → 0 →... → 1 → 0 → 1 and a glitch occurs. Exists. The multiplexer shown in FIG. 17A satisfies the above condition (I), so that this problem does not occur.
図17(B)の真理値表より、X、Y入力が同時に変化する場合、上記(I)の条件には該当しないが、S入力が一定である限り、上記(II)の条件が該当することがわかる。 From the truth table of FIG. 17B, when the X and Y inputs change simultaneously, the condition (I) is not met, but the condition (II) is met as long as the S input is constant. I understand that.
図17(C)のタイミングチャートの第1の拡大図(図17(D))は、S=0一定の時、XとYが同時に変化してもグリッチを生じない様子を示している。S入力が変化するときにはこの限りではなく、図17(C)のタイミングチャートの拡大図(図17(E))に示したように、遅延の影響により最終的な静定状態に辿り着く前に一瞬だけ他の入力状態が発生するためグリッチが発生する。 A first enlarged view (FIG. 17D) of the timing chart of FIG. 17C shows a state in which no glitch occurs even when X and Y change simultaneously when S = 0 is constant. This is not the case when the S input changes. As shown in the enlarged view (FIG. 17E) of the timing chart of FIG. 17C, before reaching the final static state due to the influence of the delay. A glitch occurs because another input state occurs for a moment.
しかしながら、通常のデバッグ作業では、モニタ面に切り替える瞬間のモニタ波形は、興味の対象とはならない。このため、事実上、S入力の変化により発生するグリッチは無視しても良いことになる。 However, in normal debugging work, the monitor waveform at the moment of switching to the monitor surface is not an object of interest. For this reason, the glitch generated due to the change of the S input can be ignored.
なお、LUTの構造は、FPGAの品種により異なるため、必ずしも上記の挙動になるとは限らない。なお、このような単位グリッチフリーマルチプレクサをハードウェア記述言語により記述する場合は、論理合成ソフトウェアによる論理回路の最適化の挙動に注意する必要がある。 Note that the LUT structure differs depending on the type of FPGA, and thus the above behavior is not always obtained. Note that when such a unit glitch free multiplexer is described in a hardware description language, it is necessary to pay attention to the behavior of logic circuit optimization by logic synthesis software.
以下のリスト1は、2入力グリッチフリーマルチプレクサをVHDL言語により記述したものである。通常、このモジュールを多数並べても、論理合成ソフトウェアが面積や速度あるいは消費電力を優先して論理回路の構成を変形してしまう可能性があり、意図したとおりに実装されるとは限らない。
そこで、例えばリスト2に示すように、「keep属性」を与えた中間ノードを作成する方法が知られている。「keep属性」は、論理合成ソフトウェアがその属性が付されたノードを最適化の過程で消失させることを防止する属性である。
Therefore, for example, as shown in
論理合成ソフトウェアによっても、挙動は異なるが、本実施形態の検証で使用した論理合成ソフトウェアでは、「keep属性」が与えられた中間ノードは、必ずLUTの出力として最適化されずに残ることが分かっている。したがって、意図したとおりのマルチプレクサとすることができる。 Although the behavior differs depending on the logic synthesis software, the logic synthesis software used in the verification of this embodiment shows that the intermediate node given the “keep attribute” is always left unoptimized as the output of the LUT. ing. Therefore, the multiplexer can be as intended.
[リスト1]
library ieee;
use ieee.std_logic_1164.all;
entity MUX2to1 is port(
X, Y : in std_logic;
S : in std_logic;
Z : out std_logic;
end MUX2to1;
architecture RTL of MUX2to1 is
begin
process (S, X, Y)
begin
case S is
when '0' => Z <= X;
when '1' => Z <= Y;
end case;
end process;
end RTL;
[リスト1おわり]
[List 1]
library ieee;
use ieee.std_logic_1164.all;
entity MUX2to1 is port (
X, Y: in std_logic;
S: in std_logic;
Z: out std_logic;
end MUX2to1;
architecture RTL of MUX2to1 is
begin
process (S, X, Y)
begin
case S is
when '0'=> Z <= X;
when '1'=> Z <= Y;
end case;
end process;
end RTL;
[End of List 1]
[リスト2]
library ieee;
use ieee.std_logic_1164.all;
entity MUX2to1_no_opt is port(
X, Y : in std_logic;
S : in std_logic;
Z : out std_logic;
end MUX2to1_no_opt;
architecture RTL of MUX2to1_no_opt is
signal Z_int : std_logic;
attribute keep : boolean;
attribute keep of Z_int : signal is true;
begin
process (S, X, Y)
begin
case S is
when '0' => Z_int <= X;
when '1' => Z_int <= Y;
end case;
end process;
Z <= Z_int;
end RTL;
[リスト2おわり]
[List 2]
library ieee;
use ieee.std_logic_1164.all;
entity MUX2to1_no_opt is port (
X, Y: in std_logic;
S: in std_logic;
Z: out std_logic;
end MUX2to1_no_opt;
architecture RTL of MUX2to1_no_opt is
signal Z_int: std_logic;
attribute keep: boolean;
attribute keep of Z_int: signal is true;
begin
process (S, X, Y)
begin
case S is
when '0'=> Z_int <= X;
when '1'=> Z_int <= Y;
end case;
end process;
Z <= Z_int;
end RTL;
[End of List 2]
上記リスト1、2は、3入力LUTの場合であるが、より多数の入力を備えるLUTの場合でも同様に拡張可能である。たとえば6入力のLUTを使用すれば、4ビットのデータ入力を2ビットの選択信号入力により選択出力する4入力マルチプレクサを構成できる。 The above lists 1 and 2 are for a three-input LUT, but can be expanded in the same way for a LUT with a larger number of inputs. For example, if a 6-input LUT is used, a 4-input multiplexer that selectively outputs 4-bit data input by 2-bit selection signal input can be configured.
また、クロック信号用のマルチプレクサとしては、マルチプレクサの選択信号入力の極性切り替わり時点も含めて、出力にグリッチの伝搬することがない、いわゆる、グリッチフリー・スイッチオーバー(glitch free switch-over)が可能な構成を用いてもよい。マルチプレクサの選択信号入力の極性切り替わり時点の動作は重要ではなく、必要なら関連する回路に対してモニタクロックの切り替え後にリセットをして復旧をさせても良い。モニタデータマルチプレクサと同じように選択信号入力が静定状態のときにグリッチが発生しないことが保証されていれば十分である。 In addition, as a multiplexer for clock signals, so-called glitch free switch-over, in which no glitch propagates to the output, including when the polarity of the selection signal input of the multiplexer is switched, is possible. A configuration may be used. The operation at the time of switching the polarity of the selection signal input of the multiplexer is not important, and if necessary, the associated circuit may be reset and restored after switching the monitor clock. As with the monitor data multiplexer, it is sufficient to ensure that no glitches occur when the selection signal input is in a static state.
次に、観測対象ノードが組み合わせ論理回路の出力になっている場合のタイミング制約について説明する。 Next, timing constraints when the observation target node is the output of the combinational logic circuit will be described.
本実施形態においては、観測対象ノードから遅延補正回路に至る経路はタイミング緩和条件を付して配置配線をすることが可能になる。観測対象ノードが組み合わせ論理回路の出力になっている場合は、スキューの影響により意図した通りの波形が得られなくなることがある。このため、組み合わせ論理回路の入力信号を駆動するフリップフロップから観測対象ノードまでの経路は、スキューが問題にならない程度に収まるように、タイミング制約を付する必要がある。このような制約は、前述した公知のSDC形式などにより与えることができる。 In the present embodiment, the route from the observation target node to the delay correction circuit can be placed and routed with a timing relaxation condition. When the observation target node is an output of a combinational logic circuit, the intended waveform may not be obtained due to the influence of skew. For this reason, it is necessary to place a timing constraint on the path from the flip-flop that drives the input signal of the combinational logic circuit to the observation target node so that the skew does not become a problem. Such restrictions can be given by the known SDC format described above.
図18は、実施形態におけるタイミング制約の付し方を説明する図である。タイミング制約の範囲をフリップフロップ120−1、120−2の出力(FF1出力、FF2出力)から観測対象であるANDゲート123の出力(観測対象ノード)までにとどめている。このため、ANDゲート123の2つの入力(AND入力1、2)間のスキューは、許容範囲内に収められ、全体的な配置配線に大きな悪影響を与えることもない。ANDゲート123の出力以降は、タイミング制約を付していない(タイミング緩和条件で配置配線されている)。
FIG. 18 is a diagram for explaining how to apply timing constraints in the embodiment. The range of timing constraints is limited from the outputs (FF1 output and FF2 output) of the flip-flops 120-1 and 120-2 to the output (observation target node) of the AND
しかしながら、図18(B)に示すように、観測対象ノード(ANDゲート123の出力)に仮に1クロック周期以上の遅延が発生しても、他のモニタビットを遅延補正回路211によって遅延させることで、相対的な時間関係をそろえることが可能となる。このため、波形観測に支障を生じることはない。なお、組み合わせ論理回路の出力が観測ノードになる場合、当該ノードが論理合成ソフトウェアの最適化の結果消えてしまうことがある。そのような場合、keep属性などを用いて最適化を抑制することができる。
However, as shown in FIG. 18B, even if a delay of one clock cycle or more occurs in the observation target node (the output of the AND gate 123), the
図19は、本実施形態における試験信号発生回路(図15の209)の出力波形を示す。この波形は、モニタクロックのクロックの16周期毎に極性を反転させたものである(1周期は32モニタクロッククロックサイクル)。このような波形は、5ビットカウンタ回路のMSB(Most Significant Bit)を利用して発生することができる。なお、試験信号発生回路209は1系統のみ設置し、同じ試験信号を、モニタデータの各ビットに分配する。 FIG. 19 shows an output waveform of the test signal generation circuit (209 in FIG. 15) in the present embodiment. This waveform is obtained by inverting the polarity every 16 periods of the clock of the monitor clock (one period is 32 monitor clock clock cycles). Such a waveform can be generated using MSB (Most Significant Bit) of a 5-bit counter circuit. Note that only one test signal generation circuit 209 is installed, and the same test signal is distributed to each bit of the monitor data.
次に、モニタデータの遅延補正の原理を詳細に説明する。本実施形態において、遅延補正箇所は、図13のFPGA20の内部の遅延補正回路211において、シリアル送信回路215にて伝送する高速シリアルモニタに対して遅延を補正するものと、FPGA20のI/Oピン(図13の220)に出力されたパラレルモニタ信号の遅延補正を、ロジック解析端末30内の遅延補正回路(図18の306、308)で行うものの2種類が存在する。
Next, the principle of monitor data delay correction will be described in detail. In the present embodiment, the delay correction location includes the
シリアルモニタは、観測対象ノードと同じFPGAチップ20上に存在し、遅延補正値の計算は、すべてFPGAの配置配線結果をタイミング解析ソフトウェアにより解析して得られる結果のみで完結する。
The serial monitor exists on the
図20(A)、(B)は、図13において、モニタ経路にシリアル送信回路215を含む高速シリアルモニタに関して、特定のモニタ面の特定のビットnに着目して整理したFPGA20内の遅延を模式的に示す図である。図20(B)に示すように、モニタクロックの経路にかかわる遅延Y(n)は次の要素に分解できる。
FIGS. 20A and 20B schematically show delays in the
・Dclk_cmux:観測対象回路を駆動するクロック源204からモニタクロックマルチプレクサ207までの遅延。
Dclk_cmux: Delay from the
・Dcmux_FIFO:モニタクロックマルチプレクサ207からデュアルクロックFIFO213までの遅延。
Dcmux_FIFO: Delay from the
モニタデータの経路にかかわる遅延X(n)は以下の要素に分解できる。 The delay X (n) related to the monitor data path can be decomposed into the following elements.
・Dclk_tgt(n):観測対象回路を駆動するクロック源204から観測対象回路出力段FF201までの遅延。
Dclk_tgt (n): Delay from the
・Dtgt_dmux(n):観測対象回路(組み合わせロジックがある場合には、これも含む)からモニタデータマルチプレクサ206までの遅延。
Dtgt_dmux (n): Delay from the observation target circuit (including combination logic if any) to the
・Ddmux_adj(n):モニタデータマルチプレクサ206から遅延補正回路211までの遅延。
Ddmux_adj (n): Delay from the
・Dadj(n):遅延補正回路211とマルチプレクサ212による遅延補正値。
Dadj (n): Delay correction value by the
デュアルクロックFIFO213のデータ入力地点でモニタデータとモニタクロックの遅延のスキューがなくなるには、次式(1)が成立すればよい。左辺は、クロック経路の遅延Y(n)、右辺はデータ経路の遅延X(n)を示す。
In order to eliminate the delay skew between the monitor data and the monitor clock at the data input point of the
(Dclk_cmux + Dcmux_FIFO) = (Dclk_tgt(n) + Dtgt_dmux(n) + Ddmux_adj(n) + Dadj(n)) ・・・ (1) (Dclk_cmux + Dcmux_FIFO) = (Dclk_tgt (n) + Dtgt_dmux (n) + Ddmux_adj (n) + Dadj (n)) (1)
したがって、遅延補正回路211とマルチプレクサ212では、以下の遅延補正を行えば良いことになる。
Therefore, the
Dadj(n) = (Dclk_cmux + Dcmux_FIFO) - (Dclk_tgt(n) + Dtgt_dmux(n) + Ddmux_adj(n)) ・・・(2) Dadj (n) = (Dclk_cmux + Dcmux_FIFO)-(Dclk_tgt (n) + Dtgt_dmux (n) + Ddmux_adj (n)) (2)
ただし、実用に当たっては、上式(2)を直接用いることはない。その理由は、Dadj(n)が負の値となり、遅延補正回路として実現不可能になる可能性があることと、ビット間のスキューを補正してバスとしての信号タイミングをそろえることができないためである。 However, in practical use, the above equation (2) is not directly used. The reason is that Dadj (n) has a negative value and may not be realized as a delay correction circuit, and the skew between bits cannot be corrected to align the signal timing as a bus. is there.
上式(2)において、遅延補正値Dadj(n)は、デュアルクロックFIFO213地点でのモニタクロックの位相を、観測対象信号が当初セットアップされたクロックエッジに合わせる値である。
In the above equation (2), the delay correction value Dadj (n) is a value that matches the phase of the monitor clock at the
モニタデータの遅延よりもモニタクロックの遅延の方が大きい場合、つまり、
(Dclk_cmux + Dcmux_FIFO) < (Dclk_tgt(n) + Dtgt_dmux(n) + Ddmux_adj(n))
・・・(3)
となる場合、Dadj(n)が負の値となる。
If the monitor clock delay is larger than the monitor data delay, that is,
(Dclk_cmux + Dcmux_FIFO) <(Dclk_tgt (n) + Dtgt_dmux (n) + Ddmux_adj (n))
... (3)
In this case, Dadj (n) is a negative value.
実際には、モニタデータを識別するクロックエッジは、モニタデータをセットアップしたエッジと一致している必要はない。このため、以下に説明するように、遅延補正値Dadj(n)が正になるように、エッジをずらしても良いことになる(図21参照)。 In practice, the clock edge that identifies the monitor data need not coincide with the edge on which the monitor data was set up. Therefore, as described below, the edge may be shifted so that the delay correction value Dadj (n) becomes positive (see FIG. 21).
図21において、モニタクロック経路の遅延を、1モニタクロック周期Tmonclk以上の成分と未満の成分に分けるとき、後者Xを計算する。 In FIG. 21, when the delay of the monitor clock path is divided into a component of one monitor clock period Tmonclk or more and a component less than that, the latter X is calculated.
X = (Dclk_cmux + Dcmux_FIFO) - Tmonclk * Floor{(Dclk_cmux + Dcmux_FIFO) / Tmonclk} ・・・(4) X = (Dclk_cmux + Dcmux_FIFO)-Tmonclk * Floor {(Dclk_cmux + Dcmux_FIFO) / Tmonclk} (4)
ここで、Floor(x)はxの整数値への切り捨てを表すものとする。 Here, Floor (x) represents truncation of x to an integer value.
次に、モニタデータ経路の遅延を
Y(n)= Dclk_tgt(n) + Dtgt_dmux(n) + Ddmux_adj(n) ・・・ (5)
と置き、Y(n)よりも大きくモニタクロックのサイクルの整数倍となる最小のZ(n)を計算する。
Next, monitor data path delay
Y (n) = Dclk_tgt (n) + Dtgt_dmux (n) + Ddmux_adj (n) (5)
And calculate the minimum Z (n) which is larger than Y (n) and becomes an integral multiple of the monitor clock cycle.
Z(n)= Tmonclk*Ceil[Y(n)/Tmonclk] ・・・ (6)
Z (n) = Tmonclk * Ceil [Y (n) / Tmonclk] (6)
ここで、Ceil(x)はxの整数値への切り上げを表すものとする。 Here, Ceil (x) represents rounding up of x to an integer value.
すると、次のW(n):
W(n) = Z(n) + X - Y(n) ・・・(7)
は、非負、かつ、モニタビットnの安定点でモニタデータの極性を識別するための遅延補正量を与える。
Then the following W (n):
W (n) = Z (n) + X-Y (n) (7)
Gives a delay correction amount for identifying the polarity of monitor data at a non-negative and stable point of monitor bit n.
ただし、この遅延量は他のビットとのスキューを考慮していないので、ビットnをほかのモニタビットとともにバス信号として観測する場合には正しい観測結果とならない。そのため、もっとも遅延の大きいビットに合わせるために必要なモニタクロック周期数を次式(8)のCYCalign(n)として求める。 However, since this delay amount does not consider the skew with other bits, a correct observation result is not obtained when the bit n is observed as a bus signal together with other monitor bits. Therefore, the number of monitor clock cycles necessary to match the bit with the longest delay is obtained as CYCalign (n) in the following equation (8).
CYCalign(n) = Ceil[Max{Z(m)+X, m=0, m=mmax} / Tmonclk] - Ceil[{Z(n)+X} / Tmonclk]
・・・ (8)
CYCalign (n) = Ceil [Max {Z (m) + X, m = 0, m = mmax} / Tmonclk]-Ceil [{Z (n) + X} / Tmonclk]
(8)
ここで、Max{x(w),w=y,w=z}はx(w)の添え字wをyからzまで動かして得られる各x(w)のうち最大値を表すものとする。また、高速シリアルモニタのビット番号は0から数え始めものとし、ビット番号の最大値は、mmax+1であるとする。
Here, Max {x (w), w = y, w = z} represents the maximum value of each x (w) obtained by moving the subscript w of x (w) from y to z. . The bit number of the high-speed serial monitor starts from 0, and the maximum value of the bit number is
最終的には、W(n)にCYCalign(n)周期だけ遅延量を割り増す補正項を導入した以下の式(9)がビットnに適用すべき遅延量Dadj(n)となる。 Eventually, the following equation (9) in which a correction term for increasing the delay amount by the CYCalign (n) period is introduced into W (n) is the delay amount Dadj (n) to be applied to bit n.
Dadj(n) = W(n) + CYCalign(n)*Tmonclk ・・・ (9) Dadj (n) = W (n) + CYCalign (n) * Tmonclk (9)
図21は、2ビット(mmax=1)の観測対象信号に関して、2ビット間のスキューも考慮しつつ遅延補正を行う例を示している。 FIG. 21 shows an example in which delay correction is performed for a 2-bit (mmax = 1) observation target signal while taking into account the skew between the two bits.
X = (Dclk_cmux + Dcmux_FIFO) - Tmonclk * Floor{(Dclk_cmux + Dcmux_FIFO) / Tmonclk} ・・・ (10) X = (Dclk_cmux + Dcmux_FIFO)-Tmonclk * Floor {(Dclk_cmux + Dcmux_FIFO) / Tmonclk} (10)
Y(0)= Dclk_tgt(0) + Dtgt_dmux(0) + Ddmux_adj(0) ・・・(11) Y (0) = Dclk_tgt (0) + Dtgt_dmux (0) + Ddmux_adj (0) (11)
Z(0)= Tmonclk*Ceil[ Y(0)/Tmonclk ] ・・・(12) Z (0) = Tmonclk * Ceil [Y (0) / Tmonclk] (12)
W(0) = Z(0) + X - Y(0) ・・・(13) W (0) = Z (0) + X-Y (0) (13)
CYCalign(0) = Ceil[Max{Z(m)+X, m=0, m=1} / Tmonclk] - Ceil[{Z(0)+X} / Tmonclk]
=2-2=0 ・・・ (14)
CYCalign (0) = Ceil [Max {Z (m) + X, m = 0, m = 1} / Tmonclk]-Ceil [{Z (0) + X} / Tmonclk]
= 2-2 = 0 ・ ・ ・ (14)
Dadj(0) = W(0) + CYCalign(0)*Tmonclk= W(0) ・・・(15) Dadj (0) = W (0) + CYCalign (0) * Tmonclk = W (0) (15)
CYCalign(1) = Ceil[Max{Z(m)+X, m=0, m=1} / Tmonclk] - Ceil[{Z(1)+X} / Tmonclk]
=2-1=1 ・・・ (16)
CYCalign (1) = Ceil [Max {Z (m) + X, m = 0, m = 1} / Tmonclk]-Ceil [{Z (1) + X} / Tmonclk]
= 2-1 = 1 ・ ・ ・ (16)
Dadj(1) = W(1) + CYCalign(1)*Tmonclk= W(1)+Tmonclk ・・・ (17) Dadj (1) = W (1) + CYCalign (1) * Tmonclk = W (1) + Tmonclk (17)
観測対象信号n=1だけに着目すれば、クロック源204から遅延補正回路211の入力に至る経路の遅延は、1クロック周期未満である。観測対象信号n=0のクロック源204から遅延補正回路211の入力地点に至る経路の遅延は、1クロック周期より大きい。
Focusing only on the observation target signal n = 1, the delay of the path from the
このため、観測対象信号n=1については、
CYCalign(1) = 1
として、観測対象信号n=0に合わせ込んでいる。
For this reason, for the observation target signal n = 1,
CYCalign (1) = 1
As shown, the observation target signal n = 0.
次に、パラレルモニタの遅延補正手続きについて説明する。本実施形態において、パラレルモニタの経路上には、基板上の配線や接続に使用するコネクタ、ケーブルが存在するため、観測対象FPGAのタイミング解析をするだけでは不明な遅延要素が存在する。 Next, the delay correction procedure for the parallel monitor will be described. In the present embodiment, since there are connectors and cables used for wiring and connection on the substrate on the path of the parallel monitor, there are delay elements that are unknown only by analyzing the timing of the observation target FPGA.
この不明な遅延要素は、試験信号発生回路により発生させた波形のモニタクロックに対する遅延量を遅延補正回路により徐々に変化させながら取り込み、試験信号の既知のパターンが検出された時点として明らかにすることができる。既知の試験信号を利用して、データの取り込み位相を自動調整するための各種方法が知られている。 This unknown delay element is taken as the time point when the known pattern of the test signal is detected by taking in the delay amount of the waveform generated by the test signal generation circuit with respect to the monitor clock while gradually changing the delay amount by the delay correction circuit. Can do. Various methods for automatically adjusting the data acquisition phase using known test signals are known.
実施形態では、FPGAの配置配線を容易化するため、モニタ回路には、タイミング緩和条件を付している。このため、各経路の遅延は試験信号選択中と被観測信号の選択中(試験信号マルチプレクサにより選択)とで、FPGAの内部でも大きくばらつく。そのため、試験信号でデータが安定に取り込める位相に調整できても、その後観測対象ノードを含むモニタ面に切り替えた時点でFPGA内部での遅延量が変化してしまい、最適なデータ取り込み位相がずれてしまう場合がある。そこで、本実施形態では、試験信号を用いて求めた遅延補正量に対して、タイミング解析から計算により求めた、試験信号を出力するときの内部遅延と、観測対象のモニタ信号を出力するときの内部遅延の差分を含めることにより、解決を図っている。 In the embodiment, a timing relaxation condition is attached to the monitor circuit in order to facilitate the placement and routing of the FPGA. For this reason, the delay of each path varies greatly even inside the FPGA during the selection of the test signal and the selection of the signal under observation (selected by the test signal multiplexer). For this reason, even if the phase can be adjusted so that the data can be stably captured by the test signal, the amount of delay inside the FPGA changes at the time of switching to the monitor surface including the observation target node, and the optimum data capturing phase is shifted. May end up. Therefore, in the present embodiment, the internal delay when outputting the test signal, which is obtained by calculation from the timing analysis, and the output time when the monitor signal to be observed is output with respect to the delay correction amount obtained using the test signal. The solution is to include the difference in internal delay.
図22は、パラレルモニタにおいて、FPGA20が試験信号を出力しているときの特定の1ビットに着目して整理した各部の遅延を示す。まず、モニタクロックの経路にかかわる遅延は以下の要素に分解できる。
FIG. 22 shows the delays of the respective parts arranged by focusing on a specific bit when the
・Dclk_cmux:タイミング解析により確定される。観測対象回路を駆動するクロック源204からモニタクロックマルチプレクサ207までの遅延。
Dclk_cmux: Determined by timing analysis. Delay from the
・Dcmux_cpin:タイミング解析により確定される。モニタクロックマルチプレクサ27からモニタクロックピン出力までの遅延。
-Dcmux_cpin: Determined by timing analysis. Delay from
・Ducpin_anl:不確定遅延である。観測対象駆動クロック源からロジック解析端末30のデュアルクロックFIFO310までの遅延。
• D u cpin_anl: Indeterminate delay. Delay from the observation target drive clock source to the
なお、上付き添え字u (uncertain)はその記号であらわされる遅延が、タイミング解析では明らかにできない不確定な遅延(観測対象基板上の配線や、ケーブルなどの中間要素により生じる)であることを示す。 The superscript u (uncertain) indicates that the delay represented by the symbol is an indeterminate delay (caused by intermediate elements such as wiring on the observation target board or cable) that cannot be clarified by timing analysis. Show.
次に、試験信号面が選択されているときのモニタデータの経路にかかわる遅延は以下の要素に分解できる。 Next, the delay associated with the path of the monitor data when the test signal plane is selected can be decomposed into the following elements.
・Dclk_tst:タイミング解析により確定される。観測対象駆動クロック源204から試験信号発生回路209までの遅延。
• Dclk_tst: Determined by timing analysis. Delay from the observation target
・Dtst_tmux(n):タイミング解析により確定される。試験信号発生回路209から試験信号マルチプレクサ208までの遅延。
Dtst_tmux (n): Determined by timing analysis. Delay from test signal generation circuit 209 to test
・Ddmux_mpin(n):タイミング解析により確定される。試験信号マルチプレクサ208からパラレルモニタピン(モニタ出力)220までの遅延。
Ddmux_mpin (n): Determined by timing analysis. Delay from
・Dumpin_anl(n):不確定遅延:パラレルモニタピン(モニタ出力)220かららロジック解析端末30のモニタ入力までの遅延。
· D u mpin_anl (n): uncertain delay: Parallel monitoring pin delay to (monitor output) 220 Carrara monitor input of the
・Dtstadj(n):後述する探索手続きにより確定される:ロジック解析端末30のモニタ入力からのデュアルクロックFIFO310までの遅延(試験信号を正常受信出来たときの遅延)。
Dtstadj (n): determined by a search procedure to be described later: a delay from the monitor input of the
なお、試験信号は全モニタビット共通の回路が1系統だけあり、各モニタビットに同じ信号を分配している。このため、Dclk_tstには添え字nはない。 The test signal has only one circuit common to all monitor bits, and the same signal is distributed to each monitor bit. For this reason, there is no subscript n in DClk_tst.
ここで、計算手続きの第一段階では、後述するようにロジック解析端末30にて試験信号を受信する。
Here, in the first stage of the calculation procedure, a test signal is received by the
クロックとデータのスキューが揃う条件は次式(18)で与えられる。左辺はクロック経路の遅延、右辺はモニタデータ経路の遅延を表す。 The condition that clock and data skews are equal is given by the following equation (18). The left side represents the delay of the clock path, and the right side represents the delay of the monitor data path.
(Dclk_cmux + Dcmux_cpin + Ducpin_anl) = (Dclk_tst + Dtst_tmux(n) + Dmux_mpn(n) + Dumpin_anl(n) + Dtstadj(n)) ・・・ (18) (Dclk_cmux + Dcmux_cpin + D u cpin_anl) = (Dclk_tst + Dtst_tmux (n) + Dmux_mpn (n) + D u mpin_anl (n) + Dtstadj (n)) (18)
ここで、
A(n) = Dclk_tst + Dtst_tmux(n) + Dmux_mpn(n) ・・・ (19)
here,
A (n) = Dclk_tst + Dtst_tmux (n) + Dmux_mpn (n) (19)
C(n) = Dtstadj(n) ・・・(20) C (n) = Dtstadj (n) (20)
U(n) = Ducpin_anl - Dumpin_anl(n) ・・・(21) U (n) = D u cpin_anl-D u mpin_anl (n) (21)
V(n) = Dclk_cmux + Dcmux_cpin ・・・ (22) V (n) = Dclk_cmux + Dcmux_cpin (22)
とすれば、クロック―データ間スキューのうちコネクタやケーブルなどの中間要素による不確定な成分U(n)は次式(23)として計算できる。 Then, an uncertain component U (n) due to an intermediate element such as a connector or a cable among the clock-data skews can be calculated as the following equation (23).
U(n) = A(n) + C(n) - V(n) ・・・(23) U (n) = A (n) + C (n)-V (n) (23)
なお、式(23)において、右辺のC(n) = Dtstadj(n)は、後述する遅延測定手続きを実行することで確定する。 In Expression (23), C (n) = Dtstadj (n) on the right side is determined by executing a delay measurement procedure described later.
一方、図23に、パラレルモニタに関して、FPGAが観測対象信号を出力しているときの、特定の1ビットに着目して整理した各部の遅延を示す。モニタクロック経路の遅延は試験信号を出力しているときと同様である。 On the other hand, FIG. 23 shows the delay of each part arranged focusing on one specific bit when the FPGA is outputting the observation target signal regarding the parallel monitor. The delay of the monitor clock path is the same as when the test signal is output.
データ経路の遅延は以下の要素に分解される。 Data path delay is broken down into the following elements:
・Dclk_tgt(n):観測対象駆動クロック源204から観測測対象回路の出力段のフリップフロップ201までの遅延。タイミング解析により確定する。
Dclk_tgt (n): Delay from the observation target
・Dtgt_dmux(n):観測対象ノード(場合により組み合わせ論理回路の出力からモニタデータマルチプレクサ206までの遅延。タイミング解析により確定する。
Dtgt_dmux (n): Observation target node (in some cases, a delay from the output of the combinational logic circuit to the
・Ddmux_tmux(n):モニタデータマルチプレクサ206から試験信号マルチプレクサ208までの遅延。タイミング解析により確定する。
Ddmux_tmux (n): Delay from the
・Dmux_mpin(n):試験信号マルチプレクサ208からパラレルモニタピン(モニタ出力)220までの遅延。タイミング解析により確定する。
Dmux_mpin (n): Delay from the
・Dumpin_anl(n):パラレルモニタピン(モニタ出力)220からロジック解析端末30までの遅延。不確定遅延。
D u mpin_anl (n): Delay from the parallel monitor pin (monitor output) 220 to the
・Dtgtadj(n):最終的に計算される遅延補正値。 Dtgtadj (n): The delay correction value that is finally calculated.
クロックエッジとデータエッジが揃う条件は次式(24)で与えられる。左辺はモニタクロック経路の遅延、右辺はモニタデータ経路の遅延を表す。 The condition that the clock edge and the data edge are aligned is given by the following equation (24). The left side represents the delay of the monitor clock path, and the right side represents the delay of the monitor data path.
(Dclk_cmux + Dcmux_cpin + Ducpin_anl) = (Dclk_tgt(n) + Dtgt_dmux(n) + Ddmux_tmux(n) + Dmux_mpin(n) + Dumpin_anl(n) + Dtgtadj(n)) ・・・ (24) (Dclk_cmux + Dcmux_cpin + D u cpin_anl) = (Dclk_tgt (n) + Dtgt_dmux (n) + Ddmux_tmux (n) + Dmux_mpin (n) + D u mpin_anl (n) + Dtgtadj (n)) (24)
したがって、クロックエッジとデータエッジを揃えるための最適遅延補正量は次式(25)となる。 Therefore, the optimum delay correction amount for aligning the clock edge and the data edge is expressed by the following equation (25).
Dtgtadj(n) = (Dclk_cmux + Dcmux_cpin) - (Dclk_tgt(n) + Dtgt_dmux(n) + Ddmux_tmux(n) + Dmux_mpin(n)) + (Ducpin_anl - Dumpin_anl(n)) ・・・(25) Dtgtadj (n) = (Dclk_cmux + Dcmux_cpin)-(Dclk_tgt (n) + Dtgt_dmux (n) + Ddmux_tmux (n) + Dmux_mpin (n)) + (D u cpin_anl-D u mpin_anl (n)) ... (25 )
B(n) = Dclk_tgt(n) + Dtgt_dmux(n) + Ddmux_tmux(n) + Dmux_mpin(n) ・・・(26)
とすれば、上式(25)は次式(27)で表される。
B (n) = Dclk_tgt (n) + Dtgt_dmux (n) + Ddmux_tmux (n) + Dmux_mpin (n) (26)
Then, the above equation (25) is expressed by the following equation (27).
Dtgtadj(n) = V(n) - B(n) + U(n) ・・・(27) Dtgtadj (n) = V (n)-B (n) + U (n) (27)
ここで、不確定遅延成分であるU(n)は、上記のとおり
U(n) = A(n) + C(n) - V(n) ・・・(28)
であることから、最終的な遅延補正値Dtgtadj(n)は次式(29)で与えられる。
Here, U (n), which is an uncertain delay component, is as described above.
U (n) = A (n) + C (n)-V (n) (28)
Therefore, the final delay correction value Dtgtadj (n) is given by the following equation (29).
Dtgtadj(n) = A(n) - B(n) + C(n) ・・・(29) Dtgtadj (n) = A (n)-B (n) + C (n) (29)
A(n)、B(n)の各成分はタイミング解析より所与であり、C(n)は遅延測定手続きにより測定済みであるため、Dtgtadj(n)が計算可能となる。 Since each component of A (n) and B (n) is given from the timing analysis and C (n) has been measured by the delay measurement procedure, Dtgtadj (n) can be calculated.
なお、モニタクロックに関わる遅延V(n)は、計算過程で消失する。このことは、試験信号受信時と、観測対象受信時で、モニタクロックに関する経路は不変である、ことからも明らかである。 Note that the delay V (n) related to the monitor clock disappears in the calculation process. This is also clear from the fact that the path related to the monitor clock is unchanged when the test signal is received and when the observation target is received.
なお、高速シリアルモニタの場合も同様にして、遅延補正値Dtgtadj(n)が負の値になることを防ぎ、ビット間のスキューを吸収させるために、実用上は、Dtgtadj(n)には、モニタクロックの整数倍の遅延を加算する修正項を含める必要がある。この遅延も含めたDtgtadj(n)の計算方法は、以下に示す手続きを行う過程で、自動的に考慮される。 Similarly, in the case of a high-speed serial monitor, in order to prevent the delay correction value Dtgtadj (n) from becoming a negative value and absorb the skew between bits, in practice, Dtgtadj (n) It is necessary to include a correction term that adds a delay that is an integral multiple of the monitor clock. The calculation method of Dtgtadj (n) including this delay is automatically considered in the process of performing the following procedure.
上記原理を用いて、パラレルモニタのあるモニタ面について、各モニタビットに適用すべき遅延補正値を測定する手続きを以下に説明する。以下の説明では、図24を参照する。図24は、パラレルモニタの遅延測定手続きを説明する図である。 A procedure for measuring a delay correction value to be applied to each monitor bit on a monitor surface having a parallel monitor using the above principle will be described below. In the following description, reference is made to FIG. FIG. 24 is a diagram for explaining the delay measurement procedure of the parallel monitor.
ビット間スキューを吸収し、ビット間のアラインメントを確保するために、アラインメントの基準になるビットを代表で1ビット選択する(以下基準ビットMと称する)。これは、どのビットであっても良い。 In order to absorb inter-bit skew and ensure alignment between bits, one bit is selected as a representative bit for alignment (hereinafter referred to as reference bit M). This can be any bit.
図24において、
(a)はモニタクロック(試験信号発生回路入力点)、
(b)は試験信号発生回路出力、
(c)はモニタクロック(ロジック解析端末FIFO地点)、
(d)は試験信号(試験信号発生回路地点)、
(e)はデータビットM(基準ビット)(遅延補正回路通過前)、
(f)はデータビットM(基準ビット)(遅延補正回路通過後、1→0変化点探索開始直後)、
(g)はデータビットM(基準ビット)(遅延補正回路後、1→0変化点探索完了時)、(h)はデータビットN(従属ビット)(遅延補正回路通過前)、
(i)はデータビットN(従属ビット)(遅延補正回路通過後、1→0変化点探索開始直後)、
(j)はデータビットN(従属ビット)(遅延補正回路後、1→0変化点探索完了時)の波形である。
In FIG.
(A) is the monitor clock (test signal generation circuit input point),
(B) is a test signal generation circuit output,
(C) is the monitor clock (logic analysis terminal FIFO point),
(D) is a test signal (test signal generation circuit point),
(E) is a data bit M (reference bit) (before passing through the delay correction circuit),
(F) is a data bit M (reference bit) (after passing through the delay correction circuit, immediately after starting the 1 → 0 change point search),
(G) is data bit M (reference bit) (after delay correction circuit, when 1 → 0 change point search is completed), (h) is data bit N (subordinate bit) (before passing through delay correction circuit),
(I) is data bit N (subordinate bit) (after passing through the delay correction circuit, immediately after 1 → 0 change point search is started),
(J) is a waveform of data bit N (dependent bit) (after completion of delay correction circuit, when 1 → 0 change point search is completed).
(c)のモニタクロックの(1):1→0変化点探索開始直後であり、試験信号の極性が0→1に切り替わるエッジをビット間アラインの基準に設定する。 (1) of the monitor clock (1): Immediately after starting the search for the change point of 1 → 0, the edge at which the polarity of the test signal switches from 0 → 1 is set as the reference for the alignment between bits.
(g)の(1):ビット間アライン基準エッジで取り込んだ信号の極性が1→0に切り替わったときに探索が完了する。 (1) in (g): The search is completed when the polarity of the signal received at the inter-bit alignment reference edge is switched from 1 to 0.
(i)において、従属ビットは遅延補正0から探索を開始する。
In (i), the dependent bit starts searching from
(j)の(1):ビット間アライン基準エッジで取り込んだ信号の極性が1→0に切り替わったときに探索が完了する。 (J) (1): The search is completed when the polarity of the signal received at the inter-bit alignment reference edge is switched from 1 to 0.
図25は、本発明の実施形態において、基準ビットMの最適遅延補正量の計算手続きを示すフローチャートである。 FIG. 25 is a flowchart showing a procedure for calculating the optimum delay correction amount of the reference bit M in the embodiment of the present invention.
初めに、ホストコンピュータ(不図示)上で動作するソフトウェアは、観測対象FPGAのタイミング解析結果を読み込む(ステップS1)。 First, software operating on the host computer (not shown) reads the timing analysis result of the observation target FPGA write No (step S1).
基準ビットMについて、図22の試験信号発生回路209を駆動するクロック源204から基準ビットMのモニタデータピン220に至る経路の遅延解析結果A(M)を検索し記憶する(ステップS2)。
For the reference bit M, the delay analysis result A (M) of the path from the
図23において、モニタ面Xの観測対象ノードMを駆動するクロック源204から基準ビットMのモニタデータピン220に至る経路の遅延解析結果B(M)を検索し、記憶しておく(ステップS3)。
In FIG. 23, the delay analysis result B (M) of the path from the
遅延解析結果A(M) = Dclk_tst + Dtst_dmux(M) + Ddmux_mpn(M) ・・・ (30) Delay analysis result A (M) = Dclk_tst + Dtst_dmux (M) + Ddmux_mpn (M) (30)
遅延解析結果B(M) = Dclk_tgt(M) + Dtgt_dmux(M) + Ddmux_tmux(M) + Dmux_mpin(M) ・・・ (31) Delay analysis result B (M) = Dclk_tgt (M) + Dtgt_dmux (M) + Ddmux_tmux (M) + Dmux_mpin (M) (31)
次に、ホストコンピュータ40上で動作するソフトウェア402は、観測対象FPGA20に対してロジック解析端末30を通じてモニタ面を試験信号面に切り替える指令を送信する(ステップS4)。
Next, the
ここで、遅延補正量が負となり、実現不可能となることを避けるために、遅延補正量の計算過程で、予め各ビットには、遅延補正回路(図22、図23の306)にて補正可能な最大遅延量の半分に相当する遅延オフセットを付加し、最終的に適用する遅延補正量が、最大遅延量の約半分の遅延量の付近に分布するようにする。 Here, in order to avoid that the delay correction amount becomes negative and cannot be realized, each bit is corrected in advance by a delay correction circuit (306 in FIGS. 22 and 23) in the process of calculating the delay correction amount. A delay offset corresponding to half of the maximum possible delay amount is added so that the finally applied delay correction amount is distributed in the vicinity of the delay amount that is about half of the maximum delay amount.
このために、ホストコンピュータ40上で動作するロジック解析ソフト(ソフトウェア)402は、ロジック解析端末30内の遅延補正回路306に対して、設定可能な最大遅延の半分に相当する遅延を設定する指令を送信する(ステップS5)。なお、遅延補正回路306に設定可能な最大遅延量は、補正しようとする遅延量に比して十分に大きいものとする。
For this purpose, the logic analysis software (software) 402 operating on the
この時点で、ロジック解析端末30では試験信号が受信されていることから、ホストコンピュータ40上で動作するロジック解析ソフトウェア402は、ロジック解析端末30のRun/Stop/トリガ制御回路312に、Run指令(メモリ316への書き込み開始指令)を送信し、読み出し制御回路317を介して受信した試験信号の取り込みを行う。
At this time, since the test signal is received in the
ホストコンピュータ40上で動作するロジック解析ソフトウェア402は、取り込んだ試験信号を解析し、信号極性が0から1に変化しているモニタクロックのエッジを特定し、これを「基準エッジ」とする(ステップS6)。
The
この基準エッジにより、タイムベース回路314内のカウンタ(不図示)を初期化し、以後、タイムベース回路314内のカウンタ(不図示)はモニタクロックに同期してカウント動作を行う。
With this reference edge, a counter (not shown) in the
タイムベース回路314内のカウンタ(不図示)は試験信号と同じ周期(32モニタクロック周期)で再び初期化し、このタイミングを、次の周期における基準エッジとする。
A counter (not shown) in the
ホストコンピュータ40は、基準エッジを基準とすることで、試験信号の極性切り替わり点の変化を認識できることができる。
The
次に、ホストコンピュータ40上で動作するロジック解析ソフトウェア402は、ロジック解析端末30内の遅延補正回路306に対して、遅延を1ステップ増加するよう指令を送信し、試験信号の取り込みを行う(ステップS7)。
Next, the
ここで、ビット間アライン基準エッジの発生時刻に受信した信号極性が1であるか0であるかの判別(基準エッジにおける信号極性が1→0に変化したか判別)を行い(ステップS8)、変化しない信号極性が0になるまで、ステップS7にて、遅延の1ステップずつ増加させる。 Here, it is determined whether the signal polarity received at the time of occurrence of the inter-bit alignment reference edge is 1 or 0 (determining whether the signal polarity at the reference edge has changed from 1 to 0) (step S8). In step S7, the delay is increased by one step until the signal polarity that does not change becomes zero.
ビット間アライン基準エッジにおける信号極性が0に変化したら、そのときの遅延量C(M)を記憶する(ステップS9)。 When the signal polarity at the inter-bit alignment reference edge changes to 0, the delay amount C (M) at that time is stored (step S9).
次に、ホストコンピュータ40上で動作するロジック解析ソフトウェア402は、以下の遅延量を計算する(ステップS10)。
Next, the
遅延解析結果A(M)− 遅延解析結果B(M)+ 遅延量C(M) ・・・ (32) Delay analysis result A (M)-Delay analysis result B (M) + Delay amount C (M) (32)
この遅延量が、基準ビットに対するクロックエッジとデータエッジを揃えるための最適遅延補正量Dtgtadj(M)(図23(B)参照)となる。 This delay amount becomes the optimum delay correction amount Dtgtadj (M) (see FIG. 23B) for aligning the clock edge and the data edge with respect to the reference bit.
基準ビットの最適遅延補正量の計算が完了したら、残りのすべてのモニタビット(以後「従属データビットN」)の最適遅延量の計算手続きを実行する。 When the calculation of the optimum delay correction amount of the reference bit is completed, the procedure for calculating the optimum delay amount of all the remaining monitor bits (hereinafter “subordinate data bit N”) is executed.
図26は、従属ビットNの遅延補正量計算手順を説明するフローチャートである。 FIG. 26 is a flowchart for explaining the delay correction amount calculation procedure for the dependent bit N.
遅延解析結果A、Bを記憶するまでの手順は、図25の基準ビットの手続き(ステップS1〜S3)と同様である(ステップS21〜S23)。 The procedure until the delay analysis results A and B are stored is the same as the reference bit procedure (steps S1 to S3) in FIG. 25 (steps S21 to S23).
次に、ホストコンピュータ40上で動作するロジック解析ソフトウェア402は、観測対象FPGA20に対してロジック解析端末30を通じてモニタ面を試験信号面に切り替える指令を送信する(ステップS24)。
Next, the
次に、ホストコンピュータ40上で動作するロジック解析ソフトウェア402は、ロジック解析端末30内の遅延補正回路306に対して、遅延量をゼロに設定する指令を送信する(ステップS25)。この時点で、ロジック解析端末30内の読み出し制御回路317を介して受信した試験信号の取り込みを行うと、基準エッジ時点では、試験信号の極性は1となっている。なお、「基準エッジ」は、基準ビットMの遅延測定時に確定したものを使用する。
Next, the
次に、ホストコンピュータ40上で動作するロジック解析ソフトウェア402は、ロジック解析端末30内の遅延補正回路306に対して、遅延を1ステップ増加するよう指令を送信し、試験信号の取り込みを行う(ステップS26)。
Next, the
ここで、基準エッジの発生時刻に受信した信号極性が1であるか0であるかの判別を行い(ステップS27)、信号極性が1であれば、ステップS26に戻り、遅延の1ステップずつ増加させ、信号極性が0になるまで繰り返す。 Here, it is determined whether the signal polarity received at the time of occurrence of the reference edge is 1 or 0 (step S27). If the signal polarity is 1, the process returns to step S26, and the delay is increased by one step. And repeat until the signal polarity becomes zero.
基準エッジにおいて信号極性が0に変化したら、そのときの遅延量Cを記憶する(ステップS28)。 When the signal polarity changes to 0 at the reference edge, the delay amount C at that time is stored (step S28).
次に、ホストコンピュータ40上で動作するロジック解析ソフトウェア402は、次式(33)の遅延量を計算する(ステップS29)。
Next, the
遅延解析結果A(N)− 遅延解析結果B(N)+ 遅延量C(N) ・・・ (33) Delay analysis result A (N)-Delay analysis result B (N) + Delay amount C (N) (33)
この遅延量が、従属ビットに対するクロックエッジとデータエッジを揃えるための最適遅延補正量Dtgtadj(N)(図23参照)となる。 This delay amount becomes the optimum delay correction amount Dtgtadj (N) (see FIG. 23) for aligning the clock edge and the data edge with respect to the dependent bits.
以上の計算手続きが完了したら、ホストコンピュータ40上で動作するロジック解析ソフトウェア402は、ロジック解析端末30を介して観測対象FPGA20に観測対象モニタ面Xに切り替える指令を送信し、ロジック解析端末30内の遅延補正回路306に、基準ビット及び従属ビット毎に、個別の最適遅延補正量Dtgtadj(N)を設定する指令を送信する。
When the above calculation procedure is completed, the
前記実施の形態では、図13に示した観測対象となるFPGA20に実装されるべきモニタ回路の構成は、1個のFPGA(すなわち1つの半導体チップ)上に、観測対象となる回路(当該FPGAに要求される機能を実現する回路)とともに実装するものとしたが、FPGAのI/Oピンを利用してモニタ回路の一部を切り出し、別のチップに実装しても良い。このようにすることで、観測対象となる回路の配置配線の難易度を一段と下げ、デバッグが完了したならば、モニタ回路の一部を実装したチップを観測対象基板から外すことにより、観測対象基板の製造コストや消費電力、寸法などの削減に役立つものと期待される。
In the above embodiment, the configuration of the monitor circuit to be mounted on the
特に、近時、複数の半導体チップを積層し、I/Oピンとパッケージを共通化した素子も開発されている。そこで、積層チップの片方に観測対象となる回路を実装し、他方には、モニタ回路を実装した状態で開発を実行する。そして、モニタ回路が不要となったならば、観測対象となる回路が実装されるチップのみを封止した素子に切り替える。このようにすることで、観測対象基板のレイアウトの改版を行うことなく、製造コストや消費電力を下げることができるものと期待される。 In particular, recently, an element in which a plurality of semiconductor chips are stacked and an I / O pin and a package are shared has been developed. Therefore, development is executed with a circuit to be observed mounted on one side of the laminated chip and a monitor circuit mounted on the other side. When the monitor circuit becomes unnecessary, only the chip on which the circuit to be observed is mounted is switched to the sealed element. By doing so, it is expected that the manufacturing cost and power consumption can be reduced without revising the layout of the observation target substrate.
また、上記実施形態では、高速シリアルモニタ(シリアル送信回路を含むモニタ回路)は、観測対象ノードが存在するFPGAと同一チップ上に存在するため、途中に不確定な遅延要素がない。このため、遅延補正は、試験信号を用いずにタイミング解析結果のみを用いて計算している。何らかの理由により途中の経路に不確定な遅延要素が入る場合には、実施の形態のパラレルモニタと同様に試験信号を用いて、遅延補正値を決めるようにしても良い。 In the above embodiment, the high-speed serial monitor (the monitor circuit including the serial transmission circuit) exists on the same chip as the FPGA in which the observation target node exists, and therefore there is no indefinite delay element in the middle. Therefore, the delay correction is calculated using only the timing analysis result without using the test signal. When an indefinite delay element is inserted in the route for some reason, the delay correction value may be determined using a test signal as in the parallel monitor of the embodiment.
また、上記実施形態では高速シリアルモニタとパラレルモニタを併設するものとしたが、どちらか一方のみを実装することにしても良い。これにより、シリアル送信回路を搭載しないFPGAや、シリアル送信回路は搭載しているが、パラレルモニタを実装するには、I/Oピンが不足のFPGAでも、本発明を適用可能となる。 In the above embodiment, the high-speed serial monitor and the parallel monitor are provided together, but only one of them may be mounted. As a result, an FPGA without a serial transmission circuit or a serial transmission circuit is mounted, but the present invention can be applied even to an FPGA with insufficient I / O pins for mounting a parallel monitor.
また、上記実施形態ではシリアル送信回路、高速シリアル受信回路の数は1対としたが、これらの数を任意に増やして、より多くのモニタデータを同時に観測できるようにしても良い。 In the above embodiment, the number of serial transmission circuits and high-speed serial reception circuits is one pair. However, these numbers may be arbitrarily increased so that more monitor data can be observed simultaneously.
また、上記実施形態では解析対象基板とロジック解析端末との接続に用いるコネクタとケーブルには高速シリアル伝送に対応するために、特性インピーダンスが規定された製品を用いている。そのような製品を用いたとしても、現時点の技術水準で最も高い伝送帯域を有するトランシーバ(例としては、28.05Gbps)と組み合わせて使用するのは困難な可能性がある。そこで、電気的な接続を用いる代わりに、光伝送を利用してもよい。具体的には、コネクタとしてSFP(small form-factor pluggable:スモールフォームファクタプラガブル)コネクタを用いてO/E(optic-electric:光電)変換を行い、ケーブルとして光ファイバを用いるようにしても良い。 In the above-described embodiment, the connector and cable used for connection between the analysis target board and the logic analysis terminal use a product having a specified characteristic impedance in order to support high-speed serial transmission. Even if such a product is used, it may be difficult to use in combination with a transceiver (for example, 28.05 Gbps) having the highest transmission bandwidth at the current state of the art. Therefore, instead of using an electrical connection, optical transmission may be used. Specifically, an O / E (optic-electric) conversion may be performed using an SFP (small form-factor pluggable) connector as the connector, and an optical fiber may be used as the cable.
図13に示したFPGA20にはJTAG IF216が搭載されているので、この機能を利用してホストコンピュータ40から開発対象FPGAへの設定データの設定(コンフィギュレーション)や、その他のJTAG機能を利用するための用途に使用できるように変形しても良い。具体的には、公知の製品「USB Blaster」(アルテラコーポレイション製)や「Platform Cable USB II」(ザイリンクス インコーポレイテッド製)などの製品が提供する機能を、ロジック解析端末に取り込んでも良い。
Since the
上記実施形態によれば、モニタ回路にかかわるFPGAの配置配線資源の利用や、モニタ回路にかかわるFPGAのI/Oピンの使用数を抑え、観測対象となるFPGA全体の配置配線の難易度を上げることなく、モニタ回路を実装することが可能となる。 According to the above embodiment, the use of FPGA placement and routing resources related to the monitor circuit and the number of FPGA I / O pins used for the monitor circuit are suppressed, and the difficulty of placement and routing of the entire FPGA to be observed is increased. Therefore, it is possible to mount a monitor circuit.
また、上記実施形態によれば、グリッチの発生による観測信号の劣化やバス信号におけるビット間スキューの少ない観測対象信号とすることで、信号の観測性を高く保つことができる。 In addition, according to the above-described embodiment, the signal observability can be kept high by using the observation target signal with less degradation of the observation signal due to the occurrence of glitches and less skew between bits in the bus signal.
上記実施形態によれば、ロジックアナライザを不要として容易に持ち運ぶことができるロジック解析システムを得ることができる。 According to the embodiment, it is possible to obtain a logic analysis system that can be easily carried without using a logic analyzer.
なお、上記特許文献、非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素(各請求項の各要素、各実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ乃至選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。 The disclosures of the above-mentioned patent documents and non-patent documents are incorporated herein by reference. Within the scope of the entire disclosure (including claims) of the present invention, the embodiments and examples can be changed and adjusted based on the basic technical concept. Various combinations or selections of various disclosed elements (including each element of each claim, each element of each embodiment, each element of each drawing, etc.) are possible within the scope of the claims of the present invention. . That is, the present invention of course includes various variations and modifications that could be made by those skilled in the art according to the entire disclosure including the claims and the technical idea.
1 半導体装置
10 観測対象基板
11 クロック源
12 コネクタ
13 ケーブル
14 基板配線
20 FPGA(観測対象FPGA)
21 フリップフロップ
22 モニタデータマルチプレクサ(MUX)
23 モニタデータピン(モニタピン)
24 モニタクロックピン
25 クロック源
30 ロジック解析端末
40 ホストコンピュータ
50 ロジックアナライザ
101 LE
102 インターコネクト
103 I/Oピン
110 LUT
111 SRAMセル
112 マルチプレクサ
113 フリップフロップ(D−FF)
120 フリップフロップ(D−FF)
121、122 組み合わせ論理回路
123 ANDゲート
124 中間経路
125 モニタピン
131−133 2入力LUT
200 観測対象回路
201 フリップフロップ
202 組み合わせ論理回路
203 パラレルモニタ対象信号
204 クロック源
205、206 モニタデータマルチプレクサ
207 モニタクロックマルチプレクサ
208 試験信号マルチプレクサ
209 試験信号発生回路
210 回路ブロック
211 遅延補正回路
212 マルチプレクサ
213 デュアルクロックFIFO
214 ビット幅・レート変換部
215 シリアル送信回路
216 JTAG IF
220 パラレルモニタピン(モニタ出力)
221 モニタデータピン
222 入出力ピン
223 モニタクロックピン(モニタクロック出力)
230 ケーブル
300 コネクタ
302 パラレルモニタピン
303 モニタクロック入力
304 シリアルモニタ入力
305 JTAGブリッジ
306 遅延補正回路
307 シリアル受信回路
308 マルチプレクサ
309 クロックマルチプレクサ
310、311 デュアルクロックFIFO
312 Run/Stop/トリガ制御回路
313 メモリクロック(クロック源)
314 タイムベース回路
315 タイムスタンプ付加回路
316 メモリ
317 読み出し制御回路
318 ホストI/F
319、401 USBコネクタ
402 ロジック解析ソフトウェア
DESCRIPTION OF
21 Flip-
23 Monitor data pin (monitor pin)
24
102 interconnect 103 I /
111
120 flip-flop (D-FF)
121, 122
200
214 Bit width /
220 Parallel monitor pin (monitor output)
221 Monitor data pin 222 Input /
312 Run / Stop /
314
319, 401
Claims (10)
前記モニタ回路からの信号を受けるロジック解析端末と、
を備え、
前記モニタ回路は、
前記半導体装置内部の複数の観測対象ノードの複数の観測対象信号を入力し第1選択信号に応じて観測対象信号を選択して出力する第1マルチプレクサと、
複数のクロック信号を入力し第2選択信号に応じてモニタ用のクロック信号を選択して出力する第2マルチプレクサと、
を少なくとも含み、前記第1及び第2マルチプレクサの少なくとも1つは、複数の信号入力のうち少なくとも1つの信号入力の極性変化に対して出力へのグリッチの伝搬を抑止する構成とされたマルチプレクサを含み、
前記ロジック解析端末は、
第2クロック源と、
前記モニタ回路からシリアルに送信された信号を受けパラレル信号に変換するシリアル受信回路と、
前記シリアル受信回路からのパラレル信号を、前記シリアル受信回路からのパラレル書き込み用クロック信号で書き込み、前記第2のクロック源からのクロック信号で読み出す第2バッファ部と、
前記モニタ回路からパラレルに送信された信号の遅延の補正を行う第2遅延補正回路と、
前記モニタ回路の前記第2マルチプレクサで選択されたクロック信号又は前記第2クロック源からのクロック信号を受け、第4選択信号に基づき1方を選択する第4マルチプレクサと、
前記モニタ回路から受信したパラレル観測対象信号を遅延補補正回路で遅延補正し第5のマルチプレクサを介した信号を前記第4マルチプレクサで選択されたクロック信号で書き込み、前記第2のクロック源からのクロック信号で読み出す第3バッファ部と、
前記第2及び第3バッファ部から読み出された信号を記憶する記憶部と、
を含む、ことを特徴とするロジック解析システム。 A semiconductor device comprising a monitor circuit for monitoring the internal state of the semiconductor device;
A logic analysis terminal for receiving a signal from the monitor circuit;
With
The monitor circuit is
A first multiplexer that inputs a plurality of observation target signals of a plurality of observation target nodes inside the semiconductor device, and selects and outputs an observation target signal according to a first selection signal;
A second multiplexer for inputting a plurality of clock signals and selecting and outputting a monitoring clock signal in accordance with the second selection signal;
And at least one of the first and second multiplexers includes a multiplexer configured to suppress glitch propagation to the output with respect to a change in polarity of at least one of the plurality of signal inputs. See
The logic analysis terminal is
A second clock source;
A serial receiving circuit that receives a signal transmitted serially from the monitor circuit and converts it into a parallel signal;
A second buffer unit for writing a parallel signal from the serial receiving circuit with a clock signal for parallel writing from the serial receiving circuit and for reading with a clock signal from the second clock source;
A second delay correction circuit for correcting a delay of a signal transmitted in parallel from the monitor circuit;
A fourth multiplexer that receives a clock signal selected by the second multiplexer of the monitor circuit or a clock signal from the second clock source and selects one based on a fourth selection signal;
The parallel observation target signal received from the monitor circuit is delay-corrected by a delay compensation circuit, and a signal through the fifth multiplexer is written with the clock signal selected by the fourth multiplexer, and the clock from the second clock source is written. A third buffer section to be read with a signal;
A storage unit for storing signals read from the second and third buffer units;
A logic analysis system characterized by including:
前記第2マルチプレクサから出力されるクロック信号に同期して試験信号を出力する試験信号発生回路と、
前記試験信号と前記第1マルチプレクサで選択された観測対象信号を入力し第3選択信号に応じて一方を選択して出力する第3マルチプレクサと、
をさらに含む、ことを特徴とする請求項1又は2に記載のロジック解析システム。 The monitor circuit is
A test signal generation circuit for outputting a test signal in synchronization with a clock signal output from the second multiplexer;
A third multiplexer that inputs the test signal and the observation target signal selected by the first multiplexer, and selects and outputs one in accordance with a third selection signal;
The logic analysis system according to claim 1, further comprising:
前記第1マルチプレクサから出力される前記観測対象信号に対して遅延を補正して出力する第1遅延補正回路と、
前記第1遅延補正回路で遅延が補正された前記観測対象信号を受け、前記第2マルチプレクサで選択されたクロック信号を書込みクロック信号として前記観測対象信号の書き込みを行い、読み出しクロックにしたがって読み出しを行う第1バッファ部と、
前記第1バッファ部から読み出された前記観測対象信号を入力しビット幅及びレート変換を行うビット幅・レート変換部と、
前記ビット幅・レート変換部から出力された前記観測対象信号をシリアル信号に変換して前記半導体装置の出力端子からシリアル出力するシリアル送信回路と、
を備え、
前記第3マルチプレクサで選択出力された信号は、前記半導体装置の出力端子からパラレルに出力される、ことを特徴とする請求項3に記載のロジック解析システム。 The monitor circuit is
A first delay correction circuit that corrects and outputs a delay to the observation target signal output from the first multiplexer;
The observation target signal whose delay has been corrected by the first delay correction circuit is received, the observation target signal is written using the clock signal selected by the second multiplexer as a write clock signal, and reading is performed according to a read clock. A first buffer unit;
A bit width / rate conversion unit that inputs the observation target signal read from the first buffer unit and performs bit width and rate conversion;
A serial transmission circuit that converts the observation target signal output from the bit width / rate conversion unit into a serial signal and serially outputs it from an output terminal of the semiconductor device;
With
4. The logic analysis system according to claim 3 , wherein the signal selected and output by the third multiplexer is output in parallel from an output terminal of the semiconductor device.
前記観測対象ノードが前記組み合わせ論理回路の出力ノードであり、
前記組み合わせ論理回路の前記出力ノードに至る経路の前記組み合わせ論理回路の複数の入力間のスキューは、前記クロック信号の1周期以内とされている、ことを特徴とする請求項3又は4に記載のロジック解析システム。 The semiconductor device further comprises a combinational logic circuit,
The observation target node is an output node of the combinational logic circuit;
Skew between the plurality of inputs of the combinatorial logic path leading to the output node of the combinational logic circuit, according to claim 3 or 4, wherein said is within one cycle of the clock signal, it Logic analysis system .
ホストコンピュータに接続するインターフェース部と、
前記記憶部の内容を読み出し前記ホストコンピュータに送信する読み出し制御回路と、
前記記憶部への信号の書き込み開始・停止制御を行う制御部と、
をさらに含む、ことを特徴とする請求項3乃至5のいずれか1項に記載のロジック解析システム。 The logic analysis terminal is
An interface unit connected to the host computer;
A read control circuit for reading the content of the storage unit and transmitting it to the host computer;
A control unit that performs start / stop control of signal writing to the storage unit;
The logic analysis system according to claim 3 , further comprising:
前記ホストコンピュータが、
前記ロジック解析端末の前記第2遅延補正回路の遅延補正を制御するにあたり、
前記半導体装置の配置配線後のタイミング解析結果から、前記半導体装置内の前記試験信号発生回路から前記半導体装置の出力端子に至る経路の遅延:Aと、前記半導体装置内の観測対象ノードから前記半導体装置の出力端子に至る経路の遅延:Bを取得して記憶しておき、
前記半導体装置内の前記試験信号発生回路の試験信号をモニタ対象として、前記ロジック解析端末の前記第2遅延補正回路に対して遅延量をゼロに初期化し、
前記半導体装置内の前記試験信号発生回路からの受信データパターンが既知の試験信号パターンに合致するかを判断し、既知の試験信号パターンに合致するまで前記第2遅延補正回路に対して遅延量を可変させ、前記受信データパターンが前記既知の試験信号パターンに合致すると、その時の前記ロジック解析端末の前記第2遅延補正回路に設定された遅延量:Cを記憶し、
前記半導体装置内の前記観測対象ノードからの観測対象信号をモニタ対象として、前記遅延量:Cに、前記半導体装置内の前記試験信号発生回路から前記半導体装置の出力端子に至る経路の遅延:Aから、前記半導体装置内の前記観測対象ノードから前記半導体装置の出力端子に至る経路の遅延:Bを差し引いた値を足した遅延量:A−B+Cを、前記ロジック解析端末の前記第2遅延補正回路に対して設定する手段を含む、ことを特徴とする請求項6に記載のロジック解析システム。 A host computer connected to the logic analysis terminal;
The host computer is
In controlling the delay correction of the second delay correction circuit of the logic analysis terminal,
From the timing analysis result after the placement and routing of the semiconductor device, a delay A of the path from the test signal generation circuit in the semiconductor device to the output terminal of the semiconductor device, and the observation target node in the semiconductor device to the semiconductor The delay of the path to the output terminal of the device : B is acquired and stored,
The test signal of the test signal generation circuit in the semiconductor device is monitored, and the delay amount is initialized to zero for the second delay correction circuit of the logic analysis terminal,
It is determined whether a received data pattern from the test signal generation circuit in the semiconductor device matches a known test signal pattern, and a delay amount is set with respect to the second delay correction circuit until it matches a known test signal pattern. is varied, if the received data pattern matches the known test signal pattern, the logic analysis delay set in the second delay compensation circuit of the terminal at that time: storing C,
The observed target signal from the observation nodes in the semiconductor device as a monitor object, the delay amounts: and C, the delay of the path from the test signal generating circuit in the semiconductor device to an output terminal of the semiconductor device: A From the observation node in the semiconductor device to the output terminal of the semiconductor device, a delay amount : A−B + C obtained by adding a value obtained by subtracting B is the second delay correction of the logic analysis terminal. The logic analysis system according to claim 6 , further comprising means for setting the circuit.
第2クロック源と、
前記モニタ回路からシリアルに送信された信号を受けパラレル信号に変換するシリアル受信回路と、
前記シリアル受信回路からのパラレル信号を、前記シリアル受信回路からのパラレル書き込み用クロック信号で書き込み、前記第2のクロック源からのクロック信号で読み出す第2バッファ部と、
前記モニタ回路からパラレルに送信された信号の遅延の補正を行う第2遅延補正回路と、
前記モニタ回路の前記第2マルチプレクサで選択されたクロック信号又は前記第2クロック源からのクロック信号を受け、第4選択信号に基づき1方を選択する第4マルチプレクサと、
前記モニタ回路から受信したパラレル観測対象信号を遅延補補正回路で遅延補正し第5のマルチプレクサを介した信号を前記第4マルチプレクサで選択されたクロック信号で書き込み、前記第2のクロック源からのクロック信号で読み出す第3バッファ部と、
前記第2及び第3バッファ部から読み出された信号を記憶する記憶部と、
を含む、ことを特徴とするロジック解析端末。 A monitor circuit mounted on a semiconductor device and monitoring an internal state of the semiconductor device, wherein a plurality of observation target signals of a plurality of observation target nodes inside the semiconductor device are input and an observation target signal is received according to a first selection signal A first multiplexer that selects and outputs a plurality of clock signals, and a second multiplexer that receives a plurality of clock signals and selects and outputs a monitoring clock signal according to the second selection signals, At least one of the two multiplexers receives a signal from a monitor circuit including a multiplexer configured to suppress propagation of a glitch to the output with respect to a change in polarity of at least one of the plurality of signal inputs. A terminal,
A second clock source;
A serial receiving circuit that receives a signal transmitted serially from the monitor circuit and converts it into a parallel signal;
A second buffer unit for writing a parallel signal from the serial receiving circuit with a clock signal for parallel writing from the serial receiving circuit and for reading with a clock signal from the second clock source;
A second delay correction circuit for correcting a delay of a signal transmitted in parallel from the monitor circuit;
A fourth multiplexer that receives a clock signal selected by the second multiplexer of the monitor circuit or a clock signal from the second clock source and selects one based on a fourth selection signal;
The parallel observation target signal received from the monitor circuit is delay-corrected by a delay compensation circuit, and a signal through the fifth multiplexer is written with the clock signal selected by the fourth multiplexer, and the clock from the second clock source is written. A third buffer section to be read with a signal;
A storage unit for storing signals read from the second and third buffer units;
A logic analysis terminal characterized by including.
前記コンピュータが、前記半導体装置の配置配線後のタイミング解析結果から、前記試験信号発生回路の駆動クロック源から前記送信端に至る経路に関する第1の遅延解析結果:Aと、前記観測対象ノードの駆動クロック源から前記送信端に至る経路に関する第2の遅延解析結果:Bを取得して記憶し、
前記コンピュータが、前記切り替え回路を前記試験信号側に設定し、前記試験信号発生回路から前記試験信号が送信されているときに前記受信端における前記試験信号の受信データパターンを取り込んで既知の試験信号パターンに合致するか判断し、前記受信データパターンが前記既知の試験信号パターンに合致するまで、前記送信端からの前記信号の遅延を補正する遅延補正回路の遅延量を可変させ、受信データパターンが前記既知の試験信号パターンに合致したときの遅延補正値:Cを記憶し、
前記コンピュータが、A−B+Cを、前記観測対象信号の受信に必要な遅延補正値として、前記遅延補正回路に対して設定する、ことを特徴とする遅延補正方法。 The observed target signal of the semiconductor device inside the observation target node, a transmitting end for transmitting a signal from the toggle its switching circuit and a test signal from the test signal generating circuit, between the receiving end of the signal from the transmitting end the correction of the delay of the signal from the transmitting stage in the circuit delay is present, a method using a computer,
The computer, the semiconductor from the timing analysis results after placement and routing of the apparatus, prior Symbol test signal generating circuit of the drive clock source the lead to the transmitting end path for the first delay analysis Results: and A, of the observed object node drive clock source the lead to the transmitting end path for the second delay analysis results: storing acquired by the B,
The computer, the switching circuit is set to the test signal side, from said test signal generating circuit of the known fetches the reception data patterns in our Keru the test signal to the receiving end when said test signal is being transmitted It is determined whether or not a test signal pattern is matched, and a delay amount of a delay correction circuit that corrects a delay of the signal from the transmission end is varied until the received data pattern matches the known test signal pattern, and received data delay correction value when the pattern is matched to the known test signal patterns: storing C,
Delay correction method the computer, the A-B + C, as the delay correction value required to receive before Symbol observation target signal, to set to the delay correction circuit, characterized in that.
前記半導体装置のタイミング解析結果から、前記試験信号発生回路の駆動クロック源から前記送信端に至る経路に関する第1の遅延解析結果:Aと、前記観測対象ノードの駆動クロック源から前記送信端に至る経路に関する第2の遅延解析結果:Bを取得して記憶する処理と、
前記切り替え回路を前記試験信号側に切り替え、前記試験信号発生回路から前記試験信号が送信されているときに前記受信端における前記試験信号の受信データパターンを取り込んで既知の試験信号パターンに合致するか判断し、前記受信データパターンが前記既知の試験信号パターンに合致するまで、前記送信端からの前記信号の遅延を補正する遅延補正回路の遅延量を可変させ、受信データパターンが前記既知の試験信号パターンに合致したときの遅延補正値:Cを記憶する処理と、
A−B+Cを、前記観測対象信号の受信に必要な遅延補正値として、前記遅延補正回路に対して設定する処理と、を含む、プログラム。 The observed target signal of the semiconductor device inside the observation target node, a transmitting end for transmitting a signal from the toggle its switching circuit and a test signal from the test signal generating circuit, between the receiving end of the signal from the transmitting end A program for causing a computer to correct the delay of the signal from the transmitting end in a circuit in which a delay exists,
The timing analysis of the semiconductor device, prior Symbol test signal generating circuit of the drive clock source the transmitting stage path first delay analysis results for leading from: and A, to the transmitting end from the drive clock source of the observed object node A second delay analysis result regarding the route to reach: a process of acquiring and storing B;
Switching the switching circuit to the test signal side, it matches the known test signal pattern fetches the received data pattern in our Keru the test signal to the receiving end when the test signal from the test signal generating circuit is transmitted Until the received data pattern matches the known test signal pattern, a delay amount of a delay correction circuit for correcting a delay of the signal from the transmission end is varied, and the received data pattern is changed to the known data pattern. A process of storing a delay correction value: C when it matches the test signal pattern ;
The A-B + C, as the delay correction value required to receive before Symbol observation target signal, including the processing and to set to the delay correction circuit, program.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014190382A JP6446937B2 (en) | 2014-09-18 | 2014-09-18 | Logic analysis terminal, logic analysis system, delay correction method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014190382A JP6446937B2 (en) | 2014-09-18 | 2014-09-18 | Logic analysis terminal, logic analysis system, delay correction method, and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016062351A JP2016062351A (en) | 2016-04-25 |
JP6446937B2 true JP6446937B2 (en) | 2019-01-09 |
Family
ID=55797806
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014190382A Active JP6446937B2 (en) | 2014-09-18 | 2014-09-18 | Logic analysis terminal, logic analysis system, delay correction method, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6446937B2 (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6342028B1 (en) * | 2017-03-13 | 2018-06-13 | 三菱電機株式会社 | Power generation control device for vehicle alternator |
KR102205126B1 (en) * | 2019-12-17 | 2021-01-19 | 연세대학교 산학협력단 | Efficient Skew Measurement Apparatus Using Vernier Delay Line for BOST with Low Area Buffer |
CN112034376B (en) * | 2020-08-24 | 2023-08-29 | 哲库科技(北京)有限公司 | Power management apparatus and method |
CN112462229A (en) * | 2020-11-12 | 2021-03-09 | 山东云海国创云计算装备产业创新中心有限公司 | Chip and monitoring system of chip internal signal thereof |
JP2022162860A (en) * | 2021-04-13 | 2022-10-25 | 日立Astemo株式会社 | Operator, operation system, and method for testing |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2760284B2 (en) * | 1994-06-27 | 1998-05-28 | 日本電気株式会社 | Semiconductor integrated circuit device |
JPH10154793A (en) * | 1996-11-25 | 1998-06-09 | Nec Corp | Method for designing layout of semiconductor integrated circuit |
JP4212224B2 (en) * | 2000-07-10 | 2009-01-21 | 株式会社東芝 | Semiconductor integrated circuit |
JP2002311095A (en) * | 2001-04-12 | 2002-10-23 | Tritec:Kk | Lsi inspection device |
US7170315B2 (en) * | 2003-07-31 | 2007-01-30 | Actel Corporation | Programmable system on a chip |
JP4464329B2 (en) * | 2004-08-02 | 2010-05-19 | パナソニック株式会社 | Signal output control device and signal output control method |
JP5136370B2 (en) * | 2008-11-14 | 2013-02-06 | 富士通株式会社 | Semiconductor integrated circuit device and method for testing semiconductor integrated circuit device |
-
2014
- 2014-09-18 JP JP2014190382A patent/JP6446937B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2016062351A (en) | 2016-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6446937B2 (en) | Logic analysis terminal, logic analysis system, delay correction method, and program | |
US7904859B2 (en) | Method and apparatus for determining a phase relationship between asynchronous clock signals | |
JP5410414B2 (en) | Circuit emulation input and delay input multiplexing | |
JP5432126B2 (en) | Technology for use in automated circuit design and simulation | |
JP5405451B2 (en) | Technology for use in automated circuit design and simulation | |
US8941430B2 (en) | Timing calibration for on-chip interconnect | |
US8196076B2 (en) | Optimal flow in designing a circuit operable in multiple timing modes | |
US9685957B2 (en) | System reset controller replacing individual asynchronous resets | |
TW201635153A (en) | High speed data transfer using calibrated, single-clock source synchronous serializer-deserializer protocol | |
US8689159B1 (en) | Redundancy for on-chip interconnect | |
CN116324439A (en) | High speed functional protocol based testing and debugging | |
US8875085B2 (en) | Wiring inspection apparatus and wiring inspection method | |
US20220329351A1 (en) | Rollback for communication link error recovery in emulation | |
CN118297013B (en) | Simulation test auxiliary circuit, simulation design unit and simulation test circuit | |
Rathore | Flexibility, Scalability, and Efficiency in Next-Generation Digital Signal Processors | |
JP5145167B2 (en) | Clock domain check method, clock domain check program, and recording medium | |
Limones-Mora | Test Modules Design for a SerDes Chip in 130 nm CMOS technology | |
Buttrick | Testable Clock Distributions for 3d Integrated Circuits | |
Vajja | Emulation of ASIC based network processor on a FPGA platform | |
Alfonsi | submitter: A PCI express board designed to interface with the electronic phase-2 upgrades of the ATLAS detectors at CERN | |
JP2015041263A (en) | Complex arithmetic circuit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170801 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180314 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180327 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180521 |
|
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: 20181106 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20181119 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6446937 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |