JP2021018769A - Circuit design method, program and information processor - Google Patents
Circuit design method, program and information processor Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 103
- 238000013461 design Methods 0.000 title claims abstract description 56
- 238000012795 verification Methods 0.000 claims abstract description 5
- 238000012545 processing Methods 0.000 claims description 13
- 230000010365 information processing Effects 0.000 claims description 2
- 230000008878 coupling Effects 0.000 abstract 2
- 238000010168 coupling process Methods 0.000 abstract 2
- 238000005859 coupling reaction Methods 0.000 abstract 2
- 230000008569 process Effects 0.000 description 52
- 238000010586 diagram Methods 0.000 description 44
- 238000011156 evaluation Methods 0.000 description 21
- 238000004364 calculation method Methods 0.000 description 11
- 230000008054 signal transmission Effects 0.000 description 9
- 238000011161 development Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000012938 design process Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000008707 rearrangement Effects 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 2
- 230000006866 deterioration Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
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.
以上を鑑みると、ブロック間タイミング調整前にモジュールピンを適正な位置に配置する回路設計方法が望まれる。 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.
図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
図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
図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
図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
図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
ステップS8におけるモジュールピン移動処理では、フリップフロップFF1とフリップフロップFF2とを接続するパスに属するモジュールピン11が、辺15上の範囲15A内に存在しない場合、範囲15A内へモジュールピン11を移動する。同様の処理を、目標周波数における信号送受信が実現されていない全てのブロック間パスについて実行する。
In the module pin movement process in step S8, if the
次にステップ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
以上説明した関連技術における回路設計方法においては、設計後期段階におけるブロック間タイミング調整において、設計が略完了していた領域に存在するモジュールピンやフリップフロップを移動することが必要になる。モジュールピンを移動する場合には、移動先エリアを確保する必要があり、タイミングを満たしていた他のパスへの干渉や他のパスの移動が発生し、タイミング調整のやり直しが生じる。またフリップフロップを移動することに伴いクロックスキューが変化するため、セットアップタイミングやホールドタイミングが悪化してしまう。これらの理由により、開発設計工程が大幅に増加してしまうという問題がある。 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
図8のステップS11において、要素配置部20が、フロアプランに基づいて、RAM及びフリップフロップの配置を行う。ステップS12において、要素配置部20が、モジュールピンの配置層と配置位置とを決める。この際、要素配置部20は、RAMの入出力ピン並び、及びバス単位での昇順又は降順(バス信号線の並び順)を考慮し、またセットアップタイミングが厳しいパスについてはタイミングの早い上層を優先することにより、境界辺上にモジュールピンを初期配置する。
In step S11 of FIG. 8, the
なおモジュールピンの中には、接続セル(インバータやバッファ回路等の論理回路)を介して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
上記の紐付け処理について、図面を用いて詳細に説明する。図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
図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
図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
この矩形領域A2内に存在する辺15上の範囲15Bが、3点間評価により決定された所望のモジュールピン配置領域、即ちモジュールピン11の配置位置が適切である座標領域となる。図17に示されるようにモジュールピン11が所望の座標範囲15Bに属していないとき、領域決定部22は、着目モジュールピン11が適切な位置にないと判断する。このとき領域決定部22は、モジュールピン11の移動先領域として、座標範囲15Bを選択する。
The
この座標範囲15Bの定義について、別の言葉で説明すると以下のようになる。まず第1のフリップフロップFF1と第2のフリップフロップFF2とを最短マンハッタン距離で結ぶ経路上の点が辺15上に存在する第1の範囲を特定する。更に、第1のフリップフロップFF1と第3のフリップフロップFF3とを最短マンハッタン距離で結ぶ経路上の点が辺15上に存在する第2の範囲を特定する。これら第1の範囲と第2の範囲との間で、重なる範囲に相当する座標領域15Bが、所望のモジュールピン配置領域(移動先領域)となる。この移動先領域内にモジュールピンを移動することになる。
The definition of the coordinate
図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
なお例えば、図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
また図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
図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
図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
ステップS32において、移動先決定部23は、着目している境界辺上において移動対象モジュールピンを全て除外する。即ち、移動対象モジュールピンの現在の配線位置は、モジュールピンが存在しておらず、移動先候補として使用可能な位置であるとして取り扱う。これについては後程、具体的に説明する。ステップS33において、移動先決定部23は、移動先領域内で配線可能箇所について非混雑度を示す点数を計算する。
In step S32, the movement
図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
図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
ステップS35において、移動先決定部23は、移動先領域に同一の最高点数の箇所が複数個あるか否かを判断する。同一の最高点数の箇所が複数個有る場合には、ステップS36において、移動先決定部23は、着目モジュールピンの現在の位置に最も近い位置にある最高点の座標を移動先として選択する。またステップS35において同一の最高点数の箇所が1つのみであると判断された場合には、処理はステップS36をスキップし、ステップS37に進む。ステップS37において、移動先決定部23は、モジュールピン移動先リストにおいて着目モジュールピンに対して、最高点の座標(又は1つ選択された最高点の座標)を移動先座標(X,Y)として追記する。
In step S35, the movement
図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
図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
図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
図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
ステップS28において、移動先決定部23は、3点間領域内(モジュールピン移動先領域内)に上層移動で対応可能か否かを判断する。LSIには、複数の配線層が設けられており、上層にいくほど配線幅が太くなり、信号伝達速度が速い層となる。移動対象モジュールピンが現在配置されている層において前述のように移動先を探した結果、移動先が見つからない場合には、現在配置されている層の2つ上の層において同様に移動先を探す。ここでLSIの階層構造においては、X方向配線層及びY方向配線層が交互に並ぶように積層されているので、モジュールピンを上層に移動する場合には、1層上ではなく2層上において移動先を探すことになる。
In step S28, the movement
図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
図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
このようにして、移動先領域内に存在する全ての候補位置について点数が所定の点数以下である場合、モジュールピンが現在配置される層よりも上層での移動先領域内において移動先を探す。前述のように配線層は上層にいくほど配線幅が太くなり、信号伝達速度が速くなる。従って、モジュールピンの移動先を探す際に、上層を探索対象に含めることにより、よりタイミング的に好条件である上層の空きスペースを利用して、タイミング的に有利なモジュールピン移動が可能となる。 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
このように上層の移動先領域内において、点数が所定の点数より大きな移動先が存在しない場合、モジュールピンが現在配置される層において、移動先領域の外であって移動先領域に最も近い位置にモジュールピンを移動する。これにより、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
図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
以上により図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
ステップS17において、タイミング調整部24は、各ブロックにおいて、各ブロック内での信号伝達動作が問題なく実行されるか否かをチェックする。チェックの結果問題があれば、ステップS16に戻りブロック内タイミング調整を続行する。チェックの結果がOKであれば、ステップS18に進む。
In step S17, the
ステップS18において、タイミング調整部24は、ブロック間のタイミングに着目し、ブロック間におけるタイミング調整を実行する。具体的には、接続セルや論理セルに関して位置調整や駆動力調整を行ったり、クロストークを考慮して信号配線の位置を調整したりすることにより、ブロック間を伝達する信号に関して、目標周波数を達成できる設計を実現する。
In step S18, the
ステップS19において、タイミング調整部24は、ブロック間での信号伝達動作が問題なく実行されるか否かをチェックする。チェックの結果問題があれば、ステップS18に戻り、ブロック間タイミング調整を続行する。チェックの結果がOKであれば、処理を終了する。
In step S19, the
以上説明したモジュールピン移動処理を、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
図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
図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
図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
以上説明したように、本発明の回路設計方法によれば、接続先が未特定な状態で決定された配置位置等を含む充分に考慮されていない初期配置状態にあるモジュールピンに対して、より適切な位置にモジュールピンを移動する。この際、信号のタイミングをチェックすることなく、モジュールピンに接続される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
図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
着目モジュールピンに直接に接続される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
また図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
図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
キーボード521及びマウス522は、ユーザとのインターフェースを提供するものであり、コンピュータ510を操作するための各種コマンドや要求されたデータに対するユーザ応答等が入力される。ディスプレイ装置520は、コンピュータ510で処理された結果等を表示すると共に、コンピュータ510を操作する際にユーザとの対話を可能にするために様々なデータ表示を行う。通信装置523は、周辺装置との通信又は遠隔地との通信を行なうためのものであり、例えばモデム、ネットワークインターフェース、USB(Universal Serial Bus)等よりなる。
The
回路設計方法は、コンピュータ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
キーボード521及び/又はマウス522を介してユーザからプログラム実行指示があると、CPU511は、記憶媒体M、周辺装置、遠隔地記憶媒体、或いは二次記憶装置514からプログラムをRAM512にロードする。CPU511は、RAM512の空き記憶空間をワークエリアとして使用して、RAM512にロードされたプログラムを実行し、適宜ユーザと対話しながら処理を進める。このときRAM512には、回路設計方法を実行するために必要となるデータとして、例えばフロアプランやネットリスト等の回路設計データが格納されていてよい。なおROM513は、コンピュータ510の基本動作を制御するための制御プログラムが格納されている。
Upon receiving a program execution instruction from the user via the
上記コンピュータプログラムを実行することにより、コンピュータ510が、上記各実施例で説明されたように回路設計方法を実行する。
By executing the computer program, the
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。 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
512 RAM
513 ROM
514
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.
前記第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.
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)
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)
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 |
-
2019
- 2019-07-24 JP JP2019135890A patent/JP7306134B2/en active Active
Patent Citations (5)
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)
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 |