JP2012150631A - Design method and design device for semiconductor integrated circuit - Google Patents

Design method and design device for semiconductor integrated circuit Download PDF

Info

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
Application number
JP2011008537A
Other languages
Japanese (ja)
Inventor
Hiromichi Yamane
弘道 山根
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2011008537A priority Critical patent/JP2012150631A/en
Publication of JP2012150631A publication Critical patent/JP2012150631A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a circuit design method capable of reducing an unnecessary region and suppressing occurrence of wiring congestion.SOLUTION: Referring to a data flow and defining a register group operating based on the same timing as a terminal point, registers from the terminal point registers to an initial point register group in a preceding stage direction operating based on the same timing are clustered as a collection. When a clustered cluster is further divided into a plurality of clusters (ST207), an initial point register shared by the divided clusters is copied (ST235) so as not to share the initial point register between the divided clusters.

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 Patent Document 1, the position of a block area is determined in units of functions using RTL floor plan information. Then, the circuits after the logic synthesis result are grouped in cone units. Subsequently, an average value of the group sizes is obtained, and it is checked whether or not the initial group size is within an allowable range. The group is divided or integrated so that the group size is within an allowable range while making the group size uniform.
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.

特開2001-14377号公報Japanese Patent Laid-Open No. 2001-14377

特許文献1は、レイアウト設計時に発生する無駄な領域を無くすように論理合成ブロックを適切に分割統合している。
しかし、特許文献1の方法では、配線混雑が発生してしまい、レイアウト時に配線を確保するための領域が必要になってしまい、結果として、チップ面積の縮小が疎外されてしまうという問題が生じる。
Patent Document 1 appropriately divides and integrates logic synthesis blocks so as to eliminate useless areas generated during layout design.
However, in the method of Patent Document 1, wiring congestion occurs, and a region for securing wiring is required at the time of layout. As a result, there is a problem that reduction in chip area is marginalized.

すなわち、ロジックコーンは、その始点および終点にレジスタを有する。そして、ロジックコーンを分割する場合、始点のレジスタは、分割された他のロジックコーンと共有されることになる。
ロジックコーンを分割してレイアウト設計時に発生する無駄な領域を無くしたとしても、分割されたロジックコーン同士が始点レジスタを共有してしまうと、実際のレイアウト設計時には、このレジスタと二つ以上のロジックコーンとを新たに接続する必要が発生する。
また、始点レジスタを共有するということは、分割したロジックコーンをその始点レジスタを起点にして集めなければならなくなるので、許容範囲のグループサイズに収まるようにグループの分割を行ったとしても、結局、レイアウト設計時の配置処理で集められて配置されてしまう。
さらに、タイミング収束のための修正用バッファが挿入されるので、サイズを均一化したことによるスペース効率は相当減殺されてしまう。
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 is a functional block diagram for realizing a circuit design device according to a first embodiment. 第1実施形態に係る回路設計方法の処理手順を示すフローチャート。3 is a flowchart showing a processing procedure of the circuit design method according to the first embodiment. クラスタサイズ調整工程の手順を示すフローチャート。The flowchart which shows the procedure of a cluster size adjustment process. データフローおよびクラスタの一例を示す図。The figure which shows an example of a data flow and a cluster. 回路規模見積もり工程の詳細フローチャート。The detailed flowchart of a circuit scale estimation process. クラスタごとに始点レジスタ情報と終点レジスタ情報を抽出したテーブル。A table in which start point register information and end point register information are extracted for each cluster. 始点レジスタ名リストの一例を示す図。The figure which shows an example of a starting point register name list. 終点レジスタ名リストの一例を示す図。The figure which shows an example of an end point register name list. ロジックコーンの一例を示す図。The figure which shows an example of a logic cone. レジスタ間回路情報の見積もりの一例を示す図。The figure which shows an example of estimation of the circuit information between registers. クラスタ分割工程の詳細フローチャート。The detailed flowchart of a cluster division | segmentation process. クラスタの一例を示す図。The figure which shows an example of a cluster. クラスタの一例を示す図。The figure which shows an example of a cluster. クラスタの一例を示す図。The figure which shows an example of a cluster. クラスタの一例を示す図。The figure which shows an example of a cluster. クラスタの一例を示す図。The figure which shows an example of a cluster. クラスタの一例を示す図。The figure which shows an example of a cluster. クラスタの一例を示す図。The figure which shows an example of a cluster. クラスタの一例を示す図。The figure which shows an example of a cluster. クラスタの一例を示す図。The figure which shows an example of a cluster. RTL記述の一例を示す図。The figure which shows an example of RTL description. 下流設計工程の詳細フローチャート。The detailed flowchart of a downstream design process. 従来技術において配線混雑が発生する例を示す図。The figure which shows the example which wiring congestion generate | occur | produces in a prior art. 第1実施形態の効果を説明するための図。The figure for demonstrating the effect of 1st Embodiment. 変形例1における回路規模見積もり工程のフローチャート。10 is a flowchart of a circuit scale estimation process in the first modification.

以下、図面を参照して本発明の実施の形態について説明する。
(第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 circuit design device 100 includes a calculation unit 200, a storage unit 300, an input unit 400, and a display unit 500.
The calculation unit 200 reads the circuit design program stored in the storage unit to realize functions as the upstream design unit 210, the behavioral synthesis unit 220, and the downstream design unit 230. Details will be described later.
In addition to the circuit design program (not shown), the storage unit 300 stores an operator library 301 and a logic cone constraint 302, and stores various data created by the calculation unit 200. is there.
The contents of the logic cone constraint 302 will also be described later together with the operation of the arithmetic unit 200.

図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 flow conversion unit 211.

次に、動作合成部220による動作合成工程ST200を実行する。
動作合成工程ST200は、クラスタサイズ調整部230によるクラスタサイズ調整工程ST2001と、RTL記述変換部240によるRTL記述変換工程ST2002、と、を備える。
クラスタサイズ調整工程ST2001について図3を参照して詳細に説明する。
図3は、クラスタサイズ調整工程(ST2001)の手順を示すフローチャートである。
クラスタサイズ調整工程ST2001では、まず、前記データフロー情報に基づいてクラスタ化を実行する(ST201)。
ここで、データフローをクラスタ化するにあたって、同じタイムスケジュールとなるレジスタ群を終点とし、それらの終点レジスタから同じタイムスケジュールとなる前段方向の始点レジスタまでを一つの集まりとしてクラスタ化する。
Next, the behavioral synthesis step ST200 by the behavioral synthesis unit 220 is executed.
The behavioral synthesis step ST200 includes a cluster size adjustment step ST2001 by the cluster size adjustment unit 230 and an RTL description conversion step ST2002 by the RTL description conversion unit 240.
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 clustering unit 231.

なお、「同じタイムスケジュールとなるレジスタ群」を抽出するにあたっては、総て同じクロックで動作するレジスタに限るものではなく、異なるクロックで動作するレジスタであっても同じタイミングで動作するものであれば、同じタイムスケジュールで動作するものとしてまとめることができる。   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 operator library 301 stores circuit scale information predicted for each operator and for each expression. Therefore, by extracting operators and expressions between the start point register group and the end point register group for each cluster, and converting the operators and expressions into circuits (specific logic circuits) using the operator library 301. The circuit scale can be estimated (ST223).
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 cone constraint information 302 is read.

ロジックコーン制約情報302は、これまでの開発経験から得られるものである。
レイアウト設計の経験則も基づき、個々の論理階層化において、各ロジックコーンの始点レジスタの総数、終点レジスタの総数、始点レジスタから終点レジスタまでの総接続パス数、終点レジスタから始点レジスタまでの総接続パス数等を制約条件として規定する。
例えば、始点レジスタまたは終点レジスタの総数を10万ゲート以下としたり、始点レジスタから終点レジスタまでの総接続パス数、または、終点レジスタから始点レジスタまでの総接続パス数を200パス以下とするようにロジックコーン制約302を設定しておくことが例として挙げられる。
The logic cone constraint information 302 is obtained from development experience so far.
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 logic cone constraint 302 in advance.

ロジックコーン制約302に照らして、回路規模判定部233により、回路規模を判定する(ST205)。すなわち、各クラスタの回路規模情報をロジックコーン制約302に照らして回路規模がロジックコーン制約を満たすか否かを判定する(ST205)。そして、ロジックコーン制約の上限を超えるクラスタがあれば(ST206:YES)、そのクラスタを分割する(ST207)。   In light of the logic cone constraint 302, the circuit scale determination unit 233 determines the circuit scale (ST205). That is, the circuit scale information of each cluster is checked against the logic cone constraint 302 to determine whether or not the circuit scale satisfies the logic cone constraint (ST205). If there is a cluster exceeding the upper limit of the logic cone constraint (ST206: YES), the cluster is divided (ST207).

次に、クラスタ分割部234によるクラスタ分割工程(ST207)について説明する。
図11は、クラスタ分割工程(ST207)の詳細フローチャートである。
クラスタの分割にあたって、まず、クラスタの一つの終点レジスタを起点に設定する(ST231)。
この終点レジスタを起点にしてデータフローを前段方向に辿り、前段方向の始点レジスタまでを一つの集まりとしてサブクラスタ化する(ST232)。
これを総ての終点レジスタについて行う(ST233)。
Next, the cluster dividing step (ST207) by the cluster dividing unit 234 will be described.
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 cluster integration unit 235 performs integration processing (ST211).
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 downstream design unit 250 performs a downstream design process (ST300).
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 logic synthesis unit 251 performs logic synthesis based on the RTL description (ST301) and outputs circuit information (ST302). Then, a floor plan (ST303), timing adjustment (ST304), layout design (ST305), and the like are performed.
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.
請求項1に記載の半導体集積回路の設計方法において、
クラスタごとに前記終点レジスタ群と始点レジスタ群との間の演算子群を論理回路ブロックとしてのロジックコーンとして捉え、各ロジックコーンの回路規模を見積もり、
各ロジックコーンの回路規模が所定のロジックコーン制約内になるように前記クラスタの分割または統合を行う
ことを特徴とする半導体集積回路の設計方法。
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.
請求項1または請求項2に記載の半導体集積回路の設計方法において、
前記データフローは、動作レベル記述言語を用いて記述されたものであり、
前記分割または統合されたクラスタの情報に基づいてレジスタ転送レベル記述を生成し、
前記レジスタ転送レベル記述の階層情報を反映させて論理合成を実行する
ことを特徴とする半導体集積回路の設計方法。
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.
請求項3に記載の半導体集積回路の設計方法において、
論理合成の結果として得られた回路情報を回路データとして蓄積し、
前記ロジックコーンの回路規模の見積もりにおいて、見積もり対象のロジックコーンに対応する回路情報が前記回路データとして既に存在する場合には、それを回路規模の見積もりに使用する
ことを特徴とする半導体集積回路の設計方法。
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.
JP2011008537A 2011-01-19 2011-01-19 Design method and design device for semiconductor integrated circuit Pending JP2012150631A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (4)

* Cited by examiner, † Cited by third party
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