IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ルネサスエレクトロニクス株式会社の特許一覧

特開2024-22527半導体装置の設計方法、設計システムおよび記憶媒体
<>
  • 特開-半導体装置の設計方法、設計システムおよび記憶媒体 図1
  • 特開-半導体装置の設計方法、設計システムおよび記憶媒体 図2
  • 特開-半導体装置の設計方法、設計システムおよび記憶媒体 図3
  • 特開-半導体装置の設計方法、設計システムおよび記憶媒体 図4
  • 特開-半導体装置の設計方法、設計システムおよび記憶媒体 図5
  • 特開-半導体装置の設計方法、設計システムおよび記憶媒体 図6
  • 特開-半導体装置の設計方法、設計システムおよび記憶媒体 図7
  • 特開-半導体装置の設計方法、設計システムおよび記憶媒体 図8
  • 特開-半導体装置の設計方法、設計システムおよび記憶媒体 図9
  • 特開-半導体装置の設計方法、設計システムおよび記憶媒体 図10
  • 特開-半導体装置の設計方法、設計システムおよび記憶媒体 図11
  • 特開-半導体装置の設計方法、設計システムおよび記憶媒体 図12
  • 特開-半導体装置の設計方法、設計システムおよび記憶媒体 図13
  • 特開-半導体装置の設計方法、設計システムおよび記憶媒体 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024022527
(43)【公開日】2024-02-16
(54)【発明の名称】半導体装置の設計方法、設計システムおよび記憶媒体
(51)【国際特許分類】
   G06F 30/3312 20200101AFI20240208BHJP
