JP3698657B2 - ゲーティッドクロック生成回路及び回路修正方法 - Google Patents

ゲーティッドクロック生成回路及び回路修正方法 Download PDF

Info

Publication number
JP3698657B2
JP3698657B2 JP2001176723A JP2001176723A JP3698657B2 JP 3698657 B2 JP3698657 B2 JP 3698657B2 JP 2001176723 A JP2001176723 A JP 2001176723A JP 2001176723 A JP2001176723 A JP 2001176723A JP 3698657 B2 JP3698657 B2 JP 3698657B2
Authority
JP
Japan
Prior art keywords
signal
gate
clock
flip
clock signal
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
JP2001176723A
Other languages
English (en)
Other versions
JP2002366254A (ja
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.)
Sharp Corp
Original Assignee
Sharp 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 Sharp Corp filed Critical Sharp Corp
Priority to JP2001176723A priority Critical patent/JP3698657B2/ja
Priority to CNB021243077A priority patent/CN1308792C/zh
Priority to US10/166,627 priority patent/US7082579B2/en
Priority to DE60232481T priority patent/DE60232481D1/de
Priority to EP02254086A priority patent/EP1267249B1/en
Publication of JP2002366254A publication Critical patent/JP2002366254A/ja
Application granted granted Critical
Publication of JP3698657B2 publication Critical patent/JP3698657B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Manipulation Of Pulses (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、クロック信号をON/OFF制御して出力するゲーティッドクロック生成回路に関するものである。
【0002】
【従来の技術】
クロック同期の半導体集積回路(以下、「クロック同期回路」という)において、クロック信号が供給されるフリップフロップ間のクロック信号の遅延時間差(以下、「スキュー」という)が大きい場合、不動または誤動作などの不具合が発生する。このため、クロック同期回路は一般に同期設計されている。
【0003】
同期設計とは、外部から入力されたクロック信号を回路内で分周、ON/OFF制御、又は反転を行わずに、直接フリップフロップのクロック入力端子に入力し、尚かつ、クロック信号のスキューを最小にするように回路素子の配置や回路素子間の配線(以下、配置配線という)を行う設計のことである。
【0004】
しかし、クロック同期回路では全てのフリップフロップに常にクロック信号が入力され、フリップフロップの消費電力が増大する。したがって、クロック同期回路全体の消費電力も増大する。
【0005】
クロック同期回路の消費電力を削減する効果的な方法として、ゲーティッドクロック生成回路を設け、任意の条件において動作する必要のないフリップフロップのクロック入力端子にはゲーティッドクロック生成回路が出力するゲーティッドクロック信号を供給する方法が提案されている。
【0006】
そして、従来のゲーティッドクロック生成回路としては、例えば図14又は図16のような構成の回路が挙げられる。
【0007】
まず、図14のゲーティッドクロック生成回路について説明する。クロック信号CLK1が入力される入力端子1は、バッファ・ゲートBUF1を介してバッファ・ゲートBUF2の入力端子およびバッファ・ゲートBUF3の入力端子に接続される。
【0008】
バッファ・ゲートBUF2の出力端子は、フリップフロップFF1のクロック入力端子に接続される。また、バッファ・ゲートBUF3の出力端子は、ANDゲートAN1の第2入力端子に接続される。
【0009】
データ信号Data1が入力される入力端子2が、フリップフロップFF1のデータ入力端子に接続される。また、フリップフロップFF1の出力端子がANDゲートAN1の第1入力端子に接続される。そして、ANDゲートAN1の出力端子がゲーティッドクロック信号GCLK1を出力する出力端子3に接続される。
【0010】
このような構成のゲーティッドクロック生成回路の動作について図14の回路構成図及び図15のタイミングチャートを参照して説明する。入力端子1に入力されたクロック信号CLK1は、バッファ・ゲートBUF1及びBUF2を介してフリップフロップFF1のクロック入力端子に到達する。また、入力端子2に入力されたデータ信号Data1は、フリップフロップFF1のデータ入力端子に到達する。そうすると、フリップフロップFF1の出力端子からANDゲートAN1の第1入力端子に送出されるゲート信号Gate1は、図15(a)に示すようなデータ信号Data1の反転タイミングがクロック信号CLK1の立ち上がりエッジまで遅延した波形の信号となる。
【0011】
一方、入力端子1に入力されたクロック信号CLK1は、ANDゲートAN1の第2入力端子にも到達する。ANDゲートAN1は、ゲート信号Gate1とクロック信号CLK1との論理積であるゲーティッドクロック信号GCLK1を出力端子3に送出する。
【0012】
したがって、クロック信号が必要な期間をデータ信号によって入力することにより、その必要な期間のみクロック信号がゲーティッドクロック信号GCLK1として出力されることになる。
【0013】
次に、図16のゲーティッドクロック生成回路について説明する。クロック信号CLK2が入力される入力端子4は、インバータINV2の入力端子およびバッファ・ゲートBUF5の入力端子に接続される。
【0014】
インバータINV2の出力端子は、バッファ・ゲートBUF4を介してフリップフロップFF3のクロック入力端子に接続される。また、バッファ・ゲートBUF5の出力端子は、ANDゲートAN3の第2入力端子に接続される。
【0015】
そして、データ信号Data2が入力される入力端子5が、フリップフロップFF3のデータ入力端子に接続される。また、フリップフロップFF3の出力端子がANDゲートAN3の第1入力端子に接続される。また、ANDゲートAN3の出力端子がゲーティッドクロック信号GCLK2を出力する出力端子6に接続される。
【0016】
このような構成のゲーティッドクロック生成回路の動作について図16の回路構成図及び図17のタイミングチャートを参照して説明する。入力端子4に入力されたクロック信号CLK2は、インバータINV2で反転されたのち、バッファ・ゲートBUF4を介してフリップフロップFF3のクロック入力端子に到達する。また、入力端子5に入力されたデータ信号Data2は、フリップフロップFF3のデータ入力端子に到達する。そうすると、フリップフロップFF3の出力端子からANDゲートAN3の第1入力端子に送出されるゲート信号Gate3は、図17(a)に示すようにデータ信号Data2の反転タイミングがクロック信号CLK2の立ち下がりエッジまで遅延した波形の信号となる。
【0017】
一方、入力端子4に入力されたクロック信号CLK2は、バッファ・ゲートBUF5を介してANDゲートAN3の第2入力端子にも到達する。ANDゲートAN3は、ゲート信号Gate3とクロック信号CLK2との論理積であるゲーティッドクロック信号GCLK2を出力端子6に送出する。
【0018】
したがって、クロック信号が必要な期間をデータ信号によって入力することにより、その必要な期間のみクロック信号がゲーティッドクロック信号GCLK2として出力されることになる。
【0019】
【発明が解決しようとする課題】
しかしながら、配置配線によって信号遅延時間が異なるため、ゲーティッドクロック信号を出力するANDゲートの第1入力端子に到達するゲート信号のエッジとゲーティッドクロック信号を出力するANDゲートの第2入力端子に到達するクロック信号のエッジとが図15(a)や図17(a)に示したように一致するとは限らない。
【0020】
例えば、図14のゲーティッドクロック生成回路において、クロック信号CLK1がゲート信号Gate1より早くANDゲートAN1に到達したとすると、図15(b)に示すようにゲート信号Gate1の反転タイミング近傍でクロック信号CLK1およびゲート信号Gate1がともにHighである期間t1ができてしまう。そのため、期間t1においてゲーティッドクロック信号GCLK1にグリッジが発生することになる。逆に、ゲート信号Gate1がクロック信号CLK1より早くANDゲートAN1に到達すると、図15(c)に示すようにゲート信号Gate1の反転タイミング近傍でクロック信号CLK1およびゲート信号Gate1がともにHighである期間がないので、ゲーティッドクロック信号GCLK1にグリッジが発生することはない。
【0021】
また、図16のゲーティッドクロック生成回路において、ゲート信号Gate3がクロック信号CLK2より早くANDゲートAN3に到達したとすると、図17(c)に示すようにゲート信号Gate3の反転タイミング近傍でクロック信号CLK2およびゲート信号Gate3がともにHighである期間t2ができてしまう。そのため、期間t2においてゲーティッドクロック信号GCLK2にグリッジが発生することになる。逆に、クロック信号CLK2がゲート信号Gate3より早くANDゲートAN3に到達すると、図17(b)に示すようにゲート信号Gate3の反転タイミング近傍でクロック信号CLK2およびゲート信号Gate3がともにHighである期間がないので、ゲーティッドクロック信号GCLK2にグリッジが発生することはない。
【0022】
ゲーティッドクロック信号にグリッジが発生すると、ゲーティッドクロック信号を入力する回路が誤動作するおそれがある。そのため、クロック同期回路では配置配線を行った後、クロック信号とゲート信号についてゲーティッドクロック信号を出力するANDゲートまでの遅延時間を確認していた。そして、ゲーティッドクロック信号にグリッジが発生する場合には、クロック信号及びゲート信号の遅延時間を調整するために冗長な回路を挿入するなどして配置配線をやり直したり、再設計を行ったりしていた。
【0023】
本発明は、上記の問題点に鑑み、グリッジが発生しないゲーティッドクロック生成回路を提供することを目的とする。
【0024】
【課題を解決するための手段】
上記目的を達成するために、本発明に係るゲーティッドクロック生成回路においては、データ信号及び継続して変化するクロック信号を入力し、前記クロック信号の立ち下がりエッジに前記データ信号の反転タイミングが同期するように前記クロック信号に応じて前記データ信号を遅延させることによって第1のゲート信号を生成する手段と、前記クロック信号と前記第1のゲート信号とを入力し、前記クロック信号に応じて前記第1のゲート信号を遅延させることによって前記第1のゲート信号に対して前記クロック信号の半周期分だけ位相がずれた第2のゲート信号を生成する手段と、論理積ゲートからなり、前記第1のゲート信号及び前記第2のゲート信号に基づいて前記クロック信号の出力をON/OFF制御する手段と、を備えるようにする。
【0025】
また、従来のゲーティッドクロック生成回路を備えたクロック同期回路を設計したのち従来のゲーティッドクロック生成回路を上記構成のゲーティッドクロック生成回路に修正する方法としては、継続して変化するクロック信号の立ち上がりエッジにデータ信号の反転タイミングが同期するように前記クロック信号に応じて前記データ信号を遅延させることによって生成される第1のゲート信号に基づいて前記クロック信号の出力をON/OFF制御するゲーティッドクロック生成回路を備えたクロック同期回路の回路図情報又はネットリストに対して前記クロック信号を反転させるインバータを追加するステップと、前記第1のゲート信号を生成しているフリップフロップを前記回路図情報又はネットリストから検索するステップと、前記第1のゲート信号を生成しているフリップフロップのデータ入力とデータ入力を同一にし且つ前記インバータが出力する信号をクロック入力とするフリップフロップを前記回路図情報又はネットリストに追加するステップと、追加したフリップフロップが出力する信号と修正前のゲーティッドクロック生成回路が出力していた信号との論理積を出力するANDゲートを前記回路図情報又はネットリストに追加するステップと、追加したANDゲートが出力する信号を修正後のゲーティッドクロック生成回路の出力信号とするステップと、を有する方法がある。
【0026】
また、上記方法をコンピュータに実行させるプログラムとしては、継続して変化するクロック信号の立ち上がりエッジにデータ信号の反転タイミングが同期するように前記クロック信号に応じて前記データ信号を遅延させることによって生成される第1のゲート信号に基づいて前記クロック信号の出力をON/OFF制御するゲーティッドクロック生成回路を備えたクロック同期回路の回路図情報又はネットリストを入力するステップと、前記回路図情報又はネットリストに対して前記クロック信号を反転させるインバータを追加するステップと、前記第1のゲート信号を生成しているフリップフロップを前記回路図情報又はネットリストから検索するステップと、前記第1のゲート信号を生成しているフリップフロップのデータ入力とデータ入力を同一にし且つ前記インバータが出力する信号をクロック入力とするフリップフロップを前記回路図情報又はネットリストに追加するステップと、追加したフリップフロップが出力する信号と修正前のゲーティッドクロック生成回路が出力していた信号との論理積を出力するANDゲートを前記回路図情報又はネットリストに追加するステップと、追加したANDゲートが出力する信号を修正後のゲーティッドクロック生成回路の出力信号とするステップと、をコンピュータに実行させるためのプログラムがある。
【0027】
また、従来のゲーティッドクロック生成回路を備えたクロック同期回路を設計したのち従来のゲーティッドクロック生成回路を上記構成のゲーティッドクロック生成回路に修正する方法としては、継続して変化するクロック信号の立ち下がりエッジにデータ信号の反転タイミングが同期するように前記クロック信号に応じて前記データ信号を遅延させることによって生成される第1のゲート信号に基づいて前記クロック信号の出力をON/OFF制御するゲーティッドクロック生成回路を備えたクロック同期回路の回路図情報又はネットリストから前記第1のゲート信号を生成しているフリップフロップを検索するステップと、前記第1のゲート信号を生成しているフリップフロップが出力する信号をデータ入力とし且つ前記クロック信号をクロック入力とするフリップフロップを前記回路図情報又はネットリストに追加するステップと、追加したフリップフロップの出力信号と修正前のゲーティッドクロック生成回路の出力信号との論理積を出力するANDゲートを前記回路図情報又はネットリストに追加するステップと、追加したANDゲートの出力信号を修正後のゲーティッドクロック生成回路の出力信号とするステップと、を有する方法がある。
【0028】
また、上記方法をコンピュータに実行させるプログラムとしては、継続して変化するクロック信号の立ち下がりエッジにデータ信号の反転タイミングが同期するように前記クロック信号に応じて前記データ信号を遅延させることによって生成される第1のゲート信号に基づいて前記クロック信号の出力をON/OFF制御するゲーティッドクロック生成回路を備えたクロック同期回路の回路図情報又はネットリストを入力するステップと、前記回路図情報又はネットリストから前記第1のゲート信号を生成しているフリップフロップを検索するステップと、前記第1のゲート信号を生成しているフリップフロップが出力する信号をデータ入力とし且つ前記クロック信号をクロック入力とするフリップフロップを前記回路図情報又はネットリストに追加するステップと、追加したフリップフロップの出力信号と修正前のゲーティッドクロック生成回路の出力信号との論理積を出力するANDゲートを前記回路図情報又はネットリストに追加するステップと、追加したANDゲートの出力信号を修正後のゲーティッドクロック生成回路の出力信号とするステップと、をコンピュータに実行させるためのプログラムがある。
【0029】
また、従来のゲーティッドクロック生成回路を備えたクロック同期回路を表現するハードウェア記述言語による記述において、従来のゲーティッドクロック生成回路を表現するハードウェア記述言語による記述を上記構成のゲーティッドクロック生成回路を表現するハードウェア記述言語による記述に修正する方法としては、継続して変化するクロック信号の立ち上がりエッジにデータ信号の反転タイミングが同期するように前記クロック信号に応じて前記データ信号を遅延させることによって生成される第1のゲート信号に基づいて前記クロック信号の出力をON/OFF制御するゲーティッドクロック生成回路を備えたクロック同期回路を表現する論理合成前のハードウェア記述言語による記述に対して前記クロック信号を反転させるインバータを表現するハードウェア記述言語による記述を追加するステップと、前記第1のゲート信号を生成しているフリップフロップを表現する記述を前記クロック同期回路を表現する論理合成前のハードウェア記述言語による記述から検索するステップと、前記第1のゲート信号を生成しているフリップフロップのデータ入力とデータ入力を同一にし且つ前記インバータが出力する信号をクロック入力とするフリップフロップを表現するハードウェア記述言語による記述を前記クロック同期回路を表現する論理合成前のハードウェア記述言語による記述に追加するステップと、追加したフリップフロップが出力する信号と修正前のゲーティッドクロック生成回路が出力していた信号との論理積を出力するANDゲートを表現するハードウェア記述言語による記述を前記クロック同期回路を表現する論理合成前のハードウェア記述言語による記述に追加するステップと、追加したANDゲートが出力する信号を修正後のゲーティッドクロック生成回路の出力信号とするように前記クロック同期回路を表現する論理合成前のハードウェア記述言語による記述を書き換えるステップと、を有する方法がある。
【0030】
また、上記方法をコンピュータに実行させるプログラムとしては、継続して変化するクロック信号の立ち上がりエッジにデータ信号の反転タイミングが同期するように前記クロック信号に応じて前記データ信号を遅延させることによって生成される第1のゲート信号に基づいて前記クロック信号の出力をON/OFF制御するゲーティッドクロック生成回路を備えたクロック同期回路を表現する論理合成前のハードウェア記述言語による記述を入力するステップと、前記クロック同期回路を表現する論理合成前のハードウェア記述言語による記述に対して前記クロック信号を反転させるインバータを表現するハードウェア記述言語による記述を追加するステップと、前記第1のゲート信号を生成しているフリップフロップを表現する記述を前記クロック同期回路を表現する論理合成前のハードウェア記述言語による記述から検索するステップと、前記第1のゲート信号を生成しているフリップフロップのデータ入力とデータ入力を同一にし且つ前記インバータが出力する信号をクロック入力とするフリップフロップを表現するハードウェア記述言語による記述を前記クロック同期回路を表現する論理合成前のハードウェア記述言語による記述に追加するステップと、追加したフリップフロップが出力する信号と修正前のゲーティッドクロック生成回路が出力していた信号との論理積を出力するANDゲートを表現するハードウェア記述言語による記述を前記クロック同期回路を表現する論理合成前のハードウェア記述言語による記述に追加するステップと、追加したANDゲートが出力する信号を修正後のゲーティッドクロック生成回路の出力信号とするように前記クロック同期回路を表現する論理合成前のハードウェア記述言語による記述を書き換えるステップと、をコンピュータに実行させるためのプログラムがある。
【0031】
また、従来のゲーティッドクロック生成回路を備えたクロック同期回路を表現するハードウェア記述言語による記述において、従来のゲーティッドクロック生成回路を表現するハードウェア記述言語による記述を上記構成のゲーティッドクロック生成回路を表現するハードウェア記述言語による記述に修正する方法としては、継続して変化するクロック信号の立ち下がりエッジにデータ信号の反転タイミングが同期するように前記クロック信号に応じて前記データ信号を遅延させることによって生成される第1のゲート信号に基づいて前記クロック信号の出力をON/OFF制御するゲーティッドクロック生成回路を備えたクロック同期回路を表現する論理合成前のハードウェア記述言語による記述から前記第1のゲート信号を生成しているフリップフロップを表現する記述を検索するステップと、前記第1のゲート信号を生成しているフリップフロップが出力する信号をデータ入力とし且つ前記クロック信号をクロック入力とするフリップフロップを表現するハードウェア記述言語による記述を前記クロック同期回路を表現する論理合成前のハードウェア記述言語による記述に追加するステップと、追加したフリップフロップが出力する信号と修正前のゲーティッドクロック生成回路が出力していた信号との論理積を出力するANDゲートを表現するハードウェア記述言語による記述を前記クロック同期回路を表現する論理合成前のハードウェア記述言語による記述に追加するステップと、追加したANDゲートが出力する信号を修正後のゲーティッドクロック生成回路の出力信号とするように前記クロック同期回路を表現する論理合成前のハードウェア記述言語による記述を書き換えるステップと、を有する方法がある。
【0032】
また、上記方法をコンピュータに実行させるプログラムとしては、継続して変化するクロック信号の立ち下がりエッジにデータ信号の反転タイミングが同期するように前記クロック信号に応じて前記データ信号を遅延させることによって生成される第1のゲート信号に基づいて前記クロック信号の出力をON/OFF制御するゲーティッドクロック生成回路を備えたクロック同期回路を表現する論理合成前のハードウェア記述言語による記述から前記第1のゲート信号を生成しているフリップフロップを表現する記述を検索するステップと、前記第1のゲート信号を生成しているフリップフロップが出力する信号をデータ入力とし且つ前記クロック信号をクロック入力とするフリップフロップを表現するハードウェア記述言語による記述を前記クロック同期回路を表現する論理合成前のハードウェア記述言語による記述に追加するステップと、追加したフリップフロップが出力する信号と修正前のゲーティッドクロック生成回路が出力していた信号との論理積を出力するANDゲートを表現するハードウェア記述言語による記述を前記クロック同期回路を表現する論理合成前のハードウェア記述言語による記述に追加するステップと、追加したANDゲートが出力する信号を修正後のゲーティッドクロック生成回路の出力信号とするように前記クロック同期回路を表現する論理合成前のハードウェア記述言語による記述を書き換えるステップと、をコンピュータに実行させるためのプログラムがある。
【0033】
【発明の実施の形態】
本発明の一実施形態について図面を参照して説明する。本発明に係る第一実施形態のゲーティッドクロック生成回路の構成を図1に示す。尚、図14と同一の部分には同一の符号を付す。
【0034】
クロック信号CLK1が入力される入力端子1は、バッファ・ゲートBUF1を介して、バッファ・ゲートBUF2の入力端子、バッファ・ゲートBUF3の入力端子、およびインバータINV1の入力端子にそれぞれ接続される。
【0035】
バッファ・ゲートBUF2の出力端子は、フリップフロップFF1のクロック入力端子に接続される。また、バッファ・ゲートBUF3の出力端子は、ANDゲートAN1の第2入力端子に接続される。また、インバータINV1の出力端子は、フリップフロップFF2のクロック入力端子に接続される。
【0036】
データ信号Data1が入力される入力端子2が、フリップフロップFF1のデータ入力端子およびフリップフロップFF2のデータ入力端子に接続される。
また、フリップフロップFF1の出力端子がANDゲートAN1の第1入力端子に接続される。また、ANDゲートAN1の出力端子がANDゲートAN2の第1入力端子に接続される。また、フリップフロップFF2の出力端子がANDゲートAN2の第2入力端子に接続される。そして、ANDゲートAN2の出力端子がゲーティッドクロック信号GCLK1を出力する出力端子3に接続される。
【0037】
このような構成のゲーティッドクロック生成回路の動作について図1の回路構成図及び図3のタイミングチャート図を参照して説明する。尚、図1のゲーティッドクロック生成回路に入力するクロック信号CLK1およびデータ信号Data1の波形は、図15(a)と同一の信号波形とする。
【0038】
入力端子1に入力されたクロック信号CLK1は、バッファ・ゲートBUF1及びBUF2を介してフリップフロップFF1のクロック入力端子に到達する。
また、入力端子2に入力されたデータ信号Data1は、フリップフロップFF1のデータ入力端子に到達する。そうすると、フリップフロップFF1の出力端子からANDゲートAN1の第1入力端子に送出されるゲート信号Gate1は、図3に示すようなデータ信号Data1の反転タイミングがクロック信号CLK1の立ち上がりエッジまで遅延した波形の信号となる。
【0039】
一方、入力端子1に入力されたクロック信号CLK1は、バッファ・ゲートBUF3を介してANDゲートAN1の第2入力端子にも到達する。ANDゲートAN1は、ゲート信号Gate1とクロック信号CLK1との論理積である信号をANDゲートAN2の第1入力端子に送出する。
【0040】
そして、入力端子1に入力されたクロック信号CLK1は、バッファ・ゲートBUF1及びインバータINV1を介してフリップフロップFF2のクロック入力端子に到達する。また、入力端子2に入力されたデータ信号Data1は、フリップフロップFF2のデータ入力端子に到達する。そうすると、フリップフロップFF2の出力端子からANDゲートAN2の第2入力端子に送出されるゲート信号Gate2は、図3に示すようなデータ信号Data1の反転タイミングがクロック信号CLK1の立ち下がりエッジまで遅延した波形の信号となる。
【0041】
フリップフロップFF1のデータ入力端子に入力されるデータ信号Data1は、図1のゲーティッドクロック生成回路を備えたクロック同期回路のいずれかの部分で生成されている。クロック同期回路では回路全体が同期設計されているため、データ信号Data1はクロック信号CLK1の立ち上がりで変化する信号から生成された信号である。このため、フリップフロップFF2が出力するゲート信号Gate2は、フリップフロップFF1が出力するゲート信号Gate1よりクロック信号CLK1の半周期だけ進んだ信号となる。
【0042】
上述したように、ANDゲートAN2の第1入力端子にはゲート信号Gate1とクロック信号CLK1との論理積である信号が入力され、ANDゲートAN2の第2入力端子にはゲート信号Gate2が入力されるので、ANDゲートAN2はゲート信号Gate1とゲート信号Gate2とクロック信号CLK1との論理積であるゲーティッドクロック信号GCLK1を出力端子3に送出する。
尚、ゲート信号Gate1およびゲーティッドクロック信号GCLK1の波形は図15(a)と同一である。
【0043】
したがって、クロック信号が必要な期間をデータ信号によって入力することにより、その必要な期間のみクロック信号がゲーティッドクロック信号GCLK1として出力されることになる。
【0044】
さらに、図1のゲーティッドクロック生成回路ではグリッジが発生しないことを説明する。図3中に示した期間T1、期間T2、期間T3の間のANDゲートAN1の入力信号並びにANDゲートAN2の入力信号及び出力信号の遷移の様子を図4に示す。また、図3中に示した期間T4、期間T5、期間T6の間のANDゲートAN1の入力信号並びにANDゲートAN2の入力信号及び出力信号の遷移の様子を図5に示す。尚、図4及び図5において、各丸印の中には左から順にクロック信号CLK1の論理状態、ゲート信号Gate1の論理状態、ゲート信号Gate2の論理状態を示し、「/」記号の右側にANDゲートAN2の出力状態、すなわちゲーティッドクロック信号GCLK1の論理状態を示すものとする。
【0045】
まず、図4について説明する。期間T1では、「100/0」の状態である。
期間T1から期間T2へ遷移するとき、クロック信号CLK1とゲート信号Gate2の2つの信号が反転し、「001/0」の状態に遷移しようとする。このとき、ゲーティッドクロック生成回路の配置配線により、2通りの遷移が考えられる。すなわち、クロック信号CLK1がゲート信号Gate2より先に反転する場合は「100/0」→「000/0」→「001/0」と遷移し、ゲート信号Gate2がクロック信号CLK1より先に反転する場合は「100/0」→「101/0」→「001/0」と遷移する。
【0046】
これら2通りの遷移のどちらを経由してもゲーティッドクロック信号GCLK1の論理状態は0のままであるので、期間T1から期間T2へ遷移するときにゲーティッドクロック信号GCLK1にはグリッジが発生しないことが分かる。
【0047】
また、期間T2では「001/0」の状態である。期間T2から期間T3へ遷移するとき、クロック信号CLK1とゲート信号Gate1の2つの信号が反転し、「111/1」の状態に遷移しようとする。このとき、ゲーティッドクロック生成回路の配置配線により、2通りの遷移が考えられる。すなわち、クロック信号CLK1がゲート信号Gate1より先に反転する場合は「001/0」→「101/0」→「111/1」と遷移し、ゲート信号Gate1がクロック信号CLK1より先に反転する場合は「001/0」→「011/0」→「111/1」と遷移する。
【0048】
これら2通りの遷移のどちらを経由しても区間T3になるまでゲーティッドクロック信号GCLK1の論理状態は0から1へ一度のみ変化するので、期間T2から期間T3へ遷移するときにゲーティッドクロック信号GCLK1にはグリッジが発生しないことが分かる。
【0049】
次に、図5について説明する。期間T4では、「111/1」の状態である。
期間T4から期間T5へ遷移するとき、クロック信号CLK1とゲート信号Gate2の2つの信号が反転し、「010/0」の状態に遷移しようとする。このとき、ゲーティッドクロック生成回路の配置配線により、2通りの遷移が考えられる。すなわち、クロック信号CLK1がゲート信号Gate2より先に反転する場合は「111/1」→「011/0」→「010/0」と遷移し、ゲート信号Gate2がクロック信号CLK1より先に反転する場合は「111/1」→「110/0」→「010/0」と遷移する。
【0050】
これら2通りの遷移のどちらを経由してもゲーティッドクロック信号GCLK1の論理状態は一旦1から0に変化するとその後は0のままであるので、期間T4から期間T5へ遷移するときにゲーティッドクロック信号GCLK1にはグリッジが発生しないことが分かる。
【0051】
また、期間T5では、「010/0」の状態である。期間T5から期間T6へ遷移するとき、クロック信号CLK1とゲート信号Gate1の2つの信号が反転し、「100/0」の状態に遷移しようとする。このとき、ゲーティッドクロック生成回路の配置配線により、2通りの遷移が考えられる。すなわち、クロック信号CLK1がゲート信号Gate1より先に反転する場合は「010/0」→「110/0」→「100/0」と遷移し、ゲート信号Gate1がクロック信号CLK1より先に反転する場合は「010/0」→「000/0」→「100/0」と遷移する。
【0052】
これら2通りの遷移のどちらを経由してもゲーティッドクロック信号GCLK1の論理状態は0のままであるので、期間T5から期間T6へ遷移するときにゲーティッドクロック信号GCLK1にはグリッジが発生しないことが分かる。
【0053】
このように図1のゲーティッドクロック生成回路ではグリッジが発生しないので、図1のゲーティッドクロック生成回路が出力するゲーティッドクロック信号を入力する回路の誤作動を防ぐことができる。
【0054】
次に、本発明に係る第二実施形態のゲーティッドクロック生成回路の構成を図2に示す。尚、図16と同一の部分には同一の符号を付す。
【0055】
クロック信号CLK2が入力される入力端子4は、インバータINV2の入力端子およびバッファ・ゲートBUF5の入力端子に接続される。
【0056】
インバータINV2の出力端子は、バッファ・ゲートBUF4の入力端子およびインバータINV3の入力端子に接続される。また、バッファ・ゲートBUF5の出力端子は、ANDゲートAN3の第2入力端子に接続される。
【0057】
バッファ・ゲートBUF4の出力端子は、フリップフロップFF3のクロック入力端子に接続される。また、インバータINV3の出力端子は、フリップフロップFF4のクロック入力端子に接続される。
【0058】
そして、データ信号Data2が入力される入力端子5が、フリップフロップFF3のデータ入力端子に接続される。また、フリップフロップFF3の出力端子がANDゲートAN3の第1入力端子およびフリップフロップFF4のデータ入力端子に接続される。また、ANDゲートAN3の出力端子がANDゲートAN4の第1入力端子に接続される。また、フリップフロップFF4の出力端子がANDゲートAN4の第2入力端子に接続される。そして、ANDゲートAN4の出力端子がゲーティッドクロック信号GCLK2を出力する出力端子6に接続される。
【0059】
このような構成のゲーティッドクロック生成回路の動作について図2の回路構成図及び図6のタイミングチャートを参照して説明する。入力端子4に入力されたクロック信号CLK2は、インバータINV2で反転されたのち、バッファ・ゲートBUF4を介してフリップフロップFF3のクロック入力端子に到達する。また、入力端子5に入力されたデータ信号Data2は、フリップフロップFF3のデータ入力端子に到達する。そうすると、フリップフロップFF3の出力端子からANDゲートAN3の第1入力端子に送出されるゲート信号Gate3は、図6に示すようにデータ信号Data2の反転タイミングがクロック信号CLK2の立ち下がりエッジまで遅延した波形の信号となる。
【0060】
一方、入力端子4に入力されたクロック信号CLK2は、バッファ・ゲートBUF5を介してANDゲートAN3の第2入力端子にも到達する。ANDゲートAN3は、ゲート信号Gate3とクロック信号CLK2との論理積である信号をANDゲートAN4の第1入力端子に送出する。
【0061】
そして、入力端子4に入力されたクロック信号CLK2は、インバータINV2及びINV3を介してフリップフロップFF4のクロック入力端子に到達する。また、フリップフロップFF3の出力端子から出力されるゲート信号Gate3がフリップフロップFF4のデータ入力端子に到達する。そうすると、フリップフロップFF4の出力端子からANDゲートAN4の第2入力端子に送出されるゲート信号Gate4は、ゲート信号Gate3の反転タイミングがクロック信号CLK2の立ち上がりエッジまで遅延した波形の信号となる。
【0062】
フリップフロップFF4が出力するゲート信号Gate4は、フリップフロップFF3が出力するゲート信号Gate3を遅延した信号であるので、フリップフロップFF4が出力するゲート信号Gate4は、フリップフロップFF3が出力するゲート信号Gate3よりクロック信号CLK1の半周期だけ遅れた信号となる。
【0063】
上述したように、ANDゲートAN4の第1入力端子にはゲート信号Gate3とクロック信号CLK2との論理積である信号が入力され、ANDゲートAN4の第2入力端子にはゲート信号Gate4が入力されるので、ANDゲートAN4はゲート信号Gate3とゲート信号Gate4とクロック信号CLK2との論理積であるゲーティッドクロック信号GCLK2を出力端子6に送出する。
尚、ゲート信号Gate3およびゲーティッドクロック信号GCLK2の波形は図17(a)と同一である。
【0064】
したがって、クロック信号が必要な期間をデータ信号によって入力することにより、その必要な期間のみクロック信号がゲーティッドクロック信号GCLK2として出力されることになる。
【0065】
さらに、図2のゲーティッドクロック生成回路ではグリッジが発生しないことを説明する。図6中に示した期間T7、期間T8、期間T9の間のANDゲートAN3の入力信号並びにANDゲートAN4の入力信号及び出力信号の遷移の様子を図7に示す。また、図6中に示した期間T10、期間T11、期間T12の間のANDゲートAN3の入力信号並びにANDゲートAN4の入力信号及び出力信号の遷移の様子を図8に示す。尚、図7及び図8において、各丸印の中には左から順にクロック信号CLK2の論理状態、ゲート信号Gate3の論理状態、ゲート信号Gate4の論理状態を示し、「/」記号の右側にANDゲートAN4の出力状態、すなわちゲーティッドクロック信号GCLK2の論理状態を示すものとする。
【0066】
まず、図7について説明する。期間T7では、「100/0」の状態である。
期間T7から期間T8へ遷移するとき、クロック信号CLK2とゲート信号Gate3の2つの信号が反転し、「010/0」の状態に遷移しようとする。このとき、ゲーティッドクロック生成回路の配置配線により、2通りの遷移が考えられる。すなわち、クロック信号CLK2がゲート信号Gate3より先に反転する場合は「100/0」→「000/0」→「010/0」と遷移し、ゲート信号Gate3がクロック信号CLK2より先に反転する場合は「100/0」→「110/0」→「010/0」と遷移する。
【0067】
これら2通りの遷移のどちらを経由してもゲーティッドクロック信号GCLK2の論理状態は0のままであるので、期間T7から期間T8へ遷移するときにゲーティッドクロック信号GCLK2にはグリッジが発生しないことが分かる。
【0068】
また、期間T8では、「010/0」の状態である。期間T8から期間T9へ遷移するとき、クロック信号CLK2とゲート信号Gate4の2つの信号が反転し、「111/1」の状態に遷移しようとする。このとき、ゲーティッドクロック生成回路の配置配線により、2通りの遷移が考えられる。すなわち、クロック信号CLK2がゲート信号Gate4より先に反転する場合は「010/0」→「110/0」→「111/1」と遷移し、ゲート信号Gate4がクロック信号CLK2より先に反転する場合は「010/0」→「011/0」→「111/1」と遷移する。
【0069】
これら2通りの遷移のどちらを経由しても区間T9になるまでゲーティッドクロック信号GCLK2の論理状態は0から1へ一度のみ変化するので、期間T8から期間T9へ遷移するときにゲーティッドクロック信号GCLK2にはグリッジが発生しないことが分かる。
【0070】
次に、図8について説明する。期間T10では、「111/1」の状態である。期間T10から期間T11へ遷移するとき、クロック信号CLK2とゲート信号Gate3の2つの信号が反転し、「001/0」の状態に遷移しようとする。このとき、ゲーティッドクロック生成回路の配置配線により、2通りの遷移が考えられる。すなわち、クロック信号CLK2がゲート信号Gate3より先に反転する場合は「111/1」→「011/0」→「001/0」と遷移し、ゲート信号Gate3がクロック信号CLK2より先に反転する場合は「111/1」→「101/0」→「001/0」と遷移する。
【0071】
これら2通りの遷移のどちらを経由してもゲーティッドクロック信号GCLK2の論理状態は一旦1から0に変化するとその後は0のままであるので、期間T10から期間T11へ遷移するときにゲーティッドクロック信号GCLK2にはグリッジが発生しないことが分かる。
【0072】
また、期間T11では、「001/0」の状態である。期間T11から期間T12へ遷移するとき、クロック信号CLK2とゲート信号Gate4の2つの信号が反転し、「100/0」の状態に遷移しようとする。このとき、ゲーティッドクロック生成回路の配置配線により、2通りの遷移が考えられる。すなわち、クロック信号CLK2がゲート信号Gate4より先に反転する場合は「001/0」→「101/0」→「100/0」と遷移し、ゲート信号Gate4がクロック信号CLK2より先に反転する場合は「001/0」→「000/0」→「100/0」と遷移する。
【0073】
これら2通りの遷移のどちらを経由してもゲーティッドクロック信号GCLK2の論理状態は0のままであるので、期間T11から期間T12へ遷移するときにゲーティッドクロック信号GCLK2にはグリッジが発生しないことが分かる。
【0074】
このように図2のゲーティッドクロック生成回路ではグリッジが発生しないので、図2のゲーティッドクロック生成回路が出力するゲーティッドクロック信号を入力する回路の誤作動を防ぐことができる。
【0075】
上述したようにクロック同期回路は一般に同期設計される。同期設計では、外部から入力されるクロック信号を反転させた信号である反転クロック信号を用いるためには、その反転クロック信号も別の1つのクロック信号とみなして配置配線する必要がある。このようにスキューを抑えなければならないクロック信号の数が増えると、配置配線が困難になる上、クロック信号を入出力するバッファ・ゲートの数が増大して、クロック同期回路を搭載するチップの面積が大きくなり、コストが増加することになる。
【0076】
したがって、図18(c)のようにフリップフロップFF28〜FF31に入力されるクロック信号が2種類とみなされる回路ではなく、図18(a)のようにフリップフロップFF20〜FF23に入力されるクロック信号を1種類とする回路や図18(b)のようにフリップフロップFF24〜FF27に入力されるクロック信号を1種類とする回路になるように設計することが望ましい。
【0077】
尚、図18(a)のクロック同期回路では、フリップフロップFF20〜FF23すべてにクロック信号CLKがインバータを介さずに入力されるため、フリップフロップFF20〜FF23に入力されるクロック信号が1種類となる。また、図18(b)のクロック同期回路では、フリップフロップFF24〜FF27すべてにクロック信号CLKがインバータを介して入力されるため、フリップフロップFF24〜FF27に入力されるクロック信号が1種類となる。また、図18(c)のクロック同期回路では、フリップフロップFF28及びFF29にクロック信号CLKがインバータを介さずに入力され、フリップフロップFF30及びFF31にクロック信号CLKがインバータINV21を介して入力されるため、フリップフロップFF28〜FF31に入力されるクロック信号が2種類とみなされる。
【0078】
ところが、上述した本発明に係るゲーティッドクロック回路をクロック同期回路に用いた場合、例えば図1のゲーティッドクロック回路を用いた場合、図9に示すような回路構成になる。尚、図9において図1と同一の部分には同一の符号を付す。
【0079】
図9のクロック同期回路ではフリップフロップFF2に供給されるクロック信号を別のクロック信号とみなして設計を行う必要があった。このため、本発明に係るゲーティッドクロック回路を備えたクロック同期回路は、同期設計を行ううえで設計者にとって設計しにくい回路構成となっていた。
【0080】
そこで、まず従来のゲーティッドクロック生成回路を用いてクロック同期回路を設計し、その後従来のゲーティッドクロック生成回路部分を修正し、本発明に係るゲーティッドクロック生成回路に変更するとよい。以下に、その方法について具体的に説明する。
【0081】
クロック同期回路に設けられる従来のゲーティッドクロック生成回路部分を修正して本発明に係るゲーティッドクロック生成回路に変更する回路修正装置を図10に示す。図10の回路修正装置は、回路図情報若しくはネットリスト又はハードウェア記述言語(以下、「HDL」という)による記述等の入力データを入力するための入力装置11と、修正結果を出力する出力装置12と、入力データ及び修正結果を格納するハードディスク13と、修正するために必要なデータを保持するメモリ14と、修正を行うためのプログラムが記録された記録媒体15と、記録媒体15に記録されたプログラムに従って修正を実行するCPU(Central Processor Unit)16と、を備えている。尚、CPU16は、バス17を介して入力装置11、出力装置12、ハードディスク13、メモリ14、および記録媒体15に接続される。
【0082】
CPU16は記録媒体15に記録されたプログラムを読み込み、そのプログラムに従って後述する処理を実行する。メモリ14は、入力データに追加する回路部分の回路図情報及びネットリスト並びに入力データに追加する回路部分を表現するHDLによる記述のデータを予め格納している。
【0083】
ネットリストが入力された場合に図10の回路修正装置が実行する処理手順について図10の構成図及び図11のフローチャート図を参照して説明する。
【0084】
まず入力装置11は、従来のゲーティッドクロック生成回路が設けられたクロック同期回路のネットリスト、例えば図19に示す回路のネットリストを入力する(ステップS10)。尚、図19において、図9と同一の部分には同一の符号を付す。また入力装置11は、クロック信号が供給される端子の情報、すなわちクロック信号が供給される端子が入力端子1であることを入力する(ステップS20)。
【0085】
入力装置11が入力したデータは、CPU16によってメモリ14に転送される。そしてCPU16は、メモリ14に転送されたデータに基づき、ネットリストの中からクロック信号が供給される端子に接続されている回路部分を検索して列挙する(ステップS30)。その際、バッファ・ゲート及びインバータは配線とみなし、その先に接続されている回路部分を検索する。従って、フリップフロップFF1、FF10〜FF12、およびANDゲートAN1が列挙される。
【0086】
次にCPU16は、ステップS30において列挙された回路部分の中で、クロック信号がクロック入力端子に入力されるフリップフロップ以外の回路部分、すなわちANDゲートAN1だけを抽出する(ステップS40)。ステップS40では、ANDゲートAN1がクロック信号に基づいてゲーティッドクロック信号を生成している回路部分であることが判別されている。
【0087】
そしてCPU16は、ステップS40において抽出された回路部分の入力信号を生成しているフリップフロップ、すなわちフリップフロップFF1を抽出する(ステップS50)。
【0088】
次にCPU16は、ステップS40において抽出された回路部分の入力信号の反転タイミングがクロック信号の立ち上がりエッジと同期するか否かを判定する(ステップS60)。その際、ステップS40において抽出された回路部分の入力信号の反転タイミングがクロック信号の立ち上がりエッジと同期するか否かの情報を入力装置11が入力するようにしてもよく、クロック信号が供給される入力端子とフリップフロップとの間に設けられているインバータを検索し、検索されたインバータの数に基づいてステップS40において抽出された回路部分の入力信号の反転タイミングがクロック信号の立ち上がりエッジと同期するか否かを判定してもよい。
【0089】
ステップS40において抽出された回路部分の入力信号の反転タイミングがクロック信号の立ち上がりエッジと同期していれば(ステップS60のYes)、CPU16は、メモリ14が予め格納していたデータからフリップフロップを取り出し、ステップS50で抽出されたフリップフロップと同じデータ入力を持つフリップフロップとして新たにネットリストに追加したのち(ステップS70)、ステップS90に移行する。
【0090】
一方、ステップS40において抽出された回路部分の入力信号の反転タイミングがクロック信号の立ち上がりエッジと同期しておらず、クロック信号の立ち下がりエッジと同期していれば(ステップS60のNo)、CPU16は、メモリ14が予め格納していたデータからフリップフロップを取り出し、ステップS50で抽出されたフリップフロップの出力をデータ入力とするフリップフロップとして新たにネットリストに追加したのち(ステップS80)、ステップS90に移行する。
【0091】
尚、ステップS10で図19の回路のネットリストを入力しているので、ANDゲートの入力信号の反転タイミングがクロック信号の立ち上がりエッジと同期する。したがって、CPU16はステップS80の処理は行わずステップS70の処理を行う。すなわち、ステップS50において抽出されたフリップフロップFF1と同じデータ入力を持つフリップフロップを新たにネットリストに追加する。
【0092】
ステップS90では、CPU16は、メモリ14が予め格納していたデータからインバータを取り出し、クロック信号を入力するインバータとしてネットリストに追加する。そしてCPU16は、その追加したインバータの出力を、ステップS70またはステップS80において追加したフリップフロップのクロック入力に接続するようにネットリストを書き換える(ステップS100)。
【0093】
次にCPU16は、メモリ14が予め格納していたデータからANDゲートを取り出してネットリストに追加し(ステップS110)、ステップS40で抽出した回路部分の出力と、ステップS70又はステップS80で追加したフリップフロップの出力とを、その追加したANDゲートの入力に接続するようにネットリストを書き換える(ステップS120)。
【0094】
そしてCPU16は、ステップS110で追加したANDゲートの出力を、ステップS40で抽出した回路部分の出力に接続されていた出力端子に接続するようにネットリストを書き換えて(ステップS130)、フローを終了する。さらにCPU16は、フロー処理を行って修正されたネットリストを修正結果としてハードディスク13に格納する。
【0095】
図10の回路修正装置がこのような処理を行うことによって、図19に示すクロック同期回路のネットリストが修正され、図9に示すクロック同期回路のネットリストに変更される。
【0096】
しかしながら、図10の回路修正装置が上述したようにネットリストを入力して修正する場合、修正した回路が動作しなくなるおそれがある。例えば、修正した回路が図9に示すクロック同期回路の場合、追加したフリップフロップFF2のデータ入力端子に入力されるデータ信号は、図19に示す修正前のクロック同期回路におけるフリップフロップFF1のデータ入力端子に入力されるデータ信号Data1であり、修正前のデータパスはクロック信号CLK1の立ち上がりエッジから次の立ち上がりエッジまでの1周期以内に、フリップフロップFF1のデータ入力端子に到達すればよいが、追加したフリップフロップFF2のデータ入力端子にはクロック信号CLK1の立ち上がりエッジから次の立ち下がりエッジまでに到達する必要がある。つまり、従来許容されていた遅延時間の半分でフリップフロップFF2に到達する必要がある。このように、遅延時間への制約が厳しくなるため、修正したクロック同期回路が正常に動作する保証がなくなる。
【0097】
そこで、回路図情報やネットリストなどすでに回路図になったものを修正するのではなく、論理合成前のHDLによる記述を用いて修正を行うようにするとよい。論理合成前のHDLによる記述を用いて修正を行うことによって、論理合成の際に遅延時間に対する制約を満たすかどうかを判断することができ、正常に動作する回路であるかを確認することができる。また、論理合成時に遅延時間を含めた最適化を行うことも可能となる。
【0098】
論理合成前のHDLによる記述が入力された場合に図10の回路修正装置が実行する処理手順について図13のフローチャート図を参照して説明する。
【0099】
まず入力装置11が、例えば図19のクロック同期回路と論理的に等価となる図20のHDLによる記述を入力する(ステップS210)。図20に示す記述は、VHDL(VHSIC Hardware Description Language)による記述であり、図19のクロック同期回路の一部20と論理的に等価となる記述以外は省略している。尚、以下の説明においては説明を簡単にするため、図20において省略した記述については処理の対象にしないこととする。
【0100】
また入力装置11は、HDLによる記述中の「clk1」がクロック信号を表現する記述であることを入力する(ステップS220)。
【0101】
入力装置11が入力したデータは、CPU16によってメモリ14に転送される。そしてCPU16は、メモリ14に転送されたデータに基づき、HDLによる記述の中から「clk1」を入力として使用しているプロセス文あるいは同時処理文を検索して列挙する(ステップS230)。したがって、図20に示すHDLによる記述の中から、プロセス文A1および同時処理文B1が検索され列挙される。
【0102】
次にCPU16は、ステップS230において列挙されたプロセス文あるいは同時処理文の中で、信号のエッジを表現する記述「event」に「clk1」を入力しているもの以外のプロセス文あるいは同時処理文を抽出する(ステップS240)。したがって、同時処理文B1のみが抽出される。尚、同時処理文B1は「clk1」および「gate1」を入力してゲーティッドクロック信号となる「gclk1」を出力する記述である。
【0103】
そしてCPU16は、ステップS240において抽出されたプロセス文あるいは同時処理文の入力となる信号を出力するプロセス文あるいは同時処理文を抽出する(ステップS250)。したがって、同時処理文B1の入力信号である「gate1」を出力するプロセス文A1が抽出される。
【0104】
次にCPU16は、ステップS240において抽出されたプロセス文あるいは同期処理文の入力信号のエッジが「clk1」の立ち上がりエッジと同期するか否かを判定する(ステップS260)。ステップS240において抽出されたプロセス文の入力信号のエッジは、「event」記述部分が「clk1'event and clk1='1'」であれば立ち上がりエッジに同期、「clk1'event and clk1='0'」であれば立ち下がりエッジに同期していると判別できる。
【0105】
ステップS240において抽出されたプロセス文あるいは同期処理文の入力信号のエッジが「clk1」の立ち上がりエッジと同期していれば(ステップS260のYes)、CPU16は、ステップS250で抽出されたプロセス文あるいは同時処理文がフリップフロップのみを表現する記述であるかを判定する。フリップフロップ以外の回路を表現する記述が含まれている場合は、フリップフロップのみを表現する記述とフリップフロップ以外の回路を表現する記述とに分離する。
【0106】
そしてCPU16は、メモリ14が予め格納していたデータからフリップフロップを表現する記述を取り出し、ステップS250で抽出されたプロセス文あるいは同時処理文に表現されているフリップフロップと同じデータ入力を持つフリップフロップを表現する記述として新たにHDLによる記述に追加したのち(ステップS270)、ステップS290に移行する。
【0107】
一方、ステップS240において抽出されたプロセス文あるいは同期処理文の入力信号のエッジが「clk1」の立ち上がりエッジと同期しておらず「clk1」の立ち下がりエッジと同期していれば(ステップS260のNo)、CPU16は、ステップS250で抽出されたプロセス文あるいは同時処理文がフリップフロップのみを表現する記述であるかを判定する。フリップフロップ以外の回路を表現する記述が含まれている場合は、フリップフロップのみを表現する記述とフリップフロップ以外の回路を表現する記述とに分離する。
【0108】
そしてCPU16は、メモリ14が予め格納していたデータからフリップフロップを表現する記述を取り出し、ステップS250で抽出されたプロセス文あるいは同時処理文に表現されているフリップフロップの出力をデータ入力とするフリップフロップを表現する記述として新たにHDLによる記述に追加したのち(ステップS280)、ステップS290に移行する。
【0109】
尚、ステップS210で図20のHDLによる記述を入力しているので、ステップS240で抽出された同時処理文B1の入力信号のエッジはクロック信号の立ち上がりエッジと同期する。したがって、CPU16はステップS280の処理は行わずステップS270の処理を行う。具体的には、以下のような処理を行う。
【0110】
プロセス文A1の記述のうちフリップフロップ以外を表現する部分を分離して、図12のプロセス文A2として追加する。さらに、フリップフロップのデータ入力端子に入力されるデータ信号を示す新たな信号名「data_input_to_ff1」を新たに導入する。それに伴い、プロセス文A1を図12のプロセス文A3に変更する。つまり、プロセス文A1をプロセス文A2とプロセス文A3とに分離する。このような分離を行っても、論理的には分離前と等価である。
【0111】
そして、信号「data_input_to_ff1」をデータ入力端子に入力するフリップフロップを表現するプロセス文を新たにHDLによる記述に追加する。以上がステップ270における具体的な処理である。
【0112】
ステップS290では、CPU16は、メモリ14が予め格納していたデータからインバータを表現する記述を取り出し、クロック信号を入力するインバータを表現する記述としてHDLによる記述に追加する。すなわち、CPU16は新たな信号名「inv_clk1」を導入し、図12に示す同時処理文B2を新たにHDLによる記述に追加する。
【0113】
そしてCPU16は、その追加した記述に表現されているインバータの出力がステップS270またはステップS280において追加した記述に表現されているフリップフロップのクロック入力に接続されるようにHDLによる記述を書き換える(ステップS300)。すなわち、信号「inv_clk1」をステップS270またはステップS280で追加したプロセス文中の「event」に導入する。そうすると、図12に示すプロセス文A4となる。
【0114】
次にCPU16は、メモリ14が予め格納していたデータからANDゲートを表現する記述を取り出してHDLによる記述に追加する(ステップS310)。
【0115】
また、ステップS240で抽出したプロセス文あるいは同時処理文の出力と、ステップS270又はステップS280で追加した記述に表現されているフリップフロップの出力とを、その追加した記述に表現されているANDゲートの入力に接続するために、新たな信号名「gate1_tmp」を導入してHDLによる記述を書き換える(ステップS320)。そうすると、プロセス文B1は図12に示す同時処理文B3に変更される。
【0116】
そしてCPU16は、ステップS310で追加した記述に表現されているANDゲートの出力信号を、ステップS230で抽出したプロセス文あるいは同時処理文の出力信号と同一にするようにHDLによる記述を書き換え(ステップS330)、フローを終了する。そうすると、ステップS310で追加した記述は図12に示す同期処理文B4となる。
【0117】
さらにCPU16は、フロー処理を行って修正されたHDLによる記述を修正結果としてハードディスク13に格納する。図10の回路修正装置がこのような処理を行うことによって、図20に示すHDLによる記述が修正され、図12に示すHDLによる記述に変更される。図12に示すHDLによる記述は、図9のクロック同期回路を表現している。尚、図12に示すHDLによる記述は、図9のクロック同期回路の一部21と論理的に等価となる記述以外は省略している。
【0118】
この後、修正されたHDLによる記述を論理合成する際に、設計者が遅延時間に対する制約を適切に与えて論理合成すれば、追加された回路部分を含めたクロック同期回路全体が動作可能であるかを設計者が判断できる。また、クロック同期回路が動作可能で有る場合、遅延時間のみならず、ファンアウト数や信号遷移時間等のその他の制約も含めて調整できる。これにより、回路図情報やネットリストを用いた場合よりも意図通りに動作する可能性の高いクロック同期回路を論理合成することができ、設計したクロック同期回路の信頼性が高くなる。
【0119】
【発明の効果】
本発明によると、ゲーティッド生成回路は、継続して変化するクロック信号の立ち下がりエッジに反転タイミングが同期する第1のゲート信号と、前記第1のゲート信号に対して前記クロック信号の半周期分だけ位相がずれた第2のゲート信号と、に基づいて前記クロック信号の出力をON/OFF制御するので、配置配線で定まる遅延時間によって前記クロック信号の立ち下がりエッジに対して前記第1のゲート信号や前記第2のゲート信号の反転タイミングがずれた場合でも、グリッジが発生することがない。これにより、冗長な回路を挿入するなどして配置配線をやり直したり再設計をして遅延時間を調整する必要がなくなる。
【0120】
また、本発明によると、回路図情報又はネットリストの修正方法は、継続して変化するクロック信号の立ち上がりエッジにデータ信号の反転タイミングが同期するように前記クロック信号に応じて前記データ信号を遅延させることによって生成される第1のゲート信号に基づいて前記クロック信号の出力をON/OFF制御するゲーティッドクロック生成回路を備えたクロック同期回路の回路図情報又はネットリストに対して前記クロック信号を反転させるインバータを追加するステップと、前記第1のゲート信号を生成しているフリップフロップを前記回路図情報又はネットリストから検索するステップと、前記第1のゲート信号を生成しているフリップフロップのデータ入力とデータ入力を同一にし且つ前記インバータが出力する信号をクロック入力とするフリップフロップを前記回路図情報又はネットリストに追加するステップと、追加したフリップフロップが出力する信号と修正前のゲーティッドクロック生成回路が出力していた信号との論理積を出力するANDゲートを前記回路図情報又はネットリストに追加するステップと、追加したANDゲートが出力する信号を修正後のゲーティッドクロック生成回路の出力信号とするステップと、を有するので、前記第1のゲート信号に基づいてクロック信号の出力をON/OFF制御するゲーティッドクロック生成回路を備えたクロック同期回路の回路図情報又はネットリストを、前記第1のゲート信号及び前記第1のゲート信号に対して前記クロック信号の半周期分だけ位相が進んだ第2のゲート信号に基づいてクロック信号の出力をON/OFF制御するゲーティッドクロック生成回路を備えたクロック同期回路の回路図情報又はネットリストに修正することができる。これにより、設計者は従来と同様に前記第1のゲート信号に基づいてクロック信号の出力をON/OFF制御するゲーティッドクロック生成回路を備えたクロック同期回路を設計すればよく、クロック信号の種類を増やして設計を行う必要がなくなる。
【0121】
また、本発明によると、回路図情報又はネットリストの修正方法は、継続して変化するクロック信号の立ち下がりエッジにデータ信号の反転タイミングが同期するように前記クロック信号に応じて前記データ信号を遅延させることによって生成される第1のゲート信号に基づいて前記クロック信号の出力をON/OFF制御するゲーティッドクロック生成回路を備えたクロック同期回路の回路図情報又はネットリストから前記第1のゲート信号を生成しているフリップフロップを検索するステップと、前記第1のゲート信号を生成しているフリップフロップが出力する信号をデータ入力とし且つ前記クロック信号をクロック入力とするフリップフロップを前記回路図情報又はネットリストに追加するステップと、追加したフリップフロップの出力信号と修正前のゲーティッドクロック生成回路の出力信号との論理積を出力するANDゲートを前記回路図情報又はネットリストに追加するステップと、追加したANDゲートの出力信号を修正後のゲーティッドクロック生成回路の出力信号とするステップと、を有するので、前記第1のゲート信号に基づいてクロック信号の出力をON/OFF制御するゲーティッドクロック生成回路を備えたクロック同期回路の回路図情報又はネットリストを、前記第1のゲート信号及び前記第1のゲート信号に対して前記クロック信号の半周期分だけ位相が遅れた第2のゲート信号に基づいてクロック信号の出力をON/OFF制御するゲーティッドクロック生成回路を備えたクロック同期回路の回路図情報又はネットリストに修正することができる。これにより、設計者は従来と同様に前記第1のゲート信号に基づいてクロック信号の出力をON/OFF制御するゲーティッドクロック生成回路を備えたクロック同期回路を設計すればよく、クロック信号の種類を増やして設計を行う必要がなくなる。
【0122】
また、本発明によると、ハードウェア記述による記述の修正方法は、継続して変化するクロック信号の立ち上がりエッジにデータ信号の反転タイミングが同期するように前記クロック信号に応じて前記データ信号を遅延させることによって生成される第1のゲート信号に基づいて前記クロック信号の出力をON/OFF制御するゲーティッドクロック生成回路を備えたクロック同期回路を表現する論理合成前のHDLによる記述に対して前記クロック信号を反転させるインバータを表現するHDLによる記述を追加するステップと、前記第1のゲート信号を生成しているフリップフロップを表現する記述を前記クロック同期回路を表現する論理合成前のHDLによる記述から検索するステップと、前記第1のゲート信号を生成しているフリップフロップのデータ入力とデータ入力を同一にし且つ前記インバータが出力する信号をクロック入力とするフリップフロップを表現するHDLによる記述を前記クロック同期回路を表現する論理合成前のHDLによる記述に追加するステップと、追加したフリップフロップが出力する信号と修正前のゲーティッドクロック生成回路が出力していた信号との論理積を出力するANDゲートを表現するHDLによる記述を前記クロック同期回路を表現する論理合成前のHDLによる記述に追加するステップと、追加したANDゲートが出力する信号を修正後のゲーティッドクロック生成回路の出力信号とするように前記クロック同期回路を表現する論理合成前のHDLによる記述を書き換えるステップと、を有するので、前記第1のゲート信号に基づいてクロック信号の出力をON/OFF制御するゲーティッドクロック生成回路を備えたクロック同期回路を表現する論理合成前のHDLによる記述を、前記第1のゲート信号及び前記第1のゲート信号に対して前記クロック信号の半周期分だけ位相が進んだ第2のゲート信号に基づいてクロック信号の出力をON/OFF制御するゲーティッドクロック生成回路を備えたクロック同期回路を表現する論理合成前のHDLによる記述に修正することができる。これにより、設計者は従来と同様に前記第1のゲート信号に基づいてクロック信号の出力をON/OFF制御するゲーティッドクロック生成回路を備えたクロック同期回路を設計すればよく、クロック信号の種類を増やして設計を行う必要がなくなる。また、論理合成前のHDLによる記述を用いて修正を行っているので、論理合成の際に遅延時間に対する制約を満たすかどうかを判断することができ、正常に動作する回路であるかを確認することができる。また、論理合成時に遅延時間を含めた最適化を行うことも可能となる。これにより、クロック同期回路の信頼性が向上する。
【0123】
また、本発明によると、ハードウェア記述による記述の修正方法は、継続して変化するクロック信号の立ち下がりエッジにデータ信号の反転タイミングが同期するように前記クロック信号に応じて前記データ信号を遅延させることによって生成される第1のゲート信号に基づいて前記クロック信号の出力をON/OFF制御するゲーティッドクロック生成回路を備えたクロック同期回路を表現する論理合成前のHDLによる記述から前記第1のゲート信号を生成しているフリップフロップを表現する記述を検索するステップと、前記第1のゲート信号を生成しているフリップフロップが出力する信号をデータ入力とし且つ前記クロック信号をクロック入力とするフリップフロップを表現するHDLによる記述を前記クロック同期回路を表現する論理合成前のHDLによる記述に追加するステップと、追加したフリップフロップが出力する信号と修正前のゲーティッドクロック生成回路が出力していた信号との論理積を出力するANDゲートを表現するHDLによる記述を前記クロック同期回路を表現する論理合成前のHDLによる記述に追加するステップと、追加したANDゲートが出力する信号を修正後のゲーティッドクロック生成回路の出力信号とするように前記クロック同期回路を表現する論理合成前のHDLによる記述を書き換えるステップと、を有するので、前記第1のゲート信号に基づいてクロック信号の出力をON/OFF制御するゲーティッドクロック生成回路を備えたクロック同期回路を表現する論理合成前のHDLによる記述を、前記第1のゲート信号及び前記第1のゲート信号に対して前記クロック信号の半周期分だけ位相が遅れた第2のゲート信号に基づいてクロック信号の出力をON/OFF制御するゲーティッドクロック生成回路を備えたクロック同期回路を表現する論理合成前のHDLによる記述に修正することができる。これにより、設計者は従来と同様に前記第1のゲート信号に基づいてクロック信号の出力をON/OFF制御するゲーティッドクロック生成回路を備えたクロック同期回路を設計すればよく、クロック信号の種類を増やして設計を行う必要がなくなる。また、論理合成前のHDLによる記述を用いて修正を行っているので、論理合成の際に遅延時間に対する制約を満たすかどうかを判断することができ、正常に動作する回路であるかを確認することができる。また、論理合成時に遅延時間を含めた最適化を行うことも可能となる。これにより、クロック同期回路の信頼性が向上する。
【図面の簡単な説明】
【図1】 本発明に係る第一実施形態のゲーティッドクロック生成回路の構成を示す図である。
【図2】 本発明に係る第二実施形態のゲーティッドクロック生成回路の構成を示す図である。
【図3】 図1のゲーティッドクロック生成回路の動作を示すタイミングチャート図である。
【図4】 図3の期間T1〜T3での状態遷移を示す図である。
【図5】 図3の期間T4〜T6での状態遷移を示す図である。
【図6】 図2のゲーティッドクロック生成回路の動作を示すタイミングチャート図である。
【図7】 図6の期間T7〜T9での状態遷移を示す図である。
【図8】 図6の期間T10〜T12での状態遷移を示す図である。
【図9】 図1のゲーティッドクロック生成回路を備えるクロック同期回路の構成を示す図である。
【図10】 回路修正装置の構成を示す図である。
【図11】 ネットリストの修正処理を示すフローチャート図である。
【図12】 図9のクロック同期回路を表現するHDLによる記述を示す図である。
【図13】 HDLによる記述の修正処理を示すフローチャート図である。
【図14】 従来のゲーティッドクロック生成回路の構成を示す図である。
【図15】 図14のゲーティッドクロック生成回路の動作を示すタイミングチャート図である。
【図16】 従来のゲーティッドクロック生成回路の他の構成を示す図である。
【図17】 図16のゲーティッドクロック生成回路の動作を示すタイミングチャート図である。
【図18】 クロック同期回路の構成を示す図である。
【図19】 図14のゲーティッドクロック生成回路を備えるクロック同期回路の構成を示す図である。
【図20】 図19のクロック同期回路を表現するHDLによる記述を示す図である。
【符号の説明】
1、2、4、5 入力端子
3、6 出力端子
11 入力装置
12 出力装置
13 ハードディスク
14 メモリ
15 記録媒体
16 CPU
A1〜A4 プロセス文
B1〜B4 同時処理文
AN1〜AN4 ANDゲート
BUF1〜BUF5 バッファ・ゲート
FF1〜FF4 フリップフロップ
INV1〜INV3 インバータ

Claims (1)

  1. データ信号及び継続して変化するクロック信号を入力し、前記クロック信号の立ち下がりエッジに前記データ信号の反転タイミングが同期するように前記クロック信号に応じて前記データ信号を遅延させることによって第1のゲート信号を生成する手段と、
    前記クロック信号と前記第1のゲート信号とを入力し、前記クロック信号に応じて前記第1のゲート信号を遅延させることによって前記第1のゲート信号に対して前記クロック信号の半周期分だけ位相がずれた第2のゲート信号を生成する手段と、
    論理積ゲートからなり、前記第1のゲート信号及び前記第2のゲート信号に基づいて前記クロック信号の出力をON/OFF制御する手段と、
    を備えることを特徴とするゲーティッドクロック生成回路。
JP2001176723A 2001-06-12 2001-06-12 ゲーティッドクロック生成回路及び回路修正方法 Expired - Fee Related JP3698657B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2001176723A JP3698657B2 (ja) 2001-06-12 2001-06-12 ゲーティッドクロック生成回路及び回路修正方法
CNB021243077A CN1308792C (zh) 2001-06-12 2002-06-12 选通时钟产生电路
US10/166,627 US7082579B2 (en) 2001-06-12 2002-06-12 Gated clock generating circuit and method of modifying the circuit
DE60232481T DE60232481D1 (de) 2001-06-12 2002-06-12 Schaltung zur Generierung eines Taktsignals und Anpassungsverfahren für die Schaltung
EP02254086A EP1267249B1 (en) 2001-06-12 2002-06-12 Gated clock generating circuit and method of modifying the circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001176723A JP3698657B2 (ja) 2001-06-12 2001-06-12 ゲーティッドクロック生成回路及び回路修正方法

Publications (2)

Publication Number Publication Date
JP2002366254A JP2002366254A (ja) 2002-12-20
JP3698657B2 true JP3698657B2 (ja) 2005-09-21

Family

ID=19017671

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001176723A Expired - Fee Related JP3698657B2 (ja) 2001-06-12 2001-06-12 ゲーティッドクロック生成回路及び回路修正方法

Country Status (5)

Country Link
US (1) US7082579B2 (ja)
EP (1) EP1267249B1 (ja)
JP (1) JP3698657B2 (ja)
CN (1) CN1308792C (ja)
DE (1) DE60232481D1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3920830B2 (ja) * 2003-09-19 2007-05-30 三洋電機株式会社 インターフェース回路、データ処理回路、データ処理システム、集積回路
JP4351941B2 (ja) * 2004-03-26 2009-10-28 株式会社アドバンテスト 試験装置及び試験方法
DE102004031669B3 (de) * 2004-06-30 2006-02-09 Infineon Technologies Ag Taktsteuerzelle
JP4738216B2 (ja) * 2006-03-13 2011-08-03 株式会社東芝 半導体集積回路装置、及びその回路挿入手法
KR100885916B1 (ko) 2007-02-28 2009-02-26 삼성전자주식회사 클럭 게이티드 회로
US7917882B2 (en) * 2007-10-26 2011-03-29 Mips Technologies, Inc. Automated digital circuit design tool that reduces or eliminates adverse timing constraints due to an inherent clock signal skew, and applications thereof
JP5460251B2 (ja) * 2009-11-13 2014-04-02 株式会社日立製作所 情報処理装置
US8984467B2 (en) * 2011-08-17 2015-03-17 Synopsys, Inc. Method and apparatus for automatic relative placement generation for clock trees
US10298235B2 (en) * 2017-04-02 2019-05-21 Samsung Electronics Co., Ltd. Low power integrated clock gating cell using controlled inverted clock

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1563848A (en) * 1977-02-09 1980-04-02 Hewlett Packard Ltd Cmi-encoder
US4368514A (en) * 1980-04-25 1983-01-11 Timeplex, Inc. Multi-processor system
JPS6216615A (ja) * 1985-07-15 1987-01-24 Ricoh Co Ltd ノイズ除去回路
EP0309849A1 (de) * 1987-09-28 1989-04-05 Siemens Aktiengesellschaft Anordnung zur Entzerrung der Impulsbreiten eines Digitalsignals
JPH02290322A (ja) 1989-01-04 1990-11-30 Nec Corp クロック信号切替回路
JPH0474206A (ja) 1990-07-16 1992-03-09 Nec Gumma Ltd クロック切換回路
US5315181A (en) * 1993-07-07 1994-05-24 Maxtor Corporation Circuit for synchronous, glitch-free clock switching
TW379293B (en) * 1994-04-01 2000-01-11 Ibm Apparatus and method for generating a clock in a microprocessor
JPH08330915A (ja) 1995-05-29 1996-12-13 Oki Electric Ind Co Ltd クロック信号切替回路
US5537062A (en) * 1995-06-07 1996-07-16 Ast Research, Inc. Glitch-free clock enable circuit
US5980092A (en) * 1996-11-19 1999-11-09 Unisys Corporation Method and apparatus for optimizing a gated clock structure using a standard optimization tool
US5808486A (en) * 1997-04-28 1998-09-15 Ag Communication Systems Corporation Glitch free clock enable circuit

Also Published As

Publication number Publication date
CN1391152A (zh) 2003-01-15
DE60232481D1 (de) 2009-07-16
EP1267249B1 (en) 2009-06-03
US7082579B2 (en) 2006-07-25
EP1267249A3 (en) 2005-07-13
JP2002366254A (ja) 2002-12-20
CN1308792C (zh) 2007-04-04
US20020188911A1 (en) 2002-12-12
EP1267249A2 (en) 2002-12-18

Similar Documents

Publication Publication Date Title
US9069920B2 (en) Automated circuit design
JP4130006B2 (ja) 半導体装置
JP2677256B2 (ja) 遅延最適化方法
JP2005513626A (ja) 混在する領域クロック用のクロックツリーシンセシス
JPH10283381A (ja) ゲーテッドクロック設計支援方法、ゲーテッドクロック設計支援装置及びゲーテッドクロック設計支援プログラムを格納したコンピュータ読み取り可能な記録媒体
US6898771B2 (en) Method of designing semiconductor integrated circuit device
JP4097033B2 (ja) リセット及びクロックを再生成する装置とその方法、及び高速デジタルシステム
JP3698657B2 (ja) ゲーティッドクロック生成回路及び回路修正方法
JP5120785B2 (ja) 非同期式論理回路の論理回路設計装置、論理回路設計方法および論理回路設計プログラム
JP4437741B2 (ja) 半導体集積回路の設計装置、半導体集積回路および半導体集積回路の設計プログラム
JP2919378B2 (ja) Pll回路
JP2002083000A (ja) 論理回路設計方法及び論理回路
JP2009080634A (ja) リセットクロック制御回路
JP2008065457A (ja) 半導体集積回路の設計方法及び設計システム
JPH11145786A (ja) フリップフロップのリセット回路
JP4121454B2 (ja) クロック回路のための方法及び装置
JP2006011704A (ja) クロック切り替え回路
US6412099B1 (en) Apparatus and method for converting logical connection information of circuit
JP3651659B2 (ja) イネーブル付きラッチ回路
JP2002073712A (ja) 回路生成装置、回路生成方法及びcad設計装置
JP2004127012A (ja) 同期式回路およびその設計方法
JP2011134072A (ja) 半導体集積回路の設計方法及びプログラム
JP2011035826A (ja) 半導体装置およびデータ転送方法
JPH0721227A (ja) 非同期論理回路の論理合成方法
JP2000305965A (ja) クロックツリーシンセシス方法及び装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041020

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050118

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050315

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050426

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050608

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: 20050705

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050705

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080715

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090715

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100715

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110715

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110715

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120715

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120715

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130715

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees