JP2012221119A - Semiconductor integrated circuit design support device, design method, and design support program - Google Patents

Semiconductor integrated circuit design support device, design method, and design support program Download PDF

Info

Publication number
JP2012221119A
JP2012221119A JP2011084806A JP2011084806A JP2012221119A JP 2012221119 A JP2012221119 A JP 2012221119A JP 2011084806 A JP2011084806 A JP 2011084806A JP 2011084806 A JP2011084806 A JP 2011084806A JP 2012221119 A JP2012221119 A JP 2012221119A
Authority
JP
Japan
Prior art keywords
circuit
simulation
verified
assertion
register
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.)
Withdrawn
Application number
JP2011084806A
Other languages
Japanese (ja)
Inventor
Kiyomi Fukuyama
喜代実 福山
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 JP2011084806A priority Critical patent/JP2012221119A/en
Publication of JP2012221119A publication Critical patent/JP2012221119A/en
Withdrawn legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To eliminate insertion of a CG cell that is not effective for reduction of power consumption regardless of a specific operation pattern.SOLUTION: In the present invention, an assertion description for verifying whether insertion of a clock gating circuit into a circuit to be verified is effective for reduction of the power consumption of the circuit to be verified is generated. On the basis of the assertion description, a formal simulation for verifying the operation of the circuit to be verified is performed. On the basis of the result of the formal simulation, an insertion constraint, in which whether the clock gating circuit should be inserted into the circuit to be verified is described, is generated.

Description

本発明は、半導体集積回路の設計支援装置、設計方法、及び設計支援プログラムに関し、特に、論理設計における制約事項の設定方法に関する。     The present invention relates to a semiconductor integrated circuit design support apparatus, a design method, and a design support program, and more particularly to a method for setting restrictions in logic design.

近年、低消費電力化を実現するため、フリップフロップ回路に対する不要なクロック入力を一時的に遮断するクロックゲーティング(Clock Gating:CG、ゲーテッドクロック(GC)とも称す)手法が適用されている。クロックゲーティングセル(以下、CGセルと称す)を半導体装置に挿入する方法としては、RTL(Register Transfer Level)記述に明示的に挿入する方法があるが、近年は、膨大なF/F数に対応するため、論理合成時に自動挿入されることが主流となっている。   In recent years, in order to realize low power consumption, a clock gating (Clock Gating: CG, also referred to as gated clock (GC)) technique that temporarily blocks unnecessary clock input to a flip-flop circuit has been applied. As a method of inserting a clock gating cell (hereinafter referred to as a CG cell) into a semiconductor device, there is a method of explicitly inserting it into an RTL (Register Transfer Level) description. In order to cope with this, automatic insertion during logic synthesis has become the mainstream.

論理合成ツール(Logic Synthesis Tool)は、RTL記述によるフリップフロップ回路(以下、F/Fと称す)のイネーブル信号を自動変換することで、CGセルを自動挿入する。RTL記述を論理合成して生成されるネットリストは一意に決まらず、同じRTL記述から異なるネットリストが生成され得る。例えば、論理合成において必要最小限のCGセルが挿入されることもあれば、ゲーティングによる低消費電力化効果(ゲーティング効果)のない無駄なCGセルが挿入されることもある。又、論理合成時の入力制約に従い、F/Fのビット幅に応じて自動挿入される場合、CGセルがF/Fのビット幅に対して一律自動挿入されるため、ゲーティング効果のないF/FにもCGセルが挿入されことがある。このようにゲーティング効果のないCGセルが挿入された場合、面積増加や配線混雑によるレイアウト処理が厳しくなるため、論理合成のやり直しや修正が必要となる。従って、消費電力の削減に効果のあるCGセルを効率的に挿入する技術が求められている。   A logic synthesis tool automatically inserts a CG cell by automatically converting an enable signal of a flip-flop circuit (hereinafter referred to as F / F) according to an RTL description. Netlists generated by logically synthesizing RTL descriptions are not uniquely determined, and different netlists can be generated from the same RTL description. For example, the minimum necessary number of CG cells may be inserted in logic synthesis, or a useless CG cell without a low power consumption effect (gating effect) by gating may be inserted. In addition, in the case of automatic insertion according to the bit width of F / F according to the input constraint at the time of logic synthesis, CG cells are automatically inserted uniformly with respect to the bit width of F / F, so that there is no gating effect. A CG cell may also be inserted into / F. When a CG cell having no gating effect is inserted as described above, layout processing due to an increase in area or wiring congestion becomes severe, so that it is necessary to redo and correct logic synthesis. Therefore, a technique for efficiently inserting a CG cell effective for reducing power consumption is required.

消費電力効果のあるCGセルを選択的に挿入する技術が、例えば特開2002−92065に記載されている(特許文献1参照)。特許文献1では、フリップフロップ(以下、F/Fと称す)の動作条件となるイネーブル信号と当該F/Fとの対応関係が記述されたRTL記述に対し、テストベクトルに従ったシミュレーションが行われる。そして、そのシミュレーション結果に基づきF/Fに対するイネーブル信号のアクティブ率が求められ、このアクティブ率に基づいてCGセルを挿入するF/Fが決定される。   A technique for selectively inserting a CG cell having a power consumption effect is described in, for example, Japanese Patent Application Laid-Open No. 2002-92065 (see Patent Document 1). In Patent Document 1, a simulation according to a test vector is performed on an RTL description in which a correspondence relationship between an enable signal that is an operation condition of a flip-flop (hereinafter referred to as F / F) and the F / F is described. . Then, the active rate of the enable signal for the F / F is obtained based on the simulation result, and the F / F for inserting the CG cell is determined based on the active rate.

特許文献1では、論理合成前にCGセルを挿入するF/Fを決定し、ゲーテッドクロック化したF/F(CGセルを挿入したF/F)をRTL記述に反映している。このため、論理合成では、アクティブ率に基づいて選択されたF/FのみにCGセルが挿入されることとなり、消費電力を効果的に削減することが可能となる。   In Patent Document 1, an F / F into which a CG cell is inserted is determined before logic synthesis, and a gated F / F (an F / F into which a CG cell is inserted) is reflected in the RTL description. For this reason, in logic synthesis, a CG cell is inserted only in the F / F selected based on the active rate, and the power consumption can be effectively reduced.

特開2002−92065JP 2002-92065 A

特許文献1では、テストベクトルに従ったシミュレーション結果を用いてCGセルを挿入するF/Fを決定している。テストベクトルを利用したシミュレーションの場合、特定の動作パタンに対するアクティブ率しか求められない。すなわち、特許文献1の技術では、特定の動作において消費電力の削減効果があると判断できる回路に対してはCGセルを挿入することは有効である。しかし、特定の動作パタンによって消費電力の削減効果が得られるか分からなかった回路に対しては、CGセルを挿入すべきか否かの適切な判断ができない。例えば当該特定の動作パタンの場合には消費電力を低減する効果がなくCGセルを挿入すべきでないと判定できるように見える回路であっても、別の異なる動作パタンの場合にはCGセルを挿入することによって消費電力の低減効果が得られる可能性もあるからである。しかし、テストベクトルを利用して全てのパタンを網羅的にシミュレーションすることは現実的ではない。従って、特許文献1の技術では、回路に特定の動作を実行させた場合の消費電力の削減効果に基づくCGセルの挿入しか行うことができず、回路の消費電力の低減を正確に反映したCGセルの挿入を行うことができないという解決すべき課題が存在する。   In Patent Document 1, an F / F for inserting a CG cell is determined using a simulation result according to a test vector. In the case of simulation using a test vector, only the active rate for a specific motion pattern is obtained. That is, in the technique of Patent Document 1, it is effective to insert a CG cell for a circuit that can be determined to have a power consumption reduction effect in a specific operation. However, an appropriate determination as to whether or not to insert a CG cell cannot be made for a circuit whose power consumption reduction effect is not obtained by a specific operation pattern. For example, in the case of the specific operation pattern, even if the circuit seems to have no effect of reducing the power consumption and it can be determined that the CG cell should not be inserted, the CG cell is inserted in the case of another different operation pattern. This is because there is a possibility that an effect of reducing power consumption can be obtained. However, exhaustively simulating all patterns using test vectors is not realistic. Therefore, in the technique of Patent Document 1, only CG cells can be inserted based on the effect of reducing the power consumption when the circuit performs a specific operation, and the CG accurately reflecting the reduction in the power consumption of the circuit. There is a problem to be solved that a cell cannot be inserted.

上記の課題を解決するために、本発明は、以下に述べられる手段を採用する。その手段を構成する技術的事項の記述には、[特許請求の範囲]の記載と[発明を実施するための形態]の記載との対応関係を明らかにするために、[発明を実施するための形態]で使用される番号・符号が付加されている。ただし、付加された番号・符号は、[特許請求の範囲]に記載されている発明の技術的範囲を限定的に解釈するために用いてはならない。   In order to solve the above problems, the present invention employs the means described below. In the description of technical matters constituting the means, in order to clarify the correspondence between the description of [Claims] and the description of [Mode for Carrying Out the Invention] The number / symbol used in [Form] is added. However, the added numbers and symbols should not be used to limit the technical scope of the invention described in [Claims].

本発明による半導体集積回路の設計支援装置は、アサーション生成部、シミュレーション部、クロックゲーティング効果制約生成部を具備する。アサーション生成部は検証対象の回路にクロックゲーティング回路を挿入することで検証対象の回路の消費電力を低減する効果が得られるか否かを検証するためのアサーション記述を生成する。シミュレーション部は、アサーション記述に基づいて、検証対象の回路の動作を検証するフォーマルシミュレーションを行う。クロックゲーティング効果制約生成部はフォーマルシミュレーションの結果に基づいて、検証対象の回路にクロックゲーティング回路を挿入すべきか否かを記述した挿入制約を生成する。   A design support device for a semiconductor integrated circuit according to the present invention includes an assertion generation unit, a simulation unit, and a clock gating effect constraint generation unit. The assertion generation unit generates an assertion description for verifying whether the effect of reducing the power consumption of the verification target circuit can be obtained by inserting the clock gating circuit into the verification target circuit. The simulation unit performs a formal simulation for verifying the operation of the circuit to be verified based on the assertion description. The clock gating effect constraint generation unit generates an insertion constraint that describes whether or not the clock gating circuit should be inserted into the circuit to be verified, based on the result of the formal simulation.

本発明による半導体集積回路の設計方法は、検証対象の回路にクロックゲーティング回路を挿入することで検証対象の回路の消費電力を低減する効果が得られるか否かを検証するためのアサーション記述をアサーション生成部が生成するステップと、アサーション生成部が生成したアサーション記述に基づいて、フォーマルシミュレーション部が検証対象の回路の動作を検証するフォーマルシミュレーションを行うステップと、フォーマルシミュレーションの結果に基づいて、クロックゲーティング効果制約生成部が検証対象の回路にクロックゲーティング回路を挿入すべきか否かを記述した挿入制約を生成するステップとを具備する。   The semiconductor integrated circuit design method according to the present invention provides an assertion description for verifying whether an effect of reducing power consumption of a circuit to be verified can be obtained by inserting a clock gating circuit into the circuit to be verified. Based on the steps generated by the assertion generation unit, the formal simulation unit verifies the operation of the circuit to be verified based on the assertion description generated by the assertion generation unit, and the clock based on the result of the formal simulation. And a step of generating an insertion constraint describing whether or not the clock gating circuit should be inserted into the circuit to be verified.

上述の半導体集積回路の設計方法は、コンピュータによって実行される設計支援プログラムによって実現されることが好ましい。   The above-described semiconductor integrated circuit design method is preferably realized by a design support program executed by a computer.

本発明ではアサーションベース検証によってクロックゲーティングの挿入効果を検証するため、特定の動作パタンを用いずにクロックゲーティングの挿入箇所を決定することができる。   In the present invention, since the insertion effect of clock gating is verified by assertion-based verification, the insertion location of clock gating can be determined without using a specific operation pattern.

従って、本発明によれば、特定の動作パタンに拠らずに、消費電力の低減に効果のないCGセルの挿入を排除することができる。   Therefore, according to the present invention, it is possible to eliminate insertion of a CG cell that is not effective in reducing power consumption without depending on a specific operation pattern.

図1は、本発明による半導体集積回路の設計支援装置の構成を示す図である。FIG. 1 is a diagram showing the configuration of a semiconductor integrated circuit design support apparatus according to the present invention. 図2は、本発明による設計支援装置の実施の形態における機能ブロック図である。FIG. 2 is a functional block diagram in the embodiment of the design support apparatus according to the present invention. 図3Aは、本発明による半導体集積回路の設計方法の一例を示すフロー図である。FIG. 3A is a flowchart showing an example of a method for designing a semiconductor integrated circuit according to the present invention. 図3Bは、本発明による半導体集積回路の設計方法の一例を示すフロー図である。FIG. 3B is a flowchart showing an example of a method for designing a semiconductor integrated circuit according to the present invention. 図4は、本発明による検証ポイント情報の構造の一例を示す図である。FIG. 4 is a diagram showing an example of the structure of verification point information according to the present invention. 図5は、本発明による検証ポイント情報として利用される消費電力結果ログの一例を示す図である。FIG. 5 is a diagram showing an example of a power consumption result log used as verification point information according to the present invention. 図6は、本発明による検証ポイント情報の一例を示す図である。FIG. 6 is a diagram showing an example of verification point information according to the present invention. 図7は、本発明によるアサーション記述の一例を示す図である。FIG. 7 is a diagram showing an example of an assertion description according to the present invention. 図8は、本発明によるCG挿入制約スクリプトを利用しない場合の論理合成結果(ネットリスト)の一例を示す図である。FIG. 8 is a diagram showing an example of a logical synthesis result (net list) when the CG insertion restriction script according to the present invention is not used. 図9は、本発明によるCG挿入制約スクリプトを利用した場合の論理合成結果(ネットリスト)の一例を示す図である。FIG. 9 is a diagram showing an example of a logical synthesis result (net list) when a CG insertion restriction script according to the present invention is used. 図10は、本発明によるCG挿入制約スクリプトを利用した場合の論理合成結果(ネットリスト)の他の一例を示す図である。FIG. 10 is a diagram showing another example of the logic synthesis result (net list) when the CG insertion restriction script according to the present invention is used. 図11Aは、本発明による半導体集積回路の設計方法の他の一例を示すフロー図である。FIG. 11A is a flowchart showing another example of the method for designing a semiconductor integrated circuit according to the present invention. 図11Bは、本発明による半導体集積回路の設計方法の他の一例を示すフロー図である。FIG. 11B is a flowchart showing another example of the method for designing a semiconductor integrated circuit according to the present invention.

以下、添付図面を参照しながら本発明の実施の形態を説明する。図面において同一、又は類似の参照符号は、同一、類似、又は等価な構成要素を示している。   Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings. In the drawings, the same or similar reference numerals indicate the same, similar, or equivalent components.

(概要)
本発明による半導体集積回路の設計支援装置(以下、設計支援装置と称す)は、RTL記述によるDUT(Device Under Test)にアサーション記述(アサーションモニタ)を追加してフォーマルシミュレーション(フォーマル検証とも称す)を行い、このシミュレーション結果に基づいて論理合成において挿入するCGセルを決定する。フォーマルシミュレーションでは、アサーションモニタが追加された箇所の動作が、そのアサーション記述によって検証されるため、検証対象箇所の全ての動作を網羅的に検証することができる。このため、特定の動作パタンに拠らずに、挿入するCGセルを論理合成前に決定することが可能となる。
(構成)
図1及び図2を参照して、本発明による設計支援装置10の構成を説明する。図1は、本発明による設計支援装置10の実施の形態における構成図である。設計支援装置10は、バス16を介して相互に接続されるCPU11と、RAM12と、記憶装置13と、入力装置14と、出力装置15とを具備する。記憶装置13はハードディスクやメモリ等に例示される外部記憶装置である。又、入力装置14は、キーボードやマウス等のユーザによって操作されることで、各種データをCPU11や記憶装置13に出力する。出力装置15は、モニタやプリンタに例示され、CPU11から出力される半導体装置のレイアウト結果をユーザに対し視認可能に出力する。
(Overview)
A semiconductor integrated circuit design support apparatus (hereinafter referred to as a design support apparatus) according to the present invention adds formal assertion (also referred to as formal verification) by adding an assertion description (assertion monitor) to a DUT (Device Under Test) based on RTL description. The CG cell to be inserted in the logic synthesis is determined based on the simulation result. In the formal simulation, since the operation of the part to which the assertion monitor is added is verified by the assertion description, all the operations of the verification target part can be comprehensively verified. For this reason, it is possible to determine the CG cell to be inserted before logic synthesis without depending on a specific operation pattern.
(Constitution)
With reference to FIG.1 and FIG.2, the structure of the design support apparatus 10 by this invention is demonstrated. FIG. 1 is a configuration diagram of an embodiment of a design support apparatus 10 according to the present invention. The design support apparatus 10 includes a CPU 11, a RAM 12, a storage device 13, an input device 14, and an output device 15 that are connected to each other via a bus 16. The storage device 13 is an external storage device exemplified by a hard disk and a memory. The input device 14 outputs various data to the CPU 11 and the storage device 13 by being operated by a user such as a keyboard and a mouse. The output device 15 is exemplified by a monitor and a printer, and outputs the layout result of the semiconductor device output from the CPU 11 so as to be visible to the user.

記憶装置13は、DUT情報20、制約スクリプト30、設計支援プログラム40を格納している。CPU11は、入力装置14からの入力に応答して、記憶装置13内の設計支援プログラム40を実行し、挿入するCGセルの決定(CG挿入制約の生成)及び論理合成によるネットリストの作成を行う。この際、記憶装置13からの各種データやプログラムはRAM12に一時格納され、CPU11は、RAM12内のデータを用いて各種処理を実行する。尚、CG挿入制約生成処理と論理合成処理は、異なるプログラムや装置によって実現されても構わない。   The storage device 13 stores DUT information 20, a restriction script 30, and a design support program 40. In response to the input from the input device 14, the CPU 11 executes the design support program 40 in the storage device 13, determines a CG cell to be inserted (generates a CG insertion constraint), and creates a netlist by logic synthesis. . At this time, various data and programs from the storage device 13 are temporarily stored in the RAM 12, and the CPU 11 executes various processes using the data in the RAM 12. Note that the CG insertion constraint generation process and the logic synthesis process may be realized by different programs and apparatuses.

DUT情報20は、RTL記述による設計対象回路(DUT)である。ここでは、論理合成対象回路のRTL記述がDUT情報20として記録される。DUT情報20は、一般の論理合成で利用されるRTL記述が好適に利用される。制約スクリプト30は、DUTの使用条件や制約を規定したスクリプトである。例えば使用条件としてDUT(半導体集積回路)の動作環境(温度や使用電圧)があり、制約としてクロック周波数や遅延値がある。制約スクリプト30も一般の論理合成で利用される使用条件及び制約が定義されたスクリプトが好適に利用される。   The DUT information 20 is a design target circuit (DUT) based on the RTL description. Here, the RTL description of the logic synthesis target circuit is recorded as the DUT information 20. The DUT information 20 is preferably an RTL description used in general logic synthesis. The restriction script 30 is a script that defines the use conditions and restrictions of the DUT. For example, there are operating conditions (temperature and operating voltage) of a DUT (semiconductor integrated circuit) as usage conditions, and there are a clock frequency and a delay value as constraints. As the constraint script 30, a script in which usage conditions and constraints used in general logic synthesis are defined is preferably used.

設計支援プログラム40は、CPU11によって実行されることで、図2に示すアサーション生成部41、シミュレーション部42、CG挿入制約生成部43、論理合成部44の各機能を実現する。   The design support program 40 is executed by the CPU 11 to realize the functions of the assertion generation unit 41, the simulation unit 42, the CG insertion constraint generation unit 43, and the logic synthesis unit 44 shown in FIG.

アサーション生成部41は、DUT情報20からアサーション検証対象を抽出するとともに、監視対象の動作仕様を定義したアサーション記述(アサーションモニタ)をアサーション言語(例示:SVA(System Verilog Assertion)やPSL(Property Specification Language))により生成する。生成されたアサーションモニタはアサーション記述ファイル22として記憶装置13に記録される。シミュレーション部42は、設計者が設定する信号の値やRTL記述を入力として検証対象の回路に信号を入力した場合の出力を設計者に通知する論理シミュレータや、検証対象となる回路の消費電力の値を出力して設計者に通知する消費電力解析ツールといったプログラムがCPU11によって実行されることで実現される。また、後述するが、シミュレーション部42は、フォーマル検証(フォーマルシミュレーション)を行っても良い。この場合、シミュレーション部42は、CPU11がフォーマル検証ツールを実行することで、フォーマル検証を実行するハードウェア資源として機能する。フォーマル検証は、上述した論理シミュレータや消費電力解析ツールとは異なり、設計者が指定した特定の信号値に基づいてその特定の信号値に対応した信号値を出力結果とするのではない。すなわちフォーマル検証は、検証の対象となっている回路のRTL記述から当該回路が出力する可能性がある結果を数学的に解析して証明するものである。例えばシミュレーション部42は、RTL記述から検証対象となっている回路の状態遷移図を導き出し、その状態遷移図を追っていくことで当該回路の出力となるあらゆる組み合わせを導き出す。すなわち、フォーマル検証は、上記した論理シミュレータや消費電力解析ツールとは異なり、設計者が指定する信号値に依存しない網羅的な解析結果が得られることを特徴としている。なお、以下、本明細書では、検証対象の回路の具体例としてフリップフロップ、あるいは複数のフリップフロップから構成されるレジスタが例示されるが、検証対象の回路はこれに限らず、そのほかの回路であってもよい。   The assertion generation unit 41 extracts an assertion verification target from the DUT information 20 and uses an assertion description (assertion monitor) defining an operation specification of the monitoring target as an assertion language (example: SVA (System Verilog Assertion) or PSL (Property Specification Language). )). The generated assertion monitor is recorded in the storage device 13 as an assertion description file 22. The simulation unit 42 is a logic simulator for notifying the designer of an output when a signal is input to a circuit to be verified with a signal value or RTL description set by the designer as an input, or the power consumption of the circuit to be verified. This is realized by the CPU 11 executing a program such as a power consumption analysis tool that outputs a value and notifies the designer. As will be described later, the simulation unit 42 may perform formal verification (formal simulation). In this case, the simulation unit 42 functions as a hardware resource that executes formal verification when the CPU 11 executes the formal verification tool. In the formal verification, unlike the logic simulator and power consumption analysis tool described above, the signal value corresponding to the specific signal value is not output as the output result based on the specific signal value designated by the designer. In other words, formal verification is performed by mathematically analyzing and proving the result that the circuit may output from the RTL description of the circuit to be verified. For example, the simulation unit 42 derives a state transition diagram of a circuit to be verified from the RTL description, and derives all combinations that become outputs of the circuit by following the state transition diagram. That is, the formal verification is characterized in that a comprehensive analysis result that does not depend on the signal value specified by the designer can be obtained unlike the logic simulator and the power consumption analysis tool described above. Hereinafter, in this specification, a flip-flop or a register including a plurality of flip-flops is exemplified as a specific example of the circuit to be verified. However, the circuit to be verified is not limited to this, and other circuits may be used. There may be.

シミュレーション部42は、アサーションモニタをDUT情報20に挿入することでシミュレーション用のDUT情報を生成し、当該DUT情報に対してフォーマルシミュレーションを行う。シミュレーション部42は、フォーマルシミュレーションの前に所定のテストパタンに従ったダイナミックシミュレーションを行っても良い。ここで、ダイナミックシミュレーションとは、上述した論理シミュレータによって実行されるシミュレーションのこと意味しており、検証対象の回路が設計者によって指定された信号値に応じてどのような信号値を出力するかを解析する。この点については第2の実施の形態で述べる。   The simulation unit 42 generates DUT information for simulation by inserting an assertion monitor into the DUT information 20 and performs a formal simulation on the DUT information. The simulation unit 42 may perform a dynamic simulation according to a predetermined test pattern before the formal simulation. Here, the dynamic simulation means a simulation executed by the above-described logic simulator, and what kind of signal value the verification target circuit outputs according to the signal value designated by the designer. To analyze. This point will be described in the second embodiment.

CG挿入制約生成部43は、フォーマルシミュレーション結果に基づいてDUTに挿入するCGセルを設定する(DUTへの挿入を禁止するCGセルを設定する)。あるいは、CG挿入制約生成部43は、フォーマルシミュレーション結果に基づいてDUTに挿入するCGセルの位置を設定する(DUTへの挿入を禁止するCGセルの位置を設定する)。CG挿入制約生成部43は、この設定に基づきDUTに挿入する(DUTへの挿入を禁止する)CGセル制約スクリプトを生成し、CG挿入制約スクリプト24として記憶装置13に記録する。   The CG insertion constraint generation unit 43 sets CG cells to be inserted into the DUT based on the formal simulation result (sets CG cells that are prohibited from being inserted into the DUT). Alternatively, the CG insertion constraint generation unit 43 sets the position of the CG cell to be inserted into the DUT based on the formal simulation result (sets the position of the CG cell that is prohibited from being inserted into the DUT). Based on this setting, the CG insertion constraint generation unit 43 generates a CG cell constraint script to be inserted into the DUT (inhibition of insertion into the DUT), and records it in the storage device 13 as the CG insertion constraint script 24.

論理合成部44は、一般的な論理合成ツールと同様に、DUT情報20(RTL記述)を解析して論理式に変換しネットリスト25を生成する。この際、制約スクリプト30やCG挿入制約スクリプト24に従い、回路の最適化(例えば論理圧縮や回路面積の縮小)を行う。本発明では、CG挿入制約スクリプト24に従う最適化により、低消費電力化に不要なCGセルが削除される(あるいは、低消費電力化に必要なCGセルのみが選択的に挿入される)。   The logic synthesis unit 44 analyzes the DUT information 20 (RTL description) and converts it into a logical expression to generate a netlist 25, as in a general logic synthesis tool. At this time, circuit optimization (for example, logic compression and circuit area reduction) is performed according to the constraint script 30 and the CG insertion constraint script 24. In the present invention, CG cells that are unnecessary for reducing power consumption are deleted by optimization according to the CG insertion restriction script 24 (or only CG cells necessary for reducing power consumption are selectively inserted).

以上のような構成により、本発明による設計支援装置10は、アサーション記述(アサーションモニタ)を挿入したDUT情報(RTL記述)を用いてフォーマルシミュレーションを行い、この結果に基づいて低消費電力化に不要なCGセルを排除するための制約を生成する。又、論理合成において、この制約を利用することで、低消費電力化に不要なCGセルを排除したネットリストを作成することが可能となる。   With the configuration as described above, the design support apparatus 10 according to the present invention performs a formal simulation using DUT information (RTL description) in which an assertion description (assertion monitor) is inserted, and is unnecessary for reducing power consumption based on the result. Constraints for eliminating unnecessary CG cells are generated. Further, by using this restriction in logic synthesis, it is possible to create a net list from which CG cells unnecessary for reducing power consumption are eliminated.

(動作)
第1の実施の形態
以下、図3Aから図8を参照して、本発明による半導体集積回路の設計方法の第1の実施の形態を説明する。図3A及び図3Bは、本発明による半導体集積回路の設計方法の一例を示すフロー図である。
(Operation)
First Embodiment Hereinafter, a first embodiment of a semiconductor integrated circuit design method according to the present invention will be described with reference to FIGS. 3A to 8. 3A and 3B are flowcharts showing an example of a method for designing a semiconductor integrated circuit according to the present invention.

アサーション生成部41は、先ず、DUT情報20を解析してアサーションモニタの挿入箇所となるアサーション検証ポイントを特定する(ステップS101)。詳細には、アサーション生成部41は、DUT情報20を解析してアサーションモニタを挿入する箇所、すなわちアサーション記述によって動作を検証する箇所(アサーション検証ポイント)を特定する。本発明では、論理合成においてCGセルが挿入され得る箇所が監視ポイントとなる。このため、アサーション生成部41は、論理合成においてCGセルを挿入する条件となるクロックゲーティング条件(例えばイネーブル信号)をアサーション検証ポイントとして特定する。   The assertion generation unit 41 first analyzes the DUT information 20 and specifies an assertion verification point that is an insertion position of the assertion monitor (step S101). Specifically, the assertion generation unit 41 analyzes the DUT information 20 and specifies a place where an assertion monitor is inserted, that is, a place where an operation is verified by an assertion description (assertion verification point). In the present invention, a monitoring point is a location where a CG cell can be inserted in logic synthesis. Therefore, the assertion generation unit 41 specifies a clock gating condition (for example, an enable signal) that is a condition for inserting a CG cell in logic synthesis as an assertion verification point.

ステップS101において特定されたアサーション検証ポイントは検証ポイント情報21として記憶装置13に記録される。図4は、本発明による検証ポイント情報21の構造の一例を示す図である。論理合成部44では、クロック信号、イネーブル信号、レジスタ(又はF/F)によってCGセルを挿入する箇所を特定する。このため、アサーション生成部41は、DUT情報20から少なくともクロック信号、イネーブル信号、レジスタ(又はF/F)を示す情報(クロック識別子211、イネーブル識別子212、レジスタ識別子213)を抽出し、それぞれを対応付けて検証ポイント情報21として記録する。尚、検証ポイント情報21としては、少なくともイネーブル信号とレジスタ(又はF/F)の組合せが抽出されればよいため、クロック識別子211は省略され得る。   The assertion verification point specified in step S101 is recorded in the storage device 13 as verification point information 21. FIG. 4 is a diagram showing an example of the structure of the verification point information 21 according to the present invention. The logic synthesizer 44 identifies the location where the CG cell is inserted by a clock signal, an enable signal, and a register (or F / F). For this reason, the assertion generation unit 41 extracts at least a clock signal, an enable signal, and information (clock identifier 211, enable identifier 212, register identifier 213) indicating a register (or F / F) from the DUT information 20, and supports each of them. In addition, it is recorded as verification point information 21. As the verification point information 21, at least the combination of the enable signal and the register (or F / F) may be extracted, and therefore the clock identifier 211 can be omitted.

例えば、検証ポイント情報21の抽出ツールとして、一般的な消費電力解析ツールが好適に利用される。具体的には、アトレンタ社によるSpyGlass−Powerツールが利用される。そのためにまずCPU11は上述した論理シミュレータの機能を実現するため、記憶装置13にアクセスして設計支援プログラム40の内の論理シミュレータを読み出し実行する。当該実行によりシミュレーション部42は、設計者が指定した信号値およびRTL記述に基づいて、検証対象である回路、例えばイネーブル信号に基づき動作するレジスタの出力結果を得る。次にCPU11は、記憶装置13から設計支援プログラム40内に含まれる消費電力解析ツール、例えば上述のSpyGlass−Powerツールを読み出して実行する。シミュレーション部42は、論理シミュレータの実行結果を入力とし、検証対象の回路の消費電力の解析を行う。ここで、消費電力解析ツールの実行によって作成される消費電力結果には、イネーブル信号と、これに関連するレジスタ及び当該レジスタに入力されるクロック信号が示される。消費電力解析ツールは、レジスタの動作率(Duty−Cycle)に関わらずDUTにおける全てのイネーブル信号と関連するレジスタの組合せを抽出するため、本発明における検証ポイント情報21の抽出ツールとして好適に利用され得る。アサーション生成部41は、このようなツールを利用することで、DUT情報20から検証ポイント情報21を網羅的に抽出することができる。シミュレーション部42は、例えば消費電力解析ツールの実行結果を記憶装置13に書き込んで記憶させると共に、出力装置15を介して出力し、設計者に当該実行結果を通知する。   For example, a general power consumption analysis tool is preferably used as the verification point information 21 extraction tool. Specifically, the SpyGlass-Power tool by Alenta is used. For this purpose, first, the CPU 11 accesses the storage device 13 to read and execute the logic simulator in the design support program 40 in order to realize the function of the logic simulator described above. Based on the execution, the simulation unit 42 obtains the output result of the circuit to be verified, for example, the register that operates based on the enable signal, based on the signal value and RTL description specified by the designer. Next, the CPU 11 reads out and executes a power consumption analysis tool included in the design support program 40, for example, the above-described SpyGlass-Power tool from the storage device 13. The simulation unit 42 receives the execution result of the logic simulator as input and analyzes the power consumption of the circuit to be verified. Here, the power consumption result created by executing the power consumption analysis tool indicates an enable signal, a register related to the enable signal, and a clock signal input to the register. The power consumption analysis tool is preferably used as an extraction tool for the verification point information 21 in the present invention, because it extracts all combinations of registers related to enable signals in the DUT regardless of the register operation rate (Duty-Cycle). obtain. The assertion generation unit 41 can exhaustively extract the verification point information 21 from the DUT information 20 by using such a tool. For example, the simulation unit 42 writes and stores the execution result of the power consumption analysis tool in the storage device 13 and outputs it via the output device 15 to notify the designer of the execution result.

図5は、SpyGlass−Powerツールによって得られた消費電力結果ログの一例を示す図である。図5を参照して、消費電力結果ログには、クロック信号(Clock)及びイネーブル信号(Enable)に関連するレジスタのサイズ(Register width)、動作率(Duty−Cycle(Enable))、有効クロック(Activity(Clock))、ゲーティングがない場合の消費電力(Power(w/o gating))、ゲーティングされた場合の消費電力(Power(gating))、ゲーティング有無間の消費電力差(Power(Difference))、モジュール階層(レジスタ位置(Hierarchy))、レジスタ識別子(Registers Affected)が、記録されている。ここで、上段の行のレジスタ識別子には、“¥r1_reg[0:35]”と記載され、下段の行のレジスタ識別子には“¥r3_reg[0:35]”と記載されている。これらはそれぞれレジスタの名称を意味しており、この例では“r1”というレジスタは36ビットの値を記憶可能であることになる。具体的にはレジスタ“r1”は、1ビットの記憶素子であるフリップフロップ(F/F)を36個有する。“r3”という名称のレジスタについても同様である。これらのF/Fのそれぞれには、イネーブル信号が入力されている。なお、このレジスタ識別子に記載されている回路が、消費電力解析ツールが検証対象としている回路になる。以下では具体例として、これらのレジスタが検証対象の回路であるとして説明する。   FIG. 5 is a diagram illustrating an example of a power consumption result log obtained by the SpyGlass-Power tool. Referring to FIG. 5, the power consumption result log includes a register size related to the clock signal (Clock) and the enable signal (Enable), an operation rate (Duty-Cycle (Enable)), an effective clock ( Activity (Clock)), power consumption when there is no gating (Power (w / o gating)), power consumption when gating (Power (gating)), power consumption difference between presence / absence of gating (Power (w)) Difference)), module hierarchy (register location (Hierarchy)), and register identifier (Registers Affected). Here, the register identifier in the upper row is described as “¥ r1_reg [0:35]”, and the register identifier in the lower row is described as “¥ r3_reg [0:35]”. These mean the names of the registers. In this example, the register “r1” can store a 36-bit value. Specifically, the register “r1” has 36 flip-flops (F / F) which are 1-bit storage elements. The same applies to the register named “r3”. An enable signal is input to each of these F / Fs. Note that the circuit described in the register identifier is a circuit to be verified by the power consumption analysis tool. In the following, as a specific example, it is assumed that these registers are circuits to be verified.

図5における、クロック信号(Clock)とは、例えば半導体集積回路内に設けられたPLL等の発振回路が出力したクロック信号であり、クロックツリーを介して半導体集積回路内の各回路に伝達される。図5では“mc_top.clk_i 211”の記載が2ヶ所ある。“mc_top.clk_i”はクロック信号の名称である。したがって、これらの同一名称のクロック信号はそれぞれ周波数が同一であり、クロックスキューがなければ同位相でトグルするクロック信号である。この例では、レジスタ“r1”とレジスタ“r3”に入力されるクロックは共に“mc_top.clk_i 211”であり、同じクロック信号がそれぞれのレジスタの各F/Fに入力されていることになる。   The clock signal (Clock) in FIG. 5 is a clock signal output from an oscillation circuit such as a PLL provided in the semiconductor integrated circuit, for example, and is transmitted to each circuit in the semiconductor integrated circuit via the clock tree. . In FIG. 5, there are two descriptions of “mc_top.clk_i 211”. “Mc_top.clk_i” is the name of the clock signal. Therefore, these clock signals having the same name have the same frequency, and are clock signals that toggle in the same phase if there is no clock skew. In this example, the clocks input to the registers “r1” and “r3” are both “mc_top.clk_i 211”, and the same clock signal is input to each F / F of each register.

動作率(Duty−Cycle(Enable))の列には、上段の行に“0.00”、下段の行に“1.00”と記載されている。ここで、クロックゲーティング回路にはクロック信号とイネーブル信号が入力される。イネーブル信号がアクティブである場合にはゲーティング回路はクロック信号のパルスを後段の回路に出力し、イネーブル信号がインアクティブであればゲーティング回路はパルスを出力しない。このようなクロックゲーティング回路の最も簡単な例はクロック信号とイネーブル信号を入力する2入力のANDゲートである。そして動作率(Duty−Cycle(Enable))の値が“0.00”であれば、このイネーブル信号がシミュレーション(電源解析シミュレーション)を実行している間、常にインアクティブであることを示し、“1.00”であれば、当該イネーブル信号がシミュレーション(電源解析シミュレーション)を実行している間、常にアクティブであることを意味する。なお、図5では動作率の値として“0.00”と“1.00”の2種類の値しか示されていないが、実際には“0.3”、“0.5”、“0.7”といった値であってもよい。そしてこの動作率の値は、CPU11が消費電力解析シミュレーションの前に実行した論理シミュレータに対する入力であり、設計者が設定した信号値である。また、上段の行、すなわちレジスタ“r1”に入力されるイネーブル信号は“enable 1”であり、下段の行、すなわちレジスタ“r3”に入力されるイネーブル信号は“enable 2”であることが分かる。名称が異なるため、これらは別々のイネーブル信号である。なお、イネーブル信号は、回路構成上、複数の論理回路の論理演算の結果として生成される場合がある。例えば“enable 1”は、実際の半導体集積回路では、メモリに対するアドレスを指定する信号の1ビットと、ライトイネーブル信号のAND演算の結果として生成されることもある。“enable 2”についても同様である。   In the column of the operation rate (Duty-Cycle (Enable)), “0.00” is described in the upper row and “1.00” is described in the lower row. Here, a clock signal and an enable signal are input to the clock gating circuit. When the enable signal is active, the gating circuit outputs a pulse of the clock signal to the subsequent circuit, and when the enable signal is inactive, the gating circuit does not output the pulse. The simplest example of such a clock gating circuit is a two-input AND gate that inputs a clock signal and an enable signal. If the value of the operation rate (Duty-Cycle (Enable)) is “0.00”, this indicates that the enable signal is always inactive during the simulation (power supply analysis simulation). If it is 1.00 ", it means that the enable signal is always active during the simulation (power supply analysis simulation). In FIG. 5, only two types of values “0.00” and “1.00” are shown as the values of the operation rate, but in reality, “0.3”, “0.5”, “0” .7 "may be used. The operation rate value is an input to the logic simulator executed by the CPU 11 before the power consumption analysis simulation, and is a signal value set by the designer. Further, it is understood that the enable signal input to the upper row, that is, the register “r1” is “enable 1”, and the enable signal input to the lower row, that is, the register “r3” is “enable 2”. . Since the names are different, these are separate enable signals. Note that the enable signal may be generated as a result of a logical operation of a plurality of logic circuits due to the circuit configuration. For example, “enable 1” may be generated as a result of an AND operation of one bit of a signal designating an address for a memory and a write enable signal in an actual semiconductor integrated circuit. The same applies to “enable 2”.

図5における有効クロック(Activity(Clock))は、検証対象となっている回路、この説明では具体例としてレジスタ“r1”と“r3”に実際に入力されているクロック信号の周波数を示す。図5の例ではレジスタ“r1”もレジスタ“r3”もそれぞれ“2.00”の値が示されている。有効クロックの値が“2.00”の場合、レジスタ“r1”と“r3”を含む半導体集積回路中の最大の周波数がレジスタ“r1”と“r3”に入力されていることを意味する。また、有効クロックの値が“1.00”の場合には上記した最大の周波数の1/2の周波数が検証対象の回路に入力されることになる。   The effective clock (Activity (Clock)) in FIG. 5 indicates the frequency of the clock signal actually input to the circuit to be verified, in this description as a specific example, the registers “r1” and “r3”. In the example of FIG. 5, both the register “r1” and the register “r3” have values of “2.00”. When the value of the effective clock is “2.00”, it means that the maximum frequency in the semiconductor integrated circuit including the registers “r1” and “r3” is input to the registers “r1” and “r3”. When the value of the effective clock is “1.00”, a frequency that is ½ of the maximum frequency described above is input to the circuit to be verified.

ゲーティングがない場合の消費電力(Power(w/o gating))に関しては、レジスタ“r1”、“r3”共に“186μW”の電力を消費していることが分かる。一方、ゲーティングされた場合の消費電力(Power(gating))を見ると、レジスタr1は18.7μWの電力を消費しているのに対し、レジスタ“r3”は“800μW”の電力を消費している。これは、レジスタ“r1”は動作率(Duty−Cycle(Enable))の値が“0.00”であるため、ゲーティング回路を挿入することで効果的に電力消費を抑制できることを意味している。一方、レジスタ“r3”は、動作率の値が“1.00”であり、イネーブル信号が常にアクティブであるため、ゲーティング回路を挿入してもレジスタ“r3”が消費する電力にゲーティング回路自体が消費する電力が上乗せされてしまうため、値が“800μW”に上昇しているのである。ゲーティング有無間の消費電力差(Power(Difference))はゲーティングがない場合の消費電力(Power(w/o gating))とゲーティングされた場合の消費電力(Power(gating))の差分である。   As for the power consumption (Power (w / o gating)) when there is no gating, it can be seen that the registers “r1” and “r3” both consume “186 μW”. On the other hand, when looking at the power consumption (Power (gating)) when gated, the register r1 consumes 18.7 μW while the register “r3” consumes “800 μW”. ing. This means that the register “r1” has an operation rate (Duty-Cycle (Enable)) value of “0.00”, so that power consumption can be effectively suppressed by inserting a gating circuit. Yes. On the other hand, since the register “r3” has an operation rate value of “1.00” and the enable signal is always active, the gating circuit uses the power consumed by the register “r3” even when the gating circuit is inserted. Since the power consumed by itself is added, the value is increased to “800 μW”. The power consumption difference (Power (Difference)) between the presence and absence of gating is the difference between the power consumption when there is no gating (Power (w / o gating)) and the power consumption when gating (Power (gating)). is there.

モジュール階層(レジスタ位置(Hierarchy))はモジュールの名称を記載しており、レジスタ“r1”や“r3”が属するモジュール名がこの記載で分かる。   The module hierarchy (register location (Hierarchy)) describes the name of the module, and the name of the module to which the registers “r1” and “r3” belong can be found from this description.

消費電力解析ツールでは、従来技術と同様にテストパタンを利用した消費電力シミュレーションを行っているため、検証対象の回路が消費する電力の値等の具体的なシミュレーション結果は本発明では利用しない。しかし、本発明によるアサーション生成部41は、消費電力解析ツールの実行の結果として抽出されたクロック識別子211、イネーブル識別子212、レジスタ識別子213を検証ポイント情報21に使用する。例えば、アサーション生成部41は、図5に示す消費電力解析結果から、図6に示す検証ポイント情報21を抽出する。ここでは、クロック識別子211“mc_top.clk_i”、イネーブル識別子212“enable 1”、レジスタ識別子213“¥r1_reg[0:35]”の組合せと、クロック識別子211“mc_top.clk_i”、イネーブル識別子212“enable 2”、レジスタ識別子213“¥r3_reg[0:35]”の組合せが、検証ポイント情報21として抽出される。   Since the power consumption analysis tool performs power consumption simulation using a test pattern as in the prior art, specific simulation results such as the value of power consumed by the circuit to be verified are not used in the present invention. However, the assertion generation unit 41 according to the present invention uses the clock identifier 211, the enable identifier 212, and the register identifier 213 extracted as a result of the execution of the power consumption analysis tool for the verification point information 21. For example, the assertion generation unit 41 extracts the verification point information 21 illustrated in FIG. 6 from the power consumption analysis result illustrated in FIG. Here, a combination of a clock identifier 211 “mc_top.clk_i”, an enable identifier 212 “enable 1”, a register identifier 213 “¥ r1_reg [0:35]”, a clock identifier 211 “mc_top.clk_i”, an enable identifier 212 “enable”. 2 ”and the register identifier 213“ ¥ r3_reg [0:35] ”are extracted as the verification point information 21.

尚、レジスタ位置を特定するモジュール階層(Hierarchy)も検証ポイント情報21として抽出されても構わない。図5に示す一例では、レジスタ“¥r1_reg[0:35]の位置を示す“mc_top.u3.u0”、レジスタ“¥r3_reg[0:35]の位置を示す“mc_top.u3.u0”がそれぞれ検証ポイント情報21として抽出されても良い。   It should be noted that a module hierarchy (Hierarchy) for specifying the register position may be extracted as the verification point information 21. In the example shown in FIG. 5, “mc_top. Indicating the location of the register“ ¥ r1_reg [0:35] ”. u3. “0” and “mc_top.u3.u0” indicating the position of the register “¥ r3_reg [0:35]” may be extracted as the verification point information 21, respectively.