【FI】
G06F30/3312
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023125240
(22)【出願日】2023-08-01
(31)【優先権主張番号】63/395,191
(32)【優先日】2022-08-04
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】18/323,851
(32)【優先日】2023-05-25
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】302062931
【氏名又は名称】ルネサスエレクトロニクス株式会社
(74)【代理人】
【識別番号】110002066
【氏名又は名称】弁理士法人筒井国際特許事務所
(72)【発明者】
【氏名】石山 洋
【テーマコード(参考)】
5B146
【Fターム(参考)】
5B146AA22
5B146GC04
5B146GG04
(57)【要約】
【課題】修正が容易な半導体装置の設計方法を提供する。
【解決手段】半導体装置の設計方法は、論理回路を規定するデータと、論理回路に関するタイミング制約を規定するタイミング制約データとを入力とし、タイミング制約から、遅延値を規定する制約を解釈する解釈工程と、論理回路における各経路に付与することが可能な遅延値を算出する算出工程と、算出工程で算出された遅延値を論理検証違反として検出可能な検証工程とを備えている。
【選択図】図1
【特許請求の範囲】
【請求項1】
論理回路を規定するデータと、前記論理回路に関するタイミング制約を規定するタイミング制約データとを入力とし、前記タイミング制約から、遅延値を規定する制約を解釈する解釈工程と、
前記論理回路における各経路に付与することが可能な遅延値を導出する算出工程と、
前記算出工程で算出された遅延値を論理検証違反として検出可能な検証工程と、
を備える、半導体装置の設計方法。
【請求項2】
請求項1に記載の半導体装置の設計方法において、
前記算出工程は、
前記各経路において、データを送信する送信側で用いられる送信側クロックと、データを受信する受信側で用いられる受信側クロックとを抽出するクロック抽出工程と、
前記送信側クロックと、前記受信側クロックの全ての組合せを列挙する工程と、
前記送信側と前記受信側が関わるクロック経路を抽出する経路抽出工程と、
前記送信側クロックと前記受信側クロックとで、データを伝達することが可能な最低限の遅延値を算出する遅延値算出工程と、
を備える、
半導体装置の設計方法。
【請求項3】
請求項2に記載の半導体装置の設計方法において、
前記検証工程は、論理シミュレータによる論理シミュレーションを含む、
半導体装置の設計方法。
【請求項4】
請求項3に記載の半導体装置の設計方法において、
前記論理回路を規定するデータは、RTLで記述され、前記タイミング制約データは、SDCで記述されている、
半導体装置の設計方法。
【請求項5】
請求項3に記載の半導体装置の設計方法において、
前記論理回路を規定するデータは、ネットリストで記述され、前記タイミング制約データは、SDCで記述されている、
半導体装置の設計方法。
【請求項6】
計算機と、
前記計算機に接続された入力装置と、
前記計算機に接続された表示装置と、
を備え、
ここで、前記計算機は、
論理回路を規定するデータと、前記論理回路に関するタイミング制約を規定するタイミング制約データとを入力とし、前記タイミング制約から、遅延値を規定する制約を解釈する解釈工程と、
前記論理回路における各経路に付与することが可能な遅延値を算出する算出工程と、
前記算出工程で算出された遅延値を論理検証違反として検出可能な検証工程と、
を実行する、
設計システム。
【請求項7】
請求項6に記載の設計システムにおいて、
前記計算機は、前記算出工程において、
前記各経路において、データを送信する送信側で用いられる送信側クロックと、データを受信する受信側で用いられる受信側クロックとを抽出するクロック抽出工程と、
前記送信側クロックと、前記受信側クロックの全ての組合せを列挙する工程と、
前記送信側クロックと前記受信側クロックとで、データを伝達することが可能な最低限の遅延値を算出する遅延値算出工程と、
を実行する、
設計システム。
【請求項8】
請求項7に記載の設計システムにおいて、
前記計算機は、前記検証工程において、前記論理回路の論理シミュレータを実行する、
設計システム。
【請求項9】
計算機において実行されるプログラムを格納した記憶媒体であって、
前記プログラムは、
(A) 論理回路を規定するデータと、前記論理回路に関するタイミング制約を規定するタイミング制約データとを入力とし、前記タイミング制約から、遅延値を規定する制約を解釈する解釈工程と、
(B) 前記論理回路における各経路に付与することが可能な遅延値を算出する算出工程と、
(C) 経路を抽出する経路抽出工程と、
(D) 前記算出した遅延値を元に、経路の各回路要素に遅延値を配分する、遅延値配分工程と、
(E) 前記算出工程で算出された遅延値を論理検証違反として検出可能な検証工程と、
を、前記計算機に実行させる、
記憶媒体。
【請求項10】
請求項9に記載の記憶媒体において、
前記プログラムは、前記計算機に、前記論理回路の論理シミュレーションを実行させるプログラムを備えている、
記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体装置の設計方法、設計システムおよび記憶媒体に関し、特に半導体装置に形成される論理回路に関する設計方法、当該設計方法を実行する設計システムおよび設計方法を実現するプログラムを格納した記憶媒体に関する。
【背景技術】
【0002】
所望の動作を行う論理回路を設計する場合、その動作を、ハードウェア記述言語、例えばRTL(Resister Transfer level)で記述し、RTL記述に基づいて生成される論理回路のタイミング制約を、例えばSDC(Synopsys Design Constraint)で記述し、RTL記述された回路データとSDC記述されたタイミング制約等を用いて、論理回路を生成することが行われる。RTLに関しては、例えば米国特許番号6,442,738号明細書に記載されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】米国特許番号6,442,738号明細書
【発明の概要】
【発明が解決しようとする課題】
【0004】
半導体装置の設計方法においては、SDC記述されたタイミング制約が、RTL記述に基づいて生成された論理回路において妥当であるか否かを確認するために、検証が行われる。この検証は、設計システムにおいて、RTL記述に基づいて生成された論理回路を、例えば実動作させて行われる。例えば、RTL記述に基づいて生成された論理回路のネットリスト、ネットリストに関連した遅延時間を規定するSDF(Standard Delay Format)等を用いて、実負荷論理検証を行うことで、検証が行われる。この場合、ネットリストおよびSDF等が必要とされるため、検証は、設計方法の最終工程に近いタイミングで行われることになる。そのため、検証によって不具合が発見されても、不具合を修正する工程が多くなり、修正が容易でないという課題がある。
【0005】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【0006】
一実施の形態に係る半導体装置の設計方法は、論理回路を規定するデータと、論理回路に関するタイミング制約を規定するタイミング制約データとを入力とし、タイミング制約から、遅延値を規定する制約を解釈する解釈工程と、論理回路における各経路に付与することが可能な遅延値を算出する算出工程と、算出工程で算出された遅延値を論理検証違反として検出可能な検証工程と、を備えている。
【発明の効果】
【0007】
前記一実施の形態によれば、修正が容易な半導体装置の設計方法が提供される。
【図面の簡単な説明】
【0008】
図1】実施の形態1に係る半導体装置の設計方法の概要を示すフロー図である。
図2】タイミング制約の不備の一例を説明するための図である。
図3】実施の形態1に係るステップS7_1において生成した遅延情報と、論理回路に対応するネットリストとを用いて、論理シミュレータを実施したときの波形を示す波形図である。
図4】実施の形態1に係る遅延情報の生成を説明するためのフロー図である。
図5】実施の形態1に係る設計方法の一例を説明するための図である。
図6】実施の形態1に係る設計方法の一例を説明するための図である。
図7】実施の形態1に係る設計方法の一例を説明するための図である。
図8】実施の形態1に係る設計方法の一例を説明するための図である。
図9】実施の形態1に係る設計方法の一例を説明するための図である。
図10】実施の形態1に係る設計方法の一例を説明するための図である。
図11】実施の形態1に係る設計方法の一例を説明するための図である。
図12】実施の形態2に係る設計方法を説明するための図である。
図13】実施の形態1および2に係る設計方法を説明するための図である。
図14】実施の形態1に係る設計システムの構成を示すブロック図である。
【発明を実施するための形態】
【0009】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するためのすべての図において、同一部分には原則として同一の符号を付し、その繰り返しの説明は省略する。
【0010】
(実施の形態1)
<設計システムの構成>
先ず、半導体装置を設計する際に用いられる設計システムの構成を、図面を用いて説明する。図14は、実施の形態1に係る設計システムの構成を示すブロック図である。
【0011】
図14において、1000は、設計システムを示している。設計システム1000は、コンピュータ等の計算機1001と、計算機1001に接続された表示装置1002と、計算機1001に接続された入力装置1003と、計算機1001に接続された記憶装置1004とを備えている。
【0012】
計算機1001は、記憶装置1004に格納されているプログラムに従って動作する。この動作の際に、入力装置1003および記憶装置1004によって、データ等が、計算機1001に入力され、処理される。計算機1001は、処理の結果を、例えば表示装置1002によって表示するとともに、記憶装置1004に格納する。
【0013】
記憶装置1004には、プログラムとして、半導体装置を設計するための種々の設計用プログラムが格納されている。ここでは、記憶装置1004に、設計用プログラムが格納されている場合を説明するが、これに限定されるものではない。例えば、計算機1001は、図示しないネットワークに接続されており、ネットワークを介して、設計用プログラムを取り込み、実行するようにしても良い。本明細書では、記憶装置1004もネットワークも、設計用プログラムを格納した記憶媒体と見なして、説明する。
【0014】
<半導体装置の設計方法の概要>
次に、半導体装置の設計方法の概要を、図面を用いて説明する。図1は、実施の形態1に係る半導体装置の設計方法の概要を示すフロー図である。図1に示すフローは、設計システム1000(図14)において、計算機1001が、種々の設計用プログラムを実行することで実現されるものである。
【0015】
先ず、ステップS0において、ユーザが、所望の動作を実行する論理回路の仕様を設計する。
【0016】
ステップS0において設計した仕様に基づいて、ユーザが、ステップS1において、論理回路を規定(生成)するためのRTL記述を設計する。これは、例えば図14に示した入力装置1003を用いて、ユーザが、計算機1001で、論理回路を規定するRTL記述を作成することにより実現される。これにより、論理回路を規定するRTL記述が、データDF1として準備される。
【0017】
ステップS2において、ユーザは、論理回路に関するタイミングを設計する。ステップS2における設計によって、論理回路に関するタイミング制約が生成される。これにより、論理回路に関するタイミング制約のデータDF2が準備される。
【0018】
ステップS3において、計算機1001は、データ(RTL記述)DF1と、データ(タイミング制約)DF2とを用いて、論理回路を合成する。ステップS3における合成によって、論理回路を規定するネットリストが生成され、生成されたネットリストが、データDF3として準備される。
【0019】
ステップS4において、計算機1001は、テスト容易化技術(DFT:Design For Testability)を実行する。これにより、テストを容易化するデータが生成され、生成されたデータが、データ(ネットリスト)DF3に挿入され、テスト容易化を考量したネットリストが生成される。生成されたネットリストは、データDF5として準備される。また、計算機1001は、テスト容易化技術で生成したデータに基づいた制約(以下、DFT制約とも称する)を生成し、データDF4として準備する。
【0020】
計算機1001は、ネットリストのデータDF5を用いて、ライブラリのゲート(論理セル)を選択し、選択したゲートを配置するとともに、複数のゲート間を接続する。これにより、配置されたゲートと、ゲート間を接続する配線とによって構成されたネットリストが、データDF7として準備される。また、計算機1001は、データDF7として準備されたネットリストに関する遅延情報のデータを生成し、データDF6として準備する。
【0021】
すなわち、ステップS5において、計算機1001は、予め準備されているゲートのライブラリから、データDF5のネットリストによって特定される複数のゲートを選択して、配置する。また、計算機1001は、選択されたゲート間を、データDF5のネットリストに従って接続する。これにより、データDF5のネットリストに対応した配置および配線済みのゲートに関するネットリストが、データDF7として準備される。また、計算機1001は、例えば、配線で接続したゲート間の遅延値を、遅延情報として、データDF6として準備する。なお、実施の形態1では、データDF6はSDFの形式となっている。
【0022】
ステップS6において、サインオフして、半導体装置の設計が終了する。なお、ステップS6において、データDF7とデータDF4とを用いて、計算機1001によって、タイミング検証STAを行ってもよい。
【0023】
図1に示したフローを実行することで、所望の論理回路を備えた半導体装置を製造するために必要となるデータDF6、DF7等を準備することができる。
【0024】
<比較例>
次に、SDCで記述されたタイミング制約が妥当であるか否かを、実負荷論理検証で検証する場合を、図1を用いて説明する。実負荷論理検証は、設計方法の最終工程に近いタイミングで実施される。図1においては、サインオフ(ステップS6)が行われた後、破線で示したステップS8において、実負荷論理検証が実施されている。これは、実負荷論理検証では、配置および配線済みのネットリストのデータDF7と、配線で接続したゲート間の遅延値に関する遅延情報のデータDF6とを用いて、論理回路の実動作を行うためである。すなわち、これらのデータDF6およびDF7が準備された後でないと、実負荷論理検証を実施することが困難であり、図1に示されているように、実負荷論理検証は、設計方法の最終工程付近で実施されている。
【0025】
もし、ステップS8において実施された実負荷論理検証によって、不具合が発見された場合、ユーザは、例えばステップS1やS2に戻り、RTLの設計やタイミング制約の設計を見直すことになる。見直し後、再びステップS3からS6を実行することになるため、多くの工程を実行すること必要となり、不具合を発見したときに修正工程が多くなる。
【0026】
また、実負荷論理検証は、性能的にも問題があり、大規模の論理回路に対しては実施するのは困難である。
【0027】
<タイミング制約を用いた論理検証>
実施の形態1においては、図1において破線で示したステップS8の代わりに、ステップS7が、半導体装置の設計方法において実施される。
【0028】
実施の形態1に係るステップS7は、ステップS7_1とS7_2とを備えている。ステップS7_1において、計算機1001(図14)は、データDF2であるSDCで記述されたタイミング制約と、データDF1であるRTL記述の論理回路またはデータDF3であるネットリストの論理回路とから、制約上の遅延情報を生成する。計算機1001は、生成した遅延情報を、データS7_DFとして準備する。その後、ステップS7_2において、計算機1001は、データS7_DFとして準備された遅延情報を用いて、RTL記述の論理回路またはネットリストの論理回路を模擬する論理シミュレーションを実施する。これにより、ステップS7で、実負荷論理検証と同様の検証が行われることになる。
【0029】
ステップS7_2における論理シミュレーションにおいて、不具合が発見された場合、ユーザは、例えばステップS1やS2に戻り、RTLの設計やタイミング制約の設計を見直すことになる。これにより、不具合を修正するのに、例えばステップS3~S6を再び実施しなくても済み、修正工程が多くなるのを防ぐことが可能である。例えば、ステップS7_1において、データDF2であるSDCで記述されたタイミング制約と、データDF1であるRTL記述の論理回路とを用いて、遅延情報を生成する場合には、ステップS3において、論理合成を実施しなくても、タイミング制約の検証を行うことが可能となる。
【0030】
生成した遅延情報を用いて、論理シミュレーションを実施することで、不具合が発見され、SDCで記述したタイミング制約に不備が存在することが検証される例を次に説明する。
【0031】
<<タイミング制約の不備の一例>>
図2は、タイミング制約の不備の一例を説明するための図である。一例に係る論理回路の構成は、その論理回路に対応するネットリスト(あるいはRTL)によって規定されるが、ここでは、説明を容易にするために、ネットリストによって規定された論理回路の構成を用いて説明する。図2において、LGC1は、一例に係る論理回路を示し、DS1は、論理回路LGC1に関するタイミング制約(SDCで記述されたタイミング制約)を示している。
【0032】
論理回路LGC1は、図2に示されているように、2個のフリップフロップ回路(以下、FF回路とも称する)FF1、FF2とセレクタSLとを備えている。FF回路FF1の出力は、配線によってセレクタSLの一方の入力に接続され、セレクタSLの出力は、配線によってFF回路FF2の入力に接続されている。FF回路FF2の出力は、配線によってセレクタSLの他方の入力に接続されるとともに、出力Doutとして出力される。
【0033】
セレクタSLの出力は、配線によってFF回路FF2の入力に接続されている。このセレクタSLは、セレクト信号SELに従って、一方の入力または他方の入力に供給されている信号を、FF回路FF2に供給するように、動作する。
【0034】
図2に示されているように、FF回路FF1およびFF2は、1つの共通のクロック信号CLKに同期して、データを取り込み、取り込んだデータを出力する。すなわち、FF回路FF1はクロック信号CLKの変化(例えば立ち上がり)に同期して、データ(入力Din)を取り込み、信号U1としてセレクタSLの一方の入力に供給する。また、FF回路FF2も、クロック信号CLKの立ち上がりに同期して、セレクタSLから出力されている信号を取り込み、出力する。
【0035】
論理回路LGC1に関するタイミング制約DS1は、図2に示すように、2つの記述文DS1_1およびDS1_2によって記述されている。ここで、記述文DS1_1は、クロック信号CLKの1サイクルが10(ns)であることを示し、記述文DS1_2は、FF回路FF1とFF回路FF2との間に、2サイクルのマルチサイクルのパスが存在することを示している。すなわち、図2に示したタイミング制約DS1は、論理回路LGC1において、FF回路FF1からFF回路FF2へのデータの転送が、クロック信号CLKの2サイクル(20(ns))以内であることを規定している。
【0036】
図3は、実施の形態1に係るステップS7_1において生成した遅延情報と、論理回路LGC1に対応するネットリストとを用いて、論理シミュレータを実施したときの波形を示す波形図である。図3には、時刻t1から時刻t2の間で、セレクト信号SELを、2サイクル間隔で変化させ、時刻t2以降では、セレクト信号SELを、1サイクル毎に変化させたときの状態が示されている。
【0037】
図3から理解されるように、時刻t1から時刻t2の間では、入力Dinとセレクト信号SELに従った出力Doutが、論理回路LGC1から出力されている。これに対して、時刻t2以降では、出力Doutは不定となっている。図3において、時刻t1、t2から時刻t1_D、t2_Dまでの時間は、図1に示したステップS7_1で生成した遅延情報によって定まる時間である。時刻t2_D以降も、出力Doutが不定となっていることで、不定FAI(斜線)が発生していることが、論理シミュレーションによって検出される。その結果、図2に示したタイミング制約DS1には、不備が存在することが判明する。
【0038】
<遅延情報の生成>
次に、図1のステップS7_1で説明した遅延情報の生成について、図面を用いて、より詳しく説明する。図4は、実施の形態1に係る遅延情報の生成を説明するためのフロー図である。
【0039】
図4の左側に示されているように、ステップS7_1において、計算機1001には、SDCで記述されたタイミング制約に関するデータDF2が入力される。また、ステップS7_1において、計算機1001には、RTLで記述された論理回路に関するデータDF1またはネットリストのデータDF3が入力される。ここでは、データDF1またはデータDF3が、ステップS7_1において、計算機1001に入力される例を説明するが、この2つのデータ(DF1、DF3)が混在して、計算機1001に入力されるようにしてもよい。
【0040】
ステップS7_1において、計算機1001は、ステップS7_1_0、S7_1_1およびS7_1_2を、この順で実行し、これらのステップの実行により生成した遅延情報をデータS7_DFとして、記憶装置1004(図14)に格納する。
【0041】
ステップS7_1_0において、計算機1001は、SDCで記述されているタイミング制約(データDF2)を解釈する。次にステップS7_1_1において、計算機1001は、遅延値の算出に必要な情報を生成するステップS7_CKおよびステップS7_EXを実行する。ステップS7_CKでは、計算機1001は、データDF1またはデータDF3によって規定される論理回路において用いられるクロック信号を解析する。また、ステップS7_EXでは、計算機1001は、SDCで記述されたタイミング制約(データDF3)を基にして例外制約を解析する。例外制約については、後で一例を説明するので、ここでは説明を省略する。
【0042】
その後、計算機1001は、ステップS7_1_2において、各経路に付与できる最大遅延値を算出する。ここで、経路は、データDF1またはデータDF3によって規定される論理回路において、少なくとも2つのゲート間を結ぶ経路を示している。このステップS7_1_2の詳細が、図4の右側に示されている。次に、ステップS7_1_2において、計算機1001が実行するステップS7_RT0からS7_RT5を説明する。
【0043】
<<各経路に付与できる最大遅延値を算出するステップS7_1_2の説明>>
ここでは、タイミング制約に関するデータDF1とネットリストのデータDF3とを入力として、計算機1001で最大遅延値を算出する場合を、図4を用いて説明する。ネットリストのデータDF3の代わりに、RTLで記述されたデータDF1を入力とする場合については、実施の形態2において説明するので、ここでは説明を省略する。
【0044】
ステップS7_1_2では、計算機1001が、ステップS7_RT0からS7_RT5の順にステップを実行する。ここで、最初のステップS7_RT0は、RTLで記述されたデータDFが入力された場合に、計算機1001が実行するステップであるため、後で実施の形態2において説明する。
【0045】
ステップS7_RT1において、計算機1001は、データDF3であるネットリストによって規定される論理回路において、少なくとも2つのゲート間を結ぶ経路で使用されるクロック信号を抽出する。論理回路は、通常、複数の経路を備えているため、計算機1001は、ステップS7_RT1において、経路毎に、使用されるクロック信号を抽出する。
【0046】
計算機1001は、ステップS7_RT1において抽出したクロック信号について、ステップS7_RT2において、送信側クロック信号と受信側クロック信号との全組み合わせを列挙する。すなわち、2つのゲート間を結ぶ経路をデータが伝搬する際に、当該データを送信するゲート側で使用するクロック信号を送信側クロック信号とし、当該データを受信するゲート側で使用するクロック信号を受信側クロック信号とする。これらの送信側クロック信号と受信側クロックとを一組として、計算機1001は、ステップS7_RT2において、全経路での組み合わせを列挙する。
【0047】
次に、ステップS7_RT3において、計算機1001は、送信側クロック信号と受信側クロック信号との各組み合わせで、データを送受信することができるようにするために最低限満たす必要がある遅延値を算出する。以下、この遅延値を要求時間(Required Time)とも称する。
【0048】
ステップS7_RT4において、計算機1001は、ステップS7_RT3で算出した全ての要求時間の中から、最小値を算出する。例外制約が適用されていない経路については、計算機1001は、最小値として「0」を設定する。
【0049】
ステップS7_RT5において、計算機1001は、論理回路を構成するゲート間を結ぶ経路に配分(付与)することができる最大の遅延値(最大遅延値)を算出する。計算機1001は、このステップS7_RT5で算出した最大遅延値を、遅延情報とする。
【0050】
<<<最大遅延値の算出の一例>>>
次に、ステップS7_RT1からS7_RT5を実行することで、最大遅延値を算出する例を、図面を用いて説明する。図5から図11は、実施の形態1に係る設計方法の一例を説明するための図である。ここでは、論理回路を設計する際に、ネットリストを用いる例を説明するが、説明を容易にするために、図5から図11には、ネットリストによって規定される回路の模式的な構成が示されている。
【0051】
先ず、図5を用いて、実施の形態1で設計する論理回路LGC2の構成と、論理回路LGC2に係るタイミング制約DS2とを説明する。
【0052】
論理回路LGC2は、FF回路FF1からFF4と、アンド回路ANDと、オア回路ORとを備えている。FF回路FF1からFF4のそれぞれのクロック端子には、クロック信号CLKが供給されている。FF回路FF1を例にして述べると、FF回路FF1は、クロック信号CLKの変化に同期して、データを取り込み、出力する。FF回路FF2からFF4も、FF回路FF1と同様である。
【0053】
論理回路LGC2においては、FF回路FF1とFF回路FF2の出力が、アンド回路ANDに入力され、アンド回路ANDの出力とFF回路FF3の出力とが、オア回路ORに入力され、オア回路ORの出力がFF回路FF4に入力されている。
【0054】
この論理回路LGC2に関するタイミング制約DS2には、図5に示されているように3個の記述文DS2_1からDS2_3が記述されているものとする。
【0055】
ここで、記述文DS2_1は、クロック信号CLKの1サイクルが10(ns)であることを示している。また、記述文DS2_2は、FF回路FF1とFF回路FF4との間に、3サイクルのマルチサイクルのパスが存在することを示している。すなわち、図5に示したタイミング制約DS2においては、論理回路LGC2において、FF回路FF1からFF回路FF4へのデータの転送が、クロック信号CLKの3サイクル(30(ns))以内であることが規定されている。記述文DS2_3は、FF回路FF2とFF回路FF4との間に、2サイクルのマルチサイクルのパスが存在することを示している。すなわち、論理回路LGC2において、FF回路FF2からFF回路FF4へのデータの転送が、クロック信号CLKの2サイクル(20(ns))以内であることが規定されている。
【0056】
タイミング制約DS2において、例外制約は、記述文DS2_2およびDS2_3に該当する。すなわち、タイミング制約DS2の例では、例外制約となるのは、マルチサイクルのパスが存在する部分であり、例外制約が適用されるのは、FF回路FF1とFF回路FF4とを結ぶ経路と、FF回路FF2とFF回路FF4とを結ぶ経路である。
【0057】
図5に示した論理回路LGC2およびタイミング制約DS2を用いて、計算機1001は、図4に示したステップS7_RT1からS7_RT5を実行する。
【0058】
図6は、ステップS7_RT1およびステップS7_RT2を説明するための図である。ステップS7_RT1において、各経路で使用されるクロック信号の抽出が行われる。論理回路LGC2では、図6において、符号RT_LGC2で示されているように、経路は3個である。すなわち、論理回路LGC2には、FF回路FF1とFF回路FF4とを結ぶ経路(FF1→FF4)と、FF回路FF2とFF回路FF4とを結ぶ経路(FF2→FF4)と、FF回路FF3とFF回路FF4とを結ぶ経路(FF3→FF4)とが存在している。FF回路FF1からFF回路FF4で使用されるクロック信号は、クロック信号CLKのみであるため、ステップS7_RT1が実行されることで、抽出されるクロック信号は、クロック信号CLKのみとなる。
【0059】
ステップS7_RT2の実行によって、送信側クロック信号と受信側クロック信号との全ての組み合わせが列挙される。図6において、経路(FF1→FF4)を例にして述べると、データは、FF回路FF1からFF回路FF4に向かって伝搬する。したがって、FF回路FF1が送信側ゲートに該当し、FF回路FF4が受信側ゲートに該当することになる。論理回路LGC2では、クロック信号CLKのみが用いられているため、経路(FF1→FF4)では、送信側クロック信号と受信側クロック信号との組み合わせは、クロック信号CLK→CLKとなる。他の経路も、経路(FF1→FF4)と同様であるため、ステップST7_RT2が実行されることで列挙されるものは、図6において、符号CLK_LGC2として示されているように、クロック信号CLK→CLKの組み合わせのみとなる。なお、以降の図面では、FF回路に供給されるクロック信号CLKは省略されている。
【0060】
次にステップS7_RT3の実行によって、要求時間が算出される。図7は、このステップS7_RT3を説明するための図である。
【0061】
図7では、例外制約であるマルチサイクルが適用される経路(FF1→FF4)を、符号MCP3で表し、例外制約であるマルチサイクルが適用される経路(FF2→FF4)を、符号MCP2で表している。また、例外制約が適用されない経路(FF3→FF4)は、図7では、符号SCPで表されている。
【0062】
経路MCP2およびMCP3のそれぞれに対する送信側クロック信号と受信側送信クロック信号の組み合わせは、図6に示したように、1つ(クロック信号CLK)である。そのため、クロック信号CLKで、経路MCP2およびMCP3をデータが送受信することができるようにするために必要な遅延値を、符号DS2_ANで示すように、タイミング制約DS2に基づいて算出する。
【0063】
先ず、経路MCP3では、マルチサイクルが3サイクルとなっているため、DS2_ANに示されているように、経路MCP3の遅延値は、(10(ns)+10(ns)×2)×90%=27(ns)と算出している。この算出においては、クロック信号CLKの変化タイミングのワーストケースを考え、90%を掛けている。なお、この90%は一例であって、この値に限定されるものではない。同様に、経路MCP2では、マルチサイクルが2サイクルとなっているため、経路MCP2に対する遅延値は、(10(ns)+10(ns)×1)×90%=18(ns)と算出している。ここで、90%を掛けている理由は、経路MCP3の場合と同じである。
【0064】
ステップS7_RT4の実行によって、全ての遅延値(Required Time)から最小値が算出される。図8および図9は、ステップS7_RT4を説明するための図である。
【0065】
図8において、矢印CH1の左側に示した論理回路LGC2の状態は、図7に示した論理回路LGC2の状態と同じであるため、説明を省略する。ステップS7_RT4においては、例外制約が適用されている経路と、例外制約が適用されていない経路とが、合流または分岐する場合、例外制約が適用されていない経路に対しても、遅延値を設定する。図8の左側に示した論理回路LGC2において、経路SCPが、例外制約が適用されていない経路に該当する。そのため、論理回路LGC2においては、経路SCPと経路MCP2とが、OR回路ORにおいて合流していることになる。そのため、経路SCPにも遅延値が設定される。この場合、経路SCPに設定される遅延値は、1サイクル(10(ns))×90%=9(ns)である。ここでも、90%は、前記したクロック信号CLKの変化タイミングのワーストケースを考えて定められた値である。これにより、図8において、矢印CH1の右側に示したように、経路SCP、MCP2およびMCP3のそれぞれに付与される遅延値が算出される。
【0066】
次に、計算機1001は、図9に示す処理を実行する。図9において、矢印CH1の左側に示した論理回路LGC2の状態は、図8において、矢印CH1の右側に示した論理回路LGC2の状態と類似している。相違点は、図9では、オア回路ORとFF回路FF4とを結ぶ経路が共通経路CM_Sであることが明示されていることである。すなわち、オア回路ORとFF回路FF4とを結ぶ経路(共通経路CM_S)が、例外制約が付与されていない経路SCPと、例外制約が付与された経路(MCP2、MCP3)とで共通で使用されていることを示している。
【0067】
計算機1001は、例外制約の付与されていない経路SCPの遅延値9(ns)を共通経路CM_Sの時間から減算する。計算機1001は、減算した経路SCPの遅延値を、共通経路CM_Sの遅延値として設定する。また、計算機1001は、例外制約が付与されている経路MCP2、MCP3の遅延値から、共通経路CM_Sに設定された遅延値を減算する。この減算により、経路MCP2の遅延値は、9(ns)となり、経路MCP3の遅延値は、18(ns)となる。減算により算出された遅延値9(ns)、18(ns)が、例外制約が付与されている経路MCP2、MCP3の要求時間(Required Time)の最小値となる。また、例外制約が付与されていない経路SCPの遅延値は、0(ns)となる。このときの論理回路LGC2の状態が、図9において、論理回路LGC2は、矢印CH1の右側に示されている。
【0068】
次に、図4に示したように、計算機1001は、ステップS7_RT5を実行する。ステップS7_RT5で実行される処理が、図10および図11に示されている。
【0069】
図10において、矢印CH1の左側に示した論理回路LGC2の状態は、図9において、矢印CH1の右側に示した状態と類似している。相違点は、図10では、アンド回路ANDとオア回路ORとを結ぶ経路が、共通経路CM_Mであることが明示されていることである。すなわち、例外制約が付与された経路MCP2とMCP3が、アンド回路ANDにおいて合流し、アンド回路ANDとオア回路ORとを結ぶ経路が、例外制約が付与された2つの経路で共通となっており、共通経路CM_Mであることを示している。
【0070】
計算機1001は、例外制約が付与されている経路が、ゲート(図10の例ではアンド回路AND)において合流あるいは分岐する場合、経路間でオーバーラップしている経路を共通経路CM_Mに設定し、この共通経路CM_Mの遅延値として、最小値(図10では、1サイクル×90%=9(ns))を設定する。その後、計算機1001は、ステップS7_RT4で算出した例外制約が付与されている経路MCP2、MCP3から共通経路CM_Mの遅延値を減算して、経路MCP2、MCP3の遅延値を再演算する。この再演算により、経路MCP2の遅延値は0(ns)となり、経路MCP3は9(ns)となる。
【0071】
これにより、図10において、矢印CH1の右側に示すように、FF回路FF1とアンド回路ANDとを結ぶ経路、FF回路FF2とアンド回路ANDとを結ぶ経路、アンド回路ANDとオア回路ORとを結ぶ経路、FF回路FF3とオア回路ORとを結ぶ経路およびオア回路ORとFF回路FF4とを結ぶ経路のそれぞれに配分する遅延値が算出される。図10に示した例では、FF回路FF1とアンド回路ANDとを結ぶ経路には、9(ns)の遅延値、FF回路FF2とアンド回路ANDとを結ぶ経路には、0(ns)の遅延値、アンド回路ANDとオア回路ORとを結ぶ経路には、9(ns)の遅延値が割り当てられる。また、FF回路FF3とオア回路ORとを結ぶ経路には、0(ns)の遅延値、オア回路ORとFF回路FF4とを結ぶ経路には、9(ns)の遅延値が割り当てられる。
【0072】
これにより、論理回路LGC2において、論理セル(図10では、FF回路、アンド回路およびオア回路)間に配分することができる最大遅延値が算出されることになる。なお、論理セルは、例えばネットリストで見たとき、ノードと見なすことができるため、ノード間に配分できる最大遅延値が算出されていると見なしてもよい。
【0073】
次に、計算機1001は、図11に示す処理を実行する。図11において、矢印CH1の左側に示した論理回路LGC2の状態は、図10において矢印CH1の右側に示したものと同様であるため、説明は省略する。計算機1001は、論理セル間に配分することができる最大遅延値のうち、遅延値が0(ns)を除く最大遅延値を遅延情報として出力する。図11では、計算機1001が、最大遅延値をSDFで記述して、出力する例が、矢印CH1の右側に示されている。
【0074】
すなわち、図11において、DS_SDFは、算出された最大遅延値をSDFで記述した遅延情報を示している。遅延情報DS_SDFにおいて、記述文DS_D1は、FF回路FF1の出力(Q)とアンド回路ANDの入力(A)との間を結ぶ経路の遅延値が9(ns)であることを表しており、記述文DS_D2は、アンド回路ANDの出力(Y)とオア回路ORの入力(A)との間を結ぶ経路の遅延値が9(ns)であることを表しており、記述文DS_D3は、オア回路ORの出力(Y)とFF回路FF4の入力(DATA)との間を結ぶ経路の遅延値が9(ns)であることを表している。
【0075】
計算機1001から出力された遅延情報DS_SDFは、図11において、矢印CH2の下側に示されているように、論理シミュレータに入力される。計算機1001は、この遅延情報DS_SDFを論理検証違反と判定するためのデータとして用いて、論理シミュレーションを実行することになる。すなわち、論理シミュレーションにおいて、遅延情報DS_SDFを超える遅延があった場合、論理シミュレータは、違反として判定することになる。
【0076】
(実施の形態2)
次に、ネットリストのデータDF3の代わりに、論理回路を規定するRTL記述のデータDF1が、図4に示したステップS7_1に入力される場合を、図面を用いて説明する。図12は、実施の形態2に係る設計方法を説明するための図である。ここでは、実施の形態1で説明した論理回路と同じ論理回路LGC2を設計する場合を説明する。
【0077】
RTL記述のデータDF1が、ステップS7_1に入力されると、計算機1001は、ステップS7_1_2において、先ずステップS7_RT0を実行する。
【0078】
ステップS7_RT0において、計算機1001は、制約に当たる経路をノードに設定する。その後、計算機1001は、前記したステップS7_RT1からS7_RT5を実行する。
【0079】
図12において、矢印CH3の上側にあるDS_RTL1は、論理回路LGC2を規定するRTL記述を示している。実施の形態2においては、計算機1001は、ステップS7_RT0において、RTL記述されている演算子(例えば、&、|等)をネットリストの記述で用いられる論理セル(アンド回路AND、オア回路OR等)に変換し、FF回路の出力信号をワイヤ(wire)にアサインする。また、計算機1001は、それぞれの演算子をアサインに分割し、元のRTL記述に存在する記述文(FF4 <=(FF1 & FF2)|FF3)を削除する。これにより、RTL記述DS_RTL1は、矢印CH3の下側に示すようなRTL記述DS_RTL2が生成される。RTL記述DS_RTL2において、記述文の先頭に記載されている/* added */は、その記述文が、元のRTLに追加された記述文を示している。また、RTL記述DS_RTL2において、記述文/* removed FF4 <=(FF1 & FF2)|FF3 */は、元のRTLから削除することを示している。
【0080】
その後、計算機1001によってステップS7_RT1からS7_RT5が実行されることによって、実施の形態1のときと同様にして、遅延値が算出される。算出された遅延値は、米国特許番号6,442,738号明細書に記載されて技術を用いて、付与対象のワイヤに付与される。これにより、図12において、符号LGC2で示されている論理回路のように、論理セル間に遅延値が付与されることになる。その後、論理セル間に付与された遅延値(9(ns))が、遅延情報として論理シミュレータに入力される。また、RTLの記述文によらず、設計支援にかかわる各種ツールにおける処理や操作等によって削除することもできる。
【0081】
実施の形態2によれば、論理回路がRTL記述で規定されていても、効率よく、タイミング制約を検証することが可能である。
【0082】
図13は、実施の形態1および2に係る設計方法を説明するための図である。図13を参照して、実施の形態1および2の概要を述べると、次の通りである。すなわち、ステップS1において、設計する論理回路の構成を規定する記述が作成(RTL作成)され、ステップS2において、タイミング制約を規定する記述が作成(SDC作成)される。その後、ステップS7_1において、計算機1001がプログラムを実行することで、作成されたタイミング制約を基にして、例外制約に関係するクロック信号が抽出され、抽出されたクロック信号と例外制約から、要求時間(Required Time)算出され、算出された要求時間から遅延情報が生成される。この生成された遅延情報を、検証用の制限として、計算機1001は、ステップS7_2において論理検証を実行することになる。
【0083】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【0084】
1000 設計システム
1001 計算機
1002 表示装置
1003 入力装置
1004 記憶装置
DF1~DF7 データ
S1~S8 ステップ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14