JP4568599B2 - Logic circuit dividing method and apparatus - Google Patents
Logic circuit dividing method and apparatus Download PDFInfo
- Publication number
- JP4568599B2 JP4568599B2 JP2004372972A JP2004372972A JP4568599B2 JP 4568599 B2 JP4568599 B2 JP 4568599B2 JP 2004372972 A JP2004372972 A JP 2004372972A JP 2004372972 A JP2004372972 A JP 2004372972A JP 4568599 B2 JP4568599 B2 JP 4568599B2
- Authority
- JP
- Japan
- Prior art keywords
- database
- logic circuit
- logic
- division
- 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.)
- Expired - Fee Related
Links
Images
Description
本発明は論理回路分割方法及び装置に関し、更に詳しくは、機能ブロック毎に形成される論理回路を複数のFPGA/PLD等で実現する場合において、各ブロックの論理合成及びレイアウト結果を基に分割プログラムにより、各FPGA/PLD等に回路を最適に振り分ける論理回路の分割方法及び装置に関する。 The present invention relates to a logic circuit dividing method and apparatus, and more particularly, when a logic circuit formed for each functional block is realized by a plurality of FPGAs / PLDs, etc., a dividing program based on the logic synthesis and layout results of each block Thus, the present invention relates to a logic circuit dividing method and apparatus for optimally allocating a circuit to each FPGA / PLD.
LSI開発においては、論理検証まではプロトタイプとしてFPGA/PLD等を使用して、量産時にASICに変換する開発フローが幅広く採用されており、増加の一途にある。ここで、FPGAはField Programmable Gate Array(大規模PLD)のことであり、PLDはProgrammable Logic Device(論理回路を手元でプログラムできるLSI)のことであり、ASICはApplication Specific Integrated Circuit(特定用途向け集積回路)のことである。 In LSI development, a development flow for converting to ASIC at the time of mass production using FPGA / PLD or the like as a prototype until logic verification is widely adopted, and is increasing. Here, FPGA is Field Programmable Gate Array (Large Scale PLD), PLD is Programmable Logic Device (LSI that can program logic circuit at hand), and ASIC is for Application Specific Integrated Integrated Integration Circuit).
しかしながら、ASICの論理回路をSoC(System on a Chip)として実現するためには、数個から数10個のFPGA/PLDを必要とし、分割作業に多くの工数を費やしている。その理由としては、各デバイスに回路規模や使用ピン数等の内部リソースの使用制限があるために、ユーザの使用するデバイスとその個数の最適な選定がますます難しくなってきていることが挙げられる。 However, in order to realize an ASIC logic circuit as a SoC (System on a Chip), several to several tens of FPGAs / PLDs are required, and a lot of man-hours are spent on the division work. The reason for this is that the use of internal resources such as the circuit scale and the number of pins used for each device is limited, making it increasingly difficult to optimally select the device and number of devices used by the user. .
従来のこの種のシステムとしては、RTLを読み込んでグラフを生成し、部分回路を選択して、隣接ノードの分割を行ない、新たな回路部分を生成し、生成された回路部品、新たな回路部分を出力する技術が知られている(例えば特許文献1参照)。また、FPGA等のプログラム可能なゲートアレイに対して、RTL等の複数種類の論理回路のマッピングを行なってシミュレーションを実行する論理回路シミュレーションシステムが知られている(例えば特許文献2参照)。 As a conventional system of this type, a graph is generated by reading RTL, a partial circuit is selected, an adjacent node is divided, a new circuit part is generated, a generated circuit component, a new circuit part Is known (see, for example, Patent Document 1). There is also known a logic circuit simulation system that performs simulation by mapping a plurality of types of logic circuits such as RTL to a programmable gate array such as an FPGA (see, for example, Patent Document 2).
また、大規模なASICあるいは論理装置の電子回路を複数のプログラマブルチップに割り当てる際に、設計効率と動作タイミングとを考慮した論理分析装置が知られている(例えば特許文献3参照)。また、論理回路接続情報を入力し、この接続情報の論理検証を行なった後、集積回路のレイアウト設計を行なう集積回路設計装置及び設計方法が知られている(例えば特許文献4参照)。
従来の技術において、論理合成後のネットリスト(Net List:回路の接続状態をAND、OR等のセルで表現したデータ)を入力データとして分割作業を行なう場合、回路変更が発生すると、その影響は該当ブロックが複数ブロックに及ぶため変更の影響が大きいという問題がある。また、既存回路を用いて分割作業を行なう場合、近年の高速な大規模回路では、実レイアウト時に、性能面で見積もり値との差異が大きいという問題がある。 In the conventional technique, when a division operation is performed using a net list after logic synthesis (Net List: data in which circuit connection states are expressed by cells such as AND and OR) as input data, if a circuit change occurs, the effect is There is a problem that the influence of the change is large because the corresponding block covers a plurality of blocks. Further, when dividing work using existing circuits, a recent high-speed large-scale circuit has a problem that a difference from an estimated value is large in terms of performance in actual layout.
これらの問題により、多くの出戻り工数が発生するため、SoC開発のTAT(Turn Around Time:要求した処理について、結果が得られるまでにかかる時間)の増加が問題となっている。 Due to these problems, a large number of return man-hours occur, and therefore, an increase in TAT (Turn Around Time: time required for obtaining a result of requested processing) of SoC development is a problem.
本発明はこのような課題に鑑みてなされたものであって、出戻り工数を削減することができる論理回路分割方法及び装置を提供することを目的としている。 The present invention has been made in view of such problems, and an object of the present invention is to provide a logic circuit dividing method and apparatus capable of reducing the number of man-hours to return.
論理回路のRTL(Register Transfer Level:レジスタ間の動作で表した回路設計のレベル)が機能ブロック毎に記述されていることに着目する。そして、RTLを入力データとして分割することで、回路変更が発生した場合、該当ブロックの特定が容易となり、変更影響を最小限に抑えることができる。また、そのRTLを事前に論理合成及びレイアウトし、全ブロック情報をデータベース化することで、見積もりの精度があがり、実レイアウト時との差異を少なくすることができる。 Note that RTL (Register Transfer Level: level of circuit design expressed by operation between registers) of a logic circuit is described for each functional block. Then, by dividing the RTL as input data, when a circuit change occurs, it becomes easy to identify the corresponding block, and the influence of the change can be minimized. Also, by logically synthesizing and laying out the RTL in advance and creating a database of all block information, the accuracy of estimation can be improved and the difference from the actual layout can be reduced.
(1)請求項1記載の発明は、論理回路のRTLとデバイスと、デバイスの個数とデバイスの動作速度を設定する設定ファイルとを入力データとして受けて論理合成レイアウト部で、論理回路を分割した各ブロック毎に論理合成及びレイアウトを行ない、論理合成及びレイアウトの結果データである論理回路情報をデータベースに格納し、該データベースに格納された論理回路情報と、入力されたデバイスのピン数とデバイスの個数とデバイスの使用率とI/Oとを基に論理回路プログラムを用いて複数のFPGA又はPLDに対して論理回路を分割したブロックの振り分けを行なうことを特徴とする。 (1) According to the first aspect of the present invention, the logic circuit is divided in the logic synthesis layout unit by receiving the RTL and the device of the logic circuit and the setting file for setting the number of devices and the operation speed of the device as input data. Logic synthesis and layout are performed for each block, and logic circuit information, which is the result data of logic synthesis and layout, is stored in a database. The logic circuit information stored in the database, the number of input device pins, and the device Based on the number, the usage rate of the device, and the I / O , the logic circuit program is used to distribute the blocks obtained by dividing the logic circuit into a plurality of FPGAs or PLDs.
(2)請求項2記載の発明は、前記各ブロックに予め優先順位をつけ、この優先順位を基に分割を行なうことを特徴とする。
(3)請求項3記載の発明は、前記分割を行なう場合において、各ブロックの使用率の高いものから順に各FPGA又はPLDに分割を行なうことを特徴とする。ここで、使用率とは、デバイスの使用量を100%とした場合の割合を示す。
(2) The invention described in
(3) The invention according to
(4)請求項4記載の発明は、RTLを入力すると共に、デバイスの個数とデバイスの動作速度の設定を行なう入力データ部と、該入力データ部の出力を受けてデータベースを作成するデータベース作成部と、該データベース作成部で作成されたデータベースと、論理合成及びレイアウトの結果データである論理回路情報を該データベースに格納するデータベース格納部と、前記データベースに格納された論理回路情報と、入力されたデバイスのピン数とデバイスの個数とデバイスの使用率とI/Oとを基に論理回路プログラムを用いて複数のFPGA又はPLDに対して論理回路を分割したブロックの振り分けを行なう分割処理部と、該分割処理部の出力を受けて結果データを格納する結果データ部と、を有することを特徴とする。
( 4 ) The invention described in
(6)また、本発明は、前記分割を行なう場合において、各ブロックの使用率の低いものから順に各FPGA/PLDに分割を行なうことを特徴とする。
(7)また、本発明は、前記分割を行なう場合において、あるブロックの使用率が、分割する各FPGA/PLDの使用率を上回る場合、該当ブロックを階層展開し、分割を行なうことを特徴とする。
(6) Further, according to the present invention, when the division is performed, the division is performed for each FPGA / PLD in order from the lowest usage rate of each block.
(7) Further, the present invention is characterized in that, in the case of performing the division, if the usage rate of a certain block exceeds the usage rate of each FPGA / PLD to be divided, the corresponding block is hierarchically expanded and divided. To do.
(8)また、本発明は、前記分割を行なう場合において、入出力ピン/使用デバイスの使用率に任意の上限値を設定して分割を行なうことを特徴とする。
(9)また、本発明は、前記分割を行なう場合において、出力信号の分岐を考慮し、入出力ピンの複製・削除を行なうことを特徴とする。
(8) Further, the present invention is characterized in that the division is performed by setting an arbitrary upper limit value for the usage rate of the input / output pins / used devices.
(9) Further, the present invention is characterized in that, in the case of performing the division, the input / output pins are duplicated and deleted in consideration of branching of the output signal.
(10)また、本発明は前記分割を行なう場合において、性能が満たせない場合には、RTL修正の通知を行なうことを特徴とする。 (10) Further, the present invention is characterized in that, when the division is performed, if the performance cannot be satisfied, the RTL correction is notified.
(1)請求項1記載の発明によれば、より精度の高い分割を行なうことができる。 (1) According to the first aspect of the invention, more accurate division can be performed .
(2)請求項2記載の発明によれば、ユーザの意図した分割を可能にすることができる。
(3)請求項3記載の発明によれば、法則性による処理速度の向上を可能にすることができる。
( 2 ) According to the invention described in
( 3 ) According to the invention described in
(4)請求項4記載の発明によれば、より精度の高い分割を行なうことができる。
(6)また、本発明によれば、法則性による処理速度の向上を可能にすることができる。
( 4 ) According to the invention described in
(6) Further, according to the present invention, it is possible to improve the processing speed due to the law.
(7)また、本発明によれば、法則性による処理速度の向上、最適な回路規模への分割を可能にすることができる。
(8)また、本発明によれば、ユーザの意図した仕様への適応を容易にすることができる。
(7) Further, according to the present invention, it is possible to improve the processing speed due to the law and to divide the circuit into an optimum circuit scale.
(8) Further, according to the present invention, adaptation to specifications intended by the user can be facilitated.
(9)また、本発明によれば、ピンの有効活用、速度向上(ファンアウトの増加による遅延低減)を可能にすることができる。
(10)また、本発明によれば、処理速度の向上、ユーザの利便性(実現性の判定)の向上を可能にすることができる。
(9) Further, according to the present invention, it is possible to effectively use pins and improve speed (reduction in delay due to an increase in fan-out).
(10) Further, according to the present invention, it is possible to improve processing speed and user convenience (determination of feasibility).
以下、図面を参照して本発明の実施の形態例を詳細に説明する。
図1は本発明の入力データである論理回路のブロック構成図である。論理回路(Func Top)は、各ブロック(Func)で構成し、ブロック間の結線は、TOP RTL内で記述する。そして、このRTLより、分割作業に用いる結線データを抽出する。また、ブロック1(Func1),ブロック2(Func2),ブロック3(Func3)の論理回路情報は、それぞれRTL1,RTL2,RTL3で記述する。各ブロック内のLVi(iは任意の整数)はレベルを示す。このレベルLViは記述のレベルを表し、それぞれツリー構造で表わされている。
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
FIG. 1 is a block diagram of a logic circuit which is input data of the present invention. The logic circuit (Func Top) is composed of each block (Func), and the connection between the blocks is described in the TOP RTL. Then, connection data used for the division work is extracted from the RTL. The logic circuit information of block 1 (Func 1), block 2 (Func 2), and block 3 (Func 3) is described in RTL1, RTL2, and RTL3, respectively. LVi in each block (i is an arbitrary integer) indicates a level. This level LVi represents the level of description and is represented by a tree structure.
本RTLを用いて、論理合成及びレイアウトを行ない、分割作業に用いる論理合成/レイアウトデータを抽出する。論理回路のRTLが機能ブロック毎に記述されている本発明の構成では、あるブロックに回路変更が発生した場合、該当ブロックの特定が容易となり、変更影響を最小限に抑えることができる。 Using this RTL, logic synthesis and layout are performed, and logic synthesis / layout data used for division work is extracted. In the configuration of the present invention in which the RTL of the logic circuit is described for each functional block, when a circuit change occurs in a certain block, the corresponding block can be easily identified, and the influence of the change can be minimized.
図2は本発明の原理構成図である。本発明は、論理合成レイアウト部1と、データベース2と分割プログラム部3により構成される。図1に示す論理回路のRTL4と設定ファイル5を入力データとして、論理合成レイアウト部1で論理合成及びレイアウトを行ない、結果データである論理回路情報をデータベース2として格納し、その情報と設定値を基に論理回路分割プログラム部3により、FPGA/PLDへの振り分けを行なう。図では、FPGA6に分割結果を振り分ける例を示している。図では、FPGA1とFPGA2に分割されている例を示す。論理回路のRTLを事前に論理合成及びレイアウトして、全ブロック情報をデータベース化することで、全ブロック情報をデータベース化することで、見積もり精度が上がり、実レイアウト時との差異を少なくすることができる。
FIG. 2 is a principle configuration diagram of the present invention. The present invention includes a logic
図3は本発明の一実施の形態例を示すブロック図である。図において、10はRTLを入力すると共に各種設定を行なう入力データ部、20は該入力データ部10の出力を受けてデータベースを作成するデータベース作成部、30は該データベース作成部20と接続され、各種情報を格納するデータベース格納部、40は該データベース格納部30と接続され、前記入力データ部10の出力を受けて分割処理を行なう分割処理部、50は該分割処理部40の出力を受けて結果データを格納する結果データ部である。
FIG. 3 is a block diagram showing an embodiment of the present invention. In the figure, 10 is an input data section for inputting RTL and various settings, 20 is a database creation section for creating a database in response to the output of the
入力データ部10において、11はASICの論理回路を記述したRTLを格納するRTL受入部、12はデバイス、個数、動作速度等を入力する各種設定部である。データベース作成部20において、21はRTLから各ブロック間の結線数を抽出する結線数抽出部、22はRTLを用いて論理合成を行なう論理合成部、23は論理合成部22の出力を受けて論理合成後のネットリストを用いてレイアウトするレイアウト部(配線配置部)である。
In the
データベース格納部30において、31はデータベース作成部20で作成された結線数、論理合成、レイアウトデータをデータベースとして格納するデータベースである。分割処理部40において、41はデータベースと各種設定値とを比較し、各種設定値が所定の範囲内であるかどうかを判定する初期判定部、42はデータベースを用いて各FPGA/PLDに振り分けを行なう回路分割部である。結果データ部50において、51はASICの回路を各FPGA/PLDに振り分けた結果を格納する結果データ格納部、52はRTL修正が必要な場合に、修正通知を行なう修正通知部である。
In the
図4は本発明の設定項目例を示す図である。使用デバイス(例えばDEVICE−1,DEVICE−2…)の各項目にピン数、個数、使用率、I/Oの項目を入力するようになっている。ここで、使用率とはデバイスの使用量を100%とした場合の割合を表わす(以下同様)。また、各デバイスの各種情報(メモリの数、FFの数、乗算器の数等)は予め登録しておく。各項目の優先度は、ピン数が一番高く、その次に個数、その次に使用率、その次にI/Oである。DEVICEの優先度はDEVICE−1が一番高く、DEVICE−2がその次に高く、DEVICE−3と続く。 FIG. 4 is a diagram showing an example of setting items of the present invention. The items of the number of pins, the number of pins, the usage rate, and the I / O are input to each item of the device used (for example, DEVICE-1, DEVICE-2...). Here, the usage rate represents a ratio when the usage amount of the device is 100% (the same applies hereinafter). Various information (number of memories, number of FFs, number of multipliers, etc.) of each device is registered in advance. The priority of each item is the highest in the number of pins, followed by the number, then the usage rate, and then I / O. The priority of DEVICE is highest in DEVICE-1, followed by DEVICE-2, and continues with DEVICE-3.
図5は本発明の結線抽出例を示す図である。図は、ブロック間の入力数/出力数の対応を示している。例えば、RTL1の出力からRTL2の入力に対して、50ピンあることを示す。このデータで、つなぎのピン数が分かる。このデータは、実装デバイス内のピン数決定時に用いる。 FIG. 5 is a diagram showing an example of connection extraction according to the present invention. The figure shows the correspondence between the number of inputs / number of outputs between blocks. For example, it indicates that there are 50 pins from the output of RTL1 to the input of RTL2. With this data, you can see the number of pins connected. This data is used when determining the number of pins in the mounted device.
図6は本発明の分割初期動作を示すフローチャートである。先ず、RTL受入部11はRTLを入力する(S1)。次いで、各種設定部12はデバイス、個数、動作速度等、各種変数を設定するか否かを決定する(S2)。設定する場合、ステップS3へ、設定しない(デフォルト設定)場合には、ステップS4へスキップする。各種設定部12は各種変数を入力する(S3)。各種変数は図4に示した通りである。
FIG. 6 is a flowchart showing the initial division operation of the present invention. First, the
次に、結線数抽出部21は入力データであるTOP RTLから各階層ブロック間の結線数を抽出する(S4)。各階層ブロック間の結線数は図5に示した通りである。次に、結線数抽出部21は、RTL受入部11の出力を受けてステップS4で抽出した結線数データをデータベース31に格納する(S5)。論理合成部22は、入力データである各階層ブロックのRTLを論理合成する(S6)。
Next, the connection
次に、論理合成部22は、ステップS6で論理合成した結果をデータベース31に格納する(S7)。次に、初期判定部41は、データベース31に格納されているレイアウトデータが設定動作速度の範囲内であるかどうかを判定する(S8)。範囲内であれば、分割詳細フローへスキップする。範囲外である場合には、ステップS9に進む。次に、レイアウト部23は、論理合成結果のネットリストを用いてレイアウト(配置配線)する(S9)。レイアウト部23は、ステップS9でレイアウトした結果をデータベース31に格納する(S10)。
Next, the logic synthesis unit 22 stores the result of logic synthesis in step S6 in the database 31 (S7). Next, the initial determination unit 41 determines whether the layout data stored in the database 31 is within the set operation speed range (S8). If it is within the range, skip to the division detail flow. If it is out of range, the process proceeds to step S9. Next, the
次に、初期判定部41は、データベース31に格納されているレイアウトデータが設定動作速度の範囲内であるか否かを判定する(S11)。設定範囲内であれば、ステップS12に進み、設定範囲外であれば、ステップS13へ進む。ステップS12では、初期判定部41がレイアウトデータが設定デバイスの範囲内であるか否かを判定する(S12)。範囲内であれば、分割詳細フローにスキップし、範囲外であれば、ステップS15に進む。 Next, the initial determination unit 41 determines whether the layout data stored in the database 31 is within the range of the set operation speed (S11). If it is within the setting range, the process proceeds to step S12. If it is outside the setting range, the process proceeds to step S13. In step S12, the initial determination unit 41 determines whether the layout data is within the set device range (S12). If it is within the range, the process skips to the division detail flow, and if it is outside the range, the process proceeds to step S15.
次に、初期判定部41は、設定動作速度を変更するか否かを判定する(S13)。変更する場合にはステップS3へフィードバックして処理を行なう。変更しない場合には、ステップS14へ進む。ステップS14では、回路分割部42が論理合成/レイアウトデータを受けて、RTL修正を修正通知部52に通知して処理を終了する。修正通知部は、修正通知があったことをディスプレイ(図示せず)に通知する。ステップS15では、初期判定部41が、設定デバイスの範囲を超えるブロックの階層展開処理より、設定デバイスの変更を優先するか否かを判定する。設定デバイスの変更を優先する場合には、ステップS3にフィードバックし、階層展開処理を優先する場合にはステップS16へ進む。ステップS16では、初期判定部41が論理合成/レイアウトデータを基に、設定デバイスの範囲を超えるブロックを階層展開して、ステップS4にフィードバックする。 Next, the initial determination unit 41 determines whether or not to change the set operation speed (S13). When the change is made, the process is fed back to step S3. When not changing, it progresses to step S14. In step S14, the circuit dividing unit 42 receives the logic synthesis / layout data, notifies the correction notification unit 52 of the RTL correction, and ends the process. The correction notification unit notifies a display (not shown) that there has been a correction notification. In step S <b> 15, the initial determination unit 41 determines whether or not priority is given to the change of the setting device over the hierarchy development processing of the block exceeding the setting device range. If priority is given to changing the setting device, the process is fed back to step S3, and if priority is given to the hierarchy development process, the process proceeds to step S16. In step S16, the initial determination unit 41 hierarchically develops blocks exceeding the set device range based on the logic synthesis / layout data and feeds back to step S4.
図7は本発明の分割詳細動作を示すフローチャートである。この実施の形態例では、使用率をキーワードとし、使用率の高いブロックを優先するものである。
回路分割部42は、論理回路内のブロックのうち、未実装ブロックがあるかどうかを判定する(S1)。未実装ブロックがあれば、ステップS2へ進み、未実装ブロックがない場合(全ブロック実装)には、ステップS11にスキップする。次に、回路分割部42は未実装ブロックのうち、使用率が最も高いブロックを実装候補として指定する(S2。以後指定ブロックと呼ぶ)。
FIG. 7 is a flowchart showing the detailed division operation of the present invention. In this embodiment, the usage rate is a keyword, and a block with a high usage rate is prioritized.
The circuit divider 42 determines whether there is an unmounted block among the blocks in the logic circuit (S1). If there is an unmounted block, the process proceeds to step S2, and if there is no unmounted block (all blocks mounted), the process skips to step S11. Next, the circuit dividing unit 42 designates a block having the highest usage rate among unmounted blocks as a mounting candidate (S2, hereinafter referred to as a specified block).
回路分割部42は、論理回路内に、複製して共通に使用するブロック(以後、複製ブロックと呼ぶ)があるか否かを判定する(S3)。複製ブロックがあればステップS4へ、なければ指定ブロックを該当ブロックとしてステップS5へスキップする。ステップS4では、回路分割部42が指定ブロックと複製ブロックをあわせて該当ブロックとする(使用率は合計する)。 The circuit dividing unit 42 determines whether there is a block that is duplicated and used in common (hereinafter referred to as a duplicated block) in the logic circuit (S3). If there is a duplicate block, the process skips to step S4. If not, the designated block is skipped to step S5. In step S4, the circuit dividing unit 42 adds the designated block and the duplicated block to the corresponding block (the usage rate is totaled).
次に、ステップS5では、該当ブロックの使用率が、事前に設定ファイル内で指定した使用率の上限値を上回っているか否かを判定する。上回っていればステップS6に進み、上回っていなければステップS7にスキップする。ステップS6では、回路分割部42が指定ブロックを階層展開して複数のブロックに分割し、ステップS2へフィードバックする。ステップS7では、回路分割部42が未実装ブロックのうち、使用率の上限値から該当ブロックの使用率を差し引いた値の範囲内に収まるブロックがあるか否かを判定する。あればステップS8へ進み、なければステップS9へスキップする。 Next, in step S5, it is determined whether or not the usage rate of the corresponding block exceeds the upper limit value of the usage rate specified in the setting file in advance. If it exceeds, the process proceeds to step S6. If not, the process skips to step S7. In step S6, the circuit dividing unit 42 expands the designated block into a plurality of blocks, and feeds back to step S2. In step S7, the circuit dividing unit 42 determines whether there is a block that falls within a range of values obtained by subtracting the usage rate of the corresponding block from the upper limit value of the usage rate among the unmounted blocks. If there is, the process proceeds to step S8, and if not, the process skips to step S9.
ステップS8では、回路分割部42がステップS7で該当するブロックのうち、使用率が最も高いブロックを該当ブロックにあわせ(使用率は合計する)、ステップS7へフィードバックする。ステップS9では、回路分割部42が該当ブロックを1FPGAブロックとして確定する。次に、回路分割部42は、該当ブロックに含まれる全ブロックを実装ブロックとして登録し、ステップS1へフィードバックする(S10)。この結果、未実装ブロックがなくなった時点で回路分割部42は結果データを結果データ格納部51へ格納して(S11)、処理が終了する。 In step S8, the circuit dividing unit 42 matches the block having the highest usage rate among the blocks corresponding in step S7 to the corresponding block (the usage rates are totaled), and feeds back to step S7. In step S9, the circuit dividing unit 42 determines the corresponding block as a 1 FPGA block. Next, the circuit dividing unit 42 registers all blocks included in the corresponding block as mounting blocks, and feeds back to step S1 (S10). As a result, when there is no unmounted block, the circuit dividing unit 42 stores the result data in the result data storage unit 51 (S11), and the process ends.
次に、本発明の実施例について説明する。図8は本発明の入力データである論理回路のブロック構成例を示す図である。本論理回路のRTLは、それぞれAAA,BBB,CCC,DDD,ZZZZの機能ブロック毎で、ブロック間結線はTOP RTLで記述する。なお、AAAはAA1,AA2,AA3を、BBBはBB1,BB2を、CCCはCC1,CC2を下位階層に持つ。 Next, examples of the present invention will be described. FIG. 8 is a diagram showing a block configuration example of a logic circuit which is input data of the present invention. The RTL of this logic circuit is described for each of AAA, BBB, CCC, DDD, and ZZZZ functional blocks, and the connection between the blocks is described as TOP RTL. AAA has AA1, AA2 and AA3, BBB has BB1 and BB2, and CCC has CC1 and CC2 in the lower hierarchy.
図9は本発明の入力データである設定ファイル例を示す図である。本ファイルは、使用デバイスをDEVICE−1、そのピン数を1000ピン、デバイスの使用個数を4個、各デバイスの使用率の上限値を75%、ユーザの使用I/Oピン数の上限値を700ピン、最低動作速度50MHz、複製ブロックZZZ、階層展開優先、設定速度変更なし、高使用率優先と設定した例である。複製ブロックZZZは、各ブロックで共通に使用される基本的なブロック(回路)のことである(図14参照)。
FIG. 9 is a diagram showing an example of a setting file which is input data of the present invention. This file uses DEVICE-1 as the device used, the number of pins is 1000 pins, the number of devices used is 4, the upper limit of the usage rate of each device is 75%, and the upper limit of the number of I / O pins used by the user is In this example, 700 pins,
本RTL及び設定ファイルを入力データとして、本発明の論理回路をフローに沿って以下に説明する。なお、本実施例では、メモリ、FF、乗算器、…の使用個数制限を説明上無視するものとする。
(RTL修正例)
TOP RTLより各ブロック間の結線数を抽出する。図10は本発明の結線抽出例を示す図である。図10に示す入力ピン数/出力ピン数の対応関係をデータベース化する。本データは、実装デバイス内のI/Oピン数を判定する際に用いる。次に、各ブロックのRTLの論理合成を行ない、その結果を抽出する。図11は各ブロックのデータベース例を示す図である。図に示す使用率、動作速度をデータベース化する。本結果のうち、DDDの動作速度が45MHzで、図9に示す設定値である最低動作速度50MHzを満足していないため、引き続きレイアウトを行なう。
The logic circuit of the present invention will be described below along the flow with the RTL and the setting file as input data. In the present embodiment, the limitation on the number of used memories, FFs, multipliers,.
(Example of RTL correction)
The number of connections between each block is extracted from TOP RTL. FIG. 10 is a diagram showing a connection extraction example of the present invention. The correspondence relationship between the number of input pins / the number of output pins shown in FIG. This data is used when determining the number of I / O pins in the mounted device. Next, RTL logic synthesis of each block is performed, and the result is extracted. FIG. 11 is a diagram illustrating a database example of each block. Create a database of the usage rate and operation speed shown in the figure. Of these results, the DDD operating speed is 45 MHz and does not satisfy the minimum operating speed of 50 MHz, which is the set value shown in FIG.
次に、各ブロックのネットリストを用いて、レイアウトを行ない、その結果を抽出する。図11に示す使用率、動作速度をデータベース化する。本結果のうち、DDDは論理合成結果と変わらず、設定値を満足していない。更に、設定速度変更なしを設定しているので、論理合成、レイアウト情報を付けて、DDDのRTL修正を修正通知部52に通知して処理を終了する。DDDのRTLを修正後、上記と同様の構成で論理回路分割をフローに沿って以下に説明する。
(結果データ例)
上記と同様、結線数を抽出すると、同様に図10となる。各ブロックのRTLの論理合成を行ない、その結果を図12に示す。図12は各ブロックの他のデータベース例を示す図である。本結果と図9に示す設定値とを比較する。比較の結果、範囲内であるので、詳細分割フローに進む。図14に示す分割原理図に沿って説明する。
Next, layout is performed using the net list of each block, and the result is extracted. The usage rate and operation speed shown in FIG. Of these results, DDD is not different from the logic synthesis result and does not satisfy the set value. Furthermore, since no setting speed change is set, logic synthesis and layout information are added, RDD correction of DDD is notified to the correction notification unit 52, and the process ends. After correcting the DDD RTL, logic circuit division with the same configuration as described above will be described along the flow.
(Result data example)
Similarly to the above, when the number of connections is extracted, FIG. 10 is similarly obtained. The RTL logic synthesis of each block is performed, and the result is shown in FIG. FIG. 12 is a diagram showing another database example of each block. This result is compared with the set value shown in FIG. Since it is within the range as a result of the comparison, the process proceeds to the detailed division flow. A description will be given along the division principle diagram shown in FIG.
S1:論理回路を4FPGAに振り分けを行なう。
S2:未実装ブロックのうち、最上位階層で使用率が最も高いAAAブロック(80%)と共通ブロックZZZ(2%)を実装候補(82%)とし、その値と上限値(75%)とを比較した結果、上回るため、AAAブロックを階層展開し、AAA1(45%)、AA2(25%)、AA3(10%)を最上位階層とする。ここで、データベースは図13に示すデータベース(階層展開)に更新される。
S1: The logic circuit is distributed to 4 FPGAs.
S2: Among the unimplemented blocks, the AAA block (80%) and the common block ZZZ (2%), which have the highest usage rate in the highest hierarchy, are the implementation candidates (82%), and the value and the upper limit (75%) As a result, the AAA block is hierarchically expanded, and AAA1 (45%), AA2 (25%), and AA3 (10%) are set as the highest hierarchy. Here, the database is updated to the database (hierarchical development) shown in FIG.
S3:使用率が最も高いブロックBBB(65%)と共通ブロックZZZ(2%)を実装候補(67%)とし、その値と上限値(75%)とを比較した結果、範囲内であるので、次にその値を上限値から引いた値(8%)を基に未実装ブロックから、範囲内のブロックを探す。その結果、該当するブロックがないので、BBBとZZZでFPGA1とし、ピン数670(BBBとZZZ間の結線を差し引いた値)が設定値内であるので、1FPGAとして確定する。
S3: The block BBB (65%) and the common block ZZZ (2%) with the highest usage rate are set as implementation candidates (67%), and the value is compared with the upper limit (75%). Next, based on a value (8%) obtained by subtracting the value from the upper limit value, a block within the range is searched from the unmounted blocks. As a result, since there is no corresponding block,
S4:使用率が最も高いブロックCCC(50%)と共通ブロックZZZ(2%)を実装候補(52%)とし、その値と上限値(75%)とを比較した結果、範囲内であるので、次にその値を上限値から引いた値(75−52=23%)を基に未実装ブロックから、範囲内のブロックを探した結果、AA3ブロック(10%)が該当し、実装候補(52+10=62%)とする。 S4: The block CCC (50%) with the highest usage rate and the common block ZZZ (2%) are set as implementation candidates (52%), and the value is compared with the upper limit (75%). Next, as a result of searching for a block within the range from the unimplemented block based on a value obtained by subtracting the value from the upper limit value (75−52 = 23%), the AA3 block (10%) corresponds to the implementation candidate ( 52 + 10 = 62%).
次に、上限値から引いた値(75−62=13%)を基に未実装ブロックから、範囲内のブロックを探した結果、該当するブロックがないため、CCC、AAA、ZZZでFPGA2とし、同様にピン数が設定値内であるので、1FPGAとして確定する。 Next, as a result of searching for a block within the range from the unmounted blocks based on the value subtracted from the upper limit value (75−62 = 13%), there is no corresponding block, so CCC, AAA, and ZZZ are set to FPGA2, Similarly, since the number of pins is within the set value, it is determined as 1 FPGA.
S5:S4と同様の処理を行ない、AA1、AA2、ZZZでFPGA3を確定する。
S6:S3,S4と同様の処理を行ない、DDD、ZZZでFPGA4を確定する。
以上、詳細に説明したように、本発明によれば、より精度の高い分割を行なうことができ、出戻り工数を削減することができる。上述の実施の形態例では、分割の基準として使用率の高いものから順に分割する場合を例にとって説明したが、本発明はこれに限るもののではなく、以下に示す例を用いることもできる。
S5: The same processing as S4 is performed, and FPGA3 is determined by AA1, AA2, and ZZZ.
S6: The same processing as S3 and S4 is performed, and FPGA4 is determined by DDD and ZZZ.
As described above in detail, according to the present invention, it is possible to perform division with higher accuracy and to reduce the man-hours for return. In the above-described embodiment, the case where the division is performed in order from the highest usage rate has been described as an example of the division. However, the present invention is not limited to this, and the following example can also be used.
また、本発明によれば、クロック/リセットの共通ブロックの複製を行なうようにすることができる。このようにすれば、動作速度の向上、クロック/リセットの低減を可能にすることができる。 Further, according to the present invention, the common block of clock / reset can be duplicated. In this way, it is possible to improve the operation speed and reduce the clock / reset.
また、本発明によれば、前記各ブロックに予め優先順位をつけ、この優先順位を基に分割を行なうようにすることができる。このようにすれば、ユーザの意図した分割を可能にすることができる。 In addition, according to the present invention, priorities can be assigned to the blocks in advance, and division can be performed based on the priorities. In this way, the division intended by the user can be made possible.
また、本発明によれば、前記分割を行なう場合において、各ブロックの使用率の低いものから順に各FPGA/PLDに分割を行なうようにすることができる。このようにすれば、法則性による処理速度の向上を可能にすることができる。 Further, according to the present invention, when performing the division, it is possible to divide each FPGA / PLD in order from the lowest usage rate of each block. In this way, it is possible to improve the processing speed due to the law.
また、本発明によれば、前記分割を行なう場合において、前述したあるブロックの使用率が、分割する各FPGA/PLDの使用率を上回る場合、該当ブロックを階層展開し、分割を行なうようにすることができる。このようにすれば、法則性による処理速度の向上、最適な回路規模への分割を可能にすることができる。 Further, according to the present invention, in the case of performing the division, if the usage rate of a certain block described above exceeds the usage rate of each FPGA / PLD to be divided, the corresponding block is hierarchically expanded and divided. be able to. In this way, it is possible to improve the processing speed due to the law and to divide the circuit into an optimum circuit scale.
また、本発明によれば、前記分割を行なう場合において、入出力ピン/使用デバイスの使用率に任意の上限値を設定して分割を行なうようにすることができる。このようにすれば、ユーザの意図した仕様への適応を容易にすることができる。 Further, according to the present invention, when the division is performed, the division can be performed by setting an arbitrary upper limit value for the usage rate of the input / output pins / used devices. In this way, adaptation to the specifications intended by the user can be facilitated.
また、本発明によれば、前記分割を行なう場合において、出力信号の分岐を考慮し、入出力ピンの複製・削除を行なうようにすることができる。このようにすれば、ピンの有効活用、速度向上(ファンアウトの増加による遅延低減)を可能にすることができる。 Further, according to the present invention, when performing the division, the input / output pins can be duplicated / deleted in consideration of branching of the output signal. In this way, it is possible to effectively use the pins and improve the speed (reduction in delay due to an increase in fan-out).
また、本発明によれば、前記分割を行なう場合において、性能が満たせない場合には、RTL修正の通知を行なうようにすることができる。このようにすれば、処理速度の向上、ユーザの利便性(実現性の判定)の向上を可能にすることができる。 In addition, according to the present invention, when the division is performed, if the performance cannot be satisfied, the RTL correction can be notified. In this way, it is possible to improve processing speed and user convenience (determination of feasibility).
(付記1) 各ブロックのRTLを事前に論理合成及びレイアウトし、
前記ブロックに関する情報をデータベース化し、
このデータベースを基に自動で各FPGA/PLDに分割を行なう、
ことを特徴とする論理回路分割方法。
(Supplementary note 1) RTL of each block is synthesized and laid out in advance,
Create a database of information about the block,
Based on this database, each FPGA / PLD is automatically divided.
A logic circuit dividing method.
(付記2) クロック/リセットの共通ブロックの複製を行なうことを特徴とする付記1記載の論理回路分割方法。
(付記3) 前記各ブロックに予め優先順位をつけ、この優先順位を基に分割を行なうことを特徴とする付記1記載の論理回路分割方法。
(Supplementary note 2) The logic circuit dividing method according to
(Supplementary note 3) The logic circuit dividing method according to
(付記4) 前記分割を行なう場合において、各ブロックの使用率の高いものから順に各FPGA/PLDに分割を行なうことを特徴とする付記1記載の論理回路分割方法。
(付記5) RTLを入力すると共に各種設定を行なう入力データ部と、
該入力データ部の出力を受けてデータベースを作成するデータベース作成部と、
該データベース作成部と接続され、各種情報を格納するデータベース格納部と、
該データベース格納部と接続され、前記入力データ部の出力を受けて分割処理を行なう分割処理部と、
該分割処理部の出力を受けて結果データを格納する結果データ部と、
により構成される論理回路分割装置。
(Supplementary note 4) The logic circuit division method according to
(Supplementary Note 5) An input data part for inputting RTL and making various settings;
A database creation section for creating a database in response to the output of the input data section;
A database storage unit connected to the database creation unit and storing various types of information;
A division processing unit connected to the database storage unit and performing a division process in response to an output of the input data unit;
A result data part that receives the output of the division processing part and stores the result data;
A logic circuit dividing device constituted by:
(付記6) 前記分割を行なう場合において、各ブロックの使用率の低いものから順に各FPGA/PLDに分割を行なうことを特徴とする付記1記載の論理回路分割方法。
(付記7) 前記分割を行なう場合において、あるブロックの使用率が、分割する各FPGA/PLDの使用率を上回る場合、該当ブロックを階層展開し、分割を行なうことを特徴とする付記1記載の論理回路分割方法。
(Supplementary note 6) The logic circuit division method according to
(Supplementary note 7) In the case of performing the division, if the usage rate of a certain block exceeds the usage rate of each FPGA / PLD to be divided, the corresponding block is hierarchically expanded and divided. Logic circuit division method.
(付記8) 前記分割を行なう場合において、入出力ピン/使用デバイスの使用率に任意の上限値を設定して分割を行なうことを特徴とする付記1記載の論理回路分割方法。
(付記9) 前記分割を行なう場合において、出力信号の分岐を考慮し、入出力ピンの複製・削除を行なうことを特徴とする付記1記載の論理回路分割方法。
(Supplementary note 8) The logic circuit division method according to
(Supplementary note 9) The logic circuit division method according to
(付記10) 前記分割を行なう場合において、性能が満たせない場合には、RTL修正の通知を行なうことを特徴とする付記1記載の論理回路分割方法。
(Supplementary note 10) The logic circuit division method according to
10 入力データ部
11 RTL受入部
12 各種設定部
20 データベース作成部
21 結線数抽出部
22 論理合成部
23 レイアウト部
30 データベース格納部
31 データベース
40 分割処理部
41 初期判定部
42 回路分割部
50 結果データ部
51 結果データ格納部
52 修正通知部
DESCRIPTION OF
Claims (4)
論理合成及びレイアウトの結果データである論理回路情報をデータベースに格納し、
該データベースに格納された論理回路情報と、入力されたデバイスのピン数とデバイスの個数とデバイスの使用率とI/Oとを基に論理回路プログラムを用いて複数のFPGA又はPLDに対して論理回路を分割したブロックの振り分けを行なう、
ことを特徴とする論理回路分割方法。 The logic synthesis layout unit performs logic synthesis and layout for each block obtained by dividing the logic circuit by receiving the logic circuit RTL and device, and the setting file for setting the number of devices and the operation speed of the device as input data.
Store logic circuit information, which is the result data of logic synthesis and layout, in a database,
Logic for a plurality of FPGA or PLD using logic circuits programmed based on the logic circuit information stored in the database, the number and device usage entered number of pins of the device and the device and the I / O Sort the blocks that divide the circuit ,
A logic circuit dividing method.
該データベース作成部で作成されたデータベースと、
論理合成及びレイアウトの結果データである論理回路情報を該データベースに格納するデータベース格納部と、
前記データベースに格納された論理回路情報と、入力されたデバイスのピン数とデバイスの個数とデバイスの使用率とI/Oとを基に論理回路プログラムを用いて複数のFPGA又はPLDに対して論理回路を分割したブロックの振り分けを行なう分割処理部と、
該分割処理部の出力を受けて結果データを格納する結果データ部と、
を有することを特徴とする論理回路分割装置。 An input data part for inputting the RTL and setting the number of devices and the operation speed of the device; a database creation part for creating a database in response to the output of the input data part;
A database created by the database creation unit;
A database storage unit for storing logic circuit information as result data of logic synthesis and layout in the database;
Logic for a plurality of FPGA or PLD using logic circuits programmed based on the logic circuit information stored in the database, the utilization and I / O of the input pin count devices and device number and device A division processing unit for distributing blocks divided into circuits ;
A result data part that receives the output of the division processing part and stores the result data;
A logic circuit dividing device comprising:
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2004372972A JP4568599B2 (en) | 2004-12-24 | 2004-12-24 | Logic circuit dividing method and apparatus |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2004372972A JP4568599B2 (en) | 2004-12-24 | 2004-12-24 | Logic circuit dividing method and apparatus |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2006178827A JP2006178827A (en) | 2006-07-06 |
| JP4568599B2 true JP4568599B2 (en) | 2010-10-27 |
Family
ID=36732883
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2004372972A Expired - Fee Related JP4568599B2 (en) | 2004-12-24 | 2004-12-24 | Logic circuit dividing method and apparatus |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP4568599B2 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112329368B (en) * | 2020-10-30 | 2024-04-12 | 苏州盛科通信股份有限公司 | Method, apparatus and storage medium for automatically adjusting a partitioning scheme |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2292823B (en) * | 1994-08-26 | 1998-12-02 | Quickturn Design Systems Inc | Method for automatic clock qualifier selection in reprogrammable hardware emulation systems |
| JP3184420B2 (en) * | 1995-01-19 | 2001-07-09 | 株式会社日立製作所 | Logical partitioning apparatus and method |
| JP3042761B2 (en) * | 1995-08-07 | 2000-05-22 | 株式会社日立製作所 | Program data generation method for programmable device in logic emulation system and program data generation device for programmable device |
| JP3614306B2 (en) * | 1998-09-04 | 2005-01-26 | 富士通株式会社 | LSI layout method and recording medium storing LSI layout program |
| JP3196931B2 (en) * | 1999-01-20 | 2001-08-06 | 日本電気株式会社 | Partitioning method and device, and emulation method and device |
| JP2000222442A (en) * | 1999-01-29 | 2000-08-11 | Fujitsu Ltd | Logic circuit division method and device |
-
2004
- 2004-12-24 JP JP2004372972A patent/JP4568599B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2006178827A (en) | 2006-07-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN113408225B (en) | FPGA chip design method for increasing running speed | |
| KR100249251B1 (en) | Logic circuit optimization apparatus and its method | |
| US5737234A (en) | Method of optimizing resource allocation starting from a high level block diagram | |
| US9275176B2 (en) | Register clustering for clock network topology generation | |
| US6990651B2 (en) | Advanced design format library for integrated circuit design synthesis and floorplanning tools | |
| US20180246997A1 (en) | Design method, design program, and design apparatus | |
| US20110209112A1 (en) | Method for clock load alignment during standard cell optimization | |
| US6651232B1 (en) | Method and system for progressive clock tree or mesh construction concurrently with physical design | |
| US6526561B2 (en) | Database for designing integrated circuit device, and method for designing integrated circuit device | |
| US6763513B1 (en) | Clock tree synthesizer for balancing reconvergent and crossover clock trees | |
| US5574655A (en) | Method of allocating logic using general function components | |
| JP2003500745A (en) | Inter-service application service provider | |
| US6536012B1 (en) | Database for designing integrated circuit device, and method for designing integrated circuit device | |
| US6938232B2 (en) | Floorplanning apparatus deciding floor plan using logic seeds associated with hierarchical blocks | |
| US11308025B1 (en) | State machine block for high-level synthesis | |
| JP4568599B2 (en) | Logic circuit dividing method and apparatus | |
| JP3811133B2 (en) | Semiconductor integrated circuit design method and design support apparatus | |
| Murgai | Technology-dependent logic optimization | |
| Lin et al. | A platform of resynthesizing a clock architecture into power-and-area effective clock trees | |
| JP2012150631A (en) | Semiconductor integrated circuit design method and design apparatus | |
| CN113408223A (en) | Chip design method based on intelligent analysis | |
| JPH1196203A (en) | Logic circuit design method | |
| JPH06180733A (en) | Logic synthesis system | |
| US7594201B2 (en) | Enhanced method of optimizing multiplex structures and multiplex control structures in RTL code | |
| US7086015B2 (en) | Method of optimizing RTL code for multiplex structures |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20071120 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091006 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091202 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100105 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100330 |
|
| A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20100413 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100518 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100714 |
|
| 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: 20100803 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100809 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 4568599 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130813 Year of fee payment: 3 |
|
| LAPS | Cancellation because of no payment of annual fees |