JP6413332B2 - Circuit design method - Google Patents

Circuit design method Download PDF

Info

Publication number
JP6413332B2
JP6413332B2 JP2014099768A JP2014099768A JP6413332B2 JP 6413332 B2 JP6413332 B2 JP 6413332B2 JP 2014099768 A JP2014099768 A JP 2014099768A JP 2014099768 A JP2014099768 A JP 2014099768A JP 6413332 B2 JP6413332 B2 JP 6413332B2
Authority
JP
Japan
Prior art keywords
circuit
flip
flop
data output
flop circuit
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.)
Expired - Fee Related
Application number
JP2014099768A
Other languages
Japanese (ja)
Other versions
JP2015215851A (en
Inventor
齊藤 学
学 齊藤
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.)
Socionext Inc
Original Assignee
Socionext Inc
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 Socionext Inc filed Critical Socionext Inc
Priority to JP2014099768A priority Critical patent/JP6413332B2/en
Publication of JP2015215851A publication Critical patent/JP2015215851A/en
Application granted granted Critical
Publication of JP6413332B2 publication Critical patent/JP6413332B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、回路設計方法に関する。 The present invention also relates to a circuit design how.

LSI(Large Scale Integration)等の半導体集積回路は、クロックに同期した回路を実装されることが主流である。クロックに同期した回路を有する半導体集積回路の構成例を図7に示す。半導体集積回路700は、例えば複数の機能を1つのチップ上に実装したSoC(System on a Chip)であり、複数の回路ブロック(回路モジュールA〜D)701A〜701Dを有する。回路ブロック(回路モジュールA〜D)701A〜701Dは、例えば位相ロックループ(PLL:Phase Locked Loop)回路702から供給されるクロック信号CLKで動作するフリップフロップ回路を有する。   A semiconductor integrated circuit such as an LSI (Large Scale Integration) is mainly mounted with a circuit synchronized with a clock. A structural example of a semiconductor integrated circuit having a circuit synchronized with a clock is shown in FIG. The semiconductor integrated circuit 700 is, for example, a SoC (System on a Chip) in which a plurality of functions are mounted on one chip, and includes a plurality of circuit blocks (circuit modules A to D) 701A to 701D. The circuit blocks (circuit modules A to D) 701A to 701D have flip-flop circuits that operate with a clock signal CLK supplied from a phase locked loop (PLL) circuit 702, for example.

図7に示したような半導体集積回路におけるフリップフロップ回路には、例えば図8(A)に示すD型フリップフロップ回路が用いられる。D型フリップフロップ回路は、入力データを保持する回路であり、図8(A)に示すように接続された8個の否定論理積演算回路(NAND回路)801〜808及び2つのインバータ809、810を有する。図8(A)に示すD型フリップフロップ回路は、図8(B)に示すように、入力されるクロック信号CKの立ち上がりエッジにおいて、D入力の値がQ出力として保持される。このように、D型フリップフロップでは、データ保持にクロック信号CKを用い、クロック駆動の度に電力が消費される。   For example, a D-type flip-flop circuit shown in FIG. 8A is used as the flip-flop circuit in the semiconductor integrated circuit as shown in FIG. The D-type flip-flop circuit is a circuit that holds input data, and includes eight NAND operation circuits (NAND circuits) 801 to 808 and two inverters 809 and 810 connected as shown in FIG. Have In the D-type flip-flop circuit shown in FIG. 8A, as shown in FIG. 8B, the value of the D input is held as the Q output at the rising edge of the input clock signal CK. Thus, in the D-type flip-flop, the clock signal CK is used for data retention, and power is consumed each time the clock is driven.

入力データを保持する他の回路として、図9(A)に示すようなゲーテッドDラッチ回路がある。ゲーテッドDラッチ回路は、図9(A)に示すように接続された4個のNAND回路821〜824を有する。図9(A)に示すゲーテッドDラッチ回路は、図9(B)に示すように、入力されるゲート信号GがハイレベルであるときにD入力の値がQ出力に伝わり、ゲート信号GがローレベルであるときにQ出力を保持する。このように、ゲーテッドDラッチ回路では、データ保持にゲート信号Gを用い、ゲート信号Gが変化したときに電力が消費される。   As another circuit for holding input data, there is a gated D latch circuit as shown in FIG. The gated D latch circuit has four NAND circuits 821 to 824 connected as shown in FIG. In the gated D latch circuit shown in FIG. 9A, as shown in FIG. 9B, when the input gate signal G is at a high level, the value of the D input is transmitted to the Q output, and the gate signal G is Hold Q output when low level. Thus, in the gated D latch circuit, the gate signal G is used for data retention, and power is consumed when the gate signal G changes.

また、半導体集積回路は、タイミングを考慮して設計が行われる。半導体集積回路においてタイミング解析の対象となるパス(伝送経路)は、フリップフロップ回路からフリップフロップ回路へのパス、入力ポート(入力端子)からフリップフロップ回路へのパス、フリップフロップ回路から出力ポート(出力端子)へのパス、及び入力ポート(入力端子)から出力ポート(出力端子)へのパスの4つに大きく分けられる。   The semiconductor integrated circuit is designed in consideration of timing. In a semiconductor integrated circuit, the path (transmission path) subject to timing analysis is a path from the flip-flop circuit to the flip-flop circuit, a path from the input port (input terminal) to the flip-flop circuit, and an output port from the flip-flop circuit (output) Terminal) and a path from an input port (input terminal) to an output port (output terminal).

ここで、フリップフロップ回路は、入力されるクロック信号に同期して入力データを保持するため、クロック信号と入力データの入力タイミングについては、フリップフロップ回路が必要とするセットアップタイムやホールドタイムを満たすように実装する必要がある。例えば、フリップフロップ回路にて入力データが保持されるクロック信号のエッジに対して、フリップフロップ回路が必要とするホールドタイム以上の期間において入力データの値が切り替わらないように実装する。   Here, since the flip-flop circuit holds the input data in synchronization with the input clock signal, the input timing of the clock signal and the input data satisfies the setup time and hold time required by the flip-flop circuit. Need to be implemented. For example, the input data value is not switched with respect to the edge of the clock signal in which the input data is held in the flip-flop circuit in a period longer than the hold time required by the flip-flop circuit.

そこで、半導体集積回路の設計では、例えばSDC(Synopsys Design Constraints)ファイルのようなタイミング解析用の制約ファイルにクロック定義や回路内の各パスのタイミング制約を記載し、タイミング解析ツールによりセットアップタイム違反やホールドタイム違反が起きないかを解析するタイミング解析を行う。そして、解析結果に応じてタイミング制約を満たすように回路の変更等を行う。   Therefore, in the design of semiconductor integrated circuits, for example, the clock definition and timing constraints of each path in the circuit are described in a timing analysis constraint file such as an SDC (Synopsys Design Constraints) file. Perform timing analysis to analyze whether a hold time violation occurs. Then, the circuit is changed so as to satisfy the timing constraint according to the analysis result.

例えば、半導体集積回路において、一部のフリップフロップ回路を、入力データを出力側にスルーする状態を持つラッチ回路に置き換えることで、そのフリップフロップ回路の入力側にあった遅延の余裕分を後段に渡して最悪遅延を改善し遅延最適化を行う設計技術が提案されている(例えば、特許文献1〜3参照)。   For example, in a semiconductor integrated circuit, by replacing some of the flip-flop circuits with a latch circuit having a state that allows input data to pass through to the output side, the delay margin on the input side of the flip-flop circuit can be reduced to the subsequent stage. There has been proposed a design technique for improving the worst delay and optimizing the delay (see, for example, Patent Documents 1 to 3).

特開2004−56238号公報JP 2004-56238 A 特開2000−305962号公報JP 2000-305962 A 特開平6−68195号公報JP-A-6-68195

