JP7351230B2 - Synchronous control circuit and synchronous control method - Google Patents
Synchronous control circuit and synchronous control method Download PDFInfo
- Publication number
- JP7351230B2 JP7351230B2 JP2020015018A JP2020015018A JP7351230B2 JP 7351230 B2 JP7351230 B2 JP 7351230B2 JP 2020015018 A JP2020015018 A JP 2020015018A JP 2020015018 A JP2020015018 A JP 2020015018A JP 7351230 B2 JP7351230 B2 JP 7351230B2
- Authority
- JP
- Japan
- Prior art keywords
- reception
- transmission
- flag
- packet
- clock
- 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
- Information Transfer Systems (AREA)
Description
本発明は、同期制御回路および同期制御方法に関する。 The present invention relates to a synchronous control circuit and a synchronous control method.
情報処理で扱うデータ量の増加に伴い、情報処理を1つの情報処理装置で実行することが困難な場合、複数の情報処理装置を並列に動作させて情報処理を実行する場合がある。この種の複数の情報処理装置を有する情報処理システムでは、各情報処理装置に搭載されるFPGA(Field-Programmable Gate Array)間で、入出力ピンの状態をデータ化した同期パケットが、所定の時間間隔で送受信される。そして、同期パケットを受信した情報処理装置が入出力ピンの状態に反映することで、複数の情報処理装置内の同期が必要な制御信号の状態同期制御が実行される(例えば、特許文献1参照)。 BACKGROUND ART As the amount of data handled in information processing increases, when it is difficult to perform information processing with one information processing device, information processing may be performed by operating a plurality of information processing devices in parallel. In an information processing system having multiple information processing devices of this type, synchronization packets that convert the status of input/output pins into data are sent between FPGAs (Field-Programmable Gate Arrays) installed in each information processing device for a predetermined period of time. Sent and received at intervals. Then, the information processing device that has received the synchronization packet reflects the state of the input/output pin, thereby executing state synchronization control of control signals that require synchronization within the plurality of information processing devices (for example, see Patent Document 1). ).
ところで、ASIC(Application Specific Integrated Circuit)の集積度の向上に伴い、論理シミュレーターによる設計検証は、時間的および精度的に困難になってきている。このため、近年では、論理回路の設計中のASICの論理回路をFPGAに書き込み、FPGAを動作させて設計検証することが主流となってきている。この際、ASICに搭載する論理回路を1つのFPGAに搭載することが困難な場合、複数のFPGAに分割して論理回路が搭載される。複数のFPGAに分割して搭載された論理回路の論理検証を正しく実施するためには、複数のFPGAを1つの論理回路として互いに同期して動作させる必要がある。 By the way, as the degree of integration of ASICs (Application Specific Integrated Circuits) increases, design verification using a logic simulator is becoming more difficult in terms of time and accuracy. For this reason, in recent years, it has become mainstream to write the logic circuit of an ASIC under design into an FPGA and operate the FPGA to verify the design. At this time, if it is difficult to mount the logic circuit to be mounted on the ASIC in one FPGA, the logic circuit is divided into a plurality of FPGAs and the logic circuit is mounted therein. In order to correctly perform logic verification of a logic circuit that is divided and mounted on a plurality of FPGAs, it is necessary to operate the plurality of FPGAs as one logic circuit in synchronization with each other.
1つの側面では、本発明は、複数のプログラマブル部に分割して搭載した論理回路を互いに同期して動作させることを目的とする。 In one aspect, an object of the present invention is to operate logic circuits that are divided and mounted in a plurality of programmable units in synchronization with each other.
一つの観点によれば、同期制御回路は、論理回路が再構成可能にプログラムされるプログラマブル部に設けられ、前記プログラマブル部と他のプログラマブル部との間で送受信される信号を同期させる同期制御回路であって、送信フラグのリセット中に、前記プログラマブル部にプログラムされた論理回路から出力信号を受信した場合、前記出力信号を送信インタフェースに出力し、前記送信フラグをセットする送信制御部と、受信フラグのリセット中に、受信インタフェースから受信信号を受信した場合、前記受信信号を前記プログラムされた論理回路に出力し、前記受信フラグをセットする受信制御部と、前記送信フラグおよび前記受信フラグがともにセットされた場合、前記プログラムされた論理回路に同期クロックを出力し、前記送信フラグおよび前記受信フラグをリセットする同期クロック生成部と、を有する。 According to one aspect, the synchronization control circuit is provided in a programmable part in which a logic circuit is reconfigurably programmed, and synchronizes signals transmitted and received between the programmable part and other programmable parts. a transmission control unit that outputs the output signal to a transmission interface and sets the transmission flag when an output signal is received from a logic circuit programmed in the programmable unit while the transmission flag is being reset; a reception control section that outputs the reception signal to the programmed logic circuit and sets the reception flag when a reception signal is received from the reception interface while the flag is being reset; and a synchronous clock generation unit that outputs a synchronous clock to the programmed logic circuit and resets the transmission flag and the reception flag when set.
1つの側面では、本発明は、複数のプログラマブル部に分割して搭載した論理回路を互いに同期して動作させることができる。 In one aspect, the present invention allows logic circuits that are divided and mounted in a plurality of programmable units to operate in synchronization with each other.
以下、図面を用いて実施形態が説明される。以下では、信号等の情報が伝達される信号線には、信号名と同じ符号を使用する。また、図中に単線で示す信号線には、シングルビットの信号または複数ビットの信号が伝送される。複数ビットの信号が伝送される信号線に接続される論理回路等は、信号毎に回路を有する。 Embodiments will be described below with reference to the drawings. In the following, the same symbols as the signal names are used for signal lines through which information such as signals is transmitted. Further, a single-bit signal or a multi-bit signal is transmitted to the signal line shown as a single line in the figure. A logic circuit or the like connected to a signal line through which multiple-bit signals are transmitted has a circuit for each signal.
図1は、一実施形態における検証装置を含む検証システムの一例を示す。図1に示す検証システム100は、複数のFPGA10(10a、10b)を含む検証装置200と、検証装置200による論理検証の動作を制御するサーバ300とを有する。FPGA10は、論理回路が再構成可能にプログラムされるプログラマブル部の一例である。
FIG. 1 shows an example of a verification system including a verification device in one embodiment. The
検証装置200は、FPGA10a、10bにそれぞれプログラムされた検証対象の論理回路である搭載論理40(40a、40b)を互いに同期させて動作させる機能を有する。このために、FPGA10aには、搭載論理40aとともに同期制御回路30aがプログラムされ、FPGA10bには、搭載論理40bとともに同期制御回路30bがプログラムされる。
The
例えば、FPGA10a、10bの間、およびFPGA10aとサーバ300との間は、それぞれPCIe(Peripheral Component Interconnect express:登録商標)インタフェースで接続される。しかし、FPGA10a、10bの間、およびFPGA10aとサーバ300との間は、他の通信インタフェースを介して接続されてもよい。また、FPGA10a、10bの間、およびFPGA10aとサーバ300との間を接続するインタフェースは、シリアルインタフェースでもよく、パラレルインターフェースでもよい。
For example, the
FPGA10aのプログラム領域には、PCIeインタフェース(I/F)20a、同期制御回路30a、搭載論理40aおよびPCIeインタフェース22aがプログラムされ、この順に接続される。FPGA10bのプログラム領域には、PCIeインタフェース20b、同期制御回路30bおよび搭載論理40bがプログラムされ、この順に接続される。例えば、PCIeインタフェース20(20a、22a、20b)は、IP(Intellectual Property)を利用してプログラムされる。PCIeインタフェース20は、送信インタフェースおよび受信インタフェースの一例である。なお、図1は、FPGA10a、10bに回路の論理がプログラムされた状態を示しており、FPGA10a、10bにプログラムする論理情報をFPGA10a、10bに転送する経路および論理情報を保持するメモリ等の資源の記載は省略している。
A PCIe interface (I/F) 20a, a
例えば、論理検証の実行時、PCIeインタフェース22aは、サーバ300から受信するシリアルのデータをパラレルのデータに変換して搭載論理40aに出力する。また、PCIeインタフェース22aは、搭載論理40aから受信するパラレルのデータをシリアルのデータに変換してサーバ300に送信する。なお、サーバ300は、データ以外の制御情報等もFPGA10aに送信するが、以下ではデータとして説明する。搭載論理40aは、PCIeインタフェース22aから受信するデータを使用して、所定の機能の動作を実行し、動作により得られたデータを同期制御回路30aに出力する。また、搭載論理40aは、同期制御回路30aから受信するデータを使用して、所定の機能の動作を実行し、動作により得られたデータをPCIeインタフェース22aに出力する。
For example, when performing logic verification, the
同期制御回路30aは、PCIeインタフェース20aを介してFPGA10bから受信する受信データのタイミングに合わせて、搭載論理40aから受信する送信データをPCIeインタフェース20aに出力する。また、同期制御回路30aは、FPGA10bから受信する受信データを搭載論理40aに出力する。同期制御回路30aの同期制御については、図6および図7で説明する。
The
PCIeインタフェース20aは、同期制御回路30aから受信するパラレルのデータをシリアルのデータに変換してFPGA10bに出力する。また、PCIeインタフェース20aは、FPGA10bから受信するシリアルのデータをパラレルのデータに変換して同期制御回路30aに出力する。
The
FPGA10bにおいて、PCIeインタフェース20bは、FPGA10aから受信するシリアルのデータをパラレルのデータに変換して同期制御回路30bに出力する。また、PCIeインタフェース20bは、同期制御回路30bから受信するパラレルのデータをシリアルのデータに変換してFPGA10aに出力する。
In the
同期制御回路30bは、PCIeインタフェース20bを介してFPGA10aから受信する受信データのタイミングに合わせて、搭載論理40bから受信する送信データをPCIeインタフェース20bに出力する。また、同期制御回路30bは、FPGA10aから受信する受信データを搭載論理40bに出力する。搭載論理40bは、同期制御回路30bから受信するデータを使用して、所定の機能の動作を実行し、動作により得られたデータを同期制御回路30bに出力する。
The
FPGA10aにおいて、PCIeインタフェース20aは、FPGA10bから受信するシリアルのデータをパラレルのデータに変換して同期制御回路30aに出力する。同期制御回路30aは、搭載論理40aから受信するデータと同期させるタイミングでPCIeインタフェース20aから受信したデータを搭載論理40aに出力する。
In the
以上の動作により、FPGA10aの搭載論理40aが送受信するデータと、FPGA10bの搭載論理40bが送受信するデータとを互いに同期させることができる。これにより、搭載論理40a、40bの動作を互いに同期させることができる。したがって、例えば、論理の規模が大きく、論理を複数のFPGA10a、10bに分割して搭載する場合にも、同期動作を実現することができる。
By the above operation, the data transmitted and received by the mounted
図2は、図1の検証装置200の各FPGA10a、10bに搭載される論理の一例を示す。図2は、論理検証の対象のASICに搭載する論理の規模が大きく、図1の検証装置200の1つのFPGA10aに論理をプログラムすることが困難な例を示す。図2に示す例では、ASICに搭載する論理のうち、論理aがFPGA10aに搭載論理40aとして搭載され、論理bがFPGA10bに搭載論理40bとして搭載される。
FIG. 2 shows an example of logic installed in each
論理aおよび論理bは、それぞれ組み合わせ回路CCと複数のフリップフロップFFを有する。なお、図2では、論理aと論理bとは、2つのフリップフロップFFを介して相互に接続されるが、ASIC内において論理aと論理bとが1つのフリップフロップFFを介して接続される場合、論理の分割時にフリップフロップFFが1つ追加される。 Logic a and logic b each have a combinational circuit CC and a plurality of flip-flops FF. Note that in FIG. 2, logic a and logic b are connected to each other via two flip-flops FF, but within the ASIC, logic a and logic b are connected via one flip-flop FF. In this case, one flip-flop FF is added when dividing the logic.
この実施形態では、ASICの論理が、1つのFPGAに搭載可能な論理よりも大きい場合にも、論理を分割して複数のFPGA10a、10bに搭載し、FPGA10a、10b間を同期させることができる。ASICの論理規模にかかわらず、FPGAにプログラムした回路(ハードウェア)を動作させて論理検証を実施することできるため、論理検証シミュレーターを使用する場合に比べて、高速に論理検証を実施することができる。
In this embodiment, even if the logic of the ASIC is larger than the logic that can be mounted on one FPGA, the logic can be divided and mounted on a plurality of
図3は、図1のFPGA10aに搭載される同期制御回路30aの一例を示す。なお、FPGA10bに搭載される同期制御回路30bは、信号名が異なることを除き、図3と同様の構成を有する。同期制御回路30bについては、図5で説明する。
FIG. 3 shows an example of a
同期制御回路30aは、送信制御部50、受信制御部60および同期クロック生成部70を有する。送信制御部50は、パケット変換部51、アンド回路AND1およびRS(セットリセット)フリップフロップ52を有する。受信制御部60は、パケット変換部61、アンド回路AND2およびRSフリップフロップ62を有する。同期クロック生成部70は、2入力のアンド回路AND3およびラッチ回路71を有する。
The
パケット変換部51は、搭載論理40aから出力される複数ビットの出力信号OUTaを用いてパケットを生成し、生成したパケットをアンド回路AND1に出力する。パケット変換部51は、出力データのデータサイズに応じたサイクル数分のパケットを生成する。パケットの例は、図4で説明する。
The
アンド回路AND1は、送信フラグTFLGaがリセット中(例えば、論理値0)に、パケット変換部51から出力されるパケットPOUTa(送信パケット)をPCIeインタフェース20aに発行する。アンド回路AND1は、送信フラグTFLGaがセット中(例えば、論理値1)に、パケット変換部51から出力されるパケットPOUTaの出力を抑止する。アンド回路AND1は、パケット変換部51が生成したパケットPOUTaのPCIeインタフェース20aへの出力を許可または抑止するパケット出力制御部の一例である。
The AND circuit AND1 issues the packet POUTa (transmission packet) output from the
RSフリップフロップ52は、アンド回路AND1がパケットPOUTaを出力したことに基づいて、送信フラグTFLGaを論理値1にセットする。RSフリップフロップ52は、アンド回路AND3が出力するクロックイネーブル信号CENaの有効レベル(例えば、論理値1)への変化に基づいて、送信フラグTFLGaを論理値0にリセットする。RSフリップフロップ52は、送信フラグ設定部の一例である。
The RS flip-
パケット変換部61は、アンド回路AND2を介してPCIeインタフェース20aから受信するパケットPINa(受信パケット)からデータ(ペイロード)を抽出し、抽出したデータを入力信号INaとして搭載論理40aに出力する。パケット変換部61は、パケットPINaに含まれる入力データのデータサイズに応じたサイクル数分のパケットPINaを受信する。パケットの例は、図4で説明する。
The
アンド回路AND2は、受信フラグRFLGaがリセット中(例えば、論理値0)に、PCIeインタフェース20aから出力されるパケットPINaをパケット変換部61に出力する。アンド回路AND2は、受信フラグRFLGaがセット中(例えば、論理値1)に、PCIeインタフェース20aから出力されるパケットPINaのパケット変換部61への出力を抑止する。アンド回路AND2は、PCIeインタフェース20aから受信するパケットPINaのパケット変換部61への出力を許可または抑止するパケット入力制御部の一例である。
The AND circuit AND2 outputs the packet PINa output from the
RSフリップフロップ62は、アンド回路AND2がパケットPINaを出力したことに基づいて、受信フラグRFLGaを論理値1にセットする。RSフリップフロップ62は、アンド回路AND3が出力するクロックイネーブル信号CENaの有効レベルへの変化に基づいて、受信フラグRFLGaを論理値0にリセットする。RSフリップフロップ62は、受信フラグ設定部の一例である。なお、RSフリップフロップ52、62に記載したかぎマークは、リセット端子Rによるリセットが、セット端子Sによるセットよりも優先されることを示す。
The RS flip-
同期クロック生成部70のアンド回路AND3は、送信フラグTFLGaおよび受信フラグRFLGaがともに論理値1の場合、クロックイネーブル信号CENaを有効レベル(論理値1)に設定する。アンド回路AND3は、送信フラグTFLGaまたは受信フラグRFLGaのいずれかが論理値0の場合、クロックイネーブル信号CENaを無効レベル(論理値0)に設定する。例えば、受信フラグRFLGaの論理値1は、PCIeインタフェース20aにも供給され、後続のパケットPINaの同期制御回路30aへの出力の抑止に使用される。アンド回路AND3は、クロックイネーブル信号CENaを生成するイネーブル生成回路の一例である。
The AND circuit AND3 of the synchronous
ラッチ回路71は、基準クロックRCLKaに同期してクロックイネーブル信号CENaの論理値をラッチし、同期クロックSCLKaを生成する。例えば、基準クロックRCLKは、PCIeインタフェース20a、22aの動作クロックとして使用され、同期クロックSCLKaは、搭載論理40aの動作クロックとして使用される。ラッチ回路71は、同期クロックSCLKaを出力するクロック出力部の一例である。
The
図4は、図3のパケット変換部51、61が変換するパケットの一例を示す。例えば、図3に示した搭載論理40aは、384ビットの出力信号OUTa[383:0]を出力し、384ビットの入力信号INa[383:0]を受信する。この場合、パケット変換部51は、出力信号OUTaの前に128ビットのPCIeヘッダを付加することで512ビットのパケットPOUTaを生成する。そして、パケット変換部51は、生成したパケットPOUTaを2クロックサイクル(CYC1、CYC2)でPCIeインタフェース20aに出力する。
FIG. 4 shows an example of a packet converted by the
パケット変換部61は、PCIeインタフェース20aから2クロックサイクル(CYC1、CYC2)で受信する512ビットのパケットPINaから128ビットのPCIeヘッダを破棄することで、384ビットの入力信号INa[383:0]を生成する。
The
なお、出力信号OUTaおよび入力信号INaが128ビット以下の場合、256ビットのパケット(POUTa、PINa)が生成される。また、出力信号OUTaおよび入力信号INaが385ビット以上の場合、ビット数に応じたクロックサイクル数に対応するパケット(POUTa、PINa)が生成される。 Note that when the output signal OUTa and the input signal INa are 128 bits or less, a 256-bit packet (POUTa, PINa) is generated. Further, when the output signal OUTa and the input signal INa have 385 bits or more, packets (POUTa, PINa) corresponding to the number of clock cycles corresponding to the number of bits are generated.
図5は、図1の各FPGA10a、10b内での信号の流れの一例を示す。なお、図5では、同期制御回路30a、30bのうちの同期クロック生成部70は、簡略化してアンド回路AND3のみを示す。図5に示す信号は、図7のタイミング図での説明に使用する。パケットPIN(PINa、PINb)は、受信信号の一例である。
FIG. 5 shows an example of a signal flow within each
図6は、図5のFPGA10a内の同期制御回路30aの動作の一例を示す。なお、FPGA10b内の同期制御回路30bの動作は、各信号の末尾の符号"a"を"b"に置き換えることで示される。図6は、複数のFPGA10間で送受信される信号を同期させる同期制御方法の一例を示している。
FIG. 6 shows an example of the operation of the
まず、ステップS10において、同期制御回路30aは、受信フラグRFLGaが論理値0のときにPCIeインタフェース20aからパケットPINaを受信した場合、ステップS12の動作を実行する。同期制御回路30aは、受信フラグRFLGaが論理値1の場合、または受信フラグRFLGaが論理値0でパケットPINaを受信していない場合、ステップS16の動作を実行する。
First, in step S10, when the
ステップS12において、同期制御回路30aのパケット変換部61は、受信したパケットPINaからPCIeヘッダを破棄して入力信号INaを生成し、搭載論理40aに出力する。また、同期制御回路30aのRSフリップフロップ62は、パケットPINaの入力に基づいて受信フラグRFLGaを論理値1にセットする。次に、ステップS14において、同期制御回路30aのアンド回路AND2は、受信フラグRFLGaが論理値1の間、パケットPINaの受信を抑止する。同期制御回路30aは、ステップS14の後、ステップS22の動作を実行する。
In step S12, the
ステップS16において、同期制御回路30aは、送信フラグTFLGaが論理値0の場合、ステップS18の動作を実行し、送信フラグTFLGaが論理値1の場合、ステップS22の動作を実行する。
In step S16, the
ステップS18において、同期制御回路30aのパケット変換部51は、搭載論理40aから出力される出力信号OUTaをパケットPOUTaに変換する。同期制御回路30のアンド回路AND1は、パケットPOUTaを2クロックサイクルかけてPCIeインタフェース20aに出力する。なお、パケット変換部51は、ステップS18の動作の前に、搭載論理40aから出力される出力信号OUTaをパケットPOUTaに変換してもよい。
In step S18, the
また、同期制御回路30aのRSフリップフロップ52は、パケットPOUTaの出力に基づいて送信フラグTFLGaを論理値1にセットする。次に、ステップS20において、同期制御回路30aのアンド回路AND1は、送信フラグTFLGaが論理値1の間、パケットPOUTaの出力を抑止する。同期制御回路30aは、ステップS20の後、ステップS22の動作を実行する。
Further, the RS flip-
ステップS22において、同期制御回路30aは、送信フラグTFLGaおよび受信フラグRFLGaがともに論理値1の場合、ステップS24の動作を実行する。同期制御回路30aは、送信フラグTFLGaまたは受信フラグRFLGaのいずれかが論理値0の場合、ステップS10の動作に戻る。ステップS24において、同期制御回路30aの同期クロック生成部70は、同期クロックSCLKaを1クロック分生成する。RSフリップフロップ52は、同期クロックSCLKaに基づいて送信フラグTFLGを論理値0にリセットする。RSフリップフロップ62は、同期クロックSCLKaに基づいて受信フラグRFLGaを論理値0にリセットする。そして、動作はステップS10に戻される。
In step S22, the
同期クロックSCLKaは、搭載論理40aに供給され、搭載論理40aは、同期クロックSCLKaに同期して動作する。なお、FPGA10bにおいて、同期クロックSCLKbは、同期クロックSCLKaと同じ頻度で生成される。したがって、所定の期間において、搭載論理40aに供給される同期クロックSCLKaのパルス数と、搭載論理40bに供給される同期クロックSCLKbのパルス数とは互いに同じになる。この結果、図5に示した同期制御回路30a、30bにより、FPGA10a、10bの搭載論理40a、40bを互いに同期して動作させることができる。
The synchronous clock SCLKa is supplied to the on-
図7は、図5の各FPGA10a、10b内の同期制御回路30a、30bの動作の一例を示す。図7は、複数のFPGA10間で送受信される信号を同期させる同期制御方法の一例を示している。図7に示す符号XXは、信号の論理値が不定であることを示す。例えば、パケットPOUTa、POUTbのペイロードおよび入力信号INa、INbは、384ビットであるとする。
FIG. 7 shows an example of the operation of the
図7の初期状態において、パケットPOUTa、POUTbは、パケットが生成されていない無効状態を示す論理値0である(図7(a)、(b))。受信フラグRFLGaは、同期クロックSCLKaが生成される図7の2番目のクロックサイクルの間、論理値1に変化する(図7(c))。送信フラグTFLGaは、同期クロックSCLKaが生成されるクロックサイクルの次のクロックサイクル(サイクルA)に論理値1から論理値0に変化する(図7(d))。 In the initial state of FIG. 7, packets POUTa and POUTb have a logical value of 0 indicating an invalid state in which no packets are generated (FIGS. 7(a) and (b)). The reception flag RFLGa changes to a logical value of 1 during the second clock cycle in FIG. 7 when the synchronization clock SCLKa is generated (FIG. 7(c)). The transmission flag TFLGa changes from a logic value of 1 to a logic value of 0 in the next clock cycle (cycle A) after the clock cycle in which the synchronization clock SCLKa is generated (FIG. 7(d)).
同様に、受信フラグRFLGbは、同期クロックSCLKbが生成される図7の2番目のクロックサイクルの間、論理値1に変化する(図7(e))。送信フラグTFLGbは、同期クロックSCLKbが生成されるクロックサイクルの次のクロックサイクル(サイクルA)に論理値1から論理値0に変化する(図7(f))。したがって、同期制御回路30a、30bは、サイクルAにおいてパケットを送受信可能な状態である。
Similarly, the reception flag RFLGb changes to a logical value of 1 during the second clock cycle of FIG. 7 when the synchronization clock SCLKb is generated (FIG. 7(e)). The transmission flag TFLGb changes from a logic value of 1 to a logic value of 0 in the next clock cycle (cycle A) after the clock cycle in which the synchronization clock SCLKb is generated (FIG. 7(f)). Therefore, the
FPGA10aの搭載論理40aは、サイクルAにおいて出力信号OUTa(=A1)を同期制御回路30aに出力する(図7(g))。同期制御回路30aは、出力信号OUTa(=A1)に基づいてパケットPOUTa(A1-1、A1-2)を生成し、生成したパケットPOUTaを基準クロックRCLKaの2クロックサイクルでPCIeインタフェース20aに出力する。データA1-1は、サイクルAに出力され、データA1-2は、サイクルBに出力される。パケットPOUTa(A1-1、A1-2)の出力の完了に基づいて、送信フラグTFLGaが論理値0から論理値1に変化する(図7(h))。これにより、送信フラグTFLGaが論理値1の間、後続の出力信号のPCIeインタフェース20aへの出力が抑止される。
The mounted
一方、FPGA10bの搭載論理40bは、サイクルAにおいて出力信号OUTb(=B1)を出力する(図7(i))。同期制御回路30bは、出力信号OUTbに基づいてパケットPOUTb(B1-1、B1-2)を生成し、生成したパケットPOUTbを基準クロックRCLKbの2クロックサイクルで出力する。データB1-1は、サイクルAに出力され、データB1-2は、サイクルBに出力される。パケットPOUTb(B1-1、B1-2)の出力の完了に基づいて、送信フラグTFLGbが論理値0から論理値1に変化する(図7(j))。これにより、送信フラグTFLGbが論理値1の間、後続の出力信号のPCIeインタフェース20bへの出力が抑止される。
On the other hand, the mounted
この後、サイクルCとサイクルCの次のサイクルにおいて、FPGA10aの同期制御回路30aは、PCIeインタフェース20aを介してFPGA10bからのパケットPINa(B1-1、B1-2)を順次受信する(図7(k))。パケット変換部61は、データB1-1、B1-2に基づいて入力信号INa(B1)を生成し、サイクルDにおいて、生成した入力信号INa(B1)を搭載論理40aに出力する(図7(l))。
Thereafter, in cycle C and the next cycle after cycle C, the
同期制御回路30aは、入力信号INa(B1)の受信の完了に基づいて受信フラグRFLGaを論理値1にセットする(図7(m))。これにより、同期制御回路30aの同期クロック生成部70は、同期クロックSCLKaを生成する(図7(n))。また、同期クロックSCLKaの生成により、送信フラグTFLGaおよび受信フラグRFLGaが論理値0にリセットされる(図7(o)、(p))。これにより、後続のパケットPOUTaのPCIeインタフェース20aへの出力が許可され、後続のパケットPINaのPCIeインタフェース20aからの受信が許可される。
The
このように、同期制御回路30aは、信号A1の送信の完了に基づいて送信フラグTFLGaをセットし、信号B1の受信の完了に基づいて受信フラグRFLGaをセットする。これにより、複数サイクルをかけて信号A1が送信され、複数サイクルをかけて信号B1が受信される場合にも、図7に示すように、搭載論理40a、40bを互いに同期して動作させることができる。
In this way, the
また、同期制御回路30aは、出力信号OUTaを含むパケットPOUTaをパケット変換部51により生成してPCIeインタフェース20aに出力し、PCIeインタフェース20aから受信するパケットPINaから入力信号INaを取り出す。これにより、FPGA10a、10b間の信号の送受信を、PCIeのような標準的なインタフェースを使用して行うことができる。標準的なインタフェースを使用する場合にも、FPGA10a、10bの搭載論理40a、40bの動作を互いに同期させることができる。
Furthermore, the
さらに、PCIeインタフェース20aの動作クロックである基準クロックRCLKaを使用して同期クロックSCLKaを生成することで、図7に示すように、基準クロックRCLKaに同期する同期クロックSCLKaを生成することができる。これにより、PCIeインタフェース20aの動作に合わせて、PCIeインタフェース20aに対してパケットを送受信することができる。この結果、基準クロックRCLKaに同期しない同期クロックSCLKaを生成する場合に比べて、同期制御回路30aのタイミング設計を容易にすることができ、タイミング余裕を確保することができる。
Furthermore, by generating the synchronous clock SCLKa using the reference clock RCLKa, which is the operating clock of the
サイクルEにおいて、搭載論理40aは、同期クロックSCLKaに基づいて動作を1クロックサイクル分実行し、後続の出力信号OUTa(=A2)を同期制御回路30aに出力する(図7(q))。また、搭載論理40aは、動作の実行結果を図1のPCIeインタフェース22aを介してサーバ300に出力する。
In cycle E, the mounted
同期制御回路30aは、出力信号OUTa(=A2)に基づいてパケットPOUTa(A2-1、A2-2)を生成し、生成したパケットPOUTaを基準クロックRCLKaの2クロックサイクルでPCIeインタフェース20aに出力する。データA2-1は、サイクルEに出力され、データA2-2は、サイクルFに出力される。パケットPOUTa(A2-1、A2-2)の出力の完了に基づいて、送信フラグTFLGaが論理値0から論理値1に変化する(図7(r))。これにより、送信フラグTFLGaが論理値1の間、後続のパケットPOUTaのPCIeインタフェース20aへの出力が抑止される。
The
一方、サイクルDとサイクルEにおいて、FPGA10bの同期制御回路30bは、PCIeインタフェース20bを介してFPGA10aからのパケットPINb(A1-1、A1-2)を順次受信する(図7(s))。パケット変換部61は、データA1-1、A1-2に基づいて入力信号INb(A1)を生成し、サイクルFにおいて、生成した入力信号INb(A1)を搭載論理40bに出力する(図7(t))。
On the other hand, in cycle D and cycle E, the
同期制御回路30bは、入力信号INb(A1)の受信の完了に基づいて受信フラグRFLGbを論理値1にセットする(図7(u))。これにより、同期制御回路30bの同期クロック生成部70は、同期クロックSCLKbを生成する(図7(v))。また、同期クロックSCLKbの生成により、サイクルGにおいて、送信フラグTFLGbおよび受信フラグRFLGbが論理値0にリセットされる(図7(w)、(x))。これにより、後続の出力信号のPCIeインタフェース20bへの出力が許可され、後続の入力信号のPCIeインタフェース20bからの受信が許可される。
The
サイクルGにおいて、搭載論理40bは、同期クロックSCLKbに基づいて、動作を1クロックサイクル分実行し、後続の出力信号OUTb(=B2)を同期制御回路30bに出力する(図7(y))。同期制御回路30bは、出力信号OUTb(=B2)に基づいてパケットPOUTb(B2-1、B2-2)を生成し、基準クロックRCLKbの2クロックサイクルでデータB2-1、B2-2をPCIeインタフェース20bに出力する。
In cycle G, the mounted
データB2-1は、サイクルGに出力され、データB2-2は、サイクルGの次のサイクルに出力される。パケットPOUTb(B2-1、B2-2)の出力の完了に基づいて、送信フラグTFLGbが論理値0から論理値1に変化する(図7(z))。これにより、送信フラグTFLGbが論理値1の間、後続の出力信号のPCIeインタフェース20bへの出力が抑止される。
Data B2-1 is output in cycle G, and data B2-2 is output in the cycle following cycle G. Based on the completion of output of packet POUTb (B2-1, B2-2), the transmission flag TFLGb changes from
以上の動作により、図7に示すクロックサイクルの間に、同期クロックSCLKa、SCLKbがそれぞれ2回ずつ生成される。したがって、各FPGA10a、10bに独立して設けられる同期制御回路30a、30bにより、搭載論理40a、40bを互いに同期して動作させることができる。
Through the above operation, the synchronous clocks SCLKa and SCLKb are each generated twice during the clock cycle shown in FIG. Therefore, the on-
図8は、図7のサイクルAでの各FPGA10a、10bの状態の一例を示す。図9は、図7のサイクルBでの各FPGA10a、10bの状態の一例を示す。図10は、図7のサイクルCでの各FPGA10a、10bの状態の一例を示す。図11は、図7のサイクルDでの各FPGA10a、10bの状態の一例を示す。図12は、図7のサイクルEでの各FPGA10a、10bの状態の一例を示す。
FIG. 8 shows an example of the state of each
図13は、図7のサイクルFでの各FPGA10a、10bの状態の一例を示す。図14は、図7のサイクルGでの各FPGA10a、10bの状態の一例を示す。なお、図8から図14では、送信制御部50および受信制御部60の記載は省略する。また、同期クロック生成部70は簡略化して示す。
FIG. 13 shows an example of the state of each
以上、図1から図14に示す実施形態では、FPGA10a、10bの各々に設けられる同期制御回路30a、30bにより、搭載論理40a、40bを互いに同期して動作させることができる。例えば、同期制御回路30a、30b毎に、送信フラグTFLGa、TFLGbと受信フラグRFLGa、RFLGbのセット/リセットを制御することで、搭載論理40a、40bを互いに同期して動作させることができる。
As described above, in the embodiments shown in FIGS. 1 to 14, the
このため、論理の規模が大きく、例えば、ASICに搭載する論理を複数のFPGA10a、10bに分割して搭載する場合にも、同期動作を実現することができる。換言すれば、ASIC等の論理回路の規模にかかわらず、同期動作を実現することができる。この結果、FPGA10a、10bにプログラムした回路(ハードウェア)を動作させて論理検証を実施することでき、論理検証シミュレーターを使用する場合に比べて、高速に論理検証を実施することができる。
Therefore, even when the scale of logic is large, for example, when the logic mounted on an ASIC is divided and mounted on a plurality of
同期制御回路30aは、信号A1の送信の完了に基づいて送信フラグTFLGaをセットし、信号B1の受信の完了に基づいて受信フラグRFLGaをセットする。これにより、図7に示したように、複数サイクルで信号A1が送信され、複数サイクルで信号B1が受信される場合にも、搭載論理40a、40bを互いに同期して動作させることができる。
The
同期制御回路30aは、出力信号OUTaを含むパケットPOUTaをパケット変換部51により生成してPCIeインタフェース20aに出力し、PCIeインタフェース20aから受信するパケットPINaから入力信号INaを取り出す。これにより、FPGA10a、10b間の信号の送受信を、PCIeのような標準的なインタフェースを使用して行うことができる。標準的なインタフェースを使用する場合にも、FPGA10a、10bの搭載論理40a、40bの動作を互いに同期させることができる。
The
PCIeインタフェース20aの動作クロックである基準クロックRCLKaを使用して同期クロックSCLKaを生成することで、図7に示すように、基準クロックRCLKaに同期する同期クロックSCLKaを生成することができる。これにより、PCIeインタフェース20aの動作に合わせて、PCIeインタフェース20aに対してパケットを送受信することができる。この結果、基準クロックRCLKaに同期しない同期クロックSCLKaを生成する場合に比べて、同期制御回路30aのタイミング設計を容易にすることができ、タイミング余裕を確保することができる。
By generating the synchronous clock SCLKa using the reference clock RCLKa, which is the operating clock of the
図15は、別の実施形態における検証装置を含む検証システムの一例を示す。上述した実施形態と同様の要素については、同じ符号を付し、詳細な説明は省略する。図15に示す検証システム102は、複数のFPGA10a、10b、10cを含む検証装置202と、検証装置202による論理検証を制御するサーバ300とを有する。FPGA10a、10bは、FPGA10a、10b間にFPGA10cが接続されることを除き、図1に示したFPGA10a、10bと同様の構成および機能を有する。
FIG. 15 shows an example of a verification system including a verification device in another embodiment. Elements similar to those in the embodiment described above are denoted by the same reference numerals, and detailed description thereof will be omitted. The
検証装置202は、FPGA10a、10b、10cにそれぞれプログラムされた検証対象の搭載論理40a、40b、40cを互いに同期させて動作させる機能を有する。このために、図1と同様に、FPGA10aには、搭載論理40aとともに同期制御回路30aがプログラムされ、FPGA10bには、搭載論理40bとともに同期制御回路30bがプログラムされる。また、FPGA10cには、搭載論理40cとともに、互いに同期して動作する同期制御回路30c、32cがプログラムされる。
The
特に限定されないが、FPGA10a、10b、10cの間、およびFPGA10aとサーバ300との間は、図1と同様に、それぞれPCIeインタフェースで接続される。しかしながら、FPGA10a、10b、10cの間、およびFPGA10aとサーバ300との間は、他の通信インタフェースを介して接続されてもよい。
Although not particularly limited, the
FPGA10cのプログラム領域には、PCIeインタフェース20c、同期制御回路30c、搭載論理40c、同期制御回路32cおよびPCIeインタフェース22cがプログラムされ、この順に接続される。PCIeインタフェース20cは、FPGA10aのPCIeインタフェース20aに接続され、PCIeインタフェース22cは、FPGA10bのPCIeインタフェース20bに接続される。
A
図16は、図15のFPGA10cに搭載される同期制御回路30cの一例を示す。同期制御回路30cは、信号名が異なること、および、同期クロック生成部70を持たないことを除き、図3および図5に示した同期制御回路30aおよび図5に示した同期制御回路30bと同様の構成および機能を有する。
FIG. 16 shows an example of a
同期制御回路30cの受信制御部60は、PCIeインタフェース20cからパケットPINc1を受信し、パケットPINc1のペイロードの情報を含む入力信号INc1を搭載論理40cに出力する。同期制御回路30cの送信制御部50は、搭載論理40cから出力信号OUTc1を受信し、出力信号OUTc1の情報を含むパケットPOUTc1をPCIeインタフェース20cに出力する。
The
なお、受信制御部60のRSフリップフロップ62および送信制御部50のRSフリップフロップ52は、同期制御回路32c(図17)からクロックイネーブル信号CENcおよび同期クロックSCLKcを受信する。また、RSフリップフロップ62が出力する受信フラグRFLGc1およびRSフリップフロップ52が出力する送信フラグTFLGc1は、同期制御回路32cに出力される。
Note that the RS flip-
図17は、図15のFPGA10cに搭載される同期制御回路32cの一例を示す。同期制御回路32cは、信号名が異なること、および、同期クロック生成部70の代わりに同期クロック生成部73を有することを除き、図3および図5に示した同期制御回路30aと同様の構成および機能を有する。
FIG. 17 shows an example of the
同期制御回路32cの送信制御部50は、搭載論理40cから出力信号OUTc2を受信し、出力信号OUTc2の情報を含むパケットPOUTc2をPCIeインタフェース22cに出力する。同期制御回路32cの受信制御部60は、PCIeインタフェース22cからパケットPINc2を受信し、パケットPINc1のペイロードの情報を含む入力信号INc2を搭載論理40cに出力する。
The
なお、搭載論理40cは、同期制御回路30c(図16)から受信する入力信号INc1を使用して、所定の機能の動作を実行し、動作により得られた出力信号OUTc2を同期制御回路32cに出力する。また、搭載論理40cは、同期制御回路32cから受信する入力信号INc2を使用して、所定の機能の動作を実行し、動作により得られた出力信号OUTc1を同期制御回路30cに出力する。
Note that the
同期クロック生成部73は、4入力のアンド回路AND4およびラッチ回路71を有する。アンド回路AND4は、同期制御回路30c内で生成される送信フラグTFLGc1および受信フラグRFLGc1と、同期制御回路32c内で生成される送信フラグTFLGc2および受信フラグRFLGc2とを受ける。
The synchronous
アンド回路AND4は、送信フラグTFLGc1、TFLGc2および受信フラグRFLGc1、RFLGc2の全てが論理値1(セット状態)の場合、クロックイネーブル信号CENcを有効レベル(論理値1)に設定する。アンド回路AND4は、送信フラグTFLGc1、TFLGc2または受信フラグRFLGc1、RFLGc2のいずれか1つが論理値0(リセット状態)の場合、クロックイネーブル信号CENcを無効レベル(論理値0)に設定する。 The AND circuit AND4 sets the clock enable signal CENc to a valid level (logical value 1) when all of the transmission flags TFLGc1 and TFLGc2 and the reception flags RFLGc1 and RFLGc2 have a logical value of 1 (set state). The AND circuit AND4 sets the clock enable signal CENc to an invalid level (logical value 0) when any one of the transmission flags TFLGc1, TFLGc2 or the reception flags RFLGc1, RFLGc2 has a logical value of 0 (reset state).
ラッチ回路71は、図3のラッチ回路71と同様に、基準クロックRCLKcに同期してクロックイネーブル信号CENcの論理値をラッチし、同期クロックSCLKcを生成する。クロックイネーブル信号CENcおよび同期クロックSCLKcは、同期制御回路32c内のRSフリップフロップ52、62と、同期制御回路30c内のRSフリップフロップ52、62とに供給される。
Like the
この実施形態では、同期クロック生成部73は、送信フラグTFLGc1、TFLGc2および受信フラグRFLGc1、RFLGc2の全てが論理値1にセットされた場合に、同期クロックSCLKcを出力する。そして、同期制御回路30cは、同期クロックSCLKcに同期して送信フラグTFLGc1および受信フラグRFLGc1を論理値0にリセットし、信号の送受信が可能な状態に設定される。同様に、同期制御回路32cは、同期クロックSCLKcに同期して送信フラグTFLGc2および受信フラグRFLGc2を論理値0にリセットし、信号の送受信が可能な状態に設定される。
In this embodiment, the synchronous
このように、共通の同期クロックSCLKcを使用することで、同期制御回路30c、32cによる信号の送受信の制御を同期させることができる。これにより、上述した実施形態と同様に、FPGA10a、10b内の搭載論理40a、40bを、FPGA10c内の搭載論理40cの動作と同期して動作させることができる。
In this way, by using the common synchronization clock SCLKc, control of signal transmission and reception by the
以上、この実施形態においても図1から図14に示した実施形態と同様の効果を得ることができる。さらに、この実施形態では、論理の規模が大きく、例えば、ASICに搭載する論理を3以上のFPGA10a、10b、10cに分割して搭載する場合にも、同期動作を実現することができる。換言すれば、ASIC等の論理回路の規模にかかわらず、同期動作を実現することができる。
As described above, the same effects as the embodiments shown in FIGS. 1 to 14 can be obtained in this embodiment as well. Furthermore, in this embodiment, even when the scale of logic is large, for example, when the logic mounted on an ASIC is divided and mounted on three or
図18は、別の実施形態における検証装置を含む検証システムの一例を示す。上述した実施形態と同様の要素については、同じ符号を付し、詳細な説明は省略する。図18に示す検証システム104は、複数のFPGA10d、10b、10eを含む検証装置204と、検証装置204による論理検証を制御するサーバ300とを有する。FPGA10bは、FPGA10dと接続されることを除き、図1に示したFPGA10bと同様の構成および機能を有する。FPGA10eは、FPGA10dと接続されることを除き、図1に示したFPGA10bと同様の構成および機能を有する。
FIG. 18 shows an example of a verification system including a verification device in another embodiment. Elements similar to those in the embodiment described above are denoted by the same reference numerals, and detailed description thereof will be omitted. The
FPGA10dのプログラム領域には、PCIeインタフェース20d、24d、同期制御回路30d、搭載論理40dおよびPCIeインタフェース22dがプログラムされ、この順に接続される。PCIeインタフェース20dは、FPGA10bのPCIeインタフェース20bに接続され、PCIeインタフェース24dは、FPGA10eのPCIeインタフェース20eに接続される。
In the program area of the
例えば、論理検証の実行時、PCIeインタフェース22dは、サーバ300から受信するシリアルのデータをパラレルのデータに変換して搭載論理40dに出力する。搭載論理40dは、PCIeインタフェース22dから受信するデータを使用して、所定の機能の動作を実行し、動作により得られたデータをPCIeインタフェース20d、24dにそれぞれ出力する。また、搭載論理40dは、PCIeインタフェース20d、24dからそれぞれ受信するデータを使用して、所定の機能の動作を実行し、動作により得られたデータをPCIeインタフェース22dに出力する。
For example, when performing logic verification, the PCIe interface 22d converts serial data received from the
同期制御回路30dは、搭載論理40dに対して送受信するデータと、PCIeインタフェース20dに対して送受信するデータと、PCIeインタフェース24dに対して送受信するデータとを相互に同期させる制御を実行する。同期制御回路30dの例は、図19で説明する。
The
図19は、図18のFPGA10dに搭載される同期制御回路30dの一例を示す。図3および図17と同様の構成および機能については、同じ符号を付し、詳細な説明は省略する。同期制御回路30dは、送信制御部501、502、受信制御部601、602および同期クロック生成部73を有する。
FIG. 19 shows an example of a
送信制御部501、502は、それぞれ図3に示した送信制御部50と同様の構成および機能を有する。送信制御部501は、搭載論理40dから出力される出力信号OUTd1をパケットPOUTd1に変換する。送信制御部502は、搭載論理40dから出力される出力信号OUTd2をパケットPOUTd2に変換する。
Transmission control units 501 and 502 each have the same configuration and function as
受信制御部601、602は、それぞれ図3に示した受信制御部60と同様の構成および機能を有する。受信制御部601は、PCIeインタフェース20dから受信するパケットPINd1からデータ(ペイロード)を抽出し、抽出したデータを入力信号INd1として搭載論理40dに出力する。受信制御部602は、PCIeインタフェース24dから受信するパケットPINd2からデータ(ペイロード)を抽出し、抽出したデータを入力信号INd2として搭載論理40dに出力する。
Reception control units 601 and 602 each have the same configuration and function as
同期クロック生成部73は、図17の同期クロック生成部73と同様の構成および機能を有する。同期クロック生成部73は、送信フラグTFLGd1、TFLGd2および受信フラグRFLGd1、RFLGd2の全てが論理値1の場合、クロックイネーブル信号CENdを有効レベル(論理値1)に設定する。そして、同期クロック生成部73は、基準クロックRCLKcに同期してクロックイネーブル信号CENcの論理値をラッチし、同期クロックSCLKdを生成する。また、同期クロック生成部73は、送信フラグTFLGd1、TFLGd2または受信フラグRFLGd1、RFLGd2のいずれか1つが論理値0の場合、クロックイネーブル信号CENdを無効レベル(論理値0)に設定する。クロックイネーブル信号CENdおよび同期クロックSCLKdは、送信制御部501、502内のRSフリップフロップ52と、受信制御部601、602内のRSフリップフロップ62とに供給される。
The synchronous
この実施形態においても、図16および図17に示した実施形態と同様に、同期制御回路30dは、同期クロックSCLKdに同期して送信フラグTFLGd1、TFLGd2および受信フラグRFLGd1、RFLGd2をリセットする。そして、同期制御回路30dは、信号の送受信が可能な状態に設定される。これにより、FPGA10dの搭載論理40dと、同期制御回路30dを介して接続されるFPGA10b、10eの搭載論理40b、40eとを互いに同期して動作させることができる。
Also in this embodiment, similarly to the embodiments shown in FIGS. 16 and 17, the
例えば、入り口側(前段側)の論理規模より奥側の論理規模が大きく、奥側の論理を複数のFPGA10b、10eにプログラムする場合にも、FPGA10d、10b、10eの搭載論理40d、40b、40eを互いに同期して動作させることができる。
For example, even when the logic scale on the back side is larger than the logic scale on the entrance side (previous stage side) and the logic on the back side is programmed into
以上、この実施形態においても図1から図17に示した実施形態と同様の効果を得ることができる。 As described above, the same effects as the embodiments shown in FIGS. 1 to 17 can be obtained in this embodiment as well.
なお、上述した実施形態では、複数のFPGA10に分割してプログラムされた論理を検証する検証装置200(または、202、204)に適用する例を記載した。しかしながら、上述した実施形態は、複数のFPGA10にプログラムされる論理が互いに同期して動作することで、所定の機能を実現する論理回路を含むシステムに適用されてもよい。 In addition, in the embodiment described above, an example was described in which the present invention is applied to the verification device 200 (or 202, 204) that verifies logic that is divided and programmed into a plurality of FPGAs 10. However, the embodiments described above may be applied to a system including a logic circuit that realizes a predetermined function by operating the logics programmed in a plurality of FPGAs 10 in synchronization with each other.
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。 The features and advantages of the embodiments will become apparent from the above detailed description. It is intended that the appended claims extend to the features and advantages of such embodiments without departing from the spirit and scope thereof. Additionally, all improvements and changes will be readily apparent to those having ordinary knowledge in the relevant technical field. Therefore, it is not intended that the scope of the inventive embodiments be limited to those described above, but suitable modifications and equivalents may be made within the scope disclosed in the embodiments.
10a、10b、10c、10d、10e FPGA
20a、20b、20c、20d、20e PCIeインタフェース
22a、22b、22c、22d PCIeインタフェース
24d PCIeインタフェース
30a、30b、30c、30d、30e 同期制御回路
32c 同期制御回路
40a、40b、40c、40d、40e 搭載論理
50、501、502 送信制御部
51 パケット変換部
52 RSフリップフロップ
60、601、602 受信制御部
61 パケット変換部
62 RSフリップフロップ
70 同期クロック生成部
71 ラッチ回路
100、102、104 検証システム
200、202、204 検証装置
300 サーバ
CENa、CENc クロックイネーブル信号
INa、INb、INc1、INc2 入力信号
INd1、INd2 入力信号
OUTa、OUTb、OUTc1、OUTc2 出力信号
OUTd1、OUTd2 出力信号
PINa、PINb、PINc1、PINc2 パケット
PINd1、PINd2 パケット
POUTa、POUTb、POUTc1、POUTc2 パケット
POUTd1、POUTd2 パケット
RCLKa、RCLKb、RCLKc 基準クロック
RFLGa、RFLGb、RFLGc1、RFLGc2 受信フラグ
RFLGd1、RFLGd2 受信フラグ
SCLKa、SCLKb、SCLKc 同期クロック
TFLGa、TFLGb、TFLGc1、TFLGc2 送信フラグ
TFLGd1、TFLGd2 送信フラグ
10a, 10b, 10c, 10d, 10e FPGA
20a, 20b, 20c, 20d,
Claims (6)
送信フラグのリセット中に、前記プログラマブル部にプログラムされた論理回路から出力信号を受信した場合、前記出力信号を送信インタフェースに出力し、前記送信フラグをセットする送信制御部と、
受信フラグのリセット中に、受信インタフェースから受信信号を受信した場合、前記プログラムされた論理回路に前記受信信号を出力し、前記受信フラグをセットする受信制御部と、
前記送信フラグおよび前記受信フラグがセットされた場合、前記プログラムされた論理回路に同期クロックを出力し、前記送信フラグおよび前記受信フラグをリセットする同期クロック生成部と、
を有する同期制御回路。 A synchronization control circuit provided in a programmable section in which a logic circuit is reconfigurably programmed, and synchronizing signals transmitted and received between the programmable section and another programmable section,
a transmission control unit that outputs the output signal to a transmission interface and sets the transmission flag when an output signal is received from a logic circuit programmed in the programmable unit while resetting the transmission flag;
a reception control unit that outputs the reception signal to the programmed logic circuit and sets the reception flag when a reception signal is received from the reception interface while the reception flag is being reset;
a synchronous clock generation unit that outputs a synchronous clock to the programmed logic circuit and resets the transmission flag and the reception flag when the transmission flag and the reception flag are set;
A synchronous control circuit with
前記同期クロック生成部は、複数の前記送信制御部に対応する複数の前記送信フラグと、複数の前記受信制御部に対応する複数の前記受信フラグとが全てセットされた場合、前記他の複数のプログラマブル部にそれぞれプログラムされた論理回路に前記同期クロックを出力し、複数の前記送信フラグと複数の前記受信フラグとをリセットする
請求項1に記載の同期制御回路。 Each of the plurality of synchronous control circuits corresponding to the other plurality of programmable parts, included in a programmable part that transmits and receives signals to and from each of the other plurality of programmable parts, is connected to the other plurality of programmable parts. the transmission control section and the reception control section corresponding to each of the above ;
When the plurality of transmission flags corresponding to the plurality of transmission control units and the plurality of reception flags corresponding to the plurality of reception control units are all set, the synchronous clock generation unit The synchronous control circuit according to claim 1, wherein the synchronous clock is output to logic circuits respectively programmed in the programmable section, and resets the plurality of transmission flags and the plurality of reception flags.
前記受信制御部は、前記受信信号の前記受信インタフェースからの受信の完了に基づいて前記受信フラグをセットし、前記同期クロックの出力に基づいて前記受信フラグをリセットする受信フラグ設定部を有する
請求項1または請求項2に記載の同期制御回路。 The transmission control unit includes a transmission flag setting unit that sets the transmission flag based on completion of outputting the output signal to the transmission interface, and resets the transmission flag based on the output of the synchronization clock,
The reception control unit includes a reception flag setting unit that sets the reception flag based on completion of reception of the reception signal from the reception interface, and resets the reception flag based on the output of the synchronization clock.
A synchronous control circuit according to claim 1 or claim 2.
前記論理回路から受信した出力信号の情報を含む送信パケットを生成するパケット変換部と、
前記送信フラグのリセット中に前記送信パケットを前記出力信号として前記送信インタフェースに出力し、前記送信フラグのセット中に前記送信パケットの前記送信インタフェースへの出力を抑止するパケット出力制御部と、を有し、
前記受信制御部は、
前記受信フラグのリセット中に前記受信インタフェースからの受信パケットを前記受信信号として出力し、前記受信フラグのセット中に前記受信インタフェースからの前記受信パケットの出力を抑止するパケット入力制御部と、
前記パケット入力制御部からの前記受信パケットに含まれる前記受信信号を取り出して前記プログラムされた論理回路に出力するパケット変換部と、
を有する請求項3に記載の同期制御回路。 The transmission control section includes:
a packet conversion unit that generates a transmission packet including information on the output signal received from the logic circuit;
a packet output control unit that outputs the transmission packet as the output signal to the transmission interface while the transmission flag is being reset, and suppresses output of the transmission packet to the transmission interface while the transmission flag is being set; death,
The reception control section includes:
a packet input control unit that outputs a received packet from the reception interface as the reception signal while the reception flag is reset, and suppresses output of the reception packet from the reception interface while the reception flag is set;
a packet conversion unit that extracts the received signal included in the received packet from the packet input control unit and outputs it to the programmed logic circuit;
The synchronous control circuit according to claim 3, comprising:
前記送信フラグおよび前記受信フラグがセットされたことに基づいてクロックイネーブル信号を生成するイネーブル生成回路と、
前記送信インタフェースおよび前記受信インタフェースを動作させる動作クロックに同期して前記クロックイネーブル信号を受信し、受信したクロックイネーブル信号を前記同期クロックとして出力するクロック出力部と、
を有する請求項1ないし請求項4のいずれか1項に記載の同期制御回路。 The synchronous clock generation section includes:
an enable generation circuit that generates a clock enable signal based on the transmission flag and the reception flag being set;
a clock output unit that receives the clock enable signal in synchronization with an operating clock that operates the transmission interface and the reception interface, and outputs the received clock enable signal as the synchronization clock;
A synchronous control circuit according to any one of claims 1 to 4.
前記複数のプログラマブル部の各々が、
送信フラグのリセット中に、前記プログラマブル部にプログラムされた論理回路から出力信号を受信した場合、前記出力信号を送信インタフェースに出力し、前記送信フラグをセットし、
受信フラグのリセット中に、受信インタフェースから受信信号を受信した場合、前記プログラムされた論理回路に前記受信信号を出力し、前記受信フラグをセットし、
前記送信フラグおよび前記受信フラグがセットされた場合、前記プログラムされた論理回路に同期クロックを出力し、前記送信フラグおよび前記受信フラグをリセットする、同期制御方法。 A synchronous control method for synchronizing signals transmitted and received between a plurality of programmable parts in which logic circuits are reconfigurably programmed, the method comprising:
Each of the plurality of programmable parts,
If an output signal is received from a logic circuit programmed in the programmable part while resetting the transmission flag, outputting the output signal to a transmission interface and setting the transmission flag;
If a receive signal is received from the receive interface while the receive flag is being reset, outputting the receive signal to the programmed logic circuit and setting the receive flag;
A synchronous control method comprising, when the transmission flag and the reception flag are set, outputting a synchronous clock to the programmed logic circuit and resetting the transmission flag and the reception flag.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020015018A JP7351230B2 (en) | 2020-01-31 | 2020-01-31 | Synchronous control circuit and synchronous control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020015018A JP7351230B2 (en) | 2020-01-31 | 2020-01-31 | Synchronous control circuit and synchronous control method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021121909A JP2021121909A (en) | 2021-08-26 |
JP7351230B2 true JP7351230B2 (en) | 2023-09-27 |
Family
ID=77364886
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020015018A Active JP7351230B2 (en) | 2020-01-31 | 2020-01-31 | Synchronous control circuit and synchronous control method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7351230B2 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005084957A (en) | 2003-09-09 | 2005-03-31 | Nec Corp | Circuit operation verification device and method |
JP2008027225A (en) | 2006-07-21 | 2008-02-07 | Fujitsu Ten Ltd | Simulation device |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7480609B1 (en) * | 2005-01-31 | 2009-01-20 | Sun Microsystems, Inc. | Applying distributed simulation techniques to hardware emulation |
-
2020
- 2020-01-31 JP JP2020015018A patent/JP7351230B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005084957A (en) | 2003-09-09 | 2005-03-31 | Nec Corp | Circuit operation verification device and method |
JP2008027225A (en) | 2006-07-21 | 2008-02-07 | Fujitsu Ten Ltd | Simulation device |
Also Published As
Publication number | Publication date |
---|---|
JP2021121909A (en) | 2021-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1670199B1 (en) | Design of channel alignment, error handling, and clock routing using hard-wired blocks for data transmission within programmable logic integrated circuits | |
US7003423B1 (en) | Programmable logic resource with data transfer synchronization | |
JP6469365B2 (en) | Method for providing general-purpose interface and microcontroller having general-purpose interface | |
EP2026493A1 (en) | Method and systems for mesochronous communications in multiple clock domains and corresponding computer program product | |
US20200218215A1 (en) | Circuit for coupling a field bus and a local bus | |
KR20140140507A (en) | Method for providing a generic interface and microcontroller with generic interface | |
US9755663B1 (en) | Parallel-serial conversion circuit, information processing apparatus and timing adjustment method | |
JP3919990B2 (en) | Timing synchronization system, apparatus used in the system, and timing synchronization method | |
US6961691B1 (en) | Non-synchronized multiplex data transport across synchronous systems | |
JP7351230B2 (en) | Synchronous control circuit and synchronous control method | |
US8675798B1 (en) | Systems, circuits, and methods for phase inversion | |
US8218448B1 (en) | Control networks providing reliable communications between different entities | |
US6996785B1 (en) | On-chip packet-based interconnections using repeaters/routers | |
US11243856B1 (en) | Framing protocol supporting low-latency serial interface in an emulation system | |
Pendyala et al. | 100-Mb/s enhanced data rate MIL-STD-1553B controller in 65-nm CMOS technology | |
CN113114187B (en) | Asynchronous pulse transmission blocking unit, control method thereof and superconducting single-flux quantum circuit | |
TWI774295B (en) | Method for data transmission control of inter field programmable gate array and associated apparatus | |
Romoth et al. | Optimizing inter-FPGA communication by automatic channel adaptation | |
JP2011191893A (en) | Logic verification device for divisionally mounted logic circuit | |
CN115186616A (en) | Data transmission control method across field programmable gate array and related equipment | |
JP3285333B2 (en) | Bus transfer device | |
KR101928942B1 (en) | Apparatus and method for processing digital video data having verification module | |
Guruprasad et al. | Performance realization of Bridge Model using Ethernet-MAC for NoC based system with FPGA Prototyping | |
KR20000020291A (en) | System prototyping apparatus and operation method thereof | |
JP4090606B2 (en) | Serial communication with multiple lines |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20221006 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230712 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230718 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230802 |
|
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: 20230815 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230828 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7351230 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |