JP2006058932A - クロック変換方法 - Google Patents

クロック変換方法 Download PDF

Info

Publication number
JP2006058932A
JP2006058932A JP2004237062A JP2004237062A JP2006058932A JP 2006058932 A JP2006058932 A JP 2006058932A JP 2004237062 A JP2004237062 A JP 2004237062A JP 2004237062 A JP2004237062 A JP 2004237062A JP 2006058932 A JP2006058932 A JP 2006058932A
Authority
JP
Japan
Prior art keywords
clock
frequency
lsi
fpga
flip
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.)
Withdrawn
Application number
JP2004237062A
Other languages
English (en)
Inventor
Naoshige Kido
直茂 木戸
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2004237062A priority Critical patent/JP2006058932A/ja
Publication of JP2006058932A publication Critical patent/JP2006058932A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)
  • Logic Circuits (AREA)

Abstract

【課題】FPGAを用いたLSI設計の検証において、LSI用RTLをFPGA用RTLとして用いる際のクロックスキューの対策を行い、安定動作するFPGA評価環境を実現する。
【解決手段】基本周波数のシステムクロックで動作するフリップフロップと、基本周波数を分周した分周クロックで動作するフリップフロップとが混在するLSI回路のRTLに対して、1603で分周クロックを、分周クロックで動作するフリップフロップをシステムクロックで動作させたときに分周クロックで動作するときと等価な動作をするようにシステムクロックを条件付ける分周イネーブル信号に変換し、1605で、分周クロックで動作するフリップフロップを分周イネーブル信号を条件としてシステムクロックで動作するフリップフロップに変換してFPGA用RTLとする。
【選択図】 図16

Description

