JP2021018769A - Circuit design method, program and information processor - Google Patents

Circuit design method, program and information processor Download PDF

Info

Publication number
JP2021018769A
JP2021018769A JP2019135890A JP2019135890A JP2021018769A JP 2021018769 A JP2021018769 A JP 2021018769A JP 2019135890 A JP2019135890 A JP 2019135890A JP 2019135890 A JP2019135890 A JP 2019135890A JP 2021018769 A JP2021018769 A JP 2021018769A
Authority
JP
Japan
Prior art keywords
flip
flop
module pin
module
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
JP2019135890A
Other languages
Japanese (ja)
Other versions
JP7306134B2 (en
Inventor
清隆 杉本
Kiyotaka Sugimoto
清隆 杉本
修 前島
Osamu Maejima
修 前島
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2019135890A priority Critical patent/JP7306134B2/en
Publication of JP2021018769A publication Critical patent/JP2021018769A/en
Application granted granted Critical
Publication of JP7306134B2 publication Critical patent/JP7306134B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

To arrange a module pin to a proper position before adjusting a timing between blocks.SOLUTION: In a circuit design method, a module pin is initially arranged on a side being a boundary between first and second blocks, then a first flip flop which exists in the first block and coupled to the module pin, a second flip flop which exists in the second block and coupled to the module pin, and a third flip flop which exists in the second block and coupled to the second flip flop, are identified, then before executing timing verification about a signal through the module pin, the module pin is moved into a coordinate range corresponding to an overlap range between a first range in which a point on a path for coupling the first and second flip flops by a shortest Manhattan distance exists on a side, and a second range in which a point on a path for coupling the first and third flip flops by a shortest Manhattan distance exists on a side.SELECTED DRAWING: Figure 17

Description

本願開示は、回路設計方法、プログラム、及び情報処理装置に関する。 The disclosure of the present application relates to a circuit design method, a program, and an information processing apparatus.

LSI階層物理設計においては、それぞれの機能を有する複数のブロックにチップを分割し、ブロック毎に並行して開発を行っている。ブロック境界にはモジュールピンと呼ばれる隣接ブロックとの接続ピンを配置し、ブロック毎に、ブロック内の配線をモジュールピンにつなぐことにより、チップに組み上げた際にブロック間を繋ぐ配線同士が結合される。モジュールピンが適正な位置に配置されていない場合、ブロック間を繋ぐ配線が迂回してしまい、ブロックを跨いだタイミング調整や、配線性の悪化につながる為、モジュールピンの配置位置は重要である。 In LSI hierarchical physical design, a chip is divided into a plurality of blocks having each function, and development is performed in parallel for each block. Connection pins with adjacent blocks called module pins are arranged at the block boundary, and by connecting the wiring in the block to the module pin for each block, the wiring connecting the blocks when assembled on the chip is connected to each other. If the module pins are not arranged at the proper positions, the wiring connecting the blocks will be bypassed, which will lead to timing adjustment across the blocks and deterioration of wiring properties, so the arrangement position of the module pins is important.

従来のモジュールピンの配置位置を決定する手順においては、設計段階初期においてブロック間の境界となる各ブロックの辺に、モジュールピンが初期配置される。この初期配置においてはRAMの入出力ピンの順番やバス信号線の並び順等が考慮されるが、信号のタイミングは考慮されていない。モジュールピンの初期配置後に、各ブロック内におけるタイミングを検証してブロック内タイミング調整を実行し、その後、ブロックを跨ぐ信号のタイミングを検証してブロック間におけるタイミング調整を実行する。このブロック間タイミング調整時において、モジュールピンの位置はタイミングを考慮していない初期配置状態のままであるため、目標周波数を達成できる設計を実現するためには、モジュールピンの位置を移動させることが必要になることが多い。また更には、モジュールピンの位置移動に伴い、ブロック内においてフリップフロップの位置を移動させることが必要になる場合もある。 In the conventional procedure for determining the arrangement position of the module pin, the module pin is initially arranged on the side of each block which is a boundary between the blocks at the initial stage of the design stage. In this initial arrangement, the order of the input / output pins of the RAM and the order of the bus signal lines are taken into consideration, but the signal timing is not taken into consideration. After the initial placement of the module pins, the timing within each block is verified and the timing adjustment within the block is executed, and then the timing of the signal straddling the blocks is verified and the timing adjustment between blocks is executed. At the time of this inter-block timing adjustment, the position of the module pin remains in the initial arrangement state without considering the timing, so in order to realize a design that can achieve the target frequency, it is necessary to move the position of the module pin. Often needed. Furthermore, it may be necessary to move the position of the flip-flop in the block as the position of the module pin moves.

上記のように設計後期段階におけるブロック間タイミング調整において、設計が略完了していた領域に存在するモジュールピンやフリップフロップを移動することが必要になると、以下の問題が発生する。まずモジュールピンを移動する場合、モジュールピンを移動するために移動先エリアを確保する必要があり、タイミングを満たしていた他のパスへの干渉や他のパスの移動が発生し、タイミング調整のやり直しが生じる。またフリップフロップを移動することに伴いクロックスキューが変化するため、セットアップタイミングやホールドタイミングが悪化してしまう。これらの理由により、開発設計工程が大幅に増加してしまうという問題がある。 As described above, in the inter-block timing adjustment in the latter stage of the design, when it is necessary to move the module pins and flip-flops existing in the region where the design has been substantially completed, the following problems occur. First, when moving the module pin, it is necessary to secure a destination area in order to move the module pin, interference with other paths that meet the timing and movement of other paths occur, and the timing adjustment is redone. Occurs. In addition, since the clock skew changes as the flip-flop moves, the setup timing and hold timing deteriorate. For these reasons, there is a problem that the development design process is significantly increased.

特開平10−50845号公報Japanese Unexamined Patent Publication No. 10-50845 特開平9−101974号公報Japanese Unexamined Patent Publication No. 9-101974

以上を鑑みると、ブロック間タイミング調整前にモジュールピンを適正な位置に配置する回路設計方法が望まれる。 In view of the above, a circuit design method for arranging the module pins at appropriate positions before adjusting the timing between blocks is desired.

コンピュータにより実行される回路設計方法において、前記コンピュータが、第1のブロックと第2のブロックとの間の境界である辺上にモジュールピンを初期配置し、前記第1のブロック内に存在し前記モジュールピンに繋がる第1のフリップフロップと、前記第2のブロック内に存在し前記モジュールピンに繋がる第2のフリップフロップと、前記第2のブロック内に存在し前記第2のフリップフロップに繋がる第3のフリップフロップとを特定し、前記モジュールピンを介した信号についてタイミング検証を実行する前に、前記第1のフリップフロップと前記第2のフリップフロップとを最短マンハッタン距離で結ぶ経路上の点が前記辺上に存在する第1の範囲と、前記第1のフリップフロップと前記第3のフリップフロップとを最短マンハッタン距離で結ぶ経路上の点が前記辺上に存在する第2の範囲との間で、重なる範囲に相当する座標領域内に前記モジュールピンを移動する、ことを特徴とする。 In a circuit design method performed by a computer, the computer initially places module pins on the side that is the boundary between the first block and the second block, and is present in the first block. A first flip-flop connected to the module pin, a second flip-flop existing in the second block and connected to the module pin, and a second flip-flop existing in the second block and connected to the second flip-flop. Before identifying the flip-flop of 3 and performing timing verification on the signal via the module pin, a point on the path connecting the first flip-flop and the second flip-flop with the shortest Manhattan distance is Between the first range existing on the side and the second range where a point on the path connecting the first flip-flop and the third flip-flop with the shortest Manhattan distance exists on the side. The module pin is moved within the coordinate region corresponding to the overlapping range.

少なくとも1つの実施例によれば、ブロック間タイミング調整前にモジュールピンを適正な位置に配置することにより開発工程数を削減可能となる。 According to at least one embodiment, the number of development steps can be reduced by arranging the module pins at appropriate positions before adjusting the timing between blocks.

関連技術における回路設計方法の手順を示すフローチャートである。It is a flowchart which shows the procedure of the circuit design method in a related technique. チップ、ブロック、及びモジュールピンの関係を示す図である。It is a figure which shows the relationship of a chip, a block, and a module pin. 各ブロックとモジュールピンとの関係を示す図である。It is a figure which shows the relationship between each block and a module pin. 着目ブロックにおけるタイミング調整について説明するための図である。It is a figure for demonstrating the timing adjustment in a block of interest. 着目ブロック間におけるタイミング調整について説明するための図である。It is a figure for demonstrating the timing adjustment between the blocks of interest. 2つのフリップフロップ間の最短マンハッタン距離により規定される範囲を説明するための図である。It is a figure for demonstrating the range defined by the shortest Manhattan distance between two flip-flops. フリップフロップ移動が必要な状態の一例を示す図である。It is a figure which shows an example of the state which needs the flip-flop movement. 回路設計方法の一例を示すフローチャートである。It is a flowchart which shows an example of a circuit design method. 図8に示される回路設計方法を実行する装置の機能ブロック図である。It is a functional block diagram of the apparatus which executes the circuit design method shown in FIG. ネットリストの一例を示す図である。It is a figure which shows an example of a netlist. モジュールピン及びフリップフロップに関する接続情報ファイルの一例を示す図である。It is a figure which shows an example of the connection information file about a module pin and a flip-flop. チップに関する配置情報ファイルの一例を示す図である。It is a figure which shows an example of the arrangement information file about a chip. ブロックの位置関係の一例を示す図である。It is a figure which shows an example of the positional relationship of a block. モジュールピン及びフリップフロップに関する接続情報及び位置情報ファイルの一例を示す図である。It is a figure which shows an example of the connection information and position information file about a module pin and a flip-flop. ブロック間接続に関する配置情報ファイルの一例を示す図である。It is a figure which shows an example of the arrangement information file about the connection between blocks. 移動先領域決定及びモジュールピン配置位置決定処理の詳細を示すフローチャートである。It is a flowchart which shows the details of the moving destination area determination and the module pin arrangement position determination process. 3点間評価により特定される所望のモジュールピン配置領域の一例を示す図である。It is a figure which shows an example of the desired module pin arrangement area specified by the three-point evaluation. 3点間評価により特定される所望のモジュールピン配置領域の別の一例を示す図である。It is a figure which shows another example of the desired module pin arrangement area specified by the three-point evaluation. モジュールピン移動対象リストの一例を示す図である。It is a figure which shows an example of the module pin movement target list. 点数化アルゴリズムに基づくモジュールピン移動先決定処理の手順の一例を示すフローチャートである。It is a flowchart which shows an example of the procedure of the module pin movement destination determination processing based on a scoring algorithm. 非混雑度を計算するための4近傍について説明するための図である。It is a figure for demonstrating 4 neighborhoods for calculating the degree of non-congestion. 非混雑度を示す点数について説明するための図である。It is a figure for demonstrating the score which shows the degree of non-congestion. 非混雑度を示す点数の具体的な例について示す図である。It is a figure which shows the specific example of the score which shows the degree of non-congestion. 図19に示すモジュールピン移動対象リストに対応する配線可能位置を示す図である。It is a figure which shows the wiring possible position corresponding to the module pin movement target list shown in FIG. 1つのモジュールピンに対する移動先決定処理の一例を示す図である。It is a figure which shows an example of the move destination determination process for one module pin. 次の1つのモジュールピンに対する移動先決定処理の一例を示す図である。It is a figure which shows an example of the move destination determination process for the next one module pin. 更に次の1つのモジュールピンに対する移動先決定処理の一例を示す図である。Further, it is a figure which shows an example of the move destination determination process for the next one module pin. モジュールピンm−pin(c)を移動して配置した状態を示す図である。It is a figure which shows the state which moved and arranged the module pin m-pin (c). モジュールピン移動先リストの一例を示す図である。It is a figure which shows an example of the module pin movement destination list. 最高点数が所定の閾値以下であると判断される場合の一例を示す図である。It is a figure which shows an example of the case where it is determined that the highest score is not more than a predetermined threshold value. 領域内移動不可リストの一例を示す図である。It is a figure which shows an example of the immovable list in an area. 層位置が上層に移動された領域内移動不可リストの一例を示す図である。It is a figure which shows an example of the immovable list in an area where a layer position was moved to the upper layer. 上層でのモジュールピンに対する移動先決定処理の一例を示す図である。It is a figure which shows an example of the moving destination determination processing for a module pin in the upper layer. モジュールピンm−pin(a’)を移動した後の状態を示す図である。It is a figure which shows the state after moving a module pin m-pin (a'). 移動先の上層への移動が可能であるか否かを示す表である。It is a table which shows whether or not it is possible to move to the upper layer of the movement destination. モジュールピン移動リストの一例を示す図である。It is a figure which shows an example of the module pin movement list. モジュールピンと3個のフリップフロップとの配置の一例を示す図である。It is a figure which shows an example of the arrangement of a module pin and three flip-flops. 3点間評価により特定される移動先領域の一例を示す図である。It is a figure which shows an example of the movement destination area specified by the evaluation between three points. 移動対象リストの一例を示す図である。It is a figure which shows an example of the movement target list. モジュールピンに対する移動先決定処理の一例を示す図である。It is a figure which shows an example of the move destination determination process for a module pin. 移動先リストの一例を示す図である。It is a figure which shows an example of a move destination list. 移動リストの一例を示す図である。It is a figure which shows an example of a moving list. モジュールピン移動の一例を示す図である。It is a figure which shows an example of the module pin movement. 関連技術における回路設計方法における移動対象モジュールピンを説明する図である。It is a figure explaining the module pin to move in the circuit design method in a related technique. 本発明の回路設計方法における移動対象モジュールピンを説明する図である。It is a figure explaining the moving target module pin in the circuit design method of this invention. モジュールピンの移動先領域を特定する際に考慮するフリップフロップの段数とモジュールピンの配置誤差及び計算量との関係を示す図である。It is a figure which shows the relationship between the number of flip-flop stages considered when specifying the moving destination area of a module pin, the arrangement error of a module pin, and the amount of calculation. 分岐数と計算量との関係を示す図である。It is a figure which shows the relationship between the number of branches and the amount of calculation. フリップフロップ出力が2つに分岐される場合における各段に存在するパスの総数を示す図である。It is a figure which shows the total number of paths existing in each stage when a flip-flop output is branched into two. 回路設計装置の構成の一例を示す図である。It is a figure which shows an example of the structure of a circuit design apparatus.

図1は、関連技術における回路設計方法の手順を示すフローチャートである。図1に示される関連技術における回路設計方法は、後ほど説明する本願発明の回路設計方法に対して比較の対象となるものである。関連技術における回路設計方法は、以下の手順により実行される。 FIG. 1 is a flowchart showing a procedure of a circuit design method in a related technique. The circuit design method in the related technique shown in FIG. 1 is to be compared with the circuit design method of the present invention described later. The circuit design method in the related technology is executed by the following procedure.

ステップS1において、フロアプランに基づいて、RAM及びフリップフロップの配置を行う。ステップS2において、RAMの入出力ピン並び、及びバス単位での昇順又は降順(バス信号線の並び順)を考慮し、またセットアップタイミングが厳しいパスについてはタイミングの早い上層を優先することにより、モジュールピンの配置層と配置位置とを決める。なおモジュールピンの中には、接続セル(インバータやバッファ回路等の論理回路)を介してRAM又はフリップフロップと接続されるモジュールピンがある。この段階では接続セルが未配置であるため、それらのモジュールピンについては、接続先が特定できない。そのため、当該モジュールピンが接続される隣接ブロックの方向を確認し、着目ブロックの4辺のうちで当該隣接ブロックに接する辺に当該モジュールピンを初期的に配置する。 In step S1, the RAM and the flip-flop are arranged based on the floor plan. In step S2, the module is configured by considering the RAM input / output pin arrangement and the ascending or descending order (bus signal line arrangement order) for each bus, and giving priority to the upper layer with the earlier timing for the path where the setup timing is strict. Determine the pin placement layer and placement position. Among the module pins, there are module pins that are connected to the RAM or flip-flop via a connection cell (logic circuit such as an inverter or a buffer circuit). Since the connection cells are not arranged at this stage, the connection destination cannot be specified for those module pins. Therefore, the direction of the adjacent block to which the module pin is connected is confirmed, and the module pin is initially arranged on the side of the four sides of the block of interest that is in contact with the adjacent block.

図2は、チップ、ブロック、及びモジュールピンの関係を示す図である。図2に示されるチップ10は、4個のブロック10A(Ablock)、10B(Bblock)、10C(Cblock)、及び10D(Dblock)に分割される。4個のブロック10A、10B、10C、及び10Dの境界には、モジュールピン11が配置される。 FIG. 2 is a diagram showing the relationship between chips, blocks, and module pins. The chip 10 shown in FIG. 2 is divided into four blocks 10A (Ablock), 10B (Bblock), 10C (Cblock), and 10D (Dblock). Module pins 11 are arranged at the boundaries of the four blocks 10A, 10B, 10C, and 10D.

図3は、各ブロックとモジュールピンとの関係を示す図である。図3(a)にはブロック10Aと、ブロック10Aに設けられたモジュールピン11とが示される。図3(b)にはブロック10Bと、ブロック10Bに設けられたモジュールピン11とが示される。図3(a)及び(b)に例示されるように、各ブロックにおいて隣接ブロックと接する辺には、当該ブロックに属するモジュールピン11が配置される。これら複数のブロック同士を図1のように結合してチップ10に組み上げることにより、ブロック間を繋ぐパス同士、即ち例えば図3(a)に示されるパス12Aと図3(b)に示されるパス12Bとが結合される。 FIG. 3 is a diagram showing the relationship between each block and the module pin. FIG. 3A shows a block 10A and a module pin 11 provided on the block 10A. FIG. 3B shows a block 10B and a module pin 11 provided on the block 10B. As illustrated in FIGS. 3A and 3B, module pins 11 belonging to the block are arranged on the side of each block in contact with the adjacent block. By connecting these plurality of blocks to the chip 10 as shown in FIG. 1, the paths connecting the blocks, that is, the paths 12A shown in FIG. 3A and the paths shown in FIG. 3B, for example, are formed. 12B is combined.

図1に戻り、ステップS3において、各ブロックにおいて、ブロック内タイミング調整が実行される。具体的には、ブロック内におけるタイミングチェック結果から、フリップフロップ配置位置を調整し、目標周波数を達成できる設計を実現する。なおこの段階において、接続セルや論理セルも適宜配置される。 Returning to FIG. 1, in step S3, in-block timing adjustment is executed in each block. Specifically, the flip-flop placement position is adjusted based on the timing check result in the block, and a design capable of achieving the target frequency is realized. At this stage, connection cells and logical cells are also arranged as appropriate.

図4は、着目ブロックにおけるタイミング調整について説明するための図である。図4には、一例としてブロック10Aが示される。フリップフロップFF1とFF2との配置位置を調整することにより、フリップフロップFF1からフリップフロップFF2に到るパス13Aを介した信号伝達に要する時間が調整され、所望の周波数でのデータ送受信が可能となる。 FIG. 4 is a diagram for explaining timing adjustment in the block of interest. FIG. 4 shows block 10A as an example. By adjusting the arrangement positions of the flip-flops FF1 and FF2, the time required for signal transmission via the path 13A from the flip-flop FF1 to the flip-flop FF2 is adjusted, and data transmission / reception at a desired frequency becomes possible. ..

図1に戻り、ステップS4において、各ブロックにおいて、各ブロック内での信号伝達動作が問題なく実行されるか否かをチェックする。チェックの結果問題があれば、ステップS3に戻りブロック内タイミング調整を続行する。チェックの結果がOKであれば、ステップS5に進む。 Returning to FIG. 1, in step S4, in each block, it is checked whether or not the signal transmission operation in each block is executed without any problem. If there is a problem as a result of the check, the process returns to step S3 and the timing adjustment in the block is continued. If the result of the check is OK, the process proceeds to step S5.

ステップS5において、ブロック間のタイミングに着目し、ブロック間におけるタイミング調整を実行する。具体的には、接続セルや論理セルに関して位置調整や駆動力調整を行ったり、クロストークを考慮して信号配線の位置を調整したりすることにより、ブロック間を伝達する信号に関して、目標周波数を達成できる設計を実現する。 In step S5, attention is paid to the timing between blocks, and the timing adjustment between blocks is executed. Specifically, the target frequency is set for the signal transmitted between blocks by adjusting the position and driving force of the connecting cell and logic cell, and adjusting the position of the signal wiring in consideration of crosstalk. Achieve an achievable design.

図5は、着目ブロック間におけるタイミング調整について説明するための図である。図5には、一例としてブロック10Aとブロック10Cとの間で信号を伝達するパスが示される。パス14A、モジュールピン11、及びパス14Cを介して、ブロック10AのフリップフロップFF3からブロック10CのフリップフロップFF4に信号が伝達される。ブロック間タイミング調整においては、例えばこのパスについてタイミングをチェックし、必要に応じてタイミング調整を行う。 FIG. 5 is a diagram for explaining timing adjustment between blocks of interest. FIG. 5 shows, as an example, a path for transmitting a signal between the blocks 10A and the block 10C. A signal is transmitted from the flip-flop FF3 of the block 10A to the flip-flop FF4 of the block 10C via the path 14A, the module pin 11, and the path 14C. In inter-block timing adjustment, for example, the timing is checked for this path, and the timing is adjusted as necessary.

図1に戻り、ステップS6において、ブロック間での信号伝達動作が問題なく実行されるか否かをチェックする。チェックの結果がOKであれば、処理を終了する。チェックの結果問題があれば、ステップS7に進む。 Returning to FIG. 1, in step S6, it is checked whether or not the signal transmission operation between the blocks is executed without any problem. If the result of the check is OK, the process ends. If there is a problem as a result of the check, the process proceeds to step S7.

ステップS7において、モジュールピンを再配置済みであるか否かを判定する。ブロック間タイミング調整においては、必要に応じてモジュールピンを再配置することがあり、このステップS7では、そのようなモジュールピン再配置が既に実行されたか否かを判定する。再配置済みである場合、処理はステップS5に進み、ブロック間タイミング調整を続行する。モジュールピン再配置が未だ行われていない場合、ステップS8に進む。 In step S7, it is determined whether or not the module pins have been rearranged. In the inter-block timing adjustment, the module pins may be rearranged as needed, and in this step S7, it is determined whether or not such module pin rearrangement has already been executed. If the rearrangement has been completed, the process proceeds to step S5 to continue the inter-block timing adjustment. If the module pin rearrangement has not been performed yet, the process proceeds to step S8.

ステップS8において、モジュールピンを必要に応じて移動(再配置)する。具体的には、目標周波数における信号送受信が実現されていないブロック間パスを抽出し、当該パスに属するモジュールピン、当該パスの第1端及び第2端にそれぞれ接続される第1及び第2のフリップフロップを特定する。更に、第1のフリップフロップと第2のフリップフロップとを最短マンハッタン距離で結ぶ経路上の点がブロック間境界辺上に存在する範囲に、上記モジュールピンが位置するか否かを判定する。 In step S8, the module pins are moved (rearranged) as needed. Specifically, the inter-block paths for which signal transmission / reception at the target frequency is not realized are extracted, and the module pins belonging to the path and the first and second paths connected to the first and second ends of the path, respectively. Identify the flip-flop. Further, it is determined whether or not the module pin is located in a range in which a point on the path connecting the first flip-flop and the second flip-flop with the shortest Manhattan distance exists on the boundary between blocks.

図6は、2つのフリップフロップ間の最短マンハッタン距離により規定される範囲を説明するための図である。図6において、ブロック間の境界であるブロックの辺15を跨ぐパス(図示せず)が存在し、当該パスの両端にフリップフロップFF1とフリップフロップFF2とが接続される。各フリップフロップの位置は、各フリップフロップが占める矩形領域の左下コーナー位置(図中黒丸で示す位置)により規定される。フリップフロップFF1とフリップフロップFF2とを最短マンハッタン距離(L1距離)で結ぶ任意の経路が存在する範囲は、図6に示す矩形領域A1に一致する。この矩形領域A1に相当する辺15上の範囲15Aが、フリップフロップFF1とフリップフロップFF2とを最短マンハッタン距離で結ぶ経路上の点が辺15上に存在する範囲である。 FIG. 6 is a diagram for explaining a range defined by the shortest Manhattan distance between two flip-flops. In FIG. 6, there is a path (not shown) that straddles the side 15 of the block, which is a boundary between blocks, and the flip-flop FF1 and the flip-flop FF2 are connected to both ends of the path. The position of each flip-flop is defined by the lower left corner position (the position indicated by the black circle in the figure) of the rectangular area occupied by each flip-flop. The range in which an arbitrary path connecting the flip-flop FF1 and the flip-flop FF2 with the shortest Manhattan distance (L1 distance) exists corresponds to the rectangular region A1 shown in FIG. The range 15A on the side 15 corresponding to the rectangular region A1 is the range in which a point on the path connecting the flip-flop FF1 and the flip-flop FF2 with the shortest Manhattan distance exists on the side 15.

ステップS8におけるモジュールピン移動処理では、フリップフロップFF1とフリップフロップFF2とを接続するパスに属するモジュールピン11が、辺15上の範囲15A内に存在しない場合、範囲15A内へモジュールピン11を移動する。同様の処理を、目標周波数における信号送受信が実現されていない全てのブロック間パスについて実行する。 In the module pin movement process in step S8, if the module pin 11 belonging to the path connecting the flip-flop FF1 and the flip-flop FF2 does not exist in the range 15A on the side 15, the module pin 11 is moved into the range 15A. .. The same process is performed for all inter-block paths for which signal transmission / reception at the target frequency has not been realized.

次にステップS9において、フリップフロップの移動が必要であるか否かを判定する。モジュールピンを移動しても所望の周波数における適切な動作が実現されない場合等、各ブロック内でのフリップフロップの位置を再度調整する必要がある。ステップS9においてフリップフロップの移動が必要はないと判断されると、処理はステップS5に戻り、ブロック間タイミング調整を続行する。ステップS9においてフリップフロップの移動が必要であると判断されると、処理はステップS3に戻り、ブロック内タイミング調整からやり直す。 Next, in step S9, it is determined whether or not the flip-flop needs to be moved. It is necessary to readjust the position of the flip-flop in each block, such as when moving the module pin does not achieve proper operation at the desired frequency. If it is determined in step S9 that the flip-flop does not need to be moved, the process returns to step S5 and the inter-block timing adjustment is continued. If it is determined in step S9 that the flip-flop needs to be moved, the process returns to step S3 and restarts from the in-block timing adjustment.

図7は、フリップフロップ移動が必要な状態の一例を示す図である。図7において、ブロック間境界である辺15を跨いでフリップフロップFF1とフリップフロップFF2とが接続されている。フリップフロップFF2は更にフリップフロップFF3に接続され、フリップフロップFF3はフリップフロップFF4に接続されている。図7において、モジュールピン11は、フリップフロップFF1とフリップフロップFF2とを最短マンハッタン距離で結ぶ経路上の点が辺15上に存在する範囲内に位置している。しかしながらフリップフロップFF1及びFF2だけでなく、フリップフロップFF3まで考慮すると、フリップフロップFF2の位置は最適ではない。このような場合、フリップフロップFF2を例えば点線で示すように位置P1に移動し、更にモジュールピン11を位置P2に移動することが必要になる場合がある。 FIG. 7 is a diagram showing an example of a state in which flip-flop movement is required. In FIG. 7, the flip-flop FF1 and the flip-flop FF2 are connected across the side 15 which is the boundary between blocks. The flip-flop FF2 is further connected to the flip-flop FF3, and the flip-flop FF3 is connected to the flip-flop FF4. In FIG. 7, the module pin 11 is located within a range in which a point on the path connecting the flip-flop FF1 and the flip-flop FF2 with the shortest Manhattan distance exists on the side 15. However, considering not only the flip-flops FF1 and FF2 but also the flip-flops FF3, the position of the flip-flops FF2 is not optimal. In such a case, it may be necessary to move the flip-flop FF2 to the position P1 as shown by a dotted line, and further move the module pin 11 to the position P2.

以上説明した関連技術における回路設計方法においては、設計後期段階におけるブロック間タイミング調整において、設計が略完了していた領域に存在するモジュールピンやフリップフロップを移動することが必要になる。モジュールピンを移動する場合には、移動先エリアを確保する必要があり、タイミングを満たしていた他のパスへの干渉や他のパスの移動が発生し、タイミング調整のやり直しが生じる。またフリップフロップを移動することに伴いクロックスキューが変化するため、セットアップタイミングやホールドタイミングが悪化してしまう。これらの理由により、開発設計工程が大幅に増加してしまうという問題がある。 In the circuit design method in the related technology described above, it is necessary to move the module pins and flip-flops existing in the region where the design has been substantially completed in the inter-block timing adjustment in the latter stage of the design. When moving the module pin, it is necessary to secure a destination area, interference with other paths that meet the timing and movement of other paths occur, and timing adjustment is redone. In addition, since the clock skew changes as the flip-flop moves, the setup timing and hold timing deteriorate. For these reasons, there is a problem that the development design process is significantly increased.

図8は、本願発明の実施例による回路設計方法の一例を示すフローチャートである。図8及び以降の図において、フローチャートに記載された各ステップの実行順序は一例にすぎず、本願の意図する技術範囲が、記載された実行順番に限定されるものではない。例えば、Aステップの次にBステップが実行されるように本願に説明されていたとしても、Aステップの次にBステップを実行することが可能なだけでなく、Bステップの次にAステップを実行することが、物理的且つ論理的に可能である場合がある。この場合、どちらの順番でステップを実行しても、当該フローチャートの処理に影響する全ての結果が同一であるならば、本願に開示の技術の目的のためには、Bステップの次にAステップが実行されてもよいことは自明である。Aステップの次にBステップが実行されるように本願に説明されていたとしても、上記のような自明な場合を本願の意図する技術範囲から除外することを意図するものではなく、そのような自明な場合は、当然に本願の意図する技術範囲内に属する。 FIG. 8 is a flowchart showing an example of a circuit design method according to an embodiment of the present invention. In FIG. 8 and the following figures, the execution order of each step described in the flowchart is merely an example, and the technical scope intended by the present application is not limited to the execution order described. For example, even if it is described in the present application that the B step is executed after the A step, not only the B step can be executed after the A step, but also the A step is executed after the B step. It may be physically and logically possible to do so. In this case, if all the results affecting the processing of the flowchart are the same regardless of the order in which the steps are executed, for the purpose of the technique disclosed in the present application, step B is followed by step A. Is self-evident that may be performed. Even if it is explained in the present application that the B step is executed after the A step, it is not intended to exclude the above-mentioned obvious cases from the technical scope intended by the present application, and such a case is not intended. If it is self-evident, it naturally falls within the technical scope intended by the present application.

図9は、図8に示される回路設計方法を実行する装置の機能ブロック図である。図9に示す装置は、要素配置部20、紐付け部21、領域決定部22、移動先決定部23、及びタイミング調整部24を含む。これらの各部の機能は、後述するハードウェアにおけるCPU(Central Processing Unit)が所定のプログラムを実行することにより実現される。なお各ボックスで示される各機能ブロックと他の機能ブロックとの境界は、基本的には機能的な境界を示すものであり、制御論理的な分離等に対応するとは限らない。 FIG. 9 is a functional block diagram of an apparatus that executes the circuit design method shown in FIG. The device shown in FIG. 9 includes an element arranging unit 20, a tying unit 21, an area determining unit 22, a moving destination determining unit 23, and a timing adjusting unit 24. The functions of each of these parts are realized by the CPU (Central Processing Unit) in the hardware described later executing a predetermined program. The boundary between each functional block and other functional blocks shown in each box basically indicates a functional boundary, and does not necessarily correspond to a control logical separation or the like.

図8のステップS11において、要素配置部20が、フロアプランに基づいて、RAM及びフリップフロップの配置を行う。ステップS12において、要素配置部20が、モジュールピンの配置層と配置位置とを決める。この際、要素配置部20は、RAMの入出力ピン並び、及びバス単位での昇順又は降順(バス信号線の並び順)を考慮し、またセットアップタイミングが厳しいパスについてはタイミングの早い上層を優先することにより、境界辺上にモジュールピンを初期配置する。 In step S11 of FIG. 8, the element arranging unit 20 arranges the RAM and the flip-flop based on the floor plan. In step S12, the element arranging unit 20 determines the arrangement layer and the arrangement position of the module pin. At this time, the element arranging unit 20 considers the input / output pin arrangement of the RAM and the ascending or descending order (arrangement order of the bus signal lines) in each bus, and gives priority to the upper layer having an early timing for the path where the setup timing is strict. By doing so, the module pins are initially placed on the boundary edge.

なおモジュールピンの中には、接続セル(インバータやバッファ回路等の論理回路)を介してRAM又はフリップフロップと接続されるモジュールピンがある。この段階では接続セルが未配置であるため、それらのモジュールピンについては、接続先が特定できない。そのため、当該モジュールピンが接続される隣接ブロックの方向を確認し、着目ブロックの4辺のうちで当該隣接ブロックに接する辺に当該モジュールピンを初期的に配置する。チップ、ブロック、及びモジュールピンの関係は前述の図2に示す通りであり、各ブロックとモジュールピンとの関係は前述の図3に示す通りである。 Among the module pins, there are module pins that are connected to the RAM or flip-flop via a connection cell (logic circuit such as an inverter or a buffer circuit). Since the connection cells are not arranged at this stage, the connection destination cannot be specified for those module pins. Therefore, the direction of the adjacent block to which the module pin is connected is confirmed, and the module pin is initially arranged on the side of the four sides of the block of interest that is in contact with the adjacent block. The relationship between the chip, the block, and the module pin is as shown in FIG. 2 above, and the relationship between each block and the module pin is as shown in FIG. 3 above.

上記の初期配置においては、信号のタイミングは考慮されておらず、モジュールピン配置位置には大きな調整の余地が残されている状態である。この状態にあるモジュールピン配置位置を、初期配置ステップの直後に実行されるステップS13乃至S15の処理により調整することで、より適切な位置にモジュールピンを移動する。これらのステップの処理においては、信号のタイミングをチェックすることなく、3個以上のフリップフロップの位置及び配線の非混雑度に基づいて、モジュールピンの配置位置を調整する。以下にこれらの処理について説明する。 In the above initial arrangement, the signal timing is not taken into consideration, and there is a large room for adjustment in the module pin arrangement position. By adjusting the module pin arrangement position in this state by the processing of steps S13 to S15 executed immediately after the initial arrangement step, the module pin is moved to a more appropriate position. In the processing of these steps, the position of the module pin is adjusted based on the position of three or more flip-flops and the degree of non-congestion of the wiring without checking the timing of the signal. These processes will be described below.

ステップS13において、紐付け部21が、3点間評価するための準備として、論理接続に従い3個のフリップフロップを互いに紐付ける。ここで3点間評価とは、着目モジュールピンに接続される3個のフリップフロップの位置に基づいて、モジュールピン配置位置として好ましい座標領域を特定し、着目モジュールピンの初期配置位置が当該座標領域内に存在するか否かを評価することである。その準備としての紐付け処理においては、3個のフリップフロップを特定するために、まず隣接する2つのブロックの間の境界辺上に存在するモジュールピンに着目する。そして、第1のブロック内に存在し着目モジュールピンに繋がる第1のフリップフロップと、第2のブロック内に存在し着目モジュールピンに繋がる第2のフリップフロップとを特定する。更に、第2のブロック内に存在し第2のフリップフロップに繋がる第3のフリップフロップを特定する。 In step S13, the linking unit 21 links the three flip-flops to each other according to the logical connection in preparation for the evaluation between the three points. Here, in the three-point evaluation, a preferable coordinate area is specified as the module pin arrangement position based on the positions of the three flip-flops connected to the module pin of interest, and the initial arrangement position of the module pin of interest is the coordinate area. It is to evaluate whether or not it exists in. In the associative process as a preparation, in order to identify the three flip-flops, first, the module pin existing on the boundary edge between two adjacent blocks is focused on. Then, the first flip-flop existing in the first block and connected to the module pin of interest and the second flip-flop existing in the second block and connected to the module pin of interest are specified. Further, a third flip-flop existing in the second block and connected to the second flip-flop is specified.

上記の紐付け処理について、図面を用いて詳細に説明する。図10は、ネットリストの一例を示す図である。図11は、モジュールピン及びフリップフロップに関する接続情報ファイルの一例を示す図である。図12は、チップに関する配置情報ファイルの一例を示す図である。図13は、ブロックの位置関係の一例を示す図である。図14は、モジュールピン及びフリップフロップに関する接続情報及び位置情報ファイルの一例を示す図である。図15は、ブロック間接続に関する配置情報ファイルの一例を示す図である。 The above-mentioned linking process will be described in detail with reference to the drawings. FIG. 10 is a diagram showing an example of a netlist. FIG. 11 is a diagram showing an example of a connection information file relating to a module pin and a flip-flop. FIG. 12 is a diagram showing an example of an arrangement information file relating to the chip. FIG. 13 is a diagram showing an example of the positional relationship of the blocks. FIG. 14 is a diagram showing an example of connection information and position information files related to module pins and flip-flops. FIG. 15 is a diagram showing an example of an arrangement information file relating to connection between blocks.

最初に、隣接する2個のブロック(例えばAblockとBblock)について、境界辺上にあるモジュールピンからネットリスト(図10)に基づいて論理をトレースし、当該モジュールピンに接続されるフリップフロップインスタンス名を抽出する。図10に示される例では、DFF_1及びDFF_2が抽出される。着目モジュールピンが入力ピン(例えば図10においてCblockに示される“input m-pin(a)”)である場合、更にもう1つ先に接続されるフリップフロップ(DFF_3)まで辿り、フリップフロップインスタンス名を抽出する。この処理をチップ内に存在する全モジュールピンについて実行し、各モジュールピンについて、図11に示すような3個のフリップフロップに関する接続情報ファイルを作成する。なおここでの説明では3個のフリップフロップを紐付けする場合を例として用いるが、紐付けするフリップフロップの個数は3個に限られず、3個以上であってよい。 First, for two adjacent blocks (eg Ablock and Bblock), the logic is traced from the module pin on the boundary edge based on the netlist (Fig. 10), and the flip-flop instance name connected to the module pin. Is extracted. In the example shown in FIG. 10, DFF_1 and DFF_2 are extracted. If the module pin of interest is an input pin (for example, "input m-pin (a)" shown in Cblock in FIG. 10), the flip-flop instance name is traced to the flip-flop (DFF_3) connected one more ahead. Is extracted. This process is executed for all the module pins existing in the chip, and for each module pin, a connection information file regarding three flip-flops as shown in FIG. 11 is created. In the description here, the case where three flip-flops are linked is used as an example, but the number of flip-flops to be linked is not limited to three, and may be three or more.

次に、図12(a)及び(b)に一例として示されるチップに関する配置情報ファイルに基づいて、図11に示される接続情報ファイルに座標情報を挿入することにより、接続情報及び位置情報ファイル(図14)を作成する。ここで図12(a)に示す配置情報ファイルには、各ブロック内に存在するインスタンスのX座標及びY座標等に関する情報が格納されている。この座標は、各ブロックについて当該ブロックの左下コーナーを基準点(原点(0,0))とした座標値である。図12(b)に示す配置情報ファイルには、各ブロックの位置に関する情報が格納されている。図12(b)に示す例では、Bblockが原点位置(0,0)、AblockがBblockの上、DblockがBblockの右、CblockがBblockの右上に配置される関係(例えば図13に示すような位置関係)となっている。 Next, based on the arrangement information file relating to the chip shown as an example in FIGS. 12 (a) and 12 (b), the connection information and the position information file (by inserting the coordinate information into the connection information file shown in FIG. 11) FIG. 14) is created. Here, in the arrangement information file shown in FIG. 12A, information regarding the X coordinate, the Y coordinate, and the like of the instances existing in each block is stored. These coordinates are coordinate values for each block with the lower left corner of the block as a reference point (origin (0,0)). Information about the position of each block is stored in the arrangement information file shown in FIG. 12B. In the example shown in FIG. 12B, Bblock is located at the origin position (0,0), Ablock is located above Bblock, Dblock is located on the right side of Bblock, and Cblock is located on the upper right of Bblock (for example, as shown in FIG. 13). (Positional relationship).

図12(b)に示される座標例においては、図13にも示されるように、AblockとCblockとの間で、左下コーナーである基準点のY座標位置が、“10,000”だけ互いにずれている。このようにX軸方向に隣接する2つのブロック(例えばAblockとCblock)間で、境界辺にあるモジュールピンについて3点間評価を実行する場合、各ブロック内におけるY座標について、ずれを考慮した修正を行う必要がある。同様に、Y軸方向に隣接する2つのブロック間で、境界辺にあるモジュールピンについて3点間評価を実行する場合、各ブロック内におけるX座標について、ずれを考慮した修正を行う必要がある。 In the coordinate example shown in FIG. 12B, as also shown in FIG. 13, the Y coordinate position of the reference point, which is the lower left corner, is deviated from each other by "10,000" between Ablock and Cblock. ing. When performing a three-point evaluation for a module pin on the boundary between two blocks (for example, Ablock and Cblock) adjacent to each other in the X-axis direction in this way, the Y coordinate in each block is corrected in consideration of the deviation. Need to be done. Similarly, when performing a three-point evaluation for a module pin on the boundary edge between two blocks adjacent to each other in the Y-axis direction, it is necessary to correct the X coordinate in each block in consideration of the deviation.

図14に示される接続情報及び位置情報ファイルにおいては、モジュールピン及びフリップフロップのY座標について、Ablockに関して修正が行われている。即ち、修正前のモジュールピン及びフリップフロップのY座標はそれぞれ“30,000”及び“35,000”であるのに対し、修正後のY座標はそれぞれ“40,000”及び“45,000”となっている。即ち、AblockとCblockとが互いにY座標位置が“10,000”ずれていることを考慮し、Ablockにおける各要素のY座標に対して“10,000”を加算し、座標値を修正している。なおCblockにおける各要素のX座標値についても、Cblock基準点のX座標値を考慮に入れたものとなっている。 In the connection information and position information files shown in FIG. 14, the Y coordinates of the module pin and the flip-flop are modified with respect to Ablock. That is, the Y coordinates of the module pin and the flip-flop before modification are "30,000" and "35,000", respectively, while the Y coordinates after modification are "40,000" and "45,000", respectively. It has become. That is, considering that the Y coordinate positions of Ablock and Cblock are deviated from each other by "10,000", "10,000" is added to the Y coordinate of each element in Ablock, and the coordinate value is corrected. There is. The X coordinate value of each element in Cblock also takes into consideration the X coordinate value of the Cblock reference point.

その後、図14に示される接続情報及び位置情報ファイルに基づいて、ブロック間接続に関する配置情報ファイル(図15)を生成する。このブロック間接続に関する配置情報ファイルは、DFF_1、m−pin(a)、DFF_2、及びDFF_3がこの順番に接続され、各要素がファイルに記載される座標位置を有することを示している。 After that, a placement information file (FIG. 15) relating to the connection between blocks is generated based on the connection information and location information files shown in FIG. The arrangement information file relating to this inter-block connection indicates that DFF_1, m-pin (a), DFF_2, and DFF_3 are connected in this order, and each element has a coordinate position described in the file.

図8に戻りステップS14において、領域決定部22が、3点間評価によりモジュールピン移動先領域を決定する。次にステップS15において、移動先決定部23が、非混雑度を考慮した点数化アルゴリズムを用いることにより、モジュールピンの配置位置(移動先位置)を決定する。このように非混雑度を考慮した点数化アルゴリズムを用いることにより、配線間のクロストーク雑音の影響を考慮した効率的な設計が可能となる。これらの処理について以下に詳細に説明する。 Returning to FIG. 8, in step S14, the area determination unit 22 determines the module pin movement destination area by the evaluation between three points. Next, in step S15, the movement destination determination unit 23 determines the arrangement position (movement destination position) of the module pin by using a scoring algorithm in consideration of the degree of non-congestion. By using the scoring algorithm in consideration of the degree of non-congestion in this way, efficient design in consideration of the influence of crosstalk noise between wirings becomes possible. These processes will be described in detail below.

図16は、移動先領域決定及びモジュールピン配置位置決定処理の詳細を示すフローチャートである。図16において、各モジュールピンに関する紐付け処理(図8に示すステップS13と同一)の後、ステップS21で、領域決定部22が、各モジュールピンの配置位置が適切であるか否かを、3点間評価により判断する。モジュールピンの配置位置が適切である場合には、当該モジュールピンに関する処理を終了する。モジュールピンの配置位置が適切でない場合には、ステップS22に処理が進む。ステップS22において、領域決定部22が、当該モジュールピンの移動先領域を3点間評価により決定する。 FIG. 16 is a flowchart showing details of the movement destination area determination and the module pin arrangement position determination process. In FIG. 16, after the associating process for each module pin (same as step S13 shown in FIG. 8), in step S21, the area determination unit 22 determines whether or not the arrangement position of each module pin is appropriate. Judgment is made by point-to-point evaluation. If the position of the module pin is appropriate, the process related to the module pin is terminated. If the position of the module pin is not appropriate, the process proceeds to step S22. In step S22, the area determination unit 22 determines the destination area of the module pin by a three-point evaluation.

図17は、3点間評価により特定される所望のモジュールピン配置領域の一例を示す図である。 FIG. 17 is a diagram showing an example of a desired module pin arrangement region specified by a three-point evaluation.

図17において、ブロック間の境界であるブロックの辺15を跨ぐパス(図示せず)が存在し、当該パスの両端にフリップフロップFF1とフリップフロップFF2とが接続される。各フリップフロップの位置は、各フリップフロップが占める矩形領域の左下コーナー位置により規定される。フリップフロップFF1とフリップフロップFF2とを最短マンハッタン距離(L1距離)で結ぶ任意の経路が存在する範囲は、図17に示す矩形領域A2に一致する。またフリップフロップFF2に接続されるフリップフロップFF3についても、フリップフロップFF1との間での最短マンハッタン距離を考慮する。フリップフロップFF1とフリップフロップFF3とを最短マンハッタン距離で結ぶ任意の経路が存在する範囲は、図17に示す矩形領域A3に一致する。これらの矩形領域A2と矩形領域A3とが重なる領域は、矩形領域A2に等しい。 In FIG. 17, there is a path (not shown) that straddles the side 15 of the block, which is a boundary between blocks, and the flip-flop FF1 and the flip-flop FF2 are connected to both ends of the path. The position of each flip-flop is defined by the position of the lower left corner of the rectangular area occupied by each flip-flop. The range in which an arbitrary path connecting the flip-flop FF1 and the flip-flop FF2 with the shortest Manhattan distance (L1 distance) exists corresponds to the rectangular region A2 shown in FIG. Also, for the flip-flop FF3 connected to the flip-flop FF2, the shortest Manhattan distance from the flip-flop FF1 is considered. The range in which an arbitrary path connecting the flip-flop FF1 and the flip-flop FF3 with the shortest Manhattan distance exists corresponds to the rectangular region A3 shown in FIG. The area where these rectangular areas A2 and the rectangular area A3 overlap is equal to the rectangular area A2.

この矩形領域A2内に存在する辺15上の範囲15Bが、3点間評価により決定された所望のモジュールピン配置領域、即ちモジュールピン11の配置位置が適切である座標領域となる。図17に示されるようにモジュールピン11が所望の座標範囲15Bに属していないとき、領域決定部22は、着目モジュールピン11が適切な位置にないと判断する。このとき領域決定部22は、モジュールピン11の移動先領域として、座標範囲15Bを選択する。 The range 15B on the side 15 existing in the rectangular region A2 is a desired module pin arrangement region determined by the evaluation between three points, that is, a coordinate region in which the arrangement position of the module pin 11 is appropriate. When the module pin 11 does not belong to the desired coordinate range 15B as shown in FIG. 17, the region determination unit 22 determines that the module pin 11 of interest is not in an appropriate position. At this time, the area determination unit 22 selects the coordinate range 15B as the movement destination area of the module pin 11.

この座標範囲15Bの定義について、別の言葉で説明すると以下のようになる。まず第1のフリップフロップFF1と第2のフリップフロップFF2とを最短マンハッタン距離で結ぶ経路上の点が辺15上に存在する第1の範囲を特定する。更に、第1のフリップフロップFF1と第3のフリップフロップFF3とを最短マンハッタン距離で結ぶ経路上の点が辺15上に存在する第2の範囲を特定する。これら第1の範囲と第2の範囲との間で、重なる範囲に相当する座標領域15Bが、所望のモジュールピン配置領域(移動先領域)となる。この移動先領域内にモジュールピンを移動することになる。 The definition of the coordinate range 15B can be explained in other words as follows. First, a first range in which a point on the path connecting the first flip-flop FF1 and the second flip-flop FF2 with the shortest Manhattan distance exists on the side 15 is specified. Further, a second range in which a point on the path connecting the first flip-flop FF1 and the third flip-flop FF3 with the shortest Manhattan distance exists on the side 15 is specified. The coordinate area 15B corresponding to the overlapping range between the first range and the second range becomes a desired module pin arrangement area (movement destination area). The module pin will be moved within this destination area.

図18は、3点間評価により特定される所望のモジュールピン配置領域の別の一例を示す図である。 FIG. 18 is a diagram showing another example of a desired module pin arrangement region specified by a three-point evaluation.

図18において、フリップフロップFF1とフリップフロップFF2とを最短マンハッタン距離(L1距離)で結ぶ任意の経路が存在する範囲は、矩形領域A2に一致する。またフリップフロップFF1とフリップフロップFF3とを最短マンハッタン距離で結ぶ任意の経路が存在する範囲は、図18に示す矩形領域A3に一致する。これらの矩形領域A2と矩形領域A3とが重なる領域は、矩形領域A4に等しい。この矩形領域A4内に存在する辺15上の範囲15Bが、所望のモジュールピン配置領域、即ちモジュールピン11の配置位置が適切である座標領域となる。 In FIG. 18, the range in which an arbitrary path connecting the flip-flop FF1 and the flip-flop FF2 with the shortest Manhattan distance (L1 distance) exists corresponds to the rectangular region A2. Further, the range in which an arbitrary path connecting the flip-flop FF1 and the flip-flop FF3 with the shortest Manhattan distance exists corresponds to the rectangular region A3 shown in FIG. The area where these rectangular areas A2 and the rectangular area A3 overlap is equal to the rectangular area A4. The range 15B on the side 15 existing in the rectangular area A4 is a desired module pin arrangement area, that is, a coordinate area in which the arrangement position of the module pin 11 is appropriate.

なお例えば、図17や図18において、フリップフロップFF3がフリップフロップFF1よりも図面上方(Y座標値がより大きい側)に位置している場合もある。このような場合には、矩形領域A2と矩形領域A3とが重なる領域は、両矩形領域との境界線である線領域であると考え、更に、当該線領域と辺15との交点が座標領域15Bであると考えてよい。また例えば、フリップフロップFF2の出力が2個のフリップフロップFF3の入力にそれぞれ接続されている場合もある。このような場合には、2個のフリップフロップFF3について2個の矩形領域A3をそれぞれ求め、1個の矩形領域A2と2個の矩形領域A3との合計3個の矩形領域が互いに重なる矩形領域を特定し、この矩形領域を移動先領域として定めてよい。フリップフロップFF3の個数が3個以上の場合についても同様である。 For example, in FIGS. 17 and 18, the flip-flop FF3 may be located above the flip-flop FF1 in the drawing (the side where the Y coordinate value is larger). In such a case, the area where the rectangular area A2 and the rectangular area A3 overlap is considered to be a line area which is a boundary line between both rectangular areas, and further, the intersection of the line area and the side 15 is a coordinate area. It can be considered to be 15B. Further, for example, the output of the flip-flop FF2 may be connected to the inputs of the two flip-flops FF3, respectively. In such a case, two rectangular areas A3 are obtained for each of the two flip-flops FF3, and a total of three rectangular areas, one rectangular area A2 and two rectangular areas A3, overlap each other. May be specified and this rectangular area may be defined as the destination area. The same applies to the case where the number of flip-flops FF3 is 3 or more.

また図17及び図18は、境界辺が縦方向である場合(Y軸に沿った方向である場合)について説明したが、横方向である(X軸に沿った方向である)境界辺についても、同様に考えることができる。 Further, FIGS. 17 and 18 have described the case where the boundary side is in the vertical direction (the case where the boundary side is along the Y axis), but also the case where the boundary side is in the horizontal direction (the direction along the X axis). , Can be thought of in the same way.

図16に戻り、ステップS23において、領域決定部22は、モジュールピン移動対象リストを作成する。即ち、移動対象である全てのモジュールピンについて、必要な情報を含んだリストファイルを作成する。 Returning to FIG. 16, in step S23, the area determination unit 22 creates a module pin movement target list. That is, a list file containing necessary information is created for all module pins to be moved.

図19は、モジュールピン移動対象リストの一例を示す図である。図19に示す例では、1つの境界辺上に存在する移動対象である3個のモジュールピンm−pin(a)、m−pin(b)、及びm−pin(c)について、層位置、現在の座標位置、及び移動先座標領域に関する情報がリストに示されている。 FIG. 19 is a diagram showing an example of a module pin movement target list. In the example shown in FIG. 19, the layer positions of the three module pins m-pin (a), m-pin (b), and m-pin (c) that are moving targets existing on one boundary edge, Information about the current coordinate position and the destination coordinate area is shown in the list.

次に図16のステップS24において、移動先決定部23が、点数化アルゴリズムによりモジュールピンの移動先を決定する。具体的には、移動先決定部23は、モジュールピンを移動する移動先の候補位置について配線の非混雑度を示す点数を計算し、当該点数に応じてモジュールピンを移動する移動先を決定する。 Next, in step S24 of FIG. 16, the movement destination determination unit 23 determines the movement destination of the module pin by the scoring algorithm. Specifically, the move destination determination unit 23 calculates a score indicating the degree of non-congestion of the wiring for the candidate position of the move destination to move the module pin, and determines the move destination to move the module pin according to the score. ..

図20は、点数化アルゴリズムに基づくモジュールピン移動先決定処理の手順の一例を示すフローチャートである。ステップS31において、移動先決定部23は、移動対象リストからモジュールピンを選択する。即ち移動先決定部23は、例えば図19に示すモジュールピン移動対象リストから1つの移動対象モジュールピンを選択する。 FIG. 20 is a flowchart showing an example of the procedure of the module pin movement destination determination process based on the scoring algorithm. In step S31, the move destination determination unit 23 selects a module pin from the move target list. That is, the movement destination determination unit 23 selects one movement target module pin from the module pin movement target list shown in FIG. 19, for example.

ステップS32において、移動先決定部23は、着目している境界辺上において移動対象モジュールピンを全て除外する。即ち、移動対象モジュールピンの現在の配線位置は、モジュールピンが存在しておらず、移動先候補として使用可能な位置であるとして取り扱う。これについては後程、具体的に説明する。ステップS33において、移動先決定部23は、移動先領域内で配線可能箇所について非混雑度を示す点数を計算する。 In step S32, the movement destination determination unit 23 excludes all the movement target module pins on the boundary edge of interest. That is, the current wiring position of the module pin to be moved is treated as a position where the module pin does not exist and can be used as a movement destination candidate. This will be explained in detail later. In step S33, the movement destination determination unit 23 calculates a score indicating the degree of non-congestion for the wiringable location in the movement destination region.

図21は、非混雑度を計算するための4近傍について説明するための図である。図21において、配線可能箇所(モジュールピンを配置可能な箇所)として配線位置A乃至Jが示される。図21に示されるように、モジュールピンの配置候補位置Mに対して○印で示す4近傍位置、即ち候補位置Mの左2近傍と候補位置Mの右2近傍とにおける配線可能位置を、非混雑度を計算する際に考慮する。具体的には、これら4近傍の配線位置にモジュールピンが配置されているか否かに応じて点数が計算される。 FIG. 21 is a diagram for explaining four neighborhoods for calculating the degree of non-congestion. In FIG. 21, wiring positions A to J are shown as wiringable locations (locations where module pins can be arranged). As shown in FIG. 21, the 4 neighborhood positions marked with a circle with respect to the module pin placement candidate position M, that is, the wiring possible positions at the left 2 neighborhood of the candidate position M and the right 2 neighborhood of the candidate position M are not set. Consider when calculating the degree of congestion. Specifically, the points are calculated according to whether or not the module pins are arranged at the wiring positions near these four.

なお考慮する近傍位置は4近傍に限られず、例えば左3近傍と右3近傍との合計6近傍を考慮してもよい。しかしながら非混雑度を考慮するのは、配線間のクロストーク雑音や配線自由度等をモジュールピン移動先決定時に考慮するという趣旨であり、隣3番目(3つ隣)の配線位置からのクロストークの影響は無視できる程に小さい。従って、一般には4近傍のみを考慮すればよく、4近傍のみを考慮することにより計算量が少ない効率的な設計が可能となる。 The neighborhood positions to be considered are not limited to 4 neighborhoods, and for example, a total of 6 neighborhoods, that is, the left 3 neighborhood and the right 3 neighborhood may be considered. However, considering the degree of non-congestion is to consider the crosstalk noise between wirings and the degree of freedom of wiring when determining the module pin movement destination, and crosstalk from the third (three adjacent) wiring positions next to each other. The effect of is negligibly small. Therefore, in general, only the four neighborhoods need to be considered, and by considering only the four neighborhoods, an efficient design with a small amount of calculation becomes possible.

図22は、非混雑度を示す点数について説明するための図である。図22において、左2近傍(位置L1及び位置L2)と右2近傍(位置R1及び位置R2)におけるモジュールピンの有無を“1”又は“0”で示してある。“1”はピンが存在していることを示し、“0”はピンが存在していないことを示す。配置候補位置Mに対して、直近の位置(位置L1又は位置R1)にピンが存在しているときには、クロストークが大きいため、大きなペナルティー(この例では−30点)を課す。配置候補位置Mに対して、隣2番目の位置(位置L2又は位置R2)にピンが存在しているときにも、無視できないクロストークが存在し、ある程度のペナルティー(この例では−20点)を課す。その結果、4近傍におけるモジュールピンの有無を示した複数のパターンそれぞれに対して、図22に示されるような点数が求められる。満点が100点であり、最低点が0点となっている。 FIG. 22 is a diagram for explaining points indicating the degree of non-congestion. In FIG. 22, the presence / absence of the module pin in the vicinity of the left 2 (position L1 and position L2) and the vicinity of the right 2 (position R1 and position R2) is indicated by “1” or “0”. “1” indicates that the pin exists, and “0” indicates that the pin does not exist. When the pin exists at the nearest position (position L1 or position R1) with respect to the placement candidate position M, a large penalty (-30 points in this example) is imposed because the crosstalk is large. Even when the pin exists at the second position (position L2 or position R2) adjacent to the placement candidate position M, there is a non-negligible crosstalk, and a certain penalty (-20 points in this example). Imposing. As a result, a score as shown in FIG. 22 is obtained for each of the plurality of patterns indicating the presence / absence of the module pin in the vicinity of 4. The perfect score is 100 points, and the lowest score is 0 points.

図23は、非混雑度を示す点数の具体的な例について示す図である。“1”で示される位置にモジュールピンが配置されている状態において、各配線位置A乃至Jを候補位置Mとした場合の点数は、図23に示されるような点数となる。ここで配線位置Aは境界辺の端即ちブロックの角位置に相当し、このような角位置において点数は常に0点とする。また角位置の1つ隣の位置Bにおいては、図22に示すパターンに応じた点数から30点減らした点数とする。 FIG. 23 is a diagram showing a specific example of a score indicating the degree of non-congestion. When the module pin is arranged at the position indicated by "1" and each wiring position A to J is set as the candidate position M, the score is as shown in FIG. 23. Here, the wiring position A corresponds to the edge of the boundary side, that is, the corner position of the block, and the score is always 0 at such a corner position. Further, at the position B one adjacent to the corner position, the score is reduced by 30 points from the score according to the pattern shown in FIG.

図24は、図19に示すモジュールピン移動対象リストに対応する配線可能位置を示す図である。図19に示すモジュールピン移動対象リストにおいては、3個の移動対象モジュールピンの配置位置及び移動先領域は、全てがX座標値50から140の範囲にある。図24に示される例においては、X座標値が50から140の範囲において、6個のモジュールピンa乃至fが配置されている。なおモジュールピンが配置されているX座標位置のうち、50、80、及び110に配置されているモジュールピンa、b、及びcは、移動対象ピンである。 FIG. 24 is a diagram showing a wiring possible position corresponding to the module pin movement target list shown in FIG. In the module pin movement target list shown in FIG. 19, the arrangement positions and movement destination regions of the three movement target module pins are all in the range of the X coordinate values 50 to 140. In the example shown in FIG. 24, six module pins a to f are arranged in the range of the X coordinate value from 50 to 140. Of the X coordinate positions where the module pins are arranged, the module pins a, b, and c arranged at 50, 80, and 110 are movement target pins.

図25は、1つのモジュールピンに対する移動先決定処理の一例を示す図である。図20に示すフローチャートのステップS32において説明したように、移動対象のモジュールピンは全て除外して考える。従って、図25において、図24に示されていたモジュールピンa、b、及びcは除外されている。図19に示すモジュールピン移動対象リストにおけるモジュールピンm−pin(a)の場合、移動先領域のX座標は100から140の範囲である。従って、モジュールピンm−pin(a)の移動先を決定する場合には、図25に示される移動先領域PA内での点数を考慮することになる。なお図25に示す例では、全箇所において非混雑度を示す点数を示してあるが、モジュールピンが配置されていない箇所についてのみ点数を計算してもよい。 FIG. 25 is a diagram showing an example of a movement destination determination process for one module pin. As described in step S32 of the flowchart shown in FIG. 20, all module pins to be moved are excluded. Therefore, in FIG. 25, the module pins a, b, and c shown in FIG. 24 are excluded. In the case of the module pin m-pin (a) in the module pin movement target list shown in FIG. 19, the X coordinate of the movement destination region is in the range of 100 to 140. Therefore, when determining the destination of the module pin m-pin (a), the score in the destination region PA shown in FIG. 25 is taken into consideration. In the example shown in FIG. 25, the points indicating the degree of non-congestion are shown at all the points, but the points may be calculated only at the places where the module pins are not arranged.

図20に戻り、ステップS34において、移動先決定部23は、移動先領域の最高点数が所定の閾値よりも高いか否かを判断する。ここで所定の閾値は、許容可能なクロストークの影響の度合等を考慮して事前に定めた適切な閾値であってよく、例えば点数20点以下である配線可能位置は移動先としては不可であると事前に定めてよい。 Returning to FIG. 20, in step S34, the movement destination determination unit 23 determines whether or not the maximum score of the movement destination region is higher than a predetermined threshold value. Here, the predetermined threshold value may be an appropriate threshold value that is predetermined in consideration of the degree of influence of acceptable crosstalk, etc. For example, a wiringable position having a score of 20 points or less is not possible as a movement destination. It may be determined in advance that there is.

ステップS35において、移動先決定部23は、移動先領域に同一の最高点数の箇所が複数個あるか否かを判断する。同一の最高点数の箇所が複数個有る場合には、ステップS36において、移動先決定部23は、着目モジュールピンの現在の位置に最も近い位置にある最高点の座標を移動先として選択する。またステップS35において同一の最高点数の箇所が1つのみであると判断された場合には、処理はステップS36をスキップし、ステップS37に進む。ステップS37において、移動先決定部23は、モジュールピン移動先リストにおいて着目モジュールピンに対して、最高点の座標(又は1つ選択された最高点の座標)を移動先座標(X,Y)として追記する。 In step S35, the movement destination determination unit 23 determines whether or not there are a plurality of locations having the same maximum score in the movement destination region. When there are a plurality of locations having the same maximum score, in step S36, the movement destination determination unit 23 selects the coordinates of the highest point closest to the current position of the module pin of interest as the movement destination. If it is determined in step S35 that there is only one portion having the same maximum score, the process skips step S36 and proceeds to step S37. In step S37, the move destination determination unit 23 sets the coordinates of the highest point (or the coordinates of one selected highest point) as the move destination coordinates (X, Y) with respect to the module pin of interest in the module pin move destination list. Append.

図25に示す例では移動先領域PA内で空いている配線可能位置の点数のうち、最高点数はX座標140における70点であり、この点数は閾値20点よりも高く、また最高点数は1つしか存在しない。従ってこのX座標140の位置が、着目モジュールピンaを移動する移動先となる。 In the example shown in FIG. 25, among the points of the vacant wiringable positions in the movement destination area PA, the maximum score is 70 points at the X coordinate 140, and this score is higher than the threshold value of 20 points, and the maximum score is 1. There is only one. Therefore, the position of the X coordinate 140 is the destination for moving the module pin a of interest.

図20のステップS39で、移動先決定部23は、移動不可と判断されたモジュールピン以外で移動先が未決定のモジュールピンがあるか否かを判断する。移動先未決定のモジュールピンが存在する場合には、ステップS31に戻り、次のモジュールピンに対して上記と同様の処理を実行する。 In step S39 of FIG. 20, the movement destination determination unit 23 determines whether or not there is a module pin whose movement destination is undecided other than the module pin determined to be immovable. If there is a module pin whose destination has not been determined, the process returns to step S31, and the same process as described above is executed for the next module pin.

図26は、次の1つのモジュールピンに対する移動先決定処理の一例を示す図である。図26には、モジュールピンm−pin(a)をX座標140に移動して配置した状態が示されており、この状態での点数が再計算されている。図19に示すモジュールピン移動対象リストにおけるモジュールピンm−pin(b)の場合、移動先領域のX座標は50から70の範囲である。従って、モジュールピンm−pin(b)の移動先を決定する場合には、図26に示される移動先領域PB内での点数を考慮することになる。移動先領域PB内で移動可能位置の点数のうち、最高点数はX座標50における80点であり、この点数は閾値20点よりも高く、また最高点数は1つしか存在しない。従ってこのX座標50の位置が、着目モジュールピンbを移動する移動先となる。 FIG. 26 is a diagram showing an example of a move destination determination process for the next one module pin. FIG. 26 shows a state in which the module pin m-pin (a) is moved to the X coordinate 140 and arranged, and the score in this state is recalculated. In the case of the module pin m-pin (b) in the module pin movement target list shown in FIG. 19, the X coordinate of the movement destination region is in the range of 50 to 70. Therefore, when determining the destination of the module pin m-pin (b), the score in the destination region PB shown in FIG. 26 is taken into consideration. Among the points of the movable position in the movement destination area PB, the maximum score is 80 points at the X coordinate 50, and this score is higher than the threshold value of 20 points, and there is only one maximum score. Therefore, the position of the X coordinate 50 is the destination for moving the module pin b of interest.

図27は、更に次の1つのモジュールピンに対する移動先決定処理の一例を示す図である。図27には、モジュールピンm−pin(b)をX座標50に移動して配置した状態が示されており、この状態での点数が再計算されている。図19に示すモジュールピン移動対象リストにおけるモジュールピンm−pin(c)の場合、移動先領域のX座標は60から90の範囲である。従って、モジュールピンm−pin(c)の移動先を決定する場合には、図27に示される移動先領域PC内での点数を考慮することになる。移動先領域PC内で空いている配線可能位置の点数のうち、最高点数はX座標80及びX座標90における50点であり、この点数は閾値20点よりも高く、またX座標90の方がモジュールピンm−pin(c)の元のX座標110に近い。従ってこのX座標90の位置が、着目モジュールピンcを移動する移動先となる。図28は、モジュールピンm−pin(c)をX座標90に移動して配置した状態を示す。 FIG. 27 is a diagram further showing an example of the movement destination determination process for the next one module pin. FIG. 27 shows a state in which the module pin m-pin (b) is moved to the X coordinate 50 and arranged, and the score in this state is recalculated. In the case of the module pin m-pin (c) in the module pin movement target list shown in FIG. 19, the X coordinate of the movement destination region is in the range of 60 to 90. Therefore, when determining the destination of the module pin m-pin (c), the score in the destination region PC shown in FIG. 27 is taken into consideration. Among the points of vacant wiringable positions in the destination area PC, the highest points are 50 points at the X coordinate 80 and the X coordinate 90, and these points are higher than the threshold value 20 points, and the X coordinate 90 is higher. It is close to the original X coordinate 110 of the module pin m-pin (c). Therefore, the position of the X coordinate 90 is the destination for moving the module pin c of interest. FIG. 28 shows a state in which the module pin m-pin (c) is moved to the X coordinate 90 and arranged.

図29は、モジュールピン移動先リストの一例を示す図である。図29に示すモジュールピン移動先リストは、図19に示すモジュールピン移動対象リストに対して、各モジュールピンの移動先座標を追記したものである。ここで追記されている移動先座標は、図20に示すフローチャートの処理に従い決定された移動先座標である。 FIG. 29 is a diagram showing an example of a module pin movement destination list. The module pin movement destination list shown in FIG. 29 is obtained by adding the movement destination coordinates of each module pin to the module pin movement target list shown in FIG. The destination coordinates added here are the destination coordinates determined according to the processing of the flowchart shown in FIG.

図20に戻り、ステップS34において最高点数が所定の閾値以下であると判断された場合、処理はステップS38に進む。ステップS38において、移動先決定部23は、領域内移動不可リストを作成する。その後処理はステップS39に進む。ステップS39において、移動先未決定のモジュールピンが存在しないと判断された場合には、処理を終了する。 Returning to FIG. 20, when it is determined in step S34 that the maximum score is equal to or less than a predetermined threshold value, the process proceeds to step S38. In step S38, the move destination determination unit 23 creates an intra-area non-movable list. After that, the process proceeds to step S39. If it is determined in step S39 that there is no module pin whose destination has not been determined, the process ends.

図30は、最高点数が所定の閾値以下であると判断される場合の一例を示す図である。配線可能位置A乃至Jにおいて、“1”又は“0”で示されるようにモジュールピンが配置されている場合、非混雑度を示す点数は図30の最下段に示すようになる。このときモジュールピンを移動可能な位置E及び位置Gは、何れも点数が20点であり、事前に定めた閾値20点以下である。従って、図30に示されるような場合には、領域内移動不可リストが作成される。 FIG. 30 is a diagram showing an example when it is determined that the maximum score is equal to or less than a predetermined threshold value. When the module pins are arranged as indicated by "1" or "0" at the writable positions A to J, the points indicating the degree of non-congestion are shown at the bottom of FIG. At this time, the positions E and G where the module pins can be moved have a score of 20 points, which is equal to or less than a predetermined threshold value of 20 points. Therefore, in the case shown in FIG. 30, an intra-regional immovable list is created.

図31は、領域内移動不可リストの一例を示す図である。図31に示す例では、モジュールピンm−pin(a’)について、移動先領域内において移動先として適切な配線位置が存在しないと判断されたため、移動先が「無」とされる。 FIG. 31 is a diagram showing an example of an intra-regional immovable list. In the example shown in FIG. 31, since it is determined that the module pin m-pin (a') does not have an appropriate wiring position as the movement destination in the movement destination region, the movement destination is set to “none”.

以上のようにして図20に示されるフローチャートの処理が終了すると、図16のフローチャートに戻る。即ち、図16のステップS24におけるモジュールピン移動先決定処理(即ち図20に示されるフローチャートの処理)が終了し、処理はステップS25に進む。ステップS25において、移動先決定部23は、3点間領域内(モジュールピン移動先領域内)にモジュールピンを移動可能であるか否かを判断する。移動可能と判断されたモジュールピンについて、処理はステップS27に進む。移動可能でないと判断された(即ち領域内移動不可リストに該当する)モジュールピンについて、処理はステップS28に進む。 When the processing of the flowchart shown in FIG. 20 is completed as described above, the process returns to the flowchart of FIG. That is, the module pin movement destination determination process (that is, the process of the flowchart shown in FIG. 20) in step S24 of FIG. 16 is completed, and the process proceeds to step S25. In step S25, the movement destination determination unit 23 determines whether or not the module pin can be moved within the area between the three points (within the module pin movement destination area). The process proceeds to step S27 for the module pin determined to be movable. The process proceeds to step S28 for the module pin determined to be non-movable (that is, corresponding to the intra-region non-movable list).

ステップS28において、移動先決定部23は、3点間領域内(モジュールピン移動先領域内)に上層移動で対応可能か否かを判断する。LSIには、複数の配線層が設けられており、上層にいくほど配線幅が太くなり、信号伝達速度が速い層となる。移動対象モジュールピンが現在配置されている層において前述のように移動先を探した結果、移動先が見つからない場合には、現在配置されている層の2つ上の層において同様に移動先を探す。ここでLSIの階層構造においては、X方向配線層及びY方向配線層が交互に並ぶように積層されているので、モジュールピンを上層に移動する場合には、1層上ではなく2層上において移動先を探すことになる。 In step S28, the movement destination determination unit 23 determines whether or not the upper layer can be moved within the area between the three points (in the module pin movement destination area). The LSI is provided with a plurality of wiring layers, and the wiring width becomes thicker toward the upper layer, and the layer becomes a layer having a high signal transmission speed. If the move destination is not found as a result of searching for the move destination in the layer where the module pin to be moved is currently placed as described above, the move destination is similarly set in the layer two layers above the currently placed layer. look for. Here, in the hierarchical structure of the LSI, since the X-direction wiring layers and the Y-direction wiring layers are laminated so as to be arranged alternately, when the module pin is moved to the upper layer, it is not on the first layer but on the second layer. You will be looking for a destination.

図32は、層位置が上層に移動された領域内移動不可リストの一例を示す図である。移動先決定部23は、図31に示される領域内移動不可リストにおいて層位置を示す数値を2増加させることにより、図32に示されるリストを作成する。これにより、移動対象モジュールピンの移動先を探索すべき移動先領域が、第6層から2層上の第8層に移動される。 FIG. 32 is a diagram showing an example of an in-region immovable list in which the layer position has been moved to the upper layer. The movement destination determination unit 23 creates the list shown in FIG. 32 by increasing the numerical value indicating the layer position by 2 in the in-region non-movable list shown in FIG. 31. As a result, the movement destination region for searching the movement destination of the movement target module pin is moved from the sixth layer to the eighth layer two layers above.

図33は、上層でのモジュールピンに対する移動先決定処理の一例を示す図である。図32のリストに示されるモジュールピンm−pin(a’)の場合、移動先領域のX座標は80から170の範囲である。図33には、元の第6層の2つ上にある第8層において、X座標80から170の範囲における非混雑度を示す点数が示される。この移動先領域における点数のうち、最高点数はX座標80における80点であり、この点数は閾値20点よりも高く、また最高点数は1つしか存在しない。従ってこの位置が、モジュールピンm−pin(a’)を移動する移動先となる。図34は、モジュールピンm−pin(a’)をX座標80に移動した後の状態を示す図である。移動先決定部23は、図32に示すリストにおいて移動先情報として移動先の座標値(X,Y)を挿入することにより、モジュールピン移動先リストを作成する。 FIG. 33 is a diagram showing an example of the movement destination determination process for the module pin in the upper layer. In the case of the module pin m-pin (a') shown in the list of FIG. 32, the X coordinate of the destination region is in the range of 80 to 170. FIG. 33 shows a score indicating the degree of non-congestion in the range of X coordinates 80 to 170 in the eighth layer, which is two layers above the original sixth layer. Among the points in the movement destination region, the maximum score is 80 points at the X coordinate 80, and this score is higher than the threshold value of 20 points, and there is only one maximum score. Therefore, this position is the destination for moving the module pin m-pin (a'). FIG. 34 is a diagram showing a state after the module pin m-pin (a') is moved to the X coordinate 80. The move destination determination unit 23 creates a module pin move destination list by inserting the coordinate values (X, Y) of the move destination as the move destination information in the list shown in FIG. 32.

このようにして、移動先領域内に存在する全ての候補位置について点数が所定の点数以下である場合、モジュールピンが現在配置される層よりも上層での移動先領域内において移動先を探す。前述のように配線層は上層にいくほど配線幅が太くなり、信号伝達速度が速くなる。従って、モジュールピンの移動先を探す際に、上層を探索対象に含めることにより、よりタイミング的に好条件である上層の空きスペースを利用して、タイミング的に有利なモジュールピン移動が可能となる。 In this way, when the points are equal to or less than the predetermined points for all the candidate positions existing in the movement destination area, the movement destination is searched for in the movement destination area above the layer where the module pin is currently arranged. As described above, the higher the wiring layer, the wider the wiring width and the faster the signal transmission speed. Therefore, by including the upper layer in the search target when searching for the movement destination of the module pin, it is possible to move the module pin which is advantageous in terms of timing by utilizing the empty space of the upper layer, which is a more favorable condition in terms of timing. ..

図35は、移動先の上層への移動が可能であるか否かを示す表である。配線層の階層が全部で13層である場合、図35に示されるように、第12層と第13層とについては、移動先を更なる上層に移動することができない。また図33に示されるように上層での移動先領域において非混雑度を示す点数をチェックした結果、適切な移動先が存在しないことが判明した場合には上層に移動することができない。 FIG. 35 is a table showing whether or not the movement destination can be moved to the upper layer. When the number of layers of the wiring layer is 13 in total, as shown in FIG. 35, the destination of the 12th layer and the 13th layer cannot be moved to a further upper layer. Further, as shown in FIG. 33, if it is found that there is no appropriate destination as a result of checking the score indicating the degree of non-congestion in the destination region in the upper layer, it is not possible to move to the upper layer.

上記のように上層に移動することができない場合には、図16のステップS26でNO判定となり、処理はステップS28に進む。ステップS28において、移動先決定部23は、移動先領域に最も近い領域外の移動可能位置を移動先とし、モジュールピンを当該移動先に移動する。 If it is not possible to move to the upper layer as described above, a NO determination is made in step S26 of FIG. 16, and the process proceeds to step S28. In step S28, the movement destination determination unit 23 moves the module pin to the movement destination with the movable position outside the area closest to the movement destination area as the movement destination.

このように上層の移動先領域内において、点数が所定の点数より大きな移動先が存在しない場合、モジュールピンが現在配置される層において、移動先領域の外であって移動先領域に最も近い位置にモジュールピンを移動する。これにより、3点間評価により求められた所望の移動先領域内にモジュールピンを移動できない場合であっても、現在の初期配置位置よりも好条件の位置にモジュールピンを移動することが可能となる。従って、初期条件よりは好条件であるモジュールピン配置状態を実現することができる。 In this way, when there is no destination with a score higher than the predetermined score in the destination region of the upper layer, the position outside the destination region and closest to the destination region in the layer where the module pin is currently arranged. Move the module pin to. This makes it possible to move the module pin to a position in better condition than the current initial placement position even when the module pin cannot be moved within the desired movement destination area obtained by the three-point evaluation. Become. Therefore, it is possible to realize a module pin arrangement state that is a better condition than the initial condition.

ステップS26でYESと判定された場合には、処理はステップS27に進む。ステップS27で、移動先決定部23は、図32のリストに基づいて作成したモジュールピン移動先リストを図29に示すモジュールピン移動先リストに追加し、更にチップに基づく座標値からブロック内の座標値に変換し、モジュールピン移動リストを作成する。 If YES is determined in step S26, the process proceeds to step S27. In step S27, the movement destination determination unit 23 adds the module pin movement destination list created based on the list of FIG. 32 to the module pin movement destination list shown in FIG. 29, and further, the coordinates in the block from the coordinate values based on the chip. Convert to a value and create a module pin move list.

図36は、モジュールピン移動リストの一例を示す図である。モジュールピン移動リストには、移動すべきモジュールピンの名称、移動先の層、及び移動先の座標値が示される。なおステップS28で決定した移動先(移動先領域外に設定された移動先)を有するモジュールピンについても、このモジュールピン移動リストに加えてよい。移動先決定部23は、モジュールピン移動リストに基づいて、移動対象モジュールピンを移動する。 FIG. 36 is a diagram showing an example of a module pin movement list. The module pin movement list shows the name of the module pin to be moved, the destination layer, and the coordinate value of the destination. Note that the module pin having the movement destination (movement destination set outside the movement destination area) determined in step S28 may also be added to this module pin movement list. The movement destination determination unit 23 moves the movement target module pin based on the module pin movement list.

以上により図16に示されるフローチャートの処理が終了すると、図8のフローチャートに戻る。図16のフローチャートの処理によりモジュールピンが初期配置位置から適宜移動されて適切な位置に配置されると、次にステップS16において、タイミング調整部24がブロック内タイミング調整を実行する。具体的には、ブロック内におけるタイミングチェック結果から、フリップフロップ配置位置を調整し、目標周波数を達成できる設計を実現する。なおこの段階において、接続セルや論理セルも適宜配置される。接続セルや論理セルに関して位置調整や駆動力調整を行ったり、クロストークを考慮して信号配線の位置を調整したりしてよい。 When the processing of the flowchart shown in FIG. 16 is completed as described above, the process returns to the flowchart of FIG. When the module pin is appropriately moved from the initial arrangement position and arranged at an appropriate position by the processing of the flowchart of FIG. 16, the timing adjustment unit 24 then executes the in-block timing adjustment in step S16. Specifically, the flip-flop placement position is adjusted based on the timing check result in the block, and a design capable of achieving the target frequency is realized. At this stage, connection cells and logical cells are also arranged as appropriate. Position adjustment and driving force adjustment may be performed on the connection cell and the logic cell, and the position of the signal wiring may be adjusted in consideration of crosstalk.

ステップS17において、タイミング調整部24は、各ブロックにおいて、各ブロック内での信号伝達動作が問題なく実行されるか否かをチェックする。チェックの結果問題があれば、ステップS16に戻りブロック内タイミング調整を続行する。チェックの結果がOKであれば、ステップS18に進む。 In step S17, the timing adjusting unit 24 checks whether or not the signal transmission operation in each block is executed without any problem in each block. If there is a problem as a result of the check, the process returns to step S16 and the timing adjustment in the block is continued. If the result of the check is OK, the process proceeds to step S18.

ステップS18において、タイミング調整部24は、ブロック間のタイミングに着目し、ブロック間におけるタイミング調整を実行する。具体的には、接続セルや論理セルに関して位置調整や駆動力調整を行ったり、クロストークを考慮して信号配線の位置を調整したりすることにより、ブロック間を伝達する信号に関して、目標周波数を達成できる設計を実現する。 In step S18, the timing adjustment unit 24 pays attention to the timing between blocks and executes the timing adjustment between blocks. Specifically, the target frequency is set for the signal transmitted between blocks by adjusting the position and driving force of the connecting cell and logic cell, and adjusting the position of the signal wiring in consideration of crosstalk. Achieve an achievable design.

ステップS19において、タイミング調整部24は、ブロック間での信号伝達動作が問題なく実行されるか否かをチェックする。チェックの結果問題があれば、ステップS18に戻り、ブロック間タイミング調整を続行する。チェックの結果がOKであれば、処理を終了する。 In step S19, the timing adjusting unit 24 checks whether or not the signal transmission operation between the blocks is executed without any problem. If there is a problem as a result of the check, the process returns to step S18 and the interblock timing adjustment is continued. If the result of the check is OK, the process ends.

以上説明したモジュールピン移動処理を、1つのモジュールピンに着目し、以下に簡潔に纏めて説明する。 The module pin movement process described above will be briefly described below, focusing on one module pin.

図37は、モジュールピンと3個のフリップフロップとの配置の一例を示す図である。X軸方向に延びるブロック間の境界辺15上においてX座標50の位置にモジュールピン11(名称m−pin(a))が初期配置されている。このモジュールピン11にフリップフロップFF1が出力信号を供給し、モジュールピン11からフリップフロップFF2が入力信号を受け取る。フリップフロップFF3は、フリップフロップFF2が出力する信号を入力信号として受け取る。これらのモジュールピン11及び3個のフリップフロップが、ネットリスト上で特定され、紐付けされる。 FIG. 37 is a diagram showing an example of the arrangement of the module pin and the three flip-flops. A module pin 11 (named m-pin (a)) is initially arranged at the position of the X coordinate 50 on the boundary side 15 between blocks extending in the X-axis direction. The flip-flop FF1 supplies an output signal to the module pin 11, and the flip-flop FF2 receives an input signal from the module pin 11. The flip-flop FF3 receives a signal output by the flip-flop FF2 as an input signal. These module pins 11 and 3 flip-flops are identified and associated on the netlist.

図38は、3点間評価により特定される移動先領域の一例を示す図である。フリップフロップFF1とフリップフロップFF2とを最短マンハッタン距離(L1距離)で結ぶ任意の経路が存在する範囲は、矩形領域A2に一致する。またフリップフロップFF1とフリップフロップFF3とを最短マンハッタン距離で結ぶ任意の経路が存在する範囲は、矩形領域A3に一致する。これらの矩形領域A2と矩形領域A3とが重なる領域は、矩形領域A4に等しい。この矩形領域A4内に存在する辺15上の範囲15Bが、モジュールピン11の移動先領域となる。図38に示す例では、モジュールピン11の初期配置位置はX座標50であり、移動先領域がX座標100からX座標140の範囲である。 FIG. 38 is a diagram showing an example of a destination region specified by a three-point evaluation. The range in which an arbitrary path connecting the flip-flop FF1 and the flip-flop FF2 with the shortest Manhattan distance (L1 distance) exists corresponds to the rectangular region A2. Further, the range in which an arbitrary path connecting the flip-flop FF1 and the flip-flop FF3 with the shortest Manhattan distance exists corresponds to the rectangular region A3. The area where these rectangular areas A2 and the rectangular area A3 overlap is equal to the rectangular area A4. The range 15B on the side 15 existing in the rectangular area A4 is the movement destination area of the module pin 11. In the example shown in FIG. 38, the initial arrangement position of the module pin 11 is the X coordinate 50, and the movement destination region is in the range of the X coordinate 100 to the X coordinate 140.

図39は、移動対象リストの一例を示す図である。図38に示す例においてモジュールピン11の初期配置位置はX座標50であり、移動先領域の外にあるため、図39に示す移動対象リストが作成される。移動対象リストには、モジュールピンの名称、モジュールピンが配置される層が何層目かを示す情報、現在の座標位置、及び移動先領域(座標領域)が示される。 FIG. 39 is a diagram showing an example of a movement target list. In the example shown in FIG. 38, the initial arrangement position of the module pin 11 is the X coordinate 50 and is outside the movement destination region, so that the movement target list shown in FIG. 39 is created. In the movement target list, the name of the module pin, information indicating the number of layers in which the module pin is arranged, the current coordinate position, and the movement destination area (coordinate area) are shown.

図40は、モジュールピンに対する移動先決定処理の一例を示す図である。移動対象のモジュールピンは全て除外して考えるので、図40において、モジュールピンa(m−pin(a))は除外されている。図39に示すモジュールピン移動対象リストにおいて、移動先領域のX座標は100から140の範囲である。従って、モジュールピンm−pin(a)の移動先を決定する場合には、図40に示される移動先領域PA内での点数を考慮することになる。移動先領域PA内で空いている配線可能位置の点数のうち、最高点数はX座標140における70点であり、この点数は閾値20点よりも高く、また最高点数は1つしか存在しない。従ってこのX座標140の位置が、着目モジュールピンm−pin(a)を移動する移動先となる。 FIG. 40 is a diagram showing an example of a movement destination determination process for a module pin. Since all the module pins to be moved are excluded, the module pin a (m-pin (a)) is excluded in FIG. 40. In the module pin movement target list shown in FIG. 39, the X coordinate of the movement destination region is in the range of 100 to 140. Therefore, when determining the destination of the module pin m-pin (a), the score in the destination region PA shown in FIG. 40 is taken into consideration. Among the points of vacant wiringable positions in the movement destination area PA, the highest point is 70 points at the X coordinate 140, and this point is higher than the threshold value of 20 points, and there is only one maximum point. Therefore, the position of the X coordinate 140 is the destination for moving the module pin m-pin (a) of interest.

図41は移動先リストの一例を示す図である。図40に示されるようにモジュールピンm−pin(a)を移動する移動先がX座標140に決定されると、図39に示される移動対象リストに対して移動先座標(X座標140)に関する情報を追加することにより、図41に示される移動先リストが作成される。 FIG. 41 is a diagram showing an example of a movement destination list. When the movement destination for moving the module pin m-pin (a) is determined to be the X coordinate 140 as shown in FIG. 40, the movement destination coordinate (X coordinate 140) is related to the movement target list shown in FIG. 39. By adding the information, the destination list shown in FIG. 41 is created.

図42は、移動リストの一例を示す図である。図41に示される移動先リストに含まれる情報のうち、モジュールピンの名称、移動先の層、及び移動先の座標値に関する情報を抜き出して、これらの情報を含む移動リストを作成する。この際、移動先の座標値は、チップ内での絶対的な座標値から各ブロックの基準点(左下コーナー)を原点とするブロック内座標値に変換される。その結果、移動リストには、移動するモジュールピンの名称、移動先の層、及び移動先のブロック内座標値が示される。 FIG. 42 is a diagram showing an example of a movement list. From the information included in the movement destination list shown in FIG. 41, information regarding the module pin name, the movement destination layer, and the movement destination coordinate value is extracted, and a movement list including these information is created. At this time, the coordinate value of the movement destination is converted from the absolute coordinate value in the chip to the coordinate value in the block whose origin is the reference point (lower left corner) of each block. As a result, the move list shows the name of the module pin to move, the layer to move to, and the coordinate values in the block to move to.

図43は、モジュールピン移動の一例を示す図である。図42に示される移動リストに基づいて、図38に示されるモジュールピン11(移動前のX座標値50)が、矢印30に示されるようにX座標値140に移動される。以上により、図8に示すフローチャートのステップS13乃至S15に示されるモジュールピンの移動処理が完了する。 FIG. 43 is a diagram showing an example of module pin movement. Based on the movement list shown in FIG. 42, the module pin 11 (X coordinate value 50 before movement) shown in FIG. 38 is moved to the X coordinate value 140 as shown by the arrow 30. As a result, the module pin movement process shown in steps S13 to S15 of the flowchart shown in FIG. 8 is completed.

以上説明したように、本発明の回路設計方法によれば、接続先が未特定な状態で決定された配置位置等を含む充分に考慮されていない初期配置状態にあるモジュールピンに対して、より適切な位置にモジュールピンを移動する。この際、信号のタイミングをチェックすることなく、モジュールピンに接続される3個以上のフリップフロップの位置及び配線の非混雑度に基づいて、モジュールピンの配置位置を調整する。これにより、設計後期段階におけるブロック間タイミング調整において、設計が略完了していた領域に存在するモジュールピンやフリップフロップを移動することが不必要となる。従って、設計が略完了していた状態からのタイミング調整のやり直しがなくなるとともに、セットアップタイミングやホールドタイミングの悪化を防ぐことができる。これにより、開発設計工程の増加を回避することができる。 As described above, according to the circuit design method of the present invention, the module pin in the initial arrangement state, which includes the arrangement position determined in the unspecified state of the connection destination, is not sufficiently considered. Move the module pin to the proper position. At this time, the arrangement position of the module pin is adjusted based on the position of three or more flip-flops connected to the module pin and the degree of non-congestion of the wiring without checking the signal timing. This makes it unnecessary to move the module pins and flip-flops existing in the region where the design has been substantially completed in the inter-block timing adjustment in the latter stage of the design. Therefore, it is possible to prevent the timing adjustment from being redone from the state in which the design has been substantially completed, and to prevent deterioration of the setup timing and the hold timing. As a result, it is possible to avoid an increase in the development and design process.

図44は、関連技術における回路設計方法における移動対象モジュールピンを説明する図である。図44に示す例では、ブロック間の境界辺15上の配線可能位置A乃至Kのそれぞれにモジュールピンが配置されている。これらのモジュールピンのうち点線枠内に示されるモジュールピンが、ブロック間タイミングチェックでNG(所望の動作周波数条件を満たさない)と判定されたモジュールピンであるとする。また黒丸で示されるモジュールピンが、図6に示されるような2点間評価に基づいて移動領域内に存在しないと判定されたモジュールピンであるとする。図1に示す関連技術における回路設計方法では、移動対象となるモジュールピンは、ブロック間タイミングチェックでNGと判定されたモジュールピンのみである。そのようなモジュールピンのうちで更に、移動領域内に存在しないモジュールピンが実際の移動対象となる。 FIG. 44 is a diagram illustrating a moving target module pin in a circuit design method in a related technique. In the example shown in FIG. 44, module pins are arranged at the writable positions A to K on the boundary side 15 between the blocks. It is assumed that the module pin shown in the dotted line frame among these module pins is a module pin determined to be NG (does not satisfy the desired operating frequency condition) by the inter-block timing check. Further, it is assumed that the module pin indicated by the black circle is a module pin determined not to exist in the moving region based on the evaluation between two points as shown in FIG. In the circuit design method in the related technique shown in FIG. 1, the module pin to be moved is only the module pin determined to be NG by the inter-block timing check. Among such module pins, module pins that do not exist in the movement area are actually movement targets.

図45は、本発明の回路設計方法における移動対象モジュールピンを説明する図である。点線枠内に示されるモジュールピンがブロック間タイミングチェックでNG条件に相当するモジュールピンであり、黒丸で示されるモジュールピンが3点間評価に基づいて移動領域内に存在しないと判定されたモジュールピンである。本発明の回路設計方法では、信号のタイミングをチェックすることなく、3点評価に基づいて、モジュールピンの配置位置を調整する。従って、ブロック間タイミングチェックでNG条件に相当するモジュールピンただけでなく、タイミング的に問題がないモジュールピンも含め、移動領域外に存在する全てのモジュールピンが移動対象となる。このようにブロック間タイミングチェック前に、3点間評価に基づいてモジュールピン位置を事前に調整しておくため、ブロック間タイミングチェックの段階におけるフリップフロップの移動が不要となり、開発設計工程の増加を避けることができる。 FIG. 45 is a diagram illustrating a moving target module pin in the circuit design method of the present invention. The module pin shown in the dotted line frame is the module pin corresponding to the NG condition in the inter-block timing check, and the module pin indicated by the black circle is the module pin determined not to exist in the moving area based on the evaluation between three points. Is. In the circuit design method of the present invention, the arrangement position of the module pin is adjusted based on the three-point evaluation without checking the signal timing. Therefore, not only the module pins corresponding to the NG condition in the inter-block timing check, but also all the module pins existing outside the moving area including the module pins having no timing problem are the moving targets. In this way, since the module pin position is adjusted in advance based on the evaluation between three points before the timing check between blocks, it is not necessary to move the flip-flop at the stage of timing check between blocks, which increases the development and design process. Can be avoided.

図46は、モジュールピンの移動先領域を特定する際に考慮するフリップフロップの段数とモジュールピンの配置誤差及び計算量との関係を示す図である。図46において横軸は、モジュールピンの移動先領域を特定する際に考慮するフリップフロップの段数を示し、縦軸は、モジュールピンの配置誤差及び移動先領域計算時の計算量を示す。図46において、特性曲線41は配置誤差を示し、特性曲線42は計算量を示す。 FIG. 46 is a diagram showing the relationship between the number of flip-flop stages considered when specifying the movement destination region of the module pin, the arrangement error of the module pin, and the calculation amount. In FIG. 46, the horizontal axis shows the number of flip-flop stages to be considered when specifying the movement destination area of the module pin, and the vertical axis shows the arrangement error of the module pin and the calculation amount at the time of calculating the movement destination area. In FIG. 46, the characteristic curve 41 shows the placement error, and the characteristic curve 42 shows the amount of calculation.

着目モジュールピンに直接に接続される2個のフリップフロップのみを考慮する場合、即ち関連技術における図6に示される2点評価の場合、考慮するフリップフロップの段数は2である。また本発明における図17や図18に示される3点評価の場合、考慮するフリップフロップの段数は3である。本発明においては、フリップフロップの段数は必ずしも3である必要はなく、例えば4段以上であってもよい。しかしながら、段数の増加に伴う計算量の増加についても考慮する必要がある。 When considering only two flip-flops directly connected to the module pin of interest, that is, in the case of the two-point evaluation shown in FIG. 6 in the related technique, the number of flip-flop stages to be considered is two. Further, in the case of the three-point evaluation shown in FIGS. 17 and 18 in the present invention, the number of flip-flop stages to be considered is three. In the present invention, the number of flip-flop stages does not necessarily have to be 3, and may be, for example, 4 or more. However, it is also necessary to consider the increase in the amount of calculation as the number of stages increases.

図47は、分岐数と計算量との関係を示す図である。フリップフロップFF1からモジュールピンを介してフリップフロップFF2に到るパスにおいてはパスは分岐しない。しかしながらのフリップフロップFF2の出力以降においてはパスが分岐し得る。図47では、フリップフロップFF2乃至FF4各段における出力が2つに分岐される場合、即ち1個のフリップフロップの出力が2個のフリップフロップの入力に供給される場合における各段に存在するフリップフロップの個数を示してある。 FIG. 47 is a diagram showing the relationship between the number of branches and the amount of calculation. The path does not branch in the path from the flip-flop FF1 to the flip-flop FF2 via the module pin. However, after the output of the flip-flop FF2, the path may branch. In FIG. 47, the flip-flops existing in each stage when the output in each stage of the flip-flops FF2 to FF4 is branched into two, that is, when the output of one flip-flop is supplied to the inputs of the two flip-flops. The number of flip-flops is shown.

図48は、フリップフロップFF2乃至FF4の出力が2つに分岐される場合における各段に存在するパスの総数を示す図である。移動先領域計算時の計算量は、各段に存在するパスの総数に比例すると考えることができる。即ち、相対的な計算量は、3段を考慮する場合には2、4段を考慮する場合には8、5段を考慮する場合には32であると考えることができる。図46に特性曲線42として示される計算量はそのようにして計算された計算量である。 FIG. 48 is a diagram showing the total number of paths existing in each stage when the outputs of the flip-flops FF2 to FF4 are branched into two. The amount of calculation at the time of calculating the destination area can be considered to be proportional to the total number of paths existing in each stage. That is, the relative calculation amount can be considered to be 8 when considering 2 or 4 stages when considering 3 stages and 32 when considering 5 stages. The computational complexity shown as the characteristic curve 42 in FIG. 46 is the computational complexity thus calculated.

また図46に示される配置誤差は以下のようにして計算した。図1に示される関連技術における回路設計方法をある回路例に適用した場合、ブロック間タイミング調整時において、移動先領域外に配置されているモジュールピンは、モジュールピン全体の50%であった。従って、この場合の配置誤差は50%であると計算した。また図8に示される本願発明における回路設計方法を当該回路例に適用した場合、モジュールピン移動後において、元の層と同層における移動先領域内に配置されているモジュールピンは、モジュールピン全体の90%であった。また上層における移動先領域内に配置されているモジュールピンは、モジュールピン全体の8%であった。更に、移動先領域外に配置されているモジュールピンは、モジュールピン全体の2%であった。従って、この場合の配置誤差は2%であると計算した。同様に計算して求めた各段数に対する配置誤差が、特性曲線41として図46に示されている。 The placement error shown in FIG. 46 was calculated as follows. When the circuit design method in the related technique shown in FIG. 1 was applied to a certain circuit example, the module pins arranged outside the movement destination region were 50% of the total module pins at the time of adjusting the timing between blocks. Therefore, the placement error in this case was calculated to be 50%. When the circuit design method of the present invention shown in FIG. 8 is applied to the circuit example, the module pins arranged in the movement destination region in the same layer as the original layer after the module pin movement is the entire module pin. It was 90% of. Further, the module pins arranged in the movement destination region in the upper layer accounted for 8% of the total module pins. Further, the module pins arranged outside the movement destination region accounted for 2% of the total module pins. Therefore, the placement error in this case was calculated to be 2%. The arrangement error for each number of stages calculated in the same manner is shown in FIG. 46 as the characteristic curve 41.

図46から分かるように、考慮するフリップフロップの段数が3段で充分に小さな配置誤差が実現されている。一方、考慮するフリップフロップの段数が3段より多くなっても、配置誤差はそれ程変化がない一方で、計算量が急激に増加する。以上を鑑みると、考慮するフリップフロップの段数は3段とすることが好ましい。 As can be seen from FIG. 46, the number of flip-flop stages to be considered is three, and a sufficiently small arrangement error is realized. On the other hand, even if the number of flip-flop stages to be considered is more than three, the arrangement error does not change so much, but the amount of calculation increases sharply. In view of the above, the number of flip-flop stages to be considered is preferably three.

図49は、回路設計方法を実行する装置のハードウェア構成の一例を示す図である。 FIG. 49 is a diagram showing an example of the hardware configuration of the device that executes the circuit design method.

図49に示されるように、回路設計方法を実行する装置は、例えばパーソナルコンピュータやエンジニアリングワークステーション等のコンピュータにより実現される。図49の装置は、コンピュータ510と、コンピュータ510に接続されるディスプレイ装置520、通信装置523、及び入力装置よりなる。入力装置は、例えばキーボード521及びマウス522を含む。コンピュータ510は、CPU511、RAM512、ROM513、ハードディスク等の二次記憶装置514、可換媒体記憶装置515、及びインターフェース516を含む。 As shown in FIG. 49, the device that executes the circuit design method is realized by a computer such as a personal computer or an engineering workstation. The device of FIG. 49 comprises a computer 510, a display device 520 connected to the computer 510, a communication device 523, and an input device. Input devices include, for example, a keyboard 521 and a mouse 522. The computer 510 includes a CPU 511, a RAM 512, a ROM 513, a secondary storage device 514 such as a hard disk, a commutative medium storage device 515, and an interface 516.

キーボード521及びマウス522は、ユーザとのインターフェースを提供するものであり、コンピュータ510を操作するための各種コマンドや要求されたデータに対するユーザ応答等が入力される。ディスプレイ装置520は、コンピュータ510で処理された結果等を表示すると共に、コンピュータ510を操作する際にユーザとの対話を可能にするために様々なデータ表示を行う。通信装置523は、周辺装置との通信又は遠隔地との通信を行なうためのものであり、例えばモデム、ネットワークインターフェース、USB(Universal Serial Bus)等よりなる。 The keyboard 521 and the mouse 522 provide an interface with the user, and various commands for operating the computer 510, a user response to the requested data, and the like are input. The display device 520 displays the result processed by the computer 510 and displays various data in order to enable dialogue with the user when operating the computer 510. The communication device 523 is for communicating with a peripheral device or a remote place, and includes, for example, a modem, a network interface, a USB (Universal Serial Bus), and the like.

回路設計方法は、コンピュータ510が実行可能なコンピュータプログラムとして提供される。このコンピュータプログラムは、可換媒体記憶装置515に装着可能な記憶媒体Mに記憶されており、記憶媒体Mから可換媒体記憶装置515を介して、RAM512或いは二次記憶装置514にロードされる。或いは、このコンピュータプログラムは、周辺装置又は遠隔地にある記憶媒体(図示せず)に記憶されており、この記憶媒体から通信装置523及びインターフェース516を介して、RAM512或いは二次記憶装置514にロードされる。 The circuit design method is provided as a computer program that can be executed by the computer 510. This computer program is stored in a storage medium M that can be attached to the replaceable medium storage device 515, and is loaded from the storage medium M into the RAM 512 or the secondary storage device 514 via the replaceable medium storage device 515. Alternatively, the computer program is stored in a peripheral device or a remote storage medium (not shown), and is loaded from this storage medium into the RAM 512 or the secondary storage device 514 via the communication device 523 and the interface 516. Will be done.

キーボード521及び/又はマウス522を介してユーザからプログラム実行指示があると、CPU511は、記憶媒体M、周辺装置、遠隔地記憶媒体、或いは二次記憶装置514からプログラムをRAM512にロードする。CPU511は、RAM512の空き記憶空間をワークエリアとして使用して、RAM512にロードされたプログラムを実行し、適宜ユーザと対話しながら処理を進める。このときRAM512には、回路設計方法を実行するために必要となるデータとして、例えばフロアプランやネットリスト等の回路設計データが格納されていてよい。なおROM513は、コンピュータ510の基本動作を制御するための制御プログラムが格納されている。 Upon receiving a program execution instruction from the user via the keyboard 521 and / or the mouse 522, the CPU 511 loads the program from the storage medium M, the peripheral device, the remote storage medium, or the secondary storage device 514 into the RAM 512. The CPU 511 uses the free storage space of the RAM 512 as a work area to execute the program loaded in the RAM 512, and proceeds with the process while interacting with the user as appropriate. At this time, the RAM 512 may store circuit design data such as a floor plan or a netlist as data necessary for executing the circuit design method. The ROM 513 stores a control program for controlling the basic operation of the computer 510.

上記コンピュータプログラムを実行することにより、コンピュータ510が、上記各実施例で説明されたように回路設計方法を実行する。 By executing the computer program, the computer 510 executes the circuit design method as described in each of the above embodiments.

以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。 Although the present invention has been described above based on the examples, the present invention is not limited to the above examples, and various modifications can be made within the scope of the claims.

10 チップ
10A、10B、10C、10D ブロック
15 境界辺
20 要素配置部
21 紐付け部
22 領域決定部
23 移動先決定部
24 タイミング調整部
510 コンピュータ
511 CPU
512 RAM
513 ROM
514 二次記憶装置
515 可換媒体記憶装置
516 インターフェース
520 ディスプレイ装置
521 キーボード
522 マウス
523 通信装置
10 Chip 10A, 10B, 10C, 10D Block 15 Boundary side 20 Element placement part 21 Linking part 22 Area determination part 23 Movement destination determination part 24 Timing adjustment part 510 Computer 511 CPU
512 RAM
513 ROM
514 Secondary storage device 515 Convertible medium storage device 516 Interface 520 Display device 521 Keyboard 522 Mouse 523 Communication device

Claims (7)

コンピュータにより実行される回路設計方法であって、前記コンピュータが、
第1のブロックと第2のブロックとの間の境界である辺上にモジュールピンを初期配置し、
前記第1のブロック内に存在し前記モジュールピンに繋がる第1のフリップフロップと、前記第2のブロック内に存在し前記モジュールピンに繋がる第2のフリップフロップと、前記第2のブロック内に存在し前記第2のフリップフロップに繋がる第3のフリップフロップとを特定し、
前記モジュールピンを介した信号についてタイミング検証を実行する前に、前記第1のフリップフロップと前記第2のフリップフロップとを最短マンハッタン距離で結ぶ経路上の点が前記辺上に存在する第1の範囲と、前記第1のフリップフロップと前記第3のフリップフロップとを最短マンハッタン距離で結ぶ経路上の点が前記辺上に存在する第2の範囲との間で、重なる範囲に相当する座標領域内に前記モジュールピンを移動する、
ことを特徴とする回路設計方法。
A circuit design method performed by a computer, wherein the computer
Initially place the module pins on the side that is the boundary between the first block and the second block.
A first flip-flop existing in the first block and connected to the module pin, a second flip-flop existing in the second block and connected to the module pin, and a second flip-flop existing in the second block. Then, identify the third flip-flop connected to the second flip-flop,
Before performing timing verification on the signal via the module pin, a first point on the path connecting the first flip-flop and the second flip-flop with the shortest Manhattan distance exists on the side. A coordinate region corresponding to an overlapping range between a range and a second range in which a point on the path connecting the first flip-flop and the third flip-flop with the shortest Manhattan distance exists on the side. Move the module pin in
A circuit design method characterized by that.
前記モジュールピンを移動する動作は、
前記モジュールピンを移動する移動先の候補位置について配線の非混雑度を示す点数を計算し、
前記点数に応じて前記モジュールピンを移動する移動先を決定し、
決定された移動先に前記モジュールピンを移動する、
ことを含む請求項1記載の回路設計方法。
The operation of moving the module pin is
For the candidate position of the destination to move the module pin, the score indicating the degree of non-congestion of the wiring was calculated.
The destination to move the module pin is determined according to the score, and
Move the module pin to the determined destination,
The circuit design method according to claim 1, wherein the circuit design method includes the above.
前記移動先を決定する動作は、
前記座標領域内に存在する複数の候補位置について最大である前記点数が所定の点数より大きい場合、前記点数が最大である候補位置を前記移動先として決定し、
前記座標領域内に存在する全ての候補位置について前記点数が所定の点数以下である場合、前記モジュールピンが現在配置される層よりも上層での前記座標領域内において、移動先を探す、
ことを含む請求項2記載の回路設計方法。
The operation of determining the destination is
When the maximum number of points for a plurality of candidate positions existing in the coordinate region is larger than a predetermined number, the candidate position having the maximum number of points is determined as the movement destination.
When the score is equal to or less than a predetermined score for all the candidate positions existing in the coordinate region, the movement destination is searched for in the coordinate region above the layer where the module pin is currently arranged.
2. The circuit design method according to claim 2.
前記モジュールピンを移動する動作は、
前記上層の前記座標領域内において、前記点数が前記所定の点数より大きな移動先が存在する場合、前記上層における前記移動先に前記モジュールピンを移動し、
前記上層の前記座標領域内において、前記点数が前記所定の点数より大きな移動先が存在しない場合、前記モジュールピンが現在配置される層において、前記座標領域の外であって前記座標領域に最も近い位置に前記モジュールピンを移動する、
ことを含む請求項3記載の回路設計方法。
The operation of moving the module pin is
When there is a movement destination in which the score is larger than the predetermined score in the coordinate region of the upper layer, the module pin is moved to the movement destination in the upper layer.
When there is no destination in the coordinate region of the upper layer in which the score is larger than the predetermined score, the layer in which the module pin is currently arranged is outside the coordinate region and closest to the coordinate region. Move the module pin to a position,
The circuit design method according to claim 3, which includes the above.
前記点数は、前記候補位置の左2近傍と前記候補位置の右2近傍とにおける配線可能位置において他のモジュールピンが配置されているか否かに基づいて計算される点数である、請求項2乃至4いずれか一項記載の回路設計方法。 The score is a score calculated based on whether or not other module pins are arranged at the writable positions in the vicinity of the left 2 of the candidate position and the vicinity of the right 2 of the candidate position, according to claims 2 to 2. 4. The circuit design method according to any one of the items. 回路設計において、第1のブロックと第2のブロックとの間の境界である辺上にモジュールピンを初期配置し、
前記第1のブロック内に存在し前記モジュールピンに繋がる第1のフリップフロップと、前記第2のブロック内に存在し前記モジュールピンに繋がる第2のフリップフロップと、前記第2のブロック内に存在し前記第2のフリップフロップに繋がる第3のフリップフロップとを特定し、
前記モジュールピンを介した信号についてタイミング検証を実行する前に、前記第1のフリップフロップと前記第2のフリップフロップとを最短マンハッタン距離で結ぶ経路上の点が前記辺上に存在する第1の範囲と、前記第1のフリップフロップと前記第3のフリップフロップとを最短マンハッタン距離で結ぶ経路上の点が前記辺上に存在する第2の範囲との間で、重なる範囲に相当する座標領域内に前記モジュールピンを移動する、
処理をコンピュータに実行させるためのプログラム。
In the circuit design, the module pins are initially placed on the side that is the boundary between the first block and the second block.
A first flip-flop existing in the first block and connected to the module pin, a second flip-flop existing in the second block and connected to the module pin, and a second flip-flop existing in the second block. Then, identify the third flip-flop connected to the second flip-flop,
Before performing timing verification on the signal via the module pin, a first point on the path connecting the first flip-flop and the second flip-flop with the shortest Manhattan distance exists on the side. A coordinate region corresponding to an overlapping range between a range and a second range in which a point on the path connecting the first flip-flop and the third flip-flop with the shortest Manhattan distance exists on the side. Move the module pin in
A program that lets a computer perform processing.
回路設計プログラム及びデータを格納する記憶部と、
前記記憶部に格納される前記回路設計プログラム及びデータに基づいて動作する処理部と、
を含み、前記処理部が、
第1のブロックと第2のブロックとの間の境界である辺上にモジュールピンを初期配置し、
前記第1のブロック内に存在し前記モジュールピンに繋がる第1のフリップフロップと、前記第2のブロック内に存在し前記モジュールピンに繋がる第2のフリップフロップと、前記第2のブロック内に存在し前記第2のフリップフロップに繋がる第3のフリップフロップとを特定し、
前記モジュールピンを介した信号についてタイミング検証を実行する前に、前記第1のフリップフロップと前記第2のフリップフロップとを最短マンハッタン距離で結ぶ経路上の点が前記辺上に存在する第1の範囲と、前記第1のフリップフロップと前記第3のフリップフロップとを最短マンハッタン距離で結ぶ経路上の点が前記辺上に存在する第2の範囲との間で、重なる範囲に相当する座標領域内に前記モジュールピンを移動する、
ことを特徴とする情報処理装置。
A storage unit that stores circuit design programs and data,
A processing unit that operates based on the circuit design program and data stored in the storage unit, and
The processing unit includes
Initially place the module pins on the side that is the boundary between the first block and the second block.
A first flip-flop existing in the first block and connected to the module pin, a second flip-flop existing in the second block and connected to the module pin, and a second flip-flop existing in the second block. Then, identify the third flip-flop connected to the second flip-flop,
Before performing timing verification on the signal via the module pin, a first point on the path connecting the first flip-flop and the second flip-flop with the shortest Manhattan distance exists on the side. A coordinate region corresponding to an overlapping range between a range and a second range in which a point on the path connecting the first flip-flop and the third flip-flop with the shortest Manhattan distance exists on the side. Move the module pin in
An information processing device characterized by this.
JP2019135890A 2019-07-24 2019-07-24 CIRCUIT DESIGN METHOD, PROGRAM, AND INFORMATION PROCESSING DEVICE Active JP7306134B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019135890A JP7306134B2 (en) 2019-07-24 2019-07-24 CIRCUIT DESIGN METHOD, PROGRAM, AND INFORMATION PROCESSING DEVICE

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019135890A JP7306134B2 (en) 2019-07-24 2019-07-24 CIRCUIT DESIGN METHOD, PROGRAM, AND INFORMATION PROCESSING DEVICE

Publications (2)

Publication Number Publication Date
JP2021018769A true JP2021018769A (en) 2021-02-15
JP7306134B2 JP7306134B2 (en) 2023-07-11

Family

ID=74563173

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019135890A Active JP7306134B2 (en) 2019-07-24 2019-07-24 CIRCUIT DESIGN METHOD, PROGRAM, AND INFORMATION PROCESSING DEVICE

Country Status (1)

Country Link
JP (1) JP7306134B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115169276A (en) * 2022-07-22 2022-10-11 北京云枢创新软件技术有限公司 Pin area matching method based on stacking module

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02202036A (en) * 1989-01-31 1990-08-10 Matsushita Electric Ind Co Ltd Optimization of pin configuration and layout system
JP2002100678A (en) * 2000-09-21 2002-04-05 Matsushita Electric Ind Co Ltd Method for optimizing pin arrangement
JP2009020575A (en) * 2007-07-10 2009-01-29 Panasonic Corp Method and device for designing semiconductor integrated circuit
JP2011086189A (en) * 2009-10-16 2011-04-28 Renesas Electronics Corp Semiconductor device design method
US9875333B1 (en) * 2016-01-19 2018-01-23 Cadence Design Systems, Inc. Comprehensive path based analysis process

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02202036A (en) * 1989-01-31 1990-08-10 Matsushita Electric Ind Co Ltd Optimization of pin configuration and layout system
JP2002100678A (en) * 2000-09-21 2002-04-05 Matsushita Electric Ind Co Ltd Method for optimizing pin arrangement
JP2009020575A (en) * 2007-07-10 2009-01-29 Panasonic Corp Method and device for designing semiconductor integrated circuit
JP2011086189A (en) * 2009-10-16 2011-04-28 Renesas Electronics Corp Semiconductor device design method
US9875333B1 (en) * 2016-01-19 2018-01-23 Cadence Design Systems, Inc. Comprehensive path based analysis process

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115169276A (en) * 2022-07-22 2022-10-11 北京云枢创新软件技术有限公司 Pin area matching method based on stacking module

Also Published As

Publication number Publication date
JP7306134B2 (en) 2023-07-11

Similar Documents

Publication Publication Date Title
US9792396B2 (en) Method and apparatus for automatic relative placement generation for clock trees
US6298468B1 (en) Placement-based pin optimization method and apparatus for computer-aided circuit design
US7581197B2 (en) Relative positioning of circuit elements in circuit design
US8527930B2 (en) Generating and using route fix guidance
US8006213B2 (en) Optimization method of integrated circuit design for reduction of global clock load and balancing clock skew
US8028259B2 (en) Automated method and apparatus for very early validation of chip power distribution networks in semiconductor chip designs
US7185303B2 (en) Method and apparatus for laying out cells in a semiconductor device
WO2006136845A2 (en) Integrated circuit routing and compaction
US20090291512A1 (en) Semiconductor device pattern verification method, semiconductor device pattern verification program, and semiconductor device manufacturing method
US9361417B2 (en) Placement of single-bit and multi-bit flip-flops
JP3420195B2 (en) Clock wiring design method
JP2021018769A (en) Circuit design method, program and information processor
US20240119214A1 (en) Using a machine trained network during routing to account for opc cost
US8171444B2 (en) Layout design method, apparatus and storage medium
JP5326471B2 (en) Clock signal supply circuit design method, information processing apparatus, and program
JP5900540B2 (en) Layout design method and layout design support program
JP4587754B2 (en) Clock synthesis method, semiconductor device, and program
US11126770B2 (en) Method of semiconductor integrated circuit, circuit design system, and non-transitory computer-readable medium
JP3337412B2 (en) Method and apparatus for optimizing a signal line in a circuit, and a storage medium storing a program for optimizing a signal line in a circuit
JP6589533B2 (en) Layout design method and layout design apparatus for semiconductor device
JP5672341B2 (en) Layout design method, apparatus and program
US7302665B2 (en) Method and apparatus for designing a layout, and computer product
JP2000231577A (en) Part layout device and its method
JP2008283093A (en) Verification method and design program of semiconductor integrated circuit
JP2009086700A (en) Semiconductor characteristic adjustment program, semiconductor characteristic adjustment method, and semiconductor characteristic adjustment device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220407

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230612

R150 Certificate of patent or registration of utility model

Ref document number: 7306134

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150