本実施例では、一般の消費電力解析ツールを利用した検証ポイント情報21の抽出方法を一例としたが、DUT情報20から全てのイネーブル信号とこれに関連するレジスタとの組合せを抽出できればこれに限らない。上記の消費電力解析ツールを使用した検証ポイント情報21の抽出は一例であり、請求項の記載を消費電力解析ツールの結果を用いることに限定しなくても、本発明は明確に理解されるところである。   In this embodiment, the extraction method of the verification point information 21 using a general power consumption analysis tool is taken as an example. However, the present invention is not limited to this, as long as combinations of all enable signals and related registers can be extracted from the DUT information 20. Absent. Extraction of the verification point information 21 using the power consumption analysis tool described above is an example, and the present invention can be clearly understood without limiting the description of the claims to using the result of the power consumption analysis tool. is there.

続いて、アサーション生成部41は、検証ポイント情報21を利用してCG効果チェック用アサーションを生成する(ステップS102)。ここでのCG効果チェック用アサーションとは、より大略的には、検証対象の回路にクロックゲーティング回路を挿入することで検証対象の回路の消費電力を低減する効果が得られるか否かを検証するためのアサーション記述を意味する。CG効果チェック用アサーションには、CGセルによる低電力化効果を検証するために、イネーブル信号に応じた関連レジスタの動作仕様(期待動作)が規定される。CGセルによる低電力化効果は、イネーブル信号の発生(信号変化)に応じて、関連レジスタの出力が発生(信号変化)するか否かによって検証できる。明確に述べれば、イネーブル信号の信号値が遷移してアクティブの論理値に変化した場合に、検証対象となっているレジスタの各F/Fが出力する信号値が変化する否かを検証することで、各F/Fがゲーティング回路を挿入することで効果的に消費電力を削減可能であるかを検証できる。アサーションベース検証は、レジスタの各F/Fに、個別に行われるがレジスタ全体を検証の対象としてもよい。なお、以下では分かりやすさのため、それぞれのF/Fごとに検証を行うとして、具体的に説明していく。また、アクティブの論理値とは、回路が正論理であればハイレベル(1)の論理値を意味し、回路が負論理であればローレベル(0)の論理値を意味する。   Subsequently, the assertion generation unit 41 generates a CG effect check assertion using the verification point information 21 (step S102). The assertion for checking the CG effect here is more generally verified whether the effect of reducing the power consumption of the circuit to be verified can be obtained by inserting the clock gating circuit into the circuit to be verified. Means an assertion description for In the CG effect check assertion, the operation specification (expected operation) of the related register according to the enable signal is defined in order to verify the power saving effect of the CG cell. The effect of reducing power consumption by the CG cell can be verified by whether or not the output of the related register is generated (signal change) in response to the generation of the enable signal (signal change). Specifically, verifying whether the signal value output from each F / F of the register to be verified changes when the signal value of the enable signal changes to an active logic value. Thus, it can be verified whether each F / F can effectively reduce power consumption by inserting a gating circuit. Assertion-based verification is performed individually for each F / F of the register, but the entire register may be the target of verification. In the following description, for ease of understanding, a specific description will be given assuming that each F / F is verified. The active logic value means a high level (1) logic value if the circuit is positive logic, and a low level (0) logic value if the circuit is negative logic.

例えば、イネーブル信号がアクティブの論理値に遷移しても、そのイネーブル信号に対応するレジスタの各F/Fの出力する信号の値が変化しない場合、各F/Fに対するゲーティング効果が期待できない。この場合、“当該レジスタの当該各F/Fに対するクロックゲーティングによる低電力効果は期待できない(以下、「CG効果なし」と称す)”と判定できる。あるいは、イネーブル信号の信号値がアクティブの論理値に遷移することに応じて対応するレジスタの各F/Fが出力する信号の値が変化する場合、ゲーティングすることで当該各F/Fの動作を停止できる。この場合、“当該レジスタに対するクロックゲーティングによる低電力効果は期待できる(以下、「CG効果あり」と称す)”と判定できる。アサーションベース検証はF/Fごとに行うため、イネーブル信号に対応するレジスタを構成するF/Fの内の少なくとも一つ以上の一部分のF/Fの出力値は変化せず、他の部分のF/Fの出力値は変化するというケースもある。その場合、出力値が変化しなかった当該一部分のF/Fにはゲーティング回路を挿入しても電力消費を抑制する効果がなく、他の部分のF/Fにはゲーティング回路を挿入することで電力消費を抑制する効果がある、と判定できる。   For example, if the value of a signal output from each F / F of the register corresponding to the enable signal does not change even when the enable signal transitions to an active logic value, the gating effect for each F / F cannot be expected. In this case, it can be determined that “a low power effect due to clock gating on each F / F of the register cannot be expected (hereinafter referred to as“ no CG effect ”).” Alternatively, the signal value of the enable signal is active logic. When the value of the signal output from each F / F of the corresponding register changes in response to the transition to the value, the operation of each F / F can be stopped by gating. It can be determined that a low power effect due to clock gating can be expected (hereinafter referred to as “with CG effect”). Since assertion-based verification is performed for each F / F, the F / F configuring the register corresponding to the enable signal In some cases, the F / F output value of at least one portion of the F / F does not change and the F / F output value of the other portion changes. In that case, even if the gating circuit is inserted into the F / F of the part where the output value has not changed, there is no effect of suppressing power consumption, and the gating circuit is inserted into the F / F of the other part. Therefore, it can be determined that there is an effect of suppressing power consumption.

なお、イネーブル信号がアクティブの論理値に遷移しても出力値が変化しないF/Fとは、例えば設計において冗長に設けられ、実際の回路の動作では使用されることがない、あるいは使用される頻度が少ないようなレジスタである。具体例を挙げると、カウンタ回路を構成する各F/Fが考えられる。半導体集積回路の新製品を開発する場合には前製品で使用した機能回路を流用することで、開発期間を短縮することが行われる。このとき、新製品では前製品で搭載されていたカウンタ回路がカウントする桁数よりも少ない桁数までのカウントを繰り返せば問題ない場合が考えられる。その場合、新製品でのカウンタ回路の上位ビットの値を保持するF/Fは常に0の論理値を保持し、保持する値が0から1へ遷移することはない。このようなF/Fには、クロックゲーティング回路を挿入する必要はなく、挿入すればゲーティング回路が消費する電力によるチップ全体としての消費電力の増加と、チップ面積の増加を招くことになる。上記の例以外にも、回路の動作上、固定の信号値の制御信号がそのF/Fから出力される必要があり、常に固定値を保持するF/Fが存在する場合なども考えられる。本発明は、このようなF/Fに対する不要なゲーティング回路の挿入を防止するものである。   The F / F whose output value does not change even when the enable signal transitions to an active logic value is redundantly provided in design, for example, and is not used or used in actual circuit operation. This is a register with a low frequency. As a specific example, each F / F constituting the counter circuit can be considered. When developing a new product of a semiconductor integrated circuit, the development period is shortened by diverting the functional circuit used in the previous product. At this time, there may be no problem if the new product repeats counting up to the number of digits smaller than the number of digits counted by the counter circuit mounted in the previous product. In that case, the F / F that holds the value of the upper bit of the counter circuit in the new product always holds a logical value of 0, and the held value never changes from 0 to 1. In such an F / F, it is not necessary to insert a clock gating circuit. If it is inserted, the power consumption of the entire chip due to the power consumed by the gating circuit and the chip area will be increased. . In addition to the above example, a control signal having a fixed signal value needs to be output from the F / F for circuit operation, and there may be an F / F that always holds a fixed value. The present invention prevents such an unnecessary gating circuit from being inserted into the F / F.

図7は、本発明によるアサーション記述の一例を示す図である。アサーション記述“AST1”では動作条件として“イネーブル信号Enable(enable 1)がアクティブの論理に遷移すること”が規定され、期待動作(期待仕様)として“いつかはレジスタ“r1_reg[0]”の出力する信号の値が変化する”ことが規定されている。AST1は、レジスタ“r1”の0ビット目のF/Fに対し、ゲーティング効果があるか否かを判定するための記述である。ここで、インプリケーション演算子“|=>”は、先行する(左辺)シーケンス(条件)が成立した場合に、プロパティの検証(右辺)が行われることを意味し、ここでは、イネーブル信号(enable 1)がアクティブの論理に遷移することが条件として規定される。又、右辺のサイクルカウント“##[0:$]”は、レジスタr1_reg[0]が出力する信号値の変化までの時間を示し、ここでは無限の時間が規定されている。“AST2”についても同様であり、36ビットのレジスタ“r1”に対してアサーション生成部41は、“AST1”から“AST36”をアサーション記述として生成する。   FIG. 7 is a diagram showing an example of an assertion description according to the present invention. In the assertion description “AST1”, “the enable signal Enable (enable 1) transitions to an active logic” is defined as an operation condition, and “someday the register“ r1_reg [0] ”is output as an expected operation (expected specification). It is specified that the value of the signal changes. AST1 is a description for determining whether or not the 0th bit F / F of the register “r1” has a gating effect. Here, the implication operator “| =>” means that the property verification (right side) is performed when the preceding (left side) sequence (condition) is satisfied. Here, the enable signal (enable) is used. It is defined as a condition that 1) transitions to active logic. The cycle count “## [0: $]” on the right side indicates the time until the signal value output from the register r1_reg [0] changes. Here, an infinite time is defined. The same applies to “AST2”. For the 36-bit register “r1”, the assertion generation unit 41 generates “AST36” from “AST1” as an assertion description.

図7に示す一例では、イネーブル信号の信号値の遷移からレジスタの出力信号の値の遷移までの期間を無限として規定しているが、これに限らず、所定の期間を指定しても構わない。   In the example shown in FIG. 7, the period from the transition of the signal value of the enable signal to the transition of the value of the output signal of the register is defined as infinite. However, the present invention is not limited to this, and a predetermined period may be designated. .

作成されたアサーション記述(アサーションモニタ)は、検証ポイント情報21に紐付けられてアサーション記述ファイル22として記憶装置13に記録される。   The created assertion description (assertion monitor) is linked to the verification point information 21 and recorded in the storage device 13 as an assertion description file 22.

シミュレーション部42は、アサーション生成部41が生成したアサーション記述に基づいて、検証対象の回路の動作を検証するフォーマルシミュレーションを行う。具体的には、シミュレーション部42は、DUT情報20、検証ポイント情報21、アサーション記述ファイル22を利用してDUTに対してフォーマルシミュレーションを実行する(ステップS103)。詳細には、CPU11が記憶装置13にアクセスし、設計支援プログラム40に含まれるフォーマル検証ツールを記憶装置13から読み出して実行する。CPU11がフォーマル検証ツールを実行することによって、CPU11はフォーマル検証を実行するシミュレーション部42となる。シミュレーション部42は、一例としてDUT情報20にアサーション記述ファイル22を挿入し、シミュレーション用のDUT情報を作成する。この際、シミュレーション部42は、記憶装置13から読み出したアサーション記述ファイル22から抽出したアサーション記述を、当該アサーション記述に紐付けられた検証ポイント情報21に挿入する。これにより、ゲーティング効果を検証するためのアサーションモニタが、ステップS101において特定されたDUT情報20における検証ポイントに挿入されることとなる。シミュレーション部42は、アサーション記述が挿入されたDUT情報を用いてフォーマルシミュレーションを実行する。ここで実行されるフォーマル検証は、例えば、一般的なプロパティチェッキング方法により実現できる。すなわち、本発明では、上述したアサーション記述に基づいて検証対象の回路をフォーマル検証によって検証する。フォーマル検証は、上述したように設計者が検証対象の回路に特定の入力信号を与える手法ではなく、回路のあらゆる出力結果を状態遷移図に基づくなどの手法により数学的に証明していくものだからである。具体的に言えば、本実施の形態では、フォーマル検証によって導かれる各F/Fの出力値(あるいはレジスタの出力値)を、上述したアサーション記述に基づいて検証するのである。つまり、フォーマル検証の結果から、イネーブル信号の信号値が遷移してアクティブの論理値に変化したとき、検証対象となっているレジスタ、あるいはレジスタを構成する各F/Fが出力する信号値が変化する否かを検証するのである。これによって、特定の入力パタンに対応した限定的な出力結果による判断ではない検証が実現できる。なお、アサーション記述は、DUT情報20に挿入されなくてもよい。この場合、フォーマル検証を実行するシミュレーション部42にDUT情報20とアサーション記述が別々に入力される。   The simulation unit 42 performs a formal simulation for verifying the operation of the circuit to be verified based on the assertion description generated by the assertion generation unit 41. Specifically, the simulation unit 42 executes a formal simulation for the DUT using the DUT information 20, the verification point information 21, and the assertion description file 22 (step S103). Specifically, the CPU 11 accesses the storage device 13 and reads the formal verification tool included in the design support program 40 from the storage device 13 and executes it. When the CPU 11 executes the formal verification tool, the CPU 11 becomes the simulation unit 42 that executes the formal verification. As an example, the simulation unit 42 inserts the assertion description file 22 into the DUT information 20 to create DUT information for simulation. At this time, the simulation unit 42 inserts the assertion description extracted from the assertion description file 22 read from the storage device 13 into the verification point information 21 associated with the assertion description. As a result, an assertion monitor for verifying the gating effect is inserted into the verification point in the DUT information 20 specified in step S101. The simulation unit 42 executes a formal simulation using the DUT information in which the assertion description is inserted. The formal verification executed here can be realized by, for example, a general property checking method. That is, in the present invention, the verification target circuit is verified by formal verification based on the assertion description described above. Formal verification is not a method in which the designer gives a specific input signal to the circuit to be verified as described above, but because all output results of the circuit are mathematically proved by a method based on a state transition diagram. It is. Specifically, in the present embodiment, the output value of each F / F (or the output value of the register) derived by formal verification is verified based on the assertion description described above. That is, when the signal value of the enable signal transitions and changes to an active logical value from the result of formal verification, the signal value output from the register to be verified or each F / F constituting the register changes. It is verified whether or not to do so. As a result, verification that is not a determination based on a limited output result corresponding to a specific input pattern can be realized. The assertion description may not be inserted into the DUT information 20. In this case, the DUT information 20 and the assertion description are separately input to the simulation unit 42 that performs formal verification.

シミュレーション部42は、検証対象の回路であるレジスタ“r1”の出力値、あるいはレジスタ“r1”を構成する各F/Fの出力値が、当該レジスタ“r1”または各F/Fに入力されるイネーブル信号がアクティブの論理に遷移した場合に変化するかを、フォーマル検証によって検証する。   The simulation unit 42 inputs the output value of the register “r1”, which is the circuit to be verified, or the output value of each F / F constituting the register “r1” to the register “r1” or each F / F. It is verified by formal verification whether the enable signal changes when transitioning to active logic.

次に、CPU11は、記憶装置13から設計支援プログラム40を読み出して実行することで、CG効果判定を行う。この場合、CPU11は、フォーマルシミュレーションの結果に基づいて、検証対象の回路にクロックゲーティング回路を挿入すべきか否かを記述した挿入制約を生成するクロックゲーティング効果制約生成部となる。より具体的には、設計支援プログラム40が実行されることによってCPU11がCG挿入制約生成部43となってCG効果判定を実現する。CG挿入制約生成部43は、フォーマルシミュレーション結果に基づいて、CG効果判定を行う(ステップS104)。ここでは、アサーション検証された検証ポイント毎にCG効果判定が行われる。例えば、複数のF/Fを備えるレジスタの全体を検証ポイントとした場合、レジスタ全体についてCG効果判定が行われ、複数のF/Fのそれぞれを検証ポイントとした場合、F/F毎にCG効果判定が行われる。   Next, the CPU 11 performs the CG effect determination by reading the design support program 40 from the storage device 13 and executing it. In this case, the CPU 11 serves as a clock gating effect constraint generation unit that generates an insertion constraint that describes whether or not a clock gating circuit should be inserted into a circuit to be verified based on the result of the formal simulation. More specifically, when the design support program 40 is executed, the CPU 11 becomes the CG insertion constraint generation unit 43 and realizes the CG effect determination. The CG insertion constraint generation unit 43 performs CG effect determination based on the formal simulation result (step S104). Here, the CG effect determination is performed for each verification point subjected to the assertion verification. For example, when the entire register having a plurality of F / Fs is used as a verification point, CG effect determination is performed for the entire register. When each of a plurality of F / Fs is used as a verification point, the CG effect is determined for each F / F. A determination is made.

例えば、イネーブル信号“enable 1”がアクティブの論理値に変化しても、レジスタ(F/F)“¥r1_reg[0:1]”(の出力)が変化しない場合、CG挿入制約生成部43は、レジスタ(F/F)“¥r1_reg[0:1]”に対してCG効果なしと判定する。あるいは、イネーブル信号“enable 1”が変化すると、レジスタ“¥r1_reg[0:1]”(の出力)が変化する場合、CG挿入制約生成部43は、レジスタ(F/F)“¥r1_reg[0:1]”に対してCG効果ありと判定する。   For example, if the register (F / F) “¥ r1_reg [0: 1]” (output) does not change even when the enable signal “enable 1” changes to an active logical value, the CG insertion constraint generation unit 43 The register (F / F) “¥ r1_reg [0: 1]” is determined to have no CG effect. Alternatively, when the register “¥ r1_reg [0: 1]” (output) changes when the enable signal “enable 1” changes, the CG insertion constraint generation unit 43 registers the register (F / F) “¥ r1_reg [0]. : 1] ”is determined to have a CG effect.

CG挿入制約生成部43は、ステップS104のCG効果判定結果に応じてCGセルを挿入するレジスタ(F/F)(又はCGセルの挿入を禁止するレジスタ(F/F))を、CG効果レジスタファイル23として記憶装置13に記録する(ステップS105)。ここでCG挿入制約生成部43は、CG効果ありと判定したレジスタ(F/F)を、CGセルの挿入するレジスタとしてCG効果レジスタファイル23に記録する。あるいは、CG挿入制約生成部43は、CG効果なしと判定したレジスタ(F/F)を、CGセルの挿入を禁止するレジスタとしてCG効果レジスタファイル23に記録し、記憶装置13に書き込む。記憶装置13は当該CG効果レジスタファイル23を記憶する。   The CG insertion constraint generation unit 43 sets a register (F / F) to insert a CG cell (or a register (F / F) to prohibit insertion of a CG cell) according to the CG effect determination result of step S104, as a CG effect register. The file 23 is recorded in the storage device 13 (step S105). Here, the CG insertion constraint generation unit 43 records the register (F / F) determined to have the CG effect in the CG effect register file 23 as a register to be inserted into the CG cell. Alternatively, the CG insertion constraint generation unit 43 records the register (F / F) determined as having no CG effect in the CG effect register file 23 as a register for prohibiting the insertion of the CG cell, and writes it in the storage device 13. The storage device 13 stores the CG effect register file 23.

CG挿入制約生成部43は、CG効果レジスタファイル23に基づいて、CG挿入制約スクリプト24を作成する(ステップS106)。CG挿入制約スクリプト24は、論理合成時にCGセルの挿入制約として利用される。CG挿入制約スクリプト24には、CGセルを挿入するレジスタ(F/F)を特定する情報、あるいは、CGセルの挿入を禁止するレジスタ(F/F)を特定する情報が含まれる。   The CG insertion constraint generation unit 43 creates the CG insertion constraint script 24 based on the CG effect register file 23 (step S106). The CG insertion constraint script 24 is used as a CG cell insertion constraint during logic synthesis. The CG insertion restriction script 24 includes information for specifying a register (F / F) for inserting a CG cell or information for specifying a register (F / F) for prohibiting insertion of a CG cell.

論理合成部44は、DUT情報20、制約スクリプト30、CG挿入制約スクリプト24に基づいて、論理合成を行い、DUTに対するネットリスト25を生成する(ステップS107)。論理合成部44は、CG挿入制約スクリプト24に応じてCGセルを選択的に挿入、あるいは不用なCGセルの挿入を排除する。これにより、レジスタのビット幅に応じた数のCGセルの自動挿入に比べて、挿入するCGセル数を低減することが可能となる。   The logic synthesis unit 44 performs logic synthesis based on the DUT information 20, the constraint script 30, and the CG insertion constraint script 24, and generates a net list 25 for the DUT (step S107). The logic synthesis unit 44 selectively inserts CG cells according to the CG insertion restriction script 24 or eliminates unnecessary insertion of CG cells. As a result, the number of CG cells to be inserted can be reduced compared to the automatic insertion of a number of CG cells corresponding to the bit width of the register.

図8から図10を参照して、本発明による設計方法によるCGセルの削減効果について説明する。   With reference to FIGS. 8 to 10, the effect of reducing CG cells by the design method according to the present invention will be described.

図8は、本発明によるCG挿入制約スクリプト24を利用しない場合の論理合成結果(ネットリスト)の一例を示す図である。図8を参照して、レジスタ100は、クロック識別子211“mc_top.clk_i”イネーブル識別子212“enable 1”、レジスタ識別子213“¥r1_reg[0:4]”で特定される4ビットのレジスタであり、F/F111、112、113、114を備える。ここで、CG挿入制約スクリプト24を利用せず、最大3つのF/Fを駆動可能なCGセルを挿入する場合、レジスタ100に対して少なくとも2つのCGセルが挿入されることとなる。例えば、図8で示すように、論理合成においてF/F111、112に対してCGセル122が挿入され、F/F113、114に対してCGセル121が挿入される。   FIG. 8 is a diagram showing an example of a logical synthesis result (net list) when the CG insertion restriction script 24 according to the present invention is not used. Referring to FIG. 8, a register 100 is a 4-bit register specified by a clock identifier 211 “mc_top.clk_i” enable identifier 212 “enable 1” and a register identifier 213 “¥ r1_reg [0: 4]”. F / Fs 111, 112, 113, and 114 are provided. Here, when CG cells capable of driving a maximum of three F / Fs are inserted without using the CG insertion restriction script 24, at least two CG cells are inserted into the register 100. For example, as shown in FIG. 8, the CG cell 122 is inserted into the F / Fs 111 and 112 and the CG cell 121 is inserted into the F / Fs 113 and 114 in the logic synthesis.

一方、本発明によるCG挿入制約スクリプト24に応じて論理合成した場合、イネーブル信号が変化しても出力変動しないレジスタ(F/F)へのCGセルの挿入が禁止されるため、レジスタ100へ挿入されるCGセルの数を削減することができる。図9は、本発明によるCG挿入制約スクリプト24を利用した場合の論理合成結果(ネットリスト)の一例を示す図である。ここでは、CG挿入制約スクリプト24によってF/F111へのCGセルの挿入が禁止された場合の論理合成結果の一例が示される。レジスタ100の構造、及びCGセルの駆動能力が図8に示す一例と同じ条件である場合、論理合成においてF/F111以外のF/F112〜114に対して1つのCGセル120が挿入される。図9の一例では、図8に比べてCGセルが1つ削減されることとなる。このように、CGセルの挿入をF/F毎に制御することで、レジスタに対して挿入するCGセルの数を削減することができる。   On the other hand, when logic synthesis is performed according to the CG insertion restriction script 24 according to the present invention, insertion of a CG cell into a register (F / F) whose output does not fluctuate even if the enable signal changes is prohibited. The number of CG cells to be performed can be reduced. FIG. 9 is a diagram showing an example of a logical synthesis result (net list) when the CG insertion restriction script 24 according to the present invention is used. Here, an example of a logic synthesis result when insertion of a CG cell into the F / F 111 is prohibited by the CG insertion restriction script 24 is shown. When the structure of the register 100 and the drive capability of the CG cell are the same conditions as in the example shown in FIG. 8, one CG cell 120 is inserted into the F / Fs 112 to 114 other than the F / F 111 in the logic synthesis. In the example of FIG. 9, one CG cell is reduced compared to FIG. In this way, by controlling the insertion of CG cells for each F / F, the number of CG cells to be inserted into the register can be reduced.

図10は、本発明によるCG挿入制約スクリプト24を利用した場合の論理合成結果(ネットリスト)の他の一例を示す図である。ここでは、CG挿入制約スクリプト24によってレジスタ100全体へのCGセルの挿入が禁止された場合の論理合成結果の一例が示される。この場合、レジスタ100に対してCGセルは挿入されないため、図8に比べてCGセルが2つ削減されることとなる。   FIG. 10 is a diagram showing another example of the logic synthesis result (net list) when the CG insertion restriction script 24 according to the present invention is used. Here, an example of a logic synthesis result when insertion of CG cells into the entire register 100 is prohibited by the CG insertion restriction script 24 is shown. In this case, since no CG cell is inserted into the register 100, two CG cells are reduced compared to FIG.

以上のように、本発明によれば、アサーションベース検証によってCG効果のないレジスタ(又はF/F)を特定し、当該レジスタ(又はF/F)へのCGセルの挿入を禁止することで、論理合成時に挿入され得る不要なCGセルを排除することができる。このように、無駄なCGセルの挿入を排除することで、半導体集積回路の回路面積を低減することができる。又、無駄なCGセルを削減することで、配線混雑も低減されるためレイアウト処理が容易となる。更に、低電力化に効果のないCGセルを排除しながら論理合成できるため、CGセル削減のための後戻り処理が不要となりレイアウト半導体集積回路の設計TATを短縮することができる。   As described above, according to the present invention, by specifying a register (or F / F) having no CG effect by assertion-based verification and prohibiting insertion of a CG cell into the register (or F / F), Unnecessary CG cells that can be inserted during logic synthesis can be eliminated. Thus, by eliminating unnecessary insertion of CG cells, the circuit area of the semiconductor integrated circuit can be reduced. Further, by reducing useless CG cells, wiring congestion is also reduced, so that layout processing is facilitated. Furthermore, since logic synthesis can be performed while eliminating CG cells that are not effective in reducing power consumption, back-end processing for reducing CG cells is not required, and the design TAT of the layout semiconductor integrated circuit can be shortened.

第2の実施の形態
次に、図11A及び図11Bを参照して、本発明による半導体集積回路の設計方法の第2の実施の形態を説明する。第2の実施の形態では、ステップS103におけるフォーマルシミュレーションの前に、ユーザの仕様に応じたテストパタンによるダイナミックシミュレーションを行うことで、フォーマルシミュレーション対象となる検証ポイントを絞り込むことができる。図11A及び図11Bは、ダイナミックシミュレーションを併用した本発明による設計方法の一例を示すフロー図である。
Second Embodiment Next, a second embodiment of a semiconductor integrated circuit design method according to the present invention will be described with reference to FIGS. 11A and 11B. In the second embodiment, the verification points to be subjected to the formal simulation can be narrowed down by performing a dynamic simulation with a test pattern according to the user's specifications before the formal simulation in step S103. FIG. 11A and FIG. 11B are flowcharts showing an example of the design method according to the present invention using dynamic simulation together.

図11Aを参照して、アサーション生成部41は、図3Aに示す動作と同様のステップS101、ステップS102の処理によりアサーション記述ファイル22を生成する。   Referring to FIG. 11A, the assertion generation unit 41 generates the assertion description file 22 by the processing in steps S101 and S102 similar to the operation shown in FIG. 3A.

本一例のシミュレーション部42は、シミュレーション部42が、特定の入力信号に対する検証対象の回路の動作を検証するダイナミックシミュレーションを実行し、ダイナミックシミュレーションの結果によっても消費電力を低減する効果が得られるか否かが不明な回路に対してのみフォーマルシミュレーションを実行する。具体的には、フォーマルシミュレーションの前に、DUT情報20、検証ポイント情報21、アサーション記述ファイル22、テストパタン(図示なし)を利用して、DUTに対してダイナミックシミュレーションを実行する(ステップS201)。詳細には、CPU11が、記憶装置13に記憶されている論理シミュレータを読み出し実行する。当該論理シミュレータが実行されることによってCPU11が実現するシミュレーション部42は、DUT情報20にアサーション記述ファイル22を挿入し、シミュレーション用のDUT情報を作成する。この際、シミュレーション部42は、アサーション記述ファイル22から抽出したアサーション記述を、当該アサーション記述に紐付けられた検証ポイント情報21に挿入する。これにより、ゲーティング効果を検証するためのアサーションモニタが、ステップS101において特定されたDUT情報20における検証ポイントに挿入されることとなる。シミュレーション部42は、アサーション記述が挿入されたDUT情報20とテストパタンを入力として、検証対象のレジスタ(あるいはF/F)に対するダイナミックシミュレーションを実行する。   In the simulation unit 42 of this example, the simulation unit 42 executes a dynamic simulation for verifying the operation of the circuit to be verified with respect to a specific input signal, and whether or not the effect of reducing the power consumption can be obtained by the result of the dynamic simulation. Formal simulation is executed only for circuits where it is unknown. More specifically, before the formal simulation, the DUT information 20, the verification point information 21, the assertion description file 22, and the test pattern (not shown) are used to execute a dynamic simulation on the DUT (step S201). Specifically, the CPU 11 reads and executes the logic simulator stored in the storage device 13. The simulation unit 42 realized by the CPU 11 by executing the logic simulator inserts the assertion description file 22 into the DUT information 20 and creates DUT information for simulation. At this time, the simulation unit 42 inserts the assertion description extracted from the assertion description file 22 into the verification point information 21 associated with the assertion description. As a result, an assertion monitor for verifying the gating effect is inserted into the verification point in the DUT information 20 specified in step S101. The simulation unit 42 receives the DUT information 20 in which the assertion description is inserted and the test pattern as input, and executes a dynamic simulation for the verification target register (or F / F).

シミュレーション部42は、ダイナミックシミュレーション結果に基づいてCG効果を判定する(ステップS202)。ここでは、テストパタンに応じてアサーション検証された検証ポイント毎にCG効果判定が行われる。このため、判定結果は、テストパタンに応じた検証ポイントに対する判定結果となる。シミュレーション部42は、当該判定結果を記憶装置13に書き込む。ステップS202において、CG効果ありと判定された検証ポイント(レジスタ)は、少なくともテストパタンに応じた動作時においてCG効果があるため、フォーマルシミュレーションせずともCGセルの挿入対象と設定され得る。このため、シミュレーション部42は、ダイナミックシミュレーションの結果として得られた前記判定結果を記憶装置13から読み出し、ダイナミックシミュレーションで効果有りと判定された検証ポイント(レジスタ)をアサーション検証対象から外して、次工程であるフォーマルシミュレーションを実行する(ステップS103)。   The simulation unit 42 determines the CG effect based on the dynamic simulation result (step S202). Here, the CG effect determination is performed for each verification point subjected to the assertion verification according to the test pattern. Therefore, the determination result is a determination result for the verification point corresponding to the test pattern. The simulation unit 42 writes the determination result in the storage device 13. In step S202, the verification point (register) determined to have the CG effect has a CG effect at least during the operation corresponding to the test pattern, and thus can be set as a CG cell insertion target without a formal simulation. Therefore, the simulation unit 42 reads out the determination result obtained as a result of the dynamic simulation from the storage device 13, removes the verification point (register) determined to be effective in the dynamic simulation from the assertion verification target, and performs the next step A formal simulation is executed (step S103).

図11Bに示すステップS103〜S107までの処理は、図3A及び図3Bと同様であるが、本一例では、ダイナミックシミュレーション結果に応じてアサーション検証の対象となるレジスタ(F/F)を検証対象から除外してフォーマルシミュレーションを実行する。換言すると、ダイナミック検証の結果に応じて絞り込まれたアサーション記述のみがDUT情報20に追加され、当該DUT情報に対してフォーマルシミュレーションが行われる。フォーマルシミュレーションでは、絞りこまれたアサーション記述(アサーションモニタ)のみを検証すればよいため、検証時間の短縮化が期待できる。   The processing from step S103 to step S107 shown in FIG. 11B is the same as that in FIGS. 3A and 3B, but in this example, the register (F / F) that is subject to assertion verification is changed from the verification target according to the dynamic simulation result. Exclude and run formal simulation. In other words, only the assertion description narrowed down according to the result of the dynamic verification is added to the DUT information 20, and a formal simulation is performed on the DUT information. In formal simulation, only the narrowed assertion description (assertion monitor) needs to be verified, so that the verification time can be shortened.

尚、ダイナミックシミュレーションで利用するアサーション記述(アサーションモニタ)とフォーマルシミュレーションで利用するアサーション記述(アサーションモニタ)は、CG効果判定ができれば、同一の動作条件及び動作仕様が規定されても、異なる動作条件及び動作仕様が規定されてもどちらでも良い。例えば、“イネーブル信号が変化した場合、レジスタ出力が変化する”を規定したアサーション記述をダイナミックシミュレーションで利用し、“イネーブル信号が変化しても、レジスタ出力は変化しない”を規定したアサーション記述をフォーマルシミュレーションで利用してもよい。この場合、ダイナミックシミュレーションにおいて、イネーブル信号が変化したときにレジスタ出力が変化するレジスタは、CG効果ありのため、フォーマル検証対象から除外される。   It should be noted that the assertion description (assertion monitor) used in the dynamic simulation and the assertion description (assertion monitor) used in the formal simulation are different from each other even if the same operation condition and operation specification are defined as long as the CG effect can be determined. Either of the operation specifications may be specified. For example, an assertion description that prescribes "when the enable signal changes, the register output changes" is used in dynamic simulation, and the assertion description that prescribes "the register output does not change when the enable signal changes" is formal. It may be used for simulation. In this case, in the dynamic simulation, a register whose register output changes when the enable signal changes is excluded from the formal verification target because of the CG effect.

以上、本発明の実施の形態を詳述してきたが、具体的な構成は上記実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。上述した一例では、アサーション生成部41は、アサーション検証ポイントを特定するための論理シミュレータや消費電力解析ツールの機能を有していたが、これに限らず、他の装置において出力された消費電力解析結果を利用して、検証ポイント情報21を取得してもよい。すなわち、設計支援プログラム40には、論理シミュレータや消費電力解析ツールが含まれなくてもよい。   The embodiment of the present invention has been described in detail above, but the specific configuration is not limited to the above-described embodiment, and changes within a scope not departing from the gist of the present invention are included in the present invention. . In the above-described example, the assertion generation unit 41 has the functions of a logic simulator and a power consumption analysis tool for specifying an assertion verification point. However, the present invention is not limited to this, and the power consumption analysis output in other devices is possible. The verification point information 21 may be acquired using the result. That is, the design support program 40 may not include a logic simulator or a power consumption analysis tool.

10:設計支援装置
11:CPU
12:RAM
13:記憶装置
14:入力装置
15:出力装置
16:バス
20:DUT情報
21:検証ポイント情報
22:アサーション記述ファイル
23:CG効果レジスタファイル
24:CG挿入制約スクリプト
25:ネットリスト
30:制約スクリプト
40:設計支援プログラム
41:アサーション生成部
42:シミュレーション部
43:CG挿入制約生成部
44:論理合成部
100:レジスタ
120〜122:クロックゲーティングセル(CGセル)
211:クロック識別子
212:イネーブル識別子
213:レジスタ識別子
10: Design support device 11: CPU
12: RAM
13: Storage device 14: Input device 15: Output device 16: Bus 20: DUT information 21: Verification point information 22: Assertion description file 23: CG effect register file 24: CG insertion restriction script 25: Net list 30: Restriction script 40 : Design support program 41: Assertion generation unit 42: Simulation unit 43: CG insertion constraint generation unit 44: Logic synthesis unit 100: Register 120 to 122: Clock gating cell (CG cell)
211: Clock identifier 212: Enable identifier 213: Register identifier

Claims (11)

検証対象の回路にクロックゲーティング回路を挿入することで前記検証対象の回路の消費電力を低減する効果が得られるか否かを検証するためのアサーション記述を生成するアサーション生成部と、
前記アサーション記述に基づいて、前記検証対象の回路の動作を検証するフォーマルシミュレーションを行うシミュレーション部と、
前記フォーマルシミュレーションの結果に基づいて、前記検証対象の回路にクロックゲーティング回路を挿入すべきか否かを記述した挿入制約を生成するクロックゲーティング効果制約生成部と、
を有することを特徴とする設計支援装置。
An assertion generation unit for generating an assertion description for verifying whether or not an effect of reducing power consumption of the circuit to be verified can be obtained by inserting a clock gating circuit into the circuit to be verified;
Based on the assertion description, a simulation unit that performs a formal simulation for verifying the operation of the circuit to be verified;
Based on the result of the formal simulation, a clock gating effect constraint generator for generating an insertion constraint that describes whether or not a clock gating circuit should be inserted into the circuit to be verified;
A design support apparatus comprising:
前記シミュレーション部は、特定の入力信号に対する前記検証対象の回路の動作を検証するダイナミックシミュレーションを実行し、前記ダイナミックシミュレーションの結果によっても前記消費電力を低減する前記効果が得られるか否かが不明な回路に対してのみ前記フォーマルシミュレーションを実行することを特徴とする請求項1に記載の設計支援装置。   The simulation unit executes a dynamic simulation for verifying an operation of the circuit to be verified with respect to a specific input signal, and it is unclear whether the effect of reducing the power consumption can be obtained also based on the result of the dynamic simulation. The design support apparatus according to claim 1, wherein the formal simulation is executed only for a circuit. 前記挿入制約に基づいて、前記検証対象の回路を含む回路の論理合成を行う論理合成部をさらに備えることを特徴とする請求項1に記載の設計支援装置。   The design support apparatus according to claim 1, further comprising a logic synthesis unit that performs logic synthesis of a circuit including the circuit to be verified based on the insertion constraint. 前記アサーション生成部は、前記検証対象の回路に対するイネーブル信号の値がアクティブの論理値に遷移した際に、前記検証対象の回路の出力する信号の値が変化するか否かを検証するアサーション記述を生成することを特徴とする請求項1に記載の設計支援装置。   The assertion generation unit generates an assertion description for verifying whether the value of the signal output from the verification target circuit changes when the value of the enable signal for the verification target circuit changes to an active logical value. The design support apparatus according to claim 1, wherein the design support apparatus is generated. 前記検証対象の回路は、前記イネーブル信号に応答して動作する少なくとも一のフリップフロップ、または複数の前記フリップフロップから構成されるレジスタであることを特徴とする請求項4に記載の設計支援装置。   5. The design support apparatus according to claim 4, wherein the circuit to be verified is at least one flip-flop that operates in response to the enable signal, or a register including the plurality of flip-flops. 検証対象の回路にクロックゲーティング回路を挿入することで前記検証対象の回路の消費電力を低減する効果が得られるか否かを検証するためのアサーション記述をアサーション生成部が生成するステップと、
前記アサーション生成部が生成した前記アサーション記述に基づいて、フォーマルシミュレーション部が前記検証対象の回路の動作を検証するフォーマルシミュレーションを行うステップと、
前記フォーマルシミュレーションの結果に基づいて、クロックゲーティング効果制約生成部が前記検証対象の回路にクロックゲーティング回路を挿入すべきか否かを記述した挿入制約を生成するステップと、
を有することを特徴とする半導体集積回路の設計方法。
An assertion generation unit generating an assertion description for verifying whether or not an effect of reducing power consumption of the verification target circuit can be obtained by inserting a clock gating circuit into the verification target circuit;
Based on the assertion description generated by the assertion generation unit, a formal simulation unit performs a formal simulation for verifying the operation of the circuit to be verified;
Based on the result of the formal simulation, the clock gating effect constraint generating unit generates an insertion constraint that describes whether or not a clock gating circuit should be inserted into the circuit to be verified; and
A method for designing a semiconductor integrated circuit, comprising:
前記シミュレーション部が、特定の入力信号に対する前記検証対象の回路の動作を検証するダイナミックシミュレーションを実行するステップと、
前記シミュレーション部が、前記ダイナミックシミュレーションの結果によっても前記消費電力を低減する前記効果が得られるか否かが不明な回路に対してのみ前記フォーマルシミュレーションを実行するステップと、
をさらに有することを特徴とする請求項6に記載の半導体集積回路の設計方法。
The simulation unit executing a dynamic simulation for verifying an operation of the circuit to be verified with respect to a specific input signal;
The simulation unit executes the formal simulation only for a circuit whose unknown whether or not the effect of reducing the power consumption can be obtained according to the result of the dynamic simulation;
The semiconductor integrated circuit design method according to claim 6, further comprising:
前記挿入制約に基づいて、論理合成部が前記検証対象の回路を含む回路の論理合成を行うステップをさらに備えることを特徴とする請求項6に記載の半導体集積回路の設計方法。   The method for designing a semiconductor integrated circuit according to claim 6, further comprising a step of performing logic synthesis of a circuit including the circuit to be verified by a logic synthesis unit based on the insertion constraint. 前記アサーション記述は、前記検証対象の回路に対するイネーブル信号の値がアクティブの論理値に遷移した際に、前記検証対象の回路の出力する信号の値が変化するか否かを検証するアサーション記述であることを特徴とする請求項6に記載の半導体集積回路の設計方法。   The assertion description is an assertion description for verifying whether the value of the signal output from the verification target circuit changes when the value of the enable signal for the verification target circuit changes to an active logical value. The method of designing a semiconductor integrated circuit according to claim 6. 前記検証対象の回路は、前記イネーブル信号に応答して動作する少なくとも一のフリップフロップ、または複数の前記フリップフロップから構成されるレジスタであることを特徴とする請求項9に記載の半導体集積回路の設計方法。   10. The semiconductor integrated circuit according to claim 9, wherein the circuit to be verified is at least one flip-flop that operates in response to the enable signal, or a register including the plurality of flip-flops. Design method. 検証対象の回路にクロックゲーティング回路を挿入することで前記検証対象の回路の消費電力を低減する効果が得られるか否かを検証するためのアサーション記述を生成するステップと、
前記アサーション生成部が生成した前記アサーション記述に基づいて、前記検証対象の回路の動作を検証するフォーマルシミュレーションを行うステップと、
前記フォーマルシミュレーションの結果に基づいて、前記検証対象の回路にクロックゲーティング回路を挿入すべきか否かを記述した挿入制約を生成するステップと
をコンピュータに実行させるための設計支援プログラム。
Generating an assertion description for verifying whether or not an effect of reducing power consumption of the verification target circuit can be obtained by inserting a clock gating circuit into the verification target circuit;
Performing a formal simulation for verifying the operation of the verification target circuit based on the assertion description generated by the assertion generation unit;
A design support program for causing a computer to execute an insertion constraint that describes whether or not a clock gating circuit should be inserted into the circuit to be verified based on the result of the formal simulation.
JP2011084806A 2011-04-06 2011-04-06 Semiconductor integrated circuit design support device, design method, and design support program Withdrawn JP2012221119A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011084806A JP2012221119A (en) 2011-04-06 2011-04-06 Semiconductor integrated circuit design support device, design method, and design support program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011084806A JP2012221119A (en) 2011-04-06 2011-04-06 Semiconductor integrated circuit design support device, design method, and design support program

Publications (1)

Publication Number Publication Date
JP2012221119A true JP2012221119A (en) 2012-11-12

Family

ID=47272582

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011084806A Withdrawn JP2012221119A (en) 2011-04-06 2011-04-06 Semiconductor integrated circuit design support device, design method, and design support program

Country Status (1)

Country Link
JP (1) JP2012221119A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108153920A (en) * 2016-12-02 2018-06-12 恩智浦美国有限公司 Clock gating verification during the RTL stages of IC design

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108153920A (en) * 2016-12-02 2018-06-12 恩智浦美国有限公司 Clock gating verification during the RTL stages of IC design

Similar Documents

Publication Publication Date Title
US7669165B2 (en) Method and system for equivalence checking of a low power design
Keating et al. Reuse Methodology Manual for System-on-a-Chip Designs: For System-on-a-chip Designs
US8812286B1 (en) Emulation of power shutoff behavior for integrated circuits
US7546559B2 (en) Method of optimization of clock gating in integrated circuit designs
US7735030B1 (en) Simulating restorable registers in power domain systems
US7849428B2 (en) Formally deriving a minimal clock-gating scheme
US11386250B2 (en) Detecting timing violations in emulation using field programmable gate array (FPGA) reprogramming
JP6728345B2 (en) Interactive multi-step physical synthesis
US8037443B1 (en) System, method, and computer program product for optimizing an altered hardware design utilizing power reports
US10235485B1 (en) Partial reconfiguration debugging using hybrid models
JP4200465B2 (en) Semiconductor integrated circuit design method and design system
CN108121842A (en) The verification method and device of the low energy consumption operation mode of multiprocessor system chip
Macko et al. Simplifying low-power SoC top-down design using the system-level abstraction and the increased automation
US10162917B1 (en) Method and system for implementing selective transformation for low power verification
US11443087B2 (en) System and method for power analysis for design logic circuit with irregular clock
JP6833140B2 (en) Circuit design support system and circuit design support program
JP2008299464A (en) Power consumption calculation method, power consumption calculation program, and power consumption calculation device
US8350620B2 (en) Integrated circuit power consumption calculating apparatus and processing method
JP2012221077A (en) Fpga design support system and fpga design support method and fpga design support program
JP2012221119A (en) Semiconductor integrated circuit design support device, design method, and design support program
US9710580B2 (en) Timing analysis method for digital circuit design and system thereof
Kozhikkottu et al. Recovery-based design for variation-tolerant SoCs
Golanbari et al. Selective Flip-Flop Optimization for Circuit Reliability
US11188697B1 (en) On-chip memory access pattern detection for power and resource reduction
US20240111660A1 (en) Managing high performance simulation representation of an emulation system

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20140701