JP2016218670A - Semiconductor integrated circuit design assist device, semiconductor integrated circuit design assist method, and program - Google Patents
Semiconductor integrated circuit design assist device, semiconductor integrated circuit design assist method, and program Download PDFInfo
- Publication number
- JP2016218670A JP2016218670A JP2015101883A JP2015101883A JP2016218670A JP 2016218670 A JP2016218670 A JP 2016218670A JP 2015101883 A JP2015101883 A JP 2015101883A JP 2015101883 A JP2015101883 A JP 2015101883A JP 2016218670 A JP2016218670 A JP 2016218670A
- Authority
- JP
- Japan
- Prior art keywords
- information
- circuit
- bit
- cell
- semiconductor integrated
- 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
Abstract
Description
本発明は、半導体集積回路設計支援装置、半導体集積回路設計支援方法及びプログラムに関し、詳細には、半導体集積回路の設計を支援する半導体集積回路設計支援装置、半導体集積回路設計支援方法及びプログラムに関する。 The present invention relates to a semiconductor integrated circuit design support apparatus, a semiconductor integrated circuit design support method, and a program, and more particularly to a semiconductor integrated circuit design support apparatus, a semiconductor integrated circuit design support method, and a program that support the design of a semiconductor integrated circuit.
半導体集積回路の設計は、半導体集積回路設計支援装置を用いて行われるようになってきており、半導体集積回路設計支援装置は、一般的に設計ツールであるCAD(Computer Aided Design)ツールを備えたコンピュータが用いられている。半導体集積回路設計支援装置は、CADツールによりハードウェア記述言語(HDL:Hardware Description Language)で記述されたファイルを読み込み、論理合成を行って、設計支援対象となる回路の接続状態を示すデータであるネットリストを生成する。 Semiconductor integrated circuit design has been performed using a semiconductor integrated circuit design support apparatus, and the semiconductor integrated circuit design support apparatus generally includes a CAD (Computer Aided Design) tool which is a design tool. A computer is used. The semiconductor integrated circuit design support device is data indicating a connection state of a circuit to be a design support target by reading a file described in a hardware description language (HDL) by a CAD tool and performing logic synthesis. Generate a netlist.
一方、近年、半導体集積回路の大規模化に伴い、半導体集積回路の消費電力を低減する設計手法が要望されている。半導体集積回路の消費電力を低減する設計手法の一つとしては、消費電力の大きなクロックライン回路が共通化されている「多ビットフリップフロップ」のセルライブラリを用いる設計手法がある。 On the other hand, in recent years, with the increase in scale of semiconductor integrated circuits, a design method for reducing the power consumption of the semiconductor integrated circuits is demanded. One design technique for reducing the power consumption of a semiconductor integrated circuit is a design technique using a “multi-bit flip-flop” cell library in which a clock line circuit with large power consumption is shared.
ところが、従来の多ビットフリップフロップのセルライブラリを用いる設計手法は、配置配線時の混雑度が増加するという弊害あり、論理合成時に最適な多ビットフリップフロップセルの選択や最適なビット数を選択することが困難であった。 However, the conventional design method using a cell library of multi-bit flip-flops has an adverse effect of increasing the degree of congestion at the time of placement and routing, and selecting the optimal multi-bit flip-flop cells and selecting the optimal number of bits at the time of logic synthesis It was difficult.
そして、従来、論理合成部が論理合成時に、所定の論理機能をそれぞれ発揮する複数のユニットセルを仮想配線すると共に、仮想配線された前記複数のユニットセルの一部を組み合わせて多ビット化した複数の多ビットセルを生成し、配置処理部が前記複数のユニットセルと、前記複数の多ビットセルとを配置し、制御部が前記複数のユニットセルと前記複数の多ビットセルとの仮想配線の混雑が解消するように仮想配線の繋ぎ換えを制御し、配線処理部が前記複数のユニットセルと、前記複数の多ビットセルとを本配線する半導体集積回路の設計方法が提案されている(特許文献1参照)。 Conventionally, a plurality of unit cells that each perform a predetermined logic function are virtually wired at the time of logic synthesis by the logic synthesis unit, and a plurality of bit units are obtained by combining a part of the plurality of unit cells that are virtually wired. The multi-bit cell is generated, the arrangement processing unit arranges the plurality of unit cells and the plurality of multi-bit cells, and the control unit eliminates the virtual wiring congestion between the plurality of unit cells and the plurality of multi-bit cells. Thus, there is proposed a method for designing a semiconductor integrated circuit in which reconnection of virtual wiring is controlled, and a wiring processing unit performs main wiring between the plurality of unit cells and the plurality of multi-bit cells (see Patent Document 1). .
すなわち、この従来技術は、配置配線時に多ビットセルの仮想配線の繋ぎ変えを行うことで、多ビットセルを使用する際の配線混雑の防止を図っている。 That is, this prior art attempts to prevent wiring congestion when using multi-bit cells by changing the virtual wiring of multi-bit cells during placement and routing.
しかしながら、上記公報記載の従来技術にあっては、配置配線時に多ビットセルの仮想配線の繋ぎ変えを行っているため、論理合成時に最適な多ビットセルを選択することが困難であるとともに、最適なビット数を決定することができず、改良の必要があった。 However, in the prior art described in the above publication, since the virtual wiring of the multi-bit cell is changed at the time of placement and routing, it is difficult to select the optimal multi-bit cell at the time of logic synthesis and the optimal bit The number could not be determined and needed improvement.
そこで、本発明は、半導体集積回路の設計において最適なビット数の多ビットセルを効率的に選択することを目的としている。 Therefore, an object of the present invention is to efficiently select a multi-bit cell having an optimum number of bits in the design of a semiconductor integrated circuit.
上記目的を達成するために、請求項1記載の半導体集積回路設計支援装置は、回路仕様に基づいて回路設計を行って回路情報を生成する回路設計手段と、半導体集積回路のセル情報を含む回路関連情報を記憶する回路関連情報記憶手段と、前記回路関連情報を使用して前記回路情報に対して論理合成を行って、セルの配置とセルに対する配線の配置配線情報を含む論理回路情報を生成する論理回路情報生成手段と、前記論理回路情報の前記配置配線情報に基づいて、前記セルの配置と該セルに対する配線を実施し、該配置配線の実施結果に基づいて前記回路関連情報を参照して該論理回路情報の少ビットセルを多ビットセルへ多ビット化する多ビット化配置配線手段と、を備えていることを特徴としている。
To achieve the above object, a semiconductor integrated circuit design support apparatus according to
本発明によれば、半導体集積回路の設計において最適なビット数の多ビットセルを効率的に選択することができる。 According to the present invention, it is possible to efficiently select a multi-bit cell having an optimum number of bits in designing a semiconductor integrated circuit.
以下、本発明の好適な実施例を添付図面に基づいて詳細に説明する。なお、以下に述べる実施例は、本発明の好適な実施例であるので、技術的に好ましい種々の限定が付されているが、本発明の範囲は、以下の説明によって不当に限定されるものではなく、また、本実施の形態で説明される構成の全てが本発明の必須の構成要件ではない。 Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In addition, since the Example described below is a suitable Example of this invention, various technically preferable restrictions are attached | subjected, However, The range of this invention is unduly limited by the following description. However, not all the configurations described in the present embodiment are essential constituent elements of the present invention.
図1〜図30は、本発明の半導体集積回路設計支援装置、半導体集積回路設計支援方法及びプログラムの一実施例を示す図であり、図1は、本発明の半導体集積回路設計支援装置、半導体集積回路設計支援方法及びプログラムの一実施例を適用した半導体集積回路設計支援装置1のブロック構成図である。
1 to 30 are diagrams showing an embodiment of a semiconductor integrated circuit design support apparatus, semiconductor integrated circuit design support method and program according to the present invention. FIG. 1 shows a semiconductor integrated circuit design support apparatus and semiconductor according to the present invention. 1 is a block configuration diagram of a semiconductor integrated circuit
図1において、半導体集積回路設計支援装置1は、通常のハードウェア構成及びソフトウェア構成のコンピュータに、本発明の半導体集積回路設計支援方法を実行するプログラムを搭載することで構築されている。なお、本実施例の半導体集積回路設計支援装置1は、1台のコンピュータで構築されているが、複数台のコンピュータや大容量記憶装置等がLAN(Local Area Network)、インターネット等のネットワークで接続されることで構築されていてもよい。
In FIG. 1, a semiconductor integrated circuit
半導体集積回路設計支援装置1は、CPU(Central Processing Unit)2、ROM(Read Only Memory)3、RAM(Random Access Memory)4、不揮発性メモリ5、入力I/F(Input/Output)6、出力I/F7及び外部I/F8等を備えている。半導体集積回路設計支援装置1は、上記各部が、バス9により接続されている。
A semiconductor integrated circuit
入力I/F6には、キーボード、マウス、スタイラスペン、タッチパネル等の入力デバイス11が接続され、入力I/F6は、入力デバイス11から入力される各種命令等をCPU2へ出力する。
An
出力I/F7には、ディスプレイ、ランプ、スピーカ、プリンタ等の出力デバイス12が接続され、出力I/F7は、CPU2の制御下で、出力デバイス12に表示データ、点滅データ、音声データ、記録データ等の出力データを出力する。
An
外部I/F8は、ネットワーク、外部記憶装置等が接続される。外部I/F8は、CPU2の制御下で、TCP/IP(Transmission Control Protocol/Internet Protocol)やSMTP(Simple Mail Transfer Protocol )/POP(Point Of Production )等のプロトコルの制御を行って通信を行う。また、外部I/F8は、CPU2の制御下で、外部記憶装置へのデータの書き込み及び外部記憶装置からのデータの読み出しを行う。
The external I /
ROM3は、コンピュータのOS(Operating System)、半導体集積回路設計支援装置1としての基本プログラム、本発明の半導体集積回路設計支援方法を実行するプログラム及びシステムデータ等を記憶している。ROM3は、半導体集積回路設計支援方法を実行するプログラムを補完するプログラムとして、配置配線ツールプログラム等を記憶している。
The
RAM4は、CPU2のワークメモリとして利用され、半導体集積回路設計支援方法の実行に伴う各種データ等を記憶する。
The
CPU2は、ROM3内のプログラムに基づいて、RAM4をワークメモリとして利用して、半導体集積回路設計支援装置1の各部を制御して、半導体集積回路設計支援装置1としての基本処理を実行する。また、CPU2は、ROM3内の半導体集積回路設計支援方法のプログラムに基づいて、本発明の半導体集積回路設計支援方法を実行する。
The
不揮発性メモリ5は、NVRAM(Nonvolatile Random Access Memory)、SSD(Solid State Drive)、ハードディスク等が用いられ、半導体集積回路設計支援装置1の電源がOFFのときにも記憶内容を保持するメモリである。
The nonvolatile memory 5 is an NVRAM (Nonvolatile Random Access Memory), an SSD (Solid State Drive), a hard disk, or the like, and is a memory that retains stored contents even when the power of the semiconductor integrated circuit
不揮発性メモリ5は、半導体集積回路設計支援装置1の電源がOFFのときにも記憶内容を保持する必要のあるデータとして、例えば、システム設定値や本発明の半導体集積回路設計支援機器管理方法で使用する各種データがCPU2の制御下で格納される。特に、不揮発性メモリ5は、図2に示すようなセルライブラリ(回路関連情報)CLを格納している。セルライブラリCLは、1ビットフリップフロップDFF、2ビットフリップフロップDFF2、4ビットフリップフロップDFF4等の情報を含んでいる。また、不揮発性メモリ5は、これらの1ビットフリップフロップDFF、2ビットフリップフロップDFF2、4ビットフリップフロップDFF4等から生成される図3示すような仮想0ビットフリップフロップセルVDFF0とその回路情報VkJ0、図4示すような仮想1ビットフリップフロップセルVDFF1とその回路情報VkJ1、図5に示すような仮想2ビットフリップフロップセルVDFF2とその回路情報Vkj2、図6に示すような仮想4ビットフリップフロップVDFF4とその回路情報Vkj4等を格納する。また、不揮発性メモリ5は、セルライブラリCLとして、図7に示すような回路情報を、格納している。すなわち、セルライブラリCLの回路情報は、図7に示すように、セル名(BUF、DFF、DFF4等)、各セルのエリア(領域:1、4、14等)、消費電力値(2、10、30等)の論理合成、配置配線に必要な情報の全てが含まれている。例えば、図7では、「BUF」という名前のライブラリセルの大きさは「1」であり、消費電力値は「2」であることが示されている。
The nonvolatile memory 5 is, for example, a system setting value or a semiconductor integrated circuit design support device management method of the present invention as data that needs to be stored even when the power of the semiconductor integrated circuit
そして、半導体集積回路設計支援装置1は、ROM、EEPROM(Electrically Erasable and Programmable Read Only Memory )、EPROM、フラッシュメモリ、フレキシブルディスク、CD−ROM(Compact Disc Read Only Memory )、CD−RW(Compact Disc Rewritable )、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリ、SD(Secure Digital)カード、MO(Magneto-Optical Disc)等のコンピュータが読み取り可能な記録媒体に記録されている本発明の半導体集積回路設計支援方法を実行するプログラムを読み込んでROM3や不揮発性メモリ5に導入することで、後述する半導体集積回路の設計において最適なビット数の多ビットセルを効率的に選択する半導体集積回路設計支援方法を実行する半導体集積回路設計支援装置として構築されている。この半導体集積回路設計支援方法を実行するプログラムは、アセンブラ、C、C++、C#、Java(登録商標)等のレガシープログラミング言語やオブジェクト指向プログラミング言語等で記述されたコンピュータ実行可能なプログラムであり、上記記録媒体に格納して頒布することができる。
The semiconductor integrated circuit
半導体集積回路設計支援装置1は、上記半導体集積回路設計支援方法を実行するプログラムが導入されることで、図8に示す機能ブロックが構築される。すなわち、半導体集積回路設計支援装置1は、該プログラムが導入されると、図8に示すように、回路設計部31、セルライブラリ記憶部32、論理回路情報生成部33及び多ビット化配置配線部34が構築される。
The semiconductor integrated circuit
回路設計部31は、CPU2及びRAM4等により構築されている。回路設計部31は、入力デバイス11から入力される回路仕様または外部I/F8を介して入力される外部メモリに記憶されている回路仕様に基づいて回路設計を行って回路情報を生成する。この回路情報は、HDL(Hardware description language)で記述されており、文字で記述するコンピュータ言語で、半導体集積回路の経時的振舞いと空間的構造が記述されている。したがって、回路設計部31は、回路設計手段として機能している。
The
回路設計部31は、例えば、図9に示すようなHDLによる回路情報(HDL)を生成する。なお、図9は、HDLとして、Verilog(ヴェリログ)言語を用いた回路情報であり、1行目で、モジュール名は、「DUT」であることが宣言されている。図9の回路情報(HDL)は、2行目〜5行目のステートメントで、「CLK」と「IN」の2つの入力ポートを持ち、「OUT」の1つの出力ポート、「REG」というレジスタを持つことが記述されている。これらの入出力ポートやデータタイプは、全て4ビットであることが記述されている。また、図9の回路情報は、7行目〜9行目の手続き代入文で、レジスタ型の「REG」に、「CLK」の立ち上がりエッジにおいて、入力信号「IN」がノンブロッキング代入されるフリップフロップであることが記述されている。さらに、図9の回路情報は、11行目の継続代入文により、出力ポート「OUT」に、「REG」が代入されることが記述されている。すなわち、「DUT」モジュールは、入力信号「IN」を「CLK」の立ち上がりでラッチし、「OUT」へ出力するモジュールであることが記述されている。
For example, the
セルライブラリ記憶部32は、不揮発性メモリ5により構築されている。セルライブラリ記憶部32は、半導体集積回路のライブラリ情報(回路関連情報)として、図2に示したようなセルライブラリCLを記憶している。セルライブラリCLは、上述のように、1ビットフリップフロップDFF、2ビットフリップフロップDFF2、4ビットフリップフロップDFF4等の情報を含んでいる。したがって、セルライブラリ記憶部32は、セルライブラリ記憶手段として機能している。
The cell
論理回路情報生成部33は、CPU2及びRAM4等により構築されている。論理回路情報生成部33は、セルライブラリ記憶部32のライブラリ情報(セルライブラリCL)を使用して、回路設計部31の生成した回路情報に対して論理合成を行って、セルの配置とセルに対する配線等の配置配線情報を含む論理回路情報である回路情報(NETLIST)を生成する。なお、以下の説明では、論理回路情報を、適宜、回路情報(NETLIST)という。
The logic circuit
具体的には、論理回路情報生成部33は、例えば、図3(a)に示したような仮想0ビットフリップフロップセルVDFF0を生成し、このときの仮想0ビットフリップフロップセルVDFF0の回路情報(NETLIST)は、図3(b)のようになる。図3(a)に示す仮想0ビットフリップフロップセルVDFF0は、モジュールの内部に、セルライブラリCLのフリップフロップがインスタンス化(実体化)されていない。そして、仮想0ビットフリップフロップセルVDFF0のモジュールは、4ビットの入力と出力を持っている。いま、図3(a)の仮想0ビットフリップフロップセルVDFF0は、0ビットであるので、全ての入力ポートが入力浮きとなっており、全ての出力が「0」(グランド)に固定されている。
Specifically, the logic circuit
また、論理回路情報生成部33は、図4(a)に示したような仮想1ビットフリップフロップセルVDFF1を生成し、このときの仮想2ビットフリップフロップVDFF1の回路情報(NETLIST)は、図4(b)のようになる。図4(a)に示す仮想1ビットフリップフロップセルVDFF1は、モジュール内部に、セルライブラリCLの1ビットフリップフロップDFFがインスタンス化されているが、仮想1ビットフリップフロップセルVDFF1のモジュールは、4ビットの入力と出力を持っている。いま、図4(a)の仮想1ビットフリップフロップセルVDFF1は、1ビットであるので、使用していない入力ポートが入力浮きとなっており、使用していない出力が「0」(グランド)に固定されている。
Further, the logic circuit
さらに、論理回路情報生成部33は、図5(a)に示したような仮想2ビットフリップフロップセルVDFF2を生成し、このときの仮想2ビットフリップフロップVDFF2の回路情報(NETLIST)は、図5(b)のようになる。図5(a)に示す仮想2ビットフリップフロップセルVDFF2は、モジュール内部に、セルライブラリCLの2ビットフリップフロップDFF2がインスタンス化されているが、仮想2ビットフリップフロップセルVDFF1のモジュールは、4ビットの入力と出力を持っている。いま、図5(a)の仮想2ビットフリップフロップセルVDFF2は、2ビットであるので、使用していない入力ポートが入力浮きとなっており、使用していない出力が「0」(グランド)に固定されている。
Further, the logic circuit
また、論理回路情報生成部33は、図6(a)に示したような仮想4ビットフリップフロップセルVDFF4を生成し、このときの仮想4ビットフリップフロップVDFF4の回路情報(NETLIST)は、図5(b)のようになる。図6(a)に示す仮想4ビットフリップフロップセルVDFF4は、モジュール内部に、セルライブラリCLの4ビットフリップフロップDFF4がインスタンス化されており、仮想4ビットフリップフロップDFF4のモジュールは、4ビットの入力と出力を持っている。いま、図6(a)の仮想4ビットフリップフロップセルVDFF4は、4ビットであるので、入力浮きとなっている入力ポートはなく、「0」に固定されている出力がない。
The logic circuit
そして、上記仮想フリップフロップセルVDFF0、VDFF1、VDFF2、VDFF4は、ポート使用情報を持っており、仮想0ビットフリップフロップセルVDFF0では、デフォルトポート使用情報は、D[0]、D[1]、D[2]、D[3]ポートの全てが使用されていない。また、仮想1ビットフリップフロップセルVDFF1では、デフォルトポート使用情報は、D[0]ポートが使用されており、他のポートは使用されていない。また、仮想2ビットフリップフロップセルVDFF2では、デフォルトポート使用情報は、D[0]、D[1]ポートが使用されており、他のポートは使用されていない。さらに、仮想4ビットフリップフロップセルVDFF4では、デフォルトポート使用情報は、D[0]、D[1]、D[2]、D[3]の全てのポートが使用されている。 The virtual flip-flop cells VDFF0, VDFF1, VDFF2, and VDFF4 have port usage information. In the virtual 0-bit flip-flop cell VDFF0, the default port usage information is D [0], D [1], D [2 ], All D [3] ports are not used. In the virtual 1-bit flip-flop cell VDFF1, the D [0] port is used as default port usage information, and other ports are not used. In the virtual 2-bit flip-flop cell VDFF2, the default port usage information uses the D [0] and D [1] ports and does not use other ports. Further, in the virtual 4-bit flip-flop cell VDFF4, the default port usage information uses all ports D [0], D [1], D [2], and D [3].
論理回路情報生成部33は、上述のようにして生成した仮想フリップフロップセルVDFF0、VDFF1、VDFF2、VDFF4を、不揮発性メモリ5等に一旦格納する。
The logic circuit
なお、論理回路情報生成部33は、例えば、上記図9に示した回路情報(HDL)に対して、1ビットフリップフロップセルDFFを使用して、論理合成を実施し、図10に示すような回路情報(NETLIST)を生成する。なお、図10の回路情報(NETLIST)では、図2の回路情報(HDL)の7行目〜9行目の手続き代入文を1ビットフリップフロップの 「DFF」にマッピングし、11行目の継続代入文を1ビットバッファセルである「BUF」にマッピングしている。「DFF」、「BUF」は1ビットライブラリセルであるので、4ビットの代入を実現するために、図10の回路情報(NETLIST)では、DFFセルとBUFセルをそれぞれ4つ使用している。
Note that the logic circuit
また、論理回路情報生成部33は、図9に示した回路情報(HDL)から図11に示すように、多ビットフリップフロップ(4ビットフリップフロップDFF4)を使用した回路情報(NETLIST)を生成する。本実施例の半導体集積回路設計支援装置1は、さらなる多ビット化については、後述する多ビット化配置配線部34が、実際に配置配線を行って、その結果を検証した後に、多ビット化を行う。図11では、図9の回路情報(HDL)の7〜9行目の手続き代入文を4ビットフリップフロップの 「DFF4」にマッピングし、11行目の継続代入文を1ビットバッファセルである「BUF」にマッピングしている。「DFF4」は4ビットの手続き代入を1つのセルで実現できるため、「DFF4」を1つ、「BUF」を4つ使用している。
Further, the logic circuit
多ビット化配置配線部34は、CPU2及びRAM4等により構築されている。多ビット化配置配線部34は、論理回路情報である回路情報(NETLIST)の配置配線情報に基づいて、セルの配置とセルに対する配線を実施する。また、多ビット化配置配線部34は、実施した配置配線の実施結果に基づいて、セルライブラリ記憶部32のライブラリ情報を参照して回路情報(NETLIST)の少ビットセル(少ビットフリップフロップ)を多ビットセル(多ビットフリップフロップ)へ多ビット化する。したがって、多ビット化配置配線部34は、多ビット化配置配線手段として機能している。
The multi-bit arrangement /
例えば、多ビット化配置配線部34は、図10に示した回路情報(NETLIST)の配置配線情報に基づいて、配線を実施して図12に示すような回路図を生成する。図12は、図10に示したように、「DFF」、「BUF」は1ビットライブラリセルであるので、4つのDFFセルとBUFセルを使用した回路図となっている。
For example, the multi-bit placement and
また、多ビット化配置配線部34は、図13に示すように、多ビット化されたフリップフロップ、例えば、図11に示した4ビットフリップフロップDFF4を使用した回路情報(NETLIST)に基づいて、配置配線も行う。図13は、図11に示したように、「DFF4」は4ビット、「BUF」は1ビットライブラリセルであるので、1つのDFFセル(DFF4)と4つのBUFセルを使用した回路図となっている。
Further, as shown in FIG. 13, the multi-bit arrangement /
そして、後述するが、多ビット化配置配線部34は、この多ビット化においては、多ビットフリップフロップにおけるセルの配置情報に基づいて、該多ビットフリップフロップとの接続を変更し、配置を決定した後に該多ビットフリップフロップの段数を決定する。
As will be described later, the multi-bit arrangement /
また、多ビット化配置配線部34は、論理回路情報生成部33が、論理回路情報である回路情報(NETLIST)として回路情報(HDL)の仮想フリップフロップライブラリを生成すると、該仮想フリップフロップライブラリのフリップフロップを多ビット化する。
In addition, when the logic circuit
さらに、多ビット化配置配線部34は、フリップフロップの所定周辺範囲のセルの有無を配置情報から探索する図示しない探索部(探索手段)を備えていてもよい。この場合、多ビット化配置配線部34は、該探索部の探索結果に基づいて、フリップフロップの多ビット化の適否を判定して、多ビット化を行う。この探索部及び探索に基づく多ビット化については、後で説明する。
Further, the multi-bit arrangement /
次に、本実施例の作用を説明する。本実施例の半導体集積回路設計支援装置1は、半導体集積回路の設計において最適なビット数の多ビットセルを効率的に選択する。
Next, the operation of this embodiment will be described. The semiconductor integrated circuit
半導体集積回路設計支援装置1は、回路仕様が入力されると、回路設計部31が、例えば、図9に示したような回路情報(HDL)を生成する。次に、半導体集積回路設計支援装置1は、論理回路情報生成部33が、セルライブラリ記憶部32を参照して、図10に示したような回路情報(NETLIST)を生成する。このとき、多ビット化配置配線部34は、一般的には、図12に示した1ビットフリップフロップを用いた回路を構築することとなる。
In the semiconductor integrated circuit
この図10に示す回路情報(NETLIST)では、回路全体の大きさが、(DFFの大きさ×4)+(BUFの大きさ×4)であり、「20」となる。また、図10に示す回路情報(NETLIST)では、回路全体の消費電力値が、(DFFの消費電力値×4)+(BUFの消費電力値×4)であり、「48」となる。 In the circuit information (NETLIST) shown in FIG. 10, the size of the entire circuit is (DFF size × 4) + (BUF size × 4), which is “20”. In the circuit information (NETLIST) shown in FIG. 10, the power consumption value of the entire circuit is (DFF power consumption value × 4) + (BUF power consumption value × 4), which is “48”.
一方、論理合成の結果、図11に示した多ビットフリップフロップを用いた回路情報(NETLIST)が得られた場合、回路全体の大きさは、(DFF4の大きさ×1)+(BUFの大きさ×4)であり、「18」となる。また、この場合の回路全体の消費電力値は、(DFF4の消費電力値×1)+(BUFの消費電力値×4)であり、「38」となる。 On the other hand, when circuit information (NETLIST) using the multi-bit flip-flop shown in FIG. 11 is obtained as a result of logic synthesis, the size of the entire circuit is (DFF4 size × 1) + (BUF size) X4), which is “18”. In this case, the power consumption value of the entire circuit is (DFF4 power consumption value × 1) + (BUF power consumption value × 4), which is “38”.
すなわち、上記例の場合、セルライブラリを用いた結果の回路情報(NETLIST)が、論理的に等価であっても、1ビットの「DFF」を4つ用いる図10の回路より、4ビットの「DFF4」を1つ用いるほうが、回路全体の大きさ及び消費電力値が小さくなる。したがって、一般的には、多ビットフリップフロップのライブラリセルを用いるほうが、省面積であり、低消費電力となる。 That is, in the case of the above example, even if the circuit information (NETLIST) obtained as a result of using the cell library is logically equivalent, a 4-bit “DFF” is obtained from the circuit of FIG. Using one “DFF4” reduces the overall circuit size and power consumption. Therefore, in general, using a multi-bit flip-flop library cell saves area and consumes less power.
ところが、半導体集積回路の設計においては、配線混雑度を考慮する必要がある。 However, in designing a semiconductor integrated circuit, it is necessary to consider the degree of wiring congestion.
例えば、図10に示したような1ビットフリップフロップDFFを用いた回路情報(NETLIST)を用いて、多ビット化配置配線部34が回路の配置配線を行う場合、図12に示したように、一般的には、データラインの配線がもっとも短くなるようにライブラリセルの配置を行う。すなわち、図14(a)に示すようなセル配置となる。この場合、多ビット化配置配線部34は、入力ポート(IN[0]〜IN[3]及びCLK)や出力ポート(OUT[0]〜OUT[3])が、半導体集積回路の形状や半導体集積回路が設置されるボードの制約によって位置が固定されるため、「DFF」と「BUF」のライブラリセルの配置位置を調整してデータラインの配線が最も短くなるように配置を行う。すなわち、「DFF」や「BUF」は、1ビットのセルライブラリであるため、自由度が高く、最も理想的な位置に配置することができる。
For example, in the case where the multi-bit layout and
いま、図14(a)において、配置された「DFF」を中心とする一定範囲を示す破線の丸と交差する配線の数は、クロック、入力データ信号、出力データ信号の3つだけである。 In FIG. 14A, the number of wirings intersecting with a broken-line circle indicating a certain range centered on “DFF” arranged is only three: a clock, an input data signal, and an output data signal.
したがって、図14(b)に示すように、回路の配置が理想的に行われた結果、配線0のように、最短での配線が可能となり、他の配線との間隔も余裕を持たせることができる。
Therefore, as shown in FIG. 14B, as a result of the ideal circuit arrangement, the shortest possible wiring is possible, as is the case with the
ところが、いま、図11に示したような4ビットフリップフロップDFF4を用いた回路情報(NETLIST)を用いて、多ビット化配置配線部34が回路の配置を行って、図15(a)に示すような配置が行われたものとする。
However, using the circuit information (NETLIST) using the 4-bit flip-flop DFF4 as shown in FIG. 11, the multi-bit arrangement /
図15(a)では、1つの「DFF4」が4ビットフリップフロップのセルライブラリであるため、配線が最短となるためには、「DFF4」は、中央あたりに配置される。「BUF」セルライブラリは、図14と同様に自由度が高い配置となる。 In FIG. 15A, since one “DFF4” is a cell library of 4-bit flip-flops, “DFF4” is arranged around the center in order to have the shortest wiring. The “BUF” cell library has a high degree of freedom as in FIG.
図15(a)において、配置された「DFF4」を中心とする一定範囲を示す破線の丸と交差する配線の数は、クロック、入力データ信号×4、出力データ信号×4の9本となる。したがって、「DFF」が4つ配置された図14の回路と比較すると、配線が集中しており、配線混雑が起こる可能性が高いことが分かる。 In FIG. 15A, the number of wirings intersecting with a broken-line circle indicating a certain range centered on “DFF4” is 9 clocks, input data signals × 4, and output data signals × 4. . Therefore, as compared with the circuit of FIG. 14 in which four “DFFs” are arranged, it can be seen that wiring is concentrated and wiring congestion is likely to occur.
図15(b)において、配線2は、最短での配線が可能であるが、配線0´は、図14(b)の配線0と比較すると配線長が長くなっている。また、図15の回路では、IN[0]〜IN[3]からの配線が、全て「DFF4」ライブラリセルへ接続するため、「DFF4」の周囲の配線が密になっている。
In FIG. 15B, the
すなわち、4ビットフリップフロップDFF4のライブラリセルを用いると、サイズや消費電力が小さくなるというメリットはあるが、配線長が長くなること、4ビットフリップフロップライブラリセルの周囲の配線が密になること等によって、他の配線の状況によっては配線混雑が発生するおそれがある。 In other words, the use of a 4-bit flip-flop DFF4 library cell has the advantage of reducing the size and power consumption, but the wiring length becomes longer, the wiring around the 4-bit flip-flop library cell becomes dense, etc. Depending on the situation of other wiring, wiring congestion may occur.
また、半導体集積回路によって、入出力の位置が異なることがあり、このような場合、入出力の位置によって、フリップフロップの配置が異なる。 Further, the input / output positions may differ depending on the semiconductor integrated circuit. In such a case, the arrangement of the flip-flops differs depending on the input / output positions.
例えば、図16は、比較的入出力の位置が離れている場合の4つの1ビットフリップフロップDFFの配置と配線を示した図である。図16において、1ビットフリップフロップDFFの配置は、それぞれのビット毎に入力(IN[*])から出力(OUT[*])の配線が最短となる位置に配置されるため、他のフリップフロップDFFとの距離も一定の距離をもって配置される。 For example, FIG. 16 shows the arrangement and wiring of four 1-bit flip-flops DFF when the input / output positions are relatively far apart. In FIG. 16, the 1-bit flip-flop DFF is arranged at the position where the wiring from the input (IN [*]) to the output (OUT [*]) is the shortest for each bit. The distance from the DFF is also set at a certain distance.
したがって、DFFセルの周囲の配線も分散しており、図16に破線の丸と交差する配線は、DFFの制御信号(CLK)とデータ入力、出力の3本である。 Therefore, the wiring around the DFF cell is also distributed, and the wiring crossing the broken-line circle in FIG. 16 is the DFF control signal (CLK), data input, and output.
一方、同じ比較的入出力位置が離れている半導体集積回路であっても、1つの4ビットフリップフロップDFF4を配置した場合には、図17に示すようになる。すなわち、図17に示すように、全ての入力から1つの4ビットフリップフロップDFF4への接続があるため、4ビットフリップフロップDFF4がどこに配置されても、ビット間の配線長は大きく異なる。図17では、IN[0]から「DFF4」までの配線とIN[2]から「DFF4」までの配線長には大きく差があり、出力側においても、同様に配線長に差が生じる。さらに、図17に示すように、配線は、4ビットフリップフロップDFF4のセルに集中しており、破線の丸と交差する配線は、4ビットフリップフロップDFF4の制御信号(CLK)とデータ入力×4、出力×4の計9本となる。 On the other hand, even in the case of a semiconductor integrated circuit having the same relatively distant input / output position, when one 4-bit flip-flop DFF4 is arranged, the result is as shown in FIG. That is, as shown in FIG. 17, since there is a connection from all inputs to one 4-bit flip-flop DFF4, the wiring length between bits is greatly different wherever the 4-bit flip-flop DFF4 is arranged. In FIG. 17, there is a large difference between the wiring length from IN [0] to “DFF4” and the wiring length from IN [2] to “DFF4”, and the wiring length is similarly different on the output side. Further, as shown in FIG. 17, the wiring is concentrated on the cells of the 4-bit flip-flop DFF4, and the wiring crossing the broken-line circle is the control signal (CLK) and data input × 4 of the 4-bit flip-flop DFF4. , Output × 4, 9 in total.
したがって、図17の配置配線状況は、図16の配置配線状況と比較すると、総配線長が長くなり、「DFF4」周辺の配線が密となるため、配線混雑が起きる可能性が高くなる。 Accordingly, in the arrangement and wiring situation of FIG. 17, the total wiring length becomes longer and the wiring around “DFF4” becomes denser than the arrangement and wiring situation of FIG.
次に、図18は、入出力の位置が相互に比較的近いときの1ビットフリップフロップDFFの配置と配線を示した図である。図18の場合、入出力の位置が非常に近いと、1ビットフリップフロップDFFの配置は、それぞれのビット毎に入力(IN[*])から出力(OUT[*])の配線が最短となる位置に配置されるため、1ビットフリップフロップDFFの配置も非常に近い位置に配置される。したがって、図18に示すように、破線の丸と交差する配線は、近くに配置された4つの「DFF」の周囲の配線である、制御信号CLKと4つの1ビットフリップフロップDFFのデータの入出力で計9本となる。 Next, FIG. 18 is a diagram showing the arrangement and wiring of the 1-bit flip-flop DFF when the input / output positions are relatively close to each other. In the case of FIG. 18, when the input / output positions are very close, the arrangement of the 1-bit flip-flop DFF has the shortest wiring from the input (IN [*]) to the output (OUT [*]) for each bit. Therefore, the 1-bit flip-flop DFF is also arranged at a very close position. Therefore, as shown in FIG. 18, the wiring intersecting with the broken-line circle is the wiring around the four “DFFs” arranged nearby, and the input of the control signal CLK and the data of the four 1-bit flip-flops DFF. The output is 9 in total.
また、図19は、入出力の位置が相互に比較的近いときの4ビットフリップフロップDFF4の配置と配線を示した図である。図19の場合、入出力の位置が非常に近いと、4ビットフリップフロップDFF4の配置は、それぞれのビット毎に入力(IN[*])から出力(OUT[*])の配線が最短となる位置に配置される。したがって、図19に示すように、4ビットフリップフロップDFF4の周囲の配線は、制御信号CLKと4本のデータの入力、4本の出力で計9本となる。 FIG. 19 is a diagram showing the arrangement and wiring of the 4-bit flip-flop DFF4 when the input / output positions are relatively close to each other. In the case of FIG. 19, when the input / output positions are very close, the arrangement of the 4-bit flip-flop DFF4 has the shortest wiring from the input (IN [*]) to the output (OUT [*]) for each bit. Placed in position. Accordingly, as shown in FIG. 19, the number of wirings around the 4-bit flip-flop DFF4 is nine in total with the input of the control signal CLK and four data and the four outputs.
すなわち、入出力の位置が非常に近い場合は、1ビットフリップフロップDFFを配置したときと比較して、配線長は若干増加する可能性があるが、セルの周囲の配線数は変わらない。したがって、4つの1ビットフリップフロップDFFを、4ビットフリップフロップDFF4に変更しても、配線混雑へ与える影響は極めて少ない。その結果、入出力の位置が非常に近いときには、4つの1ビットフリップフロップDFFを、4ビットフリップフロップ化することは、配線混雑へ与えるリスクは同じで、省面積、省電力化が実現できる。 That is, when the input / output positions are very close, the wiring length may slightly increase as compared with the case where the 1-bit flip-flop DFF is arranged, but the number of wirings around the cell does not change. Therefore, even if the four 1-bit flip-flops DFF are changed to the 4-bit flip-flops DFF4, the influence on the wiring congestion is extremely small. As a result, when the input / output positions are very close, converting four 1-bit flip-flops DFF to 4-bit flip-flops has the same risk of wiring congestion, and can realize area saving and power saving.
このように、配線混雑へ与える影響(周囲の配線数)が、1ビットフリップフロップとほぼ同じであれば、多ビット化することで消費電力にとって有利な半導体集積回路の設計を実現することができる。また、図16〜19に示したように、多ビット化は、配置を行ってみないと、効果があるか否かを、正確に判断できない。 As described above, if the influence on the wiring congestion (the number of surrounding wiring lines) is almost the same as that of the 1-bit flip-flop, the design of a semiconductor integrated circuit advantageous for power consumption can be realized by increasing the number of bits. . Also, as shown in FIGS. 16 to 19, it cannot be accurately determined whether or not multi-biting is effective unless arrangement is performed.
そこで、本実施例の半導体集積回路設計支援装置1は、回路設計部31で生成した回路情報(HDL)に基づいて、論理回路情報生成部33が、セルライブラリ記憶部32のセルライブラリCLを用いて回路情報(NETLIST)を生成する。そして、多ビット化配置配線部34が回路情報(NETLIST)に基づいて、実際に半導体集積回路を構築し、この半導体集積回路のフリップフロップを多ビット化して評価することで、多ビット化を行うか否か判断する。すなわち、半導体集積回路設計支援装置1は、フリップフロップの多ビット化において、多ビット化配置配線部34が、多ビットフリップフロップにおけるセルの配置情報に基づいて、該多ビットフリップフロップとの接続を変更し、配置を決定した後に該多ビットフリップフロップの段数を決定する。
Therefore, in the semiconductor integrated circuit
また、多ビット化配置配線部34は、フリップフロップの配線数に基づいて、該フリップフロップを多ビット化する。
Further, the multi-bit arrangement /
さらに、半導体集積回路設計支援装置1は、論理回路情報生成部33が、論理回路情報である回路情報(NETLIST)として、仮想フリップフロップライブラリを生成し、多ビット化配置配線部34が、該仮想フリップフロップライブラリのフリップフロップを多ビット化する。
Furthermore, in the semiconductor integrated circuit
また、多ビット化配置配線部34は、フリップフロップの所定周辺範囲のセルの有無を配置情報から探索する探索部を備え、この探索部の探索結果に基づいて、フリップフロップの多ビット化の適否を判定して、多ビット化を行う。
The multi-bit arrangement /
そこで、本実施例の半導体集積回路設計支援装置1は、図20に示すように、CPU2が、ROM3の半導体集積回路設計支援方法を実行するプログラムに基づいて、半導体集積回路設計支援処理を実行する。
Therefore, in the semiconductor integrated circuit
すなわち、半導体集積回路設計支援装置1は、回路設計部31に、設計対象の回路仕様が入力されると、回路設計部31が回路情報(HDL)を生成する(ステップS101)。
That is, in the semiconductor integrated circuit
次に、論理回路情報生成部33が、回路設計部31の生成した回路情報(HDL)とセルライブラリ記憶部32のセルライブラリCLを利用して回路情報(NETLIST)を生成する(ステップS102)。
Next, the logic circuit
論理回路情報生成部33は、回路情報(NETLIST)として、回路情報(HDL)に応じて、例えば、図21(a)に示すような1ビットフリップフロップDFFを3つ備えた回路の回路情報(NETLIST)を生成する。また、論理回路情報生成部33は、は、回路情報(NETLIST)として、回路情報(HDL)に応じて、図22(a)に示すような1ビットフリップフロップDFFを4つ備えた回路の回路情報(NETLIST)を生成する。
The logic circuit
さらに、論理回路情報生成部33は、回路情報(HDL)に応じて、例えば、図23(a)に示すような1ビットフリップフロップDFFを用いた回路情報(NETLIST)を生成する代わりに、図23(b)に示すような仮想1ビットフリップフロップVDFF1を用いた回路情報(NETLIST)を生成してもよい。すなわち、図23において、図23(a)の1ビットフリップフロップDFFを、仮想1ビットフリップフロップVDFFに置き換えたのが、図23(b)である。仮想1ビットフリップフロップVDFFは、内部に、1ビットフリップフロップDFFがインスタンス化されているため、置き換えの前後は、論理的に等価である。
Furthermore, the logic circuit
次に、半導体集積回路設計支援装置1は、多ビット化配置配線部34が、まず、論理回路情報回路情報(NETLIST)に基づいて、半導体集積回路を構成する配置配線処理を行う(ステップS103)。
Next, in the semiconductor integrated circuit
多ビット化配置配線部34は、仮想1ビットフリップフロップVDFFを用いた場合、論理回路情報回路情報(NETLIST)に基づいて、例えば、図24、図25に示すような回路を構成する配置配線処理を行う。
When the virtual 1-bit flip-flop VDFF is used, the multi-bit arrangement /
多ビット化配置配線部34は、配置配線を行うと、各セルの周囲所定範囲を探索して、他のセルが存在するか判定する(ステップS104)。多ビット化配置配線部34は、この他のセルの有無を、例えば、既知の配置配線ツールを使用して行う。
When the multi-bit placement and
多ビット化配置配線部34の探索する探索範囲は、例えば、図26に示すように、探索の基準となる仮想フリップフロップ(U_ff0)の中心からの距離(両矢印)である。この探索の距離を決定する最も単純な方法は、セルライブラリCLである。すなわち、セルライブラリCLに含まれるセルのサイズは、設計プロセスやライブラリベンダー毎に異なるため、多ビット化配置配線部34は、セルライブラリCL毎に探索範囲を適切な値に設定する。
The search range searched by the multi-bit arrangement and
また、多ビット化配置配線部34は、セルの配置密度によって探索範囲を変えてもよい。この場合、多ビット化配置配線部34は、セルの配置情報を元に、配置密度を算出する。すなわち、配置密度と配線混雑度には一般的に正の相関があることが分かっており、配置密度が高い状態は、配線混雑度として望ましい状態ではない。したがって、多ビット化することにより総エリア数が減少し、配置密度が低下すれば配線混雑に良い結果が得られることが推測されるため、探索範囲を広げることが有効となる。また、配置密度は、チップ全体に対して算出することも可能であるが、例えば、チップの縦と横をそれぞれ4分割して、16のエリアに分け、それぞれの配置密度を算出する等の方法で求めて、それぞれのエリアにより探索範囲を変えてもよい。すなわち、探索範囲を変化させることで、多ビット化を制御することができる。
Further, the multi-bit arrangement /
そして、多ビット化配置配線部34は、上述のようにして、探索処理を行うが、図24の場合、探索範囲(図24に破線の丸で示す範囲)内に他の仮想フリップフロップが存在しない。
The multi-bit arrangement and
したがって、多ビット化配置配線部34は、図24の場合には、近くにセルがないと判断し(ステップS104で、NOのとき)、多ビット化を行うことなく、半導体集積回路設計支援処理を終了する。
Therefore, in the case of FIG. 24, the multi-bit layout /
また、多ビット化配置配線部34は、上述のようにして、探索処理を行うが、図25の場合、まず、セルU_ff0を基準に破線の範囲の探索を行って、U_ff1が見つかり、U_ff1を基準に探索を行って、U_ff0が見つかる。そこで、多ビット化配置配線部34は、U_ff1とU_ff0を多ビット化対象とする。同様に、多ビット化配置配線部34は、U_ff2とU_ff3についても探索を行い、多ビット化対象とする。ところが、多ビット化配置配線部34は、U_ff1とU_ff2とは、探索では見つからず、U_ff1とU_ff2との関係においては、多ビット化の対象から外す。
Further, the multi-bit arrangement /
多ビット化配置配線部34は、探索で近くにセルがあることを見つけると(ステップS104で、YESのとき)、多ビット化処理を行う(ステップS105)。
If the multi-bit placement and
多ビット化配置配線部34は、この多ビット化処理においては、上記探索結果から多ビット対象のセルを決定し、基準となるセルを決定して、基準セルに対して他のセルを、基準セルへ組み合わせて多ビット化する。
In this multi-bit processing, the multi-bit arrangement /
例えば、多ビット化配置配線部34は、図25の場合、図27(a)、(b)に示すように、多ビット化する。すなわち、図25の場合、U_ff0とU_ff1、U_ff2とU_ff3が多ビット化対象である。そこで、多ビット化配置配線部34は、配置情報等からU_ff0とU_ff1のどちらかを多ビット化の基準セルとする。多ビット化配置配線部34は、基準セルを決める方法として、例えば、周囲の配置密度や配線密度等の情報から決定する。一般的に、1ビットフリップフロップセルと比べて2ビットフリップフロップはセルサイズが大きいため、配置密度や配線密度が低いほうを基準セルとして選択する。多ビット化配置配線部34は、いま、図27に示すように、U_ff0、U_ff2を基準セルとする。
For example, in the case of FIG. 25, the multi-bit arrangement /
次に、多ビット化配置配線部34は、選択した2つのフリップフロップが多ビット化が可能であるかを確認する。多ビット化が可能となる条件は、上述のように、制御信号が同じであることである。図27では、U_ff0、U_ff1がともに、リセットなし、イネーブルなし、クロックは同一信号「CLK」での接続であるため、多ビット化が可能である。
Next, the multi-bit arrangement /
そこで、多ビット化配置配線部34は、基準セルであるU_ff0へU_ff1のデータ信号を繋ぎ変える。具体的には、多ビット化配置配線部34は、U_ff1のD0ポートに接続されている信号IN[1]を、U_ff0のD1ポートへ接続し、U_ff1のQ0ポートに接続されている信号n[1]を、U_ff0のQ1ポートに接続する。このとき、多ビット化配置配線部34は、図27(a)に示すように、U_ff0のポート使用情報にD1ポートが使用されたという情報を付与し、U_ff1のポート使用情報に、D0ポートが使用されなくなったという情報を付与する。図27の(a)のように回路情報(NETLIST)を変更して、配線接続を変更すると、図27(b)に示す接続になる。
Therefore, the multi-bit arrangement and
次に、多ビット化配置配線部34は、セルの変更を行う。すなわち、U_ff0のポート使用情報を参照すると、D[0]とD[1]の2つのポートが使用されていることが分かる。そこで、多ビット化配置配線部34は、U_ff0については、図25のVDFF1から、図27に示すように、VDFF2セルへと変更を行う。
Next, the multi-bit arrangement and
また、U_ff1のポート使用情報を参照すると、全てのポートが使用されていないことが分かる。そこで、多ビット化配置配線部34は、U_ff1については、図25のVDFF1から、図27に示すように、VDFF0へと変更を行う。
Also, referring to the port usage information of U_ff1, it can be seen that not all ports are used. Therefore, the multi-bit arrangement and
そして、多ビット化配置配線部34は、U_ff2、U_ff3についても、U_ff0とU_ff1と同様に行って、VDFF2、VDFF0へと変更する。
Then, the multi-bit arrangement /
すなわち、多ビット化配置配線部34は、最終的に仮想フリップフロップのポートの使用状況を確認するだけでビット数を決定し、配置位置を変更することなく、信号の繋ぎかえだけで多ビット化を実行する。
That is, the multi-bit arrangement /
次に、多ビット化配置配線部34は、上記多ビット化による接続変更を実施すると、図28に示すように、再度、配置配線を実施し、配線が完了すると、不要なセルを削除して、セルのビット数変更を確定させる。
Next, when the multi-bit arrangement /
すなわち、多ビット化配置配線部34は、図28(a)に示すように、不要となったVDFF0の回路情報を削除し、図28(b)に示すように、残ったVDFF2によるセルと配線の接続を行う。
That is, the multi-bit arrangement /
この場合、多ビット化配置配線部34は、配線が完了すれば、VDFF0を削除し、セルのビット数変更を確定させるが、配線が完了しなければ、配線混雑度が高い領域にある多ビット仮想フリップフロップのビットをまとめることをやめて、元のVDFF1の配線に戻す。
In this case, when the wiring is completed, the multi-bit arrangement /
なお、本実施例の半導体集積回路設計支援装置1は、置き換え基準セルを決定し、また、最終的に削除する予定のVDFF0を残している。したがって、元の配置配線情報を可能な限り保持することができる。特に、フリップフロップのクロック配線は、初期の配置配線後が最も理想的にクロックツリーが張られた状態でタイミングが最も有利な状態にあり、多ビット化することによるタイミンへの影響をできるだけ少なくすることができる。
Note that the semiconductor integrated circuit
また、多ビット化配置配線部34は、図29に示すように、入出力の位置が近いと、探索した結果、隣接する全てのセルが見つかった場合には、全てのセルを多ビット化の対象とする。
In addition, as shown in FIG. 29, when the input / output positions are close, the multi-bit arrangement /
多ビット化配置配線部34は、探索範囲を、図29に破線の丸で示すように、全ての仮想1ビットフリップフロップVDFF1の探索範囲に、隣の仮想1ビットフリップフロップVDFF1が存在することを見つける。すなわち、多ビット化配置配線部34は、まず、U_ff0を基準に破線の丸の範囲を探索した結果、U_ff1を見つけ、次に、U_ff1を基準に探索を行った結果、U_ff0とU_ff2を見つける。多ビット化配置配線部34は、さらに、U_ff2を基準に探索を行った結果、U_ff1とU_ff3を見つけ、最後に、U_ff3を基準に探索を行った結果、U_ff2を見つける。
The multi-bit arrangement /
したがって、多ビット化配置配線部34は、全てのU_ff0、U_ff1、U_ff2、U_ff3を、多ビット化対象とする。
Therefore, the multi-bit arrangement /
そして、多ビット化配置配線部34は、全てのセルが多ビット化の対象のときには、図30に示すように、新たなセルを追加する方法で、多ビット化する。
Then, when all the cells are to be multi-bited, the multi-bit arrangement /
すなわち、多ビット化配置配線部34は、まず、選択した4つのフリップフロップU_ff0、U_ff1、U_ff2、U_ff3が多ビット化可能であるかを確認する。多ビット化配置配線部34は、この多ビット化可能であるか否かを、上述のようにして判断する。すなわち、多ビット化配置配線部34は、多ビット化が可能となる条件は、制御信号が同じであることであるが、図29の場合、U_ff0、U_ff1、U_ff2、U_ff3の全てが、リセットなし、イネーブルなし、クロックは同一信号「CLK」で接続であるため、多ビット化が可能であると判断する。
That is, the multi-bit arrangement /
そして、U_ff0からU_ff3は、1ビット仮想フリップフロップVDFF1であるため、多ビット化が可能なフリップフロップのビット数の合計は「4」である。 Since U_ff0 to U_ff3 are 1-bit virtual flip-flops VDFF1, the total number of bits of flip-flops capable of multi-biting is “4”.
本実施例の半導体集積回路設計支援装置1は、仮想フリップフロップライブラリセルは、図4から図6に示したように、1ビット、2ビット、4ビットが用意されているため、仮想4ビットフリップフロップVDFF4を採用し、図30に示すように、U_ff4として追加する。
In the semiconductor integrated circuit
多ビット化配置配線部34は、上記のようにして、セルの追加を行うと、制御信号の接続を行う。まず、多ビット化配置配線部34は、U_ff4の制御信号ポート(CKポート)に、U_ff0からU_ff3の制御信号ポートに接続されていた信号と同一の信号を接続する。
When the cells are added as described above, the multi-bit arrangement /
次に、多ビット化配置配線部34は、データ信号の接続を変更する。すなわち、多ビット化配置配線部34は、U_ff0のD0ポートに接続されている信号IN[0]をU_ff4のD0ポートへ接続し、U_ff0のQ0ポートに接続されている信号n[0]をU_ff4のQ0ポートに接続する。多ビット化配置配線部34は、U_ff1のD0ポートに接続されている信号IN[1]をU_ff4のD1ポートへ接続し、U_ff1のQ0ポートに接続されている信号n[1]をU_ff4のQ1ポートに接続する。また、多ビット化配置配線部34は、U_ff2のD0ポートに接続されている信号IN[2]をU_ff4のD2ポートへ接続し、U_ff2のQ0ポートに接続されている信号n[2]をU_ff4のQ2ポートに接続する。さらに、多ビット化配置配線部34は、U_ff3のD0ポートに接続されている信号IN[3]をU_ff4のD3ポートへ接続し、U_ff3のQ0ポートに接続されている信号n[3]をU_ff4のQ3ポートに接続する。
Next, the multi-bit arrangement /
最後に、多ビット化配置配線部34は、接続元となったU_ff0からU_ff3の仮想フリップフロップVDFF1を削除し、図30(a)の回路情報(NETLIST)へ変更する。
Finally, the multi-bit arrangement /
多ビット化配置配線部34は、回路情報(NETLIST)を変更すると、該回路情報(NETLIST)に基づいて配置配線を行って、図30(b)に示すような回路を生成する。
When the circuit information (NETLIST) is changed, the multi-bit arrangement /
このように、本実施例の半導体集積回路設計支援装置1は、回路仕様に基づいて回路設計を行って回路情報(HDL)を生成する回路設計部(回路設計手段)31と、半導体集積回路のセル情報を含むセルライブラリ(回路関連情報)CLを記憶するセルライブラリ記憶部(回路関連情報記憶手段)32と、前記セルライブラリCLを使用して前記回路情報(HDL)に対して論理合成を行って、セルの配置とセルに対する配線の配置配線情報を含む論理回路情報である回路情報(NETLIST)を生成する論理回路情報生成部(論理回路情報生成手段)33と、前記回路情報(NETLIST)の前記配置配線情報に基づいて、前記セルの配置と該セルに対する配線を実施し、該配置配線の実施結果に基づいて前記セルライブラリCLを参照して該回路情報(NETLIST)の少ビットセルを多ビットセルへ多ビット化する多ビット化配置配線部(多ビット化配置配線手段)34と、を備えている。
As described above, the semiconductor integrated circuit
したがって、半導体集積回路の設計において、回路仕様から生成された回路情報(HDL)に対してセルライブラリCLを使用して論理合成してセルをマッピングし、該セルの配置配線情報に基づいて多ビット化することができる。その結果、最適なビット数の多ビットセルを効率的に選択することができる。 Therefore, in designing a semiconductor integrated circuit, a cell is mapped by using a cell library CL to perform logic synthesis on circuit information (HDL) generated from a circuit specification, and multi-bit based on the placement and routing information of the cell. Can be As a result, a multi-bit cell having the optimum number of bits can be efficiently selected.
また、本実施例の半導体集積回路設計支援装置1は、回路仕様に基づいて回路設計を行って回路情報(HDL)を生成する回路設計処理ステップと、セルライブラリ記憶部(回路関連情報記憶手段)32の記憶する半導体集積回路のセル情報を含むセルライブラリ(回路関連情報)CLを使用して前記回路情報(HDL)に対して論理合成を行って、セルの配置とセルに対する配線の配置配線情報を含む論理回路情報である回路情報(NETLIST)を生成する論理回路情報生成処理ステップと、前記回路情報(NETLIST)の前記配置配線情報に基づいて、前記セルの配置と該セルに対する配線を実施し、該配置配線の実施結果に基づいて前記セルライブラリCLを参照して該回路情報(NETLIST)の少ビットセルを多ビットセルへ多ビット化する多ビット化配置配線処理ステップと、を有している半導体集積回路設計支援方法を実行する。
Further, the semiconductor integrated circuit
したがって、半導体集積回路の設計において、回路仕様から生成された回路情報(HDL)に対してセルライブラリCLを使用して論理合成してセルをマッピングし、該セルの配置配線情報に基づいて多ビット化することができる。その結果、最適なビット数の多ビットセルを効率的に選択することができる。 Therefore, in designing a semiconductor integrated circuit, a cell is mapped by using a cell library CL to perform logic synthesis on circuit information (HDL) generated from a circuit specification, and multi-bit based on the placement and routing information of the cell. Can be As a result, a multi-bit cell having the optimum number of bits can be efficiently selected.
さらに、本実施例の半導体集積回路設計支援装置1は、コンピュータに、回路仕様に基づいて回路設計を行って回路情報(HDL)を生成する回路設計処理と、セルライブラリ記憶部(回路関連情報記憶手段)32の記憶する半導体集積回路のセル情報を含むセルライブラリ(回路関連情報)CLを使用して前記回路情報(HDL)に対して論理合成を行って、セルの配置とセルに対する配線の配置配線情報を含む論理回路情報である回路情報(NETLIST)を生成する論理回路情報生成処理と、前記回路情報(NETLIST)の前記配置配線情報に基づいて、前記セルの配置と該セルに対する配線を実施し、該配置配線の実施結果に基づいて前記セルライブラリCLを参照して該回路情報(NETLIST)の少ビットセルを多ビットセルへ多ビット化する多ビット化配置配線処理と、を実行させるプログラムを搭載している。
Further, the semiconductor integrated circuit
したがって、半導体集積回路の設計において、回路仕様から生成された回路情報(HDL)に対してセルライブラリCLを使用して論理合成してセルをマッピングし、該セルの配置配線情報に基づいて多ビット化することができる。その結果、最適なビット数の多ビットセルを効率的に選択することができる。 Therefore, in designing a semiconductor integrated circuit, a cell is mapped by using a cell library CL to perform logic synthesis on circuit information (HDL) generated from a circuit specification, and multi-bit based on the placement and routing information of the cell. Can be As a result, a multi-bit cell having the optimum number of bits can be efficiently selected.
また、本実施例の半導体集積回路設計支援装置1は、前記多ビット化配置配線部34が、前記多ビットセルの前記配置配線情報に基づいて、該多ビットセルに対する接続を変更し、配置を決定した後に該多ビットセルの段数を決定する。
Further, in the semiconductor integrated circuit
したがって、配線密度を考慮した多ビット化を行うことができ、より一層最適なビット数の多ビットセルを効率的に選択することができる。 Therefore, the number of bits can be increased in consideration of the wiring density, and a multi-bit cell having a more optimal number of bits can be efficiently selected.
さらに、本実施例の半導体集積回路設計支援装置1は、前記多ビット化配置配線部34が、前記セルの配線数に基づいて、該セルを多ビット化する。
Furthermore, in the semiconductor integrated circuit
したがって、配線密度を考慮した多ビット化を行うことができ、より一層最適なビット数の多ビットセルを効率的に選択することができる。 Therefore, the number of bits can be increased in consideration of the wiring density, and a multi-bit cell having a more optimal number of bits can be efficiently selected.
また、本実施例の半導体集積回路設計支援装置1は、前記論理回路情報生成部33が、前記回路情報(HDL)に基づいて仮想セルの回路情報(NETLIST)を生成し、前記多ビット化配置配線部34が、前記仮想セルを多ビット化する。
Further, in the semiconductor integrated circuit
したがって、仮想セルを用いて効率的に多ビット化することができ、より最適なビット数の多ビットセルをより一層効率的に選択することができる。 Therefore, it is possible to efficiently increase the number of bits using a virtual cell, and it is possible to more efficiently select a multi-bit cell having a more optimal number of bits.
さらに、本実施例の半導体集積回路設計支援装置1は、前記多ビット化配置配線部34が、前記セル毎に所定周辺範囲におけるセルの有無と配線数を前記配置配線情報から探索する探索部(探索手段)を備え、前記探索部の探索結果に基づいて、前記セルの多ビット化の適否を判定して、多ビット化を行う。
Furthermore, in the semiconductor integrated circuit
したがって、探索によって、より適切な範囲のセルを多ビット化し、また、探索範囲を変化させることで、多ビット化するセルの範囲を制御することができる。その結果、より最適なビット数の多ビットセルを効率的に選択することができる。 Therefore, a cell in a more appropriate range can be multi-bited by searching, and a cell range to be multi-bit can be controlled by changing the search range. As a result, it is possible to efficiently select a multi-bit cell having a more optimal number of bits.
また、本実施例の半導体集積回路設計支援装置1は、前記セルがフリップフロップである。
In the semiconductor integrated circuit
したがって、セルとしてフリップフロップを用いた半導体集積回路の設計において、回路仕様から生成された回路情報(HDL)に対してセルライブラリCLを使用して論理合成してセルをマッピングし、該セルの配置配線情報に基づいて多ビット化することができる。その結果、最適なビット数の多ビットセルを効率的に選択することができる。 Therefore, in designing a semiconductor integrated circuit using a flip-flop as a cell, the cell information is generated by logically synthesizing the circuit information (HDL) generated from the circuit specification using the cell library CL, and the cell is arranged. The number of bits can be increased based on the wiring information. As a result, a multi-bit cell having the optimum number of bits can be efficiently selected.
なお、上記実施例においては、セルとしてフリップフロップを取り上げて説明したが、セルは、フリップフロップに限るものではない。 In the above embodiment, the flip-flop has been described as the cell, but the cell is not limited to the flip-flop.
以上、本発明者によってなされた発明を好適な実施例に基づき具体的に説明したが、本発明は上記実施例で説明したものに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。 The invention made by the present inventor has been specifically described based on the preferred embodiments. However, the present invention is not limited to that described in the above embodiments, and various modifications can be made without departing from the scope of the invention. It goes without saying that it is possible.
1 半導体集積回路設計支援装置
2 CPU
3 ROM
4 RAM
5 不揮発性メモリ
6 入力I/F
7 出力I/F
8 外部I/F
9 バス
11 入力デバイス
12 出力デバイス
31 回路設計部
32 セルライブラリ記憶部
33 論理回路情報生成部
34 多ビット化配置配線部
CL セルライブラリ
DFF 1ビットフリップフロップ
DFF2 2ビットフリップフロップ
DFF4 4ビットフリップフロップ
VkJ0、VkJ1、Vkj2、Vkj4 回路情報
VDFF0 仮想0ビットフリップフロップセル
VDFF1 仮想1ビットフリップフロップセル
VDFF2 仮想2ビットフリップフロップセル
VDFF4 仮想4ビットフリップフロップセル
1 Semiconductor Integrated Circuit
3 ROM
4 RAM
5
7 Output I / F
8 External I / F
9
DFF 1-bit flip-flop
DFF2 2-bit flip-flop
DFF4 4-bit flip-flop
Circuit information of VkJ0, VkJ1, Vkj2, Vkj4
VDFF0 Virtual 0-bit flip-flop cell
VDFF1 Virtual 1-bit flip-flop cell
VDFF2 Virtual 2-bit flip-flop cell
VDFF4 Virtual 4-bit flip-flop cell
Claims (8)
半導体集積回路のセル情報を含む回路関連情報を記憶する回路関連情報記憶手段と、
前記回路関連情報を使用して前記回路情報に対して論理合成を行って、セルの配置とセルに対する配線の配置配線情報を含む論理回路情報を生成する論理回路情報生成手段と、
前記論理回路情報の前記配置配線情報に基づいて、前記セルの配置と該セルに対する配線を実施し、該配置配線の実施結果に基づいて前記回路関連情報を参照して該論理回路情報の少ビットセルを多ビットセルへ多ビット化する多ビット化配置配線手段と、
を備えていることを特徴とする半導体集積回路設計支援装置。 Circuit design means for performing circuit design based on circuit specifications to generate circuit information;
Circuit related information storage means for storing circuit related information including cell information of the semiconductor integrated circuit;
Logic circuit information generating means for performing logic synthesis on the circuit information using the circuit-related information and generating logic circuit information including cell arrangement and wiring arrangement wiring information for the cell;
Based on the placement and routing information of the logic circuit information, the placement and routing of the cells is performed, and the circuit related information is referred to based on the placement and routing results, and the small bit cell of the logic circuit information Multi-bit arrangement and wiring means for multi-biting into a multi-bit cell;
A semiconductor integrated circuit design support apparatus comprising:
前記多ビットセルの前記配置配線情報に基づいて、該多ビットセルに対する接続を変更し、配置を決定した後に該多ビットセルの段数を決定することを特徴とする請求項1記載の半導体集積回路設計支援装置。 The multi-bit arrangement and routing means is:
2. The semiconductor integrated circuit design support device according to claim 1, wherein the connection to the multi-bit cell is changed based on the placement and routing information of the multi-bit cell, and the number of stages of the multi-bit cell is determined after the placement is determined. .
前記セルの配線数に基づいて、該セルを多ビット化することを特徴とする請求項1または請求項2記載の半導体集積回路設計支援装置。 The multi-bit arrangement and routing means is:
3. The semiconductor integrated circuit design support apparatus according to claim 1, wherein the number of bits of the cell is increased based on the number of wirings of the cell.
前記回路情報に基づいて仮想セルの論理回路情報を生成し、
前記多ビット化配置配線手段は、
前記仮想セルを多ビット化することを特徴とする請求項1から請求項3のいずれかに記載の半導体集積回路設計支援装置。 The logic circuit information generating means includes
Generating virtual circuit logic circuit information based on the circuit information;
The multi-bit arrangement and routing means is:
4. The semiconductor integrated circuit design support apparatus according to claim 1, wherein the virtual cell is multi-bited.
前記セル毎に所定周辺範囲におけるセルの有無と配線数を前記配置配線情報から探索する探索手段を備え、
前記探索手段の探索結果に基づいて、前記セルの多ビット化の適否を判定して、多ビット化を行うことを特徴とする請求項1から請求項4のいずれかに記載の半導体集積回路設計支援装置。 The multi-bit arrangement and routing means is:
Search means for searching for the presence / absence of cells and the number of wires in a predetermined peripheral range for each cell from the placement and routing information,
5. The semiconductor integrated circuit design according to claim 1, wherein multi-bit conversion is performed by determining whether or not multi-bit conversion of the cell is appropriate based on a search result of the search means. Support device.
前記セルがフリップフロップであることを特徴とする請求項1から請求項5のいずれかに記載の半導体集積回路設計支援装置。 The semiconductor integrated circuit design support device includes:
6. The semiconductor integrated circuit design support apparatus according to claim 1, wherein the cell is a flip-flop.
回路関連情報記憶手段の記憶する半導体集積回路のセル情報を含む回路関連情報を使用して前記回路情報に対して論理合成を行って、セルの配置とセルに対する配線の配置配線情報を含む論理回路情報を生成する論理回路情報生成処理ステップと、
前記論理回路情報の前記配置配線情報に基づいて、前記セルの配置と該セルに対する配線を実施し、該配置配線の実施結果に基づいて前記回路関連情報を参照して該論理回路情報の少ビットセルを多ビットセルへ多ビット化する多ビット化配置配線処理ステップと、
を有していることを特徴とする半導体集積回路設計支援方法。 A circuit design processing step for generating circuit information by performing circuit design based on the circuit specifications;
Logic circuit including circuit arrangement information and arrangement information of wiring for cells by performing logic synthesis on the circuit information using circuit related information including cell information of semiconductor integrated circuit stored in circuit related information storage means A logic circuit information generation processing step for generating information;
Based on the placement and routing information of the logic circuit information, the placement and routing of the cells is performed, and the circuit related information is referred to based on the placement and routing results, and the small bit cell of the logic circuit information A multi-bit placement and routing process step for multi-biting a multi-bit cell,
A method for supporting the design of a semiconductor integrated circuit, comprising:
回路仕様に基づいて回路設計を行って回路情報を生成する回路設計処理と、
回路関連情報記憶手段の記憶する半導体集積回路のセル情報を含む回路関連情報を使用して前記回路情報に対して論理合成を行って、セルの配置とセルに対する配線の配置配線情報を含む論理回路情報を生成する論理回路情報生成処理と、
前記論理回路情報の前記配置配線情報に基づいて、前記セルの配置と該セルに対する配線を実施し、該配置配線の実施結果に基づいて前記回路関連情報を参照して該論理回路情報の少ビットセルを多ビットセルへ多ビット化する多ビット化配置配線処理と、
を実行させることを特徴とするプログラム。 On the computer,
Circuit design processing for generating circuit information by performing circuit design based on circuit specifications;
Logic circuit including circuit arrangement information and arrangement information of wiring for cells by performing logic synthesis on the circuit information using circuit related information including cell information of semiconductor integrated circuit stored in circuit related information storage means Logic circuit information generation processing for generating information;
Based on the placement and routing information of the logic circuit information, the placement and routing of the cells is performed, and the circuit related information is referred to based on the placement and routing results, and the small bit cell of the logic circuit information Multi-bit arrangement and wiring processing that multi-bits into multi-bit cells,
A program characterized by having executed.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015101883A JP2016218670A (en) | 2015-05-19 | 2015-05-19 | Semiconductor integrated circuit design assist device, semiconductor integrated circuit design assist method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015101883A JP2016218670A (en) | 2015-05-19 | 2015-05-19 | Semiconductor integrated circuit design assist device, semiconductor integrated circuit design assist method, and program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016218670A true JP2016218670A (en) | 2016-12-22 |
Family
ID=57581110
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015101883A Pending JP2016218670A (en) | 2015-05-19 | 2015-05-19 | Semiconductor integrated circuit design assist device, semiconductor integrated circuit design assist method, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2016218670A (en) |
-
2015
- 2015-05-19 JP JP2015101883A patent/JP2016218670A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8677299B1 (en) | Latch clustering with proximity to local clock buffers | |
JP5985900B2 (en) | Behavioral synthesis device, data processing system including behavioral synthesis device, and behavioral synthesis program | |
JP2005182654A (en) | Reconfigurable circuit, processing device having reconfigurable circuit, function determination method of logic circuit in reconfigurable circuit, circuit generation method and circuit | |
KR20210034625A (en) | Hierarchical partial reconfiguration of programmable integrated circuits | |
CN108140067B (en) | Method and system for circuit design optimization | |
JP6517626B2 (en) | Reconfigurable semiconductor device | |
US9779197B1 (en) | Method and system of merging memory cells into multi-bit registers in an integrated circuit layout | |
ES2818523T3 (en) | Systems and methods for configuring a SOPC without the need for external memory | |
KR20170133250A (en) | Non-volatile memory device using dual program operation, memory system including the same and operating method thereof | |
US10303833B1 (en) | Parallelizing timing-based operations for circuit designs | |
JP5063511B2 (en) | Method and system for efficiently utilizing a multi-source network of control logic to achieve timing closure in a clock-driven logic circuit | |
US10216217B1 (en) | Adaptive compilation and execution for hardware acceleration | |
US10437946B1 (en) | Using implemented core sources for simulation | |
US8458634B2 (en) | Latch clustering with proximity to local clock buffers | |
US9792395B1 (en) | Memory utilization in a circuit design | |
US9773083B1 (en) | Post-placement and pre-routing processing of critical paths in a circuit design | |
US9965581B1 (en) | Fanout optimization to facilitate timing improvement in circuit designs | |
US20170039299A1 (en) | Register file circuit design process | |
JP4664724B2 (en) | Semiconductor integrated circuit device and semiconductor integrated circuit device design apparatus | |
US8555232B2 (en) | Wire routing using virtual landing pads | |
JP2016218670A (en) | Semiconductor integrated circuit design assist device, semiconductor integrated circuit design assist method, and program | |
TW201935289A (en) | Method for cell swapping | |
CN117480498A (en) | Dynamically provisioning PCIe devices for bare metal servers at run-time | |
JP7062793B2 (en) | Circuit wiring storage method, FPGA system and storage medium | |
US10534885B1 (en) | Modifying data flow graphs using range information |