フリップフロップ回路においてホールドタイム以上の入力データが切り替わらない期間はマージン(ホールドマージン)となる。例えば、半導体集積回路の論理設計の際に、フリップフロップ回路の入力データをフリップフロップ回路が保持するタイミング以降まで変化しないように設計することで、クロック周期以上のホールドマージンを設けることが可能である。前述の半導体集積回路の最適化技術では、フリップフロップ回路からラッチ回路への置き換えは、回路間のパスのタイミング制約を緩和するために行われており、ホールドマージンについては考慮されていない。本発明の目的は、ホールドマージンを考慮してフリップフロップ回路をラッチ回路に置き換え半導体集積回路を最適化する回路設計方法を提供することにある。   In the flip-flop circuit, a period during which input data longer than the hold time is not switched becomes a margin (hold margin). For example, when designing the logic of a semiconductor integrated circuit, it is possible to provide a hold margin longer than the clock cycle by designing the input data of the flip-flop circuit so that it does not change until after the timing at which the flip-flop circuit holds. . In the semiconductor integrated circuit optimization technique described above, the replacement from the flip-flop circuit to the latch circuit is performed in order to relax the timing constraint on the path between the circuits, and the hold margin is not taken into consideration. An object of the present invention is to provide a circuit design method for optimizing a semiconductor integrated circuit by replacing a flip-flop circuit with a latch circuit in consideration of a hold margin.

回路設計方法の一態様は、演算処理部及び記憶部を有するコンピュータを用いた回路設計方法であって、記憶部に格納された、半導体集積回路のタイミング情報に基づいて、第1のクロック信号で動作する第1のフリップフロップ回路の出力を受ける1つ以上のフリップフロップ回路について、ホールドタイムに関し第1のクロック信号の1サイクル以上の余裕があるか否かを演算処理部が判断し、記憶部に格納された、半導体集積回路の回路構成情報に基づいて、第1のフリップフロップ回路におけるデータ出力条件及びデータ出力先を演算処理部が解析する。演算処理部が、判断結果、前記1つ以上のフリップフロップ回路のホールドタイムに関して余裕があり、かつ解析結果、第1のフリップフロップ回路におけるデータ出力条件及びデータ出力先が所定の条件を満たす場合に、第1のフリップフロップ回路をラッチ回路に置き換える。 One embodiment of a circuit design method is a circuit design method using a computer having an arithmetic processing unit and a storage unit. The circuit design method uses a first clock signal based on timing information of a semiconductor integrated circuit stored in the storage unit. For one or more flip-flop circuits that receive the output of the operating first flip-flop circuit, the arithmetic processing unit determines whether there is a margin of one cycle or more of the first clock signal with respect to the hold time, and the storage unit The processing unit analyzes the data output condition and the data output destination in the first flip-flop circuit based on the circuit configuration information of the semiconductor integrated circuit stored in . When the arithmetic processing unit has a judgment result, there is a margin regarding the hold time of the one or more flip-flop circuits, and the analysis result, the data output condition and the data output destination in the first flip-flop circuit satisfy a predetermined condition The first flip-flop circuit is replaced with a latch circuit.

開示の回路設計方法は、ホールドマージンを有し、かつ回路構成が所定の条件を満たす場合に、フリップフロップ回路をラッチ回路に置き換えることができ、ホールドマージンを考慮した回路の最適化を行うことが可能になる。   The disclosed circuit design method can replace a flip-flop circuit with a latch circuit when there is a hold margin and the circuit configuration satisfies a predetermined condition, and can optimize the circuit in consideration of the hold margin. It becomes possible.

本発明の実施形態による回路設計方法の例を示すフローチャートである。It is a flowchart which shows the example of the circuit design method by embodiment of this invention. 本実施形態における最適化対象の半導体集積回路の例を示す図である。It is a figure which shows the example of the semiconductor integrated circuit of the optimization object in this embodiment. 本実施形態における回路置き換え後の半導体集積回路の例を示す図である。It is a figure which shows the example of the semiconductor integrated circuit after the circuit replacement in this embodiment. 本実施形態における最適化対象の半導体集積回路の他の例を示す図である。It is a figure which shows the other example of the semiconductor integrated circuit of the optimization object in this embodiment. 本実施形態における最適化対象の半導体集積回路の他の例を示す図である。It is a figure which shows the other example of the semiconductor integrated circuit of the optimization object in this embodiment. 本実施形態による回路設計方法を実現可能なコンピュータの構成例を示す図である。It is a figure which shows the structural example of the computer which can implement | achieve the circuit design method by this embodiment. 半導体集積回路の構成例を示す図である。It is a figure which shows the structural example of a semiconductor integrated circuit. D型フリップフロップ回路の構成及び動作を説明するための図である。It is a figure for demonstrating the structure and operation | movement of a D-type flip-flop circuit. ゲーテッドDラッチ回路の構成及び動作を説明するための図である。It is a figure for demonstrating the structure and operation | movement of a gated D latch circuit.

以下、本発明の実施形態を図面に基づいて説明する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings.

本発明の一実施形態による回路設計方法は、例えば図6に示すようなコンピュータ(設計装置)により実現でき、そのCPU(Central Processing Unit)により本実施形態による回路設計方法の動作が実施される。図6は、本実施形態による回路設計方法を実現可能なコンピュータ(設計装置)の構成例を示す図である。バス601には、CPU602、ROM(Read Only Memory)603、RAM(Random Access Memory)604、ネットワークインターフェース605、入力装置606、出力装置607、及び外部記憶装置608が接続されている。   The circuit design method according to the embodiment of the present invention can be realized by, for example, a computer (design apparatus) as shown in FIG. 6, and the operation of the circuit design method according to the present embodiment is performed by the CPU (Central Processing Unit). FIG. 6 is a diagram illustrating a configuration example of a computer (design apparatus) capable of realizing the circuit design method according to the present embodiment. A CPU 602, a ROM (Read Only Memory) 603, a RAM (Random Access Memory) 604, a network interface 605, an input device 606, an output device 607, and an external storage device 608 are connected to the bus 601.

CPU602は、データの処理や演算を行うとともに、バス601を介して接続された各構成要素を制御する。ROM603には、予めブートプログラムが記憶されており、このブートプログラムをCPU602が実行することにより、コンピュータが起動する。外部記憶装置608にコンピュータプログラムが記憶されており、そのコンピュータプログラムがRAM604にコピーされてCPU602により実行することで、例えば本実施形態による回路設計方法の各処理等が行われる。RAM604は、データの入出力、送受信のためのワークメモリ、各構成要素の制御のための一時記憶として用いられる。   The CPU 602 performs data processing and calculation, and controls each component connected via the bus 601. A boot program is stored in the ROM 603 in advance, and the computer is activated when the CPU 602 executes the boot program. A computer program is stored in the external storage device 608, and the computer program is copied to the RAM 604 and executed by the CPU 602, whereby, for example, each process of the circuit design method according to the present embodiment is performed. The RAM 604 is used as a work memory for data input / output, transmission / reception, and temporary storage for control of each component.

外部記憶装置608は、例えばハードディスク記憶装置やCD−ROM等であり、電源を切っても記憶内容が消えない。ネットワークインターフェース605は、ネットワークに接続するためのインターフェースである。入力装置606は、例えばキーボードやポインティングデバイス(マウス)等であり、各種指定や入力等を行うことができる。出力装置607は、ディスプレイやプリンタ等であり、表示や印刷等を行うことができる。   The external storage device 608 is, for example, a hard disk storage device or a CD-ROM, and the stored content does not disappear even when the power is turned off. The network interface 605 is an interface for connecting to a network. The input device 606 is, for example, a keyboard or a pointing device (mouse), and can perform various designations and inputs. The output device 607 is a display, a printer, or the like, and can perform display, printing, and the like.

以下、本実施形態による回路設計方法について説明する。本実施形態による回路設計方法において最適化対象となる半導体集積回路は、例えば図7に示したような複数の機能を1つのチップ上に実装したSoC(System on a Chip)に実装され、クロックに同期して動作するフリップフロップ回路を含む内部回路である。なお、以下では、本実施形態による回路設計方法が適用可能な半導体集積回路が有する回路構成のうち、最適化の説明に必要な一部の回路構成だけを示して説明するが、半導体集積回路は例えば組み合わせ回路等のその他の回路構成を有していても良い。   The circuit design method according to the present embodiment will be described below. The semiconductor integrated circuit to be optimized in the circuit design method according to the present embodiment is mounted on, for example, a SoC (System on a Chip) in which a plurality of functions as shown in FIG. It is an internal circuit including a flip-flop circuit that operates in synchronization. In the following description, only a part of the circuit configuration necessary for the description of the optimization among the circuit configurations of the semiconductor integrated circuit to which the circuit design method according to the present embodiment can be applied will be described. For example, you may have other circuit structures, such as a combinational circuit.

図1は、本実施形態による回路設計方法の例を示すフローチャートであり、図示した各処理は、例えば図6に示したコンピュータが有するCPU100により実行される。図1に示す本実施形態による回路設計方法は、例えば半導体集積回路の開発におけるRTL(Register Transfer Language)設計又はレイアウト設計のタイミングで適用可能である。図2(A)に構成を示す回路を一例に、図1に示す本実施形態による回路設計方法について説明する。   FIG. 1 is a flowchart illustrating an example of a circuit design method according to the present embodiment. Each illustrated process is executed by, for example, the CPU 100 included in the computer illustrated in FIG. The circuit design method according to the present embodiment shown in FIG. 1 can be applied, for example, at the timing of RTL (Register Transfer Language) design or layout design in the development of a semiconductor integrated circuit. The circuit design method according to the present embodiment shown in FIG. 1 will be described using the circuit having the configuration shown in FIG. 2A as an example.

図2(A)は、本実施形態における最適化対象の半導体集積回路の構成例を示す図である。図2(A)には、データ出力側(転送元)のフリップフロップ回路SFF−i及びセレクタSSEL−iと、データ入力側(転送先)のフリップフロップ回路DFF−i及びセレクタDSEL−iと、フリップフロップ回路201、202とを有する回路を一例として示している。フリップフロップ回路SFF−i、DFF−i、201、202の各々は、図8(A)に示したようなD型フリップフロップ回路である。なお、iは添え字であり、i=1〜N(Nは、例えば8、16、32、64等)である(以下においても同様)。   FIG. 2A is a diagram showing a configuration example of a semiconductor integrated circuit to be optimized in the present embodiment. In FIG. 2A, the data output side (transfer source) flip-flop circuit SFF-i and selector SSEL-i, the data input side (transfer destination) flip-flop circuit DFF-i and selector DSEL-i, A circuit including flip-flop circuits 201 and 202 is shown as an example. Each of the flip-flop circuits SFF-i, DFF-i, 201, and 202 is a D-type flip-flop circuit as shown in FIG. Note that i is a subscript, and i = 1 to N (N is, for example, 8, 16, 32, 64, etc.) (the same applies below).

データ出力側のフリップフロップ回路SFF−iの各々は、クロック信号CLKに同期して、セレクタSSEL−iの出力を保持し、転送データ信号SDATAiとして出力する。セレクタSSEL−iの各々は、入力されるイネーブル信号EN1に応じて、入力データ信号IDATAi又は転送データ信号SDATAiを出力する。図2(A)に示した例では、セレクタSSEL−iは、イネーブル信号EN1が“1”(ハイレベル)である場合に入力データ信号IDATAiを出力し、イネーブル信号EN1が“0”(ローレベル)である場合に転送データ信号SDATAiを出力する。すなわち、データ出力側のフリップフロップ回路SFF−i及びセレクタSSEL−iは、信号EN1をイネーブル信号とするイネーブル信号付きのフリップフロップ回路に相当する。   Each of the flip-flop circuits SFF-i on the data output side holds the output of the selector SSEL-i in synchronization with the clock signal CLK and outputs it as the transfer data signal SDATAi. Each of the selectors SSEL-i outputs an input data signal IDATAi or a transfer data signal SDATAi according to the input enable signal EN1. In the example shown in FIG. 2A, the selector SSEL-i outputs the input data signal IDATAi when the enable signal EN1 is “1” (high level), and the enable signal EN1 is “0” (low level). ), The transfer data signal SDATAi is output. That is, the flip-flop circuit SFF-i and the selector SSEL-i on the data output side correspond to a flip-flop circuit with an enable signal that uses the signal EN1 as an enable signal.

データ入力側のフリップフロップ回路DFF−iの各々は、クロック信号CLKに同期して、セレクタDSEL−iの出力を保持し、出力データ信号ODATAiとして出力する。セレクタDSEL−iの各々は、イネーブル信号EN2に応じて、転送データ信号SDATAi又は出力データ信号ODATAiを出力する。図2(A)に示した例では、セレクタDSEL−iは、イネーブル信号EN2が“1”(ハイレベル)である場合に転送データ信号SDATAiを出力し、イネーブル信号EN2が“0”(ローレベル)である場合に出力データ信号ODATAiを出力する。すなわち、データ入力側のフリップフロップ回路DFF−i及びセレクタDSEL−iは、信号EN2をイネーブル信号とするイネーブル信号付きのフリップフロップ回路に相当する。   Each of the flip-flop circuits DFF-i on the data input side holds the output of the selector DSEL-i in synchronization with the clock signal CLK and outputs it as an output data signal ODATAi. Each of the selectors DSEL-i outputs a transfer data signal SDATAi or an output data signal ODATAi in response to the enable signal EN2. In the example shown in FIG. 2A, the selector DSEL-i outputs the transfer data signal SDATAi when the enable signal EN2 is “1” (high level), and the enable signal EN2 is “0” (low level). ), The output data signal ODATAi is output. That is, the flip-flop circuit DFF-i and the selector DSEL-i on the data input side correspond to a flip-flop circuit with an enable signal that uses the signal EN2 as an enable signal.

フリップフロップ回路201は、クロック信号CLKに同期して、入力されるイネーブル信号EN1を保持して出力し、フリップフロップ回路202は、クロック信号CLKに同期して、フリップフロップ回路201の出力を保持してイネーブル信号EN2として出力する。すなわち、フリップフロップ回路201、202により、入力されるイネーブル信号EN1が、クロック信号CLKの2サイクル後にイネーブル信号EN2として出力される。イネーブル信号EN1、EN2は、新たにデータ信号を保持する場合にハイレベルにアサートされる。なお、図2(A)に示す回路において、イネーブル信号EN1のアサートは、必ず2サイクル以上のディアサート期間が挿入されるものとする。   The flip-flop circuit 201 holds and outputs the input enable signal EN1 in synchronization with the clock signal CLK, and the flip-flop circuit 202 holds the output of the flip-flop circuit 201 in synchronization with the clock signal CLK. And output as an enable signal EN2. That is, the enable signal EN1 input by the flip-flop circuits 201 and 202 is output as the enable signal EN2 after two cycles of the clock signal CLK. The enable signals EN1 and EN2 are asserted to a high level when a new data signal is held. Note that in the circuit shown in FIG. 2A, the assertion of the enable signal EN1 always includes a deassertion period of two cycles or more.

図2(B)は、図2(A)に示した回路の動作例を示すタイミングチャートである。時刻T11において、入力されるイネーブル信号EN1がアサートされハイレベルになり、セレクタSSELは、入力データ信号IDATAをフリップフロップ回路SFFに出力する。イネーブル信号EN1がハイレベルになった後のクロック信号CLKの立ち上がりである時刻T12において、フリップフロップ回路SFFは、クロック信号CLKに同期して、入力データ信号IDATAを保持し、転送データ信号SDATAとして出力する。また、イネーブル信号EN1は、時刻T12においてディアサートされローレベルになる。   FIG. 2B is a timing chart illustrating an operation example of the circuit illustrated in FIG. At time T11, the input enable signal EN1 is asserted and becomes high level, and the selector SSEL outputs the input data signal IDATA to the flip-flop circuit SFF. At time T12, which is the rising edge of the clock signal CLK after the enable signal EN1 becomes high level, the flip-flop circuit SFF holds the input data signal IDATA in synchronization with the clock signal CLK and outputs it as the transfer data signal SDATA. To do. The enable signal EN1 is deasserted at the time T12 and becomes low level.

時刻T12から1サイクル後のクロック信号CLKの立ち上がりである時刻T13において、イネーブル信号EN2がアサートされハイレベルになり、セレクタDSELは、転送データ信号SDATAをフリップフロップ回路DFFに出力する。イネーブル信号EN2がハイレベルになった後のクロック信号CLKの立ち上がりである時刻T14において、フリップフロップ回路DFFは、クロック信号CLKに同期して、転送データ信号SDATAを保持し、出力データ信号ODATAとして出力する。   At time T13, which is the rising edge of the clock signal CLK one cycle after time T12, the enable signal EN2 is asserted and becomes high level, and the selector DSEL outputs the transfer data signal SDATA to the flip-flop circuit DFF. At time T14, which is the rise of the clock signal CLK after the enable signal EN2 becomes high level, the flip-flop circuit DFF holds the transfer data signal SDATA in synchronization with the clock signal CLK and outputs it as the output data signal ODATA. To do.

また、時刻T14において、イネーブル信号EN1が再びアサートされると、その後のクロック信号CLKの立ち上がりである時刻T15において、フリップフロップ回路SFFは、クロック信号CLKに同期して、入力データ信号IDATAを保持し、転送データ信号SDATAとして出力する。つまり、時刻T15において、転送データ信号SDATAが切り替わる。   When the enable signal EN1 is asserted again at time T14, the flip-flop circuit SFF holds the input data signal IDATA in synchronization with the clock signal CLK at time T15, which is the subsequent rise of the clock signal CLK. And output as the transfer data signal SDATA. That is, at time T15, the transfer data signal SDATA is switched.

すなわち、図2(B)に示した例では、時刻T12におけるクロック信号CLKの立ち上がりでイネーブル信号EN1のアサートを認識したデータ出力側のフリップフロップ回路SFFがデータを出力する。また、時刻T14におけるクロック信号CLKの立ち上がりでイネーブル信号EN2のアサートを認識したデータ入力側のフリップフロップ回路DFFがデータ出力側のフリップフロップ回路SFFの出力を保持する。また、時刻T15におけるクロック信号CLKの立ち上がりでイネーブル信号EN1のアサートを認識するまでデータ出力側のフリップフロップ回路SFFはデータを保持する。すなわち、図2(A)に示した回路において、フリップフロップ回路DFFは、クロック信号CLKの1サイクル分のホールドマージンがあることとなる。   That is, in the example shown in FIG. 2B, the data output side flip-flop circuit SFF that has recognized the assertion of the enable signal EN1 at the rising edge of the clock signal CLK at time T12 outputs data. The flip-flop circuit DFF on the data input side that recognizes the assertion of the enable signal EN2 at the rising edge of the clock signal CLK at time T14 holds the output of the flip-flop circuit SFF on the data output side. Further, the flip-flop circuit SFF on the data output side holds the data until the assertion of the enable signal EN1 is recognized at the rising edge of the clock signal CLK at time T15. That is, in the circuit illustrated in FIG. 2A, the flip-flop circuit DFF has a hold margin for one cycle of the clock signal CLK.

本実施形態における回路設計方法では、ホールドマージンに注目し、対象のパスがクロック信号の1サイクル以上のホールドマージンを有し、かつ特定の条件を満たす場合に、データ出力側のフリップフロップ回路をラッチ回路に置き換え最適化する。図1に示すように、まずステップS101において、外部記憶装置等から読み出した設計対象の半導体集積回路のタイミング情報11に基づいて、対象のパスにおいてデータ出力側のフリップフロップ回路(図2(A)に示した例ではフリップフロップ回路SFF)によるホールドマージンがあるか否かを判断する。すなわち、データ入力側のフリップフロップ回路について、ホールドタイムに関し、クロック信号の1サイクル以上の余裕があるか否かを判断する。タイミング情報11としては、半導体集積回路に係るタイミング情報のうち、少なくともホールドマージンに関する情報が含まれていれば良い。   In the circuit design method according to the present embodiment, attention is paid to the hold margin, and the flip-flop circuit on the data output side is latched when the target path has a hold margin of one cycle or more of the clock signal and satisfies a specific condition. Optimize by replacing with a circuit. As shown in FIG. 1, first, in step S101, based on the timing information 11 of the target semiconductor integrated circuit read from the external storage device or the like, the flip-flop circuit on the data output side in the target path (FIG. 2A). In the example shown in FIG. 5, it is determined whether or not there is a hold margin by the flip-flop circuit SFF). That is, for the flip-flop circuit on the data input side, it is determined whether there is a margin of one cycle or more of the clock signal with respect to the hold time. The timing information 11 only needs to include at least information related to the hold margin among the timing information related to the semiconductor integrated circuit.

また、タイミング情報11としてタイミング制約が記載されたSDC(Synopsys Design Constraints)ファイルのようなタイミング解析用の制約ファイルを参照し、ホールドマージンがあるか否かを判断するようにしても良い。例えば、SDCファイルでは、2サイクル以上でセットアップを受け渡す場合など、ホールドタイミングを含めタイミング解析の制約を緩和できる場合に使用する制約として、set_multicycle_path制約がある。set_multicycle_path制約では、「setup/hold」オプションによりセットアップタイム又はホールドタイムに関する緩和を指定でき、「start/end」オプションにより制約値がデータ出力側(start)又はデータ入力側(end)を指定できる。   Further, a timing analysis constraint file such as an SDC (Synopsys Design Constraints) file in which timing constraints are described as the timing information 11 may be referenced to determine whether there is a hold margin. For example, in the SDC file, there is a set_multicycle_path constraint as a constraint used when the constraint of timing analysis including the hold timing can be relaxed, such as when the setup is transferred in two cycles or more. In the set_multicycle_path constraint, relaxation regarding the setup time or hold time can be specified by the “setup / hold” option, and the constraint value can specify the data output side (start) or the data input side (end) by the “start / end” option.

例えば、図2(A)に示した回路に対しては、SDCのタイミング制約として、以下のようなset_multicycle_path制約を指定することができる。イネーブル信号EN1のアサートの2サイクル後にイネーブル信号EN2がアサートすることから、
set_multicycle_path -from SFF -to DFF -setup 2
を指定することができる。また、イネーブル信号EN1のアサートは必ず2サイクル以上のディアサート期間が挿入されることから、
set_multicycle_path -from SFF -to DFF -hold 2
を指定することができる。
For example, for the circuit shown in FIG. 2A, the following set_multicycle_path constraint can be specified as an SDC timing constraint. Since the enable signal EN2 is asserted after two cycles of assertion of the enable signal EN1,
set_multicycle_path -from SFF -to DFF -setup 2
Can be specified. Also, since the assertion of the enable signal EN1 always includes a deassertion period of two cycles or more,
set_multicycle_path -from SFF -to DFF -hold 2
Can be specified.

前述の例のようにset_multicycle_path制約でホールドタイムを緩和指定する場合には、指定されたパスにホールドマージンがあると解釈することができ、その指定されたパスではデータ出力側のフリップフロップ回路によるホールドマージンがあると判断することができる。このように、SDCファイルのようなタイミング解析用の制約ファイルに、例えば論理設計担当者等がホールドマージンを有するパスの情報を作成し記録しておくことで、対象のパスにデータ出力側のフリップフロップ回路による1サイクル以上のホールドマージンがあるか否かを判断する処理が容易となる。   When the hold time is specified to be relaxed with the set_multicycle_path constraint as in the previous example, it can be interpreted that the specified path has a hold margin, and the specified path holds by the flip-flop circuit on the data output side. It can be determined that there is a margin. As described above, by creating and recording information on a path having a hold margin, for example, by a logic designer in a constraint file for timing analysis such as an SDC file, the flip-flop on the data output side is recorded in the target path. This makes it easy to determine whether or not there is a hold margin of one cycle or more by the circuit.

ステップS101での判断の結果、ホールドマージンがある場合には(S101のYes)、ステップS102において、外部記憶装置等から読み出したネットリストやRTL設計情報等の回路構成情報12に基づいて回路構成の解析を行う。回路構成の解析では、データ出力側のフリップフロップ回路におけるデータ出力条件の探索、及びデータ出力側のフリップフロップ回路からの出力データの接続先の探索を行う。データ出力側のフリップフロップ回路においてデータ出力条件(データの出力を許可する)となるイネーブル信号(図2(A)に示した例ではイネーブル信号EN1)が存在するか否か、及びデータ出力側のフリップフロップ回路が出力するデータの出力先が1つであるか複数であるかをそれぞれ確認する。   If the result of determination in step S101 is that there is a hold margin (Yes in S101), in step S102, the circuit configuration is determined based on the circuit configuration information 12 such as the net list or RTL design information read from the external storage device or the like. Perform analysis. In the analysis of the circuit configuration, a search for a data output condition in the flip-flop circuit on the data output side and a search for a connection destination of output data from the flip-flop circuit on the data output side are performed. In the flip-flop circuit on the data output side, whether or not there is an enable signal (enable signal EN1 in the example shown in FIG. 2A) that becomes a data output condition (allows data output), and whether or not the data output side Each of the output destinations of data output from the flip-flop circuit is confirmed.

続いて、ステップS103において、ステップS102での回路構成の解析結果を基に、データ出力側のフリップフロップ回路をラッチ回路に置き換え可能であるか否かを判断する。ステップS102での回路構成の解析の結果、データ出力側のフリップフロップ回路においてデータ出力条件となるイネーブル信号が存在し、かつデータ出力側のフリップフロップ回路が出力するデータの出力先が1つである場合には、データ出力側のフリップフロップ回路をラッチ回路に置き換え可能であると判断する。また、データ出力側のフリップフロップ回路においてデータ出力条件となるイネーブル信号が存在し、かつデータ出力側のフリップフロップ回路が出力するデータの出力先が複数であるがすべての出力先についてホールドマージンが存在する場合には、データ出力側のフリップフロップ回路をラッチ回路に置き換え可能であると判断する。これら2つのケース以外の場合には、データ出力側のフリップフロップ回路のラッチ回路への置き換えはしないと判断する。   Subsequently, in step S103, based on the analysis result of the circuit configuration in step S102, it is determined whether or not the flip-flop circuit on the data output side can be replaced with a latch circuit. As a result of the analysis of the circuit configuration in step S102, an enable signal serving as a data output condition exists in the flip-flop circuit on the data output side, and the output destination of the data output from the flip-flop circuit on the data output side is one. In this case, it is determined that the flip-flop circuit on the data output side can be replaced with a latch circuit. In addition, an enable signal serving as a data output condition exists in the flip-flop circuit on the data output side, and there are multiple output destinations of data output from the flip-flop circuit on the data output side, but there are hold margins for all output destinations. In this case, it is determined that the flip-flop circuit on the data output side can be replaced with a latch circuit. In cases other than these two cases, it is determined that the flip-flop circuit on the data output side is not replaced with the latch circuit.

ステップS103での判断の結果、データ出力側のフリップフロップ回路をラッチ回路に置き換え可能であると判断した場合には(S103のYes)、データ出力側のフリップフロップ回路(及びそれに対応するセレクタ)を、イネーブル信号をゲート信号として用いてラッチ回路に置き換える。そして、最適化した後のタイミング情報(例えばSDCファイル等)13を必要に応じて作成するともに、回路構成情報(ネットリストやRTL設計情報等)14を作成する。なお、作成した最適化後のタイミング情報13や回路構成情報14は、外部記憶装置等に記憶される。   As a result of the determination in step S103, if it is determined that the flip-flop circuit on the data output side can be replaced with the latch circuit (Yes in S103), the flip-flop circuit on the data output side (and the corresponding selector) is changed. Then, the enable signal is used as a gate signal to replace the latch circuit. Then, the optimized timing information (for example, SDC file) 13 is created as needed, and circuit configuration information (net list, RTL design information, etc.) 14 is created. The created optimized timing information 13 and circuit configuration information 14 are stored in an external storage device or the like.

例えば、図2(A)に示した回路は、本実施形態による回路設計方法を適用し最適化することで、データ出力側のフリップフロップ回路SFF及びセレクタSSELをラッチ回路に置き換え、図3(A)に示すような回路が得られる。図3(A)は、本実施形態における回路置き換え後の半導体集積回路の構成例を示す図である。図3(A)において、図2(A)に示した構成要素と同じ構成要素には同一の符号を付し、重複する説明は省略する。   For example, the circuit shown in FIG. 2A is optimized by applying the circuit design method according to the present embodiment, whereby the flip-flop circuit SFF and the selector SSEL on the data output side are replaced with a latch circuit, and the circuit shown in FIG. ) Is obtained. FIG. 3A is a diagram illustrating a configuration example of the semiconductor integrated circuit after circuit replacement in the present embodiment. 3A, the same components as those illustrated in FIG. 2A are denoted by the same reference numerals, and redundant description is omitted.

図3(A)に示すように、図2(A)に示したデータ出力側のフリップフロップ回路SFF−i及びセレクタSSEL−iが、ラッチ回路SL−iに置き換えられている。ラッチ回路SL−iの各々は、図9(A)に示したようなゲーテッドDラッチ回路である。ラッチ回路SL−iの各々は、入力されるイネーブル信号EN1がゲート信号として入力されるとともに、D入力として入力データ信号IDATAiが入力される。また、ラッチ回路SL−iの各々は、Q出力として転送データ信号SDATAiを出力する。   As shown in FIG. 3A, the flip-flop circuit SFF-i and the selector SSEL-i on the data output side shown in FIG. 2A are replaced with a latch circuit SL-i. Each of the latch circuits SL-i is a gated D latch circuit as shown in FIG. Each of the latch circuits SL-i receives an input enable signal EN1 as a gate signal and an input data signal IDATAi as a D input. Each of the latch circuits SL-i outputs a transfer data signal SDATAi as a Q output.

図3(B)は、入力データIDATA及びイネーブル信号EN1が図2(B)と同様に変化した場合の、図3(A)に示した回路の動作例を示すタイミングチャートである。時刻T21において、入力されるイネーブル信号EN1がアサートされハイレベルになる。ゲート信号として入力されるイネーブル信号EN1がハイレベルになったことにより、ラッチ回路SLは、入力データ信号IDATAを転送データ信号SDATAとして出力する。続く、時刻T22において、ゲート信号として入力されるイネーブル信号EN1がディアサートされローレベルになったことにより、ラッチ回路SLは、イネーブル信号EN1がローレベルになったときの入力データ信号IDATAを保持し、転送データ信号SDATAとして出力する。   FIG. 3B is a timing chart illustrating an operation example of the circuit illustrated in FIG. 3A when the input data IDATA and the enable signal EN1 are changed in the same manner as in FIG. At time T21, the input enable signal EN1 is asserted and becomes high level. As the enable signal EN1 input as the gate signal becomes high level, the latch circuit SL outputs the input data signal IDATA as the transfer data signal SDATA. Subsequently, at time T22, the enable signal EN1 input as the gate signal is deasserted and becomes low level, so that the latch circuit SL holds the input data signal IDATA when the enable signal EN1 becomes low level. And output as the transfer data signal SDATA.

時刻T22から1サイクル後のクロック信号CLKの立ち上がりである時刻T23において、イネーブル信号EN2がアサートされハイレベルになり、セレクタDSELは、転送データ信号SDATAをフリップフロップ回路DFFに出力する。イネーブル信号EN2がハイレベルになった後のクロック信号CLKの立ち上がりである時刻T24において、フリップフロップ回路DFFは、クロック信号CLKに同期して、転送データ信号SDATAを保持し、出力データ信号ODATAとして出力する。また、時刻T24において、ゲート信号として入力されるイネーブル信号EN1が再びアサートされハイレベルになると、ラッチ回路SLは、入力データ信号IDATAを転送データ信号SDATAとして出力する。   At time T23, which is the rising edge of the clock signal CLK one cycle after time T22, the enable signal EN2 is asserted and becomes high level, and the selector DSEL outputs the transfer data signal SDATA to the flip-flop circuit DFF. At time T24, which is the rise of the clock signal CLK after the enable signal EN2 becomes high level, the flip-flop circuit DFF holds the transfer data signal SDATA in synchronization with the clock signal CLK and outputs it as the output data signal ODATA. To do. At time T24, when the enable signal EN1 input as the gate signal is asserted again and becomes high level, the latch circuit SL outputs the input data signal IDATA as the transfer data signal SDATA.

すなわち、図3(B)に示した例では、時刻T21におけるクロック信号CLKの立ち上がりでゲート信号として入力されるイネーブル信号EN1がアサートされると、ラッチ回路SLはデータを出力する。そして、時刻T22におけるクロック信号CLKの立ち上がりでイネーブル信号EN1がディアサートされると、ラッチ回路SLはその時のデータを保持する。また、時刻T24におけるクロック信号CLKの立ち上がりでイネーブル信号EN2のアサートを認識したフリップフロップ回路DFFがラッチ回路SLの出力を保持する。ラッチ回路SLは、ゲート信号として入力されるイネーブル信号EN1が再びアサートされるまでデータを保持する。   That is, in the example shown in FIG. 3B, when the enable signal EN1 input as the gate signal is asserted at the rising edge of the clock signal CLK at time T21, the latch circuit SL outputs data. When the enable signal EN1 is deasserted at the rising edge of the clock signal CLK at time T22, the latch circuit SL holds the data at that time. Further, the flip-flop circuit DFF that recognizes the assertion of the enable signal EN2 at the rising edge of the clock signal CLK at time T24 holds the output of the latch circuit SL. The latch circuit SL holds data until the enable signal EN1 input as a gate signal is asserted again.

データ入力側のフリップフロップ回路SFF(及びセレクタSSEL)をラッチ回路SLに置き換えても、図3(B)に示したように、図2(B)と同様のタイミングで出力データODATAを出力することができる。なお、図3(A)に示すように、データ入力側のフリップフロップ回路SFF(及びセレクタSSEL)をラッチ回路SLに置き換えることで生じる信号の切り替わりタイミングによる影響を確認するには、変更した回路構成に沿ってタイミング制約を修正してタイミング解析を行えばよい。   Even if the flip-flop circuit SFF (and the selector SSEL) on the data input side is replaced with the latch circuit SL, as shown in FIG. 3B, the output data ODATA is output at the same timing as in FIG. Can do. As shown in FIG. 3A, in order to confirm the influence of the signal switching timing caused by replacing the flip-flop circuit SFF (and the selector SSEL) on the data input side with the latch circuit SL, the changed circuit configuration is used. The timing constraint may be corrected along with the timing analysis.

例えば、図2(A)に示した回路を図3(A)に示した回路に変更した場合には、図2(A)に示した回路に対して指定することができる
set_multicycle_path -from SFF -to DFF -setup 2
set_multicycle_path -from SFF -to DFF -hold 2
との制約を、
set_multicycle_path -from SL -to DFF -setup 2
set_multicycle_path -from SL -to DFF -hold 1
と変更し、図3(A)に示した回路に対して指定すれば良い。
For example, when the circuit shown in FIG. 2A is changed to the circuit shown in FIG. 3A, the circuit shown in FIG. 2A can be designated.
set_multicycle_path -from SFF -to DFF -setup 2
set_multicycle_path -from SFF -to DFF -hold 2
And constraints
set_multicycle_path -from SL -to DFF -setup 2
set_multicycle_path -from SL -to DFF -hold 1
And may be specified for the circuit shown in FIG.

本実施形態によれば、半導体集積回路のタイミング情報及び回路構成情報を基に、ホールドマージンを有するパスを抽出し、抽出したパスの回路構成が特定の条件を満たす場合には、そのパスにおけるデータ出力側のフリップフロップ回路(及びセレクタ)をラッチ回路に置き換える。このようにしてホールドマージンを考慮した回路の最適化を行い、フリップフロップ回路を、追加回路を必要とせずにタイミング特性が異なるラッチ回路に置き換えることができ、回路面積を縮小することができるとともに、消費電力を低減することが可能となる。   According to the present embodiment, a path having a hold margin is extracted based on timing information and circuit configuration information of a semiconductor integrated circuit. When the circuit configuration of the extracted path satisfies a specific condition, data in the path is extracted. The flip-flop circuit (and selector) on the output side is replaced with a latch circuit. In this way, the circuit is optimized in consideration of the hold margin, the flip-flop circuit can be replaced with a latch circuit having different timing characteristics without requiring an additional circuit, and the circuit area can be reduced. It becomes possible to reduce power consumption.

また、本実施形態による回路設計方法での最適化が適用可能な回路構成は、図2(A)に示した回路構成に限定されるものではない。例えば、図4に示すように、データ入力側のフリップフロップ回路SFF−i及びセレクタSSEL−iに代えて、イネーブル制御付きのフリップフロップ回路SFFA−iを用いた回路においても本実施形態による回路設計方法が適用可能である。前述した実施形態と同様に置き換えの条件を満たせば、イネーブル制御付きのフリップフロップ回路SFFA−iをラッチ回路SL−iに置き換え、図4に示した回路を図3(A)に示した回路のように最適化することができ、回路面積を縮小することができるとともに、消費電力を低減することが可能となる。   Further, the circuit configuration to which the optimization by the circuit design method according to the present embodiment is applicable is not limited to the circuit configuration shown in FIG. For example, as shown in FIG. 4, the circuit design according to this embodiment is also applied to a circuit using a flip-flop circuit SFFA-i with enable control instead of the flip-flop circuit SFF-i and selector SSEL-i on the data input side. The method is applicable. If the replacement condition is satisfied as in the above-described embodiment, the flip-flop circuit SFFA-i with enable control is replaced with the latch circuit SL-i, and the circuit shown in FIG. 4 is replaced with the circuit shown in FIG. Thus, the circuit area can be reduced and the power consumption can be reduced.

また、例えば、図5に示すように、データ入力側のセレクタSSEL−iに代えて、対応するフリップフロップ回路SFF−iへの入力を、論理積演算回路(AND回路)211−i、212−i、インバータ213−i、及び論理和演算回路(OR回路)214−iにより制御する回路においても本実施形態による回路設計方法が適用可能である。前述した実施形態と同様に置き換えの条件を満たせば、フリップフロップ回路SFF−i、AND回路211−i、212−i、インバータ213−i、及びOR回路214−iの組をラッチ回路SL−iに置き換え、図5に示した回路を図3(A)に示した回路のように最適化することができ、回路面積を縮小することができるとともに、消費電力を低減することが可能となる。   Further, for example, as shown in FIG. 5, instead of the selector SSEL-i on the data input side, the input to the corresponding flip-flop circuit SFF-i is connected to the logical product operation circuits (AND circuits) 211-i, 212-. The circuit design method according to this embodiment can also be applied to a circuit controlled by i, the inverter 213-i, and the logical sum operation circuit (OR circuit) 214-i. If the replacement condition is satisfied as in the above-described embodiment, the set of the flip-flop circuit SFF-i, AND circuits 211-i and 212-i, inverter 213-i, and OR circuit 214-i is latch circuit SL-i. 5 can be optimized like the circuit shown in FIG. 3A, the circuit area can be reduced and the power consumption can be reduced.

なお、前述した例では、データ出力側のフリップフロップ回路とデータ入力側のフリップフロップ回路とを同一クロックドメインとしているが、次の条件を満たす場合には、データ出力側のフリップフロップ回路とデータ入力側のフリップフロップ回路とが異なるクロックドメインのものであっても、本実施形態を適用可能である。データ出力側のフリップフロップ回路のクロック信号で1サイクル以上のホールドマージンが存在し、かつ周波数が異なるクロック信号であっても一方のクロック信号の立ち上がりが他方のクロック信号の立ち上がりに揃う場合には、データ出力側のフリップフロップ回路からの出力データの接続先の探索に係る条件を満たせば、データ出力側のフリップフロップ回路をラッチ回路に置き換え可能である。   In the above example, the flip-flop circuit on the data output side and the flip-flop circuit on the data input side have the same clock domain. However, if the following conditions are satisfied, the flip-flop circuit on the data output side and the data input side Even if the flip-flop circuit on the side is of a different clock domain, this embodiment can be applied. When the clock signal of the flip-flop circuit on the data output side has a hold margin of one cycle or more, and even if the clock signal has a different frequency, the rise of one clock signal is aligned with the rise of the other clock signal. If the condition relating to the search for the connection destination of the output data from the flip-flop circuit on the data output side is satisfied, the flip-flop circuit on the data output side can be replaced with a latch circuit.

前述した実施形態による回路設計方法は、図6に示したようなコンピュータが、記憶部に記憶されたプログラムを実行することで実現でき、前記プログラムは本発明の実施形態に含まれる。また、コンピュータに前述した回路設計方法の各処理を実行させるプログラムを、例えばCD−ROMのような記録媒体に記録し、コンピュータに読み込ませることによって実現できるものであり、前記プログラムを記録した記録媒体は本発明の実施形態に含まれる。前記プログラムを記録する記録媒体としては、CD−ROM以外に、フレキシブルディスク、ハードディスク、磁気テープ、光磁気ディスク、不揮発性メモリカード等を用いることができる。   The circuit design method according to the above-described embodiment can be realized by a computer as shown in FIG. 6 executing a program stored in the storage unit, and the program is included in the embodiment of the present invention. Further, a program for causing a computer to execute each process of the circuit design method described above can be realized by recording the program on a recording medium such as a CD-ROM and causing the computer to read the program. Are included in embodiments of the present invention. As a recording medium for recording the program, besides a CD-ROM, a flexible disk, a hard disk, a magnetic tape, a magneto-optical disk, a nonvolatile memory card, or the like can be used.

また、コンピュータがプログラムを実行し処理を行うことにより、前述した回路設計方法の各処理が実現されるプログラムプロダクトは、本発明の実施形態に含まれる。前記プログラムプロダクトとしては、前述した回路設計方法の処理を実現するプログラム自体、前記プログラムが読み込まれたコンピュータがある。また、前記プログラムプロダクトとして、ネットワークを介して通信可能に接続されたコンピュータに前記プログラムを提供可能な送信装置、当該送信装置を備えるネットワークシステム等がある。   In addition, a program product in which each process of the circuit design method described above is realized by a computer executing a program and processing is included in the embodiment of the present invention. Examples of the program product include a program itself that realizes the processing of the circuit design method described above, and a computer in which the program is read. The program product includes a transmission device that can provide the program to a computer that is communicably connected via a network, a network system that includes the transmission device, and the like.

また、供給されたプログラムがコンピュータにおいて稼動しているOS(オペレーティングシステム)又は他のアプリケーションソフト等と共同して前述した回路設計方法の処理が実現される場合も、かかるプログラムは本発明の実施形態に含まれる。また、供給されたプログラムの処理のすべて又は一部がコンピュータの機能拡張ボードや機能拡張ユニットにより行われて前述した回路設計方法の処理が実現される場合も、かかるプログラムは本発明の実施形態に含まれる。また、本発明をネットワーク環境で利用するべく、全部又は一部のプログラムが他のコンピュータで実行されるようになっていても良い。   Further, when the supplied program realizes the processing of the circuit design method described above in cooperation with an OS (operating system) running on a computer or other application software, the program is an embodiment of the present invention. include. Also, when all or part of the processing of the supplied program is performed by the function expansion board or function expansion unit of the computer and the processing of the circuit design method described above is realized, such program is included in the embodiment of the present invention. included. In order to use the present invention in a network environment, all or a part of the program may be executed by another computer.

なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
本発明の諸態様を付記として以下に示す。
The above-described embodiments are merely examples of implementation in carrying out the present invention, and the technical scope of the present invention should not be construed as being limited thereto. That is, the present invention can be implemented in various forms without departing from the technical idea or the main features thereof.
Various aspects of the present invention will be described below as supplementary notes.

(付記1)
半導体集積回路のタイミング情報に基づいて、第1のクロック信号で動作する第1のフリップフロップ回路の出力を受ける1つ以上のフリップフロップ回路について、ホールドタイムに関し前記第1のクロック信号の1サイクル以上の余裕があるか否かを判断する工程と、
前記半導体集積回路の回路構成情報に基づいて、前記第1のフリップフロップ回路におけるデータ出力条件及びデータ出力先を解析する工程と、
前記判断結果、前記1つ以上のフリップフロップ回路のホールドタイムに関して前記第1のクロック信号の1サイクル以上の余裕があり、かつ前記解析結果、前記第1のフリップフロップ回路におけるデータ出力条件及びデータ出力先が所定の条件を満たす場合に、前記第1のフリップフロップ回路をラッチ回路に置き換える工程とを有することを特徴とする回路設計方法。
(付記2)
前記タイミング情報は、前記半導体集積回路におけるタイミング制約が記載されたファイルから取得することを特徴とする付記1記載の回路設計方法。
(付記3)
前記第1のフリップフロップ回路を前記ラッチ回路に置き換えた際に、置き換え後の前記半導体集積回路のタイミング情報及び回路構成情報を作成することを特徴とする付記1又は2記載の回路設計方法。
(付記4)
前記第1のフリップフロップ回路におけるデータの出力条件の解析では、前記第1のフリップフロップ回路におけるデータ出力を許可する信号を有するか否かを判断し、
前記第1のフリップフロップのデータ出力先の解析では、前記第1のフリップフロップ回路のデータの出力先が前記1つ以上のフリップフロップ回路だけであるか否かを判断することを特徴とする付記1〜3の何れか1項に記載の回路設計方法。
(付記5)
前記1つ以上のフリップフロップ回路は第2のクロック信号で動作し、
前記第1のクロック信号と前記第2のクロック信号とは同じクロック信号であることを特徴とする付記1〜4の何れか1項に記載の回路設計方法。
(付記6)
前記1つ以上のフリップフロップ回路は第2のクロック信号で動作し、
前記第1のクロック信号と前記第2のクロック信号とは周波数が異なり、一方のクロック信号が他方のクロック信号の立ち上がりと同じタイミングで立ち上がることを特徴とする付記1〜4の何れか1項に記載の回路設計方法。
(付記7)
第1のクロック信号に同期した2サイクル以上のディアサート期間が挿入されてアサートされるイネーブル信号が供給され、前記イネーブル信号がアサートされているとき、前記第1のクロック信号に同期した入力データを出力し、前記イネーブル信号がディアサートされているとき、出力を保持するラッチ回路と、
第2のクロック信号に同期された前記イネーブル信号及び前記第2のクロック信号に応答して、前記ラッチ回路の出力を保持するフリップフロップ回路とを有することを特徴とする半導体集積回路。
(付記8)
半導体集積回路のタイミング情報に基づいて、第1のクロック信号で動作する第1のフリップフロップ回路の出力を受ける1つ以上のフリップフロップ回路について、ホールドタイムに関し前記第1のクロック信号の1サイクル以上の余裕があるか否かを判断するステップと、
前記半導体集積回路の回路構成情報に基づいて、前記第1のフリップフロップ回路におけるデータ出力条件及びデータ出力先を解析するステップと、
前記判断結果、前記1つ以上のフリップフロップ回路のホールドタイムに関して前記第1のクロック信号の1サイクル以上の余裕があり、かつ前記解析結果、前記第1のフリップフロップ回路におけるデータ出力条件及びデータ出力先が所定の条件を満たす場合に、前記第1のフリップフロップ回路をラッチ回路に置き換えるステップとをコンピュータに実行させることを特徴とするプログラム。
(Appendix 1)
One or more flip-flop circuits receiving the output of the first flip-flop circuit operating with the first clock signal based on the timing information of the semiconductor integrated circuit, and at least one cycle of the first clock signal with respect to the hold time Determining whether there is room for
Analyzing a data output condition and a data output destination in the first flip-flop circuit based on circuit configuration information of the semiconductor integrated circuit;
As a result of the determination, there is a margin of one cycle or more of the first clock signal with respect to the hold time of the one or more flip-flop circuits, and the analysis result, the data output condition and the data output in the first flip-flop circuit And a step of replacing the first flip-flop circuit with a latch circuit when the destination satisfies a predetermined condition.
(Appendix 2)
The circuit design method according to appendix 1, wherein the timing information is obtained from a file in which timing constraints in the semiconductor integrated circuit are described.
(Appendix 3)
3. The circuit design method according to claim 1, wherein when the first flip-flop circuit is replaced with the latch circuit, timing information and circuit configuration information of the semiconductor integrated circuit after the replacement are created.
(Appendix 4)
In the analysis of the data output condition in the first flip-flop circuit, it is determined whether or not it has a signal for permitting data output in the first flip-flop circuit;
The analysis of the data output destination of the first flip-flop determines whether or not the data output destination of the first flip-flop circuit is only the one or more flip-flop circuits. The circuit design method according to any one of 1 to 3.
(Appendix 5)
The one or more flip-flop circuits operate with a second clock signal;
The circuit design method according to any one of appendices 1 to 4, wherein the first clock signal and the second clock signal are the same clock signal.
(Appendix 6)
The one or more flip-flop circuits operate with a second clock signal;
Any one of Supplementary notes 1 to 4, wherein the first clock signal and the second clock signal have different frequencies, and one clock signal rises at the same timing as the rise of the other clock signal. The circuit design method described.
(Appendix 7)
A deassertion period of two cycles or more synchronized with the first clock signal is inserted and an enable signal to be asserted is supplied. When the enable signal is asserted, input data synchronized with the first clock signal is input. And a latch circuit that holds the output when the enable signal is deasserted,
A semiconductor integrated circuit comprising: a flip-flop circuit that holds an output of the latch circuit in response to the enable signal synchronized with a second clock signal and the second clock signal.
(Appendix 8)
One or more flip-flop circuits receiving the output of the first flip-flop circuit operating with the first clock signal based on the timing information of the semiconductor integrated circuit, and at least one cycle of the first clock signal with respect to the hold time Determining whether there is room for
Analyzing a data output condition and a data output destination in the first flip-flop circuit based on circuit configuration information of the semiconductor integrated circuit;
As a result of the determination, there is a margin of one cycle or more of the first clock signal with respect to the hold time of the one or more flip-flop circuits, and the analysis result, the data output condition and the data output in the first flip-flop circuit A program for causing a computer to execute a step of replacing the first flip-flop circuit with a latch circuit when the destination satisfies a predetermined condition.

11 タイミング情報
12 回路構成情報
13 タイミング情報(最適化後)
14 回路構成情報(最適化後)
SFF、SFFA、DFF、201、202 フリップフロップ回路
SL ラッチ回路
SSEL、DSEL セレクタ
601 バス
602 CPU
603 ROM
604 RAM
605 ネットワークインターフェース
606 入力装置
607 出力装置
608 外部記憶装置
11 Timing information 12 Circuit configuration information 13 Timing information (after optimization)
14 Circuit configuration information (after optimization)
SFF, SFFA, DFF, 201, 202 Flip-flop circuit SL Latch circuit SSEL, DSEL Selector 601 Bus 602 CPU
603 ROM
604 RAM
605 Network interface 606 Input device 607 Output device 608 External storage device

Claims (4)

演算処理部及び記憶部を有するコンピュータを用いた回路設計方法であって、
前記記憶部に格納された、半導体集積回路のタイミング情報に基づいて、第1のクロック信号で動作する第1のフリップフロップ回路の出力を受ける1つ以上のフリップフロップ回路について、ホールドタイムに関し前記第1のクロック信号の1サイクル以上の余裕があるか否かを前記演算処理部が判断する工程と、
前記記憶部に格納された、前記半導体集積回路の回路構成情報に基づいて、前記第1のフリップフロップ回路におけるデータ出力条件及びデータ出力先を前記演算処理部が解析する工程と、
前記演算処理部が、前記判断結果、前記1つ以上のフリップフロップ回路のホールドタイムに関して前記第1のクロック信号の1サイクル以上の余裕があり、かつ前記解析結果、前記第1のフリップフロップ回路におけるデータ出力条件及びデータ出力先が所定の条件を満たす場合に、前記第1のフリップフロップ回路をラッチ回路に置き換える工程とを有することを特徴とする回路設計方法。
A circuit design method using a computer having an arithmetic processing unit and a storage unit,
The one or more flip-flop circuits that receive the output of the first flip-flop circuit that operates with the first clock signal based on the timing information of the semiconductor integrated circuit stored in the storage unit . A step in which the arithmetic processing unit determines whether or not there is a margin of one cycle or more of one clock signal;
A step in which the arithmetic processing unit analyzes a data output condition and a data output destination in the first flip-flop circuit based on circuit configuration information of the semiconductor integrated circuit stored in the storage unit ;
The arithmetic processing unit has a margin of one cycle or more of the first clock signal with respect to a hold time of the one or more flip-flop circuits, and the analysis result indicates that the first flip-flop circuit And a step of replacing the first flip-flop circuit with a latch circuit when a data output condition and a data output destination satisfy predetermined conditions.
前記タイミング情報は、前記記憶部に格納された、前記半導体集積回路におけるタイミング制約が記載されたファイルから取得することを特徴とする請求項1記載の回路設計方法。 The circuit design method according to claim 1, wherein the timing information is acquired from a file stored in the storage unit and describing timing constraints in the semiconductor integrated circuit. 前記第1のフリップフロップ回路を前記ラッチ回路に置き換えた際に、置き換え後の前記半導体集積回路のタイミング情報及び回路構成情報を前記演算処理部が作成することを特徴とする請求項1又は2記載の回路設計方法。 3. The arithmetic processing unit creates timing information and circuit configuration information of the semiconductor integrated circuit after replacement when the first flip-flop circuit is replaced with the latch circuit. Circuit design method. 前記第1のフリップフロップ回路におけるデータ出力条件の解析では、前記第1のフリップフロップ回路におけるデータ出力を許可する信号を有するか否かを前記演算処理部が判断し、
前記第1のフリップフロップ回路におけるデータ出力先の解析では、前記第1のフリップフロップ回路のデータ出力先が前記1つ以上のフリップフロップ回路だけであるか否かを前記演算処理部が判断することを特徴とする請求項1〜3の何れか1項に記載の回路設計方法。
And in the analysis of the first data output condition in flip-flop circuits, whether with a signal for permitting data output in the first flip-flop circuit is the arithmetic processing unit determines,
And in the analysis of the data output destination of the first flip-flop circuit, whether data output destination of the first flip-flop circuit is only the one or more flip-flop circuits the arithmetic processing unit determines The circuit design method according to claim 1, wherein the circuit design method is performed.
JP2014099768A 2014-05-13 2014-05-13 Circuit design method Expired - Fee Related JP6413332B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014099768A JP6413332B2 (en) 2014-05-13 2014-05-13 Circuit design method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014099768A JP6413332B2 (en) 2014-05-13 2014-05-13 Circuit design method

Publications (2)

Publication Number Publication Date
JP2015215851A JP2015215851A (en) 2015-12-03
JP6413332B2 true JP6413332B2 (en) 2018-10-31

Family

ID=54752653

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014099768A Expired - Fee Related JP6413332B2 (en) 2014-05-13 2014-05-13 Circuit design method

Country Status (1)

Country Link
JP (1) JP6413332B2 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003234643A (en) * 2002-02-07 2003-08-22 Mitsubishi Electric Corp Design method for semiconductor integrated circuit device and semiconductor integrated circuit device
JP2008028930A (en) * 2006-07-25 2008-02-07 Toshiba Corp Semiconductor integrated circuit, and method of designing the same
JP2009282638A (en) * 2008-05-20 2009-12-03 Nec Electronics Corp Layout design system, layout design method and program

Also Published As

Publication number Publication date
JP2015215851A (en) 2015-12-03

Similar Documents

Publication Publication Date Title
JP3357813B2 (en) Gated clock design support method, gated clock design support device, and computer-readable recording medium storing gated clock design support program
US8132144B2 (en) Automatic clock-gating insertion and propagation technique
US7979831B1 (en) Placement driven control set resynthesis
JP6728345B2 (en) Interactive multi-step physical synthesis
US10048739B2 (en) Managing power consumption of a gated clock mesh
US7917882B2 (en) Automated digital circuit design tool that reduces or eliminates adverse timing constraints due to an inherent clock signal skew, and applications thereof
US8493108B2 (en) Synchronizer with high reliability
US9672305B1 (en) Method for gating clock signals using late arriving enable signals
US9710584B1 (en) Performance of circuitry generated using high-level synthesis
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
US10303833B1 (en) Parallelizing timing-based operations for circuit designs
US10796058B1 (en) Partial reconfiguration of integrated circuits using shell representation of platform design
US10216217B1 (en) Adaptive compilation and execution for hardware acceleration
Takizawa et al. A design support tool set for asynchronous circuits with bundled-data implementation on FPGAs
US10963613B1 (en) Partial reconfiguration of integrated circuits using shell representation of platform design with extended routing region
US9965581B1 (en) Fanout optimization to facilitate timing improvement in circuit designs
JP6833140B2 (en) Circuit design support system and circuit design support program
JP6413332B2 (en) Circuit design method
US10657210B2 (en) Slack time recycling
US10678983B1 (en) Local retiming optimization for circuit designs
US10296686B1 (en) Switching-activity-based selection of low-power sequential circuitry
US8191028B1 (en) Methods and systems for improving a maximum operating frequency of an integrated circuit during a route phase
US10684862B2 (en) Processor synthesis device, processor synthesis method, and computer readable medium
US10162922B2 (en) Hybrid clock gating methodology for high performance cores
JP6317603B2 (en) Information processing apparatus, information processing apparatus control method, and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170411

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180409

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180904

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180917

R150 Certificate of patent or registration of utility model

Ref document number: 6413332

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees