JP4200465B2 - 半導体集積回路の設計方法及び設計システム - Google Patents

半導体集積回路の設計方法及び設計システム Download PDF

Info

Publication number
JP4200465B2
JP4200465B2 JP2006240361A JP2006240361A JP4200465B2 JP 4200465 B2 JP4200465 B2 JP 4200465B2 JP 2006240361 A JP2006240361 A JP 2006240361A JP 2006240361 A JP2006240361 A JP 2006240361A JP 4200465 B2 JP4200465 B2 JP 4200465B2
Authority
JP
Japan
Prior art keywords
selector
timing exception
target
data
data processing
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
JP2006240361A
Other languages
English (en)
Other versions
JP2008065457A (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.)
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 JP2006240361A priority Critical patent/JP4200465B2/ja
Priority to US11/846,948 priority patent/US7774730B2/en
Publication of JP2008065457A publication Critical patent/JP2008065457A/ja
Application granted granted Critical
Publication of JP4200465B2 publication Critical patent/JP4200465B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/3312Timing analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2117/00Details relating to the type or aim of the circuit design
    • G06F2117/04Clock gating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation

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)

Description

本発明は、半導体集積回路の設計技術に関する。特に、本発明は、クロックゲーティング手法を用いた半導体集積回路の設計技術に関する。
LSIが所望のクロック周波数で正常に動作するためには、「タイミング制約(timing constraint)」を満たす必要がある。タイミング制約として、「ホールド制約」と「セットアップ制約」が挙げられる。例えば、第1フリップフロップから出力された信号が、第2フリップフロップに入力される場合を考える。このとき、その信号が第2フリップフロップに到達するタイミングは、現クロックの入力後であり、且つ、次クロックの入力前である必要がある。前者に関する制約がホールド制約であり、後者に関する制約がセットアップ制約である。
LSI設計においては、上記タイミング制約が満たされるようにタイミングの設計・最適化を行う必要がある。そのために、タイミング解析は重要である。タイミング解析においては、回路遅延が見積もられ、各パスにおいて各信号がタイミング制約を満たすかどうかの検証が行われる。但し、設計対象の回路中のパスのなかには、通常のタイミング制約を満たさなくてもよいパスも存在する。そのようなパスは、「タイミング例外パス(timing exception path)」と呼ばれる。タイミング例外パスとして、「フォールスパス(false path)」と「マルチサイクルパス(multi-cycle path)」が挙げられる。
フォールスパスとは、論理的に信号が伝播しないパスである。例えば、LSIの実動作において、あるANDゲートの1つの入力が論理値“0”に固定される場合、他方の入力が変化しても、その変化は後段には伝わらない。従って、そのANDゲートの出力パスはフォールスパスである。このようなフォールスパスは、タイミング解析において無視することができる。
マルチサイクルパスとは、信号が2クロックサイクル以上かかって伝搬してもよいパスである(特許文献1参照)。例えば、あるパスを信号が3クロックサイクルで伝搬してもLSIが正常に動作する場合、そのパスは「3サイクルのマルチサイクルパス」と呼ばれる。通常は、組み合わせ回路部分のパスにおける遅延を1クロックサイクル以内に収める必要がある。しかし、nサイクル(nは2以上の整数)のマルチサイクルパスに関しては、タイミング制約をnクロックサイクルまで緩和することが可能である。
近年、LSIの高速化・微細化に伴い、タイミング制約はより厳しくなってきている。このことは、タイミング設計に要する時間、すなわち、LSI設計に要する時間の増大を招く。タイミング設計においてタイミング例外に関する情報を活用できれば、タイミング制約が緩和され、無駄なタイミング最適化処理を省くことができる。そのために、通常パスに関する通常のタイミング制約の他に、タイミング例外パス用の制約(以下、「タイミング例外制約」と参照される)が追加的に与えられるとよい。タイミング例外制約を与えることによって、タイミング制約が全体として緩和される。タイミング例外を考慮することは、LSI設計の効率化の観点から重要である。
また、LSIの分野において、消費電力の削減に貢献する「クロックゲーティング(Clock Gating)」と呼ばれる技術が知られている(例えば、特許文献2、特許文献3参照)。クロックゲーティングによれば、クロックに基づいて動作する回路が動作する必要がない期間、その回路に対するクロックの供給が遮断される。例えば、あるレジスタの値を書き換える必要がない期間、そのレジスタへのクロック供給が遮断される。これにより、その期間中信号の遷移が停止し、消費電力が削減される。
クロックゲーティングを行うためには、「ゲーティングセル(Gating Cell)」が用いられる。図1は、周知のゲーティングセルGCの構成を示している(例えば、特許文献3の図6参照)。図1に示されるゲーティングセルGCは、ANDゲートとラッチ回路を備えている。ラッチ回路は、クロック信号clkに同期してイネーブル信号enのラッチ動作を行う。ANDゲートには、ラッチ回路の出力とクロック信号clkが入力される。イネーブル信号enは、クロックゲーティングの対象である対象回路(フリップフロップ等)を活性化するための信号であり、所定のイネーブル論理によって生成される。
このようなゲーティングセルGCが、クロックライン上に設けられる。つまり、ANDゲートの出力が対象回路に接続され、その対象回路へのクロック信号clkの供給が、ゲーティングセルGCによって制御される。イネーブル信号enが活性化された場合、ゲーティングセルGCは、クロック信号clkを対象回路に供給する。一方、イネーブル信号enが非活性化された場合、ゲーティングセルGCは、対象回路へのクロック信号clkの供給を遮断する。これにより、消費電力が削減される。
尚、クロックゲーティングは、イネーブル信号enとクロック信号clkとのAND論理だけも実現可能である。図1に示されるゲーティングセルGCにラッチ回路が付加されている理由は、次の通りである。イネーブル信号が不安定であると、必要なクロックパルスが1つであるべき場合に複数のクロックパルス(グリッジ)が生成される等の問題が発生する。そのような問題を回避するために、ラッチ回路が挿入されている。ラッチ回路は、イネーブル信号enの状態をキャプチャし、クロックパルスが完全に生成されるまでその状態を保持する。その結果、ANDゲートの出力が安定化する。このようなゲーティングセルGCは、「ラッチベースゲーティングセル」と呼ばれている。
特開2004−171149号公報 特開平11−149496号公報 特開2002−190528号公報
ゲーティングセルは、論理合成(logic synthesis)時に、論理合成ツールによって自動的に挿入される。その論理合成時には、上述のタイミング解析が行われる。ここで、図1で示されたゲーティングセルGC(ラッチベースゲーティングセル)が用いられる場合を考える。この場合、ラッチ回路はクロック信号clkに基づいて動作する順序素子であるため、ゲーティングセルGCに関してもタイミング解析が行われる。イネーブル信号enがタイミング例外パスの信号である場合は、そのゲーティングセルGCに対して「タイミング例外制約」を追加的に与えることが、タイミング制約の緩和の観点からは好ましい。
しかしながら、本来レジスタやフリップフロップにだけ与えればよかったタイミング例外制約を、ゲーティングセルGCにも与えるという作業は、煩雑である。それは、ゲーティングセルGCが、タイミング解析が行われる論理合成の最中に、論理合成ツールによって自動的に生成されるからである。論理合成の前に、ゲーティングセルGCにタイミング例外制約を与えるためには、そのゲーティングセルGCにどのような名前(インスタンス名)が付与されるか予測する必要がある。しかし、その予測は明らかに困難である。
このように、ゲーティングセルGCにタイミング例外制約を与えるという作業は、設計者にとって、困難であり煩雑である。このことは、タイミング制約の緩和による効果を相殺し、結局は設計効率の低下を招く。
以下に、[発明を実施するための最良の形態]で使用される番号・符号を用いて、[課題を解決するための手段]を説明する。これらの番号・符号は、[特許請求の範囲]の記載と[発明を実施するための最良の形態]との対応関係を明らかにするために括弧付きで付加されたものである。ただし、それらの番号・符号を、[特許請求の範囲]に記載されている発明の技術的範囲の解釈に用いてはならない。
本発明の第1の観点において、コンピュータを用いた半導体集積回路の設計方法が提供される。その設計方法は、(A)半導体集積回路のRTL記述を示すRTLデータ(21)を読み込むステップと、(B)クロックゲーティングを行うゲーティングセル(GC)を設けながら、上記RTL記述の論理合成を行うステップと、を有する。そのゲーティングセル(GC)は、クロックゲーティングの対象を活性化させるイネーブル信号をクロック信号に同期してラッチするラッチ回路を備える。上記(B)ステップにおいて、ゲーティングセル(GC)は、タイミング例外パスから隔離される。
このように、本発明によれば、論理合成において、ゲーティングセル(GC)は、タイミング例外パスにつながらないように設けられる。従って、ゲーティングセル(GC)にタイミング例外制約を与える必要はない。タイミング例外制約は、レジスタやフリップフロップにだけ与えればよい。本発明によれば、ゲーティングセル(GC)にタイミング例外制約を与えるという煩雑な作業が省略される。その結果、設計効率が向上し、半導体集積回路の設計に要する時間が短縮される。
本発明の第2の観点において、上述の設計方法をコンピュータに実行させる設計プログラムが提供される。
本発明の第3の観点において、半導体集積回路の設計システムが提供される。その設計システムは、記憶装置(2)とデータ処理装置(3,4)とを備える。記憶装置(2)には、半導体集積回路のRTL記述を示すRTLデータ(21)が格納される。データ処理装置(3,4)は、記憶装置(2)からRTLデータ(21)を読み出し、RTL記述の論理合成を行う。その論理合成において、データ処理装置(3,4)は、クロックゲーティングを行うゲーティングセル(GC)を設ける。ゲーティングセル(GC)は、イネーブル信号とクロック信号が入力されるラッチ回路を備えており、タイミング例外パスから隔離されて設けられる。
本発明によれば、クロックゲーティング手法を用いた設計において、ゲーティングセルにタイミング例外制約を与えるという煩雑な作業が省略される。その結果、設計効率が向上し、半導体集積回路の設計に要する時間が短縮される。
添付図面を参照して、本発明の実施の形態に係る半導体集積回路の設計方法及び設計システムを説明する。
1.構成
図2は、本発明の実施の形態に係るLSI設計システム1の構成を示すブロック図である。LSI設計システム1は、半導体集積回路の設計を行うためのコンピュータシステムであり、記憶装置2、CPU3、論理合成ツール4、入力装置5、及び表示装置6を備えている。記憶装置2としては、RAM(Random Access Memory)やハードディスクが例示される。CPU3は、各装置にアクセス可能である。論理合成ツール4は、CPU3によって実行されるソフトウェア・プロダクトであり、CPU3は、論理合成ツール4を実行することによって後述の論理合成処理を行う。入力装置5としては、キーボードやマウスが例示される。設計者は、表示装置6に表示される情報を参照しながら、入力装置5を用いることによって各種コマンドやデータを入力することができる。
記憶装置2には、RTLデータ21、タイミング例外指定データ22、制約データ23、ネットリスト40が格納される。
RTLデータ21は、設計対象のLSIのRTL(Register Transfer Level)記述であり、そのLSIの論理設計を示す。そのRTLデータ21は、VerilogやVHDLといったハードウェア記述言語(HDL: Hardware Description Language)で記述される。
タイミング例外指定データ22は、設計対象のLSI中の「タイミング例外」を指定するデータ(設定コマンド)である。タイミング例外として、フォールスパスやマルチサイクルパスといったタイミング例外パスが指定されてもよい。あるいは、タイミング例外として、タイミング例外パス上の信号(以下、「タイミング例外信号」と参照される)が指定されてもよい。あるいは、タイミング例外として、タイミング例外信号の供給元(外部ポートなど)が指定されてもよい。つまり、タイミング例外は、タイミング例外パス、タイミング例外信号、及びタイミング例外信号の供給元のうち少なくとも1つを含んでいる。タイミング例外指定データ22は、例えば、Synopsys社(登録商標)提唱のSDCフォーマットで記述される。
制約データ23は、論理合成処理において考慮される各種制約を示すデータである。具体的には、制約データ23は、タイミング制約、上記タイミング例外に関するタイミング例外制約、面積制約、デザインルール制約などを含む。
2.論理合成処理
図2に示されたLSI設計システム1は、論理合成処理を行う。論理合成処理の入力は、RTLデータ21であり、その出力はネットリスト40である。つまり、論理合成処理においては、RTL記述が解析され、そのRTL記述が示す論理設計に応じた回路が構築され、その回路構成が最適化され、結果としてRTL記述に応じたネットリスト40が作成される。また、本実施の形態によれば、論理合成処理の最中に、クロックゲーティングを実現するためのゲーティングセルGC(図1参照)の挿入も自動的に行われる。
図3は、論理合成処理におけるLSI設計システム1の構成を概念的に示しており、また、その論理合成処理の流れを要約的に示している。図3において、データ処理装置10は、CPU3と論理合成ツール4との協働により実現される。このデータ処理装置10は、記憶装置2とデータのやりとりを行うことによって論理合成処理を実行する。より詳細には、データ処理装置10は、RTL解析部11、CG対象マーキング部12、クロックゲーティング部13、及び論理最適化部14を有している。
図4は、本実施の形態に係る論理合成処理を示すフローチャートである。図3及び図4を参照して、本実施の形態に係る論理合成処理の概略を説明する。
ステップS1:
RTL解析部11は、記憶装置2からRTLデータ21を読み出し、RTLデータ21が示すRTL記述の解析を行う。より詳細には、RTL解析部11は、RTL記述を、そのRTL記述と論理的に等価な論理回路モデルに変換する。この変換方法に関しては、例えば、“BooleDozer:Logic synthesis for ASICs, A. J. Sulliavanら著”を参考されたい。変換により生成された論理回路モデルは、一般的な論理ゲート(ANDゲート,ORゲート,インバータ等)、イネーブル論理、フリップフロップ、ポート、ネットなどによって構成される。内部データベース31は、その論理回路モデルを示すデータであり、回路の論理的な接続を示している。生成された内部データベース31は、記憶装置2に格納される。
ステップS2:
次に、CG対象マーキング部12は、記憶装置2から内部データベース31及びタイミング例外指定データ22を読み込む。CG対象マーキング部12は、内部データベース31が示す論理回路モデルを参照し、フリップフロップに関するイネーブル信号enを生成するイネーブル論理(ライトイネーブル論理)の解析を行う。ここで、CG対象マーキング部12は、タイミング例外指定データ22が示すタイミング例外を参照し、イネーブル論理のうちタイミング例外と関連しない部分を抽出する。そして、CG対象マーキング部12は、抽出された部分を、次処理(ステップS3)の対象としてマーキングする。
より詳細には、論理回路モデル中のイネーブル論理は、セレクタ群を含んでいる。各セレクタにはセレクト信号が入力され、上記イネーブル信号enは、セレクタ群に入力されるセレクト信号群に基づいて生成される。よって、CG対象マーキング部12は、セレクタ群に入力されるセレクト信号群を解析する。あるセレクト信号が、指定されたタイミング例外に関連している場合、CG対象マーキング部12は、そのセレクト信号が入力されるセレクタを、次処理の対象から外す。一方、あるセレクト信号が、指定されたタイミング例外に関連していない場合、CG対象マーキング部12は、そのセレクト信号が入力されるセレクタを、次処理の対象としてマーキングする。そのマーキングされたセレクタは、「対象セレクタ」と参照される。
言い換えれば、あるセレクト信号がタイミング例外信号である場合、CG対象マーキング部12は、そのタイミング例外信号が入力されるセレクタを、対象セレクタとして設定しない。一方、あるセレクト信号がタイミング例外信号ではない場合、CG対象マーキング部12は、そのセレクト信号が入力されるセレクタを、対象セレクタとして設定する。このように、CG対象マーキング部12は、タイミング例外指定データ22を参照し、対象セレクタのマーキング処理を行う。そのマーキング処理が反映された内部データベースが、マーキング済内部データベース32として記憶装置2に格納される。
ステップS3:
次に、クロックゲーティング部13は、記憶装置2からマーキング済内部データベース32を読み込む。クロックゲーティング部13は、クロックゲーティングのためのゲーティングセルGC(図1参照)を、マーキング済内部データベース32が示す論理回路モデルに挿入する。そのゲーティングセルGCは、ライトイネーブル論理とフリップフロップとの間に設けられる。ここで、本実施の形態によれば、ゲーティングセルGCは、タイミング例外パスから隔離されて設けられる。
具体的には、ゲーティングセルGCの挿入において、クロックゲーティング部13は、マーキングされた上述の対象セレクタを考慮する。その対象セレクタは、タイミング例外と関連していない。よって、クロックゲーティング部13は、上記イネーブル信号enが対象セレクタに入力されるセレクト信号だけから生成されるように、ゲーティングセルGCを設ける。結果として、ゲーティングセルGCは、タイミング例外パスから隔離されて設けられることになる。ゲーティングセルGCの挿入処理が完了した内部データベースが、CG済内部データベース33として記憶装置2に格納される。
ステップS4:
次に、論理最適化部14は、記憶装置2からCG済内部データベース33及び制約データ23を読み込む。論理最適化部14は、CG済内部データベース33が示す論理回路モデルを、制約データ23が示す各種制約(タイミング制約、タイミング例外制約、面積制約、デザインルール制約など)の下で最適化する。結果として、RTL記述に応じた回路接続を示すネットリスト40が生成される。このネットリスト40が示す回路構成は、タイミング例外信号を除いてクロックゲーティングされていることが保障されている。
以上に説明されたように、本実施の形態によれば、論理合成処理において、ゲーティングセルGCは、タイミング例外パスにつながらないように設けられる。よって、ゲーティングセルGCにタイミング例外制約を予め与える必要はない。タイミング例外制約は、通常通りレジスタやフリップフロップにだけ与えればよい。このように、ゲーティングセルGCにタイミング例外制約を与えるという煩雑な作業が省略される。その結果、設計効率が向上し、LSI設計に要する時間が短縮される。
3.論理合成処理の一例
次に、具体的な例を1つ挙げて、本実施の形態に係る論理合成処理の流れを説明する。図5は、Verilogで記述されたRTLデータ21の一例を示している。また、図6は、SDCフォーマットで記述されたタイミング例外指定データ22の一例を示している。図6において、外部ポート“mul”がタイミング例外として指定されており、その外部ポート“mul”からのパスが、3サイクルのマルチサイクルパスとして設定されている。以下、外部ポート“mul”から供給される信号は、タイミング例外信号mulと参照される。
3−1.ステップS1
RTL解析部11は、図5で示されたRTLデータ21を読み込み、図7で示されるような内部データベース23を生成する。生成された内部データベース23は、RTL記述と論理的に等価な論理回路モデルを示している。
図7に示されるように、論理回路モデルは、フリップフロップFF、セレクタsel1、sel2、sel3、sel4、ANDゲートA1、A2、入力ポートclk、data、en1、en2、en3、a、mul、s1、s2、及び出力ポートoutを有している。フリップフロップFFの出力は、出力ポートoutに接続されている。フリップフロップFFには、入力ポートclkからクロック信号clkが入力される。また、フリップフロップFFには、イネーブル論理の出力が入力される。
イネーブル論理は、セレクタsel1、sel2、sel3、sel4やANDゲートA1、A2から構成されている。セレクタsel1、sel3、sel4の入力は、フリップフロップFFの出力に接続されている。また、セレクタsel1、sel2、sel3には、入力ポートen1、en2、en3のそれぞれからセレクト信号en1、en2、en3が入力される。例えば、セレクタsel1は、図5中の記述“if(en1)”から推定されるセレクタである。セレクト信号en1が“1”の場合はフリップフロップFFの出力がフィードバックされ、“0”の場合は“else”以降の論理が参照される。更に、セレクタsel4には、ANDゲートA2の出力がセレクト信号en4として入力される。セレクト信号en4は、信号aとタイミング例外信号mulとの論理積である。
図7に示される論理回路モデルに、通常の手法でゲーティングセルGCが挿入されると、図8に示されるような構成が得られる。図8において、ゲーティングセルGCは、イネーブル論理の出力とフリップフロップFFとの間に設けられており、そのゲーティングセルGCにはイネーブル信号とクロック信号clkが入力されている。通常の手法では、イネーブル信号が全てのセレクト信号en1、en2、en3、en4に依存していることがわかる。
ここで問題となるのは、セレクト信号en4が、タイミング例外信号mulに依存していることである。ゲーティングセルGCが図1に示されるようにラッチ回路を有している場合、そのゲーティングセルGCも、タイミング例外制約の終点となるべきポイントとなる。従って、タイミング例外信号mulが3サイクルのマルチサイクルパスに関連付けられているのであれば、ゲーティングセルGCにも3サイクルのタイミング例外制約を与えなければならない。しかしながら、ゲーティングセルGCにタイミング例外制約を与えるためには、論理合成においてそのゲーティングセルGCにどのような実体名(インスタンス名)が付与されるか予測する必要がある。設計者にとって、その予測は困難である。つまり、ゲーティングセルGCにタイミング例外制約を与えるという作業は煩雑であり、設計効率の低下を招く。
本発明によれば、ゲーティングセルGCにタイミング例外制約を与える必要がないように論理合成が行われる。そのため、ゲーティングセルGCの挿入処理前に、以下に示される処理が実行される。
3−2.ステップS2
図9は、CG対象マーキング部12が提供する処理のアルゴリズム(擬似コード)を概念的に示している。
(メイン処理)
まず、内部データベース31が示す論理回路モデル中に存在する全てのフリップフロップが取得される。取得されたフリップフロップは、“ff”という変数に格納される。そして、各フリップフロップffに関してループ処理が実行される(ステップA1)。ループ処理において、各フリップフロップffの入力ピンに接続された「ファンインセル」が全て取得される。取得されたファンインセルは、“cell”という変数に格納される(ステップA2)。そして、各ファンインセルcellを引数として、“trace”というサブルーチンが呼び出される(ステップA3)。そのサブルーチンtraceにおいては、ファンインセルcellを処理対象として「トレース処理」が実行される。
(トレース処理)
まず、処理対象であるファンインセルcellがセレクタであるかどうかの判定が行われる(ステップA4)。ファンインセルcellがセレクタではない場合、サブルーチンtraceは終了し、処理はサブルーチンtraceを呼び出した元処理に戻る(ステップA10)。ファンインセルcellがセレクタの場合、その処理対象のセレクタに入力されるセレクト信号の解析が行われる。具体的には、セレクト信号をフリップフロップや外部ポートに達するまでトレースすることによって、そのセレクト信号のソース(供給元)が取得される(ステップA5)。取得されたセレクト信号の全てのソースは、リスト“end_points_list”に格納される。
次に、リストend_points_listに示される全てのフリップフロップや外部ポートが調べられる。タイミング例外として指定されているポイントが1つでも存在すれば、トレース処理は終了する(ステップA6)。つまり、セレクト信号のソースの1つでもタイミング例外として指定されている場合、当該セレクタcellは対象セレクタとして設定されず、サブルーチンtraceは終了する。
一方、セレクト信号のソースのいずれもタイミング例外として指定されていない場合、当該セレクタcellは、対象セレクタとしてマーキングされる(ステップA7)。更に、当該セレクタcellの入力端子のうちセレクト信号以外の信号が入力される入力端子に接続された「ファンインセル」が全て取得される。取得されたファンインセルは、“x”という変数に格納される(ステップA8)。そして、各ファンインセルxを引数として、サブルーチンtraceが再帰的に呼び出される。つまり、当該セレクタcellのファンインセルxを処理対象として、上述のトレース処理が再帰的に実行される(ステップA9)。
以上に説明されたアルゴリズムに基づいて、CG対象マーキング部12は、図7で示された内部データベース31に対してマーキング処理を行う。
まず、図7中のフリップフロップFFが取得され、変数ffに格納される(ステップA1)。次に、フリップフロップFFのファンインセルが全て取得される。ここでは、ファンインセルは、セレクタsel1だけである。従って、変数cellには、セレクタsel1が格納される(ステップA2)。そして、セレクタsel1に対してトレース処理が実行される(ステップA3)。
まず、変数cellはセレクタsel1であるので(ステップA4;Yes)、セレクタsel1に入力されるセレクト信号en1のトレースが行われる。その結果、セレクト信号en1のソースとして外部ポートen1がリストend_points_listに格納される(ステップA5)。ステップA6において、その外部ポートen1はタイミング例外(“mul”)として指定されていない。従って、当該セレクタsel1は、対象セレクタとしてマーキングされる(ステップA7)。
次に、ステップA8において、セレクタsel1のセレクト信号en1以外のファンインセルが全て取得される。ここでは、フリップフロップFFとセレクタsel2がファンインセルとして取得され、変数xに順番に格納される。そして、それらフリップフロップFFとセレクタsel2のそれぞれに対して、トレース処理が再帰的に実行される(ステップA9)。
まず、フリップフロップFFを引数としてサブルーチンtraceが呼び出される。この場合、変数xはセレクタではないので(ステップA4;No)、処理は元処理に戻る(ステップA10)。次に、セレクタsel2を引数としてサブルーチンtranceが呼び出される。この場合、変数xはセレクタであるので(ステップA4;Yes)、セレクタsel2に入力されるセレクト信号en2のトレースが行われる。その結果、セレクト信号en2のソースとして外部ポートen2がリストend_points_listに格納される(ステップA5)。ステップA6において、その外部ポートen2はタイミング例外(“mul”)として指定されていない。従って、当該セレクタsel2は、対象セレクタとしてマーキングされる(ステップA7)。
次に、ステップA8において、セレクタsel2のセレクト信号en2以外のファンインセルが全て取得される。ここでは、ANDゲートA1とセレクタsel3がファンインセルとして取得され、変数xに順番に格納される。そして、それらANDゲートA1とセレクタsel3のそれぞれに対して、トレース処理が再帰的に実行される(ステップA9)。
まず、ANDゲートA1を引数としてサブルーチンtraceが呼び出される。この場合、変数xはセレクタではないので(ステップA4;No)、処理は元処理に戻る(ステップA10)。次に、セレクタsel3を引数としてサブルーチンtranceが呼び出される。この場合、変数xはセレクタであるので(ステップA4;Yes)、セレクタsel3に入力されるセレクト信号en3のトレースが行われる。その結果、セレクト信号en3のソースとして外部ポートen3がリストend_points_listに格納される(ステップA5)。ステップA6において、その外部ポートen3はタイミング例外(“mul”)として指定されていない。従って、当該セレクタsel3は、対象セレクタとしてマーキングされる(ステップA7)。
次に、ステップA8において、セレクタsel3のセレクト信号en3以外のファンインセルが全て取得される。ここでは、フリップフロップFFとセレクタsel4がファンインセルとして取得され、変数xに順番に格納される。そして、それらフリップフロップFFとセレクタsel4のそれぞれに対して、トレース処理が再帰的に実行される(ステップA9)。
まず、フリップフロップFFを引数としてサブルーチンtraceが呼び出される。この場合、変数xはセレクタではないので(ステップA4;No)、処理は元処理に戻る(ステップA10)。次に、セレクタsel4を引数としてサブルーチンtranceが呼び出される。この場合、変数xはセレクタであるので(ステップA4;Yes)、セレクタsel4に入力されるセレクト信号en4のトレースが行われる。その結果、セレクト信号en2のソースとして、外部ポート“mul”及び“a”がリストend_points_listに格納される(ステップA5)。この場合、リストend_points_listには、タイミング例外として指定されたポート“mul”が含まれている。従って、当該セレクタsel4は、対象セレクタとしてマーキングされず、サブルーチンtraceは終了する(ステップA6)。
このようなマーキング処理の結果得られるマーキング済内部データベース32が、図10に示されている。図10において、マーキングされた対象セレクタ(sel1、sel2、sel3)には、符号“*”が付されている。このように、フリップフロップFFから入力側方向にセレクタを辿っていき、セレクト信号にタイミング例外信号が含まれているかどうか判定することによって、対象セレクタが設定される。
3−3.ステップS3
クロックゲーティング部13は、マーキング済内部データベース32を参照し、ゲーティングセルGCを自動的に挿入する。その結果、図11に示されるようなCG済内部データベース33が生成される。
図11において、ゲーティングセルGCは、イネーブル論理の出力とフリップフロップFFとの間に設けられており、そのゲーティングセルGCにはイネーブル信号とクロック信号clkが入力されている。イネーブル論理は、インバータI1、I2、ANDゲートA3、NORゲートO1、入力ポートen1、en2、en3から構成されており、タイミング例外信号mulには依存していない。すなわち、イネーブル信号は対象セレクタに入力されるセレクト信号en1、en2、en3だけから生成され、イネーブル信号en4には依存していない。このように、本実施の形態によれば、ゲーティングセルGCは、タイミング例外パスから隔離されて設けられる。
3−4.ステップS4
論理最適化部14は、CG済内部データベース33が示す論理回路モデルを、制約データ23が示す各種制約(タイミング制約、タイミング例外制約、面積制約、デザインルール制約など)の下で最適化する。結果として、RTL記述に応じた回路接続を示すネットリスト40が生成される。図12は、生成されるネットリスト40の一例を概念的に示している。図12において、各論理素子には、インスタンス名(U0、U1、U2、U3、U4、U5、U6)が付与されている。
4.効果
以上に説明されたように、本発明によれば、論理合成において、ゲーティングセルGCは、タイミング例外パスにつながらないように設けられる。よって、ゲーティングセルGCにタイミング例外制約を与える必要はない。タイミング例外制約は、レジスタやフリップフロップにだけ与えればよい。このように、ゲーティングセルGCにタイミング例外制約を与えるという煩雑な作業が省略される。その結果、設計効率が向上し、半導体集積回路の設計に要する時間が短縮される。
図1は、クロックゲーティングに用いられるゲーティングセルの構成を示すブロック図である。 図2は、本発明の実施の形態に係るLSI設計システムの構成を示すブロック図である。 図3は、本発明の実施の形態に係る論理合成処理の流れを概念的に示すブロック図である。 図4は、本発明の実施の形態に係る論理合成処理を示すフローチャートである。 図5は、RTLデータの一例を示す図である。 図6は、タイミング例外指定データの一例を示す図である。 図7は、RTLデータと論理的に等価な内部データベースの一例を示す概念図である。 図8は、図7に示された内部データベースに対して従来の手法によりゲーティングセルが挿入された場合の、CG済内部データベースを示す概念図である。 図9は、本発明の実施の形態に係るCG対象マーキング部のアルゴリズム(擬似コード)を示す概念図である。 図10は、図7に示された内部データベースに対してマーキング処理が実行された場合の、マーキング済内部データベースを示す概念図である。 図11は、図10に示されたマーキング済内部データベースに対してゲーティングセルが挿入された場合の、CG済内部データベースを示す概念図である。 図12は、図11に示されたCG済内部データベースを最適化することによって得られるネットリストを示す概念図である。
符号の説明
1 LSI設計システム
2 記憶装置
3 CPU
4 論理合成ツール
5 入力装置
6 表示装置
10 データ処理装置
11 RTL解析部
12 CG対象マーキング部
13 クロックゲーティング部
14 論理最適化部
21 RTLデータ
22 タイミング例外指定データ
23 制約データ
31 内部データベース
32 マーキング済内部データベース
33 CG済内部データベース
40 ネットリスト
GC ゲーティングセル

Claims (6)

  1. コンピュータを用いた半導体集積回路の設計方法であって、
    前記コンピュータは、データ処理装置と記憶装置とを備え、
    前記記憶装置には、前記半導体集積回路のRTL記述を示すRTLデータと、タイミング例外を指定するタイミング例外指定データとが格納され、
    前記設計方法は、
    (A)前記データ処理装置が、前記記憶装置から前記TLデータを読み込むステップと、
    (B)前記データ処理装置が、クロックゲーティングを行うゲーティングセルを設けながら、前記RTL記述の論理合成を行うステップと
    を有し、
    前記ゲーティングセルは、前記クロックゲーティングの対象を活性化させるイネーブル信号をクロック信号に同期してラッチするラッチ回路を備え、
    前記(B)ステップにおいて、前記データ処理装置は、前記記憶装置から前記タイミング例外指定データを読み出し、前記ゲーティングセルタイミング例外パスから隔離て設け
    半導体集積回路の設計方法。
  2. 請求項1に記載の半導体集積回路の設計方法であって、
    前記(B)ステップは、
    (B1)前記データ処理装置が、前記RTL記述を解析し、前記RTL記述と論理的に等価な論理回路モデルを生成するステップと、
    B2)前記データ処理装置が、前記記憶装置から前記タイミング例外指定データを読み込むステップと、
    (B3)前記データ処理装置が、前記論理回路モデルに含まれるセレクタに入力されるセレクト信号を解析し、前記セレクト信号が前記タイミング例外に関連しない場合、前記セレクタを対象セレクタとして設定するステップと、
    (B4)前記データ処理装置が、前記イネーブル信号が前記対象セレクタに入力される前記セレクト信号だけから生成されるように、前記ゲーティングセルを前記論理回路モデル内に設けるステップと
    を有する
    半導体集積回路の設計方法。
  3. 請求項2に記載の半導体集積回路の設計方法であって、
    前記クロックゲーティングの対象は、前記論理回路モデルに含まれるフリップフロップであり、
    前記(B3)ステップは、前記データ処理装置が、前記フリップフロップのファンインセルを処理対象としてトレース処理を実行するステップを有し、
    前記トレース処理は、
    (a)前記処理対象がセレクタではない場合、前記データ処理装置が、前記トレース処理を終了させるステップと、
    (b)前記処理対象がセレクタである場合、前記データ処理装置が、前記処理対象のセレクタに入力されるセレクト信号をトレースすることによって前記セレクト信号の供給元を取得するステップと、
    (c)前記供給元が前記タイミング例外として指定されている場合、前記データ処理装置が、前記トレース処理を終了させるステップと、
    (d)前記供給元が前記タイミング例外として指定されていない場合、前記データ処理装置が、前記処理対象のセレクタを前記対象セレクタとして設定するステップと
    を含む
    半導体集積回路の設計方法。
  4. 請求項3に記載の半導体集積回路の設計方法であって、
    前記トレース処理は、更に、(e)前記データ処理装置が、前記処理対象のセレクタの入力端子のうち前記セレクト信号以外の信号が入力される入力端子に接続されたファンインセルに対して、前記トレース処理を再帰的に実行するステップを含む
    半導体集積回路の設計方法。
  5. 請求項1乃至4のいずれかに記載の半導体集積回路の設計方法を前記コンピュータに実行させるための設計プログラム。
  6. 半導体集積回路のRTL記述を示すRTLデータと、タイミング例外を指定するタイミング例外指定データとが格納される記憶装置と、
    前記記憶装置から前記RTLデータを読み出し、クロックゲーティングを行うゲーティングセルを設けながら、前記RTL記述の論理合成を行うデータ処理装置と
    を備え、
    前記ゲーティングセルは、前記クロックゲーティングの対象を活性化させるイネーブル信号をクロック信号に同期してラッチするラッチ回路を備え、
    前記データ処理装置は、
    前記記憶装置から前記RTLデータを読み出し、前記RTL記述を解析することによって前記RTL記述と論理的に等価な論理回路モデルを生成する解析手段と、
    前記記憶装置から前記タイミング例外指定データを読み出し、また、前記論理回路モデルに含まれるセレクタに入力されるセレクト信号を解析し、前記セレクト信号が前記タイミング例外に関連しない場合、前記セレクタを対象セレクタとして設定するマーキング手段と、
    前記イネーブル信号が前記対象セレクタに入力される前記セレクト信号だけから生成されるように、前記ゲーティングセルを前記論理回路モデル内に設けるクロックゲーティング手段と
    を備える
    半導体集積回路の設計システム。
JP2006240361A 2006-09-05 2006-09-05 半導体集積回路の設計方法及び設計システム Expired - Fee Related JP4200465B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006240361A JP4200465B2 (ja) 2006-09-05 2006-09-05 半導体集積回路の設計方法及び設計システム
US11/846,948 US7774730B2 (en) 2006-09-05 2007-08-29 Method of and system for designing semiconductor integrated circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006240361A JP4200465B2 (ja) 2006-09-05 2006-09-05 半導体集積回路の設計方法及び設計システム

Publications (2)

Publication Number Publication Date
JP2008065457A JP2008065457A (ja) 2008-03-21
JP4200465B2 true JP4200465B2 (ja) 2008-12-24

Family

ID=39153537

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006240361A Expired - Fee Related JP4200465B2 (ja) 2006-09-05 2006-09-05 半導体集積回路の設計方法及び設計システム

Country Status (2)

Country Link
US (1) US7774730B2 (ja)
JP (1) JP4200465B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8560988B2 (en) 2010-08-13 2013-10-15 Atrenta, Inc. Apparatus and method thereof for hybrid timing exception verification of an integrated circuit design
JP5520790B2 (ja) * 2010-11-19 2014-06-11 株式会社日立製作所 設計支援装置および設計支援プログラム
JP5621792B2 (ja) * 2012-01-16 2014-11-12 カシオ計算機株式会社 半導体回路設計支援装置及び方法、並びに半導体回路設計支援プログラム
US8656326B1 (en) 2013-02-13 2014-02-18 Atrenta, Inc. Sequential clock gating using net activity and XOR technique on semiconductor designs including already gated pipeline design
US10394983B2 (en) 2017-06-14 2019-08-27 Excellicon Corporation Method to automatically generate and promote timing constraints in a Synopsys Design Constraint format
JP2023120042A (ja) * 2022-02-17 2023-08-29 ソニーセミコンダクタソリューションズ株式会社 回路変換方法、ラッチ回路、およびc素子回路

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5980092A (en) * 1996-11-19 1999-11-09 Unisys Corporation Method and apparatus for optimizing a gated clock structure using a standard optimization tool
JPH11149496A (ja) 1997-11-19 1999-06-02 Toshiba Corp ゲーテッドクロック設計支援装置、ゲーテッドクロック設計支援方法、及びゲーテッドクロック設計支援プログラムを格納したコンピュータ読み取り可能な記録媒体
US6836877B1 (en) * 1998-02-20 2004-12-28 Lsi Logic Corporation Automatic synthesis script generation for synopsys design compiler
US6457167B1 (en) * 1998-03-31 2002-09-24 Kabushiki Kaisha Toshiba Gated clock design supporting method, gated clock design supporting apparatus, and computer readable memory storing gated clock design supporting program
JP3660241B2 (ja) 2000-12-22 2005-06-15 株式会社東芝 ゲーテッドクロック設計支援装置、ゲーテッドクロック設計支援方法及び記録媒体
JP4083544B2 (ja) 2002-11-18 2008-04-30 富士通株式会社 マルチサイクルパス解析方法
US7062736B2 (en) * 2003-06-24 2006-06-13 Lsi Logic Corporation Timing constraint generator
US7530047B2 (en) * 2003-09-19 2009-05-05 Cadence Design Systems, Inc. Optimized mapping of an integrated circuit design to multiple cell libraries during a single synthesis pass
US7526745B2 (en) * 2004-12-08 2009-04-28 Telefonaktiebolaget L M Ericsson (Publ) Method for specification and integration of reusable IP constraints
US8332793B2 (en) * 2006-05-18 2012-12-11 Otrsotech, Llc Methods and systems for placement and routing
EP1916534B1 (en) * 2006-10-23 2009-12-16 Onespin Solutions GmbH Verification and generation of timing exceptions
US8196076B2 (en) * 2007-11-19 2012-06-05 Texas Instruments Incorporated Optimal flow in designing a circuit operable in multiple timing modes
US8117578B2 (en) * 2007-12-28 2012-02-14 Nec Corporation Static hazard detection device, static hazard detection method, and recording medium

Also Published As

Publication number Publication date
US7774730B2 (en) 2010-08-10
JP2008065457A (ja) 2008-03-21
US20080059938A1 (en) 2008-03-06

Similar Documents

Publication Publication Date Title
US7162706B2 (en) Method for analyzing and validating clock integration properties in circuit systems
Benini et al. Symbolic synthesis of clock-gating logic for power optimization of synchronous controllers
US7376919B1 (en) Methods and apparatuses for automated circuit optimization and verification
US7849428B2 (en) Formally deriving a minimal clock-gating scheme
US20140165022A1 (en) Relative timing architecture
US6877139B2 (en) Automated approach to constraint generation in IC design
US9953120B2 (en) Relative timing characterization
JP2009520287A (ja) マルチサイクル・クロック・ゲーティングのための方法および装置
JP4200465B2 (ja) 半導体集積回路の設計方法及び設計システム
US20080201671A1 (en) Method for generating timing exceptions
US8037443B1 (en) System, method, and computer program product for optimizing an altered hardware design utilizing power reports
Ataei et al. An open-source eda flow for asynchronous logic
US20080059923A1 (en) Lsi power consumption calculation method and calculation program
Iizuka et al. A tool set for the design of asynchronous circuits with bundled-data implementation
US9449127B1 (en) System for verifying timing constraints of IC design
US20040088662A1 (en) Timing path detailer
US10162917B1 (en) Method and system for implementing selective transformation for low power verification
US7624363B2 (en) Method and apparatus for performing equivalence checking on circuit designs having differing clocking and latching schemes
Quinton et al. Practical asynchronous interconnect network design
JP2007304699A (ja) 回路連言標準形生成方法及び回路連言標準形生成装置並びにハザードチェック方法及びハザードチェック装置
Vij Algorithms and methodology to design asynchronous circuits using synchronous CAD tools and flows
Huang On speeding up extended finite state machines using catalyst circuitry
JPH1091651A (ja) 論理合成方法および論理合成装置
Gibiluka Analysis of voltage scaling effects in the design of resilient circuits
SURENDRA KUMAR SEQUENTIAL ANALYSIS DRIVEN RESET OPTIMIZATION USING POWER PRO TOOL

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080728

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080731

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080822

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080924

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

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees