JP2012150631A - Design method and design device for semiconductor integrated circuit - Google Patents
Design method and design device for semiconductor integrated circuit Download PDFInfo
- Publication number
- JP2012150631A JP2012150631A JP2011008537A JP2011008537A JP2012150631A JP 2012150631 A JP2012150631 A JP 2012150631A JP 2011008537 A JP2011008537 A JP 2011008537A JP 2011008537 A JP2011008537 A JP 2011008537A JP 2012150631 A JP2012150631 A JP 2012150631A
- Authority
- JP
- Japan
- Prior art keywords
- cluster
- register
- point register
- circuit
- start point
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
Description
本発明は、半導体集積回路の分野に関し、特に半導体集積回路の設計方法および設計装置に関する。 The present invention relates to the field of semiconductor integrated circuits, and more particularly to a semiconductor integrated circuit design method and design apparatus.
従来、半導体集積回路を設計するにあたって、複雑なシステム動作を記述するためにRTL(レジスタ転送レベル、Register transfer level)のようなハードウエア記述言語が用いられていた。ところが、近年、半導体集積回路のシステム規模がまずます大きくなってきている。そのため、ハードウエア記述言語に代えて、より抽象度の高い動作レベル記述言語を用いることが求められ、動作レベル記述言語による動作合成によって回路設計を行う方法が知られている。
この場合、動作レベル記述言語で設計された回路情報は、自動タイムスケジューリングをしながらRTL記述言語による回路情報に変換される。そして、RTL記述言語に変換するにあたっては、コストを低減させるように回路規模の縮小を優先させつつ、RTL記述言語による回路情報を生成する機能があった。これにより、動作レベル記述言語によるより直観的な論理設計が可能になるとともに、半導体チップのコスト低減を図ることができた。
Conventionally, when designing a semiconductor integrated circuit, a hardware description language such as RTL (Register Transfer Level) has been used to describe complicated system operations. However, in recent years, the system scale of semiconductor integrated circuits has become increasingly larger. Therefore, it is required to use a behavior level description language having a higher abstraction instead of the hardware description language, and a method of designing a circuit by behavioral synthesis using the behavior level description language is known.
In this case, circuit information designed in the behavior level description language is converted into circuit information in the RTL description language while performing automatic time scheduling. In converting to the RTL description language, there is a function of generating circuit information in the RTL description language while giving priority to the reduction of the circuit scale so as to reduce the cost. As a result, more intuitive logic design using a behavioral description language is possible, and the cost of the semiconductor chip can be reduced.
しかしながら、従来は、RTL記述言語による回路情報を機械的に生成するに過ぎなかった。したがって、回路が高度に複雑になってくると、生成されたゲートレベルのネットリストで実際にレイアウトを行っても、適切なフロアプランが困難となることがあった。
例えば、レイアウト設計時に無駄な領域が発生したり、配線混雑が発生したりして、チップ面積が増加する場合があった。そこで、回路が複雑さを増してきても、論理合成で生成されたゲートレベルのネットリストで適切なフロアプランが行えることはもちろん、レイアウト設計時に無駄な領域が発生したり、配線混雑が発生することがない設計手法が求められるようになってきている。
However, conventionally, circuit information in RTL description language has only been generated mechanically. Therefore, when the circuit becomes highly complicated, it is sometimes difficult to perform an appropriate floor plan even if the layout is actually performed using the generated gate level netlist.
For example, there is a case where a chip area increases due to generation of a useless area at the time of layout design or generation of wiring congestion. Therefore, even if the circuit increases in complexity, an appropriate floor plan can be made with a gate-level netlist generated by logic synthesis, as well as useless areas and wiring congestion during layout design. There is a growing demand for design methods that never happen.
特許文献1(特開2001-14377号公報)には、論理合成システムが開示されている。特許文献1では、RTLフロアプラン情報を用いて機能単位でブロック領域の位置決定を行う。そして、論理合成結果後の回路をコーン単位にグループ化する。続いて、グループサイズの平均値を求め、初期グループサイズが許容範囲内か否かのチェックを行う。グループサイズの均一化を図りながら、グループサイズを許容範囲内に収めるようにグループを分割または統合する。
これにより、コーン単位に求められた遅延情報をそのまま使用することができ、また、サイズを均一化するので無駄な領域を少なくすることができる。そして、実製品に近い見積もりによって、フロアプランをやり直す頻度を少なくすることができる。
Japanese Patent Laid-Open No. 2001-14377 discloses a logic synthesis system. In
As a result, the delay information obtained in units of cones can be used as it is, and the size is made uniform, so that useless areas can be reduced. The frequency close to the actual product can reduce the frequency of redoing the floor plan.
特許文献1は、レイアウト設計時に発生する無駄な領域を無くすように論理合成ブロックを適切に分割統合している。
しかし、特許文献1の方法では、配線混雑が発生してしまい、レイアウト時に配線を確保するための領域が必要になってしまい、結果として、チップ面積の縮小が疎外されてしまうという問題が生じる。
However, in the method of
すなわち、ロジックコーンは、その始点および終点にレジスタを有する。そして、ロジックコーンを分割する場合、始点のレジスタは、分割された他のロジックコーンと共有されることになる。
ロジックコーンを分割してレイアウト設計時に発生する無駄な領域を無くしたとしても、分割されたロジックコーン同士が始点レジスタを共有してしまうと、実際のレイアウト設計時には、このレジスタと二つ以上のロジックコーンとを新たに接続する必要が発生する。
また、始点レジスタを共有するということは、分割したロジックコーンをその始点レジスタを起点にして集めなければならなくなるので、許容範囲のグループサイズに収まるようにグループの分割を行ったとしても、結局、レイアウト設計時の配置処理で集められて配置されてしまう。
さらに、タイミング収束のための修正用バッファが挿入されるので、サイズを均一化したことによるスペース効率は相当減殺されてしまう。
That is, the logic cone has registers at its start and end points. When the logic cone is divided, the starting point register is shared with the other divided logic cones.
Even if the logic cone is divided and the useless area generated at the time of layout design is eliminated, if the divided logic cones share the start point register, this register and two or more logics are used at the time of actual layout design. It becomes necessary to newly connect the cone.
Also, sharing the start point register means that the divided logic cones must be collected starting from the start point register, so even if the group is divided so that it falls within the allowable group size, after all, They are collected and arranged by the arrangement process at the time of layout design.
Further, since a correction buffer for timing convergence is inserted, the space efficiency due to the uniform size is considerably reduced.
本発明の半導体集積回路の設計方法は、
データフローを参照し、
同じタイミングで動作するレジスタ群を終点として、それらの終点レジスタから同じタイミングで動作する前段方向の始点レジスタ群までを一つの集まりとしてクラスタ化し、
前記クラスタ化したクラスタをさらに複数のクラスタに分割する場合には、分割後のクラスタ同士が共有する始点レジスタを複製して、分割されたクラスタ同士で始点レジスタを共有しないようにする
ことを特徴とする。
A method for designing a semiconductor integrated circuit according to the present invention includes:
Browse the data flow,
A group of registers that operate at the same timing is used as an end point, and a group from the end point registers to the start point register group in the previous stage that operates at the same timing is clustered as one set.
When the clustered cluster is further divided into a plurality of clusters, the start point register shared by the divided clusters is duplicated so that the start point register is not shared between the divided clusters. To do.
本発明の半導体集積回路の設計装置は、
データフローを参照し、同じタイミングで動作するレジスタ群を終点として、それらの終点レジスタから同じタイミングで動作する前段方向の始点レジスタ群までを一つの集まりとしてクラスタ化するクラスタ化部と、
前記クラスタ化したクラスタをさらに複数のクラスタに分割するクラスタ分割部と、を備え、
前記クラスタ分割部は、分割されたクラスタ同士で始点レジスタを共有しないように始点レジスタを複製する
ことを特徴とする。
The semiconductor integrated circuit design apparatus of the present invention comprises:
A clustering unit that refers to the data flow, sets a group of registers that operate at the same timing as an end point, and clusters the end point registers from the end point register to the start point register group that operates at the same timing as one set,
A cluster dividing unit that further divides the clustered cluster into a plurality of clusters,
The cluster dividing unit duplicates the start point register so that the divided clusters do not share the start point register.
本発明では、クラスタを分割する際に共有される始点レジスタを複製し、クラスタ間で始点レジスタの共有が発生しないようにしている。
このように始点レジスタを含めてクラスタを完全に分離するので、レイアウト時に回路配置の自由度が増し、かつ、配線混雑の発生も抑えられる。
In the present invention, the start point register shared when the cluster is divided is duplicated so that the start point register is not shared between the clusters.
As described above, since the cluster including the start point register is completely separated, the degree of freedom of circuit arrangement is increased at the time of layout, and the occurrence of wiring congestion can be suppressed.
以下、図面を参照して本発明の実施の形態について説明する。
(第1実施形態)
図1は、第1実施形態に係る回路設計装置を実現するハードウエア構成図である。
回路設計装置100は、演算部200と、記憶部300と、入力部400と、表示部500と、を備える。
演算部200は、記憶部に格納された回路設計プログラムを読み込むことにより、上流設計部210、動作合成部220、下流設計部230、としての機能を実現するが、詳しくは後述する。
また、記憶部300には、回路設計プログラム(不図示)の他、演算子ライブラリ301やロジックコーン制約302を格納しており、また、演算部200で作成される各種のデータを記憶するものである。
ロジックコーン制約302の内容についても演算部200の動作と合わせて後述する。
Embodiments of the present invention will be described below with reference to the drawings.
(First embodiment)
FIG. 1 is a hardware configuration diagram for realizing the circuit design device according to the first embodiment.
The
The
In addition to the circuit design program (not shown), the
The contents of the
図2は、第1実施形態に係る回路設計方法の処理手順を示すフローチャートである。
第1実施形態に係る回路設計方法は、主な工程として、上流設計工程ST100と、動作合成工程ST200と、下流設計工程ST300と、を備える。
以下、各工程について詳しく説明する。
FIG. 2 is a flowchart showing a processing procedure of the circuit design method according to the first embodiment.
The circuit design method according to the first embodiment includes an upstream design process ST100, a behavioral synthesis process ST200, and a downstream design process ST300 as main processes.
Hereinafter, each step will be described in detail.
上流設計工程ST100では、まず、動作記述を読み込む(ST101)。
この動作記述は、回路設計者によって作成されるもので、設計対象の回路で処理したいアルゴリズムを動作レベル記述言語で表したものである。そして、動作記述に基づいてデータフロー情報を作成する(ST102)。このような処理は、データフロー変換部211により実行される。
In the upstream design process ST100, first, an operation description is read (ST101).
This behavioral description is created by a circuit designer and represents an algorithm desired to be processed by a circuit to be designed in a behavioral level description language. Then, data flow information is created based on the behavioral description (ST102). Such processing is executed by the data
次に、動作合成部220による動作合成工程ST200を実行する。
動作合成工程ST200は、クラスタサイズ調整部230によるクラスタサイズ調整工程ST2001と、RTL記述変換部240によるRTL記述変換工程ST2002、と、を備える。
クラスタサイズ調整工程ST2001について図3を参照して詳細に説明する。
図3は、クラスタサイズ調整工程(ST2001)の手順を示すフローチャートである。
クラスタサイズ調整工程ST2001では、まず、前記データフロー情報に基づいてクラスタ化を実行する(ST201)。
ここで、データフローをクラスタ化するにあたって、同じタイムスケジュールとなるレジスタ群を終点とし、それらの終点レジスタから同じタイムスケジュールとなる前段方向の始点レジスタまでを一つの集まりとしてクラスタ化する。
Next, the behavioral synthesis step ST200 by the
The behavioral synthesis step ST200 includes a cluster size adjustment step ST2001 by the cluster
The cluster size adjustment step ST2001 will be described in detail with reference to FIG.
FIG. 3 is a flowchart showing the procedure of the cluster size adjustment step (ST2001).
In the cluster size adjustment step ST2001, clustering is first executed based on the data flow information (ST201).
Here, in clustering the data flow, register groups having the same time schedule are set as end points, and those from the end point registers to the start point registers in the previous stage having the same time schedule are clustered as one set.
例えば、図4に示すデータフローにおいて、レジスタEと、レジスタFと、レジスタGと、は同じタイムスケジュールT2で動作するレジスタである。そこで、これらレジスタE、レジスタFおよびレジスタGを終点レジスタ群とし、この終点レジスタ群から前段方向で同じタイムスケジュールで動作するレジスタを抽出する。
このとき、レジスタAと、レジスタBと、レジスタCと、レジスタDと、が同じタイムスケジュールT1で動作するとする。そこで、これらレジスタA、レジスタB、レジスタCおよびレジスタDを始点レジスタ群としてまとめる。そして、終点レジスタ群(レジスタE、レジスタF)と、始点レジスタ群(レジスタA、レジスタB、レジスタC、レジスタD)と、終点レジスタと始点レジスタとの間の演算子群OP0と、を一つの集まりとしてクラスタCL0とする。
データフロー情報内の総ての情報について上記手法をあてはめてクラスタ化していく。
結果はクラスタ情報として出力する(ST202)。
For example, in the data flow shown in FIG. 4, the register E, the register F, and the register G are registers that operate on the same time schedule T2. Therefore, the register E, the register F, and the register G are set as end point register groups, and registers that operate in the same time schedule in the previous stage direction are extracted from the end point register groups.
At this time, it is assumed that the register A, the register B, the register C, and the register D operate with the same time schedule T1. Therefore, these register A, register B, register C, and register D are collected as a starting point register group. An end point register group (register E, register F), a start point register group (register A, register B, register C, register D), and an operator group OP0 between the end point register and the start point register are combined into one. The cluster is CL0.
The above method is applied to all information in the data flow information and clustered.
The result is output as cluster information (ST202).
クラスタ化処理は、クラスタ化部231によって実行される。
The clustering process is executed by the
なお、「同じタイムスケジュールとなるレジスタ群」を抽出するにあたっては、総て同じクロックで動作するレジスタに限るものではなく、異なるクロックで動作するレジスタであっても同じタイミングで動作するものであれば、同じタイムスケジュールで動作するものとしてまとめることができる。 It should be noted that the extraction of “register groups having the same time schedule” is not limited to registers that all operate with the same clock, but registers that operate with different clocks can operate at the same timing. Can be summarized as operating on the same time schedule.
次に、回路規模見積もり部232による回路規模の見積もりを行う(ST203)。
図5は、回路規模見積もり工程(ST203)の詳細フローチャートである。
まず、前記クラスタ情報をもとに、クラスタごとの始点レジスタ名および終点レジスタ名を取得する(ST221)。
図6は、クラスタごとに始点レジスタ情報と終点レジスタ情報を抽出したテーブルである。
Next, the circuit scale is estimated by the circuit scale estimation unit 232 (ST203).
FIG. 5 is a detailed flowchart of the circuit size estimation step (ST203).
First, the start point register name and end point register name for each cluster are acquired based on the cluster information (ST221).
FIG. 6 is a table in which start point register information and end point register information are extracted for each cluster.
図6において、縦方向に個々のクラスタ情報(クラスタID)を取る。
また、横方向にレジスタ情報として、クラスタごとに、始点レジスタ情報と、終点レジスタ情報と、始点レジスタから終点レジスタのレジスタ間回路情報と、を表す。
始点レジスタ情報は、始点レジスタの数(始点レジスタ数)と、レジスタ名と、を含む。終点レジスタ情報は、終点レジスタの数(終点レジスタ数)と、レジスタ名と、を含む。
なお、レジスタ間回路情報は、これから見積もられるので現段階では空白にしてある。
In FIG. 6, individual cluster information (cluster ID) is taken in the vertical direction.
Further, as the register information in the horizontal direction, for each cluster, start point register information, end point register information, and inter-register circuit information from the start point register to the end point register are represented.
The start point register information includes the number of start point registers (start point register number) and the register name. The end point register information includes the number of end point registers (the number of end point registers) and the register name.
Note that the inter-register circuit information is blank at this stage because it is estimated from now on.
また、図7は、始点レジスタ名リストであり、図8は、終点レジスタ名リストである。
始点レジスタ名リスト(図7)および終点レジスタ名リスト(図8)は、レジスタのインスタンス名を示す。
FIG. 7 is a start point register name list, and FIG. 8 is an end point register name list.
The start point register name list (FIG. 7) and the end point register name list (FIG. 8) indicate register instance names.
次に、演算子ライブラリ301を参照して(ST222)、各クラスタの回路規模を見積もる(ST223)。演算子ライブラリ301には、演算子ごと、式ごとに予測される回路規模の情報が格納されている。したがって、始点レジスタ群と終点レジスタ群との間にある演算子および式をクラスタごとに抽出し、演算子ライブラリ301を用いて演算子および式を回路(具体的な論理回路)に変換することで、回路規模を見積もることができる(ST223)。
例えば、クラスタCLを具体的な論理回路に変換すると、図9に示すような回路ブロックになるとする。
以後、この回路ブロックをロジックコーンLと称する。
ロジックコーンLは、論理回路ブロックであって、多入力多出力でもよく、多入力一出力であってもよい。
回路規模の情報として、例えば、回路規模、ネット数、ピンペア数を見積もり、図10に示すようにレジスタ間回路情報として出力する(ST224)。
これにより、回路規模の見積もりが終了する。
Next, referring to the operator library 301 (ST222), the circuit scale of each cluster is estimated (ST223). The
For example, when the cluster CL is converted into a specific logic circuit, a circuit block as shown in FIG. 9 is obtained.
Hereinafter, this circuit block is referred to as a logic cone L.
The logic cone L is a logic circuit block, and may be a multi-input multi-output or a multi-input single-output.
As circuit scale information, for example, the circuit scale, the number of nets, and the number of pin pairs are estimated and output as inter-register circuit information as shown in FIG. 10 (ST224).
Thereby, the estimation of the circuit scale is completed.
図3に戻って、クラスタサイズ調整工程ST2001を継続する。
回路規模の見積もり(ST203)が終了したところで、次に、ロジックコーン制約情報302を読み込む。
Returning to FIG. 3, the cluster size adjustment step ST2001 is continued.
When the circuit scale estimation (ST203) is completed, the logic
ロジックコーン制約情報302は、これまでの開発経験から得られるものである。
レイアウト設計の経験則も基づき、個々の論理階層化において、各ロジックコーンの始点レジスタの総数、終点レジスタの総数、始点レジスタから終点レジスタまでの総接続パス数、終点レジスタから始点レジスタまでの総接続パス数等を制約条件として規定する。
例えば、始点レジスタまたは終点レジスタの総数を10万ゲート以下としたり、始点レジスタから終点レジスタまでの総接続パス数、または、終点レジスタから始点レジスタまでの総接続パス数を200パス以下とするようにロジックコーン制約302を設定しておくことが例として挙げられる。
The logic
Based on the rules of layout design, in each logical hierarchy, the total number of start point registers of each logic cone, the total number of end point registers, the total number of connection paths from the start point register to the end point register, the total number of connections from the end point register to the start point register The number of passes is defined as a constraint condition.
For example, the total number of start point registers or end point registers should be 100,000 gates or less, the total number of connection paths from the start point register to the end point register, or the total number of connection paths from the end point register to the start point register should be 200 paths or less. An example is setting the
ロジックコーン制約302に照らして、回路規模判定部233により、回路規模を判定する(ST205)。すなわち、各クラスタの回路規模情報をロジックコーン制約302に照らして回路規模がロジックコーン制約を満たすか否かを判定する(ST205)。そして、ロジックコーン制約の上限を超えるクラスタがあれば(ST206:YES)、そのクラスタを分割する(ST207)。
In light of the
次に、クラスタ分割部234によるクラスタ分割工程(ST207)について説明する。
図11は、クラスタ分割工程(ST207)の詳細フローチャートである。
クラスタの分割にあたって、まず、クラスタの一つの終点レジスタを起点に設定する(ST231)。
この終点レジスタを起点にしてデータフローを前段方向に辿り、前段方向の始点レジスタまでを一つの集まりとしてサブクラスタ化する(ST232)。
これを総ての終点レジスタについて行う(ST233)。
Next, the cluster dividing step (ST207) by the
FIG. 11 is a detailed flowchart of the cluster dividing step (ST207).
In dividing a cluster, first, one end point register of the cluster is set as a starting point (ST231).
The data flow is traced in the previous direction starting from this end point register, and up to the start point register in the previous direction is sub-clustered as one set (ST232).
This is performed for all end point registers (ST233).
例えば、図4に示すクラスタCL0において、終点レジスタEを起点に設定し、前段方向の始点レジスタA、B、Cまでをサブクラスタとする。すると、図12に示すように、始点レジスタA、B、Cと、終点レジスタEと、演算子群OP1からなるクラスタCL1が新たにできる。
同様に、図13に示すように、終点レジスタFを起点に設定し、前段方向の始点レジスタA、B、C、DまでをクラスタCL2としてサブクラスタ化する。
同様に、図14に示すように、終点レジスタGを起点に設定し、前段方向の始点レジスタA、B、C、DまでをクラスタCL3としてサブクラスタ化する。
For example, in the cluster CL0 shown in FIG. 4, the end point register E is set as the start point, and the start point registers A, B, and C in the preceding stage are set as sub-clusters. Then, as shown in FIG. 12, a new cluster CL1 including start point registers A, B, and C, an end point register E, and an operator group OP1 is created.
Similarly, as shown in FIG. 13, the end point register F is set as the starting point, and the starting point registers A, B, C, and D in the preceding direction are sub-clustered as the cluster CL2.
Similarly, as shown in FIG. 14, the end point register G is set as the starting point, and the starting point registers A, B, C, and D in the preceding direction are sub-clustered as a cluster CL3.
次に、始点レジスタがクラスタ間で共有されているか否かを判定する(ST234)。
上記の例では、クラスタCL1と、クラスタCL2と、クラスタCL3と、により、始点レジスタA、B、Cが共有されていることになる。
また、クラスタCL2とクラスタCL3とにより、始点レジスタDが共有されていることになる。
Next, it is determined whether the start point register is shared between clusters (ST234).
In the above example, the start point registers A, B, and C are shared by the cluster CL1, the cluster CL2, and the cluster CL3.
Further, the start point register D is shared by the cluster CL2 and the cluster CL3.
そこで、始点レジスタが複数のクラスタで共有されないようにレジスタの複製を行う(ST235)。
レジスタA、B、Cについては、クラスタCL1用にレジスタA1、B1、C1、クラスタCL2用にレジスタA2、B2、C2、クラスタCL3用にA3、B3、C3を設けるようにする。
また、レジスタDについては、クラスタCL2用にレジスタD2、クラスタCL3用にクラスタD3を設けるようにする。
このようにしてクラスタCL1、CL2、CL3は完全に分離されたクラスタとなる(図15、16、17)。
これによりクラスタ分割工程が終了する。
Therefore, the register replication is performed so that the start point register is not shared by a plurality of clusters (ST235).
Regarding the registers A, B, and C, registers A1, B1, and C1 are provided for the cluster CL1, registers A2, B2, and C2 are provided for the cluster CL2, and A3, B3, and C3 are provided for the cluster CL3.
As for the register D, a register D2 is provided for the cluster CL2, and a cluster D3 is provided for the cluster CL3.
In this way, the clusters CL1, CL2, and CL3 become completely separated clusters (FIGS. 15, 16, and 17).
As a result, the cluster dividing step is completed.
クラスタ分割した情報を更新し(ST208)、再び回路規模の見積もり(ST203)に戻ってロジック制約の上限を超えるものがなくなるまでループを繰り返す。 The cluster-divided information is updated (ST208), and the loop is repeated until there is no more than the upper limit of the logic constraint by returning to the estimation of the circuit scale (ST203) again.
一方、ステップST206において、ロジックコーン制約の上限を超えるクラスタが無い場合(ST206:NO)、ロジックコーン制約の下限を下回るものがあるか判定する(ST209)。
ロジックコーン制約の下限を下回るものが複数ある場合(ST209:YES)、それらが統合可能であるかどうか判定する(ST210)。
On the other hand, if there is no cluster exceeding the upper limit of the logic cone constraint in step ST206 (ST206: NO), it is determined whether there is any cluster that is below the lower limit of the logic cone constraint (ST209).
When there are a plurality of items that are below the lower limit of the logic cone constraint (ST209: YES), it is determined whether they can be integrated (ST210).
例えば、図18に示すように、クラスタCL4のデータフローが、始点レジスタH4、I4、J4、終点レジスタM、演算子群OP4で構成されているとする。
また、図19に示すように、クラスタCL5のデータフローが始点レジスタH5、I5、J5、K5、終点レジスタN、演算子群OP5で構成されているとする。そして、クラスタCL4のデータフローとクラスタCL5のデータフローとが一部重複しているとする。
この場合、クラスタCL4とクラスタCL5とは統合可能である。
For example, as shown in FIG. 18, it is assumed that the data flow of the cluster CL4 includes a start point register H4, I4, J4, an end point register M, and an operator group OP4.
Further, as shown in FIG. 19, it is assumed that the data flow of the cluster CL5 includes a start point register H5, I5, J5, K5, an end point register N, and an operator group OP5. Then, it is assumed that the data flow of cluster CL4 and the data flow of cluster CL5 partially overlap.
In this case, the cluster CL4 and the cluster CL5 can be integrated.
統合可能なクラスタがある場合(ST210:YES)、クラスタ統合部235によりそれらを統合処理する(ST211)。
クラスタCL4とクラスタCL5とを統合すると、例えば、図20のようになり、始点レジスタH6、I6、J6、K6、終点レジスタM、N、演算子群OP6で構成されたクラスタCL6ができる。
このようにして、分離していたクラスタCL4とクラスタCL5とは、図20に示す一つのクラスタCL6に統合される。
When there is a cluster that can be integrated (ST210: YES), the
When the cluster CL4 and the cluster CL5 are integrated, for example, as shown in FIG. 20, a cluster CL6 composed of start point registers H6, I6, J6, K6, end point registers M, N, and an operator group OP6 is formed.
In this way, the separated clusters CL4 and CL5 are integrated into one cluster CL6 shown in FIG.
クラスタ情報を更新(ST208)しながらループを繰り返し、各クラスタの回路規模がロジックコーン制約の範囲内に入るか、または、統合可能なクラスタがなくなると、最後に最終クラスタ情報を出力して(ST212)、クラスタサイズ調整工程(ST2001)が終了する。 The loop is repeated while updating the cluster information (ST208), and when the circuit scale of each cluster falls within the range of the logic cone constraint or there are no clusters that can be integrated, the final cluster information is output (ST212). ), The cluster size adjustment step (ST2001) ends.
続いて、前記作成されたクラスタ情報を入力として、RTL記述変換部240は、RTL記述に反映させてマッピングを行う(ST2002)。
例えば、クラスタCL1(図15)、クラスタCL2(図16)、クラスタCL3(図17)のクラスタ情報をRTL記述で出力すると図21で示すRTL記述となる。
Subsequently, using the created cluster information as an input, the RTL description conversion unit 240 performs mapping by reflecting it in the RTL description (ST2002).
For example, when the cluster information of the cluster CL1 (FIG. 15), the cluster CL2 (FIG. 16), and the cluster CL3 (FIG. 17) is output in the RTL description, the RTL description shown in FIG. 21 is obtained.
続いて下流設計部250により下流設計工程(ST300)を行う。
下流設計工程ST300は、RTL記述に従った一般的なレイアウト設計である。
図22に下流設計工程ST300の詳細フローチャートを示す。
下流設計工程(ST300)では、論理合成部251によりRTL記述に基づいて論理合成を行い(ST301)、回路情報を出力する(ST302)。そして、フロアプラン(ST303)、タイミング調整(ST304)、レイアウト設計(ST305)等を行う。
最終的に、マスクデータを出力して(ST400)、回路設計が終了する。
Subsequently, the
The downstream design process ST300 is a general layout design according to the RTL description.
FIG. 22 shows a detailed flowchart of the downstream design process ST300.
In the downstream design process (ST300), the
Finally, mask data is output (ST400), and the circuit design is completed.
このような第1実施形態によれば、次の効果を奏する。
(1)データフローを基にして、その中のクラスタ情報を分割または統合することで、各ロジックコーンLをロジックコーン制約の範囲内に抑える。
このとき、クラスタ間で共有される始点レジスタを複製することで、実際にレイアウトされたときの配線混雑を抑えることができる。例えば、従来技術では始点レジスタが共有されていたので、一例として図23に示すように、レジスタ間の接続が複雑になり配線混雑が発生してしまっていた。
また、従来技術では始点レジスタが共有されていたので、ロジックコーンを分割したとしても、分割されたロジックコーンがレイアウト時に集められて配置されてしまっていた。
この点、第1実施形態では、クラスタを分割する際に共有される始点レジスタを複製し、クラスタ間で始点レジスタの共有が発生しないようにしている。
このように始点レジスタを含めてクラスタを完全に分離するので、一例として図24に示すように、配置が自由になり、かつ、配線混雑の発生が抑えられる。
According to such a first embodiment, the following effects are obtained.
(1) Based on the data flow, by dividing or integrating the cluster information therein, each logic cone L is kept within the range of the logic cone constraint.
At this time, by duplicating the start point register shared between the clusters, it is possible to suppress the congestion of wiring when the layout is actually performed. For example, since the start point register is shared in the prior art, as shown in FIG. 23 as an example, the connection between the registers becomes complicated and wiring congestion occurs.
In addition, since the starting point register is shared in the prior art, even if the logic cone is divided, the divided logic cones are collected and arranged at the time of layout.
In this regard, in the first embodiment, the start point register shared when the cluster is divided is duplicated so that the start point register is not shared between the clusters.
As described above, since the cluster including the start point register is completely separated, as shown in FIG. 24 as an example, the arrangement becomes free and the occurrence of wiring congestion can be suppressed.
(2)始点レジスタの出力端子は、共有される配線が多くなると配線引き出しのためのスペースを意図的に確保して、配線性を確保する必要がある。一般的に、配線の接続コストを示すスパン数は、小さくなると配線性が有利である。この点、本第1実施形態によれば、共有される始点レジスタを複製することにより、各始点レジスタの出力端子の配線のスパン数は最小の1にすることが出来るので、配線性が有利になる。 (2) The output terminal of the start point register needs to secure a wiring property by intentionally securing a space for drawing out the wiring when the number of shared wirings increases. Generally, the wiring property is advantageous when the number of spans indicating the connection cost of the wiring is small. In this respect, according to the first embodiment, by duplicating the shared start point register, the number of wiring spans of the output terminals of each start point register can be reduced to 1, so that the wiring property is advantageous. Become.
(3)始点レジスタを複製することで、配線引き出しのスペースを意図的に確保することなく、複製されたレジスタ自体の面積が配線引き出しのスペースになりうるので、レイアウトの配置処理時に意図的な処置を行わなくても、単純に始点レジスタを密に配置していけば配線混雑を起こすことなくレイアウトすることができる。 (3) By duplicating the start point register, the area of the duplicated register itself can be used as the wiring lead-out space without intentionally securing the wiring lead-out space. Even if the process is not performed, if the start point registers are simply arranged densely, the layout can be performed without causing wiring congestion.
(4)始点レジスタを複製することで、その始点レジスタを起点に分割したロジックコーンが集められて配置されることがない。したがって、ロジックコーン単位で求められた遅延情報をそのまま使用することがでる。さらに、別途に遅延調整回路等を挿入する必要が無くなるので、無駄な領域を削減する効果を最大限に活かすことが出来る。 (4) By duplicating the start point register, logic cones divided from the start point register as a starting point are not collected and arranged. Therefore, the delay information obtained in units of logic cones can be used as it is. Further, since it is not necessary to separately insert a delay adjustment circuit or the like, the effect of reducing a useless area can be maximized.
(変形例1)
上記第1実施形態では、回路規模見積もり(ST203)において、演算子ライブラリを参照して各クラスタの回路規模を見積もる場合を例示した。
ここで、実際の回路設計にあたっては改良を加えながら何度かやり直したりすることがある。
そこで、論理合成(ST401)の結果として得られた回路情報を回路データとして蓄積しておくことが好ましい。そして、回路規模見積もり(ST203)にあたっては、図25のフローチャートに示すように、演算子ライブラリを参照(ST222)する前に前記回路データを検索する(ST2211)。
そして、対応するクラスタの回路データが既に存在しているか否かを判断する(ST2212)。
対応するクラスタの回路データが既にあれば、それを読み出して使用する(ST2213)。
これにより、回路規模の見積もりの正確度が格段に向上する。
(Modification 1)
In the first embodiment, the case where the circuit scale of each cluster is estimated by referring to the operator library in the circuit scale estimation (ST203) is exemplified.
Here, the actual circuit design may be repeated several times with improvements.
Therefore, it is preferable to store circuit information obtained as a result of logic synthesis (ST401) as circuit data. In the circuit size estimation (ST203), as shown in the flowchart of FIG. 25, the circuit data is searched (ST2211) before referring to the operator library (ST222).
Then, it is determined whether or not circuit data of the corresponding cluster already exists (ST2212).
If there is already circuit data of the corresponding cluster, it is read and used (ST2213).
Thereby, the accuracy of estimation of the circuit scale is remarkably improved.
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。 Note that the present invention is not limited to the above-described embodiment, and can be changed as appropriate without departing from the spirit of the present invention.
100…回路設計装置、200…演算部、210…上流設計部、211…データフロー変換部、220…動作合成部、230…下流設計部、230…クラスタサイズ調整部、231…クラスタ化部、232…回路規模見積もり部、233…回路規模判定部、234…クラスタ分割部、235…クラスタ統合部、240…RTL記述変換部、250…下流設計部、251…論理合成部、300…記憶部、301…演算子ライブラリ、302…ロジックコーン制約、400…入力部、500…表示部。 100 ... Circuit design device, 200 ... Calculation unit, 210 ... Upstream design unit, 211 ... Data flow conversion unit, 220 ... Behavior synthesis unit, 230 ... Downstream design unit, 230 ... Cluster size adjustment unit, 231 ... Clustering unit, 232 ... Circuit scale estimation part, 233 ... Circuit scale determination part, 234 ... Cluster division part, 235 ... Cluster integration part, 240 ... RTL description conversion part, 250 ... Downstream design part, 251 ... Logic synthesis part, 300 ... Storage part, 301 ... Operator library, 302 ... Logic cone constraint, 400 ... Input part, 500 ... Display part.
Claims (5)
データフローを参照し、
同じタイミングで動作するレジスタ群を終点として、それらの終点レジスタから同じタイミングで動作する前段方向の始点レジスタ群までを一つの集まりとしてクラスタ化し、
前記クラスタ化したクラスタをさらに複数のクラスタに分割する場合には、分割後のクラスタ同士が共有する始点レジスタを複製して、分割されたクラスタ同士で始点レジスタを共有しないようにする
ことを特徴とする半導体集積回路の設計方法。 A method for designing a semiconductor integrated circuit, comprising:
Browse the data flow,
A group of registers that operate at the same timing is used as an end point, and a group from the end point registers to the start point register group in the previous stage that operates at the same timing is clustered as one set.
When the clustered cluster is further divided into a plurality of clusters, the start point register shared by the divided clusters is duplicated so that the start point register is not shared between the divided clusters. A method for designing a semiconductor integrated circuit.
クラスタごとに前記終点レジスタ群と始点レジスタ群との間の演算子群を論理回路ブロックとしてのロジックコーンとして捉え、各ロジックコーンの回路規模を見積もり、
各ロジックコーンの回路規模が所定のロジックコーン制約内になるように前記クラスタの分割または統合を行う
ことを特徴とする半導体集積回路の設計方法。 In the method for designing a semiconductor integrated circuit according to claim 1,
For each cluster, the operator group between the end point register group and the start point register group is regarded as a logic cone as a logic circuit block, and the circuit scale of each logic cone is estimated.
A method for designing a semiconductor integrated circuit, comprising dividing or integrating the clusters so that a circuit scale of each logic cone is within a predetermined logic cone constraint.
前記データフローは、動作レベル記述言語を用いて記述されたものであり、
前記分割または統合されたクラスタの情報に基づいてレジスタ転送レベル記述を生成し、
前記レジスタ転送レベル記述の階層情報を反映させて論理合成を実行する
ことを特徴とする半導体集積回路の設計方法。 In the method for designing a semiconductor integrated circuit according to claim 1 or 2,
The data flow is described using a behavior level description language,
Generating a register transfer level description based on the divided or integrated cluster information;
A method of designing a semiconductor integrated circuit, wherein logic synthesis is performed by reflecting hierarchical information of the register transfer level description.
論理合成の結果として得られた回路情報を回路データとして蓄積し、
前記ロジックコーンの回路規模の見積もりにおいて、見積もり対象のロジックコーンに対応する回路情報が前記回路データとして既に存在する場合には、それを回路規模の見積もりに使用する
ことを特徴とする半導体集積回路の設計方法。 In the method for designing a semiconductor integrated circuit according to claim 3,
The circuit information obtained as a result of logic synthesis is stored as circuit data,
In the estimation of the circuit scale of the logic cone, if circuit information corresponding to the logic cone to be estimated already exists as the circuit data, it is used for the estimation of the circuit scale. Design method.
データフローを参照し、同じタイミングで動作するレジスタ群を終点として、それらの終点レジスタから同じタイミングで動作する前段方向の始点レジスタ群までを一つの集まりとしてクラスタ化するクラスタ化部と、
前記クラスタ化したクラスタをさらに複数のクラスタに分割するクラスタ分割部と、を備え、
前記クラスタ分割部は、分割されたクラスタ同士で始点レジスタを共有しないように始点レジスタを複製する
ことを特徴とする半導体集積回路の設計装置。 A device for designing a semiconductor integrated circuit,
A clustering unit that refers to the data flow, sets a group of registers that operate at the same timing as an end point, and clusters the end point registers from the end point register to the start point register group that operates at the same timing as one set,
A cluster dividing unit that further divides the clustered cluster into a plurality of clusters,
The cluster dividing unit duplicates a start point register so that the divided clusters do not share the start point register.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011008537A JP2012150631A (en) | 2011-01-19 | 2011-01-19 | Design method and design device for semiconductor integrated circuit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011008537A JP2012150631A (en) | 2011-01-19 | 2011-01-19 | Design method and design device for semiconductor integrated circuit |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012150631A true JP2012150631A (en) | 2012-08-09 |
Family
ID=46792819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011008537A Pending JP2012150631A (en) | 2011-01-19 | 2011-01-19 | Design method and design device for semiconductor integrated circuit |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012150631A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015075805A1 (en) * | 2013-11-22 | 2015-05-28 | 株式会社日立製作所 | Source code division method and lsi implementation device |
JP2016014950A (en) * | 2014-07-01 | 2016-01-28 | 三菱電機株式会社 | Circuit design support device, circuit design support method, and program |
WO2018131457A1 (en) * | 2017-01-11 | 2018-07-19 | 富士通株式会社 | Information processing device, program and information processing method |
-
2011
- 2011-01-19 JP JP2011008537A patent/JP2012150631A/en active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015075805A1 (en) * | 2013-11-22 | 2015-05-28 | 株式会社日立製作所 | Source code division method and lsi implementation device |
JP2016014950A (en) * | 2014-07-01 | 2016-01-28 | 三菱電機株式会社 | Circuit design support device, circuit design support method, and program |
WO2018131457A1 (en) * | 2017-01-11 | 2018-07-19 | 富士通株式会社 | Information processing device, program and information processing method |
US11062066B2 (en) | 2017-01-11 | 2021-07-13 | Fujitsu Limited | Information processing apparatus, computer-readable recording medium, and information processing method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8839171B1 (en) | Method of global design closure at top level and driving of downstream implementation flow | |
US8745561B1 (en) | System and method for common path pessimism reduction in timing analysis to guide remedial transformations of a circuit design | |
US20070276644A1 (en) | Conversion of circuit description to a transaction model | |
US20050091627A1 (en) | Comparison of two hierarchical netlist to generate change orders for updating an integrated circuit layout | |
US8316335B2 (en) | Multistage, hybrid synthesis processing facilitating integrated circuit layout | |
US8495535B2 (en) | Partitioning and scheduling uniform operator logic trees for hardware accelerators | |
US8701059B2 (en) | Method and system for repartitioning a hierarchical circuit design | |
US7124070B2 (en) | Method of and apparatus for, and program for verifying equivalence between behavioral description and register transfer level description | |
US20130091482A1 (en) | Method and apparatus for design space exploration acceleration | |
CN102637217B (en) | Large-scale integrated circuit wiring system based on cloud computing platform | |
US9047434B2 (en) | Clustering for processing of circuit design data | |
US20150363517A1 (en) | Techniques for generating physical layouts of in silico multi mode integrated circuits | |
JP2012150631A (en) | Design method and design device for semiconductor integrated circuit | |
US6941532B2 (en) | Clock skew verification methodology for grid-based design | |
JP2004102703A (en) | Design support device for register transfer level | |
US9501607B1 (en) | Composite views for IP blocks in ASIC designs | |
US10289775B1 (en) | Systems and methods for assigning clock taps based on timing | |
JP5447547B2 (en) | Macro delay analysis device, macro boundary path delay analysis method, macro boundary path delay analysis program | |
US20130132917A1 (en) | Pattern Matching Hints | |
US10255394B1 (en) | Reduced overhead for massive parallel processing | |
Thepayasuwan et al. | Layout conscious approach and bus architecture synthesis for hardware/software codesign of systems on chip optimized for speed | |
JP2005165405A (en) | Device and method for designing semiconductor integrated circuit | |
US8745553B2 (en) | Method and apparatus for applying post graphic data system stream enhancements | |
Pawar | Application of Machine Learning to Physical Design | |
US11163929B1 (en) | Generate clock network using inverting integrated clock gate |