JP2004056238A - 論理回路の遅延最適化システムおよびその最適化方法ならびに制御プログラム - Google Patents

論理回路の遅延最適化システムおよびその最適化方法ならびに制御プログラム Download PDF

Info

Publication number
JP2004056238A
JP2004056238A JP2002207658A JP2002207658A JP2004056238A JP 2004056238 A JP2004056238 A JP 2004056238A JP 2002207658 A JP2002207658 A JP 2002207658A JP 2002207658 A JP2002207658 A JP 2002207658A JP 2004056238 A JP2004056238 A JP 2004056238A
Authority
JP
Japan
Prior art keywords
latch
flip
flop
delay
logic 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.)
Granted
Application number
JP2002207658A
Other languages
English (en)
Other versions
JP3695428B2 (ja
Inventor
Shigesuke Kanamaru
金丸 恵祐
Hiroshi Yoshikawa
吉川 浩
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2002207658A priority Critical patent/JP3695428B2/ja
Priority to US10/618,704 priority patent/US7028273B2/en
Publication of JP2004056238A publication Critical patent/JP2004056238A/ja
Application granted granted Critical
Publication of JP3695428B2 publication Critical patent/JP3695428B2/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
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

【課題】フリップフロップの出力遅延、セットアップ時間およびクロックスキューの低減。
【解決手段】回路入力部22および遅延解析部23を介して入力論理回路31内を検索し、ラッチ化FF選定部24にてラッチ化しないフリップフロップを選択し、ラッチ化しないフリップフロップ以外のフリップフロップをラッチ変換部25にてをラッチに置き換えて、クロックスキューの遅延時間をキャンセルし、かつ入力側の遅延に関する余裕を出力側に貸し出す事で、最悪遅延の向上を達成する。
【選択図】   図1

Description

【0001】
【発明の属する技術分野】
本発明は、論理回路の遅延最適化システムおよびその最適化方法ならびに制御プログラムに関し、特に順序回路の遅延最適化システムおよびその最適化方法ならびに制御プログラムに関する。
【0002】
【従来の技術】
論理回路の遅延最適化においては、フリップフロップやラッチに関する最適化を行う順序回路の遅延最適化手法と、フリップフロップやラッチの間に存在する組み合わせ回路部分の遅延最適化手法という2つの手法が存在する。本発明は順序回路の遅延最適化の方法に関する。
【0003】
順序回路の遅延最適化としては、その一例が、特開平6−290232号公報( 以下、文献1という) に記載されているリタイミングという方法が存在する。
【0004】
リタイミングに関しては、フリップフロップの位置を変更する事により、最悪遅延を改善しようとするものである。
【0005】
【発明が解決しようとする課題】
しかし、この文献1記載の技術には、次のような欠点があった。第1の問題点は、文献1記載の技術ではフリップフロップの位置を変更してしまうので、当初の論理回路と最適化後の論理回路では、論理解析の中心となるフリップフロップの動作が変更されてしまう。したがって、当初の論理回路を設計した人が論理解析を行おうとした場合、対応が取り難いという欠点があった。
【0006】
第2の問題点は、文献1記載の技術では、フリップフロップの位置を変更するだけで、遅延計算上は特に過不足が発生しないということである。
【0007】
また、本発明と同様な方式として、特開2000−305962号公報( 以下、文献2という) 記載の技術が挙げられる。本発明と文献2記載の技術の違いは、文献2記載の技術では、入力側に遅延余裕のあるフリップフロップしかラッチ変換の対象にしないということである。
【0008】
そこで、本発明の目的は上記の問題点を解消し、フリップフロップの出力遅延、セットアップ時間およびクロックスキューの低減が可能で、しかも利用者から指定されなかった全フリップフロップ( 入力に遅延余裕のないフリップフロップを含む) をラッチに変換することが可能な論理回路の遅延最適化システムおよびその最適化方法ならびに制御プログラムを提供することにある。
【0009】
【課題を解決するための手段】
本発明による論理回路の遅延最適化システムは、フリップフロップと、組み合わせ回路とを含む論理回路の遅延最適化システムであって、そのシステムはラッチに変換しない前記フリップフロップを選定するラッチ化フリップフロップ選定手段と、前記ラッチ化フリップフロップ選定手段にて選定されなかった前記フリップフロップを、入力側の遅延余裕を出力側に貸し出すことが可能なスルー状態を有するラッチに変換するラッチ変換手段とを含むことを特徴とする。
【0010】
また本発明による論理回路の遅延最適化方法は、フリップフロップと、組み合わせ回路とを含む論理回路の遅延最適化方法であって、その方法はラッチに変換しない前記フリップフロップを選定するラッチ化フリップフロップ選定ステップと、前記ラッチ化フリップフロップ選定ステップにて選定されなかった前記フリップフロップを、入力側の遅延余裕を出力側に貸し出すことが可能なスルー状態を有するラッチに変換するラッチ変換ステップとを含むことを特徴とする。
【0011】
また本発明によるプログラムは、フリップフロップと、組み合わせ回路とを含む論理回路の遅延最適化方法をコンピュータに実行させるためのプログラムであって、そのプログラムはラッチに変換しない前記フリップフロップを選定するラッチ化フリップフロップ選定ステップと、前記ラッチ化フリップフロップ選定ステップにて選定されなかった前記フリップフロップを、入力側の遅延余裕を出力側に貸し出すことが可能なスルー状態を有するラッチに変換するラッチ変換ステップとを含むことを特徴とする。
【0012】
すなわち、本発明によれば、フリップフロップの出力遅延、セットアップ時間およびクロックスキューの低減が可能で、しかも利用者から指定されなかった全フリップフロップ( 入力に遅延余裕のないフリップフロップを含む) をラッチに変換することが可能となる。
【0013】
本発明は、論理回路内を検索し、フリップフロップを選択し、それをラッチに置き換えて、クロックスキューの遅延時間をキャンセルし、かつ入力側の遅延に関する余裕を出力側に貸し出す事で、最悪遅延の向上を達成する方法を提供するものである。
【0014】
図1において、入力論理回路31には、本発明で遅延時間を最適化しようとする論理回路が記憶されている。回路入力部22は、入力論理回路31を読み込み、内部DB32に設定する。遅延解析部23は、内部DB32中の各回路素子に関する遅延計算を行う。ラッチ化FF選定部24は、内部DB32中のフリップフロップにおいて、入力装置1でラッチ変換をしないように非ラッチ化指定されているものを探す。ラッチ変換部25は、非ラッチ化指定以外のフリップフロップをスルー状態を持つラッチに変換する。
【0015】
ラッチはスルー状態を持つため、フリップフロップをラッチに変換すると最悪遅延は向上するものの、MIN遅延補償(最小遅延補償)を満足出来なくなる。
【0016】
これを満足するために、ラッチ挿入部26は、先にラッチ変換部で使用したラッチとは反対の時間でスルーを行うラッチを、回路中の適当な部分に挿入する。回路出力部27は遅延最適化後の論理回路を出力論理回路33として出力する。記録媒体28には論理回路の遅延最適化方法をコンピュータに実行させるためのプログラムが格納されている。
【0017】
このようにラッチに変換した事により、クロックスキューのキャンセルと、元のフリップフロップの入力側にあった遅延の余裕分を後段に貸し出して最悪遅延の向上を行い、また反対の時間でスルーを行うラッチを必要な部分に挿入する事でMIN遅延も満足した回路に自動変換することが出来る。
【0018】
【発明の実施の形態】
以下、本発明の実施の形態について添付図面を参照しながら説明する。図1は本発明に係る論理回路の遅延最適化システムの一実施例の構成図、図2は最適化対象の論理回路の一例の構成図、図3は、図4はラッチ変換後の論理回路の一例の構成図、図5はハイアクティブ・ ラッチ(HL)挿入後の論理回路の一例の構成図である。
【0019】
まず、図2から図5について簡単に説明しておく。図2は最適化対象の論理回路の一例を示しており、フリップフロップ(FF)5a〜5fと、組み合わせ回路6a,6bとを含む順序回路で構成されている。図3はこの回路に対し非ラッチ化指定を行った後の回路の状態を示しており、一例としてフリップフロップ(FF)5gが非ラッチ化指定されたことを示している。図4はラッチ変換後の回路の状態を示しており、一例としてフリップフロップ(FF)5b〜5fがラッチ(LL)7a〜7eにそれぞれ変換されたことを示している。図5はさらに一例としてハイアクティブ・ラッチ(HL)が挿入されたことを示している。
【0020】
図1を参照すると、論理回路の遅延最適化システムはキーボード等の入力装置1と、プログラム制御により動作するデータ処理装置2と、情報を記憶する記憶装置3と、ディスプレイ装置等の出力装置4とを含んで構成されている。
【0021】
記憶装置3は、入力論理回路31と、内部DB( データベース) 32と、出力論理回路33と、ライブラリ34と、遅延制約35とを含んでいる。
【0022】
入力論理回路31は、図2に示すように、フリップフロップ(FF)5と組み合わせ回路6とから構成されているが、その他に論理回路の外部とのインターフェイスも存在する。しかし、本実施例ではそのインターフェイスは参照されないので、記述を省略する。なお、組み合わせ回路6a,6bは、AND,OR,インバータ、バッファと、それらを複合した論理回路素子との集合として構成されている。
【0023】
内部DB32は、論理回路の情報を、データ処理装置が扱いやすいように加工したものであり、論理回路中の各論理回路素子情報とそれらの接続情報、そして後述する遅延計算値を格納出来るようになっている。
【0024】
出力論理回路33は、最終的に変換された論理回路を保存したものである。ライブラリ34は、後述する図7以降で表記している各論理回路素子9、フリップフロップ(FF)5、ラッチ(LL,HL)7,8に関する遅延情報を格納している。
【0025】
遅延制約35には、設計用の遅延制約が格納されている。具体的には、設計対象のクロックの情報(図8)と、論理回路の外部との入力インターフェイスにあたる部分の遅延値を到着時間として表示したものである。
【0026】
データ処理装置2は、制御部21と、回路入力部22と、遅延解析部23と、ラッチ化FF選定部24と、ラッチ変換部25と、ラッチ挿入部26と、回路出力部27と、記録媒体28とを含んでいる。
【0027】
制御部21は、記録媒体28に格納された遅延最適化処理のプログラムにしたがって回路入力部22と、遅延解析部23と、ラッチ化FF選定部24と、ラッチ変換部25と、ラッチ挿入部26と、回路出力部27とを呼び出す順番の制御を行う。
【0028】
回路入力部22は、入力論理回路31を読み、内部DB32に設定する。遅延解析部23は、内部DB32内の各論理回路素子についての遅延計算を行う。ラッチ化FF選定部24は、論理回路中の全てのフリップフロップ(FF)5に対して、入力装置1から指定されたラッチ化しないフリップフロップ(FF)を探索し、その情報を非ラッチ化指定として内部DB32に設定する。ここで、図3のフリップフロップ(FF)5gが非ラッチ化指定されたとする。
【0029】
ラッチ変換部25は、ラッチ化FF選定部24で非ラッチ化指定されなかったフリップフロップ(FF)5b〜5fを、入力側の遅延余裕を出力側に貸し出す事が出来るようなスルー状態を持つラッチ7に変換する。図4のローアクティブ・ ラッチ(LL)7a〜7eがこれに当たる。
【0030】
ラッチ挿入部26は、ラッチ変換部25で変換されたラッチ(LL)7の出力側の適当な位置に、先にラッチ変換部25で使用したラッチ(LL)7とは反対の時間でスルーを行うラッチ( ハイアクティブ・ ラッチ:HL) 8を、図5のように
挿入する。
【0031】
回路出力部27は、最終的に変換された内部DB32を、出力論理回路33として記憶装置中に出力する。
【0032】
ここで、フリップフロップ(FF)およびラッチ(LL,HL)について簡単に説明しておく。フリップフロップ(FF)は、クロックがローレベルからハイレベルへの変化時のエッジに応じて入力されるデータを保持するもの、あるいはハイレベルからローレベルへの変化時のエッジに応じて入力されるデータを保持するものである。
【0033】
一方、ラッチにはローアクティブ・ラッチ(LL)とハイアクティブ・ ラッチ(HL)とがある。ローアクティブ・ラッチ(LL)は、クロックがローレベルを示すときに入力されるデータを出力側にスルーする。そして、クロックがハイレベルに変化した際にはデータをロックし、その後ハイレベル中に入力データの変動があっても出力データは変動しない。ハイアクティブ・ラッチ(HL)は、クロックがハイレベルを示すときに入力されるデータを出力側にスルーする。そして、クロックがローレベルに変化した際にはデータをロックし、その後ローレベル中に入力データの変動があっても出力データは変動しない。
【0034】
図6は論理回路の遅延最適化処理の一例を示すフローチャート、図7は論理回路の具体例の一例を示す回路図、図8はクロックサイクルと各時刻との対応を示す説明図、図9は到着時間の計算例を示す図、図10はラッチ変換後の論理回路の具体例の一例を示す回路図、図11はハイアクティブ・ラッチ(HL)挿入後の論理回路の具体例の一例を示す回路図である。
【0035】
図7を参照すると、論理回路はフリップフロップ(FF)5m〜5w,5yと、ANDゲート9a,9c,9e,9h,9j,9m,9nと、ORゲート9b,9d,9f,9g,9i,9kとを含んでいる。
【0036】
図9を参照すると、図7の各構成部分に各々の到着時間が表示されている。図10を参照すると、図7のフリップフロップ(FF)5o〜5qおよびフリップフロップ(FF)7kがローアクティブ・ラッチ(LL)7f〜7iおよびローアクティブ・ラッチ(LL)7kに変換されている。図11を参照すると、図10の論理回路にハイアクティブ・ラッチ(HL)8e〜8iが挿入されている。
【0037】
次に、図1及び図6を参照して本実施例の動作について詳細に説明する。入力装置1により指定された入力論理回路31は、回路入力部22により、内部DB32に変換される(図6のステップA1)。入力論理回路31として、図7の論理回路を例に取り、以下の説明を行う。また、遅延制約35には、設計用の遅延制約が格納されている。 具体的には、設計対象のクロックの情報(図8)と、論理回路の入力部に対し、外部のフリップフロップからその部分までに要する遅延値を到着時間として記述している。
【0038】
遅延解析部23は、内部DB32に対して遅延計算用の遅延制約の設定を行う(ステップA2)。具体的には、遅延制約は、到着時間と呼ばれ、論理回路の外部とのインターフェイスにあたる入力には遅延制約35より対応する値を探し設定し、フリップフロップ(FF)5の出力には、フリップフロップの出力遅延値をライブラリ34から検索し設定する。また、クロックの目標周期をTnsとして記憶する。
【0039】
本実施例では一例として、フリップフロップ(FF)の出力遅延値は1ns、セットアップ時間も1ns、クロックサイクルは8ns、クロックスキューは1ns、ラッチのスルー遅延は1nsとして説明を行う。従って、フリップフロップ(FF)の出力には到着時間として1nsが設定される。
【0040】
次に遅延解析部23は、全ての論理回路素子9の到着時間の計算を行う(ステップA3)。到着時間に関しては、論理回路の外部入力とフリップフロップ(FF)5の出力から、出力方向に向かって、各論理回路素子9に対して、式1を用いて計算される。
【0041】
Figure 2004056238
ここで、組み合わせ回路素子の入力PINから出力PINの遅延時間は、ライブラリ34を用いて、各論理回路素子毎に計算されるが、本実施例の説明では、一律2nsとする。
【0042】
図9に、この計算の結果を示す。各論理回路素子9内に記入されている数値は、到着時間を示している。フリップフロップ(FF)5に関しては、上側にフリップフロップ(FF)5の出力ピンの到着時間を、下側に入力からの到着時間を示す。例えば、フリップフロップ(FF)5oに関しては、出力側の到着時間は、前記ライブラリに格納された値1nsが設定されている。
【0043】
論理回路素子9fの到着時間は、9fの遅延時間が2nsなので、式(1)より、
到着時間=max( 1+ 2, 1+ 2) = 3ns  (2)
と計算される。 このような処理を出力に向かって計算する事で全ての論理回路素子9とフリップフロップ(FF)5の到着時間が求められる。
【0044】
ラッチ化FF選定部24は、入力装置から設定される非ラッチ化の指定を設定する。このフリップフロップ(FF)はラッチ化しない(ステップA4)。ここで、フリップフロップ(FF)5m,5n,5s,5v、5w,5yが非ラッチ化指定されたと仮定する。
【0045】
ラッチ変換部25は、非ラッチ化指定されていないフリップフロップ(5o,5p,5q,5r,5t,5u)を、入力側の遅延余裕を出力側に貸し出す事が出来るようなスルー状態を持つラッチ(図10のフリップフロップ7f,7g,7h,7i,7j,7k)に変換する(ステップA5)。
【0046】
ここで、 入力側の遅延余裕を、出力側に貸し出す事とは、具体的には次のようなことを表す。フリップフロップ(FF)5m、5nから出る信号が、時刻A(図8)にフリップフロップ(FF)5m、5nを出発するとする。論理回路素子9aの到着時間が3nsなので、フリップフロップ(FF)5oには、時刻Bより先に到着している事になる。 しかし、フリップフロップ(FF)5oは、次のクロックの立ち上がりである時刻Cから、入力側の信号の変化を出力側へ伝播させる。
【0047】
ここで、フリップフロップ(FF)5oを、クロックがローレベルの時にスルーし、クロックの立ち上がりでホールドするようなローアクティブ・ラッチ(LL)7fに変換すると、時刻Aでフリップフロップ(FF)5m、5nを出発した信号は、時刻Bになるとラッチ(LL)7f の出力側に信号伝播を開始する。
【0048】
つまり、時刻BとCの時間差だけ早く伝播する事が可能となる。
【0049】
ラッチ挿入部26は、先にラッチ変換部25で使用したラッチ(LL)7とは反対の時間でスルーを行うラッチ(HL)8を、回路中のクロックの目標周期T近くの個所に挿入する(ステップA6)(図11参照)。
【0050】
図11を参照すると、ANDゲート9eとフリップフロップ(FF)5sとの間にハイアクティブ・ ラッチ8eが、ANDゲート9hとローアクティブ・ ラッチ(LL)7jとの間にハイアクティブ・ ラッチ8gが、ORゲート9iとANDゲート9jとの間にハイアクティブ・ ラッチ8fが、ORゲート9iとANDゲート9jとの間にハイアクティブ・ ラッチ8fが、ローアクティブ・ ラッチ(LL)7jとANDゲート9jとの間にハイアクティブ・ ラッチ8hが、インバータ9lとANDゲート9mとの間にハイアクティブ・ ラッチ8iがそれぞれ挿入されている。
【0051】
このハイアクティブ・ ラッチ(HL)8を挿入する理由は次の通りである。図10を参照すると、ローアクティブ・ ラッチ(LL)7f をスルーした信号は、ANDゲート9eを経由し、フリップフロップ(FF)5sに到着する。ここで、本来、図8の時刻Cでフリップフロップ(FF)5oを出る信号を、時刻Eでフリップフロップ(FF)5sは受け取るはずであったが、ローアクティブ・ ラッチ(LL)7fがスルーしているため、時刻Cで受け取ってしまう事がある。
【0052】
これを防ぐために、反対の時間でスルーを行うハイアクティブ・ ラッチ(HL)8を適当な位置に挿入する必要がある(MIN遅延補償)。そこで、ハイアクティブ・ ラッチ(HL)8eをANDゲート9eとフリップフロップ(FF)5sとの間に挿入することにより、その信号は時刻Cから時刻Dまではハイアクティブ・ ラッチ(HL)8eをスルーすることになるため、フリップフロップ(FF)5sはその信号を時刻Eに受け取ることが可能となる。
【0053】
そして、回路出力部27が、出力論理回路33として出力する(ステップA7)。
【0054】
例えば、図9( 従来の論理回路) の場合のフリップフロップの利用時は、
クロック周期=フリップフロップ(FF)への到着時間の最大値+フリップフロップ (FF)のセットアップ時間+クロックスキュー= 9+1+1 = 11ns
となる。なお、フリップフロップ(FF)への到着時間の最大値は、図9を参照するとフリップフロップ(FF)5uの9nsであることが分かる。
【0055】
それに比べて、図11の本発明の論理回路では、図12のようにクロック周期が8nsで動作する。図12は本発明の信号伝送のタイミングチャートである。
【0056】
すなわち、図11および図12を参照すると、クロックの立ち上がり時刻Aに本論理回路に入力された信号はフリップフロップ(FF)5m(遅延値1ns)、ANDゲート9a(遅延値2ns)を通過し、クロックの立ち下がり時刻Bにローアクティブ・ ラッチ(LL)7f(遅延値1ns)、ORゲート9f(遅延値2ns)、ORゲート9i(遅延値2ns)、ハイアクティブ・ ラッチ(HL)8f(遅延値1ns)、ANDゲート9j(遅延値2ns)を通過し、クロックの立ち下がり時刻DにORゲート9k(遅延値2ns)、ローアクティブ・ ラッチ(LL)7k(遅延値1ns)、インバータ9l(遅延値2ns)、ハイアクティブ・ ラッチ(HL)8i(遅延値1ns)、ANDゲート9m(遅延値2ns)を通過し、クロックの立ち下がり時刻FにANDゲート9n(遅延値2ns)を通過する。そして、セットアップ時間(1ns)とクロックスキュー(1ns)の時間を加算すると正確にクロックの立ち上がり時刻Gとなる。
【0057】
また、本発明と同様な方式として、前述の文献2記載の技術があるが、これは入力に余裕のあるフリップフロップしかラッチに変換しないので、図7の回路は図13のようになる。図13は従来のラッチ変換を採用した論理回路の一例の回路図である。
【0058】
図13を参照すると、入力側に遅延余裕のないフリップフロップ(FF)5uはラッチ変換されず、その結果フリップフロップ(FF)5uの出力側のパスがクリティカルパスになってしまう。その時のクロック周期は、
クロック周期=フリップフロップ(FF)の遅延+組み合わせ回路の遅延+フリップフロップのセットアップ時間+クロックスキュー = 1 + 6 + 1 + 1 =9ns
となり、本方式の8nsより大きい値になってしまう。
【0059】
次に、本発明に係る論理回路の遅延最適化方法をコンピュータに実行させるためのプログラムについて説明する。図1を参照すると、データ処理装置2は記録媒体28を含んでいる。この記録媒体28には図6にフローチャートで示す論理回路の遅延最適化処理のプログラムが格納されている。制御部21は記録媒体28からこのプログラムを読み出し、そのプログラムにしたがって回路入力部22から回路出力部27までを制御する。その制御の内容については既に述べたので説明を省略する。
【0060】
【発明の効果】
以上説明したように本発明による論理回路の遅延最適化システムによれば、ラッチに変換しない前記フリップフロップを選定するラッチ化フリップフロップ選定手段と、前記ラッチ化フリップフロップ選定手段にて選定されなかった前記フリップフロップを、入力側の遅延余裕を出力側に貸し出すことが可能なスルー状態を有するラッチに変換するラッチ変換手段とを含むため、フリップフロップの出力遅延、セットアップ時間およびクロックスキューの低減が可能で、しかも利用者から指定されなかった全フリップフロップ( 入力に遅延余裕のないフリップフロップを含む) をラッチに変換することが可能となる。
【0061】
また本発明による論理回路の遅延最適化方法およびプログラムも上記論理回路の遅延最適化システムと同様の効果を奏する。
【0062】
すなわち、本発明によれば一部のフリップフロップをラッチに変更することにより、最悪遅延を改善する事が出来る。その理由は、フリップフロップをラッチに変更する事で、ラッチのスルーを利用し、クロックスキューのキャンセルと、フリップフロップの入力側にあった遅延の余裕を、フリップフロップの出力側に貸し出す事が出来るためである。
【図面の簡単な説明】
【図1】本発明に係る論理回路の遅延最適化システムの一実施例の構成図である。
【図2】最適化対象の論理回路の一例の構成図である。
【図3】非ラッチ化指定後の論理回路の一例の構成図である。
【図4】ラッチ変換後の論理回路の一例の構成図である。
【図5】ハイアクティブ・ ラッチ(HL)挿入後の論理回路の一例の構成図である。
【図6】論理回路の遅延最適化処理の一例を示すフローチャートである。
【図7】論理回路の具体例の一例を示す回路図である。
【図8】クロックサイクルと各時刻との対応を示す説明図である。
【図9】到着時間の計算例を示す図である。
【図10】ラッチ変換後の論理回路の具体例の一例を示す回路図である。
【図11】ハイアクティブ・ラッチ(HL)挿入後の論理回路の具体例の一例を示す回路図である。
【図12】本発明の信号伝送のタイミングチャートである。
【図13】従来のラッチ変換を採用した論理回路の一例の回路図である。
【符号の説明】
1 入力装置
2 データ処理装置
3 記憶装置
4 出力装置
21 遅延制約
22 回路入力部
23 遅延解析部
24 ラッチ化FF選定部
25 ラッチ変換部
26 ラッチ挿入部
27 回路出力部
28 記録媒体
31 入力論理回路
32 入力論理回路
33 出力論理回路
34 ライブラリ
35 遅延制約

Claims (15)

  1. フリップフロップと、組み合わせ回路とを含む論理回路の遅延最適化システムであって、
    ラッチに変換しない前記フリップフロップを選定するラッチ化フリップフロップ選定手段と、
    前記ラッチ化フリップフロップ選定手段にて選定されなかった前記フリップフロップを、入力側の遅延余裕を出力側に貸し出すことが可能なスルー状態を有するラッチに変換するラッチ変換手段とを含むことを特徴とする論理回路の遅延最適化システム。
  2. 前記フリップフロップはクロックにおける第1レベルから第2レベルへの変化時のエッジに応じて入力されるデータを保持するものであり、前記ラッチ変換手段におけるラッチは前記クロックが前記第1のレベルを示している際の入力データを出力側にスルーするものであることを特徴とする請求項1記載の論理回路の遅延最適化システム。
  3. 前記ラッチ変換手段におけるラッチとは異なる時間にスルー状態となる第2のラッチを論理回路の所定部分に挿入するラッチ挿入手段を含むことを特徴とする請求項1または2記載の論理回路の遅延最適化システム。
  4. 前記ラッチ挿入手段における第2のラッチは前記クロックが前記第2のレベルを示している際の入力データを出力側にスルーするものであることを特徴とする請求項3記載の論理回路の遅延最適化システム。
  5. 前記ラッチ挿入手段における第2のラッチは、前記ラッチ変換手段におけるラッチの出力側に設けられることを特徴とする請求項3または4記載の論理回路の遅延最適化システム。
  6. フリップフロップと、組み合わせ回路とを含む論理回路の遅延最適化方法であって、
    ラッチに変換しない前記フリップフロップを選定するラッチ化フリップフロップ選定ステップと、
    前記ラッチ化フリップフロップ選定ステップにて選定されなかった前記フリップフロップを、入力側の遅延余裕を出力側に貸し出すことが可能なスルー状態を有するラッチに変換するラッチ変換ステップとを含むことを特徴とする論理回路の遅延最適化方法。
  7. 前記フリップフロップはクロックにおける第1レベルから第2レベルへの変化時のエッジに応じて入力されるデータを保持するものであり、前記ラッチ変換ステップにおけるラッチは前記クロックが前記第1のレベルを示している際の入力データを出力側にスルーするものであることを特徴とする請求項6記載の論理回路の遅延最適化方法。
  8. 前記ラッチ変換ステップにおけるラッチとは異なる時間にスルー状態となる第2のラッチを論理回路の所定部分に挿入するラッチ挿入ステップを含むことを特徴とする請求項6または7記載の論理回路の遅延最適化方法。
  9. 前記ラッチ挿入ステップにおける第2のラッチは前記クロックが前記第2のレベルを示している際の入力データを出力側にスルーするものであることを特徴とする請求項8記載の論理回路の遅延最適化方法。
  10. 前記ラッチ挿入ステップにおける第2のラッチは、前記ラッチ変換ステップにおけるラッチの出力側に設けられることを特徴とする請求項8または9記載の論理回路の遅延最適化方法。
  11. フリップフロップと、組み合わせ回路とを含む論理回路の遅延最適化方法をコンピュータに実行させるためのプログラムであって、
    ラッチに変換しない前記フリップフロップを選定するラッチ化フリップフロップ選定ステップと、
    前記ラッチ化フリップフロップ選定ステップにて選定されなかった前記フリップフロップを、入力側の遅延余裕を出力側に貸し出すことが可能なスルー状態を有するラッチに変換するラッチ変換ステップとを含むことを特徴とするプログラム。
  12. 前記フリップフロップはクロックにおける第1レベルから第2レベルへの変化時のエッジに応じて入力されるデータを保持するものであり、前記ラッチ変換ステップにおけるラッチは前記クロックが前記第1のレベルを示している際の入力データを出力側にスルーするものであることを特徴とする請求項11記載のプログラム。
  13. 前記ラッチ変換ステップにおけるラッチとは異なる時間にスルー状態となる第2のラッチを論理回路の所定部分に挿入するラッチ挿入ステップを含むことを特徴とする請求項11または12記載のプログラム。
  14. 前記ラッチ挿入ステップにおける第2のラッチは前記クロックが前記第2のレベルを示している際の入力データを出力側にスルーするものであることを特徴とする請求項13記載のプログラム。
  15. 前記ラッチ挿入ステップにおける第2のラッチは、前記ラッチ変換ステップにおけるラッチの出力側に設けられることを特徴とする請求項13または14記載のプログラム
JP2002207658A 2002-07-17 2002-07-17 論理回路の遅延最適化システムおよびその最適化方法ならびに制御プログラム Expired - Fee Related JP3695428B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002207658A JP3695428B2 (ja) 2002-07-17 2002-07-17 論理回路の遅延最適化システムおよびその最適化方法ならびに制御プログラム
US10/618,704 US7028273B2 (en) 2002-07-17 2003-07-15 Delay optimization designing system and delay optimization designing method for a logic circuit and control program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002207658A JP3695428B2 (ja) 2002-07-17 2002-07-17 論理回路の遅延最適化システムおよびその最適化方法ならびに制御プログラム

Publications (2)

Publication Number Publication Date
JP2004056238A true JP2004056238A (ja) 2004-02-19
JP3695428B2 JP3695428B2 (ja) 2005-09-14

Family

ID=30437507

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002207658A Expired - Fee Related JP3695428B2 (ja) 2002-07-17 2002-07-17 論理回路の遅延最適化システムおよびその最適化方法ならびに制御プログラム

Country Status (2)

Country Link
US (1) US7028273B2 (ja)
JP (1) JP3695428B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7236006B2 (en) 2004-03-25 2007-06-26 Nec Corporation Logic circuit, logic circuit design method, logic circuit design system, and logic circuit design program
WO2009110615A1 (ja) * 2008-03-07 2009-09-11 日本電気株式会社 半導体集積回路の設計装置、半導体集積回路の設計方法、並びに半導体集積回路を設計するコンピュータ・プログラム
JP2010124403A (ja) * 2008-11-21 2010-06-03 Nec Corp 半導体集積回路及びその設計方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7634749B1 (en) * 2005-04-01 2009-12-15 Cadence Design Systems, Inc. Skew insensitive clocking method and apparatus
US7546560B2 (en) * 2006-12-06 2009-06-09 Lsi Corporation Optimization of flip flop initialization structures with respect to design size and design closure effort from RTL to netlist
US7694242B1 (en) * 2006-12-11 2010-04-06 Cadence Design Systems, Inc. System and method of replacing flip-flops with pulsed latches in circuit designs
US8205182B1 (en) * 2007-08-22 2012-06-19 Cadence Design Systems, Inc. Automatic synthesis of clock distribution networks
US8839178B1 (en) 2013-03-14 2014-09-16 Medtronic, Inc. Tool for evaluating clock tree timing and clocked component selection
US9660626B2 (en) 2013-03-14 2017-05-23 Medtronic, Inc. Implantable medical device having clock tree network with reduced power consumption

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2601168B2 (ja) 1993-03-30 1997-04-16 日本電気株式会社 順次回路をリタイミングする方法および再設計する方法
US6185720B1 (en) * 1998-06-19 2001-02-06 Intel Corporation Slaveless synchronous system design
JP3317344B2 (ja) 1999-04-16 2002-08-26 日本電気株式会社 遅延最適化装置並びに記録媒体
JP4386512B2 (ja) * 1999-11-16 2009-12-16 株式会社ルネサステクノロジ マクロブロック、および記録媒体
WO2002035346A1 (en) * 2000-10-23 2002-05-02 The Trustees Of Columbia University In The City Of New York Asynchronous pipeline with latch controllers
US6957403B2 (en) * 2001-03-30 2005-10-18 Syntest Technologies, Inc. Computer-aided design system to automate scan synthesis at register-transfer level
US6817001B1 (en) * 2002-03-20 2004-11-09 Kudlugi Muralidhar R Functional verification of logic and memory circuits with multiple asynchronous domains

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7236006B2 (en) 2004-03-25 2007-06-26 Nec Corporation Logic circuit, logic circuit design method, logic circuit design system, and logic circuit design program
US8065645B2 (en) 2004-03-25 2011-11-22 Nec Corporation Logic circuit, logic circuit design method, logic circuit design system, and logic circuit design program
WO2009110615A1 (ja) * 2008-03-07 2009-09-11 日本電気株式会社 半導体集積回路の設計装置、半導体集積回路の設計方法、並びに半導体集積回路を設計するコンピュータ・プログラム
JP2010124403A (ja) * 2008-11-21 2010-06-03 Nec Corp 半導体集積回路及びその設計方法

Also Published As

Publication number Publication date
US20040015789A1 (en) 2004-01-22
US7028273B2 (en) 2006-04-11
JP3695428B2 (ja) 2005-09-14

Similar Documents

Publication Publication Date Title
US8060844B2 (en) Method for generating optimized constraint systems for retimable digital designs
US8196076B2 (en) Optimal flow in designing a circuit operable in multiple timing modes
JP2677256B2 (ja) 遅延最適化方法
JP2011512602A (ja) 同期から非同期への論理変換
US5790830A (en) Extracting accurate and efficient timing models of latch-based designs
Ykman-Couvreur et al. Assassin: A synthesis system for asynchronous control circuits
US7484187B2 (en) Clock-gating through data independent logic
US8181129B2 (en) Acyclic modeling of combinational loops
US20050278681A1 (en) Method for synthesizing domino logic circuits
US20080201671A1 (en) Method for generating timing exceptions
US6604232B2 (en) High-level synthesis method and storage medium storing the same
JP3695428B2 (ja) 論理回路の遅延最適化システムおよびその最適化方法ならびに制御プログラム
TWI467401B (zh) 變更點搜尋方法及裝置
EP1282052A2 (en) Method for prototyping asynchronous circuits using synchronous devices
Branover et al. Asynchronous design by conversion: Converting synchronous circuits into asynchronous ones
WO2000026826A1 (en) Circuit synthesis and verification using relative timing
Bergamaschi et al. Observable time windows: Verifying high-level synthesis results
Semba et al. RTL conversion method from pipelined synchronous RTL models into asynchronous ones
Sawasaki et al. Externally hazard-free implementations of asynchronous circuits
JP3317344B2 (ja) 遅延最適化装置並びに記録媒体
JP2005277909A (ja) 論理回路設計システム、論理回路、論理回路設計方法およびそのプログラム
He et al. Extended DILL: Digital logic in LOTOS
JP3187506B2 (ja) 論理回路設計支援装置
JP2002222228A (ja) 高位合成システム及び高位合成方法
Sawasaki et al. Externally hazard-free implementations of asynchronous control circuits

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040427

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050602

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050620

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100708

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110708

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110708

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120708

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees