(57)【要約】【課題】ＦＰＧＡを用いたＬＳＩ設計の検証において、ＬＳＩ用ＲＴＬをＦＰＧＡ用ＲＴＬとして用いる際のクロックスキューの対策を行い、安定動作するＦＰＧＡ評価環境を実現する。【解決手段】基本周波数のシステムクロックで動作するフリップフロップと、基本周波数を分周した分周クロックで動作するフリップフロップとが混在するＬＳＩ回路のＲＴＬに対して、１６０３で分周クロックを、分周クロックで動作するフリップフロップをシステムクロックで動作させたときに分周クロックで動作するときと等価な動作をするようにシステムクロックを条件付ける分周イネーブル信号に変換し、１６０５で、分周クロックで動作するフリップフロップを分周イネーブル信号を条件としてシステムクロックで動作するフリップフロップに変換してＦＰＧＡ用ＲＴＬとする。【選択図】  図１６
2006058932.tif 000002
【特許請求の範囲】
【請求項１】
基本周波数のシステムクロックで動作するフリップフロップと、前記基本周波数を分周周波数に分周した分周クロックで動作するフリップフロップとが混在する回路におけるクロック変換方法であって、
前記分周クロックを、前記分周クロックで動作するフリップフロップを前記システムクロックで動作させたときに前記分周クロックで動作するときと等価な動作をするように前記システムクロックを条件付ける分周イネーブル信号に変換し、
前記分周クロックで動作するフリップフロップを前記分周イネーブル信号を条件として前記システムクロックで動作するフリップフロップに変換するクロック変換方法。
【請求項２】
基本周波数のシステムクロックで動作するフリップフロップと、前記基本周波数の分周周波数でフリップフロップを動作させるように前記システムクロックを条件付ける分周イネーブル信号を条件として前記システムクロックで動作するフリップフロップとが混在する回路におけるクロック変換方法であって、
前記分周イネーブル信号を、前記基本周波数を前記分周周波数に分周した分周クロックに変換し、
前記分周イネーブル信号を条件として前記システムクロックで動作するフリップフロップを、前記分周クロックで動作させたときに前記システムクロックで動作するときと等価な動作をする、前記分周クロックで動作するフリップフロップに変換するクロック変換方法。
【請求項３】
前記分周イネーブル信号は前記分周周波数を有し、前記システムクロックの１パルス分のクロック幅を有する信号である請求項１または２記載のクロック変換方法。
【請求項４】
前記分周イネーブル信号を条件として前記システムクロックで動作するフリップフロップは、一方の入力が前記フリップフロップの出力に接続され、前記分周イネーブル信号により選択が切り替わる選択回路を前記フリップフロップのデータ入力に挿入した回路で実現されたものである請求項１または２記載のクロック変換方法。
【請求項５】
前記分周クロックで動作するフリップフロップを有する回路はＬＳＩの回路であり、前記分周イネーブル信号を条件として前記システムクロックで動作するフリップフロップを有する回路はＦＰＧＡの回路である請求項１または２記載のクロック変換方法。
【請求項６】
請求項１から５のいずれか一項記載のクロック変換方法を実施するクロック変換ツール。
【請求項７】
請求項１から５のいずれか一項記載のクロック変換方法または請求項６記載のクロック変換ツールを用いて設計されたＦＰＧＡ。
【請求項８】
請求項１から５のいずれか一項記載のクロック変換方法または請求項６記載のクロック変換ツールを用いて設計されたＬＳＩ。
【請求項９】
請求項７記載のＦＰＧＡを用いたエミュレータ。
【請求項１０】
請求項７記載のＦＰＧＡまたは請求項８記載のＬＳＩを用いて設計された機能システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＬＳＩまたはＦＰＧＡの設計におけるクロック変換方法に関する。
【背景技術】
【０００２】
近年開発されるシステムＬＳＩは、低消費電力化の効果的な方法としてオン／オフ制御可能な数十〜数百のクロック系統を有する構成が増えてきている。また、大規模なＳｏＣが増加し機能も複雑になってきているため、検証手段の１つとしてＦＰＧＡを用いたボード評価が必須となっている。その際に、多数のクロック系統を持つＬＳＩ用ＲＴＬをそのままＦＰＧＡ評価用ＲＴＬとして用いてボード評価を実施している。
【０００３】
図６はＦＰＧＡを用いて検証を行う従来のＬＳＩ設計方法を示すフロー図である。従来のＬＳＩ開発は、ＬＳＩ用ＲＴＬ１０１についてシミュレーション１０２を実施し、シミュレーションが完了した段階のＲＴＬとしてＳＩＭ完了ＲＴＬ１０３を作成する。
【０００４】
その段階で、シミュレーション１０２で確認しきれなかった項目や、実際のボード環境条件での動作を確認するために、ＦＰＧＡを用いた評価を実施する。ＦＰＧＡ評価が完了すると、ＳＩＭ完了ＲＴＬ１０３を用いてＬＳＩ回路を合成する合成１０４を行い、最後にＬＳＩ試作のためのデータを出力するテープアウト１０５を行う。
【０００５】
このＦＰＧＡ評価においては、ＬＳＩのシミュレーションで検証したＳＩＭ完了ＲＴＬ１０３をそのままＦＰＧＡを製作するためのＦＰＧＡ用ＲＴＬ１０７として流用している。これを用いてＦＰＧＡマッピング１０８においてＦＰＧＡデバイスにＲＴＬの割り付けを行い、製作されたＦＰＧＡを評価ボードに実装し、ＦＰＧＡ評価１０９を実施する。
【０００６】
ＦＰＧＡ評価１０９では回路の問題点を抽出し、その修正内容１１０を早期に明確にし、ＬＳＩ用ＲＴＬに対して反映１１１を行う必要がある。しかしながら、実際にはＦＰＧＡ内で発生するクロックスキューによる誤動作１１２が多発し、ＬＳＩ用ＲＴＬ１０１に対する修正内容１１０を早期に明確にする工程の妨げになっている。
【０００７】
一方、近年のＬＳＩの動作クロック周波数の向上は著しく、ＬＳＩの回路の大規模化と相まって、クロックスキュー対策がＬＳＩ設計における重要な鍵となっている。そのため、従来ＦＰＧＡ等を含め各種ＬＳＩ設計に対応可能なクロックスキュー対策回路が提案されている（例えば、特許文献１参照）。
【特許文献１】特開平１１−２７２３５３
【発明の開示】
【発明が解決しようとする課題】
【０００８】
従来の各種クロックスキュー対策は有効な手段ではあるが、クロック系統を数十〜数百も有するＬＳＩ用ＲＴＬをそのままＦＰＧＡ用ＲＴＬとして用いる場合は、クロックスキュー対策が可能なクロック系統が現状のＦＰＧＡにおいては数〜１０本と少ないため、クロックスキュー対策が割り当てられなかったクロック系統に起因するクロックスキュー誤動作が多発している。
【０００９】
次に、クロックスキューによる上記誤動作の内容を具体的な回路構成とタイミングチャートを用いて説明する。図２は従来の設計方法によるＬＳＩのクロック系統の構成を示すブロック図であり、図３はそのタイミングチャートである。
【００１０】
図２において、２０１は従来の設計方法によるＬＳＩで、概略の構成としては、外部からのシステムクロック信号２０２を受ける入力バッファ２０３、入力されたシステムクロックを分周するクロック生成ブロック２０４、ＬＳＩ内部システムクロック２０５がフリップフロップ（以下、ＦＦと略記）のクロックピンに接続されるシステムクロック系ＦＦブロック２０６、システムクロックを２分周した２分周クロック２０７がＦＦのクロックピンに接続される２分周クロック系ＦＦブロック２０８、システムクロックをｎ分周したｎ分周クロック２０９がＦＦのクロックピンに接続されるｎ分周クロック系ＦＦブロック２１０がある。
【００１１】
また、クロック生成ブロック２０４において、２２３はＬＳＩ内部システムクロックを２分周する分周回路、２２４はＬＳＩ内部システムクロックをｎ分周する分周回路であり、２２０、２２１、２２２は、クロックの立ち上がりエッジをそろえるために各クロックの出力位置に挿入されたクロックタイミング調整バッファである。
【００１２】
システムクロック系ＦＦブロック２０６にはＲＴＬ記述のモジュールＳ−１（２１１）〜モジュールＳ−ｍ（２１２）があり、２分周クロック系ＦＦブロック２０８にはＲＴＬ記述のモジュール２−１（２１３）〜モジュール２−ｍ（２１４）があり、ｎ分周クロック系ＦＦブロック２１０にはＲＴＬ記述のモジュールｎ−１（２１５）〜モジュールｎ−ｍ（２１６）がある。
【００１３】
モジュール２１１、２１２、２１３、２１４、２１５、２１６のＦＦ周辺の構成は同様の構成であり、モジュールＳ−１（２１１）を例に取ると、ＦＦ２１７、ＦＦ２１７のクロックピンに供給するクロックをモジュールに入力するクロック入力端子２１８、クロックの立ち上がりエッジでＦＦ２１７の保持内容を更新するデータを供給する論理２１９からなる。
【００１４】
ここで、ＬＳＩに内蔵されるＦＦ同士が互いに正常にデータを受け渡しできる必要があり、そのためには、ＬＳＩ内部システムクロック２０５と２分周クロック２０７とｎ分周クロック２０９の立ち上がりエッジがそろっていることが必要であり、クロックタイミング調整バッファ２２０、２２１、２２２でタイミング調整を行っている。
【００１５】
図３は、システムクロックを分周した２分周クロック、４分周クロック、ｎ分周クロック、およびＬＳＩ内部システムクロックの各クロックの立ち上がりエッジがそろっていることを示したものである。
【００１６】
図４は、図６の１０３に示すＳＩＭ完了ＲＴＬ、例えば、図２に示したＬＳＩ回路のＲＴＬをそのままＦＰＧＡ用ＲＴＬとして用いた場合におけるＦＰＧＡのクロック系統の構成を示すブロック図である。ＬＳＩ用ＲＴＬをＦＰＧＡ用ＲＴＬとしてそのまま用いたので、機能的には同じ内容になっている。
【００１７】
ただし、クロックの扱いについては異なっている。ＬＳＩでは全ての同期すべきクロック系統については、クロックバッファのタイミング調整により、立ち上がりエッジがそろうように実装可能であるが、ＦＰＧＡでは、ＦＰＧＡのデバイスとしての制約で、立ち上がりエッジをそろえることができるクロックの本数に制限があり、全てのクロック系同士の立ち上がりエッジをそろえることができない構成になっている。図４では、４０１がクロックの立ち上がりエッジがそろったクロックのグループで、４０２がクロックの立ち上がりが４０１のグループとそろっていないグループを示している。
【００１８】
図５はその様子を示すタイミングチャートである。すなわち、ＦＰＧＡ内部システムクロックを分周した２分周クロックと内部システムクロックの立ち上がりエッジがそろっているが、４分周クロックとｎ分周クロックについては、それぞれがそろっていない様子を示している。
【００１９】
実際にこのような問題が多発し、ＬＳＩ用ＲＴＬに対する検証の妨げになっている。このように、ＦＰＧＡを用いたＬＳＩ設計の検証において、設計による不具合とクロックスキューによる不具合が混在することになり、その状況で不具合箇所の特定と対策に多大な工数を要しており、ＬＳＩ開発日程にも影響を与えている。
【００２０】
本発明は、ＦＰＧＡを用いたＬＳＩ設計の検証において、ＬＳＩ用ＲＴＬをＦＰＧＡ用ＲＴＬとして用いる際のクロックスキューの対策方法を提案し、安定動作するＦＰＧＡ評価環境を実現することでＬＳＩの設計期間を短縮することを目的とする。
【課題を解決するための手段】
【００２１】
本発明のクロック変換方法は、基本周波数のシステムクロックで動作するフリップフロップと、前記基本周波数を分周周波数に分周した分周クロックで動作するフリップフロップとが混在する回路におけるクロック変換方法であって、前記分周クロックを、前記分周クロックで動作するフリップフロップを前記システムクロックで動作させたときに前記分周クロックで動作するときと等価な動作をするように前記システムクロックを条件付ける分周イネーブル信号に変換し、前記分周クロックで動作するフリップフロップを前記分周イネーブル信号を条件として前記システムクロックで動作するフリップフロップに変換するものである。
【００２２】
上記クロック変換方法によれば、分周クロックがシステムクロックの整数分周比である場合に完全な論理等価性を実現することができ、かつ変換後の全てのＦＦは１系統のシステムクロックにより動作するため、ＦＰＧＡを用いたＬＳＩ設計の検証においてＬＳＩ用ＲＴＬに上記クロック変換方法を施してＦＰＧＡ用ＲＴＬとすることにより、ＦＰＧＡの回路構成として最も推奨される回路構成で評価することができ、ＦＰＧＡ評価回路の安定動作が期待できることで、ＦＰＧＡの評価期間のみならずＬＳＩの設計期間を短縮することができる。
【００２３】
また、本発明のクロック変換方法は、基本周波数のシステムクロックで動作するフリップフロップと、前記基本周波数の分周周波数でフリップフロップを動作させるように前記システムクロックを条件付ける分周イネーブル信号を条件として前記システムクロックで動作するフリップフロップとが混在する回路におけるクロック変換方法であって、前記分周イネーブル信号を、前記基本周波数を前記分周周波数に分周した分周クロックに変換し、前記分周イネーブル信号を条件として前記システムクロックで動作するフリップフロップを、前記分周クロックで動作させたときに前記システムクロックで動作するときと等価な動作をする、前記分周クロックで動作するフリップフロップに変換するものである。
【００２４】
上記クロック変換方法によれば、ＦＰＧＡを用いたＬＳＩ設計の検証において、ＦＰＧＡ用ＲＴＬに上記クロック変換方法を施してＬＳＩ用ＲＴＬとすることにより、ＦＰＧＡの評価結果を直接ＦＰＧＡ用ＲＴＬに反映し、それをＦＰＧＡ評価が完了した段階でＬＳＩ用ＲＴＬへ変換することができるため、ＦＰＧＡ評価期間およびＬＳＩ設計期間の短縮が図ることが出来る。
【００２５】
本発明において、前記分周イネーブル信号は前記分周周波数を有し、前記システムクロックの１パルス分のクロック幅を有する信号であるようにするものである。
【００２６】
本発明において、前記分周イネーブル信号を条件として前記システムクロックで動作するフリップフロップは、一方の入力が前記フリップフロップの出力に接続され、前記分周イネーブル信号により選択が切り替わる選択回路を前記フリップフロップのデータ入力に挿入した回路で実現するものである。
【００２７】
本発明において、前記分周クロックで動作するフリップフロップを有する回路はＬＳＩの回路であり、前記分周イネーブル信号を条件として前記システムクロックで動作するフリップフロップを有する回路はＦＰＧＡの回路であるものである。
【発明の効果】
【００２８】
本発明によれば、基本周波数を分周した分周クロックを多数用いるＬＳＩ回路においても、ＦＰＧＡのクロック専用ラインの本数制限を意識することなく、クロックスキューによるＦＰＧＡ誤動作を回避し、ＦＰＧＡ評価をスムーズに実施する環境を提供することができるため、ＦＰＧＡ評価期間を短縮し、総合的にＬＳＩ設計期間の短縮を図ることができる。また、エミュレーション環境に適用することで、エミュレーション動作が安定し、検証期間の短縮を図ることができる。
【発明を実施するための最良の形態】
【００２９】
（実施の形態１）
図１は本発明の実施の形態１に係るクロック変換方法を採用したＦＰＧＡを用いて検証を行うＬＳＩ設計方法を示すフロー図である。ＬＳＩ開発では、ＬＳＩ用ＲＴＬ１０１についてシミュレーション１０２を実施し、シミュレーションが完了した段階のＲＴＬとしてＳＩＭ完了ＲＴＬ１０３を作成する。
【００３０】
その段階で、シミュレーション１０２で確認しきれなかった項目や、実際のボード環境条件での動作を確認するために、ＦＰＧＡを用いた評価を実施する。ここで、ＬＳＩのシミュレーションで検証したＳＩＭ完了ＲＴＬ１０３に対してクロック変換ツール１０６を用いてクロック変換を行い、出力されたＦＰＧＡ用ＲＴＬ１０７を使用してＦＰＧＡを製作する。
【００３１】
すなわち、ＦＰＧＡマッピング１０８においてＦＰＧＡデバイスにＲＴＬの割り付けを行い、製作されたＦＰＧＡを評価ボードに実装しＦＰＧＡ評価１０９を実施する。ＦＰＧＡ評価が完了すると、ＳＩＭ完了ＲＴＬ１０３を用いてＬＳＩ回路を合成する合成１０４を行い、最後にＬＳＩ試作のためのデータを出力するテープアウト１０５を行う。
【００３２】
ここで、ＦＰＧＡ評価１０９では従来で発生していたクロックスキューに起因する誤動作の発生が無いため、ＦＰＧＡ評価１０９で回路の問題点を抽出し、その修正内容１１０を早期に明確にし、ＬＳＩ用ＲＴＬに対して反映１１１を行うことができる。
【００３３】
次に、クロックスキューによる誤動作を防ぐ仕組みを具体的な回路構成とタイミングチャートを用いて説明する。図７は本実施形態のクロック変換方法を適用するための設計方法によるＬＳＩのクロック系統の構成を示すブロック図である。
【００３４】
図７において、７０１は本実施形態の設計方法によるＬＳＩで、概略の構成としては、外部からのシステムクロック信号２０２を受ける入力バッファ２０３、入力されたシステムクロックを分周するクロック生成ブロック７０４、ＬＳＩ内部システムクロック２０５がＦＦのクロックピンに接続されるシステムクロック系ＦＦブロック２０６、システムクロックを２分周した２分周クロック７０７がＦＦのクロックピンに接続される２分周クロック系ＦＦブロック７０８、システムクロックをｎ分周したｎ分周クロック７０９がＦＦのクロックピンに接続されるｎ分周クロック系ＦＦブロック７１０がある。
【００３５】
また、クロック生成ブロック７０４において、７２３はＬＳＩ内部システムクロックを２分周する分周回路、７２４はＬＳＩ内部システムクロックをｎ分周する分周回路であり、２２０、２２１、２２２は、クロックの立ち上がりエッジをそろえるために各クロックの出力位置に挿入されたクロックタイミング調整バッファである。
【００３６】
従って、図２と異なる部分はクロック生成ブロック７０４の分周回路７２３と７２４、および２分周クロック系ＦＦブロック７０８とｎ分周クロック系ＦＦブロック７１０のみである。
【００３７】
２分周クロック系ＦＦブロック７０８はモジュール２−１（７１３）〜モジュール２−ｍ（７１４）からなる。モジュール２−１（７１３）は、図２のモジュール２−１（２１３）と回路的には同じであるが、モジュールの分周クロックピン７２５とは別のピン７２６にＬＳＩ内部システムクロック２０５が接続されており、モジュール内ではオープンに処理されている。モジュール７１４、７１５、７１６についても同様である。
【００３８】
このように、システムクロック系ＦＦブロック２０６以外の分周クロック系ＦＦブロックについて、モジュールの分周クロックピンとは別のピンにＬＳＩ内部システムクロック２０５を接続し、モジュール内ではオープンに処理することで、クロック変換ツール１０６を用いたクロック変換に備える。
【００３９】
図８はＬＳＩ７０１のクロックとＦＦの動作を説明するタイミングチャートである。図８において、８０１はＬＳＩ内部システムクロック２０５の波形、８０２はＬＳＩ内部システムクロック２０５で動作するＦＦの出力である。
【００４０】
さらに、８０３はＬＳＩ内部システムクロックを２分周しＬｏｗ側のデューティがシステムクロック１周期分のみとした２分周クロック７０７の波形、８０４は２分周クロック７０７で動作するＦＦの出力、同様に、８０５と８０６はそれぞれ４分周クロックと関連するＦＦの出力、８０７と８０８はそれぞれｎ分周クロックと関連するＦＦの出力である。図２のＬＳＩ２０１の場合と比較すると、クロック波形は異なるが周期は同一であり、ＦＦの動作としては何ら変わりなく機能等価と言える。
【００４１】
図９はモジュール７１５の詳細回路図である。図９において、９０２はモジュール７１５に入力される分周クロックピン、９０３は分周クロックが接続されるＦＦ、９０４はＦＦ９０３に入力データを与える論理回路、９０５はＬＳＩ内部システムクロック２０５が接続され内部でオープン処理されるＬＳＩ内部システムクロックピンを示している。
【００４２】
図１０は図７のＬＳＩ７０１に対して本実施形態のクロック変換方法を適用した後のＦＰＧＡ用ＲＴＬを使用して製作されたＦＰＧＡ１００１のクロック系統の構成を示すブロック図である。
【００４３】
図１０において、２分周イネーブル系ＦＦブロック７０８のモジュール２−１（７１３）〜モジュール２−ｍ（７１４）が２分周イネーブル系ＦＦブロック１００８のモジュール２−１（１０１３）〜モジュール２−ｍ（１０１４）に変換され、ｎ分周イネーブル系ＦＦブロック７１０のモジュールｎ−１（７１５）〜モジュールｎ−ｍ（７１６）がｎ分周イネーブル系ＦＦブロック１０１０のモジュールｎ−１（１０１５）〜モジュールｎ−ｍ（１０１６）に変換されている。
【００４４】
また図７では分周クロックとしていた信号線７０７、７０９を、図１０においてはデータとしてのエネーブル信号線１００７、１００９とするために、クロックタイミング調整バッファ２２１、２２２に代えて遅延回路１０２１、１０２２を付加している。
【００４５】
図１１は図９に対応し、モジュール７１５のクロック変換後の詳細回路図である。変換内容としては、ＦＦ９０３と論理回路９０４の間にセレクタ９０１を挿入し、分周クロックのＬｏｗレベル時に論理回路９０４の出力によりＦＦ９０３を更新し、分周クロックのＨｉｇｈレベル時にＦＦ９０３の値を保持するようにしている。
【００４６】
モジュール２−１（１０１３）を例にとって説明すると、もともと２分周クロックが供給されていた２分周イネーブルピン７２５には、２分周回路７２３からクロックの代わりに遅延バッファ１００７を介したイネーブル信号が供給される。
【００４７】
また、もともとＬＳＩ内部システムクロック２０５が接続され、モジュール内ではオープン処理されていたピン７２６は、モジュール内でＦＦのクロック入力ピンに接続される。これらは、他のモジュールについても同様である。
【００４８】
これにより、システムクロック系ＦＦブロック２０６と、２分周イネーブル系ＦＦブロック１００８と、ｎ分周イネーブル系ＦＦブロック１０１０に含まれる全ＦＦのクロック入力ピンに接続されるクロック信号は、ＬＳＩ内部システムクロック２０５の１系統となる。
【００４９】
このように変換することで、全ＦＦがＬＳＩ内部システムクロック２０５で動作するため、システムクロック系ＦＦブロック２０６、２分周イネーブル系ＦＦブロック１００８、ｎ分周イネーブル系ＦＦブロックＦＦ１０１０が互いに安定した正常なデータを受け渡すことが可能となる。
【００５０】
図１２はＦＰＧＡ１００１のクロックとＦＦの動作を説明するタイミングチャートである。図１２において、８０１はＬＳＩ内部システムクロック２０５の波形、８０２はＬＳＩ内部システムクロック２０５で動作するＦＦの出力で、図８の８０１、８０２と同じ波形である。
【００５１】
さらに、８１３は２分周クロック波形８０３を遅延した２分周イネーブル信号、８１５は４分周クロック波形８０５を遅延した４分周イネーブル信号、８１７はｎ分周クロック波形８０７を遅延したｎ分周イネーブル信号である。
【００５２】
また、図１２の８０４、８０６、８０８はＬＳＩ内部システムクロック２０５で動作するＦＦの出力で、図８の８０４、８０６、８０８と同じ波形である。これらの各ＦＦの出力に着目すると、システムクロックの整数分周比のイネーブルによるＦＦの値の更新については図７のＬＳＩ７０１の場合と何ら変わりなく、機能等価と言える。
【００５３】
次に、図１３〜図１５を用いて、ＬＳＩ７０１のＲＴＬ記述からＦＰＧＡ１００１のＲＴＬ記述への変換方法を説明する。図１３は図９に示したクロック変換前のＬＳＩ７０１におけるモジュール７１５のＦＦ部分のＲＴＬ記述であり、符号は図９に対応している。
【００５４】
図１３において、９０２は分周クロック入力ピン、９０５はモジュール外部からの内部システムクロック端子の記述である。９０５はモジュール内でオープン処理されているため、この信号名はＦＦの動作記述に現れない。９０３の文はＦＦの動作記述であり、９０２の分周クロック入力が１３０３でＦＦのクロック入力として記述されている。
【００５５】
さらに、１３０１、１３０２は特別なコメント文で、このコメント文が付加された「ａｌｗａｙｓ  ・・・  ｂｅｇｉｎ  〜  ｅｎｄ」がクロック変換の対象ＦＦであることを示している。システムクロック系ＦＦブロック２０６のモジュール内のＦＦは、もともと分周クロックではなくＬＳＩ内システムクロックで動作しているため、クロック変換の必要がないので１３０１、１３０２のコメント文は付加しない。また、１３０４の「ｂｅｇｉｎ  ・・・  ｅｎｄ」は論理回路９０４のＲＴＬ記述である。
【００５６】
図１４は図１３のＲＴＬ記述に対するクロック変換後のＦＰＧＡ１００１におけるモジュール１０１５のＦＦ部分のＲＴＬ記述である。符号が図９および図１３に対応する箇所は図１３と同様であるので説明を省略する。
【００５７】
変換後は９０５のシステムクロック入力が１４０１でＦＦのクロックとして記述されている。１４０２と１４０４の「ｉｆ  ・・・  ｂｅｇｉｎ  〜  ｅｎｄ」はクロック変換で追加された箇所で、セレクタ９０１において分周クロック入力ピンに入力する分周イネーブル信号により、システムクロックで動作するＦＦ９０３が論理回路９０４の出力データに値を更新するか、それまでの値を保持するかを選択する選択回路を構成している。
【００５８】
セレクタ９０１によるＦＦ９０３データの更新／保持の切り替えは、１４０３の「！ｃｌｋ１ｍ５３６」が示すように、分周クロックのＬｏｗレベル時にシステムクロックのエッジで論理回路９０４の出力により値を更新し、分周クロックのＨｉｇｈレベル時にシステムクロックのエッジで自身の値を再入力することで実現している。
【００５９】
図１５は本実施形態のクロック変換方法を実行するクロック変換ツールの処理内容を示したフローチャートである。このクロック変換は分周クロック系ＦＦブロックのモジュールのＲＴＬ記述に対して行うものである。
【００６０】
図１５において、１５０１は「“ａｌｗａｙｓ”〜“ｂｅｇｉｎ”〜“／／  ｓｙｎｃ”が認識できたか」を判定するステップ、１５０２は１５０１がＮＯ判定のときに実施される評価対象文の出力ステップ、１５０３は１５０１がＹＥＳ判定のときに実施される「ｐｏｓｅｇｅで定義されているクロック信号名を記憶」するステップ、１５０４は１５０３の処理結果を記憶するステップである。
【００６１】
さらに変換処理に進み、１５０５は「ａｌｗａｙｓ（ｐｏｓｅｄｇｅ＜システムクロック名＞ｏｒ  ｎｅｇｅｄｇｅ  ｎｒｓｔ）ｂｅｇｉｎ  ／／  ｓｙｎｃを表示」するステップ、１５０６は「“ｅｌｓｅ  ｂｅｇｉｎ”が認識できたか」を判定するステップ、１５０７は１５０６がＮＯ判定のときに実施される評価対象文の出力ステップ、１５０８は１５０６がＹＥＳのときに実施される「“ｉｆ（！＜分周クロック＞）  ｂｅｇｉｎ  ／／  ｓｙｎｃ”を表示」するステップ、１５０９は「“ｅｎｄ”が認識できたか」を判定するステップ、１５１０は１５０９がＮＯ判定のときに実施される評価対象文の出力ステップ、１５１１は１５０９がＹＥＳ判定のときに実施される評価対象文の出力ステップ、１５１２は「“ｅｎｄ”〜“／／  ｓｙｎｃ”が認識できたか」を判定するステップ、１５１３は１５１２がＮＯ判定のときに実施される評価対象文の出力ステップ、１５１４は１５１２がＹＥＳ判定のときに実施される「“ｅｎｄｍｏｄｕｌｅ”が認識できたか」を判定するステップ、１５１５は１５１４がＹＥＳ判定のときに実施される評価対象文の出力ステップである。
【００６２】
以上のように、本実施形態のクロック変換ツールは、ＬＳＩ回路ＲＴＬにおいて、分周クロック系ＦＦブロックの変換対象モジュールに対して、ＦＦを動作させるクロックの立ち上がり／立ち下がりエッジの前でシステムクロック１周期分の区間をＬｏｗ／Ｈｉｇｈ状態にした波形を分周クロックとして供給することと、変換対象のモジュールにシステムクロックをオープン処理で供給することと、変換対象モジュールのＲＴＬに対して、図１５に示す変換処理を施すことにより、容易にＦＰＧＡ用ＲＴＬを生成することができ、クロックスキューに起因する誤動作を実質的に排除したＦＰＧＡ評価環境を提供し、ＦＰＧＡ評価期間の短縮と、ＬＳＩ設計期間の短縮を図ることができる。
【００６３】
（実施の形態２）
図１６は本発明の実施の形態２に係るクロック変換方法を実行するクロック変換ツールの処理内容を示したフローチャートである。実施の形態１では、図９に示したように、変換対象のモジュールにシステムクロックをオープン処理接続しておく必要があったが、実施の形態２ではシステムクロックピンに関する処理も含めて自動化するものである。
【００６４】
図１６において、１６０１は「変換対象の“ａｌｗａｙｓ文”が認識できたか」を判定するステップ、１６０２は１６０１がＮＯ判定のときに実施される後処理ステップ、１６０３は１６０１がＹＥＳ判定のときに実施される「分周クロックをシステムクロックに変換」するステップである。
【００６５】
ここで、ステップ１６０１において変換対象の「ａｌｗａｙｓ文」を構文解析により自動認識することで、実施の形態１のコメント文を付加することを不要にしている。また、ステップ１６０３においてシステムクロックピンに関する処理が自動化され、図２に示した従来のＬＳＩ回路のＲＴＬを自動的に図１０に示したＦＰＧＡ回路のＲＴＬに変換することができる。
【００６６】
これ以降の処理は実施の形態１と同じであるが、１６０４は「対象ＦＦ更新出力論理を認識」するステップ、１６０５は「分周イネーブルによるＦＦ更新／保持選択回路を挿入」するステップ、１６０６は「対象ａｌｗａｙｓが終わったか」を判定するステップ、１６０７は１６０６がＹＥＳ判定のときに実施される「対象モジュールが終わったか」を判定するステップである。
【００６７】
以上のように、本実施形態のクロック変換ツールは、実施の形態１のクロック変換ツールに比べて、予めＬＳＩ用ＲＴＬに記述しておく必要があった対象「ａｌｗａｙｓ」を認識するための目印の記述や、変換対象モジュールに記載しておくオープン処理したシステムクロックピンの記述を不要にすることができるため、ＦＰＧＡ評価期間およびＬＳＩ設計期間をさらに短縮することができる。
【００６８】
（実施の形態３）
図１７は本発明の実施の形態３に係るクロック変換方法を採用したＬＳＩ設計方法を示すフロー図である。本実施形態は実施の形態１および実施の形態２と基本的に同じであるが、ＬＳＩ用ＲＴＬからＦＰＧＡ用ＲＴＬへのクロック変換に加え、さらにＦＰＧＡ用ＲＴＬからＬＳＩ用ＲＴＬへのクロック変換を追加した点が異なる。
【００６９】
すなわち、図１７において、クロック変換ツール１７０１は、ＬＳＩ用ＲＴＬ１０１からＦＰＧＡ用ＲＴＬ１０７へのクロック変換を行うとともに、ＦＰＧＡ用ＲＴＬ１０７からＬＳＩ用ＲＴＬ１０１へのクロック変換を行う機能も備えている。
【００７０】
図１８は本発明の実施の形態３に係るクロック変換方法のうち、ＦＰＧＡ用ＲＴＬからＬＳＩ用ＲＴＬへの変換するクロック変換ツールの処理内容を示したフローチャートである。すなわち、本実施形態はクロック変換方法として、図１６のフローに図１８のフローを加えた処理内容となる。
【００７１】
図１８において、１８０１は「変換対象の“ａｌｗａｙｓ文”が認識できたか」を判定するステップ、１８０２は１８０１がＮＯ判定のときに実施される後処理ステップ、１８０３は１８０１がＹＥＳ判定のときに実施される「システムクロックを分周クロックに変換」するステップである。
【００７２】
さらに、１８０４は「対象ＦＦ更新出力論理を認識」するステップ、１８０５は「分周イネーブルによるＦＦ更新／保持選択回路を削除」するステップである。以上において、ステップ１８０３とステップ１８０５によりＦＰＧＡ用ＲＴＬからＬＳＩ用ＲＴＬへのクロック変換が行われる。
【００７３】
以降は図１６と同様にフローの制御ステップであり、１８０６は「対象ａｌｗａｙｓが終わったか」を判定するステップ、１８０７は１８０６がＹＥＳ判定のときに実施される「対象モジュールが終わったか」を判定するステップである。
【００７４】
以上のように、本実施形態のクロック変換ツールは、実施の形態２のクロック変換ツールに、さらにＦＰＧＡ用ＲＴＬからＬＳＩ用ＲＴＬへのクロック変換を追加されているため、ＦＰＧＡを用いたＬＳＩ設計の検証の際に、ＦＰＧＡ用ＲＴＬに施した修正をＬＳＩ用ＲＴＬに反映させることが容易になり、ＦＰＧＡ評価期間およびＬＳＩ設計期間をさらに短縮することができる。
【００７５】
（エミュレータへの適用）
図１９は、本発明のいずれかの実施形態によるクロック変換ツールを適用したエミュレータの概要を示した図である。図１９において、１９０１は本発明のクロック変換ツールを適用したエミュレータ、１９０２はエミュレーション対象のＬＳＩ用ＲＴＬ、１９０３は本発明のクロック変換ツール、１９０４はクロック変換ツール１９０３から出力されるエミュレータ用ＲＴＬを格納する手段、１９０５は格納された１９０４の内容をエミュレータ回路としてマッピング手段、１９０６は１９０５でマッピングされた回路のエミュレーションを実行する手段、１９０７はエミュレータ１９０１から出力されるエミュレーション結果である。
【００７６】
本発明の実施形態によるクロック変換ツールを適用したエミュレータは、クロックスキューに起因する誤動作を排除できるため、ＬＳＩ開発におけるエミュレーション検証期間短縮や、エミュレーション品質の向上、クロックスキュー誤動作対策回路削減などの面で高い効果を得ることができる。
【産業上の利用可能性】
【００７７】
本発明のクロック変換方法は、基本周波数を分周した分周クロックを多数用いるＬＳＩ回路においても、ＦＰＧＡのクロック専用ラインの本数制限を意識することなく、クロックスキューによるＦＰＧＡ誤動作を回避し、ＦＰＧＡ評価をスムーズに実施する環境を提供することができるため、ＦＰＧＡ評価期間を短縮し、総合的にＬＳＩ設計期間の短縮を図ることができるという効果を有し、ＬＳＩまたはＦＰＧＡの設計におけるクロック変換技術として有用である。
【図面の簡単な説明】
【００７８】
【図１】本発明の実施の形態１に係るクロック変換方法を採用したＦＰＧＡを用いて検証を行うＬＳＩ設計方法を示すフロー図。
【図２】従来の設計方法によるＬＳＩのクロック系統の構成を示すブロック図。
【図３】従来の設計方法によるＬＳＩのクロック系統のタイミングチャート。
【図４】ＬＳＩ用ＲＴＬをＦＰＧＡ用ＲＴＬとして用いた場合のＦＰＧＡのクロック系統の構成を示すブロック図。
【図５】ＬＳＩ用ＲＴＬをＦＰＧＡ用ＲＴＬとして用いた場合のＦＰＧＡのクロック系統のタイミングチャート。
【図６】ＦＰＧＡを用いて検証を行う従来のＬＳＩ設計方法を示すフロー図。
【図７】本発明の実施の形態１に係るクロック変換方法を適用するＬＳＩのクロック系統の構成を示すブロック図。
【図８】本発明の実施の形態１に係るクロック変換方法を適用するＬＳＩにおけるクロックとＦＦの動作を説明するタイミングチャート。
【図９】本発明の実施の形態１に係るクロック変換方法を適用するＬＳＩにおけるモジュールの詳細回路図。
【図１０】本発明の実施の形態１に係るクロック変換方法を適用した後のＦＰＧＡ用ＲＴＬを使用して製作されたＦＰＧＡのクロック系統の構成を示すブロック図。
【図１１】本発明の実施の形態１に係るクロック変換方法を適用した後のモジュールの詳細回路図。
【図１２】本発明の実施の形態１に係るクロック変換方法を適用した後のＦＰＧＡ用ＲＴＬを使用して製作されたＦＰＧＡのクロックとＦＦの動作を説明するタイミングチャート。
【図１３】本発明の実施の形態１に係るクロック変換前のＬＳＩのモジュールにおけるＦＦ部分のＲＴＬ記述。
【図１４】本発明の実施の形態１に係るクロック変換後のＦＰＧＡのモジュールにおけるＦＦ部分のＲＴＬ記述。
【図１５】本発明の実施の形態１に係るクロック変換ツールの処理内容を示したフローチャート。
【図１６】本発明の実施の形態２に係るクロック変換ツールの処理内容を示したフローチャート。
【図１７】本発明の実施の形態３に係るクロック変換方法を採用したＬＳＩ設計方法を示すフロー図。
【図１８】本発明の実施の形態３に係るクロック変換方法のうち、ＦＰＧＡ用ＲＴＬからＬＳＩ用ＲＴＬへの変換するクロック変換ツールの処理内容を示したフローチャート。
【図１９】本発明のクロック変換ツールを適用したエミュレータの概要を示す図。
【符号の説明】
【００７９】
１０１  ＬＳＩ用ＲＴＬ
１０２  シミュレーション
１０３  ＳＩＭ完了ＲＴＬ
１０４  合成
１０５  テープアウト
１０６、１７０１  クロック変換ツール
１０７  ＦＰＧＡ用ＲＴＬ
１０８  ＦＰＧＡマッピング
１０９  ＦＰＧＡ評価
１１０  修正内容
１１１  ＬＳＩ用ＲＴＬに対する修正内容の反映
１１２  クロックスキューによる誤動作
２０１  ＬＳＩ
２０２  システムクロック信号
２０３  入力バッファ
２０４  クロック生成ブロック
２０５  ＬＳＩ内部システムクロック
２０６  システムクロック系ＦＦブロック
２０７  ２分周クロック
２０８  ２分周クロック系ＦＦブロック
２０９  ｎ分周クロック
２１０  ｎ分周クロック系ＦＦブロック
２１１  モジュールＳ−１
２１２  モジュールＳ−ｍ
２１３  モジュール２−１
２１４  モジュール２−ｍ
２１５  モジュールｎ−１
２１６  モジュールｎ−ｍ
２１７  ＦＦ
２１８  クロック入力端子
２１９  論理回路
２２０  ＬＳＩ内部システムクロックバッファ
２２１  ２分周クロックバッファ
２２２  ｎ分周クロックバッファ
２２３  ＬＳＩ内部システムクロックを２分周する分周回路
２２４  ＬＳＩ内部システムクロックをｎ分周する分周回路
４０１  立ち上がりエッジがそろったクロックグループ
４０２  立ち上がりエッジがそろっていないクロックグループ
７０１  ＬＳＩ
７０４  クロック生成ブロック
７０７  ２分周クロック
７０８  ２分周クロック系ＦＦブロック
７０９  ｎ分周クロック
７１０  ｎ分周クロック系ＦＦブロック
７２３  分周回路
７２４  分周回路
７１３  モジュール２−１
７１４  モジュール２−ｍ
７１５  モジュールｎ−１
７１６  モジュールｎ−ｍ
７２５  モジュールの分周クロックピン
７２６  モジュールのシステムクロックピン
８０１  ＬＳＩ内部システムクロック波形
８０２  ＬＳＩ内部システムクロックで動作するＦＦの出力波形
８０３  ２分周クロック波形
８０４  ２分周クロックで動作するＦＦの出力波形
８０５  ４分周クロック波形
８０６  ４分周クロックで動作するＦＦの出力波形
８０７  ｎ分周クロック波形
８０８  ｎ分周クロックで動作するＦＦの出力波形
８１３  ２分周イネーブル信号波形
８１５  ４分周イネーブル信号波形
８１７  ｎ分周イネーブル信号波形
９０１  セレクタ
９０２  モジュールの分周クロックピン
９０３  ＦＦ
９０４  論理回路
９０５  モジュールのＬＳＩ内部システムクロックピン
１００１  クロック変換後のＦＰＧＡ回路
１００７  ２分周イネーブル
１００８  ２分周イネーブル系ＦＦブロック
１００９  ｎ分周イネーブル
１０１０  ｎ分周イネーブル系ＦＦブロック
１０１３  モジュール２−１
１０１４  モジュール２−ｍ
１０１５  モジュールｎー１
１０１６  モジュールｎ−ｍ
１０２１、１０２２  遅延回路
１３０１〜１３０４、１４０１〜１４０４  ＲＴＬ記述の参照箇所
１５０１〜１５１５、１６０１〜１６０７、１８０１〜１８０７  ステップ
１９０１  本発明のクロック変換ツールを適用したエミュレータ
１９０２  エミュレーション対象のＬＳＩ用ＲＴＬ
１９０３  本発明のクロック変換ツール
１９０４  エミュレータ用ＲＴＬを格納する手段
１９０５  エミュレータ回路マッピング手段
１９０６  エミュレーション回路実行手段
１９０７  エミュレーション結果
【図１】
2006058932.tif 000003
【図２】
2006058932.tif 000004
【図３】
2006058932.tif 000005
【図４】
2006058932.tif 000006
【図５】
2006058932.tif 000007
【図６】
2006058932.tif 000008
【図７】
2006058932.tif 000009
【図８】
2006058932.tif 000010
【図９】
2006058932.tif 000011
【図１０】
2006058932.tif 000012
【図１１】
2006058932.tif 000013
【図１２】
2006058932.tif 000014
【図１３】
2006058932.tif 000015
【図１４】
2006058932.tif 000016
【図１５】
2006058932.tif 000017
【図１６】
2006058932.tif 000018
【図１７】
2006058932.tif 000019
【図１８】
2006058932.tif 000020
【図１９】
2006058932.tif 000021