JP2012014321A - Integrated circuit - Google Patents

Integrated circuit Download PDF

Info

Publication number
JP2012014321A
JP2012014321A JP2010148671A JP2010148671A JP2012014321A JP 2012014321 A JP2012014321 A JP 2012014321A JP 2010148671 A JP2010148671 A JP 2010148671A JP 2010148671 A JP2010148671 A JP 2010148671A JP 2012014321 A JP2012014321 A JP 2012014321A
Authority
JP
Japan
Prior art keywords
data
speed
output
input
processing block
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.)
Granted
Application number
JP2010148671A
Other languages
Japanese (ja)
Other versions
JP5451542B2 (en
Inventor
Ritsu Kusaba
律 草場
Kenji Kawai
健治 川合
Sadayuki Yasuda
禎之 安田
Satoshi Shigematsu
智志 重松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2010148671A priority Critical patent/JP5451542B2/en
Publication of JP2012014321A publication Critical patent/JP2012014321A/en
Application granted granted Critical
Publication of JP5451542B2 publication Critical patent/JP5451542B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Logic Circuits (AREA)

Abstract

PROBLEM TO BE SOLVED: To reduce the design and verification period for a system that uses a plurality of user-programmable integrated circuits.SOLUTION: A field-programmable gate array 1 that is an integrated circuit comprises: a processing block 2 that is an externally user-programmable logic circuit; FIFO registers 3-1 and 3-2 for retiming external input data I1a and I1b using an internal clock CK; a selector 4-1 for selecting either output data of the processing block 2 or output data of the FIFO register 3-2, and outputting it to the outside; and a selector 4-2 for selecting either output data of the processing block 2 or output data of the FIFO register 3-2, and inputting it into the processing block 2 as input data.

Description

本発明は、通信フレーム処理などを行うシステムに使用される集積回路に係り、特に外部からユーザによってプログラミング可能な論理回路であるフィールド・プログラマブル・ゲートアレイ等の集積回路に関するものである。   The present invention relates to an integrated circuit used in a system that performs communication frame processing and the like, and more particularly to an integrated circuit such as a field programmable gate array that is a logic circuit that can be programmed by a user from the outside.

フィールド・プログラマブル・ゲートアレイ(Field Programmable Gate Array、以下、FPGAと呼ぶ)のような再構成可能なハードウェアは、設計完了後短期間でシステム構築が可能なこと、設計変更になっても早期にハードウェアの変更が可能なことから様々な分野のシステムへの応用がされている。また、適用されるシステム規模も年々増大してきて、FPGA自体の大規模化も進められているが、複数のFPGAを組み合わせてシステムを実現することも少なくない。   Reconfigurable hardware such as Field Programmable Gate Array (hereinafter referred to as “FPGA”) can be built in a short period of time after the design is completed. Since the hardware can be changed, it is applied to systems in various fields. In addition, the system scale to be applied has been increasing year by year, and the FPGA itself has been increased in scale, but there are many cases where a system is realized by combining a plurality of FPGAs.

通信の分野においては、仕様を短期間にハードウェア化して確認できることからFPGAの主要な適用分野となっていたが、近年の通信速度の飛躍的向上およびセキュリティ強化等の処理の高度化により、複数のFPGAを用いてシステムを構築する例が多くなっている。   In the field of communications, the specification has been a major application field of FPGA because it can be confirmed by hardware in a short period of time. However, due to the dramatic improvement in communication speed and advanced processing such as security enhancement in recent years, multiple There are many examples of constructing a system using the above FPGA.

このようなことから、これまでにも複数のFPGAにより通信システムを実現する技術が開発されてきた(特許文献1、特許文献2、特許文献3、特許文献4参照)。図12は複数のFPGAによる従来の通信システムの構成例を示すブロック図である。この通信システムでは、各FPGA1000をバス1001,1002で相互に接続し、これらのFPGA1000をコントローラ1003で集中制御する方式を取っている。図12におけるCKはクロック、IN1,IN2は入力データ、OUT1,OUT2は出力データである。   For this reason, techniques for realizing a communication system using a plurality of FPGAs have been developed so far (see Patent Document 1, Patent Document 2, Patent Document 3, and Patent Document 4). FIG. 12 is a block diagram showing a configuration example of a conventional communication system using a plurality of FPGAs. In this communication system, each FPGA 1000 is connected to each other via buses 1001 and 1002, and the FPGA 1000 is centrally controlled by a controller 1003. In FIG. 12, CK is a clock, IN1 and IN2 are input data, and OUT1 and OUT2 are output data.

図13は、複数のFPGAを同時平行で開発した場合の従来の通信システムの設計・検証期間を示す図である。2000は第1のFPGAの設計・検証期間、2001は第2のFPGAの設計・検証期間、2002は第3のFPGAの設計・検証期間、2003はコントローラの設計・検証期間、2004はFPGA間の接続検証期間である。このように、図12に示した通信システムの設計・検証においては、一番開発に時間のかかった第3のFPGAの設計・検証期間に、コントローラの設計・検証期間とFPGA間の接続検証期間とが加算される。
通信システムの開発期間を短縮する技術としては、FPGAとASIC(Application Specific Integrated Circuit)のネットリストを作成する方法が提案されている(特許文献5参照)。
FIG. 13 is a diagram showing a design / verification period of a conventional communication system when a plurality of FPGAs are developed in parallel. 2000 is the design and verification period of the first FPGA, 2001 is the design and verification period of the second FPGA, 2002 is the design and verification period of the third FPGA, 2003 is the design and verification period of the controller, and 2004 is between the FPGAs It is a connection verification period. As described above, in the design / verification of the communication system shown in FIG. 12, the design / verification period of the controller and the connection verification period between the FPGAs are in the third FPGA design / verification period, which took the most time for development. And are added.
As a technique for shortening the development period of a communication system, a method of creating a netlist of FPGA and ASIC (Application Specific Integrated Circuit) has been proposed (see Patent Document 5).

特開2000−353950号公報JP 2000-353950 A 特開2001−186010号公報JP 2001-186010 A 特開2002−314579号公報JP 2002-314579 A 特開2005−011344号公報JP 2005-011344 A 特開2007−102813号公報JP 2007-102813 A

従来技術のようにバスを介して複数のFPGAを組み合わせることにより構成されるシステムでは、1つのFPGA内に閉じた処理の場合は効率的に処理できるが、通信フレーム処理のようにあるFPGAのブロックの出力が次のFPGAのブロックの入力になるようなパイプライン的な処理の場合はバスの制御が複雑になり、バス制御が行い難くなるという第1の課題があった。また、バス用のクロックを統一する必要があり、複数のFPGAの同期を取って動作させなければいけないという第2の課題があった。   In a system configured by combining a plurality of FPGAs via a bus as in the prior art, processing can be efficiently performed in the case of processing closed in one FPGA, but a block of an FPGA like communication frame processing In the case of pipeline processing in which the output of the signal becomes the input of the next FPGA block, there is a first problem that bus control becomes complicated and bus control becomes difficult. Further, there is a second problem that it is necessary to unify bus clocks, and it is necessary to operate a plurality of FPGAs in synchronization.

これら2つの課題を解決してシステム化を行うには、開発の複雑さに加えて、各FPGAに入れるべきブロックの設計が完成してからシステム化の設計をせざるを得ず、トータルの開発期間がかかるという第3の課題があった。
なお、以上のような課題はFPGAに限らず、製造後にユーザによってプログラミング可能な集積回路を用いるシステムであれば、同様に発生する。
In order to solve these two problems and implement systemization, in addition to the complexity of development, the design of the systemization must be done after the design of the block to be put in each FPGA is completed, so total development There was a third problem that it took a long time.
Note that the above problems are not limited to FPGAs, but occur similarly in a system using an integrated circuit that can be programmed by a user after manufacturing.

本発明は、上記課題を解決するためになされたもので、ユーザによってプログラミング可能な集積回路を複数用いるシステムの設計・検証期間を短縮することを目的とする。   The present invention has been made to solve the above-described problem, and an object thereof is to shorten the design / verification period of a system using a plurality of integrated circuits that can be programmed by a user.

本発明の集積回路は、外部からプログラミング可能な論理回路であって、入力データを処理して出力データを外部に出力する処理ブロックと、外部からの入力データを集積回路の内部クロックでリタイミングして前記処理ブロックに入力するFIFOレジスタとを備えることを特徴とするものである。
また、本発明の集積回路の1構成例は、さらに、前記処理ブロックの出力データと前記FIFOレジスタの出力データのうちどちらか一方を第1のセレクト信号に応じて選択して外部に出力する第1のセレクタと、前記処理ブロックの出力データと前記FIFOレジスタの出力データのうちどちらか一方を第2のセレクト信号に応じて選択して入力データとして前記処理ブロックに入力する第2のセレクタとを備えることを特徴とするものである。
The integrated circuit of the present invention is a logic circuit that can be programmed from the outside. The processing block processes the input data and outputs the output data to the outside. The external input data is retimed by the internal clock of the integrated circuit. And a FIFO register for inputting to the processing block.
Further, according to one configuration example of the integrated circuit of the present invention, either one of the output data of the processing block and the output data of the FIFO register is selected according to a first select signal and output to the outside. And a second selector that selects one of the output data of the processing block and the output data of the FIFO register in accordance with a second select signal and inputs the selected data to the processing block as input data. It is characterized by comprising.

また、本発明の集積回路の1構成例において、前記処理ブロックは、高速用の処理ブロックと、低速用の処理ブロックとからなり、前記FIFOレジスタは、高速用の入力データを前記内部クロックでリタイミングする高速用のFIFOレジスタと、低速用の入力データを前記内部クロックでリタイミングする低速用のFIFOレジスタとからなり、さらに、前記高速用のFIFOレジスタまたは低速用のFIFOレジスタの出力データが高速用データか低速用データかを判別して、判別したデータを入力データとして前記高速用の処理ブロックと前記低速用の処理ブロックとに振り分けて入力する振り分け処理手段と、前記高速用の処理ブロックの出力データと前記低速用の処理ブロックの出力データとを高速用または低速用のどちらか一方の外部出力端子に出力する合流処理手段とを備えることを特徴とするものである。
また、本発明の集積回路の1構成例において、前記振り分け処理手段は、前記高速用のFIFOレジスタまたは低速用のFIFOレジスタの出力データに含まれる識別子に基づいて、この出力データが高速用データか低速用データかを判別し、高速用データであれば前記高速用の処理ブロックに入力し、低速用データであれば前記低速用の処理ブロックに入力することを特徴とするものである。
Further, in one configuration example of the integrated circuit of the present invention, the processing block includes a high-speed processing block and a low-speed processing block, and the FIFO register uses the internal clock to restore high-speed input data. It consists of a high-speed FIFO register for timing and a low-speed FIFO register for retiming low-speed input data with the internal clock, and the output data of the high-speed FIFO register or low-speed FIFO register is high-speed A processing unit that determines whether the data is for low speed or low speed, and distributes the determined data as input data to the processing block for high speed and the processing block for low speed, and the processing block for high speed Output data and output data of the processing block for low speed are either for high speed or low speed. It is characterized in further comprising a merging processing means for outputting to an external output terminal.
Further, in one configuration example of the integrated circuit of the present invention, the distribution processing means determines whether the output data is high-speed data based on an identifier included in the output data of the high-speed FIFO register or the low-speed FIFO register. It is determined whether the data is for low speed, and if it is high speed data, it is input to the high speed processing block, and if it is low speed data, it is input to the low speed processing block.

本発明によれば、外部からの入力データを集積回路の内部クロックでリタイミングして処理ブロックに入力するFIFOレジスタを設けることにより、集積回路を複数搭載するシステムにおいて、複数の集積回路を接続するバス、バスを制御するコントローラおよびシステム共通のクロックが不要となる。本発明では、接続される集積回路間のみでタイミング調整を図れるので、システム設計の簡易化を実現することができる。また、本発明では、システム全体でのタイミング調整が不要になるので、全ての設計ブロックの設計完了前に集積回路間の接続検証や完成した設計ブロックの検証を行うことができ、システムの設計・検証期間を大幅に短縮することができる。   According to the present invention, by providing a FIFO register for retiming input data from the outside with an internal clock of the integrated circuit and inputting it to the processing block, a plurality of integrated circuits are connected in a system in which a plurality of integrated circuits are mounted. A bus, a controller for controlling the bus, and a clock common to the system are not required. In the present invention, timing adjustment can be achieved only between connected integrated circuits, so that system design can be simplified. Further, in the present invention, since timing adjustment in the entire system is not required, connection verification between integrated circuits and verification of completed design blocks can be performed before the design of all design blocks is completed. The verification period can be greatly shortened.

また、本発明では、処理ブロックの出力データとFIFOレジスタの出力データのうちどちらか一方を第1のセレクト信号に応じて選択して外部に出力する第1のセレクタと、処理ブロックの出力データとFIFOレジスタの出力データのうちどちらか一方を第2のセレクト信号に応じて選択して入力データとして処理ブロックに入力する第2のセレクタとを設けることにより、集積回路を複数搭載したシステムの設計時において、システム外へのインターフェイスの設計が一部しか完成していない場合においても、第1、第2のセレクタを切り替えて、データを入力された方向に戻す折り返しを行うことにより、設計が完成している部分の検証を進めることができる。その結果、本発明では、従来のように処理ブロックの設計・検証を完成させてから上位のブロック間の接続検証を行うのではなく、処理ブロックの設計・検証と同時期に集積回路間の接続検証を行うことができ、システムの設計・検証期間を大幅に短縮することができる。   Further, according to the present invention, a first selector that selects one of the output data of the processing block and the output data of the FIFO register according to the first select signal and outputs the selected data to the outside, the output data of the processing block, At the time of designing a system equipped with a plurality of integrated circuits by providing a second selector that selects one of the output data of the FIFO register in accordance with the second select signal and inputs it to the processing block as input data However, even if only a part of the design of the interface to the outside of the system is completed, the design is completed by switching the first and second selectors and returning the data to the input direction. You can proceed with verification of the part. As a result, in the present invention, the connection between the integrated circuits is not performed at the same time as the design / verification of the processing block, instead of performing the verification of the connection between the upper blocks after completing the design / verification of the processing block as in the prior art. Verification can be performed, and the system design and verification period can be greatly shortened.

また、本発明では、高速用のFIFOレジスタまたは低速用のFIFOレジスタの出力データが高速用データか低速用データかを判別して、判別したデータを入力データとして高速用の処理ブロックと低速用の処理ブロックとに振り分けて入力する振り分け処理手段と、高速用の処理ブロックの出力データと低速用の処理ブロックの出力データとを高速用または低速用のどちらか一方の外部出力端子に出力する合流処理手段とを設けることにより、集積回路を複数搭載したシステムの設計時において、例えば低速側のインターフェイスの設計が一部しか完成していない場合においても、高速側のインターフェイスから入力した低速用データを入口側の集積回路の内部で低速用の処理ブロックに振り分け、出口側の集積回路の内部で高速側のインターフェイスに戻すことができるので、設計が完成している部分の検証を進めることができる。その結果、本発明では、従来のように処理ブロックの設計・検証を完成させてから上位のブロック間の接続検証を行うのではなく、処理ブロックの設計・検証と同時期に集積回路間の接続検証を行うことができ、システムの設計・検証期間を大幅に短縮することができる。   In the present invention, it is determined whether the output data of the high-speed FIFO register or the low-speed FIFO register is high-speed data or low-speed data, and the high-speed processing block and low-speed data are input using the determined data as input data. Distribution processing means that distributes and inputs to processing blocks, and merge processing that outputs the output data of the high-speed processing block and the output data of the low-speed processing block to either the high-speed or low-speed external output terminal When designing a system equipped with a plurality of integrated circuits, for example, even when only a part of the low-speed interface design is completed, the low-speed data input from the high-speed interface is entered. The processing circuit for low speed is allocated inside the integrated circuit on the side, and the high speed side in the integrated circuit on the exit side. It is possible to return to the interface, it is possible to proceed with the verification of the part design is complete. As a result, in the present invention, the connection between the integrated circuits is not performed at the same time as the design / verification of the processing block, instead of performing the verification of the connection between the upper blocks after completing the design / verification of the processing block as in the prior art. Verification can be performed, and the system design and verification period can be greatly shortened.

本発明の第1の実施の形態に係る集積回路であるFPGAの内部回路構成例を示すブロック図である。1 is a block diagram illustrating an internal circuit configuration example of an FPGA that is an integrated circuit according to a first embodiment of the present invention. 本発明の第1の実施の形態に係るFIFOレジスタの動作を説明するタイミングチャートである。3 is a timing chart for explaining the operation of the FIFO register according to the first embodiment of the present invention. 論理回路が入出力端子直結回路になるようにプログラミングした場合のFPGAの内部回路構成を示すブロック図である。It is a block diagram which shows the internal circuit structure of FPGA at the time of programming so that a logic circuit may become an input-output terminal direct connection circuit. 本発明の第1の実施の形態に係るFPGAを組み合わせた通信システムの例を示すブロック図である。It is a block diagram which shows the example of the communication system which combined FPGA which concerns on the 1st Embodiment of this invention. 本発明の第1の実施の形態においてFPGAの内部でデータを折り返す例を示す図である。It is a figure which shows the example which wraps up data inside FPGA in the 1st Embodiment of this invention. 本発明の第1の実施の形態においてFPGAの内部でデータを折り返す別の例を示す図である。It is a figure which shows another example which wraps around data inside FPGA in the 1st Embodiment of this invention. 本発明の第1の実施の形態に係る通信システムの設計・検証期間を示す図である。It is a figure which shows the design and verification period of the communication system which concerns on the 1st Embodiment of this invention. 本発明の第1の実施の形態に係るFPGAを組み合わせた通信システムの別の例を示すブロック図である。It is a block diagram which shows another example of the communication system which combined FPGA which concerns on the 1st Embodiment of this invention. 本発明の第2の実施の形態に係るFPGAを組み合わせた通信システムの例を示すブロック図である。It is a block diagram which shows the example of the communication system which combined FPGA which concerns on the 2nd Embodiment of this invention. 本発明の第2の実施の形態において高速IF側から入力した低速用データを低速側に振り分ける例を示す図である。It is a figure which shows the example which distributes the low speed data input from the high speed IF side to the low speed side in the 2nd Embodiment of this invention. 本発明の第2の実施の形態に係る集積回路であるFPGAの内部回路構成例を示すブロック図である。It is a block diagram which shows the internal circuit structural example of FPGA which is the integrated circuit which concerns on the 2nd Embodiment of this invention. 複数のFPGAによる従来の通信システムの構成例を示すブロック図である。It is a block diagram which shows the structural example of the conventional communication system by several FPGA. 複数のFPGAを同時平行で開発した場合の従来の通信システムの設計・検証期間を示す図である。It is a figure which shows the design and verification period of the conventional communication system at the time of developing several FPGA simultaneously in parallel.

[第1の実施の形態]
以下、本発明の実施の形態について図面を参照して説明する。図1は本発明の第1の実施の形態に係る集積回路であるFPGAの内部回路構成例を示すブロック図である。
FPGA1は、外部からユーザによってプログラミング可能な論理回路であって、入力データを処理して出力データを外部に出力する処理ブロック2と、外部からの入力データI1a,I1bをFPGA1の内部クロックCKでリタイミングするFIFO(First-In First-Out)レジスタ3−1,3−2と、処理ブロック2の出力データとFIFOレジスタ3−2の出力データのうちどちらか一方を選択して外部に出力するセレクタ4−1と、処理ブロック2の出力データとFIFOレジスタ3−2の出力データのうちどちらか一方を選択して入力データとして処理ブロック2に入力するセレクタ4−2とを有する。
[First Embodiment]
Hereinafter, embodiments of the present invention will be described with reference to the drawings. FIG. 1 is a block diagram showing an internal circuit configuration example of an FPGA which is an integrated circuit according to the first embodiment of the present invention.
The FPGA 1 is a logic circuit that can be programmed by the user from the outside. The FPGA 1 processes the input data and outputs the output data to the outside, and the external input data I 1 a and I 1 b are rewritten by the internal clock CK of the FPGA 1. First-in first-out (FIFO) registers 3-1, 3-2, selectors for selecting one of the output data of the processing block 2 and the output data of the FIFO register 3-2 and outputting them to the outside 4-1, and a selector 4-2 that selects one of the output data of the processing block 2 and the output data of the FIFO register 3-2 and inputs the selected data to the processing block 2 as input data.

図1において、O1a,O1bは出力データ、ICK1a,ICK1bは入力クロック、OCK1a,OCK1bは出力クロック、SEL1,SEL2はセレクタ4−1,4−2を制御するためのセレクト信号である。   In FIG. 1, O1a and O1b are output data, ICK1a and ICK1b are input clocks, OCK1a and OCK1b are output clocks, and SEL1 and SEL2 are select signals for controlling the selectors 4-1, 4-2.

一般に、FPGA外部のクロックとFPGAの内部クロックCKとは位相差がある。そこで、本実施の形態のFIFOレジスタ3−1は、図2に示すように内部クロックCKの所定のタイミング(例えば内部クロックCKの立ち上がり)で入力データI1aをリタイミングして、内部データD1を出力する。同様に、FIFOレジスタ3−2も、内部クロックCKの所定のタイミングで入力データI1bをリタイミングして、内部データを出力する。   In general, there is a phase difference between the clock external to the FPGA and the internal clock CK of the FPGA. Therefore, the FIFO register 3-1 of the present embodiment retimes the input data I1a at a predetermined timing of the internal clock CK (for example, the rising edge of the internal clock CK) and outputs the internal data D1 as shown in FIG. To do. Similarly, the FIFO register 3-2 also retimes the input data I1b at a predetermined timing of the internal clock CK and outputs the internal data.

こうして、本実施の形態では、FIFOレジスタ3−1,3−2によって入力データI1a,I1bをリタイミングすることで、外部のクロックICK1a,ICK1bと内部クロックCKとの位相差によるデータの取りこぼしを防ぐことができ、FPGA1内の処理ブロック2は単一のクロックCKに従ってデータを処理することができる。   In this manner, in this embodiment, the input data I1a and I1b are retimed by the FIFO registers 3-1 and 3-2, thereby preventing data loss due to the phase difference between the external clocks ICK1a and ICK1b and the internal clock CK. The processing block 2 in the FPGA 1 can process data according to a single clock CK.

本実施の形態によれば、複数のFPGAを組み合わせる際に、出力側のFPGAと入力側のFPGAの2つのFPGAの間の位相調整を行えば良いので、3つ以上のFPGAに同位相のクロックを供給する場合に比べて容易にFPGA間の接続を実現することができる。本実施の形態では、FPGAを接続するバスおよびバスを制御するコントローラも不要になる。   According to the present embodiment, when a plurality of FPGAs are combined, the phase adjustment between the two FPGAs of the output side FPGA and the input side FPGA may be performed. It is possible to easily realize connection between the FPGAs as compared with the case of supplying. In this embodiment, a bus for connecting the FPGA and a controller for controlling the bus are also unnecessary.

さらに、本実施の形態では、セレクタ4−1,4−2をFPGA1内に設け、セレクタ4−1,4−2の選択動作を外部から入力されるセレクト信号SEL1,SEL2によって切り替えることで、データを入力された方向に戻す折り返し機能を実現することができる。   Further, in the present embodiment, selectors 4-1 and 4-2 are provided in the FPGA 1, and the selection operation of the selectors 4-1 and 4-2 is switched by select signals SEL1 and SEL2 input from the outside. Can be realized.

セレクタ4−1は、処理ブロック2の出力データとFIFOレジスタ3−2の出力データのうちどちらか一方を、外部から入力されるセレクト信号SEL1に従って選択して、出力データO1aとして出力する。こうして、セレクタ4−1は、処理ブロック2から出力されたデータを出力データO1aとして後段のFPGA(不図示)に送り出すこともできるし、後段のFPGAから入力されFIFOレジスタ3−2によってリタイミングされた入力データI1bを出力データO1aとして後段のFPGAに折り返すこともできる。   The selector 4-1 selects one of the output data of the processing block 2 and the output data of the FIFO register 3-2 according to the select signal SEL 1 input from the outside, and outputs it as output data O 1 a. In this way, the selector 4-1 can send the data output from the processing block 2 as output data O1a to a subsequent FPGA (not shown), or is input from the subsequent FPGA and retimed by the FIFO register 3-2. The input data I1b can be turned back to the subsequent FPGA as output data O1a.

セレクタ4−2は、処理ブロック2の出力データとFIFOレジスタ3−2の出力データのうちどちらか一方を、外部から入力されるセレクト信号SEL2に従って選択して処理ブロック2に出力する。こうして、セレクタ4−2は、後段のFPGAから入力されFIFOレジスタ3−2によってリタイミングされた入力データI1bを処理ブロック2に出力することもできるし、処理ブロック2から出力されたデータを処理ブロック2の入力に折り返すこともできる。   The selector 4-2 selects one of the output data of the processing block 2 and the output data of the FIFO register 3-2 according to the select signal SEL2 input from the outside and outputs the selected data to the processing block 2. In this manner, the selector 4-2 can output the input data I1b input from the subsequent-stage FPGA and retimed by the FIFO register 3-2 to the processing block 2, or the data output from the processing block 2 can be output to the processing block. It can also be folded back to the input of 2.

なお、本実施の形態において、セレクタ4−1,4−2は必須の構成要件ではない。また、図1に示した例は、処理ブロック2の後段(図1の右側)に設けたセレクタ4−1,4−2でデータを双方向に折り返すことができるようにした例であるが、処理ブロック2の前段(図1の左側)にセレクタを設けることも可能である。   In the present embodiment, the selectors 4-1 and 4-2 are not essential components. Further, the example shown in FIG. 1 is an example in which the data can be folded back bidirectionally by the selectors 4-1 and 4-2 provided in the subsequent stage of the processing block 2 (right side in FIG. 1). It is also possible to provide a selector in the previous stage of processing block 2 (left side in FIG. 1).

処理ブロック2は、FIFOレジスタ3−1の出力データおよびセレクタ4−2の出力データを、ユーザによってプログラミングされた論理で処理する。処理ブロック2の右方向への出力データは、セレクタ4−1,4−2に出力される。処理ブロック2の左方向への出力データは、出力データO1bとして外部に出力される。
FPGA1の内部クロックCKは、出力クロックOCK1a,OCK1bとして外部に出力される。
The processing block 2 processes the output data of the FIFO register 3-1 and the output data of the selector 4-2 with logic programmed by the user. Output data in the right direction of the processing block 2 is output to the selectors 4-1, 4-2. Output data to the left of the processing block 2 is output to the outside as output data O1b.
The internal clock CK of the FPGA 1 is output to the outside as output clocks OCK1a and OCK1b.

図3は処理ブロック2によって構成される論理回路が入出力端子直結回路(以下、スルー回路と呼ぶ)になるようにプログラミングした場合のFPGA1の内部回路構成を示すブロック図である。この場合、FIFOレジスタ3−1から入力されたデータは、そのままセレクタ4−1,4−2に出力される。また、セレクタ4−2から入力されたデータは、そのまま出力データO1bとして外部に出力される。   FIG. 3 is a block diagram showing an internal circuit configuration of the FPGA 1 when the logic circuit constituted by the processing block 2 is programmed so as to be an input / output terminal direct connection circuit (hereinafter referred to as a through circuit). In this case, the data input from the FIFO register 3-1 is output as it is to the selectors 4-1, 4-2. The data input from the selector 4-2 is output to the outside as output data O1b as it is.

このように、設計の初期段階で処理ブロック2の設計完了前であっても、処理ブロック2内部の入出力端子を直結することで通信路を形成することができる。したがって、複数のFPGA間の接続検証が設計の初期段階から可能になる。   In this way, even before the design of the processing block 2 is completed at the initial stage of design, a communication path can be formed by directly connecting the input / output terminals inside the processing block 2. Therefore, connection verification between a plurality of FPGAs becomes possible from the initial stage of design.

図4は本実施の形態のFPGA1を組み合わせた通信システムの例を示すブロック図である。第1のFPGA1−1、第2のFPGA1−2および第3のFPGA1−3の内部構成は図1、図3で説明したとおりである。
第1のFPGA1−1は、システム外からの入力データI1aと入力クロックICK1aとを入力とし、入力データI1aを処理して、出力データO1aと出力クロックOCK1aとを出力する。出力データO1aと出力クロックOCK1aとは、それぞれ入力データI2a、入力クロックICK2aとして第2のFPGA1−2に入力される。
FIG. 4 is a block diagram showing an example of a communication system in which the FPGA 1 of the present embodiment is combined. The internal configurations of the first FPGA 1-1, the second FPGA 1-2, and the third FPGA 1-3 are as described with reference to FIGS.
The first FPGA 1-1 receives input data I1a and input clock ICK1a from outside the system, processes the input data I1a, and outputs output data O1a and output clock OCK1a. The output data O1a and the output clock OCK1a are input to the second FPGA 1-2 as input data I2a and input clock ICK2a, respectively.

第2のFPGA1−2は、入力データI2aを処理して、出力データO2aと出力クロックOCK2aとを出力する。出力データO2aと出力クロックOCK2aとは、それぞれ入力データI3a、入力クロックICK3aとして第3のFPGA1−3に入力される。第3のFPGA1−3は、入力データI3aを処理して、出力データO3aと出力クロックOCK3aとをシステム外に出力する。   The second FPGA 1-2 processes the input data I2a and outputs the output data O2a and the output clock OCK2a. The output data O2a and the output clock OCK2a are input to the third FPGA 1-3 as the input data I3a and the input clock ICK3a, respectively. The third FPGA 1-3 processes the input data I3a and outputs the output data O3a and the output clock OCK3a to the outside of the system.

また、第3のFPGA1−3は、システム外からの入力データI3bと入力クロックICK3bとを入力とし、入力データI3bを処理して、出力データO3bと出力クロックOCK3bとを出力する。出力データO3bと出力クロックOCK3bとは、それぞれ入力データI2b、入力クロックICK2bとして第2のFPGA1−2に入力される。   The third FPGA 1-3 receives the input data I3b and the input clock ICK3b from outside the system, processes the input data I3b, and outputs the output data O3b and the output clock OCK3b. The output data O3b and the output clock OCK3b are input to the second FPGA 1-2 as input data I2b and input clock ICK2b, respectively.

第2のFPGA1−2は、入力データI2bを処理して、出力データO2bと出力クロックOCK2bとを出力する。出力データO2bと出力クロックOCK2bとは、それぞれ入力データI1b、入力クロックICK1bとして第1のFPGA1−1に入力される。第1のFPGA1−1は、入力データI1bを処理して、出力データO1bと出力クロックOCK1bとをシステム外に出力する。
以上のように複数のFPGA1−1〜1−3においてデータの処理を繰り返し、最終のFPGAの出力データをシステム外に出力する。
The second FPGA 1-2 processes the input data I2b and outputs the output data O2b and the output clock OCK2b. The output data O2b and the output clock OCK2b are input to the first FPGA 1-1 as the input data I1b and the input clock ICK1b, respectively. The first FPGA 1-1 processes the input data I1b and outputs the output data O1b and the output clock OCK1b to the outside of the system.
As described above, the data processing is repeated in the plurality of FPGAs 1-1 to 1-3, and the output data of the final FPGA is output outside the system.

設計の初期段階においてはシステムのインターフェイス部(以下、IF部と呼ぶ)が完成していない場合がある。そのような場合でも、本実施の形態のFPGA1を用いればFPGA内部のセレクタによってデータ信号を折り返すことで、設計が完成している部分の検証を進めることができる。   In the initial stage of design, the system interface unit (hereinafter referred to as IF unit) may not be completed. Even in such a case, if the FPGA 1 of the present embodiment is used, the data signal is turned back by the selector inside the FPGA, so that the verification of the part where the design is completed can be advanced.

図5の例では、第3のFPGA1−3の右側の入出力IF部の設計が完成していない。このため、完成していない入出力IF部を点線で図示している。このような場合でも、第1のFPGA1−1内部のセレクタを用いて、第1のFPGA1−1の処理ブロックが入力データI1aを処理した結果を出力データO1bとして折り返すデータ導通を実施することにより、設計が完成している第1のFPGA1−1とその左側の入出力IF部の検証を進めることができる。   In the example of FIG. 5, the design of the input / output IF unit on the right side of the third FPGA 1-3 is not completed. For this reason, the unfinished input / output IF unit is shown by a dotted line. Even in such a case, by using the selector inside the first FPGA 1-1, by performing data continuity that wraps the result of processing the input data I1a by the processing block of the first FPGA 1-1 as the output data O1b, Verification of the first FPGA 1-1 whose design has been completed and the input / output IF unit on the left side thereof can proceed.

図6の例では、第3のFPGA1−3内部のセレクタを切り替えることにより、第3のFPGA1−3の処理ブロックが入力データI3aを処理した結果を出力データO3bとして折り返している。このように、FPGA間の接続確認は、設計が完成している入出力IF部に近いFPGA1から順次、セレクタの折り返し機能を利用したデータ導通で検証することができる。   In the example of FIG. 6, by switching the selector in the third FPGA 1-3, the processing block of the third FPGA 1-3 processes the input data I3a as the output data O3b. As described above, the connection confirmation between the FPGAs can be verified by data conduction using the turn-back function of the selector sequentially from the FPGA 1 close to the input / output IF unit whose design has been completed.

また、設計が完成したブロックの検証は入出力IF部から近い順でなくても実施できる。この場合は、検証の対象でないFPGA1の処理ブロックをスルー回路とし、検証の対象となるFPGA1の処理ブロックがデータを折り返すデータ導通を実施すればよい。これにより、各FPGA間の接続を検証した後であれば、任意のFPGA1を検証することができる。セレクタの折り返し信号はFPGA1に搭載されている物理スイッチもしくは折り返し用のレジスタにより発生することが可能である。   In addition, verification of a block whose design has been completed can be performed even if it is not in the order from the input / output IF unit. In this case, the processing block of the FPGA 1 that is not subject to verification may be a through circuit, and data conduction may be performed so that the processing block of the FPGA 1 that is subject to verification returns data. Thus, any FPGA 1 can be verified after the connection between the FPGAs is verified. The folding signal of the selector can be generated by a physical switch or a folding register mounted on the FPGA 1.

図7は本実施の形態の通信システムの設計・検証期間を示す図である。100は第1のFPGA1−1の設計・検証期間、101は第2のFPGA1−2の設計・検証期間、102は第3のFPGA1−3の設計・検証期間、103はFPGA間の接続検証期間である。このように、本実施の形態では、図13と比べて明らかなように、コントローラの設計・検証期間がなくなるだけでなく、各FPGAの設計に先行してFPGA間の接続検証もスルー回路および折り返し機能を使用することで検証可能なため、システム全体の設計・検証期間を大幅に短縮することができる。   FIG. 7 is a diagram showing a design / verification period of the communication system according to the present embodiment. Reference numeral 100 denotes a design / verification period of the first FPGA 1-1, 101 denotes a design / verification period of the second FPGA 1-2, 102 denotes a design / verification period of the third FPGA 1-3, and 103 denotes a connection verification period between the FPGAs. It is. As described above, in the present embodiment, as is clear from FIG. 13, not only the controller design / verification period is eliminated, but also the connection verification between FPGAs is performed prior to the design of each FPGA. Since verification is possible by using functions, the design and verification period of the entire system can be greatly shortened.

図1〜図6の例では、左→右方向と右→左方向の2つのデータ伝送方向にデータパスを1つずつ持つFPGAの例で説明してきたが、例えば図8の例のように複数のデータパスを持つFPGAを用いてシステムを構成することもできる。
第2のFPGA1−5および第4のFPGA1−7の内部構成は図1、図3で説明したとおりである。第1のFPGA1−4および第3のFPGA1−6は、2つのデータ伝送方向にそれぞれ複数のデータパスを持つ。
In the example of FIGS. 1 to 6, the example of the FPGA having one data path in two data transmission directions of left → right direction and right → left direction has been described. It is also possible to configure the system using an FPGA having the following data path.
The internal configurations of the second FPGA 1-5 and the fourth FPGA 1-7 are as described with reference to FIGS. The first FPGA 1-4 and the third FPGA 1-6 each have a plurality of data paths in two data transmission directions.

第1のFPGA1−4は、システム外からの入力データI1aと入力クロックICK1aとを入力とし、入力データI1aを処理して、出力データO1a,O1cと出力クロックOCK1a,OCK1cとを出力する。出力データO1aと出力クロックOCK1aとは、それぞれ入力データI2a、入力クロックICK2aとして第2のFPGA1−5に入力され、出力データO1cと出力クロックOCK1cとは、それぞれ入力データI4a、入力クロックICK4aとして第4のFPGA1−7に入力される。   The first FPGA 1-4 receives input data I1a and input clock ICK1a from outside the system, processes the input data I1a, and outputs output data O1a and O1c and output clocks OCK1a and OCK1c. The output data O1a and the output clock OCK1a are input to the second FPGA 1-5 as the input data I2a and the input clock ICK2a, respectively. The output data O1c and the output clock OCK1c are the fourth as the input data I4a and the input clock ICK4a, respectively. To the FPGA 1-7.

第2のFPGA1−5は、入力データI2aを処理して、出力データO2aと出力クロックOCK2aとを出力する。出力データO2aと出力クロックOCK2aとは、それぞれ入力データI3a、入力クロックICK3aとして第3のFPGA1−6に入力される。第4のFPGA1−7は、入力データI4aを処理して、出力データO4aと出力クロックOCK4aとを出力する。出力データO4aと出力クロックOCK4aとは、それぞれ入力データI3c、入力クロックICK3cとして第3のFPGA1−6に入力される。第3のFPGA1−6は、入力データI3a,I3cを処理して、出力データO3aと出力クロックOCK3aとをシステム外に出力する。   The second FPGA 1-5 processes the input data I2a and outputs the output data O2a and the output clock OCK2a. The output data O2a and the output clock OCK2a are input to the third FPGA 1-6 as input data I3a and input clock ICK3a, respectively. The fourth FPGA 1-7 processes the input data I4a and outputs the output data O4a and the output clock OCK4a. The output data O4a and the output clock OCK4a are input to the third FPGA 1-6 as input data I3c and input clock ICK3c, respectively. The third FPGA 1-6 processes the input data I3a and I3c and outputs the output data O3a and the output clock OCK3a to the outside of the system.

また、第3のFPGA1−6は、システム外からの入力データI3bと入力クロックICK3bとを入力とし、入力データI3bを処理して、出力データO3b,O3cと出力クロックOCK3b,OCK3cとを出力する。出力データO3bと出力クロックOCK3bとは、それぞれ入力データI2b、入力クロックICK2bとして第2のFPGA1−5に入力され、出力データO3cと出力クロックOCK3cとは、それぞれ入力データI4b、入力クロックICK4bとして第4のFPGA1−7に入力される。   The third FPGA 1-6 receives input data I3b and input clock ICK3b from outside the system, processes the input data I3b, and outputs output data O3b and O3c and output clocks OCK3b and OCK3c. The output data O3b and the output clock OCK3b are input to the second FPGA 1-5 as the input data I2b and the input clock ICK2b, respectively. The output data O3c and the output clock OCK3c are the fourth as the input data I4b and the input clock ICK4b, respectively. To the FPGA 1-7.

第2のFPGA1−5は、入力データI2bを処理して、出力データO2bと出力クロックOCK2bとを出力する。第4のFPGA1−7は、入力データI4bを処理して、出力データO4bと出力クロックOCK4bとを出力する。出力データO2bと出力クロックOCK2bとは、それぞれ入力データI1b、入力クロックICK1bとして第1のFPGA1−4に入力され、出力データO4bと出力クロックOCK4bとは、それぞれ入力データI1c、入力クロックICK1cとして第1のFPGA1−4に入力される。第1のFPGA1−4は、入力データI1b,I1cを処理して、出力データO1bと出力クロックOCK1bとをシステム外に出力する。   The second FPGA 1-5 processes the input data I2b and outputs the output data O2b and the output clock OCK2b. The fourth FPGA 1-7 processes the input data I4b and outputs the output data O4b and the output clock OCK4b. The output data O2b and the output clock OCK2b are input to the first FPGA 1-4 as the input data I1b and the input clock ICK1b, respectively. The output data O4b and the output clock OCK4b are the first as the input data I1c and the input clock ICK1c, respectively. To the FPGA1-4. The first FPGA 1-4 processes the input data I1b and I1c and outputs the output data O1b and the output clock OCK1b to the outside of the system.

第1のFPGA1−4および第3のFPGA1−6のように複数のデータパスを持つFPGAは、上記のようにセレクタを用いるか、あるいは処理ブロックの内部に切り替え機能部を設けることで実現することができる。   An FPGA having a plurality of data paths, such as the first FPGA 1-4 and the third FPGA 1-6, can be realized by using a selector as described above or by providing a switching function unit inside the processing block. Can do.

[第2の実施の形態]
低速の通信から高速の通信への移行期においては、図9のように低速IFと高速IFとを有する通信システムが必要な場合がある。
まず、高速IF側のデータパスについて説明する。第1のFPGA1−8は、システム外からの入力データI1aと入力クロックICK1aとを入力とし、入力データI1aを処理して、出力データO1aと出力クロックOCK1aとを出力する。出力データO1aと出力クロックOCK1aとは、それぞれ入力データI2a、入力クロックICK2aとして第2のFPGA1−9に入力される。
[Second Embodiment]
In the transition period from low-speed communication to high-speed communication, a communication system having a low-speed IF and a high-speed IF as shown in FIG. 9 may be necessary.
First, the data path on the high-speed IF side will be described. The first FPGA 1-8 receives the input data I1a and the input clock ICK1a from outside the system, processes the input data I1a, and outputs the output data O1a and the output clock OCK1a. The output data O1a and the output clock OCK1a are input to the second FPGA 1-9 as input data I2a and input clock ICK2a, respectively.

第2のFPGA1−9は、入力データI2aを処理して、出力データO2aと出力クロックOCK2aとを出力する。出力データO2aと出力クロックOCK2aとは、それぞれ入力データI3a、入力クロックICK3aとして第3のFPGA1−10に入力される。第3のFPGA1−10は、入力データI3aを処理して、出力データO3aと出力クロックOCK3aとをシステム外に出力する。   The second FPGA 1-9 processes the input data I2a and outputs the output data O2a and the output clock OCK2a. The output data O2a and the output clock OCK2a are input to the third FPGA 1-10 as input data I3a and input clock ICK3a, respectively. The third FPGA 1-10 processes the input data I3a and outputs the output data O3a and the output clock OCK3a to the outside of the system.

また、第3のFPGA1−10は、システム外からの入力データI3bと入力クロックICK3bとを入力とし、入力データI3bを処理して、出力データO3bと出力クロックOCK3bとを出力する。出力データO3bと出力クロックOCK3bとは、それぞれ入力データI2b、入力クロックICK2bとして第2のFPGA1−9に入力される。   The third FPGA 1-10 receives input data I3b and input clock ICK3b from outside the system, processes the input data I3b, and outputs output data O3b and output clock OCK3b. The output data O3b and the output clock OCK3b are input to the second FPGA 1-9 as input data I2b and input clock ICK2b, respectively.

第2のFPGA1−9は、入力データI2bを処理して、出力データO2bと出力クロックOCK2bとを出力する。出力データO2bと出力クロックOCK2bとは、それぞれ入力データI1b、入力クロックICK1bとして第1のFPGA1−8に入力される。第1のFPGA1−8は、入力データI1bを処理して、出力データO1bと出力クロックOCK1bとをシステム外に出力する。以上が、高速IF側のデータの流れである。   The second FPGA 1-9 processes the input data I2b and outputs the output data O2b and the output clock OCK2b. The output data O2b and the output clock OCK2b are input to the first FPGA 1-8 as input data I1b and input clock ICK1b, respectively. The first FPGA 1-8 processes the input data I1b and outputs the output data O1b and the output clock OCK1b to the outside of the system. The above is the data flow on the high-speed IF side.

次に、低速IF側のデータパスについて説明する。第1のFPGA1−8は、システム外からの入力データI1cと入力クロックICK1cとを入力とし、入力データI1cを処理して、出力データO1cと出力クロックOCK1cとを出力する。出力データO1cと出力クロックOCK1cとは、それぞれ入力データI2c、入力クロックICK2cとして第2のFPGA1−9に入力される。   Next, the data path on the low-speed IF side will be described. The first FPGA 1-8 receives input data I1c and input clock ICK1c from outside the system, processes the input data I1c, and outputs output data O1c and output clock OCK1c. The output data O1c and the output clock OCK1c are input to the second FPGA 1-9 as input data I2c and input clock ICK2c, respectively.

第2のFPGA1−9は、入力データI2cを処理して、出力データO2cと出力クロックOCK2cとを出力する。出力データO2cと出力クロックOCK2cとは、それぞれ入力データI3c、入力クロックICK3cとして第3のFPGA1−10に入力される。第3のFPGA1−10は、入力データI3cを処理して、出力データO3cと出力クロックOCK3cとをシステム外に出力する。   The second FPGA 1-9 processes the input data I2c and outputs the output data O2c and the output clock OCK2c. The output data O2c and the output clock OCK2c are input to the third FPGA 1-10 as input data I3c and input clock ICK3c, respectively. The third FPGA 1-10 processes the input data I3c and outputs the output data O3c and the output clock OCK3c to the outside of the system.

また、第3のFPGA1−10は、システム外からの入力データI3dと入力クロックICK3dとを入力とし、入力データI3dを処理して、出力データO3dと出力クロックOCK3dとを出力する。出力データO3dと出力クロックOCK3dとは、それぞれ入力データI2d、入力クロックICK2dとして第2のFPGA1−9に入力される。   The third FPGA 1-10 receives the input data I3d and the input clock ICK3d from outside the system, processes the input data I3d, and outputs the output data O3d and the output clock OCK3d. The output data O3d and the output clock OCK3d are input to the second FPGA 1-9 as input data I2d and input clock ICK2d, respectively.

第2のFPGA1−9は、入力データI2dを処理して、出力データO2dと出力クロックOCK2dとを出力する。出力データO2dと出力クロックOCK2dとは、それぞれ入力データI1d、入力クロックICK1dとして第1のFPGA1−8に入力される。第1のFPGA1−8は、入力データI1dを処理して、出力データO1dと出力クロックOCK1dとをシステム外に出力する。以上が、低速IF側のデータの流れである。   The second FPGA 1-9 processes the input data I2d and outputs the output data O2d and the output clock OCK2d. The output data O2d and the output clock OCK2d are input to the first FPGA 1-8 as input data I1d and input clock ICK1d, respectively. The first FPGA 1-8 processes the input data I1d and outputs the output data O1d and the output clock OCK1d to the outside of the system. The above is the data flow on the low-speed IF side.

以上のようなシステムにおいても、低速または高速の入出力IF部の設計が遅れることがある。図10の例では、低速側の入出力IF部の設計が完成していない。このため、完成していない入出力IF部を点線で図示している。そこで、図10に示すように高速IF側から入力した低速用データを第1のFPGA1−8の内部で低速側に振り分け、第1のFPGA1−8、第2のFPGA1−9、第3のFPGA1−10で処理されたデータを第3のFPGA1−10の内部で高速IF側に戻すことで、複数のFPGA間の低速側の接続検証、および低速側のブロックの検証が可能になる。   Even in such a system, the design of a low-speed or high-speed input / output IF unit may be delayed. In the example of FIG. 10, the design of the low-speed input / output IF unit is not completed. For this reason, the unfinished input / output IF unit is shown by a dotted line. Therefore, as shown in FIG. 10, the low-speed data input from the high-speed IF side is distributed to the low-speed side inside the first FPGA 1-8, and the first FPGA 1-8, the second FPGA 1-9, and the third FPGA 1 By returning the data processed in −10 to the high-speed IF side in the third FPGA 1-10, it is possible to verify the connection on the low speed side between the plurality of FPGAs and the block on the low speed side.

本実施の形態の第1のFPGA1−8の内部回路構成を図11に示す。FPGA1−8は、外部からユーザによってプログラミング可能な論理回路である高速用の処理ブロック2aと、低速用の処理ブロック2bと、入力データI1a,I1b,I1c,I1dをFPGA1−8の内部クロックCKでリタイミングするFIFOレジスタ3−1,3−2,3−3,3−4と、処理ブロック2aの出力データとFIFOレジスタ3−2の出力データのうちどちらか一方を選択して外部に出力するセレクタ4−1と、処理ブロック2aの出力データとFIFOレジスタ3−2の出力データのうちどちらか一方を選択して入力データとして処理ブロック2aに入力するセレクタ4−2と、処理ブロック2bの出力データとFIFOレジスタ3−4の出力データのうちどちらか一方を選択して外部に出力するセレクタ4−3と、処理ブロック2bの出力データとFIFOレジスタ3−4の出力データのうちどちらか一方を選択して入力データとして処理ブロック2bに入力するセレクタ4−4と、FIFOレジスタ3−1の出力データが高速用データか低速用データかを判別して、判別したデータを入力データとして処理ブロック2a,2bに振り分けて入力する振り分け処理部5と、処理ブロック2aの出力データと処理ブロック2bの出力データとを高速用の外部出力端子に出力する合流処理部6とを有する。   FIG. 11 shows an internal circuit configuration of the first FPGA 1-8 of the present embodiment. The FPGA 1-8 uses a high-speed processing block 2a, a low-speed processing block 2b, which is a logic circuit that can be programmed by the user from the outside, and input data I1a, I1b, I1c, I1d using the internal clock CK of the FPGA 1-8. Select one of the FIFO registers 3-1, 3-2, 3-3, 3-4 to be retimed, the output data of the processing block 2a and the output data of the FIFO register 3-2 and output the selected data to the outside. The selector 4-1, the selector 4-2 that selects one of the output data of the processing block 2a and the output data of the FIFO register 3-2 and inputs the selected data to the processing block 2a, and the output of the processing block 2b Selector 4 for selecting one of the data and the output data of the FIFO register 3-4 and outputting it to the outside The selector 4-4 that selects one of the output data of the processing block 2b and the output data of the FIFO register 3-4 and inputs the input data to the processing block 2b, and the output data of the FIFO register 3-1. It is determined whether it is high-speed data or low-speed data, and the distribution data is input to the processing blocks 2a and 2b as input data, and the output data of the processing block 2a and the output data of the processing block 2b And a merging processing unit 6 for outputting to a high-speed external output terminal.

第1の実施の形態と同様に、FIFOレジスタ3−1,3−2,3−3,3−4は、内部クロックCKの所定のタイミング(例えば内部クロックCKの立ち上がり)で入力データI1a,I1b,I1c,I1dをリタイミングして、内部データを出力する。   As in the first embodiment, the FIFO registers 3-1, 3-2, 3-3, 3-4 receive the input data I1a, I1b at a predetermined timing of the internal clock CK (for example, the rising edge of the internal clock CK). , I1c, I1d are retimed to output internal data.

セレクタ4−1は、処理ブロック2aの出力データとFIFOレジスタ3−2の出力データのうちどちらか一方を、外部から入力されるセレクト信号SEL1に従って選択して、出力データO1aとして出力する。セレクタ4−2は、処理ブロック2aの出力データとFIFOレジスタ3−2の出力データのうちどちらか一方を、外部から入力されるセレクト信号SEL2に従って選択して処理ブロック2aに出力する。   The selector 4-1 selects one of the output data of the processing block 2 a and the output data of the FIFO register 3-2 according to the select signal SEL 1 input from the outside, and outputs it as output data O 1 a. The selector 4-2 selects either the output data of the processing block 2a or the output data of the FIFO register 3-2 according to the select signal SEL2 input from the outside, and outputs it to the processing block 2a.

セレクタ4−3は、処理ブロック2bの出力データとFIFOレジスタ3−4の出力データのうちどちらか一方を、外部から入力されるセレクト信号SEL3に従って選択して、出力データO1cとして出力する。セレクタ4−4は、処理ブロック2bの出力データとFIFOレジスタ3−4の出力データのうちどちらか一方を、外部から入力されるセレクト信号SEL4に従って選択して処理ブロック2bに出力する。   The selector 4-3 selects one of the output data of the processing block 2b and the output data of the FIFO register 3-4 according to the select signal SEL3 input from the outside, and outputs it as output data O1c. The selector 4-4 selects one of the output data of the processing block 2b and the output data of the FIFO register 3-4 according to the select signal SEL4 input from the outside, and outputs it to the processing block 2b.

振り分け処理部5は、FIFOレジスタ3−1の出力データに含まれる例えば宛先アドレス等の識別子に基づいて、FIFOレジスタ3−1の出力データが高速用データか低速用データかを判別し、高速用データであれば処理ブロック2aに出力し、低速用データであれば処理ブロック2bに出力する。   The distribution processing unit 5 determines whether the output data of the FIFO register 3-1 is high-speed data or low-speed data based on an identifier such as a destination address included in the output data of the FIFO register 3-1. If it is data, it is output to the processing block 2a, and if it is low speed data, it is output to the processing block 2b.

なお、振り分け処理部5は、外部からユーザによってプログラミング可能な回路である。以上のような振り分け処理を実行するか、あるいは振り分け処理を実行せずに、FIFOレジスタ3−1の出力データをそのまま処理ブロック2aに出力するかは、ユーザによって任意に設定することができる。   The distribution processing unit 5 is a circuit that can be programmed by a user from the outside. The user can arbitrarily set whether to execute the distribution process as described above or to directly output the output data of the FIFO register 3-1 to the processing block 2a without executing the distribution process.

合流処理部6は、高速側の処理ブロック2aの出力データを高速側の出力データO1bとして出力すると共に、低速側の処理ブロック2bの出力データも出力データO1bとして出力する。こうして、合流処理部6は、処理ブロック2bで処理されたデータを高速IF側に出力することができる。   The merge processing unit 6 outputs the output data of the high-speed processing block 2a as the high-speed output data O1b, and also outputs the output data of the low-speed processing block 2b as the output data O1b. In this way, the merge processing unit 6 can output the data processed in the processing block 2b to the high-speed IF side.

なお、合流処理部6は、外部からユーザによってプログラミング可能な回路である。以上のような合流処理を実行するかしないかは、ユーザによって任意に設定することができる。   The merge processing unit 6 is a circuit that can be programmed by the user from the outside. Whether or not to perform the merging process as described above can be arbitrarily set by the user.

処理ブロック2aは、振り分け処理部5の出力データとセレクタ4−2の出力データとを、ユーザによってプログラミングされた論理で処理する。処理ブロック2aの右方向への出力データは、セレクタ4−1,4−2に出力される。処理ブロック2aの左方向への出力データは、合流処理部6を介して出力データO1bとして外部に出力される。   The processing block 2a processes the output data of the distribution processing unit 5 and the output data of the selector 4-2 with logic programmed by the user. Output data to the right of the processing block 2a is output to the selectors 4-1, 4-2. Output data in the left direction of the processing block 2a is output to the outside as output data O1b via the merge processing unit 6.

処理ブロック2bは、FIFOレジスタ3−3の出力データまたは振り分け処理部5の出力データと、セレクタ4−4の出力データとを、ユーザによってプログラミングされた論理で処理する。処理ブロック2bの右方向への出力データは、セレクタ4−3,4−4に出力される。処理ブロック2bの左方向への出力データは、出力データO1dとして外部に出力されるか、あるいは合流処理部6を介して出力データO1bとして外部に出力される。
FPGA1−8の内部クロックCKは、出力クロックOCK1a,OCK1b,OCK1c,OCK1dとして外部に出力される。
The processing block 2b processes the output data of the FIFO register 3-3 or the output data of the distribution processing unit 5 and the output data of the selector 4-4 with logic programmed by the user. Output data in the right direction of the processing block 2b is output to the selectors 4-3 and 4-4. Output data to the left of the processing block 2b is output to the outside as output data O1d, or output to the outside as output data O1b via the merge processing unit 6.
The internal clock CK of the FPGA 1-8 is output to the outside as output clocks OCK1a, OCK1b, OCK1c, OCK1d.

以上のような第1のFPGA1−8の構成により、図10に示したデータの振り分けと合流を実現することができる。
第2のFPGA1−9、第3のFPGA1−10も、第1のFPGA1−8と同様の構成を有する。
With the configuration of the first FPGA 1-8 as described above, the data distribution and merging shown in FIG. 10 can be realized.
The second FPGA 1-9 and the third FPGA 1-10 have the same configuration as that of the first FPGA 1-8.

なお、本実施の形態において、セレクタ4−1〜4−4は必須の構成要件ではない。また、図11に示した例は、処理ブロック2a,2bの後段(図11の右側)に設けたセレクタ4−1〜4−4でデータを双方向に折り返すことができるようにした例であるが、処理ブロック2a,2bの前段(図11の左側)にセレクタを設けることも可能である。   In the present embodiment, the selectors 4-1 to 4-4 are not essential constituent requirements. Further, the example shown in FIG. 11 is an example in which data can be folded bidirectionally by selectors 4-1 to 4-4 provided at the subsequent stage of processing blocks 2 a and 2 b (right side in FIG. 11). However, it is also possible to provide a selector in the previous stage (left side in FIG. 11) of the processing blocks 2a and 2b.

また、本実施の形態では、高速側の入出力IF部に振り分け処理部5と合流処理部6を設けているが、これらを低速側の入出力IF部に設けてもよい。すなわち、振り分け処理部は、FIFOレジスタ3−3の出力データが高速用データか低速用データかを判別して、判別したデータを入力データとして処理ブロック2a,2bに振り分けて入力するようにしてもよく、合流処理部は、処理ブロック2aの出力データと処理ブロック2bの出力データとを低速用の外部出力端子に出力するようにしてもよい。   In this embodiment, the distribution processing unit 5 and the merging processing unit 6 are provided in the high-speed input / output IF unit, but these may be provided in the low-speed input / output IF unit. That is, the distribution processing unit determines whether the output data of the FIFO register 3-3 is high-speed data or low-speed data, and distributes the determined data to the processing blocks 2a and 2b as input data. Alternatively, the merging processing unit may output the output data of the processing block 2a and the output data of the processing block 2b to the low-speed external output terminal.

本発明は、フィールド・プログラマブル・ゲートアレイ等の集積回路に適用することができる。   The present invention can be applied to an integrated circuit such as a field programmable gate array.

1,1−1〜1−10…FPGA、2,2a,2b…処理ブロック、3−1〜3−4…FIFOレジスタ、4−1〜4−4…セレクタ、5…振り分け処理部、6…合流処理部。   DESCRIPTION OF SYMBOLS 1,1-1 to 1-10 ... FPGA, 2, 2a, 2b ... Processing block, 3-1 to 3-4 ... FIFO register, 4-1 to 4-4 ... Selector, 5 ... Distribution processing part, 6 ... Merge processing section.

Claims (4)

外部からプログラミング可能な論理回路であって、入力データを処理して出力データを外部に出力する処理ブロックと、
外部からの入力データを集積回路の内部クロックでリタイミングして前記処理ブロックに入力するFIFOレジスタとを備えることを特徴とする集積回路。
A logic circuit that can be programmed from outside, a processing block that processes input data and outputs output data to the outside,
An integrated circuit comprising: a FIFO register for retiming input data from the outside with an internal clock of the integrated circuit and inputting the data to the processing block.
請求項1記載の集積回路において、
さらに、前記処理ブロックの出力データと前記FIFOレジスタの出力データのうちどちらか一方を第1のセレクト信号に応じて選択して外部に出力する第1のセレクタと、
前記処理ブロックの出力データと前記FIFOレジスタの出力データのうちどちらか一方を第2のセレクト信号に応じて選択して入力データとして前記処理ブロックに入力する第2のセレクタとを備えることを特徴とする集積回路。
The integrated circuit of claim 1, wherein
A first selector for selecting one of the output data of the processing block and the output data of the FIFO register according to a first select signal and outputting the selected data to the outside;
And a second selector that selects one of the output data of the processing block and the output data of the FIFO register according to a second select signal and inputs the selected data to the processing block as input data. Integrated circuit.
請求項1または2記載の集積回路において、
前記処理ブロックは、高速用の処理ブロックと、低速用の処理ブロックとからなり、
前記FIFOレジスタは、高速用の入力データを前記内部クロックでリタイミングする高速用のFIFOレジスタと、低速用の入力データを前記内部クロックでリタイミングする低速用のFIFOレジスタとからなり、
さらに、前記高速用のFIFOレジスタまたは低速用のFIFOレジスタの出力データが高速用データか低速用データかを判別して、判別したデータを入力データとして前記高速用の処理ブロックと前記低速用の処理ブロックとに振り分けて入力する振り分け処理手段と、
前記高速用の処理ブロックの出力データと前記低速用の処理ブロックの出力データとを高速用または低速用のどちらか一方の外部出力端子に出力する合流処理手段とを備えることを特徴とする集積回路。
The integrated circuit according to claim 1 or 2,
The processing block consists of a processing block for high speed and a processing block for low speed,
The FIFO register includes a high-speed FIFO register for retiming high-speed input data with the internal clock and a low-speed FIFO register for retiming low-speed input data with the internal clock,
Further, it is determined whether the output data of the high-speed FIFO register or the low-speed FIFO register is high-speed data or low-speed data, and using the determined data as input data, the high-speed processing block and the low-speed processing Sorting processing means for sorting and inputting into blocks,
An integrated circuit comprising: merging processing means for outputting the output data of the processing block for high speed and the output data of the processing block for low speed to either the high speed or low speed external output terminal .
請求項3記載の集積回路において、
前記振り分け処理手段は、前記高速用のFIFOレジスタまたは低速用のFIFOレジスタの出力データに含まれる識別子に基づいて、この出力データが高速用データか低速用データかを判別し、高速用データであれば前記高速用の処理ブロックに入力し、低速用データであれば前記低速用の処理ブロックに入力することを特徴とする集積回路。
The integrated circuit of claim 3, wherein
The distribution processing means determines whether the output data is high-speed data or low-speed data based on an identifier included in the output data of the high-speed FIFO register or the low-speed FIFO register. Input to the processing block for high speed, and input to the processing block for low speed if the data is low speed.
JP2010148671A 2010-06-30 2010-06-30 Integrated circuit Expired - Fee Related JP5451542B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010148671A JP5451542B2 (en) 2010-06-30 2010-06-30 Integrated circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010148671A JP5451542B2 (en) 2010-06-30 2010-06-30 Integrated circuit

Publications (2)

Publication Number Publication Date
JP2012014321A true JP2012014321A (en) 2012-01-19
JP5451542B2 JP5451542B2 (en) 2014-03-26

Family

ID=45600698

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010148671A Expired - Fee Related JP5451542B2 (en) 2010-06-30 2010-06-30 Integrated circuit

Country Status (1)

Country Link
JP (1) JP5451542B2 (en)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04123557A (en) * 1990-09-14 1992-04-23 Fujitsu Ltd Loopback circuit
JPH06187434A (en) * 1992-06-04 1994-07-08 Internatl Business Mach Corp <Ibm> Process-pipeline architecture for image / video processing
JPH06197006A (en) * 1992-12-25 1994-07-15 Kawasaki Steel Corp Synchronous logic circuit
JPH1173440A (en) * 1997-08-28 1999-03-16 Mitsubishi Electric Corp Emulation device
JP2003271412A (en) * 2002-03-13 2003-09-26 Mitsubishi Electric Corp Device and method for monitoring internal signal for logic integrated circuit
JP2004157986A (en) * 2002-10-17 2004-06-03 Renesas Technology Corp Logical verification system and fpga module
JP2007501586A (en) * 2003-04-28 2007-01-25 ダフカ, インコーポレイテッド Reconfigurable fabric for SoC
JP2007094603A (en) * 2005-09-28 2007-04-12 Kume Denki Kk Programmable device control unit and programmable device control method
JP2007240257A (en) * 2006-03-07 2007-09-20 Konica Minolta Business Technologies Inc Operation verifying method for electronic apparatus, and programmable logic circuit

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04123557A (en) * 1990-09-14 1992-04-23 Fujitsu Ltd Loopback circuit
JPH06187434A (en) * 1992-06-04 1994-07-08 Internatl Business Mach Corp <Ibm> Process-pipeline architecture for image / video processing
JPH06197006A (en) * 1992-12-25 1994-07-15 Kawasaki Steel Corp Synchronous logic circuit
JPH1173440A (en) * 1997-08-28 1999-03-16 Mitsubishi Electric Corp Emulation device
JP2003271412A (en) * 2002-03-13 2003-09-26 Mitsubishi Electric Corp Device and method for monitoring internal signal for logic integrated circuit
JP2004157986A (en) * 2002-10-17 2004-06-03 Renesas Technology Corp Logical verification system and fpga module
JP2007501586A (en) * 2003-04-28 2007-01-25 ダフカ, インコーポレイテッド Reconfigurable fabric for SoC
JP2007094603A (en) * 2005-09-28 2007-04-12 Kume Denki Kk Programmable device control unit and programmable device control method
JP2007240257A (en) * 2006-03-07 2007-09-20 Konica Minolta Business Technologies Inc Operation verifying method for electronic apparatus, and programmable logic circuit

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNG200500396040; 清水 雅一,阿部 公輝 Masakazu SHIMIZU, Koki ABE: '局所同期型非同期式回路におけるローカルタイミング信号生成回路の低消費電力設計 Low Power Design for L' 電子情報通信学会技術研究報告 IEICE Technical Report 第103巻 第480号, 20031121, 259〜264頁, 社団法人電子情報通信学会 The Institute of Electro *
JPN6013046971; 清水 雅一,阿部 公輝 Masakazu SHIMIZU, Koki ABE: '局所同期型非同期式回路におけるローカルタイミング信号生成回路の低消費電力設計 Low Power Design for L' 電子情報通信学会技術研究報告 IEICE Technical Report 第103巻 第480号, 20031121, 259〜264頁, 社団法人電子情報通信学会 The Institute of Electro *

Also Published As

Publication number Publication date
JP5451542B2 (en) 2014-03-26

Similar Documents

Publication Publication Date Title
US6359468B1 (en) Programmable logic device with carry look-ahead
KR20180068895A (en) System and method for testing and configuration of an fpga
US7715467B1 (en) Programmable logic device integrated circuit with dynamic phase alignment capabilities
WO2012095972A1 (en) Bit generation device and bit generation method
US8390321B2 (en) Reconfigurable logical circuit
US9660650B1 (en) Integrated circuits with improved register circuitry
CN105553447A (en) Clock switching circuit
US9755663B1 (en) Parallel-serial conversion circuit, information processing apparatus and timing adjustment method
JP2002245109A (en) Method and system for designing semiconductor integrated circuit
EP2098969A1 (en) Logic circuit designing device for asynchronous logic circuit, logic circuit designing method, and logic circuit designing program
US9007110B1 (en) Register circuits and methods of storing data in a register circuit
US20080012605A1 (en) Glitch-free clock switcher
CN104579295A (en) Clock dynamic switching circuit and method
JP2002083000A (en) Logic circuit design method and logic circuit
JP6602849B2 (en) Programmable delay circuit block
JP5451542B2 (en) Integrated circuit
TWI806340B (en) Test circuit for pipeline stage including sequential device to be tested, test method and computing system including test circuit
US8296604B1 (en) Method of and circuit for providing temporal redundancy for a hardware circuit
US20150268962A1 (en) Asynchronous Circuit Design
TWI790088B (en) Processors and Computing Systems
JP5455249B2 (en) Semiconductor integrated circuit using majority circuit and majority method
US9331701B1 (en) Receivers and methods of enabling the calibration of circuits receiving input data
US20100315886A1 (en) Data transfer apparatus, and method, and semiconductor circuit
JP2004200311A (en) Logic verifying device
US10069486B1 (en) Multimode registers with pulse latches

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20111025

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20111025

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121002

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131001

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131126

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131226

R150 Certificate of patent or registration of utility model

Ref document number: 5451542

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees