[go: up one dir, main page]

JP2008152550A - 集積回路装置の設計方法、クロック構築ツール、集積回路装置、マイクロコンピュータ及び電子機器 - Google Patents

集積回路装置の設計方法、クロック構築ツール、集積回路装置、マイクロコンピュータ及び電子機器 Download PDF

Info

Publication number
JP2008152550A
JP2008152550A JP2006340147A JP2006340147A JP2008152550A JP 2008152550 A JP2008152550 A JP 2008152550A JP 2006340147 A JP2006340147 A JP 2006340147A JP 2006340147 A JP2006340147 A JP 2006340147A JP 2008152550 A JP2008152550 A JP 2008152550A
Authority
JP
Japan
Prior art keywords
clock
storage element
skew
clock tree
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
JP2006340147A
Other languages
English (en)
Inventor
Yoichi Yamada
陽一 山田
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson 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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2006340147A priority Critical patent/JP2008152550A/ja
Publication of JP2008152550A publication Critical patent/JP2008152550A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

【課題】同期回路のクロック動作時に生じるピーク電流を低減し、電源電位の電圧降下を抑制することができるクロックツリーを構築するように制御可能な集積回路の設計方法及びクロックツリー構築ツールを提供する。
【解決手段】クロックスキューが所定の値以下となるようにクロックツリーが構築されている同期回路に対して、第1の記憶素子と第2の記憶素子の間におけるクロックスキューが所与の値よりも小さい場合には、同期回路に対するタイミング解析結果に基づき、クロックスキューが所与の値以上になるようにクロックスキューを変化させてもタイミングエラーが発生しないと判断した場合には、第1の記憶素子に接続されたクロックラインに1又は2以上の遅延素子を挿入することにより、クロックスキューが所与の値以上になるようにクロックスキューを変化させる処理を行いクロックツリーを再構築する。
【選択図】図4

Description

本発明は、集積回路装置の設計方法、クロック構築ツール、集積回路装置、マイクロコンピュータ及び電子機器に関する。
集積回路装置内の同期回路の設計においては、各フリップフロップが同一のクロックで同期制御されることを前提として設計が行われる。ところが、同期回路に含まれるセルをレイアウト上でセル配置すると、クロックルートとなるクロックバッファと各フリップフロップのレイアウト上の相対的な位置関係等の相違によりクロックラインの配線長が異なるため、クロックルートから各フリップフロップまでのクロック信号の伝搬遅延が相違する。この伝搬遅延の差が大きいとタイミングエラーが発生し、回路が誤動作する。例えば、シフトレジスタのようにフリップフロップ間の信号の伝搬遅延が小さい回路では、後段のフリップフロップまでのクロック遅延が前段のフリップフロップまでのクロック遅延よりもかなり大きい場合、ホールドタイムエラーが発生し回路が誤動作する。また、フリップフロップ間の信号の伝搬遅延がクロック周期よりわずかに小さいような回路では、クロックスキューがなければ誤動作しないが、前段のフリップフロップまでのクロック遅延が後段のフリップフロップまでのクロック遅延よりもかなり大きい場合、セットアップタイムエラーが発生し回路が誤動作する。
そのため、同期回路の設計においては、ツールを使用する等してクロックルートから各フリップフロップのクロック入力までにクロックバッファ等の遅延素子を挿入することによりすべてのクロックラインの遅延を揃え、クロックスキューが小さくなるようにクロックツリーを構築することが一般的に行われている。
特開2006−65389号公報
しかし、クロックスキューが小さいと、すべてのフリップフロップのクロック入力がほぼ同時に変化する。そのため、各フリップフロップ内にあるクロック入力バッファのトランジスタがスイッチングするタイミングがほぼ同時になり、各トランジスタのスイッチング時に電源からグランドに同時に貫通電流が流れる。このような同時に流れる貫通電流のために瞬時的にピーク電流が増大するため、電源電位が瞬時的に電圧降下する。この電圧降下が、トランジスタの論理閾値を下回ると回路が誤動作する可能性がある。
本発明は、以上のような問題点に鑑みてなされたものであり、同期回路のクロック動作時に生じるピーク電流を低減し、電源電位の電圧降下を抑制することができるクロックツリーを構築するように制御可能な集積回路の設計方法及びクロックツリー構築ツールを提供することを目的とする。
(1)本発明に係る集積回路装置の設計方法は、
同一のクロックに基づいて動作する複数の記憶素子を有し、第1の記憶素子の出力から第2の記憶素子の入力に至る信号経路上に他の記憶素子を含まない前記第1の記憶素子と前記第2の記憶素子の間におけるクロックスキューが所定の値以下となるようにクロックツリーが構築されている同期回路を含む集積回路装置の設計方法であって、
所与の前記第1の記憶素子と前記第2の記憶素子の間におけるクロックスキューが所与の値よりも小さい場合には、前記同期回路に対するタイミング解析結果に基づき、前記クロックスキューが所与の値以上になるように前記クロックスキューを変化させる処理を行うことにより、前記同期回路に対してクロックツリーを再構築するクロックツリー再構築ステップを含むことを特徴とする。
本発明に係る集積回路装置の設計方法においては、第1の記憶素子の出力から第2の記憶素子の入力に至る信号経路上に他の記憶素子を含まない第1の記憶素子と第2の記憶素子の間におけるクロックスキューに対して、クロックスキューを変化させる処理を行う。すなわち、第1の記憶素子の出力から第2の記憶素子の入力に至る信号経路が存在し、かつ、その経路上に他の記憶素子を含まないような第1の記憶素子と第2の記憶素子の間におけるクロックスキューが調整の対象となる。第1の記憶素子及び第2の記憶素子は、タイミング解析においてセットアップタイムエラーやホールドタイムエラーの解析の対象となる信号経路の始点および終点となる記憶素子に対応する。
第1の記憶素子と第2の記憶素子の間におけるクロックスキューは、クロックルートから第1の記憶素子のクロック入力までのクロック信号の伝搬遅延とクロックルートから第2の記憶素子のクロック入力までのクロック信号の伝搬遅延の差をいう。
記憶素子は、入力されるクロックに同期して動作し、1ビットの情報を記憶することができる素子であればよく、例えば、Dフリップフロップなどの各種のフリップフロップであってもよいし、Dラッチなどの各種のラッチであってもよい。
クロックツリーが構築されている同期回路は、少なくともレイアウト上のセル配置の情報に基づき、第1の記憶素子と第2の記憶素子の間におけるクロックスキューが所定の値以下となっていればよい。また、レイアウト上で実配線を行った後のより正確な計算に基づくクロックスキューが所定の値以下となっている場合でもよい。当該同期回路は、第1の記憶素子と第2の記憶素子の間におけるすべてのクロックスキューが所定の値以下となるようにクロックツリーが構築されていてもよいし、所定の信号経路、例えば、信号の伝搬遅延を考慮する必要のない信号経路(ダミーパス)や第1の記憶素子と第2の記憶素子の間におけるクロックスキューを考慮する必要がない(クロックスキューが大きくてもよい)信号経路等を除いた信号経路上の第1の記憶素子と第2の記憶素子の間におけるクロックスキューが所定の値以下となるようにクロックツリーが構築されていてもよい。
クロックツリーが構築されている同期回路に対するタイミング解析結果は、少なくともレイアウト上のセル配置の情報に基づきタイミング解析を行った結果であればよい。また、レイアウト上で実配線を行った後に実配線を考慮したより正確なタイミング解析結果であってもよい。
タイミングエラーには、例えば、記憶素子に対するセットアップタイムエラーやホールドタイムエラーなどがある。
第1の記憶素子と第2の記憶素子の間におけるクロックスキューを所与の値以上にするために、例えば、第1の記憶素子又は第2の記憶素子に接続されるクロックラインのいずれかにのみ遅延素子を挿入してもよいし、遅延時間の異なる遅延素子を両方のクロックラインに挿入してもよい。また、第1の記憶素子又は第2の記憶素子に接続されるクロックラインに遅延素子が挿入されている場合には、いずれかのクロックラインからのみ遅延素子を削除してもよいし、両方のクロックラインから遅延時間の異なる遅延素子を削除してもよい。
本発明によれば、第1の記憶素子と第2の記憶素子の間におけるクロックスキューが所与の値以上になるようにクロックツリーが再構築される。その結果、各記憶素子に含まれるクロックバッファのトランジスタがスイッチングするタイミングを所与の時間差で分散させることができるので、所与の値を適切に選択することにより、トランジスタのスイッチング時に流れるピーク電流を低減することができる。従って、ピーク電流が流れる時の電源電位の電圧降下を低減することができるので、回路の誤動作を防止することができる。
所与の値は、ピーク電流を低減するのに十分な値であればよく、計算やシミュレーションにより求めてもよい。
また、本発明によれば、少なくとも、第1の記憶素子と第2の記憶素子の間におけるクロックスキュー、すなわち、動作タイミングが関連する2つの記憶素子間におけるクロックスキューについては、所与の値以上になるようにクロックツリーが再構築される。動作タイミングが関連する2つの記憶素子は、レイアウト上の物理的に近い場所に配置される可能性が高く、これらの記憶素子は同一の電源レールから電源を供給される場合が多い。そのため、動作タイミングが関連する2つの記憶素子間のクロックスキューが所与の値以上になるようにクロックツリーを再構築すれば、電源電位の電圧降下を有効に低減することができる。一方、動作タイミングにおいて無関係の2つの記憶素子は、レイアウト上の物理的に近い場所に配置される可能性は低く、これらの記憶素子は異なる電源レールから電源を供給される場合が多い。そのため、動作タイミングにおいて無関係の2つの記憶素子間におけるクロックスキューについては、所与の値より小さいままクロックツリーを再構築しても、電源電位の電圧降下を有効に低減することができる。なお、可能であれば、動作タイミングにおいて無関係の2つの記憶素子間におけるクロックスキューについても、所与の値以上になるようにクロックツリーを構築してもよい。
(2)本発明に係る集積回路装置の設計方法は、
前記クロックツリー再構築ステップは、
前記同期回路に対するタイミング解析結果に基づき、前記クロックスキューを変化させることによりタイミングエラーが発生すると判断した場合は、前記クロックスキューを変化させる処理を行わないことを特徴とする。
本発明によれば、タイミング解析結果に基づき、タイミングエラーが発生しないと判断される場合のみ、クロックスキューを変化させる処理を行う。従って、クロックツリーが再構築された後の同期回路は、タイミングエラーがなく、かつ、ピーク電流を削減することができる。
(3)本発明に係る集積回路装置の設計方法は、
前記クロックツリー再構築ステップは、
前記第1の記憶素子に接続されたクロックラインに1又は2以上の遅延素子を挿入することにより前記クロックスキューを変化させる処理を行うことを特徴とする。
本発明によれば、第1の記憶素子に接続されたクロックラインに1又は2以上の遅延素子を挿入するだけなので、セットアップタイムエラーに対するマージンが大きい信号経路がほとんどであるような場合には、クロックスキューを簡単に所与の値以上にすることができ、ピーク電流を低減することができる。
(4)本発明に係る集積回路装置の設計方法は、
前記クロックツリー再構築ステップは、
セットアップタイムエラーに対するマージンが小さい信号経路上にある前記第1の記憶素子と前記第2の記憶素子の間におけるクロックスキューを優先的に変化させる処理を行うことを特徴とする。
本発明によれば、例えば、信号経路のセットアップタイムエラーに対するマージンが大きくなるにつれて、当該信号経路上にある第1の記憶素子に接続されたクロックラインに挿入する遅延素子の数を多くすれば、各記憶素子に含まれるクロックバッファのトランジスタがスイッチングするタイミングを効率的に分散させることができるので、ピーク電流を低減することができる。
(5)本発明に係る集積回路装置の設計方法は、
前記クロックツリー再構築ステップと、
前記クロックツリー再構築ステップによりクロックツリーを再構築した後の同期回路に対して、レイアウト上で実配線を行うステップと、
前記クロックツリーを再構築した後の同期回路に対して、前記レイアウト上での実配線を考慮したタイミング解析を行うステップと、
前記レイアウト上での実配線を考慮したタイミング解析結果に基づき、セットアップタイムエラーが発生する信号経路上にある前記第1の記憶素子に接続されたクロックラインから1又は2以上の遅延素子を削除することによりセットアップタイムエラーを解消するようにクロックツリーを修正するステップとを含むことを特徴とする。
本発明によれば、クロックツリーを再構築する際に、遅延素子を挿入するたびに実配線を行う必要がなく、クロックツリーを再構築する処理をより短時間で行うことができる。また、クロックツリーを再構築した後の同期回路に対するレイアウト上での実配線を考慮したタイミング解析結果に基づき、遅延素子を追加することなくセットアップタイムエラーを解消するので、クロックラインの配線を大幅にやり直す必要がなく、より簡単かつ確実にセットアップタイムエラーを解消することができる。
なお、クロックツリーを再構築した後の同期回路に対するレイアウト上での実配線を考慮したタイミング解析結果において、ホールドタイムエラーが発生する場合は、公知の種々の手法によりホールドタイムエラーを解消することができる。例えば、ホールドタイムエラーが発生する信号経路にバッファなどを挿入して信号を遅延させることにより、クロックラインの配線を変更することなく、簡単にホールドタイムエラーを解消することができる。
(6)本発明に係るクロックツリー構築ツールは、
同一のクロックに基づいて動作する複数の記憶素子を有し、第1の記憶素子の出力から第2の記憶素子の入力に至る信号経路上に他の記憶素子を含まない前記第1の記憶素子と前記第2の記憶素子の間におけるクロックスキューが所定の値以下となるようにクロックツリーが構築されている同期回路に対してクロックツリーを再構築するクロックツリー構築ツールであって、
所与の前記第1の記憶素子と前記第2の記憶素子の間におけるクロックスキューが所与の値よりも小さい場合には、前記同期回路に対するタイミング解析結果に基づき、前記クロックスキューが所与の値以上になるように前記クロックスキューを変化させてもタイミングエラーが発生しないと判断した場合には、前記第1の記憶素子に接続されたクロックラインに1又は2以上の遅延素子を挿入することにより、前記クロックスキューが所与の値以上になるように前記クロックスキューを変化させる処理を行い前記同期回路に対してクロックツリーを再構築するクロックツリー再構築ステップと、
前記クロックツリー再構築ステップによりクロックツリーを再構築した後の同期回路に対して、レイアウト上で実配線を行うステップと、
前記クロックツリーを再構築した後の同期回路に対して、前記レイアウト上での実配線を考慮したタイミング解析を行うステップと、
前記レイアウト上での実配線を考慮したタイミング解析結果に基づき、セットアップタイムエラーが発生する信号経路上にある前記第1の記憶素子に接続されたクロックラインから1又は2以上の遅延素子を削除することによりセットアップタイムエラーを解消するようにクロックツリーを修正するステップとを含むことを特徴とする。
本発明に係るクロックツリー構築ツールは、例えば、信号経路のセットアップタイムエラーに対するマージンが大きくなるにつれて、当該信号経路上にある第1の記憶素子に接続されたクロックラインに挿入する遅延素子の数を大きくすれば、各記憶素子に含まれるクロックバッファのトランジスタがスイッチングするタイミングを効率的に分散させることができ、第1の記憶素子と第2の記憶素子の間におけるクロックスキューが所与の値以上になるようにクロックツリーを再構築することができる。従って、ピーク電流を低減することができ、ピーク電流が流れる時の電源電位の電圧降下を低減することができるので、回路の誤動作を防止することができる。
本発明に係るクロックツリー構築ツールは、遅延素子を挿入するたびに実配線を行うことはしないので、クロックツリーを再構築する処理をより短時間で行うことができる。また、クロックツリーを再構築した後の同期回路に対するレイアウト上での実配線を考慮したタイミング解析結果に基づき、遅延素子を追加ことなくセットアップタイムエラーを解消するので、クロックラインの配線を大幅にやり直す必要がなく、より簡単かつ確実にセットアップタイムエラーを解消することができる。
(7)本発明は、
上記のいずれかに記載された集積回路装置の設計方法又はクロックツリー構築ツールを用いて設計製造されたことを特徴とする集積回路装置である。
(8)本発明は、
上記に記載の集積回路装置を含むことを特徴とするマイクロコンピュータである。
(9)本発明は、
上記に記載のマイクロコンピュータと、
前記マイクロコンピュータの処理対象となるデータの入力手段と、
前記マイクロコンピュータにより処理されたデータを出力するための出力手段とを含むことを特徴とする電子機器である。
以下、本発明の好適な実施形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成の全てが本発明の必須構成要件であるとは限らない。
1.集積回路装置、集積回路装置の設計方法、クロックツリー構築ツール
図1は、本実施の形態のクロックツリー構築ツールの対象となる同期回路の例を説明するための図である。
同期回路10は、集積回路装置(IC)に含まれる回路であり、本実施の形態のクロックツリー構築ツールの対象となる。同期回路10は、サブブロック100及び200、クロックツリー300を含んで構成される。ここで、同期回路10に含まれる各フリップフロップはいずれもメインクロック312で同期制御される。すなわち、同期回路10はメインクロック312(同一のクロック)に基づいて動作する同期回路である。
サブブロック100は、3個のフリップフロップ110、120、130及び組み合わせ回路140、150を含んで構成されている。組み合わせ回路140の1つの入力はフリップフロップ110の出力に接続されており、他の1つの入力142はサブブロック100の外部から供給される。組み合わせ回路140の出力は、フリップフロップ120のデータ入力に接続されている。また、組み合わせ回路150の1つの入力はフリップフロップ120の出力に接続されており、他の1つの入力はサブブロック200に含まれるフリップフロップ220の出力に接続されている。組み合わせ回路150の出力は、フリップフロップ130のデータ入力に接続されている。
サブブロック200は、3個のフリップフロップ210、220、230及び組み合わせ回路240、250を含んで構成されている。組み合わせ回路240の1つの入力はサブブロック100に含まれるフリップフロップ110の出力に接続されており、他の1つの入力はフリップフロップ210の出力に接続されている。組み合わせ回路240の出力は、フリップフロップ220のデータ入力に接続されている。また、組み合わせ回路250の1つの入力はフリップフロップ220の出力に接続されており、他の1つの入力252はサブブロック200の外部から供給される。組み合わせ回路250の出力は、フリップフロップ230のデータ入力に接続されている。
クロックツリー300は、クロックバッファ320、330、340により構成されている。クロックバッファ320の入力はメインクロックバッファ310の出力に接続されており、その出力は、サブブロック100に含まれる3個のフリップフロップ110、120、130の各クロック入力112、122、132に共通に接続されている。クロックバッファ330の入力はメインクロックバッファ310の出力に接続されており、その出力は、クロックバッファ340の入力に接続されている。クロックバッファ340の出力は、サブブロック200に含まれる3個のフリップフロップ210、220、230の各クロック入力212、222、232に共通に接続されている。ここで、メインクロックバッファ310の出力から6個のフリップフロップ110、120、130、210、220、230の各クロック入力112、122、132、212、222、232までの遅延を揃え、任意の2つのフリップフロップ間におけるクロックスキューが所定の値以下(例えば、0)になるように、遅延素子として機能するクロックバッファ320、330、340が挿入されている。
メインクロックバッファ310の出力からフリップフロップ110、120、130の各クロック入力112、122、132までには、1つのクロックバッファ320が挿入されている。一方、メインクロックバッファ310の出力からフリップフロップ210、220、230の各クロック入力212、222、232までには、2つのクロックバッファ330及び340が挿入されている。挿入されるクロックバッファの数の相違は、レイアウト(図示せず)上の各フリップフロップの物理的な配置場所の相違のため、メインクロックバッファ310と各フリップフロップの間の距離が異なることに起因する。すなわち、メインクロックバッファ310とフリップフロップの間の距離が長い場合は、クロック配線に伴う寄生抵抗や寄生容量が大きく、クロックラインの配線遅延が大きいため、挿入するクロックバッファの数を少なくする。一方、メインクロックバッファ310とフリップフロップの間の距離が短い場合は、配線遅延が小さいため、挿入するクロックバッファの数を多くする。このようにして、任意の2つのフリップフロップ間におけるクロックスキューが所定の値以下になるようにクロックツリー300が構成されている。例えば、クロックバッファ320、330、340の入力から出力までの遅延がすべて1nsの場合、メインクロックバッファ310の出力からフリップフロップ110、120、130の各クロック入力112、122、132までの配線遅延がすべて1nsであり、メインクロックバッファ310の出力からフリップフロップ210、220、230の各クロック入力212、222、232までの配線遅延がすべて0だとすると、メインクロックバッファ310の出力からフリップフロップ110、120、130、210、220、230の各クロック入力112、122、132、212、222、232までの遅延はすべて2nsとなり、任意の2つのフリップフロップ間のクロックスキューが0になる。
サブブロック100に含まれる3個のフリップフロップ110、120、130はレイアウト上の物理的に近い場所に配置されており、クロックバッファ320から3個のフリップフロップ110、120、130の各クロック入力112、122、132までの配線遅延にはほとんど差がない(これらのフリップフロップ間におけるクロックスキューは非常に小さい)ため、クロックバッファ320の出力とフリップフロップ110、120、130の各クロック入力112、122、132の間にはクロックバッファが挿入されていない。同様に、サブブロック200に含まれる3個のフリップフロップ210、220、230はレイアウト上の物理的に近い場所に配置されているため、クロックバッファ340の出力とフリップフロップ210、220、230の各クロック入力212、222、232の間にはクロックバッファが挿入されていない。
ここで、組み合わせ回路140におけるフリップフロップ110(第1の記憶素子に相当する)の出力からフリップフロップ120(第2の記憶素子に相当する)のデータ入力までのパス(信号経路)p1の遅延は5.5ns、組み合わせ回路150におけるフリップフロップ120(第1の記憶素子に相当する)の出力からフリップフロップ130(第2の記憶素子に相当する)のデータ入力までのパスp2の遅延は6.5ns、フリップフロップ220(第1の記憶素子に相当する)の出力からフリップフロップ130(第2の記憶素子に相当する)のデータ入力までのパスp3の遅延は2ns、組み合わせ回路240におけるフリップフロップ110(第1の記憶素子に相当する)の出力からフリップフロップ220(第2の記憶素子に相当する)のデータ入力までのパスp4の遅延は2.5ns、フリップフロップ210(第1の記憶素子に相当する)の出力からフリップフロップ220(第2の記憶素子に相当する)のデータ入力までのパスp5の遅延は6.5ns、組み合わせ回路250におけるフリップフロップ220(第1の記憶素子に相当する)の出力からフリップフロップ230(第2の記憶素子に相当する)のデータ入力までのパスp6の遅延は7.5nsであるとする。さらに、メインクロック312のクロック周波数は100MHz(クロック周期は10ns)、すべてのフリップフロップの遅延(クロックが入力されてから出力が変化するまでの時間)は1nsと仮定し、すべてのフリップフロップに対するセットアップタイムは1ns以上、ホールドタイムは0ns以上必要であると仮定する。また、すべてのフリップフロップ間のクロックスキュー(以下の説明では、第2の記憶素子に相当するフリップフロップまでのクロック遅延から第1の記憶素子に相当するフリップフロップまでのクロック遅延を引き算した値と定義する)は0であると仮定する。
この場合、セットアップタイムエラーが起こらないためには、すべてのフリップフロップ間における組み合わせ回路のパスの遅延は、10ns(クロック周期)+0ns(クロックスキュー)−1ns(フリップフロップの遅延)−1ns(セットアップタイム)=8ns以下でなければならない。上述の通り、パスp1〜p6の遅延はそれぞれ、5.5ns、6.5ns、2ns、2.5ns、6.5ns、7.5nsなので、パスp1〜p6に関して、セットアップタイムエラーは発生していない。一方、ホールドタイムエラーが起こらないためには、すべてのフリップフロップ間における組み合わせ回路のパスの遅延は、0ns(ホールドタイム)+0ns(クロックスキュー)−1ns(フリップフロップの遅延)=−1ns以上でなければならない。明らかに、パスp1〜p6に関して、ホールドタイムエラーは発生していない。
図2は、図1における同期回路10に対して本実施の形態のクロックツリー構築ツールを使用し、クロックツリーを再構築した後の同期回路の例について説明するための図である。図1と同じ構成には同じ番号を付しており説明を省略する。
図2における同期回路20(クロックツリーを再構築した後の同期回路)は、クロックツリー302がクロックバッファ322、324、326、344を含む点においてのみ、図1における同期回路10と異なる。クロックバッファ322の入力は、クロックバッファ320の出力に接続され、その出力は、フリップフロップ120のクロック入力122に接続されている。クロックバッファ324の入力は、クロックバッファ320の出力に接続され、その出力は、クロックバッファ326の入力に接続されている。クロックバッファ326の出力は、フリップフロップ110のクロック入力112に接続されている。クロックバッファ344の入力は、クロックバッファ340の出力に接続され、その出力は、フリップフロップ210のクロック入力212に接続されている。クロックバッファ322、324、326、344は、本実施の形態のクロックツリー構築ツールが挿入したクロックバッファである。
ここで、クロックバッファ322、324、326、344の入力から出力までの遅延はすべて1nsであるとする。この場合、メインクロックバッファ310の出力からフリップフロップ110のクロック入力112までの遅延は、図1の場合と比較して、クロックバッファ324及び326の遅延分(1ns+1ns=2ns)だけ増加している。同様に、メインクロックバッファ310の出力からフリップフロップ120のクロック入力122までの遅延はクロックバッファ322の遅延分(1ns)だけ増加し、メインクロックバッファ310の出力からフリップフロップ210のクロック入力212までの遅延はクロックバッファ344の遅延分(1ns)だけ増加している。メインクロックバッファ310の出力からフリップフロップ130、220、230の各クロック入力132、222、232までの遅延は図1の場合と変わらない。従って、パスp1上にあるフリップフロップ110と120の間のクロックスキューは−1nsである。同様に、パスp2上にあるフリップフロップ120と130の間、パスp3上にあるフリップフロップ220と130の間、パスp4上にあるフリップフロップ110と220の間、パスp5上にあるフリップフロップ210と220の間、パスp6上にあるフリップフロップ220と230の間のクロックスキューはそれぞれ、−1ns、0ns、−2ns、−1ns、0である。すなわち、本実施の形態のクロックツリー構築ツールにより、クロックスキューに差が出るようにクロックバッファ322、324、326、344が挿入されている。
一方、サブブロック100及び200は図1とまったく同じであり、パスp1〜p6の遅延も変わらない。パスp1の遅延は5.5nsであり、10ns(クロック周期)+(−1ns)(クロックスキュー)−1ns(フリップフロップの遅延)−1ns(セットアップタイム)=7ns以下なので、フリップフロップ120に対するセットアップタイムエラーは発生していない。また、フリップフロップ120に対するホールドタイムエラーについても、0ns(ホールドタイム)+(−1ns)(クロックスキュー)−1ns(フリップフロップ110の遅延)=−2nsなので、発生していない。同様に、パスp2及びp3に関するフリップフロップ130に対するセットアップタイムエラー及びホールドタイムエラー、パスp4及びp5に関するフリップフロップ220に対するセットアップタイムエラー及びホールドタイムエラー、パスp6に関するフリップフロップ230に対するセットアップタイムエラー及びホールドタイムエラーは発生していない。すなわち、本実施の形態のクロックツリー構築ツールがクロックバッファ322、324、326、344を挿入したことにより、同期回路20にタイミングエラーは発生していない。
図3は、メインクロックバッファの出力と各フリップフロップのクロック入力に関するタイミングを説明するための図である。
図3(A)は、図1の同期回路10におけるタイミングを説明するための図である。時刻T0において、メインクロックバッファ310の出力が立ち上がる。メインクロックバッファ310の出力からフリップフロップ110、120、130の各クロック入力112、122、132までの遅延は、クロックバッファ320の入力から出力までの遅延(1ns)と配線遅延(1ns)の和に相当し、2nsである。一方、メインクロックバッファ310の出力からフリップフロップ210、220、230の各クロック入力212、222、232までの遅延は、クロックバッファ330の入力から出力までの遅延(1ns)とクロックバッファ340の入力から出力までの遅延(1ns)と配線遅延(0ns)の和に相当し、2nsである。従って、時刻T1において、フリップフロップ110、120、130、210、220、230の各クロック入力112、122、132、212、222、232は同時に立ち上がる。これは、図1の回路ではすべてのフリップフロップに対してクロックスキューが0になるようにクロックツリーが構築されているためである。従って、クロック入力112、122、132、212、222、232に接続されるバッファ(図示していないが、各フリップフロップの内部にある)におけるトランジスタが同時にスイッチングするために電源からグランドに大きな貫通電流が流れ、ピーク電流が大きくなるため、電源電位に大きな電圧降下が発生する。
図3(B)は、図2の同期回路20におけるタイミングを説明するための図である。
時刻T0において、メインクロックバッファ310の出力が立ち上がる。メインクロックバッファ310の出力からフリップフロップ110のクロック入力112までの遅延は、クロックバッファ320の入力から出力までの遅延(1ns)とクロックバッファ324の入力から出力までの遅延(1ns)とクロックバッファ326の入力から出力までの遅延(1ns)と配線遅延(1ns)の和に相当し、4nsである。メインクロックバッファ310の出力からフリップフロップ120のクロック入力122までの遅延は、クロックバッファ320の入力から出力までの遅延(1ns)とクロックバッファ322の入力から出力までの遅延(1ns)と配線遅延(1ns)の和に相当し、3nsである。メインクロックバッファ310の出力からフリップフロップ130のクロック入力132までの遅延は、クロックバッファ320の入力から出力までの遅延(1ns)と配線遅延(1ns)の和に相当し、2nsである。一方、メインクロックバッファ310の出力からフリップフロップ210のクロック入力212までの遅延は、クロックバッファ330の入力から出力までの遅延(1ns)とクロックバッファ340の入力から出力までの遅延(1ns)とクロックバッファ344の入力から出力までの遅延(1ns)と配線遅延(0ns)の和に相当し、3nsである。メインクロックバッファ310の出力からフリップフロップ220、230の各クロック入力222、232までの遅延は、クロックバッファ330の入力から出力までの遅延(1ns)とクロックバッファ340の入力から出力までの遅延(1ns)と配線遅延(0ns)の和に相当し、2nsである。従って、時刻T1において、フリップフロップ130、220、230の各クロック入力132、222、232が同時に立ち上がり、時刻T2において、フリップフロップ120、210の各クロック入力122、212が同時に立ち上がり、時刻T3において、フリップフロップ110のクロック入力112が立ち上がる。このように各フリップフロップのクロック入力の立ち上がりのタイミングが異なるのは、本実施の形態のクロックツリー構築ツールが、タイミングエラーを起こさない範囲で、メインクロックバッファ310の出力から各フリップフロップのクロック入力までの遅延にできるだけ1ns以上の差をつけるようにクロックツリーを構築したことによる。この遅延差としては、回路規模や使用するクロックバッファの特性等に基づいて貫通電流が流れるタイミングを分散させてピーク電流を低減し、電源電位の電圧降下を効果的に抑制することができるような所与の値に設定しなければならない。例えば、クロックバッファの駆動能力とクロック配線の寄生抵抗・寄生容量の関係により、クロックバッファ出力の立ち上がりが急峻である場合には貫通電流が流れる時間が短いので、この所与の値が小さくてもピーク電流を低減させることができるので、電圧降下を効果的に抑制することができる。逆に、クロックバッファ出力の立ち上がりが緩やかな場合には貫通電流が流れる時間が長いので、この所与の値が大きくなければピーク電流を低減させることができず、電圧降下を効果的に抑制することができない。
図4は、本実施の形態の集積回路装置の設計方法(製造方法)について説明するためのフローチャート図である。
まず、ゲートレベルで記述されたネットリストを読み込み、各セルの物理的な配置(セル配置)を行う(ステップS10)。
次に、クロックのルート(例えば、クロックが入力されるバッファの出力)から各フリップフロップのクロック入力までの遅延(クロック遅延)の差、すなわちクロックスキューが所定の値以下になるように、各クロックラインにバッファ(又は偶数個のインバータ)等の遅延素子を挿入することにより、クロックツリーを構築する(ステップS12)。クロックツリーの構築においては、ステップS10で得られたセル配置の情報に基づいて、各クロックラインの仮想配線を行い、配線長や寄生抵抗・寄生容量が考慮される。各フリップフロップに対するホールドタイムやセットアップタイムの制約が厳しい場合などは、理想的にはクロックスキューが0になるようにクロックツリーを構築するのが望ましいが、挿入可能なバッファの種類の制約が大きい場合やクロック遅延の増加を抑える必要がある場合などは、クロックスキューは所定の値(ホールドタイムエラー及びセットアップタイムエラーを起こさない程度の値)以下になるようにすればよい。
次に、クロックツリーを構築した後の回路に対してタイミング解析を行い(ステップS14)、セットアップタイムエラー及びホールドタイムエラーがなくなるまで、セル配置(ステップS10)およびクロックツリーの構築(ステップS12)を繰り返し行う(ステップS16)。図1の同期回路10は、ステップS10〜S16によりクロックツリーが構築された回路であってもよい。
次に、このタイミング解析結果から、すべてのパスについて、クロックルートから当該パスの終点となるフリップフロップ(第2の記憶素子に相当する)のクロック入力までの遅延とクロックルートから当該パスの始点となるフリップフロップ(第1の記憶素子に相当する)のクロック入力までの遅延の差を当該パスに対するクロックスキューとして計算する(ステップS18)。例えば、図1において、パスp1〜p6に対するクロックスキューはすべて0である。なお、信号の伝搬遅延を考慮する必要のないパス(ダミーパス)やクロックスキューを考慮する必要がない(クロックスキューが大きくてもよい)パス等がある場合は、これらのパスを除いたパスについてのみクロックスキューを計算すればよい。
さらに、当該パスの終点となるフリップフロップのセットアップタイムエラーに対するマージンを、当該パスに対するクロックスキューの余裕度として計算する(ステップS18)。例えば、図1において、上述した通り、セットアップタイムエラーを起こさないためには各パスの遅延は8ns以下でなければならないのに対して、パスp1の遅延は5.5nsなので、パスp1に対するクロックスキューの余裕度は、8ns−5.5ns=2.5nsとなる。同様の計算により、パスp2、p3、p4、p5、p6に対するクロックスキューの余裕度は、それぞれ、1.5ns、6ns、5.5ns、1.5ns、0.5nsとなる。
次に、すべてのパスに対して、ステップS18で計算したクロックスキューが所与の値(以下、判定値という)よりも小さいか否か判定する(ステップS20)。ここで、回路が誤動作を起こすほどの電源電位の電圧降下を引き起こすピーク電流が流れないために要求される、2つのフリップフロップ間におけるクロックスキューを計算やシミュレーションにより求め、判定値として使用する。例えば、図1において、クロックスキューが1ns以上あれば電源電位の電圧降下を抑制する効果があるとすると判定値を1nsとする。パスp1〜p6に対するクロックスキューはいずれも0であるので、すべて判定値より小さい。
ステップS20において、すべてのパスに対するクロックスキューが判定値よりも大きい場合には、実配線を行う(ステップS26)。一方、ステップS20において、クロックスキューが判定値よりも小さいパスがある場合には、当該パスに対するクロックスキューの余裕度がステップS20における判定値と当該パスのクロックスキューの差よりも大きいか否か判定する(ステップS22)。例えば、図1において、パスp1のクロックスキューの余裕度(2.5ns)は、判定値(1ns)とパスp1のクロックスキュー(0ns)の差(1ns)よりも大きい。同様に、パスp2、p3、p4、p5のクロックスキューの余裕度は、判定値と各パスのクロックスキューの差よりも大きい。パスp6のクロックスキューの余裕度は0.5nsであり、判定値(1ns)とパスp6のクロックスキュー(0ns)の差(1ns)よりも小さい。
ステップS22において、すべてのパスに対するクロックスキューの余裕度がステップS20における判定値とクロックスキューの差よりも小さい場合は、電源電位に多少の電圧降下を生じる可能性があるが、セットアップタイムエラーを発生させないためにクロックスキューの再構築は行わず、実配線を行う(ステップS26)。一方、ステップS22において、クロックスキューの余裕度がステップS20における判定値とクロックスキューの差よりも大きいパスが存在する場合は、クロックスキューの余裕度(すなわち、セットアップタイムエラーに対するマージン)が小さいパスから順に、クロックスキューがステップS20における判定値よりも大きくなるように当該パスの始点となるフリップフロップに接続されたクロックラインに1又は2以上の遅延素子(バッファまたは偶数個のインバータなど)を挿入することにより、クロックツリーを再構築する(ステップS24)。図1においては、クロックスキューの余裕度の小さいパスの順に、パスp6、p2、p5、p1、p4、p3となる。まず、パスp6のクロックスキューの余裕度は0.5nsであり、判定値(1ns)とパスp6のクロックスキュー(0ns)の差(1ns)よりも小さいため、パスp6の始点となるフリップフロップ220に接続されたクロックラインにはクロックバッファは挿入されない。次に、パスp2のクロックスキューの余裕度は1.5nsであり、判定値(1ns)とパスp2のクロックスキュー(0ns)の差(1ns)よりも大きいため、パスp2の始点となるフリップフロップ220に接続されたクロックラインには、1ns以上1.5ns以下の遅延素子が挿入される。例えば、図2においては、1nsの遅延素子として機能するクロックバッファ322が挿入されている。クロックバッファ322の挿入により、パスp1のクロックスキューは1ns減少して−1nsとなり、クロックスキューの余裕度は1ns増加して3.5nsとなる。次に、パスp5のクロックスキューの余裕度は1.5nsであり、判定値(1ns)とパスp5のクロックスキュー(0ns)の差(1ns)よりも大きいため、パスp5の始点となるフリップフロップ210に接続されたクロックラインには、1ns以上1.5ns以下の遅延素子が挿入される。例えば、図2においては、1nsの遅延素子として機能するクロックバッファ344が挿入されている。次に、パスp1のクロックスキューの余裕度は3.5nsであり、判定値(1ns)とパスp1のクロックスキュー(−1ns)の差(2ns)よりも大きいため、パスp1の始点となるフリップフロップ110に接続されたクロックラインには、2ns以上3.5ns以下の遅延素子が挿入される。例えば、図2においては、1nsの遅延素子として機能するクロックバッファ324及び326が挿入されている。ここで、2つのクロックバッファ324及び326が挿入されているのは、クロックバッファ322が先に挿入されたことを考慮して、パスp1のクロックスキューを判定値(1ns)以上にするためである。クロックバッファ324及び326の挿入により、パスp4のクロックスキューは2ns増加して2nsとなり、クロックスキューの余裕度は2ns減少して3.5nsとなる。次に、パスp4については、クロックバッファ324及び326の挿入により、パスp4のクロックスキューは2nsとなり、判定値(1ns)以上であるので、パスp4の始点となるフリップフロップ110に接続されたクロックラインにはさらにクロックバッファを挿入することはしない。次に、パスp3のクロックスキューの余裕度は6nsであり、判定値(1ns)とパスp3のクロックスキュー(0ns)の差(1ns)よりも大きいが、パスp3の始点となるフリップフロップ220に接続されたクロックラインに0.5ns以上の遅延素子を挿入すると、パスp6に関してセットアップタイムエラーが発生するため、図2においては、クロックバッファが挿入されていない。
次に、クロックツリーを再構築した後の回路に対して実配線を行い(ステップS26)、クロックツリーを再構築した後の回路に対して、実配線を考慮したタイミング解析を行い(ステップS28)、タイミングエラーがあれば当該エラーがなくなるまで、ステップS24で挿入したバッファ(または偶数個のインバータ)を削除することにより、クロックツリーの修正(ステップS32)および実配線(ステップS26)を繰り返し行う(ステップS30)。タイミングエラーがなくなれば、実行フローを終了する。
なお、本実施の形態の集積回路装置の設計方法では、図1の同期回路10を生成するために、ステップS10〜S16によりクロックツリーの構築を行ったが、本発明に係る集積回路装置の設計方法では、同一のクロックに基づいて動作する複数の記憶素子を有し、第1の記憶素子の出力から第2の記憶素子の入力に至る信号経路上に他の記憶素子を含まない前記第1の記憶素子と前記第2の記憶素子の間におけるクロックスキューが所定の値以下となるようにクロックツリーが構築されている同期回路に対して適用することができるため、ステップS10からS16は本発明に係る集積回路装置の設計方法の必須の構成要素ではない。例えば、手設計によりクロックツリーを構成した同期回路に対しても本発明に係る集積回路装置の設計方法を適用することができる。
2.マイクロコンピュータ
図5は、本実施の形態のマイクロコンピュータのハードウエアブロック図の一例である。
本マイクロコンピュータ700は、CPU510、キャッシュメモリ520、RAM710,ROM720、MMU730、LCDコントローラ530、リセット回路540、プログラマブルタイマ550、リアルタイムクロック(RTC)560、DRAMコントローラ570、割り込みコントローラ580、通信制御装置590、バスコントローラ600、A/D変換器610、D/A変換器620、入力ポート630、出力ポート640、I/Oポート650、クロック発生装置660、プリスケーラ670、クロック停止制御回路740及びそれらを接続する汎用バス680、専用バス750等、各種ピン690等を含む。
3.電子機器
図6に、本実施の形態の電子機器のブロック図の一例を示す。本電子機器800は、マイクロコンピュータ(またはASIC)810、入力部820、メモリ830、電源生成部840、LCD850、音出力部860を含む。
ここで、入力部820は、種々のデータを入力するためのものである。マイクロコンピュータ810は、この入力部820により入力されたデータに基づいて種々の処理を行うことになる。メモリ830は、マイクロコンピュータ810などの作業領域となるものである。電源生成部840は、電子機器800で使用される各種電源を生成するためのものである。LCD850は、電子機器が表示する各種の画像(文字、アイコン、グラフィック等)を出力するためのものである。
音出力部860は、電子機器800が出力する各種の音(音声、ゲーム音等)を出力するためのものであり、その機能は、スピーカなどのハードウェアにより実現できる。
図7(A)に、電子機器の1つである携帯電話950の外観図の例を示す。この携帯電話950は、入力部として機能するダイヤルボタン952や、電話番号や名前やアイコンなどを表示するLCD954や、音出力部として機能し音声を出力するスピーカ956を備える。
図7(B)に、電子機器の1つである携帯型ゲーム装置960の外観図の例を示す。この携帯型ゲーム装置960は、入力部として機能する操作ボタン962、十字キー964や、ゲーム画像を表示するLCD966や、音出力部として機能しゲーム音を出力するスピーカ968を備える。
図7(C)に、電子機器の1つであるパーソナルコンピュータ970の外観図の例を示す。このパーソナルコンピュータ970は、入力部として機能するキーボード972や、文字、数字、グラフィックなどを表示するLCD974、音出力部976を備える。
本実施の形態のマイクロコンピュータを図7(A)〜図7(C)の電子機器に組み込むことにより、低価格で画像処理速度の速いコストパフォーマンスの高い電子機器を提供することができる。
なお、本実施形態を利用できる電子機器としては、図7(A)、(B)、(C)に示すもの以外にも、携帯型情報端末、ページャー、電子卓上計算機、タッチパネルを備えた装置、プロジェクタ、ワードプロセッサ、ビューファインダ型又はモニタ直視型のビデオテープレコーダ、カーナビゲーション装置等のLCDを使用する種々の電子機器を考えることができる。
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
例えば、上記実施の形態では、クロックスキューの余裕度が小さいパスの順に(セットアップタイムエラーに対するマージンの小さいパスの順に)、クロックツリーの再構築を行う場合を例にとり説明したが、これに限られない。クロックスキューの余裕度が大きいパスの順やランダムにクロックツリーの再構築を行ってもよい。また、クロックラインに遅延素子を挿入する度に、関連するパスのクロックスキューの余裕度を計算し直し、動的にクロックスキューの余裕度が小さいパスの順を変更するようにしてもよい。
また、上記実施の形態では、クロックスキューの余裕度が小さく、クロックスキューを所与の値(判定値)よりも大きくすることができない場合には、遅延素子を挿入しない場合を例にとり説明したが、これに限られない。クロックスキューを少しでも大きくするために、クロックスキューの余裕度を超えない範囲内で、できるだけ遅延素子を挿入するようにしてもよい。
本発明は、実施の形態で説明した構成と実質的に同一の構成(例えば、機能、方法及び結果が同一の構成、あるいは目的及び効果が同一の構成)を含む。また、本発明は、実施の形態で説明した構成の本質的でない部分を置き換えた構成を含む。また、本発明は、実施の形態で説明した構成と同一の作用効果を奏する構成又は同一の目的を達成することができる構成を含む。また、本発明は、実施の形態で説明した構成に公知技術を付加した構成を含む。
本実施の形態のクロックツリー構成ツールの対象となる同期回路の例を説明するための図。 本実施の形態のクロックツリー構築ツールを使用し、クロックツリーを再構築した後の同期回路の例について説明するための図。 図3(A)は、本実施の形態のクロックツリー構成ツールの対象となる同期回路におけるメインクロックバッファの出力と各フリップフロップのクロック入力に関するタイミングを説明するための図であり、図3(B)は、本実施の形態のクロックツリー構築ツールを使用し、クロックツリーを再構築した後の同期回路におけるメインクロックバッファの出力と各フリップフロップのクロック入力に関するタイミングを説明するための図である。 本実施の形態の集積回路の設計方法(製造方法)について説明するためのフローチャート図。 本実施の形態のマイクロコンピュータのハードウエアブロック図の一例である。 マイクロコンピュータを含む電子機器のブロック図の一例を示す。 図7(A)(B)(C)は、種々の電子機器の外観図の例である。
符号の説明
10 同期回路、20 同期回路、100 サブブロックA、110 フリップフロップ、112 クロック入力、120 フリップフロップ、122 クロック入力、130 フリップフロップ、132 クロック入力、140 組み合わせ回路、142 外部入力、150 組み合わせ回路、200 サブブロックB、210 フリップフロップ、212 クロック入力、220 フリップフロップ、222 クロック入力、230 フリップフロップ、232 クロック入力、240 組み合わせ回路、250 組み合わせ回路、252 外部入力、300 クロックツリー、302 クロックツリー、310 メインクロックバッファ、312 メインクロック、320〜344 クロックバッファ、510 CPU、520 キャッシュメモリ、530 LCDコントローラ、540 リセット回路、550 プログラマブルタイマ、560 リアルタイムクロック(RTC)、570 DMAコントローラ兼バスI/F、580 割り込みコントローラ、590 通信制御回路(シリアルインターフェース)、600 バスコントローラ、610 A/D変換器、620 D/A変換器、630 入力ポート、640 出力ポート、650 I/Oポート、660 クロック発生装置(PLL)、670 プリスケーラ、680 汎用バス、690 各種ピン、700 マイクロコンピュータ、710 ROM、720 RAM、730 MMU、740 クロック停止制御回路、750 専用バス、800 電子機器、810 マイクロコンピュータ(ASIC)、820 入力部、830 メモリ、840 電源生成部850 LCD、860 音出力部、950 携帯電話、952 ダイヤルボタン、954 LCD、956 スピーカ、960 携帯型ゲーム装置、962 操作ボタン、964 十字キー、966 LCD、968 スピーカ、970 パーソナルコンピュータ、972 キーボード、974 LCD、976 音出力部

Claims (9)

  1. 同一のクロックに基づいて動作する複数の記憶素子を有し、第1の記憶素子の出力から第2の記憶素子の入力に至る信号経路上に他の記憶素子を含まない前記第1の記憶素子と前記第2の記憶素子の間におけるクロックスキューが所定の値以下となるようにクロックツリーが構築されている同期回路を含む集積回路装置の設計方法であって、
    所与の前記第1の記憶素子と前記第2の記憶素子の間におけるクロックスキューが所与の値よりも小さい場合には、前記同期回路に対するタイミング解析結果に基づき、前記クロックスキューが所与の値以上になるように前記クロックスキューを変化させる処理を行うことにより、前記同期回路に対してクロックツリーを再構築するクロックツリー再構築ステップを含むことを特徴とする集積回路装置の設計方法。
  2. 請求項1において、
    前記クロックツリー再構築ステップは、
    前記同期回路に対するタイミング解析結果に基づき、前記クロックスキューを変化させることによりタイミングエラーが発生すると判断した場合は、前記クロックスキューを変化させる処理を行わないことを特徴とする集積回路装置の設計方法。
  3. 請求項1又は2において、
    前記クロックツリー再構築ステップは、
    前記第1の記憶素子に接続されたクロックラインに1又は2以上の遅延素子を挿入することにより前記クロックスキューを変化させる処理を行うことを特徴とする集積回路装置の設計方法。
  4. 請求項1乃至3のいずれかにおいて、
    前記クロックツリー再構築ステップは、
    セットアップタイムエラーに対するマージンが小さい信号経路上にある前記第1の記憶素子と前記第2の記憶素子の間におけるクロックスキューを優先的に変化させる処理を行うことを特徴とする集積回路装置の設計方法。
  5. 請求項1乃至4のいずれかにおいて、
    前記クロックツリー再構築ステップと、
    前記クロックツリー再構築ステップによりクロックツリーを再構築した後の同期回路に対して、レイアウト上で実配線を行うステップと、
    前記クロックツリーを再構築した後の同期回路に対して、前記レイアウト上での実配線を考慮したタイミング解析を行うステップと、
    前記レイアウト上での実配線を考慮したタイミング解析結果に基づき、セットアップタイムエラーが発生する信号経路上にある前記第1の記憶素子に接続されたクロックラインから1又は2以上の遅延素子を削除することによりセットアップタイムエラーを解消するようにクロックツリーを修正するステップとを含むことを特徴とする集積回路装置の設計方法。
  6. 同一のクロックに基づいて動作する複数の記憶素子を有し、第1の記憶素子の出力から第2の記憶素子の入力に至る信号経路上に他の記憶素子を含まない前記第1の記憶素子と前記第2の記憶素子の間におけるクロックスキューが所定の値以下となるようにクロックツリーが構築されている同期回路に対してクロックツリーを再構築するクロックツリー構築ツールであって、
    所与の前記第1の記憶素子と前記第2の記憶素子の間におけるクロックスキューが所与の値よりも小さい場合には、前記同期回路に対するタイミング解析結果に基づき、前記クロックスキューが所与の値以上になるように前記クロックスキューを変化させてもタイミングエラーが発生しないと判断した場合には、前記第1の記憶素子に接続されたクロックラインに1又は2以上の遅延素子を挿入することにより、前記クロックスキューが所与の値以上になるように前記クロックスキューを変化させる処理を行い前記同期回路に対してクロックツリーを再構築するクロックツリー再構築ステップと、
    前記クロックツリー再構築ステップによりクロックツリーを再構築した後の同期回路に対して、レイアウト上で実配線を行うステップと、
    前記クロックツリーを再構築した後の同期回路に対して、前記レイアウト上での実配線を考慮したタイミング解析を行うステップと、
    前記レイアウト上での実配線を考慮したタイミング解析結果に基づき、セットアップタイムエラーが発生する信号経路上にある前記第1の記憶素子に接続されたクロックラインから1又は2以上の遅延素子を削除することによりセットアップタイムエラーを解消するようにクロックツリーを修正するステップとを含むことを特徴とするクロックツリー構築ツール。
  7. 請求項1乃至5のいずれかに記載された集積回路装置の設計方法又は請求項6に記載されたクロックツリー構築ツールを用いて設計製造されたことを特徴とする集積回路装置。
  8. 請求項7に記載の集積回路装置を含むことを特徴とするマイクロコンピュータ。
  9. 請求項8に記載のマイクロコンピュータと、
    前記マイクロコンピュータの処理対象となるデータの入力手段と、
    前記マイクロコンピュータにより処理されたデータを出力するための出力手段とを含むことを特徴とする電子機器。
JP2006340147A 2006-12-18 2006-12-18 集積回路装置の設計方法、クロック構築ツール、集積回路装置、マイクロコンピュータ及び電子機器 Withdrawn JP2008152550A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006340147A JP2008152550A (ja) 2006-12-18 2006-12-18 集積回路装置の設計方法、クロック構築ツール、集積回路装置、マイクロコンピュータ及び電子機器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006340147A JP2008152550A (ja) 2006-12-18 2006-12-18 集積回路装置の設計方法、クロック構築ツール、集積回路装置、マイクロコンピュータ及び電子機器

Publications (1)

Publication Number Publication Date
JP2008152550A true JP2008152550A (ja) 2008-07-03

Family

ID=39654652

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006340147A Withdrawn JP2008152550A (ja) 2006-12-18 2006-12-18 集積回路装置の設計方法、クロック構築ツール、集積回路装置、マイクロコンピュータ及び電子機器

Country Status (1)

Country Link
JP (1) JP2008152550A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011076192A (ja) * 2009-09-29 2011-04-14 Fujitsu Ltd 設計支援プログラム、設計支援装置および設計支援方法
JP2013171503A (ja) * 2012-02-22 2013-09-02 Renesas Electronics Corp Lsi設計方法
US20230376670A1 (en) * 2022-05-18 2023-11-23 Synopsys, Inc. Circuit design having an improved clock tree

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011076192A (ja) * 2009-09-29 2011-04-14 Fujitsu Ltd 設計支援プログラム、設計支援装置および設計支援方法
JP2013171503A (ja) * 2012-02-22 2013-09-02 Renesas Electronics Corp Lsi設計方法
US20230376670A1 (en) * 2022-05-18 2023-11-23 Synopsys, Inc. Circuit design having an improved clock tree
US12307187B2 (en) * 2022-05-18 2025-05-20 Synopsys, Inc. Circuit design having an improved clock tree

Similar Documents

Publication Publication Date Title
JP2004172373A (ja) クロストーク修正方法
US11442103B2 (en) Multibit vectored sequential with scan
US10185794B2 (en) Overlaying of clock and data propagation in emulation
US6425115B1 (en) Area efficient delay circuits
JPWO2010100871A1 (ja) 遅延ライブラリ生成システム
CN106452394A (zh) 一种具有自动复位功能的时钟切换结构
US20050251776A1 (en) Integrated circuit design system
US8191024B2 (en) Customizable H-tree synthesis tool
US10432182B2 (en) Semiconductor integrated circuit
JP2009042905A (ja) 集積回路装置のノイズ解析方法、集積回路装置のノイズ解析システム、集積回路装置、電子機器、集積回路装置のノイズ解析プログラム及び情報記憶媒体
JP2008152550A (ja) 集積回路装置の設計方法、クロック構築ツール、集積回路装置、マイクロコンピュータ及び電子機器
US20070129923A1 (en) Dynamic synchronizer simulation
KR102057503B1 (ko) 반도체 회로
JP2010061613A (ja) 集積回路装置の設計方法、クロックツリー構築ツール、集積回路装置、マイクロコンピュータ及び電子機器
JP2008250396A (ja) 半導体集積回路装置の設計方法、半導体集積回路装置、マイクロコンピュータ、電子機器
JP4999379B2 (ja) 半導体集積回路設計方法、半導体集積回路設計装置
JP2003273222A (ja) 回路設計方法及びプログラム
JP2008250583A (ja) レイアウト設計装置及びレイアウト方法
JP4691791B2 (ja) データ処理システム
JP2011077426A (ja) 半導体装置の製造方法及び半導体装置
US20250286543A1 (en) Flip-flops and integrated circuits including the same
JP2011134072A (ja) 半導体集積回路の設計方法及びプログラム
JP2013036960A (ja) 遅延スキャンテスト方法、半導体装置及び半導体装置の設計方法
JP2008251599A (ja) 半導体集積回路装置の製造方法、ハードマクロ、マイクロコンピュータ、電子機器
JP2010003966A (ja) 集積回路装置の設計方法及び製造方法並びに電子機器

Legal Events

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

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080701

A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20100302