JP2009017141A - Programmable logic circuit device, programmable logic circuit reconfiguration method, and program - Google Patents
Programmable logic circuit device, programmable logic circuit reconfiguration method, and program Download PDFInfo
- Publication number
- JP2009017141A JP2009017141A JP2007175559A JP2007175559A JP2009017141A JP 2009017141 A JP2009017141 A JP 2009017141A JP 2007175559 A JP2007175559 A JP 2007175559A JP 2007175559 A JP2007175559 A JP 2007175559A JP 2009017141 A JP2009017141 A JP 2009017141A
- Authority
- JP
- Japan
- Prior art keywords
- path
- clock signal
- circuit
- logic circuit
- programmable logic
- 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.)
- Pending
Links
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
- Logic Circuits (AREA)
Abstract
Description
本発明は、プログラムの実行をハードウェアで直接的に実現するプログラマブル論理回路装置、プログラマブル論理回路再構成方法、及び、プログラムに関する。 The present invention relates to a programmable logic circuit device, a programmable logic circuit reconfiguration method, and a program that directly implement a program by hardware.
プログラムの実行をハードウェアで直接的に実現する再構成可能なデバイスとして、PLD(Programmable Logic Device)が知られている(例えば、特許文献1)。 A PLD (Programmable Logic Device) is known as a reconfigurable device that directly implements program execution by hardware (for example, Patent Document 1).
PLDは、プログラムとして論理データを与えることで論理回路間の結線論理を変更し、これによってハードウェア的に演算結果を得ることができるようにしたものである。PLDを利用して演算を行うことによって、従来の汎用コンピュータに搭載されたCPU(Central Processing Unit)による演算よりも高速に演算結果を得ることができる。 The PLD changes the connection logic between logic circuits by giving logic data as a program, thereby obtaining an operation result in hardware. By performing the calculation using the PLD, the calculation result can be obtained at a higher speed than the calculation by the CPU (Central Processing Unit) mounted on the conventional general-purpose computer.
ところで、特許文献1の技術による再構成可能なデバイスは、遅延計算が複雑である、及び、テスト設計が困難である、等の理由からハードウェアIP(Intellectual Property)を用いて実現されている。更にハードウェアIPによれば、性能、面積に関して最良のデバイスを作成することができる。
しかし、上記のハードウェアIPでは、半導体ベンダが限定される、ユーザ毎のカスタマイズが困難である。それらの短所を克服するには、ソフトウェアIPを用いることが適当である。 However, with the hardware IP described above, customization for each user is difficult because the semiconductor vendor is limited. In order to overcome these disadvantages, it is appropriate to use software IP.
本発明は、上記問題点に鑑みてなされたもので、ソフトウェアIPを用いて最適な性能を得ることができるプログラマブル論理回路装置を提供することを目的とする。 The present invention has been made in view of the above problems, and an object thereof is to provide a programmable logic circuit device capable of obtaining optimum performance using software IP.
上記目的を達成するために、本発明の第1の観点に係るプログラマブル論理回路装置は、
第1のクロック信号を入力する第1のフリップフロップ回路が接続された第1の経路と、演算器と第2のクロック信号を入力する第2のフリップフロップ回路とが接続された第2の経路と、を備える複数の演算器エレメントと、
前記演算器エレメントごとに前記第1の経路と前記第2の経路とを設定する経路設定手段と、
前記経路設定手段が前記第1の経路もしくは前記第2の経路に設定した二つの演算器エレメントを両端に、前期経路設定手段が前記第1の経路もしくは前記第2の経路に設定した、複数個の演算器エレメントを中間にして、前記演算器エレメントを結線するエレメント結線手段と、
を備えることを特徴とする。
In order to achieve the above object, a programmable logic circuit device according to the first aspect of the present invention provides:
A first path to which the first flip-flop circuit for inputting the first clock signal is connected, and a second path to which the arithmetic unit and the second flip-flop circuit for inputting the second clock signal are connected A plurality of computing element elements comprising:
Path setting means for setting the first path and the second path for each computing element;
A plurality of computing element elements set in the first route or the second route by the route setting means at both ends, and a plurality of routes set by the previous route setting means in the first route or the second route. An element connection means for connecting the operation element with the operation element of
It is characterized by providing.
例えば、前記エレメント結線手段が中間に結線した演算器エレメントの個数に基づいて前記第1のクロック信号及び前記第2のクロック信号の周期を演算器エレメント毎に設定する周期設定手段をさらに備えてもよい。 For example, it further comprises period setting means for setting the period of the first clock signal and the second clock signal for each arithmetic element based on the number of arithmetic elements connected in the middle by the element connection means. Good.
例えば、前記演算器は、ルックアップテーブル及び/又はALU(Arithmetic Logic Unit)を備えてもよい。 For example, the computing unit may include a lookup table and / or an ALU (Arithmetic Logic Unit).
本発明の第2の観点に係るプログラマブル論理回路再構成方法は、
第1のクロック信号を入力する第1のフリップフロップ回路が接続された第1の経路と、演算器と第2のクロック信号を入力する第2のフリップフロップ回路とが接続された第2の経路と、を備える複数の演算器エレメントと、を備えるプログラマブル論理回路の論理的構成を変更するプログラマブル論理回路再構成方法であって、
前記演算器エレメントごとに前記第1の経路と前記第2の経路とを設定する経路設定ステップと、
前記経路設定ステップで前記第1の経路もしくは前記第2の経路に設定した二つの演算器エレメントを両端に、前期経路設定手段が前記第1の経路もしくは前記第2の経路に設定した、複数個の演算器エレメントを中間にして、前記演算器エレメントを結線するエレメント結線ステップと、
を備えることを特徴とする。
The programmable logic circuit reconfiguration method according to the second aspect of the present invention includes:
A first path to which the first flip-flop circuit for inputting the first clock signal is connected, and a second path to which the arithmetic unit and the second flip-flop circuit for inputting the second clock signal are connected A programmable logic circuit reconfiguration method for changing the logical configuration of a programmable logic circuit comprising:
A path setting step for setting the first path and the second path for each computing element;
A plurality of computing elements set in the first route or the second route at both ends of the two computing element elements set in the route setting step at the first route or the second route. An element connection step for connecting the operation element with the operation element of
It is characterized by providing.
例えば、前記エレメント結線ステップで中間に結線した演算器エレメントの個数に基づいて前記第1のクロック信号及び前記第2のクロック信号の周期を演算器エレメント毎に設定する周期設定ステップをさらに備えてもよい。 For example, the method further includes a cycle setting step of setting the cycle of the first clock signal and the second clock signal for each calculator element based on the number of the calculator elements connected in the middle in the element connection step. Good.
例えば、前記演算器は、ルックアップテーブル及び/又はALU(Arithmetic Logic Unit)を備えてもよい。 For example, the computing unit may include a lookup table and / or an ALU (Arithmetic Logic Unit).
本発明の第3の観点に係るプログラムは、
第1のクロック信号を入力する第1のフリップフロップ回路が接続された第1の経路と、演算器と第2のクロック信号を入力する第2のフリップフロップ回路とが接続された第2の経路と、を備える複数の演算器エレメントと、を備えるコンピュータを、
前記演算器エレメントごとに前記第1の経路と前記第2の経路とを設定する経路設定手段、
前記経路設定手段が前記第1の経路もしくは前記第2の経路に設定した二つの演算器エレメントを両端に、前期経路設定手段が前記第1の経路もしくは前記第2の経路に設定した、複数個の演算器エレメントを中間にして、前記演算器エレメントを結線するエレメント結線手段、
として機能させることを特徴とする。
The program according to the third aspect of the present invention is:
A first path to which the first flip-flop circuit for inputting the first clock signal is connected, and a second path to which the arithmetic unit and the second flip-flop circuit for inputting the second clock signal are connected A computer comprising a plurality of computing element elements comprising:
Path setting means for setting the first path and the second path for each computing element;
A plurality of computing element elements set in the first route or the second route by the route setting means at both ends, and a plurality of routes set by the previous route setting means in the first route or the second route. Element connection means for connecting the operation element with the operation element of
It is made to function as.
例えば、前記エレメント結線手段が中間に結線した演算器エレメントの個数に基づいて前記第1のクロック信号及び前記第2のクロック信号の周期を演算器エレメント毎に設定する周期設定手段、
として機能させてもよい。
For example, period setting means for setting the period of the first clock signal and the second clock signal for each arithmetic element based on the number of arithmetic elements connected in the middle by the element connection means,
It may be made to function as.
例えば、前記演算器は、ルックアップテーブル及び/又はALU(Arithmetic Logic Unit)を備えてもよい。 For example, the computing unit may include a lookup table and / or an ALU (Arithmetic Logic Unit).
本発明によれば、プログラマブル論理回路装置においてソフトウェアIPを用いて最適な性能を得ることが容易にできる。 According to the present invention, it is possible to easily obtain optimum performance using a software IP in a programmable logic circuit device.
以下、本発明の実施形態に係るプログラマブル論理回路装置(Programmable Logic Device ; 以下、PLD)100について説明する。PLD100は、プログラムの実行をハードウェアで直接的に且つ動的に実現することができる。 Hereinafter, a programmable logic device (PLD) 100 according to an embodiment of the present invention will be described. The PLD 100 can directly and dynamically implement program execution by hardware.
PLD100は、図1に示すように、二次元に配列された複数の演算器エレメント(Processor Element ; PE)10と、制御部20と、I/O部30と、複数の配線40と、を備えている。
As shown in FIG. 1, the PLD 100 includes a plurality of processor elements (PE) 10, a
演算器エレメント10は、複数個が二次元に配置される。また、それぞれの演算器エレメント10は、内部の回路構成を変化させ、任意の論理関数を生成可能である。また、それぞれの演算器エレメント10は、第1の経路と第2の経路とを備える。
A plurality of the
演算器エレメント10は、図2に示すように、セレクタ回路(以下、セレクタ)11と、ルックアップテーブル(以下、LUT)12と、セレクタ回路13と、D−フリップフロップ回路(以下、FF)14と、セレクタ回路15と、D−フリップフロップ回路16と、セレクタ回路17と、を備える。なお、演算器エレメント10は、第1の経路上にセレクタ11とLUT12とFF14とを備え、第2の経路上にセレクタ15とFF16とを備える。
As shown in FIG. 2, the
セレクタ11は、m入力一出力の回路であり、制御部20の制御の元、配線40からのm本の入力信号のうちの何れか一つをLUT12に出力する。なお、セレクタ11は、図2に示すような四入力LUTの場合、四つが配置される。
The
LUT12は、入力ビットをメモリアドレスとし、各メモリアドレスに対応する出力値を格納する。つまり、LUT12は、制御部20の制御の元、複数の入力信号に対応する出力信号を出力する任意の組み合わせ論理回路を実現することができる。LUT12は、四つのセレクタ11からの入力信号と組み合わせ論理回路とに基づいた出力信号をFF14に出力する。
The
セレクタ13は、二入力一出力の回路であり、制御部20の制御に基づいて、入力されたアプリケーションクロック信号とシステムクロック信号の内の何れか一つをFF14に出力する。
The
FF14は、D−フリップフロップ回路であり、データ信号とクロック信号とを入力し、クロック信号の周期ごとにクロック信号の立ち上がり時のデータ信号の値を保持した信号を出力する。FF14は、装置内各部における信号の同期を取るために使用される。なお、FF14には、セレクタ13よりクロック信号として、アプリケーションクロック信号又はシステムクロック信号が入力される。
The
セレクタ15は、m入力一出力の回路であり、制御部20の制御の元、配線40からのm本の入力信号のうちの何れか一つをFF16に出力する。なお、セレクタ15は、二つが配置される。
The
FF16は、D−フリップフロップ回路であり、データ信号とクロック信号とを入力し、クロック信号の周期ごとにクロック信号の立ち上がり時のデータ信号の値を保持した信号を出力する。FF16は、装置内各部における信号の同期を取るために使用される。なお、FF16には、クロック信号として、アプリケーションクロック信号又はシステムクロック信号が入力される。
The
セレクタ17は、二入力一出力の回路であり、制御部20の制御に基づいて、入力されたアプリケーションクロック信号とシステムクロック信号の内の何れか一つをFF16に出力する。
The
制御部20は、PLD100全体を制御する。具体的には、制御部20は、それぞれの演算器エレメント10の第1の経路と第2の経路の設定や、複数の演算器エレメント10の結線や、LUT12において任意の論理の実現等を行う。
The
I/O部30は、PLD100の周辺部に位置しており、外部と信号のやりとりを行う。
The I /
配線40は、演算器エレメント10間やI/O部30を接続して、任意の論理回路を実現する。また、配線40は、セレクタ41を備える。
The
セレクタ41は、二入力一出力の回路であり、FF14と配線40もしくはFF16と配線40を結び、制御部20の制御に基づいて、配線40からの入力信号とFF14,16からの入力信号との何れか一方を配線40に出力する。
The
PLD100は、LUT12等に含まれるSRAM、DRAM等の書き換え可能なメモリ素子を備えており、それらのメモリ素子で構成されたコンフィギュレーションメモリ(図示省略)を備えている。
The
このコンフィギュレーションメモリ(図示省略)にアドレスを与えて、新しい回路情報のデータが格納されると、この回路情報に従って、演算器エレメント10内のLUT12、セレクタや、配線40上のセレクタ等、が再構成される。この一連の動作をコンフィギュレーション(構成)と呼ぶ。また、このコンフィギュレーションは動作中に行うことが可能である。
When an address is given to this configuration memory (not shown) and new circuit information data is stored, the
また、PLD100は、各演算器エレメント10のFF14,16にクロック信号を提供するためのクロックネットワークとして、図3に示すように、クロック入力部31と、PLL(Phase-locked loop)回路60と、クロック制御回路61,62と、クロックバッファ63,64と、配線65,66と、を備える。
The
クロック入力部31は、I/O部30の一部であり、外部よりクロック信号を取得し、PLL回路60に供給する。
The
PLL回路60は、クロック入力部31より供給されたクロック信号を任意の周波数のクロック信号(システムクロック信号;以下、sysCLK信号)に変換し、クロック制御回路61,62に供給する。
The
クロック制御回路61は、PLL回路60より供給されたsysCLK信号を、クロックバッファ63に供給する。また、クロック制御回路61は、クロックバッファ63にsysCLK信号を供給するか否かの制御を行う。
The
クロック制御回路62は、PLL回路60より供給されたsysCLK信号のうちの任意のハイ状態のクロックをロー状態に変換し、sysCLK信号の所定倍の周期を持つクロック信号(アプリケーションクロック信号;以下、appCLK信号)として、クロックバッファ64に供給する。また、クロック制御回路62は、クロックバッファ64にappCLK信号を供給するか否かの制御を行う。
The
クロックバッファ63は、クロック制御回路61より供給されたsysCLK信号を励起し、配線65に供給する。
The
クロックバッファ64は、クロック制御回路62より供給されたappCLK信号を励起し、配線66に供給する。
The
配線65は、クロックバッファ63より供給されたsysCLK信号を各演算器エレメント10のセレクタ13及びセレクタ17に供給する。
The
配線66は、クロックバッファ64より供給されたappCLK信号を各演算器エレメント10のセレクタ13及びセレクタ17に供給する。
The
上記構成のPLD100は、例えば、図5に示すような情報処理システム1000に組み込まれて使用される。
The
例えば、情報処理システム1000は、PLD100と、インタフェース200と、CPU(Central Processing Unit)300と、ROM(Read Only Memory)400と、ハードディスク500と、RAM(Random Access Memory)600と、表示部700と、操作部800と、PCI(Peripheral Components Interconnect)バス900と、から構成される。
For example, the
PLD100は、インタフェース200を介してPCIバス900に接続されている。
The
ハードディスク500は、PLD100のコンフィギュレーションを行うためのアプリケーションプログラムやコンフィギュレーションコードを格納している。
The
CPU300は、ハードディスク500からRAM600にアプリケーションプログラムをロードして実行する。また、CPU300は、アプリケーションプログラム実行中に必要に応じて、ハードディスク500から回路情報を読み出して、PLD100のコンフィギュレーションメモリ(図示省略)にロードし、PLD100上に任意の論理回路を構成し、当該論理回路上でデータ処理を行う。
The
つまり、CPU300は、PLD100におけるコンフィギュレーション(再構成)や、PLD100上に構成された論理回路へのデータの入出力を制御する。
That is, the
以下、上記構成を有するPLD100及び情報処理システム1000の動作を説明する。
Hereinafter, operations of the
先ず、情報処理システム1000が行う論理回路再構成処理を説明する。簡単に説明すると、情報処理システム1000は、RTL(Register Transfer Level)等の論理コードをもとに論理合成された論理回路をPLD100に書き込む。
First, logic circuit reconfiguration processing performed by the
以下、図6に示すフローチャートを参照しながら、論理回路再構成処理を詳細に説明する。 Hereinafter, the logic circuit reconfiguration process will be described in detail with reference to the flowchart shown in FIG.
先ず、CPU300は、操作部800を介してユーザよりPLD100のコンフィギュレーションを行うためのアプリケーションプログラム(以下、再構成プログラム)の起動を行う旨の要求を受信すると、再構成プログラムを起動する(ステップS100)。
First, when the
次に、CPU300は、ユーザが操作部800を介して入力した、又は、ハードディスク500に格納されている、VHDL(VHSIC Hardware Description Language)やVerilog等の開発言語で記述された論理コードを論理合成し、配置配線した構成情報を取得した(ステップS200)と仮定する。
Next, the
ここで、ユーザより操作部800を介して上記論理コードに基づいた論理回路をPLD100に書き込む旨の要求を受信したと仮定すると、CPU300は、論理回路をPLD100に書き込み(ステップS300)、処理を終了する。
Here, assuming that a request for writing a logic circuit based on the logic code to the
このようにして、論理回路再構成処理によれば、情報処理システム1000は、任意の論理コードに基づいた論理回路をPLD100に書き込み、プログラムの実行をハードウェア(PLD100)において直接的に実現することができる。
In this way, according to the logic circuit reconfiguration process, the
ここで、ステップS200,300における論理回路の説明を行う。 Here, the logic circuit in steps S200 and S300 will be described.
ステップS200,300において、PLD100上の演算器エレメント10は、図7に示すように、バッファとしての役割を持つ演算器エレメント(ここではフリップフロップのみを指す)と、アプリケーションとして実装している演算器エレメント、つまり、RTL(Register Transfer Level)に書かれる論理回路を持ち(ここではフリップフロップのみを指す)と、に設定される。
In steps S200 and S300, as shown in FIG. 7, the
バッファとしての役割を持つ演算器エレメント(以下、バッファ演算器エレメント)は、図4(a)に示すようなsysCLK信号の一周期ごとにデータを更新し、出力する。 A computing element (hereinafter referred to as a buffer computing element) serving as a buffer updates and outputs data for each cycle of the sysCLK signal as shown in FIG.
アプリケーションとして実装している論理ブロックのうちRTLに存在するフリップフロップ回路を実装したエレメント(以下、アプリケーション演算器エレメント)は、図4(b)に示すようなappCLK信号の一周期毎にデータを更新し、出力する。 Of the logic blocks implemented as an application, an element (hereinafter referred to as an application computing element) in which a flip-flop circuit existing in the RTL is installed updates data for each cycle of the appCLK signal as shown in FIG. And output.
また、appCLK信号の周期は、sysCLK信号の周期を基準として、アプリケーション演算器エレメント間の、バッファ演算器エレメントの数に基づいて決定される。 Further, the period of the appCLK signal is determined based on the number of buffer arithmetic elements between the application arithmetic elements based on the period of the sysCLK signal.
例えば、図8(a)に示される経路例では、アプリケーション演算器エレメントとして設定されている演算器エレメント10aと演算器エレメント10eとの間に、バッファ演算器エレメントとして設定されている演算器エレメント10b〜10dが配置されている。
For example, in the path example shown in FIG. 8A, a
そして、図8(a)の経路例をフリップフロップ回路についての経路として表すと、図8(b)に示すように、appCLK信号が入力されるFF14aとFF14eとの間に、sysCLK信号が入力されるFF16b〜16dが配置される。ただし、FF14a,16b,16c,16d,14eは、それぞれ、演算器エレメント10a〜10eに含まれるフリップフロップ回路である。
When the path example in FIG. 8A is represented as a path for the flip-flop circuit, as shown in FIG. 8B, the sysCLK signal is input between the
このとき、FF14aとFF14eとの間のクリティカルパスの数は、4であるので、図4に示すように、appCLK信号は、sysCLK信号における4つのクロックに対して、1つのクロックを入れるように設定される。
つまり、二つのアプリケーション演算器エレメントの間に「n−1」個のバッファ演算器エレメントのみが配置され、二つのアプリケーション演算器エレメントのFF14間のクリティカルパスの数が「n」個である場合、appCLK信号は、sysCLK信号における「n」個のクロックに対して、1つのクロックを入れるように設定される。
At this time, since the number of critical paths between the
That is, when only “n−1” buffer calculator elements are arranged between two application calculator elements, and the number of critical paths between the
ここで、図8の経路例における実際のデータの流れを、図9を参照しながら説明する。 Here, an actual data flow in the route example of FIG. 8 will be described with reference to FIG.
図9は、各フリップフロップ回路が時間ごとに、入力するクロック信号と、保持・出力するデータとを表す図である。 FIG. 9 is a diagram illustrating a clock signal input to each flip-flop circuit and data to be held and output for each time.
図9に示すように、FF14aは、入力するappCLK信号のクロックの立ち上がり時が時刻「3,11,19」であるので、時間「3〜11」においてデータA1を保持・出力し、時間「11〜19」においてデータB1を保持・出力し、時間「19〜」においてデータC1を保持・出力する。
As shown in FIG. 9, the
図9に示すように、FF16bは、入力するsysCLK信号のクロックの立ち上がり時が時刻「1,3,5,7,9,11,13,15,17,19,21,23」である。また、FF16bは、時刻「5,7,9,11」においてFF14aからデータA1が入力される。FF16bは、時刻「13,15,17,19」においてFF14aからデータB1が入力される。FF16bは、時刻「21,23」においてFF14aからデータC1が入力される。
As shown in FIG. 9, in the
そのため、時間「5〜7」においてデータA1を保持・出力し、時刻「7」でデータを更新し、時間「7〜9」においてデータA1を保持・出力し、時刻「9」でデータを更新し、時間「9〜11」においてデータA1を保持・出力し、時刻「11」でデータを更新し、時間「11〜13」においてデータA1を保持・出力し、時刻「13」でデータを更新する。
時間「13〜15」においてデータB1を保持・出力し、時刻「15」でデータを更新し、時間「15〜17」においてデータB1を保持・出力し、時刻「17」でデータを更新し、時間「17〜19」においてデータB1を保持・出力し、時刻「19」でデータを更新し、時間「19〜21」においてデータB1を保持・出力し、時刻「21」でデータを更新する。
時間「21〜23」においてデータC1を保持・出力し、時刻「23」でデータを更新し、時間「23〜」においてデータC1を保持・出力する。
Therefore, data A1 is held / output at time “5-7”, data is updated at time “7”, data A1 is held / output at time “7-9”, and data is updated at time “9”. The data A1 is held / output at time “9-11”, the data is updated at time “11”, the data A1 is held / output at time “11-13”, and the data is updated at time “13”. To do.
Data B1 is held / output at time “13-15”, data is updated at time “15”, data B1 is held / output at time “15-17”, and data is updated at time “17”, Data B1 is held / output at time “17-19”, data is updated at time “19”, data B1 is held / output at time “19-21”, and data is updated at time “21”.
Data C1 is held / output at time “21-23”, data is updated at time “23”, and data C1 is held / output at time “23-”.
FF16cとFF16dのデータの流れもほぼ同様であるので、説明を省略する。
Since the data flow of the
図9に示すように、FF14eは、入力するappCLK信号のクロックの立ち上がり時が時刻「3,11,19」である。また、FF14eは、時刻「11」においてFF16dからデータA1が入力される。FF14eは、時刻「19」においてFF16dからデータB1が入力される。
As shown in FIG. 9, the
そのため、時刻「11」でデータを更新し、時間「11〜19」においてデータA1を保持・出力し、時刻「19」でデータを更新し、時間「19〜」においてデータB1を保持・出力する。
なお、図10,11に示すように、appCLK信号のクロックの間隔が同じであれば、図8,9のFF16b〜dの何れかが無くてもFF14eは上記のFF14eと同じ動作を行う。
Therefore, data is updated at time “11”, data A1 is held / output at time “11-19”, data is updated at time “19”, and data B1 is held / output at time “19”. .
As shown in FIGS. 10 and 11, if the clock interval of the appCLK signal is the same, the
なお、図8(b)のFF16b〜dは、それぞれ、セレクタ13によってsysCLK信号が入力されるFF14に置き換えられてもよい。また、図8(b)のFF14a,eは、それぞれ、セレクタ17によってsysCLK信号が入力されるFF16に置き換えられてもよい。
Note that the FFs 16b to 16d in FIG. 8B may be replaced with the
このような論理回路であれば、全ての演算器エレメントにおいてフリップフロップ回路で同期させており、且つ、フリップフロップ回路が間に入らないループが存在しないので、現行のLSI(Large Scale Integration)設計フローに適合する。また、自動テスト合成が採用できる。静的タイミング解析(STA ; Static Timing Analysis)の様にRTL実装時に各演算器エレメントの遅延値を個別に足す必要は無く、フリップフロップ回路の段数でクロック周波数が分かる。これらの利点のため、PLD設計期間の短縮を行うことができる。ソフトウェアIPを用いて最適な性能を得ることができる。 In such a logic circuit, all the arithmetic element elements are synchronized by the flip-flop circuit, and there is no loop that cannot be interposed between the flip-flop circuits, so the current LSI (Large Scale Integration) design flow Fits. Automatic test synthesis can be used. Unlike the static timing analysis (STA), it is not necessary to add the delay value of each arithmetic element individually when the RTL is mounted, and the clock frequency can be determined by the number of stages of the flip-flop circuit. Because of these advantages, the PLD design period can be shortened. Optimal performance can be obtained using software IP.
なお、本発明は上記実施形態に限定されず、種々の変形及び応用が可能である。 In addition, this invention is not limited to the said embodiment, A various deformation | transformation and application are possible.
上記実施形態では、一つの演算器エレメントは一つのルックアップテーブルを備えたが、一つの演算器エレメントが複数のルックアップテーブルを備えるようにしてもよい。 In the above embodiment, one computing element includes one lookup table, but one computing element may include a plurality of lookup tables.
また、上記実施形態では、出力側にフリップフロップ回路を備えた四入力一出力の演算器エレメントであったが、これに限定されるものではなく、出力側にフリップフロップ回路を備えたp入力q出力の演算器エレメントであってもよい。ただし、p,qは、自然数である。 In the above embodiment, the four-input one-output arithmetic element is provided with a flip-flop circuit on the output side. However, the present invention is not limited to this, and p input q provided with a flip-flop circuit on the output side. An output computing element may be used. However, p and q are natural numbers.
また、appCLK信号は、sysCLK信号の複数クロックをマスクすればよいので、図13に示すように、セレクタ13をAND,OR回路などで構成し、セレクタ13がsysCLK信号の複数クロックをマスクするかしないかで、appCLK信号とsysCLK信号とを切り換える構成にしても良い。
Further, since the appCLK signal only needs to mask a plurality of clocks of the sysCLK signal, as shown in FIG. 13, the
その場合、セレクタ13は、図13に示すように、OR回路13AとAND回路13Bとから構成される。
また、その場合のクロックネットワークは、図12に示すように、クロック入力部31とPLL回路60と配線65,66とカウンタ回路67とから構成される。
In this case, the
In this case, the clock network includes a
PLL回路60は、図14(a)に示すようなクロック信号を出力する。
カウンタ回路67は、図14(b)に示すように、PLL回路60から入力されたPLL出力信号のクロック数を数え、制御部20により設定されたクロック数ごとに一クロックを出力する(カウンタ出力信号を出力する)。
OR回路13Aは、制御部20から指定された構成信号(0か1)と、カウンタ回路67からカウンタ出力信号が入力され、構成信号が0の場合にはカウンタ出力信号をそのまま出力し、構成信号が1の場合には1を出力する。
AND回路13Bは、PLL回路60からPLL出力信号と、OR回路13Aからの出力信号とが入力される。また、AND回路13Bは、OR回路13Aに入力される構成信号が1の場合には、図14(c)に示すようにPLL出力信号をsysCLK信号としてそのまま出力し、OR回路13Aに入力される構成信号が0の場合には、図14(d)に示すようにカウンタ出力信号に依存したクロック信号をappCLK信号として出力する。
The
As shown in FIG. 14B, the
The OR
The AND
よって、図13,14に示すようなクロックネットワークとセレクタ13によれば、構成情報(0か1)によってsysCLK信号とappCLK信号とを切り換えることができる。
Therefore, according to the clock network and the
また、同様にセレクタ17をAND,OR回路などで構成し、セレクタ13がsysCLK信号の複数クロックをマスクするかしないかで、appCLK信号とsysCLK信号とを切り換える構成にしても良い。
Similarly, the
また、具体的な細部構造等についても適宜変更可能である。 Further, specific details of the structure and the like can be changed as appropriate.
10 演算器エレメント
10a〜e 演算器エレメント
11 セレクタ回路
12 ルックアップテーブル
13 セレクタ回路
13A OR回路
13B AND回路
14 D−フリップフロップ回路
14a,e D−フリップフロップ回路
15 セレクタ回路
16 D−フリップフロップ回路
16b〜d D−フリップフロップ回路
20 制御部
30 I/O部
31 クロック入力部
40 配線
41 セレクタ回路
60 PLL回路
61,62 クロック制御回路
63,64 クロックバッファ
65,66 配線
67 カウンタ回路
100 PLD
200 インタフェース
300 CPU
400 ROM
500 ハードディスク
600 RAM
700 表示部
800 操作部
1000 情報処理システム
10
200
400 ROM
500
700
Claims (9)
前記演算器エレメントごとに前記第1の経路と前記第2の経路とを設定する経路設定手段と、
前記経路設定手段が前記第1の経路もしくは前記第2の経路に設定した二つの演算器エレメントを両端に、前記経路設定手段が前記第1の経路もしくは前記第2の経路に設定した、複数個の演算器エレメントを中間にして、前記演算器エレメントを結線するエレメント結線手段と、を備える、
ことを特徴とするプログラマブル論理回路装置。 A first path to which a first flip-flop circuit for inputting a first clock signal is connected, and a second path to which an arithmetic unit and a second flip-flop circuit for inputting a second clock signal are connected A plurality of computing element elements comprising:
Path setting means for setting the first path and the second path for each computing element;
A plurality of computing elements set by the path setting means for the first path or the second path at both ends, and a plurality of sets for which the path setting means set for the first path or the second path And an element connection means for connecting the calculator elements with the calculator element as an intermediate,
A programmable logic circuit device.
ことを特徴とする請求項1に記載のプログラマブル論理回路装置。 The apparatus further comprises period setting means for setting the period of the first clock signal and the second clock signal for each arithmetic element based on the number of arithmetic elements connected in the middle by the element connection means.
The programmable logic circuit device according to claim 1.
ことを特徴とする請求項1又は2に記載のプログラマブル論理回路装置。 The arithmetic unit includes a lookup table and / or an ALU (Arithmetic Logic Unit).
The programmable logic circuit device according to claim 1 or 2.
前記演算器エレメントごとに前記第1の経路と前記第2の経路とを設定する経路設定ステップと、
前記経路設定ステップで前記第1の経路もしくは前記第2の経路に設定した二つの演算器エレメントを両端に、前記経路設定手段が前記第1の経路もしくは前記第2の経路に設定した、複数個の演算器エレメントを中間にして、前記演算器エレメントを結線するエレメント結線ステップと、を備える、
ことを特徴とするプログラマブル論理回路再構成方法。 A first path to which the first flip-flop circuit for inputting the first clock signal is connected, and a second path to which the arithmetic unit and the second flip-flop circuit for inputting the second clock signal are connected A programmable logic circuit reconfiguration method for changing the logical configuration of a programmable logic circuit comprising:
A path setting step for setting the first path and the second path for each computing element;
A plurality of computing element elements set to the first path or the second path at both ends of the path setting step and the path setting means set to the first path or the second path; An element connection step for connecting the calculator elements with the calculator element of
And a programmable logic circuit reconfiguration method.
ことを特徴とする請求項4に記載のプログラマブル論理回路再構成方法。 A cycle setting step of setting the cycle of the first clock signal and the second clock signal for each calculator element based on the number of calculator elements connected in the middle in the element connection step;
The programmable logic circuit reconfiguration method according to claim 4.
ことを特徴とする請求項4又は5に記載のプログラマブル論理回路再構成方法。 The arithmetic unit includes a lookup table and / or an ALU (Arithmetic Logic Unit).
6. The programmable logic circuit reconfiguration method according to claim 4 or 5, wherein:
前記演算器エレメントごとに前記第1の経路と前記第2の経路とを設定する経路設定手段、
前記経路設定手段が前記第1の経路もしくは前記第2の経路に設定した二つの演算器エレメントを両端に、前記経路設定手段が前記第1の経路もしくは前記第2の経路に設定した、複数個の演算器エレメントを中間にして、前記演算器エレメントを結線するエレメント結線手段、
として機能させることを特徴とするプログラム。 A first path to which the first flip-flop circuit for inputting the first clock signal is connected, and a second path to which the arithmetic unit and the second flip-flop circuit for inputting the second clock signal are connected A computer comprising a plurality of computing element elements comprising:
Path setting means for setting the first path and the second path for each computing element;
A plurality of computing elements set by the path setting means for the first path or the second path at both ends, and a plurality of sets for which the path setting means set for the first path or the second path Element connection means for connecting the operation element with the operation element of
A program characterized by functioning as
として機能させることを特徴とする請求項7に記載のプログラム。 A period setting means for setting the period of the first clock signal and the second clock signal for each arithmetic element based on the number of arithmetic elements connected in the middle by the element connection means;
The program according to claim 7, wherein the program is made to function as:
ことを特徴とする請求項7又は8に記載のプログラム。 The arithmetic unit includes a lookup table and / or an ALU (Arithmetic Logic Unit).
The program according to claim 7 or 8, characterized in that.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007175559A JP2009017141A (en) | 2007-07-03 | 2007-07-03 | Programmable logic circuit device, programmable logic circuit reconfiguration method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007175559A JP2009017141A (en) | 2007-07-03 | 2007-07-03 | Programmable logic circuit device, programmable logic circuit reconfiguration method, and program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009017141A true JP2009017141A (en) | 2009-01-22 |
Family
ID=40357500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007175559A Pending JP2009017141A (en) | 2007-07-03 | 2007-07-03 | Programmable logic circuit device, programmable logic circuit reconfiguration method, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009017141A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102164086A (en) * | 2011-04-25 | 2011-08-24 | 中兴通讯股份有限公司 | Method and device for quick migration of direct route |
-
2007
- 2007-07-03 JP JP2007175559A patent/JP2009017141A/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102164086A (en) * | 2011-04-25 | 2011-08-24 | 中兴通讯股份有限公司 | Method and device for quick migration of direct route |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8196076B2 (en) | Optimal flow in designing a circuit operable in multiple timing modes | |
US9685957B2 (en) | System reset controller replacing individual asynchronous resets | |
US9912337B2 (en) | Systems and methods for configuring an SOPC without a need to use an external memory | |
US9026967B1 (en) | Method and apparatus for designing a system on multiple field programmable gate array device types | |
US9201996B2 (en) | Behavioral synthesis apparatus, behavioral synthesis method, data processing system including behavioral synthesis apparatus, and non-transitory computer readable medium storing behavioral synthesis program | |
US8418092B2 (en) | Source-synchronous data link for system-on-chip design | |
Manohar | Reconfigurable asynchronous logic | |
US8793629B1 (en) | Method and apparatus for implementing carry chains on FPGA devices | |
US10354706B1 (en) | Delaying start of user design execution | |
US9692688B2 (en) | Delay specific routings for programmable logic devices | |
JP2007288788A (en) | Programmable delay circuit having reduced insertion delays | |
US20050251776A1 (en) | Integrated circuit design system | |
JP2009017141A (en) | Programmable logic circuit device, programmable logic circuit reconfiguration method, and program | |
Poole | Self-timed logic circuits | |
Sarker et al. | Synthesis of VHDL code for FPGA design flow using Xilinx PlanAhead tool | |
JP2003173361A (en) | Layout design method and device for semiconductor integrated circuit | |
JPH10133768A (en) | Clock system and semiconductor device, and method for testing semiconductor device, and cad device | |
Gupta et al. | Design and implementation of 32-bit controller for interactive interfacing with reconfigurable computing systems | |
JP2008198003A (en) | Array type processor | |
Han et al. | Clocked and asynchronous FIFO characterization and comparison | |
US20160055271A1 (en) | Data structure of design data of semiconductor integrated circuit and apparatus and method of designing semiconductor integrated circuit | |
JP2019133591A (en) | FPGA design support method and program | |
WO2018057213A1 (en) | Integrated circuits having expandable processor memory | |
US10740529B1 (en) | Implementation of circuitry for radio frequency applications within integrated circuits | |
JP2001257566A (en) | Latch circuit with enable function |