本発明はLSIまたはFPGAの設計におけるクロック変換方法に関する。
近年開発されるシステムLSIは、低消費電力化の効果的な方法としてオン/オフ制御可能な数十〜数百のクロック系統を有する構成が増えてきている。また、大規模なSoCが増加し機能も複雑になってきているため、検証手段の1つとしてFPGAを用いたボード評価が必須となっている。その際に、多数のクロック系統を持つLSI用RTLをそのままFPGA評価用RTLとして用いてボード評価を実施している。
図6はFPGAを用いて検証を行う従来のLSI設計方法を示すフロー図である。従来のLSI開発は、LSI用RTL101についてシミュレーション102を実施し、シミュレーションが完了した段階のRTLとしてSIM完了RTL103を作成する。
その段階で、シミュレーション102で確認しきれなかった項目や、実際のボード環境条件での動作を確認するために、FPGAを用いた評価を実施する。FPGA評価が完了すると、SIM完了RTL103を用いてLSI回路を合成する合成104を行い、最後にLSI試作のためのデータを出力するテープアウト105を行う。
このFPGA評価においては、LSIのシミュレーションで検証したSIM完了RTL103をそのままFPGAを製作するためのFPGA用RTL107として流用している。これを用いてFPGAマッピング108においてFPGAデバイスにRTLの割り付けを行い、製作されたFPGAを評価ボードに実装し、FPGA評価109を実施する。
FPGA評価109では回路の問題点を抽出し、その修正内容110を早期に明確にし、LSI用RTLに対して反映111を行う必要がある。しかしながら、実際にはFPGA内で発生するクロックスキューによる誤動作112が多発し、LSI用RTL101に対する修正内容110を早期に明確にする工程の妨げになっている。
一方、近年のLSIの動作クロック周波数の向上は著しく、LSIの回路の大規模化と相まって、クロックスキュー対策がLSI設計における重要な鍵となっている。そのため、従来FPGA等を含め各種LSI設計に対応可能なクロックスキュー対策回路が提案されている(例えば、特許文献1参照)。
特開平11−272353
従来の各種クロックスキュー対策は有効な手段ではあるが、クロック系統を数十〜数百も有するLSI用RTLをそのままFPGA用RTLとして用いる場合は、クロックスキュー対策が可能なクロック系統が現状のFPGAにおいては数〜10本と少ないため、クロックスキュー対策が割り当てられなかったクロック系統に起因するクロックスキュー誤動作が多発している。
次に、クロックスキューによる上記誤動作の内容を具体的な回路構成とタイミングチャートを用いて説明する。図2は従来の設計方法によるLSIのクロック系統の構成を示すブロック図であり、図3はそのタイミングチャートである。
図2において、201は従来の設計方法によるLSIで、概略の構成としては、外部からのシステムクロック信号202を受ける入力バッファ203、入力されたシステムクロックを分周するクロック生成ブロック204、LSI内部システムクロック205がフリップフロップ(以下、FFと略記)のクロックピンに接続されるシステムクロック系FFブロック206、システムクロックを2分周した2分周クロック207がFFのクロックピンに接続される2分周クロック系FFブロック208、システムクロックをn分周したn分周クロック209がFFのクロックピンに接続されるn分周クロック系FFブロック210がある。
また、クロック生成ブロック204において、223はLSI内部システムクロックを2分周する分周回路、224はLSI内部システムクロックをn分周する分周回路であり、220、221、222は、クロックの立ち上がりエッジをそろえるために各クロックの出力位置に挿入されたクロックタイミング調整バッファである。
システムクロック系FFブロック206にはRTL記述のモジュールS−1(211)〜モジュールS−m(212)があり、2分周クロック系FFブロック208にはRTL記述のモジュール2−1(213)〜モジュール2−m(214)があり、n分周クロック系FFブロック210にはRTL記述のモジュールn−1(215)〜モジュールn−m(216)がある。
モジュール211、212、213、214、215、216のFF周辺の構成は同様の構成であり、モジュールS−1(211)を例に取ると、FF217、FF217のクロックピンに供給するクロックをモジュールに入力するクロック入力端子218、クロックの立ち上がりエッジでFF217の保持内容を更新するデータを供給する論理219からなる。
ここで、LSIに内蔵されるFF同士が互いに正常にデータを受け渡しできる必要があり、そのためには、LSI内部システムクロック205と2分周クロック207とn分周クロック209の立ち上がりエッジがそろっていることが必要であり、クロックタイミング調整バッファ220、221、222でタイミング調整を行っている。
図3は、システムクロックを分周した2分周クロック、4分周クロック、n分周クロック、およびLSI内部システムクロックの各クロックの立ち上がりエッジがそろっていることを示したものである。
図4は、図6の103に示すSIM完了RTL、例えば、図2に示したLSI回路のRTLをそのままFPGA用RTLとして用いた場合におけるFPGAのクロック系統の構成を示すブロック図である。LSI用RTLをFPGA用RTLとしてそのまま用いたので、機能的には同じ内容になっている。
ただし、クロックの扱いについては異なっている。LSIでは全ての同期すべきクロック系統については、クロックバッファのタイミング調整により、立ち上がりエッジがそろうように実装可能であるが、FPGAでは、FPGAのデバイスとしての制約で、立ち上がりエッジをそろえることができるクロックの本数に制限があり、全てのクロック系同士の立ち上がりエッジをそろえることができない構成になっている。図4では、401がクロックの立ち上がりエッジがそろったクロックのグループで、402がクロックの立ち上がりが401のグループとそろっていないグループを示している。
図5はその様子を示すタイミングチャートである。すなわち、FPGA内部システムクロックを分周した2分周クロックと内部システムクロックの立ち上がりエッジがそろっているが、4分周クロックとn分周クロックについては、それぞれがそろっていない様子を示している。
実際にこのような問題が多発し、LSI用RTLに対する検証の妨げになっている。このように、FPGAを用いたLSI設計の検証において、設計による不具合とクロックスキューによる不具合が混在することになり、その状況で不具合箇所の特定と対策に多大な工数を要しており、LSI開発日程にも影響を与えている。
本発明は、FPGAを用いたLSI設計の検証において、LSI用RTLをFPGA用RTLとして用いる際のクロックスキューの対策方法を提案し、安定動作するFPGA評価環境を実現することでLSIの設計期間を短縮することを目的とする。
本発明のクロック変換方法は、基本周波数のシステムクロックで動作するフリップフロップと、前記基本周波数を分周周波数に分周した分周クロックで動作するフリップフロップとが混在する回路におけるクロック変換方法であって、前記分周クロックを、前記分周クロックで動作するフリップフロップを前記システムクロックで動作させたときに前記分周クロックで動作するときと等価な動作をするように前記システムクロックを条件付ける分周イネーブル信号に変換し、前記分周クロックで動作するフリップフロップを前記分周イネーブル信号を条件として前記システムクロックで動作するフリップフロップに変換するものである。
上記クロック変換方法によれば、分周クロックがシステムクロックの整数分周比である場合に完全な論理等価性を実現することができ、かつ変換後の全てのFFは1系統のシステムクロックにより動作するため、FPGAを用いたLSI設計の検証においてLSI用RTLに上記クロック変換方法を施してFPGA用RTLとすることにより、FPGAの回路構成として最も推奨される回路構成で評価することができ、FPGA評価回路の安定動作が期待できることで、FPGAの評価期間のみならずLSIの設計期間を短縮することができる。
また、本発明のクロック変換方法は、基本周波数のシステムクロックで動作するフリップフロップと、前記基本周波数の分周周波数でフリップフロップを動作させるように前記システムクロックを条件付ける分周イネーブル信号を条件として前記システムクロックで動作するフリップフロップとが混在する回路におけるクロック変換方法であって、前記分周イネーブル信号を、前記基本周波数を前記分周周波数に分周した分周クロックに変換し、前記分周イネーブル信号を条件として前記システムクロックで動作するフリップフロップを、前記分周クロックで動作させたときに前記システムクロックで動作するときと等価な動作をする、前記分周クロックで動作するフリップフロップに変換するものである。
上記クロック変換方法によれば、FPGAを用いたLSI設計の検証において、FPGA用RTLに上記クロック変換方法を施してLSI用RTLとすることにより、FPGAの評価結果を直接FPGA用RTLに反映し、それをFPGA評価が完了した段階でLSI用RTLへ変換することができるため、FPGA評価期間およびLSI設計期間の短縮が図ることが出来る。
本発明において、前記分周イネーブル信号は前記分周周波数を有し、前記システムクロックの1パルス分のクロック幅を有する信号であるようにするものである。
本発明において、前記分周イネーブル信号を条件として前記システムクロックで動作するフリップフロップは、一方の入力が前記フリップフロップの出力に接続され、前記分周イネーブル信号により選択が切り替わる選択回路を前記フリップフロップのデータ入力に挿入した回路で実現するものである。
本発明において、前記分周クロックで動作するフリップフロップを有する回路はLSIの回路であり、前記分周イネーブル信号を条件として前記システムクロックで動作するフリップフロップを有する回路はFPGAの回路であるものである。
本発明によれば、基本周波数を分周した分周クロックを多数用いるLSI回路においても、FPGAのクロック専用ラインの本数制限を意識することなく、クロックスキューによるFPGA誤動作を回避し、FPGA評価をスムーズに実施する環境を提供することができるため、FPGA評価期間を短縮し、総合的にLSI設計期間の短縮を図ることができる。また、エミュレーション環境に適用することで、エミュレーション動作が安定し、検証期間の短縮を図ることができる。
(実施の形態1)
図1は本発明の実施の形態1に係るクロック変換方法を採用したFPGAを用いて検証を行うLSI設計方法を示すフロー図である。LSI開発では、LSI用RTL101についてシミュレーション102を実施し、シミュレーションが完了した段階のRTLとしてSIM完了RTL103を作成する。
その段階で、シミュレーション102で確認しきれなかった項目や、実際のボード環境条件での動作を確認するために、FPGAを用いた評価を実施する。ここで、LSIのシミュレーションで検証したSIM完了RTL103に対してクロック変換ツール106を用いてクロック変換を行い、出力されたFPGA用RTL107を使用してFPGAを製作する。
すなわち、FPGAマッピング108においてFPGAデバイスにRTLの割り付けを行い、製作されたFPGAを評価ボードに実装しFPGA評価109を実施する。FPGA評価が完了すると、SIM完了RTL103を用いてLSI回路を合成する合成104を行い、最後にLSI試作のためのデータを出力するテープアウト105を行う。
ここで、FPGA評価109では従来で発生していたクロックスキューに起因する誤動作の発生が無いため、FPGA評価109で回路の問題点を抽出し、その修正内容110を早期に明確にし、LSI用RTLに対して反映111を行うことができる。
次に、クロックスキューによる誤動作を防ぐ仕組みを具体的な回路構成とタイミングチャートを用いて説明する。図7は本実施形態のクロック変換方法を適用するための設計方法によるLSIのクロック系統の構成を示すブロック図である。
図7において、701は本実施形態の設計方法によるLSIで、概略の構成としては、外部からのシステムクロック信号202を受ける入力バッファ203、入力されたシステムクロックを分周するクロック生成ブロック704、LSI内部システムクロック205がFFのクロックピンに接続されるシステムクロック系FFブロック206、システムクロックを2分周した2分周クロック707がFFのクロックピンに接続される2分周クロック系FFブロック708、システムクロックをn分周したn分周クロック709がFFのクロックピンに接続されるn分周クロック系FFブロック710がある。
また、クロック生成ブロック704において、723はLSI内部システムクロックを2分周する分周回路、724はLSI内部システムクロックをn分周する分周回路であり、220、221、222は、クロックの立ち上がりエッジをそろえるために各クロックの出力位置に挿入されたクロックタイミング調整バッファである。
従って、図2と異なる部分はクロック生成ブロック704の分周回路723と724、および2分周クロック系FFブロック708とn分周クロック系FFブロック710のみである。
2分周クロック系FFブロック708はモジュール2−1(713)〜モジュール2−m(714)からなる。モジュール2−1(713)は、図2のモジュール2−1(213)と回路的には同じであるが、モジュールの分周クロックピン725とは別のピン726にLSI内部システムクロック205が接続されており、モジュール内ではオープンに処理されている。モジュール714、715、716についても同様である。
このように、システムクロック系FFブロック206以外の分周クロック系FFブロックについて、モジュールの分周クロックピンとは別のピンにLSI内部システムクロック205を接続し、モジュール内ではオープンに処理することで、クロック変換ツール106を用いたクロック変換に備える。
図8はLSI701のクロックとFFの動作を説明するタイミングチャートである。図8において、801はLSI内部システムクロック205の波形、802はLSI内部システムクロック205で動作するFFの出力である。
さらに、803はLSI内部システムクロックを2分周しLow側のデューティがシステムクロック1周期分のみとした2分周クロック707の波形、804は2分周クロック707で動作するFFの出力、同様に、805と806はそれぞれ4分周クロックと関連するFFの出力、807と808はそれぞれn分周クロックと関連するFFの出力である。図2のLSI201の場合と比較すると、クロック波形は異なるが周期は同一であり、FFの動作としては何ら変わりなく機能等価と言える。
図9はモジュール715の詳細回路図である。図9において、902はモジュール715に入力される分周クロックピン、903は分周クロックが接続されるFF、904はFF903に入力データを与える論理回路、905はLSI内部システムクロック205が接続され内部でオープン処理されるLSI内部システムクロックピンを示している。
図10は図7のLSI701に対して本実施形態のクロック変換方法を適用した後のFPGA用RTLを使用して製作されたFPGA1001のクロック系統の構成を示すブロック図である。
図10において、2分周イネーブル系FFブロック708のモジュール2−1(713)〜モジュール2−m(714)が2分周イネーブル系FFブロック1008のモジュール2−1(1013)〜モジュール2−m(1014)に変換され、n分周イネーブル系FFブロック710のモジュールn−1(715)〜モジュールn−m(716)がn分周イネーブル系FFブロック1010のモジュールn−1(1015)〜モジュールn−m(1016)に変換されている。
また図7では分周クロックとしていた信号線707、709を、図10においてはデータとしてのエネーブル信号線1007、1009とするために、クロックタイミング調整バッファ221、222に代えて遅延回路1021、1022を付加している。
図11は図9に対応し、モジュール715のクロック変換後の詳細回路図である。変換内容としては、FF903と論理回路904の間にセレクタ901を挿入し、分周クロックのLowレベル時に論理回路904の出力によりFF903を更新し、分周クロックのHighレベル時にFF903の値を保持するようにしている。
モジュール2−1(1013)を例にとって説明すると、もともと2分周クロックが供給されていた2分周イネーブルピン725には、2分周回路723からクロックの代わりに遅延バッファ1007を介したイネーブル信号が供給される。
また、もともとLSI内部システムクロック205が接続され、モジュール内ではオープン処理されていたピン726は、モジュール内でFFのクロック入力ピンに接続される。これらは、他のモジュールについても同様である。
これにより、システムクロック系FFブロック206と、2分周イネーブル系FFブロック1008と、n分周イネーブル系FFブロック1010に含まれる全FFのクロック入力ピンに接続されるクロック信号は、LSI内部システムクロック205の1系統となる。
このように変換することで、全FFがLSI内部システムクロック205で動作するため、システムクロック系FFブロック206、2分周イネーブル系FFブロック1008、n分周イネーブル系FFブロックFF1010が互いに安定した正常なデータを受け渡すことが可能となる。
図12はFPGA1001のクロックとFFの動作を説明するタイミングチャートである。図12において、801はLSI内部システムクロック205の波形、802はLSI内部システムクロック205で動作するFFの出力で、図8の801、802と同じ波形である。
さらに、813は2分周クロック波形803を遅延した2分周イネーブル信号、815は4分周クロック波形805を遅延した4分周イネーブル信号、817はn分周クロック波形807を遅延したn分周イネーブル信号である。
また、図12の804、806、808はLSI内部システムクロック205で動作するFFの出力で、図8の804、806、808と同じ波形である。これらの各FFの出力に着目すると、システムクロックの整数分周比のイネーブルによるFFの値の更新については図7のLSI701の場合と何ら変わりなく、機能等価と言える。
次に、図13〜図15を用いて、LSI701のRTL記述からFPGA1001のRTL記述への変換方法を説明する。図13は図9に示したクロック変換前のLSI701におけるモジュール715のFF部分のRTL記述であり、符号は図9に対応している。
図13において、902は分周クロック入力ピン、905はモジュール外部からの内部システムクロック端子の記述である。905はモジュール内でオープン処理されているため、この信号名はFFの動作記述に現れない。903の文はFFの動作記述であり、902の分周クロック入力が1303でFFのクロック入力として記述されている。
さらに、1301、1302は特別なコメント文で、このコメント文が付加された「always ・・・ begin 〜 end」がクロック変換の対象FFであることを示している。システムクロック系FFブロック206のモジュール内のFFは、もともと分周クロックではなくLSI内システムクロックで動作しているため、クロック変換の必要がないので1301、1302のコメント文は付加しない。また、1304の「begin ・・・ end」は論理回路904のRTL記述である。
図14は図13のRTL記述に対するクロック変換後のFPGA1001におけるモジュール1015のFF部分のRTL記述である。符号が図9および図13に対応する箇所は図13と同様であるので説明を省略する。
変換後は905のシステムクロック入力が1401でFFのクロックとして記述されている。1402と1404の「if ・・・ begin 〜 end」はクロック変換で追加された箇所で、セレクタ901において分周クロック入力ピンに入力する分周イネーブル信号により、システムクロックで動作するFF903が論理回路904の出力データに値を更新するか、それまでの値を保持するかを選択する選択回路を構成している。
セレクタ901によるFF903データの更新/保持の切り替えは、1403の「!clk1m536」が示すように、分周クロックのLowレベル時にシステムクロックのエッジで論理回路904の出力により値を更新し、分周クロックのHighレベル時にシステムクロックのエッジで自身の値を再入力することで実現している。
図15は本実施形態のクロック変換方法を実行するクロック変換ツールの処理内容を示したフローチャートである。このクロック変換は分周クロック系FFブロックのモジュールのRTL記述に対して行うものである。
図15において、1501は「“always”〜“begin”〜“// sync”が認識できたか」を判定するステップ、1502は1501がNO判定のときに実施される評価対象文の出力ステップ、1503は1501がYES判定のときに実施される「posegeで定義されているクロック信号名を記憶」するステップ、1504は1503の処理結果を記憶するステップである。
さらに変換処理に進み、1505は「always(posedge<システムクロック名>or negedge nrst)begin // syncを表示」するステップ、1506は「“else begin”が認識できたか」を判定するステップ、1507は1506がNO判定のときに実施される評価対象文の出力ステップ、1508は1506がYESのときに実施される「“if(!<分周クロック>) begin // sync”を表示」するステップ、1509は「“end”が認識できたか」を判定するステップ、1510は1509がNO判定のときに実施される評価対象文の出力ステップ、1511は1509がYES判定のときに実施される評価対象文の出力ステップ、1512は「“end”〜“// sync”が認識できたか」を判定するステップ、1513は1512がNO判定のときに実施される評価対象文の出力ステップ、1514は1512がYES判定のときに実施される「“endmodule”が認識できたか」を判定するステップ、1515は1514がYES判定のときに実施される評価対象文の出力ステップである。
以上のように、本実施形態のクロック変換ツールは、LSI回路RTLにおいて、分周クロック系FFブロックの変換対象モジュールに対して、FFを動作させるクロックの立ち上がり/立ち下がりエッジの前でシステムクロック1周期分の区間をLow/High状態にした波形を分周クロックとして供給することと、変換対象のモジュールにシステムクロックをオープン処理で供給することと、変換対象モジュールのRTLに対して、図15に示す変換処理を施すことにより、容易にFPGA用RTLを生成することができ、クロックスキューに起因する誤動作を実質的に排除したFPGA評価環境を提供し、FPGA評価期間の短縮と、LSI設計期間の短縮を図ることができる。
(実施の形態2)
図16は本発明の実施の形態2に係るクロック変換方法を実行するクロック変換ツールの処理内容を示したフローチャートである。実施の形態1では、図9に示したように、変換対象のモジュールにシステムクロックをオープン処理接続しておく必要があったが、実施の形態2ではシステムクロックピンに関する処理も含めて自動化するものである。
図16において、1601は「変換対象の“always文”が認識できたか」を判定するステップ、1602は1601がNO判定のときに実施される後処理ステップ、1603は1601がYES判定のときに実施される「分周クロックをシステムクロックに変換」するステップである。
ここで、ステップ1601において変換対象の「always文」を構文解析により自動認識することで、実施の形態1のコメント文を付加することを不要にしている。また、ステップ1603においてシステムクロックピンに関する処理が自動化され、図2に示した従来のLSI回路のRTLを自動的に図10に示したFPGA回路のRTLに変換することができる。
これ以降の処理は実施の形態1と同じであるが、1604は「対象FF更新出力論理を認識」するステップ、1605は「分周イネーブルによるFF更新/保持選択回路を挿入」するステップ、1606は「対象alwaysが終わったか」を判定するステップ、1607は1606がYES判定のときに実施される「対象モジュールが終わったか」を判定するステップである。
以上のように、本実施形態のクロック変換ツールは、実施の形態1のクロック変換ツールに比べて、予めLSI用RTLに記述しておく必要があった対象「always」を認識するための目印の記述や、変換対象モジュールに記載しておくオープン処理したシステムクロックピンの記述を不要にすることができるため、FPGA評価期間およびLSI設計期間をさらに短縮することができる。
(実施の形態3)
図17は本発明の実施の形態3に係るクロック変換方法を採用したLSI設計方法を示すフロー図である。本実施形態は実施の形態1および実施の形態2と基本的に同じであるが、LSI用RTLからFPGA用RTLへのクロック変換に加え、さらにFPGA用RTLからLSI用RTLへのクロック変換を追加した点が異なる。
すなわち、図17において、クロック変換ツール1701は、LSI用RTL101からFPGA用RTL107へのクロック変換を行うとともに、FPGA用RTL107からLSI用RTL101へのクロック変換を行う機能も備えている。
図18は本発明の実施の形態3に係るクロック変換方法のうち、FPGA用RTLからLSI用RTLへの変換するクロック変換ツールの処理内容を示したフローチャートである。すなわち、本実施形態はクロック変換方法として、図16のフローに図18のフローを加えた処理内容となる。
図18において、1801は「変換対象の“always文”が認識できたか」を判定するステップ、1802は1801がNO判定のときに実施される後処理ステップ、1803は1801がYES判定のときに実施される「システムクロックを分周クロックに変換」するステップである。
さらに、1804は「対象FF更新出力論理を認識」するステップ、1805は「分周イネーブルによるFF更新/保持選択回路を削除」するステップである。以上において、ステップ1803とステップ1805によりFPGA用RTLからLSI用RTLへのクロック変換が行われる。
以降は図16と同様にフローの制御ステップであり、1806は「対象alwaysが終わったか」を判定するステップ、1807は1806がYES判定のときに実施される「対象モジュールが終わったか」を判定するステップである。
以上のように、本実施形態のクロック変換ツールは、実施の形態2のクロック変換ツールに、さらにFPGA用RTLからLSI用RTLへのクロック変換を追加されているため、FPGAを用いたLSI設計の検証の際に、FPGA用RTLに施した修正をLSI用RTLに反映させることが容易になり、FPGA評価期間およびLSI設計期間をさらに短縮することができる。
(エミュレータへの適用)
図19は、本発明のいずれかの実施形態によるクロック変換ツールを適用したエミュレータの概要を示した図である。図19において、1901は本発明のクロック変換ツールを適用したエミュレータ、1902はエミュレーション対象のLSI用RTL、1903は本発明のクロック変換ツール、1904はクロック変換ツール1903から出力されるエミュレータ用RTLを格納する手段、1905は格納された1904の内容をエミュレータ回路としてマッピング手段、1906は1905でマッピングされた回路のエミュレーションを実行する手段、1907はエミュレータ1901から出力されるエミュレーション結果である。
本発明の実施形態によるクロック変換ツールを適用したエミュレータは、クロックスキューに起因する誤動作を排除できるため、LSI開発におけるエミュレーション検証期間短縮や、エミュレーション品質の向上、クロックスキュー誤動作対策回路削減などの面で高い効果を得ることができる。
本発明のクロック変換方法は、基本周波数を分周した分周クロックを多数用いるLSI回路においても、FPGAのクロック専用ラインの本数制限を意識することなく、クロックスキューによるFPGA誤動作を回避し、FPGA評価をスムーズに実施する環境を提供することができるため、FPGA評価期間を短縮し、総合的にLSI設計期間の短縮を図ることができるという効果を有し、LSIまたはFPGAの設計におけるクロック変換技術として有用である。
本発明の実施の形態1に係るクロック変換方法を採用したFPGAを用いて検証を行うLSI設計方法を示すフロー図。 従来の設計方法によるLSIのクロック系統の構成を示すブロック図。 従来の設計方法によるLSIのクロック系統のタイミングチャート。 LSI用RTLをFPGA用RTLとして用いた場合のFPGAのクロック系統の構成を示すブロック図。 LSI用RTLをFPGA用RTLとして用いた場合のFPGAのクロック系統のタイミングチャート。 FPGAを用いて検証を行う従来のLSI設計方法を示すフロー図。 本発明の実施の形態1に係るクロック変換方法を適用するLSIのクロック系統の構成を示すブロック図。 本発明の実施の形態1に係るクロック変換方法を適用するLSIにおけるクロックとFFの動作を説明するタイミングチャート。 本発明の実施の形態1に係るクロック変換方法を適用するLSIにおけるモジュールの詳細回路図。 本発明の実施の形態1に係るクロック変換方法を適用した後のFPGA用RTLを使用して製作されたFPGAのクロック系統の構成を示すブロック図。 本発明の実施の形態1に係るクロック変換方法を適用した後のモジュールの詳細回路図。 本発明の実施の形態1に係るクロック変換方法を適用した後のFPGA用RTLを使用して製作されたFPGAのクロックとFFの動作を説明するタイミングチャート。 本発明の実施の形態1に係るクロック変換前のLSIのモジュールにおけるFF部分のRTL記述。 本発明の実施の形態1に係るクロック変換後のFPGAのモジュールにおけるFF部分のRTL記述。 本発明の実施の形態1に係るクロック変換ツールの処理内容を示したフローチャート。 本発明の実施の形態2に係るクロック変換ツールの処理内容を示したフローチャート。 本発明の実施の形態3に係るクロック変換方法を採用したLSI設計方法を示すフロー図。 本発明の実施の形態3に係るクロック変換方法のうち、FPGA用RTLからLSI用RTLへの変換するクロック変換ツールの処理内容を示したフローチャート。 本発明のクロック変換ツールを適用したエミュレータの概要を示す図。
符号の説明
101 LSI用RTL
102 シミュレーション
103 SIM完了RTL
104 合成
105 テープアウト
106、1701 クロック変換ツール
107 FPGA用RTL
108 FPGAマッピング
109 FPGA評価
110 修正内容
111 LSI用RTLに対する修正内容の反映
112 クロックスキューによる誤動作
201 LSI
202 システムクロック信号
203 入力バッファ
204 クロック生成ブロック
205 LSI内部システムクロック
206 システムクロック系FFブロック
207 2分周クロック
208 2分周クロック系FFブロック
209 n分周クロック
210 n分周クロック系FFブロック
211 モジュールS−1
212 モジュールS−m
213 モジュール2−1
214 モジュール2−m
215 モジュールn−1
216 モジュールn−m
217 FF
218 クロック入力端子
219 論理回路
220 LSI内部システムクロックバッファ
221 2分周クロックバッファ
222 n分周クロックバッファ
223 LSI内部システムクロックを2分周する分周回路
224 LSI内部システムクロックをn分周する分周回路
401 立ち上がりエッジがそろったクロックグループ
402 立ち上がりエッジがそろっていないクロックグループ
701 LSI
704 クロック生成ブロック
707 2分周クロック
708 2分周クロック系FFブロック
709 n分周クロック
710 n分周クロック系FFブロック
723 分周回路
724 分周回路
713 モジュール2−1
714 モジュール2−m
715 モジュールn−1
716 モジュールn−m
725 モジュールの分周クロックピン
726 モジュールのシステムクロックピン
801 LSI内部システムクロック波形
802 LSI内部システムクロックで動作するFFの出力波形
803 2分周クロック波形
804 2分周クロックで動作するFFの出力波形
805 4分周クロック波形
806 4分周クロックで動作するFFの出力波形
807 n分周クロック波形
808 n分周クロックで動作するFFの出力波形
813 2分周イネーブル信号波形
815 4分周イネーブル信号波形
817 n分周イネーブル信号波形
901 セレクタ
902 モジュールの分周クロックピン
903 FF
904 論理回路
905 モジュールのLSI内部システムクロックピン
1001 クロック変換後のFPGA回路
1007 2分周イネーブル
1008 2分周イネーブル系FFブロック
1009 n分周イネーブル
1010 n分周イネーブル系FFブロック
1013 モジュール2−1
1014 モジュール2−m
1015 モジュールnー1
1016 モジュールn−m
1021、1022 遅延回路
1301〜1304、1401〜1404 RTL記述の参照箇所
1501〜1515、1601〜1607、1801〜1807 ステップ
1901 本発明のクロック変換ツールを適用したエミュレータ
1902 エミュレーション対象のLSI用RTL
1903 本発明のクロック変換ツール
1904 エミュレータ用RTLを格納する手段
1905 エミュレータ回路マッピング手段
1906 エミュレーション回路実行手段
1907 エミュレーション結果

Claims (10)

  1. 基本周波数のシステムクロックで動作するフリップフロップと、前記基本周波数を分周周波数に分周した分周クロックで動作するフリップフロップとが混在する回路におけるクロック変換方法であって、
    前記分周クロックを、前記分周クロックで動作するフリップフロップを前記システムクロックで動作させたときに前記分周クロックで動作するときと等価な動作をするように前記システムクロックを条件付ける分周イネーブル信号に変換し、
    前記分周クロックで動作するフリップフロップを前記分周イネーブル信号を条件として前記システムクロックで動作するフリップフロップに変換するクロック変換方法。
  2. 基本周波数のシステムクロックで動作するフリップフロップと、前記基本周波数の分周周波数でフリップフロップを動作させるように前記システムクロックを条件付ける分周イネーブル信号を条件として前記システムクロックで動作するフリップフロップとが混在する回路におけるクロック変換方法であって、
    前記分周イネーブル信号を、前記基本周波数を前記分周周波数に分周した分周クロックに変換し、
    前記分周イネーブル信号を条件として前記システムクロックで動作するフリップフロップを、前記分周クロックで動作させたときに前記システムクロックで動作するときと等価な動作をする、前記分周クロックで動作するフリップフロップに変換するクロック変換方法。
  3. 前記分周イネーブル信号は前記分周周波数を有し、前記システムクロックの1パルス分のクロック幅を有する信号である請求項1または2記載のクロック変換方法。
  4. 前記分周イネーブル信号を条件として前記システムクロックで動作するフリップフロップは、一方の入力が前記フリップフロップの出力に接続され、前記分周イネーブル信号により選択が切り替わる選択回路を前記フリップフロップのデータ入力に挿入した回路で実現されたものである請求項1または2記載のクロック変換方法。
  5. 前記分周クロックで動作するフリップフロップを有する回路はLSIの回路であり、前記分周イネーブル信号を条件として前記システムクロックで動作するフリップフロップを有する回路はFPGAの回路である請求項1または2記載のクロック変換方法。
  6. 請求項1から5のいずれか一項記載のクロック変換方法を実施するクロック変換ツール。
  7. 請求項1から5のいずれか一項記載のクロック変換方法または請求項6記載のクロック変換ツールを用いて設計されたFPGA。
  8. 請求項1から5のいずれか一項記載のクロック変換方法または請求項6記載のクロック変換ツールを用いて設計されたLSI。
  9. 請求項7記載のFPGAを用いたエミュレータ。
  10. 請求項7記載のFPGAまたは請求項8記載のLSIを用いて設計された機能システム。
JP2004237062A 2004-08-17 2004-08-17 クロック変換方法 Withdrawn JP2006058932A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004237062A JP2006058932A (ja) 2004-08-17 2004-08-17 クロック変換方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004237062A JP2006058932A (ja) 2004-08-17 2004-08-17 クロック変換方法

Publications (1)

Publication Number Publication Date
JP2006058932A true JP2006058932A (ja) 2006-03-02

Family

ID=36106380

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004237062A Withdrawn JP2006058932A (ja) 2004-08-17 2004-08-17 クロック変換方法

Country Status (1)

Country Link
JP (1) JP2006058932A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009048367A (ja) * 2007-08-17 2009-03-05 Oki Electric Ind Co Ltd 回路設計方法、ならびにその方法により製造される集積回路

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009048367A (ja) * 2007-08-17 2009-03-05 Oki Electric Ind Co Ltd 回路設計方法、ならびにその方法により製造される集積回路

Similar Documents

Publication Publication Date Title
US6536031B2 (en) Method for generating behavior model description of circuit and apparatus for logic verification
KR20090009915A (ko) 동기 회로 설계 표현과 비동기 회로 설계 표현간의 자동 변환을 수행하기 위한 시스템 및 방법
JP2009517764A (ja) 階層的soc設計でマージするタイミング規制
US7617469B2 (en) Assertion description conversion device, method and computer program product
JP2006048525A (ja) シミュレーション方法
US20090271747A1 (en) Logic circuit designing device, logic circuit designing method and logic circuit designing program for asynchronous logic circuit
US6518788B2 (en) Logic circuit design method and logic circuit
US8074192B2 (en) Verification support apparatus, verification support method, and computer product
TWI279698B (en) Preprocessor, IC design system and IC design method
CN116681011B (zh) 时间违例修复方法、装置、计算机设备及存储介质
JP2002366602A (ja) ソフトウエア及びハードウエアのシミュレーション方法及びシステム並びにプログラム
US7084685B2 (en) Method and related apparatus for outputting clock through a data path
JP2006058932A (ja) クロック変換方法
JP4231837B2 (ja) クロックツリー生成装置、クロックツリー生成方法、クロックツリー生成プログラムおよび記録媒体
JP5104356B2 (ja) 検証支援プログラム、検証支援装置、および検証支援方法
US7225419B2 (en) Methods for modeling latch transparency
US20230205969A1 (en) Techniques for modeling and verification of convergence for hierarchical domain crossings
JP2000057180A (ja) 高位合成装置、高位合成方法および高位合成プログラムを記録した媒体
JP5729546B2 (ja) 半導体設計支援装置、タイミング制約生成方法、およびプログラム
US20230110701A1 (en) Techniques for design verification of domain crossings
US7284217B2 (en) Method of LSI designing and a computer program for designing LSIS
JP2002222228A (ja) 高位合成システム及び高位合成方法
Sinha et al. AdvanceTechnique to Accompolish Power Aware CDC Verification
JP2009301192A (ja) シミュレーション装置およびシミュレーション方法
JP2006201825A (ja) 集積回路の遅延解析方法及び遅延解析プログラム

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060327

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070131

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20071113

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20071120

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20080704