JP2004186515A - Integrated circuit and its designing method - Google Patents

Integrated circuit and its designing method Download PDF

Info

Publication number
JP2004186515A
JP2004186515A JP2002353159A JP2002353159A JP2004186515A JP 2004186515 A JP2004186515 A JP 2004186515A JP 2002353159 A JP2002353159 A JP 2002353159A JP 2002353159 A JP2002353159 A JP 2002353159A JP 2004186515 A JP2004186515 A JP 2004186515A
Authority
JP
Japan
Prior art keywords
flip
flop
clock
integrated circuit
delay cell
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.)
Pending
Application number
JP2002353159A
Other languages
Japanese (ja)
Inventor
Takayuki Minemaru
貴行 峯丸
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 JP2002353159A priority Critical patent/JP2004186515A/en
Publication of JP2004186515A publication Critical patent/JP2004186515A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To prevent an increase in circuit size without causing back track in design or an increase in man hours in design of an integrated circuit while a hold time constraint can be satisfied in the integrated circuit during data interchange between two or more circuit blocks. <P>SOLUTION: A circuit for forming a retard by a half period is formed in a post stage of a clock synchronization flip-flop. Half period retard generating circuits 52, 53, 60 are provided on the transmitting side of a signal between blocks 50, 51. A flip-flop carrying netlist description on the transmitting side between blocks is displaced by a half period retard cell. <P>COPYRIGHT: (C)2004,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は集積回路およびその設計方法に関し、特に複数の回路ブロックから構成される半導体装置において、前記複数の回路ブロック間のデータ授受の際に、ホールド時間制約を満足させるための集積回路、および、その集積回路を構成するための集積回路の設計方法に関する。
【0002】
【従来の技術】
従来のLSI設計では、フリップフロップで機能ブロック間の同期を取ることで、データの授受を行っている(例えば、特許文献1)。
【0003】
一方、ホールド時間の制約を満足させるために、レイアウト後の実遅延シミュレーションでエラー発生した個所に対して、データ入力部を遅延素子をつけたフリップフロップに置き換える(例えば、特許文献2)ものや、逆相のクロックで動作するフリップフロップを該当パスに挿入する(例えば、特許文献3)ものがある。
【0004】
さらに、シフトレジスタ構成をとるスキャンパス構成部に、スキャン時に逆相のクロックで動作するラッチを設けて、スキャン時に半周期の遅延がつくことを選択する(例えば、特許文献4)ものもある。
【0005】
【特許文献1】
特開平11−26591号公報(第5−6項、第2図)
【0006】
【特許文献2】
特許2786017号公報(第2項、第1図)
【0007】
【特許文献3】
特開平7−192043号公報(第8−9項、第2−4図)
【0008】
【特許文献4】
特開2000−310671号公報(第5−6項、第1図)
【0009】
【発明が解決しようとする課題】
機能ブロック間をフリップフロップで同期を取り、データの授受を行う場合は、機能ブロック間のクロックの位相差により、ホールド時間制約を満足しにくいことがある。
【0010】
また、レイアウト後に行う実遅延シミュレーションにおいてホールド制約エラーが発生した部分に対して、遅延素子を有するフリップフロップや逆相のフリップフロップを挿入するものでは、集積回路の微細化や高密度化により挿入するスペースが無いという問題がある。また、配線経路が大きく変わり、周囲の経路の遅延制約を満足させることに対して悪影響を及ぼし、設計完了までの時間を増加させやすく、このため新たに逆相クロックを供給する必要が生じるという問題がある。
【0011】
さらに、スキャン時に半周期の遅延がつくことを選択する構成のフリップフロップ回路を用いる従来の手法では、全てのフリップフロップの回路規模が大きくなるという問題がある。
【0012】
そこで本発明は、このような問題点を解決して、集積回路において、複数の回路ブロック間のデータ授受の際に、ホールド時間制約を満足させることができるようにするとともに、集積回路の設計の後戻りや設計工数の増大を招くことがなく、しかも回路規模の増大を防止できるようにすることを目的とする。
【0013】
【課題を解決するための手段】
これらの課題を解決するために本発明においては、ホールド時間制約を満足させるように、半周期の遅延を有するクロック同期フリップフロップセルを用いることを特徴とする。このような半周期の遅延を有するクロック同期フリップフロップセルを、特にクロックの遅延差が発生しやすいブロック間のデータ授受に用いることで、回路規模の増加を防ぐことができる。
【0014】
また本発明によると、クロック同期フリップフロップよりも後段に半周期の遅延を生成するために、逆相クロックで動作するラッチやフリップフロップを備え、それらをあらかじめ1つのセルにしてあるので、挿入するスペースがなくなることや配線経路が変化することや逆相クロック配線が増加することなどは発生しなくなる。
【0015】
本発明の第1の方法は、ネットリスト記述された、ブロック間の送信側のフリップフロップを半周期遅延セルに置換するに際し、ホールド制約を満足しにくいと予想される部分にレイアウトを行う前にあらかじめ遅延を与えておくものである。これにより、レイアウト後の遅延変動を減少させることが可能となる。また、一律全てのフリップフロップに半周期の遅延を持たせるのではなく、ブロック間に限定することで、回路規模の増加を防ぐことができる。
【0016】
さらに、特定のフリップフロップを指定するセル名リストや、ブロックを指定するブロック名リストや、クロック信号を指定するクロック名リストや、あるクロック信号とそれとは異なる別のクロック信号の組を指定するクロック対リストを用いて、あらかじめ半周期遅延セルに置換するセルを選択しても良い。このように置換するセル数を絞り込むことで、回路規模の増加をさらに減少することができる。
【0017】
本発明の第2の方法は、ネットリスト記述された、ブロック間の信号の送受信がフリップフロップからフリップフロップへのシフトレジスタ構成となっているかどうかを調べ、該当する場合に送信側のフリップフロップを半周期遅延セルに置換するものであって、ホールド制約を満足しにくいと予想される部分にレイアウトを行う前にあらかじめ遅延を与えておくものである。これにより、レイアウト後の遅延変動を減少させることが可能となる。また、一律全てのフリップフロップに半周期の遅延を持たせるのではなく、ブロック間に限定することで、回路規模の増加を防ぐことができる。
【0018】
なお、ネットリスト記述中にある各クロック同期フリップフロップよりも後段に、前記フリップフロップに入力されているクロックの逆相で動作するラッチないし他のフリップフロップが接続されている場合は、ネットリスト中の前記フリップフロップとその後段にあるラッチないし他のフリップフロップをまとめて半周期遅延セルに置換することで、配線数やクロック配線の分岐数を減らすこともできる。
【0019】
本発明の第3の方法は、RTL記述を読み込んで合成する際に、ブロック間の送信側のフリップフロップとして半周期遅延セルを割付けるものであって、ホールド制約を満足しにくいと予想される部分にレイアウトを行う前にあらかじめ遅延を与えておくものである。これにより、レイアウト後の遅延変動を減少させることが可能となる。また、一律全てのフリップフロップに半周期の遅延を持たせるのではなく、ブロック間に限定することで、回路規模の増加を防ぐことができる。
【0020】
さらに、ブロックを指定するブロック名リストや、ブロック間を指定するブロック間リストや、クロック信号を指定するクロック名リストや、あるクロック信号とそれとは異なる別のクロック信号の組を指定するクロック対リストを用いて、半周期遅延セルに割付ける部分をあらかじめ選択しても良い。これにより、割付けするセル数を絞り込むことで、回路規模の増加をさらに減少できる。
【0021】
本発明の第4の方法は、合成時に、ブロック間の信号の送受信が第1のフリップフロップから第2のフリップフロップへのシフトレジスタ構成となっているかどうかを調べ、該当する送信側のフリップフロップとして半周期遅延セルを割付けるものであって、ホールド制約を満足しにくいと予想される部分にレイアウトを行う前にあらかじめ遅延を与えておくものである。これにより、レイアウト後の遅延変動を減少させることが可能となる。また、一律全てのフリップフロップに半周期の遅延を持たせるのではなく、ブロック間に限定することで、回路規模の増加を防ぐことができる。
【0022】
なお、RTL記述中にある各クロック同期フリップフロップよりも後段に、前記フリップフロップに入力されているクロックの逆相で動作するラッチないし他のフリップフロップが接続されている場合は、前記フリップフロップとその後段にあるラッチないし他のフリップフロップをまとめて半周期遅延セルに割付けることで、配線数やクロック配線の分岐数を減らすこともできる。
【0023】
本発明の第5の方法は、合成結果を仮配線遅延を用いてチェックして、タイミング違反を検知した場合において、始点のフリップフロップからの全経路で、半周期以上のホールド違反を起こしているときには、その始点のフリップフロップを半周期遅延セルに置き換えるものであつて、ホールド制約を満足しにくいと予想される部分にレイアウトを行う前にあらかじめ遅延を与えておくものである。
これにより、レイアウト後の遅延変動を減少させることが可能となる。また、一律全てのフリップフロップに半周期の遅延を持たせるのではなく、エラー発生部に限定することで、回路規模の増加を防ぐことができる。
【0024】
なお、半周期未満のホールド違反を起こしている経路がある場合に、その始点となるフリップフロップからの全経路の最大遅延時間が半周期未満の場合は、前記始点となるフリップフロップを半周期遅延セルに置き換えても遅延制約を満足でき、これにより、レイアウト後に遅延を調整する部分を削減することができる。
【0025】
本発明の第6の方法は、SRAM等のマクロにおいて、他のセルよりも比較的大きなホールド時間制約をあらかじめ必要としている場合は、合成用ライブラリ内のセルの入力ホールド時間制約を見てそのセルへの入力信号の始点にあるフリップフロップとして半周期遅延セルを割付けるものであり、ホールド制約を満足しにくいと予想される部分にレイアウトを行う前にあらかじめ遅延を与えておくものである。これにより、レイアウト後の遅延変動を減少させることが可能となる。
【0026】
また、合成用ライブラリ内のセルの入力ホールド時間制約を見る代わりに、合成用ライブラリに半周期遅延セルを割付けることを指示するための属性を与えて、それにより割付けるようにしても良い。
【0027】
さらに、RTL記述に半周期遅延セルを割付けることを指示するための記述をしておき、その記述のあるフリップフロップを割り付けるべき構文に対して、半周期遅延セルを割付けることもできる。
【0028】
【発明の実施の形態】
本発明の実施の形態について、図1から図22を用いて説明する。
(実施の形態1)
図1は請求項1に記載の本発明にもとづく半周期遅延セルの構成を示したものである。
【0029】
図1に示される半周期遅延セル1は、クロック同期フリップフロップ2と、半周期遅延回路3とで構成される。クロック同期フリップフロップ2は、データ入力4の信号を、クロック入力5から与えられるクロック信号の立ち上がりで内部に格納する。格納したデータは、クロック同期フリップフロップ2のデータ出力6から半周期遅延回路3のデータ入力7へ与えられ、半周期遅延回路3でクロック入力5からの信号に対して半周期遅延された後、データ出力8から出力される。
【0030】
図2は、半周期遅延回路3の一例を示す。この遅延回路3は、逆相クロックで動作するラッチ回路である(請求項3に相当)。
データ入力7はトランスファゲート10の入力11に接続される。また、クロック入力5からのクロック信号は、インバータ12に入力されて、トランスファゲート10、インバータ13、トランスファゲート15に出力される。なお、トランスファゲート10はクロック信号が”L”の場合にオンし、トランスファゲート15はクロック信号が”H”の場合にオンするように接続されている。インバータ13の出力は、トランスファゲート10とトランスファゲート15のインバータ12とは逆極性の制御ゲートとに入力される。トランスファゲート10の出力14はトランスファゲート15の出力16とワイヤードオアされてインバータ17に入力される。インバータ17の出力はインバータ20に入力され、インバータ20の出力はデータ出力8として半周期遅延回路3の外に出力される。また、インバータ17の出力はインバータ18に入力される。インバータ18の出力はトランスファゲート15の入力19に接続される。
【0031】
次に簡単に動作を説明する。クロック入力5が”H”の期間は、トランスファゲート10はオフで、トランスファゲート15はオンになる。これにより、インバータ17とインバータ18のループが形成され、期間中ある一定値を出力する。また、クロック入力5が”L”になると、トランスファゲート10はオンで、トランスファゲート15はオフになる。これによりデータ入力7からのデータがインバータ17とインバータ20を通じてデータ出力8から出力される。
【0032】
以上の動作をする半周期遅延回路3を、図1におけるクロック同期フリップフロップ2の後段に接続することで、クロック入力5の立ち上がりで格納されたデータを、クロック入力5の立下り(”L”になる最初)からデータ出力8より出力することとなり、半周期遅延セルとして機能する。
【0033】
図3に、半周期遅延回路3として逆相クロックで動作するクロック同期フリップフロップ回路30を接続した例を示す(請求項4に相当)。
クロック入力5からのクロック信号をインバータ31で反転し、クロック同期フリップフロップ30のクロック入力32から入力する。また、クロック同期フリップフロップ30のデータ入力33は、半周期遅延回路3のデータ入力7と接続し、クロック同期フリップフロップ30のデータ出力34はデータ出力8と接続する。
【0034】
この構成により、クロック入力5の立ち上がりでクロック同期フリップフロップ2に格納されたデータは、次のクロック入力5の立下りでクロック同期フリップフロップ30に格納され、データ出力8として出力される。これにより、クロック入力5の立ち上がりから半周期遅延してデータが出力される。
【0035】
図4に、半周期遅延セルをブロック間での信号の送信側に用いた例を示す(請求項2に相当)。
ブロック(A)50とブロック(B)51との間での信号授受において、ブロック(A)50からブロック(B)51へ信号を伝達する信号線55および信号線56のうち、信号線55は半周期遅延セル52の出力とフリップフロップ58の入力とに接続され、信号線56は半周期遅延セル53の出力とフリップフロップ59の入力とに接続されている。また逆にブロック(B)51からブロック(A)50へ信号を伝達する信号線57は、半周期遅延セル60の出力とフリップフロップ54の入力とに接続されている。また半周期遅延セル52、53とフリップフロップ54とにはバッファ62を通じてクロック61が入力され、フリップフロップ58、59と半周期遅延セル60とにはバッファ63を通じてクロック61が入力される。
【0036】
このような構成をとることで、ブロック(A)50とブロック(B)51との間のデータ授受を行う各フリップフロップ54、58、59と半周期遅延セル52、53、60とにおいて、バッファ62とバッファ63を通じて与えられるクロックの到達時刻に差が有った場合でも、送信側に半周期の遅延を有しているので、クロック信号の到達時間に半周期の差が生じない限り、ホールド時間の制約を違反することは無い。
【0037】
(実施の形態2)
図5は請求項5に記載の本発明の集積回路設計方法のフローを示した図で、RTL記述ステップ100で論理をRTL記述し、そのRTL記述を合成ステップ101で論理回路に割り付けてネットリストを作成する。次に作成したネットリストに対し、置換ステップ102においてブロック間の送信側のフリップフロップを半周期遅延セルに置換する。置換ステップ102での置換後にDFTステップ103でテスト回路挿入を実施したネットリストを作成し、そのネットリストに基づいてレイアウトステップ104でレイアウト作成する。
【0038】
次に置換ステップ102の詳細を説明する。ブロック間の送信側のフリップフロップを半周期遅延セルに置換する場合に、特定のフリップフロップを指定するセル名リスト111、ブロックを指定するブロック名リスト112、ブロック間を指定するブロック間リスト113、クロック信号を指定するクロック名リスト114、あるクロック信号とそれとは異なる別のクロック信号の組を指定するクロック対リスト115をリスト読み込みステップ110で読み込んで、前記複数のリストから半周期遅延セルに置換するブロック間の送信側のフリップフロップを選択し、セル置換ステップ116で半周期遅延セルに置換する。
【0039】
例えば、セル名リスト111を読み込んだ場合は、そのセル名と一致したブロック間の送信側のフリップフロップを選択して置換する(請求項6に相当)。
図6はその様子を示したもので、ブロック(A)120とブロック(B)121とのブロック間において、クロック131からバッファ132、バッファ133を通じて各フリップフロップにクロックが供給され、ブロック間をブロック(A)120からブロック(B)121へと信号線125−127で信号が伝達される構成の場合に、セル名リストから読み込んだセル名に相当する2つのフリップフロップを半周期遅延セル122、123に置換し、リストに記載されていない外のフリップフロップ124、128−130はそのままにする。
【0040】
また例えば、図5においてブロック名リスト112を読み込んだ場合は、ブロック名リスト112にあるブロックに存在するフリップフロップの内、ブロック間の送信側となるものを選択して置換する(請求項7に相当)。
【0041】
図7はその様子を示したもので、ブロック(A)140とブロック(B)141とのブロック間において、クロック151からバッファ152、バッファ153を通じて各フリップフロップ144、148−150にクロックが供給され、ブロック間をブロック(A)140からブロック(B)141へと信号線145、146で信号が伝達され、ブロック(B)141からブロック(A)140へと信号線147で信号が伝達される構成の場合において、ブロック名リスト112にブロック(A)140が記載されているときには、ブロック(A)140が送信側となるフリップフロップを半周期遅延セル142、143に置換し、受け側のフリップフロップ144や、リストに記載されていないブロック(B)のフリップフロップ148−150はそのままにする。
【0042】
さらに例えば、図5においてブロック間リスト113を読み込んだ場合には、リストに記載された一方のブロックと、それと対をなすブロックとの間のデータ授受を行う信号線の送信側のフリップフロップを選択して置換する(請求項8に相当)。
【0043】
図8はその様子を示したもので、ブロック(A)160とブロック(B)161、ブロック(A)160とブロック(C)162とのブロック間において、クロック172からバッファ173‐175を通じて各フリップフロップ165、169−171にクロックが供給され、ブロック間をブロック(A)160からブロック(B)161へと信号線166、167で信号が伝達され、ブロック間をブロック(A)160からブロック(C)162へと信号線168で信号が伝達される構成の場合において、ブロック間リスト113にブロック(A)160とブロック(B)161とが記載されているときには、ブロック(A)160とブロック(B)161との間の信号線166、167において、ブロック(A)160が送信側となるフリップフロップを半周期遅延セル163、164に置換し、受け側のフリップフロップ169、170や、ブロック(A)160からブロック(C)162へのフリップフロップ165、171は、そのままにする。
【0044】
次に、例えばクロック名リスト114を読み込んだ場合は、そのクロックに接続されたフリップフロップの内、ブロック間の送信側となるものを選択して置換する(請求項9に相当)。
【0045】
図9はその様子を示したもので、ブロック(A)180とブロック(B)181とのブロック間において、クロック191からバッファ192、バッファ193を通じて各フリップフロップにクロックが供給され、ブロック間をブロック(A)180からブロック(B)181へと信号線185、186で信号が伝達され、ブロック(B)181からブロック(A)180へと信号線187で信号が伝達される構成の場合において、クロック名リスト114にクロック191が記載されているときには、送信側となるフリップフロップを半周期遅延セル182、183、190に置換し、受け側のフリップフロップ184、188、189はそのままにする。
【0046】
また、例えばクロック対リスト115を読み込んだ場合は、リストに記載された一方のクロックに接続されたフリップフロップの内で、それと対をなすクロックに接続されたフリップフロップに対してブロック間での信号送信をしているものを選択して置換する(請求項10に相当)。
【0047】
図10はその様子を示したもので、ブロック(A)200とブロック(B)201とのブロック間において、クロック211からバッファ212を通じてブロック(A)200の各フリップフロップにクロックが供給され、クロック213からバッファ214を通じてブロック(B)201のフリップフロップ208、209にクロックが供給され、クロック215からバッファ216を通じてブロック(B)201のフリップフロップ210にクロックが供給され、ブロック間をブロック(A)200からブロック(B)201へと信号線205‐207で信号が伝達される構成の場合において、クロック対リスト115にクロック211とクロック213の対が記載されているときには、クロック211に接続されているフリップフロップの内で、それと対をなすクロック213に接続されているフリップフロップに対してブロック間での信号送信をしているフリップフロップを半周期遅延セル202、203に置換し、異なるクロック215との間で信号送信をしているフリップフロップ204や受け側のフリップフロップ208−210はそのままにする。
【0048】
(実施の形態3)
図11は、請求項11に記載の集積回路設計方法のフローを示したものである。まず、RTL記述ステップ300で論理をRTL記述し、そのRTL記述を合成ステップ301で論理回路に割り付けてネットリストを作成する。次に、作成したネットリストに対し、シフトレジスタ調査ステップ302で、ブロック間の信号の送受信が、フリップフロップからフリップフロップへのシフトレジスタ構成となっているか否かを調べ、置換ステップ303においてシフトレジスタ調査ステップ302の調査結果を基にブロック間の送信側のフリップフロップを半周期遅延セルに置換する。置換ステップ303での置換後にDFTステップ304でテスト回路挿入を実施したネットリストを作成し、そのネットリストに基づいてレイアウトステップ305でレイアウト作成する。
【0049】
図12はその様子を示したもので、ブロック(A)310とブロック(B)311とのブロック間において、クロック321からバッファ322、バッファ323を通じて各フリップフロップにクロックが供給され、ブロック間をブロック(A)310からブロック(B)311へと信号線315、316で信号が伝達され、ブロック(B)311からブロック(A)310へと信号線317で信号が伝達され、信号線316はブロック(B)311内のゲート325に入力されて信号線324と論理和をとった後にフリップフロップ319に入力される構成の場合には、シフトレジスタ調査ステップ302において、信号線315と信号線317で接続された2組のフリップフロップ間がシフトレジスタ構成になっていることが判明したときに、置換ステップ303では、その結果を受けて、送信側のフリップフロップを半周期遅延セル312、320に置換し、途中にゲート325のあるフリップフロップ313や、受信側のフリップフロップ314、318、319はそのままにする。
【0050】
(実施の形態4)
図13は、請求項12に記載の集積回路設計方法のフローを示したものである。まず、RTL記述ステップ400で論理をRTL記述し、そのRTL記述を合成ステップ401で論理回路に割り付けてネットリストを作成する。次に作成したネットリストに対し、逆相クロック接続調査ステップ402で、各クロック同期フリップフロップの後段に、前記フリップフロップに入力されているクロックの逆相で動作するラッチないしフリップフロップが接続されているかどうかを調べ、置換ステップ403において逆相クロック接続調査ステップ402の調査結果を基にネットリスト中の前記フリップフロップとそれよりも後段にあるラッチないしフリップフロップをまとめて半周期遅延セルに置換する。置換ステップ403での置換後にDFTステップ404でテスト回路挿入を実施したネットリストを作成し、そのネットリストに基づいてレイアウトステップ405でレイアウト作成する。
【0051】
図14はその様子を示した図で、(a)は合成ステップ401で論理回路に割り付けたネットリストの一部である。ここで、信号線500とクロック501がフリップフロップ502に入力されている。また、クロック501はインバータ503を通じてフリップフロップ505に供給されている。このとき、フリップフロップ505はフリップフロップ502に対しクロックの逆相で動作していることになる。フリップフロップ502の出力は信号線504を通じてフリップフロップ505に入力されている。フリップフロップ505の出力は信号線506を通じて次の回路に接続される。
【0052】
(b)は置換ステップ403で置換処理した後を示したものである。ここでは、逆相クロック接続調査ステップ402において、(a)のフリップフロップ502とフリップフロップ505が、クロック同期フリップフロップよりも後段に、このフリップフロップに入力されているクロックの逆相で動作するフリップフロップがある構成になっていることが判明する。そこで、置換ステップ403において、インバータ503、フリップフロップ505、信号線504を削除し、フリップフロップ502を半周期遅延セル510に置換する。
【0053】
(実施の形態5)
図15は請求項13に記載の集積回路設計方法のフローを示したもので、RTL記述ステップ600で論理をRTL記述し、そのRTLを読み込みステップ601で読み込み、読み込んだRTL記述を合成ステップ602で論理回路に割り付けてネットリストを作成する。
【0054】
次に合成ステップ602の詳細を説明する。ブロック間の送信側のフリップフロップを半周期遅延セルに置換する場合に、ブロックを指定するブロック名リスト610、ブロック間を指定するブロック間リスト611、クロック信号を指定するクロック名リスト612、あるクロック信号とそれとは異なる別のクロック信号の組を指定するクロック対リスト613をリスト読み込みステップ614で読み込む。そして、セル合成ステップ615において、論理合成を行う場合に、リストに該当する構成のフリップフロップとして半周期遅延セルを割り付け、ネットリストを作成する。
【0055】
例えば、ブロック名リスト610を読み込んだ場合は、このブロック名リスト610にあるブロックの論理を合成するときにおいて、フリップフロップを割り付ける際に、ブロック間の送信側となるものについては半周期遅延セルを割り付ける(請求項14に相当)。
【0056】
次に例えば、ブロック間リスト611を読み込んだ場合は、このブロック間リスト611に記載された第1のブロックと、それと対をなす第2のブロックとの論理を合成するときにおいて、第1のブロックのフリップフロップを割り付ける際に第2のブロックへ信号を出力する場合には半周期遅延セルを割り付け、逆に第2のブロックのフリップフロップを割り付ける際に第1のブロックへ信号を出力する場合には半周期遅延セルを割り付ける(請求項15に相当)。
【0057】
また例えば、クロック名リスト612を読み込んだ場合は、このクロック名リスト612に記載されたクロックに接続されているフリップフロップを割り付ける際に、ブロック間の送信側となるものについては半周期遅延セルを割り付ける(請求項16に相当)。
【0058】
さらに例えば、クロック対リスト613を読み込んだ場合は、このクロック対リスト613に記載された第1のクロックと、それと対をなす第2のクロックに接続されたフリップフロップを割り付ける際に、第1のクロックのフリップフロップから異なるブロック間の第2のクロックに接続されたフリップフロップへの送信がある場合は、第1のクロックのフリップフロップとして半周期遅延セルを割り付け、逆に第2のクロックのフリップフロップから異なるブロック間の第1のクロックに接続されたフリップフロップへの送信がある場合は、第2のクロックのフリップフロップとして半周期遅延セルを割り付ける(請求項17に相当)。
【0059】
(実施の形態6)
図16は、本発明の請求項18、19に記載の集積回路設計方法のフローを示したものである。ここでは、RTL記述ステップ700で論理をRTL記述し、そのRTLを読み込みステップ701で読み込み、読み込んだRTL記述を合成ステップ702で論理回路に割り付けてネットリストを作成する。合成ステップ702において、例えば図17に示すようなRTL記述の割付を行う際に、BLOCKAのRTL記述(RTL記述711)のフリップフロップ(REGA記述712)出力が、BLOCKBのRTL記述(RTL記述713)のフリップフロップ(REGB)入力に、上位階層のRTL記述(RTL記述710)内の配線(NETA接続記述715)で一対一接続される。そして、フリップフロップBの記述(REGB記述714)がNETAからの信号を単にクロック(CLKB)の立ち上がりで格納するものである場合は、フリップフロップAに半周期遅延セルを割り付けるようにする(請求項18に相当)。
【0060】
また、合成ステップ702において、例えば図18に示すようなRTL記述750の割付を行う際に、RTL記述750内のフリップフロップAの記述(REGA記述751)の出力(OUTA)がフリップフロップBの記述(REGB記述752)における一対一接続された入力となり、かつREGB記述752がOUTAからの信号を単にそのクロックで取り込む構成で、なおかつREGA記述751のクロック記述とREGB記述752のクロック記述が逆相の関係の場合は、REGA記述751とREGB記述752とをまとめて、入力(INA)を取り込んで出力(OUTB)する半周期遅延セルを割り付けるようにする(請求項19に相当)。
【0061】
(実施の形態7)
図19は、本発明の請求項20、21に記載の集積回路設計方法のフローを示すものである。RTL記述ステップ800で論理をRTL記述し、そのRTLを読み込みステップ801で読み込み、読み込んだRTL記述を合成ステップ802で論理回路に割り付けてネットリストを作成し、作成したネットリストについてタイミングチェックステップ803で仮配線遅延を用いて合成結果のタイミングをチェックし、判別ステップ804において前記タイミングチェックステップ803で違反が無い場合はそのまま終了し、違反がある場合には修正ステップ805で修正を施して終了する。
【0062】
修正ステップ805においては、違反個所を修正する場合に、始点のフリップフロップからの全経路で半周期以上のホールド違反を起こしている場合は、その始点フリップフロップを半周期遅延セルに置き換える(請求項20に相当)。
【0063】
また始点のフリップフロップからの全経路の内、少なくとも1つの経路が半周期未満のホールド違反を起こしている場合において、始点フリップフロップからの全経路の最大遅延時間が半周期未満であるとき、すなわち半周期遅れても違反が生じないときにも、始点フリップフロップを半周期遅延セルに置き換える(請求項21に相当)。
【0064】
(実施の形態8)
図20は、本発明の請求項22、23に記載の集積回路設計方法のフローを示したものである。ここで、RTL記述ステップ850で論理をRTL記述し、そのRTLを読み込みステップ851で読み込む。次にホールド時間判別ステップ853において、セルライブラリ852を参照し、読み込んだRTL内で利用されるライブラリセルのうち、閾値854で与えられる値以上のセルがあった場合には、そのライブラリセルにおいて、前記セルの入力に接続される信号線の始点となるフリップフロップを半周期遅延セルとする属性を付加する。合成ステップ855では、属性があるライブラリセルの入力に接続される始点のフリップフロップとして半周期遅延セルを割り付けて、ネットリストを作成する(請求項22に相当)。
【0065】
なお、セルライブラリ852にある、ホールド時間がある閾値以上必要なセルについては、あらかじめ前記セルの入力に接続される信号線の始点となるフリップフロップを半周期遅延セルとする属性を付加することで、ホールド時間判別ステップ853を省略することもできる(請求項23に相当)。
【0066】
(実施の形態9)
図21は、請求項24に記載の集積回路設計方法のフローを示したものであるる。これは、RTL記述ステップ860で論理をRTL記述し、そのRTLを読み込みステップ861で読み込み、読み込んだRTL記述を合成ステップ862で論理回路に割り付けてネットリストを作成する構成である。ここで、RTLを読み込むための読み込みステップ861は、RTL記述の内容を解析し、半周期遅延セルを割付けることを指示するための記述が有るかどうかを調べる。このために読み込みステップ861は、記述解析ステップ870と、その結果を受けて、該当したフリップフロップに半周期遅延セルを割り付けることを指示する、半周期遅延セル割り付け指示ステップ871とからなる。合成ステップ862では、半周期遅延セル割り付け指示ステップ871で指示されたフリップフロップに半周期遅延セルを割り付ける。
【0067】
図22は、RTL記述に半周期遅延セルを割付けることを指示するための記述を与える一例を示したもので、RTL記述880中に半周期遅延セル割り付け記述881を記載し、そのすぐ下にあるフリップフロップの記述(REG記述882)の部分を図21の半周期遅延セル割り付け指示ステップ871で指定するようにしたものである。
【0068】
ここで、例えば、半周期遅延セル割り付け記述881の先頭に”//”を記載した場合は、シミュレーションで無視するように取り決めておくこともできる(請求項25に相当)。
【0069】
また、たとえ半周期遅延セル割り付け記述881が有ったとしても、合成用のライブラリとして半周期遅延セルが存在しない場合には、無視するようにしても良い(請求項26に相当)。
【0070】
【発明の効果】
請求項1に記載の本発明によれば、半周期遅延セルを、通常のフリップフロップと置換して用いることで、簡単にホールド時間をクロックサイクルの半周期として確保することができる。
【0071】
また特にクロックの遅延差が発生しやすいブロック間のデータ授受に用いることで、回路規模の増加を防ぐことができる(請求項2)。
また、半周期遅延セルとして、クロック同期フリップフロップよりも後段に、半周期の遅延を生成する回路として、逆相クロックで動作するラッチ回路や逆相クロックで動作するクロック同期フリップフロップ回路を備えた構成にすることで、それらをあらかじめ1つのセルにしてあることから、挿入するスペースがなくなることや配線経路が変化することや逆相クロック配線が増加することといった問題は発生しなくなる(請求項3、4)。
【0072】
請求項5に記載の本発明の集積回路設計方法によれば、レイアウトを行う前に、ネットリスト記述されたブロック間の送信側のフリップフロップを半周期遅延セルに置換することで、ホールド制約を満足しにくいと予想される部分にあらかじめ遅延を与えることで、レイアウト後のホールド時間を満足させ、レイアウト後の遅延変動を減少させることが可能となる。また、一律全てのフリップフロップに半周期の遅延を持たせるのではなく、ブロック間に限定することで、回路規模の増加を防ぐことができる。
【0073】
さらに、特定のフリップフロップを指定するセル名リストや、ブロックを指定するブロック名リストや、クロック信号を指定するクロック名リストや、あるクロック信号とそれとは異なる別のクロック信号の組を指定するクロック対リストを用いて、半周期遅延セルに置換するセルをあらかじめ選択しても良い。このようにすると、置換するセル数を絞り込むことで、回路規模の増加をさらに減少できる(請求項6−10)。
【0074】
また、請求項11に記載の本発明の集積回路設計方法によれば、ネットリスト記述されたブロック間の信号の送受信が、フリップフロップからフリップフロップへのシフトレジスタ構成となっているかどうかを調べ、該当する場合に送信側のフリップフロップを半周期遅延セルに置換することで、ホールド制約を満足しにくいと予想される部分にレイアウトを行う前にあらかじめ遅延を与えることで、レイアウト後のホールド時間を満足させ、レイアウト後の遅延変動を減少させることが可能となる。さらに、一律全てのフリップフロップに半周期の遅延を持たせるのではなく、ブロック間に限定することで、回路規模の増加を防ぐことができる。
【0075】
なお、ネットリスト記述中にある各クロック同期フリップフロップよりも後段に、前記フリップフロップに入力されているクロックの逆相で動作するラッチないし他のフリップフロップが接続されている場合は、ネットリスト中の前記フリップフロップとそれよりも後段にあるラッチないし他のフリップフロップをまとめて半周期遅延セルに置換することで、配線数やクロック配線の分岐数を減らすこともできる(請求項12)。
【0076】
さらに、請求項13に記載の本発明の集積回路設計方法によれば、RTL記述を読み込んで合成する際に、ブロック間の送信側のフリップフロップとして半周期遅延セルを割付けて、ホールド制約を満足しにくいとレイアウトを行う前に予想される部分にあらかじめ遅延を与えることで、レイアウト後のホールド時間を満足させ、レイアウト後の遅延変動を減少させることが可能となる。また、一律全てのフリップフロップに半周期の遅延を持たせるのではなく、ブロック間に限定することで、回路規模の増加を防ぐことができる。
【0077】
さらに、ブロックを指定するブロック名リストや、ブロック間を指定するブロック間リストや、クロック信号を指定するクロック名リストや、あるクロック信号とそれとは異なる別のクロック信号の組を指定するクロック対リストを用いて、あらかじめ半周期遅延セルに割付ける部分を選択しても良い。このようにすると、割付けするセル数を絞り込むことで、回路規模の増加をさらに減少することができる(請求項14‐17)。
【0078】
請求項18に記載の本発明の集積回路設計方法によれば、合成時のブロック間の信号の送受信がフリップフロップからフリップフロップへのシフトレジスタ構成となっているかどうかを調べ、該当する送信側のフリップフロップとして半周期遅延セルを割付けて、ホールド制約を満足しにくいとレイアウトを行う前に予想される部分にあらかじめ遅延を与えることで、レイアウト後のホールド時間を満足させ、レイアウト後の遅延変動を減少させることが可能となる。また、一律全てのフリップフロップに半周期の遅延を持たせるのではなく、ブロック間に限定することで、回路規模の増加を防ぐことができる。
【0079】
なお、RTL記述中にある各クロック同期フリップフロップよりも後段に、前記フリップフロップに入力されているクロックの逆相で動作するラッチないし他のフリップフロップが接続されている場合は、前記フリップフロップとその後段にあるラッチないし他のフリップフロップをまとめて半周期遅延セルに割付けることで、配線数やクロック配線の分岐数を減らすこともできる(請求項19)。
【0080】
また、請求項20に記載の本発明の集積回路設計方法によれば、仮配線遅延を用いてタイミング違反を検知することで、半周期遅延セルに置き換えるために、ホールド制約を満足しにくいとレイアウトを行う前に予想される部分にあらかじめ遅延を与えることで、レイアウト後のホールド時間を満足させ、レイアウト後の遅延変動を減少させることが可能となる。また、一律全てのフリップフロップに半周期の遅延を持たせるのではなく、エラー発生部に限定することで、回路規模の増加を防ぐことができる。
【0081】
なお、半周期未満のホールド違反を起こしている経路がある場合に、その始点となるフリップフロップからの全経路の最大遅延時間が半周期未満の場合は、前記始点となるフリップフロップを半周期遅延セルに置き換えても遅延制約を満足でき、これにより、レイアウト後に遅延を調整する部分を削減することができる(請求項21)。
【0082】
請求項22に記載の本発明の集積回路設計方法によれば、SRAM等のマクロにおいて、比較的大きなホールド時間制約をあらかじめ必要とすることが判っている場合に、合成用ライブラリ内のセルの入力ホールド時間制約を見て、そのセルへの入力信号の始点にあるフリップフロップとして半周期遅延セルを割付ける様にして合成し、ホールド制約を満足しにくいとレイアウトを行う前に予想される部分にあらかじめ遅延を与えることで、レイアウト後のホールド時間を満足させ、レイアウト後の遅延変動を減少させることが可能となる。
【0083】
また、合成用ライブラリ内のセルの入力ホールド時間制約を見る代わりに、合成用ライブラリに半周期遅延セルを割付けることを指示するための属性を与えて、それにより割付けるようにしても良い(請求項23)。
【0084】
さらに、RTL記述に半周期遅延セルを割付けることを指示するための記述をしておき、その記述のあるフリップフロップを割り付けるべき構文に対して、半周期遅延セルを割付けることもできる(請求項24)。
【0085】
なお、半周期遅延セルを割付ける記述は論理シミュレーションで無視されるようにしておくとより良い(請求項25)。
また、半周期遅延セルを割付ける記述があっても、合成用ライブラリに半周期遅延セルが無い場合には、普通のフリップフロップを割り付けるようにすれば、RTL記述を半周期遅延セルの有無に関係なく共通化できる。
【図面の簡単な説明】
【図1】本発明の実施の形態1の集積回路における半周期遅延セルの構成を示した図
【図2】図1における半周期遅延回路の例を示した図
【図3】本発明の実施の形態1の集積回路におけるクロック同期フリップフロップ回路を接続した半周期遅延回路の例を示した図
【図4】本発明にもとづき半周期遅延セルをブロック間での信号の送信側に用いた例を示した図
【図5】本発明の実施の形態2の集積回路設計方法のフローを示した図
【図6】図5におけるセル名リストを用いて半周期遅延セルに置換する様子を示した図
【図7】図5におけるブロック名リストを用いて半周期遅延セルに置換する様子を示した図
【図8】図5におけるブロック間リストを用いて半周期遅延セルに置換する様子を示した図
【図9】図5におけるクロック名リストを用いて半周期遅延セルに置換する様子を示した図
【図10】図5におけるクロック対リストを用いて半周期遅延セルに置換する様子を示した図
【図11】本発明の実施の形態3の集積回路設計方法のフローを示した図
【図12】図11のフローにおける半周期遅延セルに置換する様子を示した図
【図13】本発明の実施の形態4の集積回路設計方法のフローを示した図
【図14】図13のフローにおける半周期遅延セルに置換する様子を示した図
【図15】本発明の実施の形態5の集積回路設計方法のフローを示した図
【図16】本発明の実施の形態6の集積回路設計方法のフローを示した図
【図17】図16のフローにおけるRTL記述の例を示した図
【図18】図16のフローにおけるRTL記述の他の例を示した図
【図19】本発明の実施の形態7の集積回路設計方法のフローを示した図
【図20】本発明の実施の形態8の集積回路設計方法のフローを示した図
【図21】本発明の実施の形態9の集積回路設計方法のフローを示した図
【図22】図21のフローにおける半周期遅延セルを割付けることを指示するためのRTL記述を示した図
【符号の説明】
1 半周期遅延セル
2 クロック同期フリップフロップ
3 半周期遅延回路
4 データ入力
5 クロック入力
8 データ出力
50 ブロック(A)
51 ブロック(B)
52 半周期遅延セル
53 半周期遅延セル
54 フリップフロップ
58 フリップフロップ
59 フリップフロップ
60 半周期遅延セル
61 クロック
62 バッファ
63 バッファ
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an integrated circuit and a method of designing the same, particularly, in a semiconductor device including a plurality of circuit blocks, an integrated circuit for satisfying a hold time constraint when data is transferred between the plurality of circuit blocks, and The present invention relates to a method for designing an integrated circuit for forming the integrated circuit.
[0002]
[Prior art]
In a conventional LSI design, data transfer is performed by synchronizing functional blocks with a flip-flop (for example, Patent Document 1).
[0003]
On the other hand, in order to satisfy the restriction of the hold time, a portion where an error occurs in a real delay simulation after layout is replaced with a flip-flop having a delay element at a data input portion (for example, Patent Document 2). There is one in which a flip-flop that operates with an opposite-phase clock is inserted into a corresponding path (for example, Patent Document 3).
[0004]
Furthermore, there is a scan path configuration unit having a shift register configuration, in which a latch that operates with a clock having an opposite phase at the time of scanning is provided so as to select a half-cycle delay at the time of scanning (for example, Patent Document 4).
[0005]
[Patent Document 1]
JP-A-11-26591 (Section 5-6, FIG. 2)
[0006]
[Patent Document 2]
Japanese Patent No. 2786017 (Section 2, FIG. 1)
[0007]
[Patent Document 3]
JP-A-7-192043 (Section 8-9, FIG. 2-4)
[0008]
[Patent Document 4]
Japanese Patent Application Laid-Open No. 2000-310671 (Section 5-6, FIG. 1)
[0009]
[Problems to be solved by the invention]
When synchronizing between functional blocks with a flip-flop and exchanging data, it may be difficult to satisfy the hold time constraint due to the clock phase difference between the functional blocks.
[0010]
In the case where a flip-flop having a delay element or a flip-flop having an opposite phase is inserted into a portion where a hold constraint error has occurred in an actual delay simulation performed after layout, the flip-flop is inserted due to miniaturization and high density of an integrated circuit. There is a problem that there is no space. In addition, the wiring path is greatly changed, which has a negative effect on satisfying the delay constraints of the surrounding paths, and the time until the completion of the design is easily increased, so that a new antiphase clock needs to be supplied. There is.
[0011]
Further, in the conventional method using a flip-flop circuit configured to select that a half-cycle delay is added at the time of scanning, there is a problem that the circuit scale of all flip-flops becomes large.
[0012]
Therefore, the present invention solves such a problem, and enables an integrated circuit to satisfy a hold time constraint when exchanging data between a plurality of circuit blocks, and to design an integrated circuit. It is an object of the present invention to prevent backtracking and increase in the number of design steps, and to prevent an increase in circuit scale.
[0013]
[Means for Solving the Problems]
In order to solve these problems, the present invention is characterized by using a clock synchronous flip-flop cell having a half cycle delay so as to satisfy a hold time constraint. By using such a clock synchronous flip-flop cell having a half cycle delay for data transfer between blocks in which a clock delay difference is likely to occur, an increase in circuit scale can be prevented.
[0014]
According to the present invention, in order to generate a half-cycle delay at a stage subsequent to the clock synchronous flip-flop, a latch or flip-flop that operates with a reverse-phase clock is provided, and these are previously formed into one cell, so that they are inserted. Eliminating space, changing wiring paths, increasing the number of negative-phase clock wirings, etc. will not occur.
[0015]
According to the first method of the present invention, when a flip-flop on the transmission side between blocks described in a netlist is replaced with a half-period delay cell, before laying out a portion which is expected to hardly satisfy a hold constraint, A delay is given in advance. This makes it possible to reduce delay variation after layout. In addition, an increase in the circuit scale can be prevented by limiting all flip-flops to a block instead of a half-cycle delay.
[0016]
Furthermore, a cell name list that specifies a specific flip-flop, a block name list that specifies a block, a clock name list that specifies a clock signal, and a clock that specifies a set of one clock signal and another different clock signal A cell to be replaced with a half-period delay cell may be selected in advance using the pair list. By thus narrowing the number of cells to be replaced, the increase in the circuit scale can be further reduced.
[0017]
The second method of the present invention checks whether or not transmission and reception of signals between blocks described in a netlist is in a shift register configuration from flip-flop to flip-flop. This is replaced with a half-period delay cell, and a delay is given in advance before layout is performed on a portion expected to hardly satisfy the hold constraint. This makes it possible to reduce delay variation after layout. In addition, an increase in the circuit scale can be prevented by limiting all flip-flops to a block instead of a half-cycle delay.
[0018]
If a latch or another flip-flop that operates in the opposite phase of the clock input to the flip-flop is connected to a stage subsequent to each clock synchronous flip-flop in the netlist description, By replacing the flip-flop described above with a latch or another flip-flop in a subsequent stage by a half-cycle delay cell, the number of wirings and the number of branches of clock wirings can also be reduced.
[0019]
According to the third method of the present invention, when reading and synthesizing the RTL description, a half-period delay cell is allocated as a flip-flop on the transmission side between blocks, and it is expected that the hold constraint is hardly satisfied. A delay is given before layout is performed on a portion. This makes it possible to reduce delay variation after layout. In addition, an increase in the circuit scale can be prevented by limiting all flip-flops to a block instead of a half-cycle delay.
[0020]
Furthermore, a block name list that specifies blocks, an inter-block list that specifies between blocks, a clock name list that specifies clock signals, and a clock pair list that specifies a set of one clock signal and another clock signal different from it May be used to select a portion to be allocated to the half-period delay cell in advance. Thus, by narrowing down the number of cells to be allocated, an increase in circuit scale can be further reduced.
[0021]
According to a fourth method of the present invention, it is determined whether or not signals are transmitted and received between blocks in a shift register configuration from the first flip-flop to the second flip-flop at the time of synthesis. A half-cycle delay cell is allocated, and a delay is given in advance before layout is performed on a portion expected to hardly satisfy the hold constraint. This makes it possible to reduce delay variation after layout. In addition, an increase in the circuit scale can be prevented by limiting all flip-flops to a block instead of a half-cycle delay.
[0022]
When a latch or another flip-flop that operates in the opposite phase of the clock input to the flip-flop is connected to a stage subsequent to each clock synchronous flip-flop in the RTL description, By allocating the latches or other flip-flops at the subsequent stage to the half-cycle delay cells collectively, the number of wirings and the number of branches of the clock wiring can be reduced.
[0023]
According to the fifth method of the present invention, when a timing violation is detected by checking the synthesis result using the tentative wiring delay, a hold violation of half a cycle or more is caused in all paths from the starting flip-flop. In some cases, the flip-flop at the starting point is replaced with a half-period delay cell, and a delay is given in advance before layout is performed on a portion expected to hardly satisfy the hold constraint.
This makes it possible to reduce delay variation after layout. In addition, it is possible to prevent an increase in circuit scale by limiting all flip-flops to an error generating unit instead of having a half-cycle delay.
[0024]
If there is a path that causes a hold violation for less than half a cycle, and if the maximum delay time of all paths from the flip-flop that is the starting point is less than half a cycle, the flip-flop that is the starting point is delayed by a half cycle. Even if the cell is replaced with a cell, the delay constraint can be satisfied, so that a portion for adjusting the delay after layout can be reduced.
[0025]
According to a sixth method of the present invention, when a macro such as an SRAM requires a relatively larger hold time constraint than other cells in advance, the input hold time constraint of a cell in the synthesis library is checked and the cell is checked. A half-period delay cell is assigned as a flip-flop at the starting point of the input signal to the input terminal, and a delay is given in advance before layout is performed on a portion expected to hardly satisfy the hold constraint. This makes it possible to reduce delay variation after layout.
[0026]
Instead of looking at the input hold time constraint of the cells in the synthesis library, an attribute for instructing the synthesis library to allocate a half-cycle delay cell may be given and assigned.
[0027]
Further, a description for instructing the assignment of a half-period delay cell to the RTL description may be made, and the half-period delay cell may be assigned to a syntax to which a flip-flop having the description is to be assigned.
[0028]
BEST MODE FOR CARRYING OUT THE INVENTION
An embodiment of the present invention will be described with reference to FIGS.
(Embodiment 1)
FIG. 1 shows the configuration of a half-period delay cell according to the present invention.
[0029]
The half cycle delay cell 1 shown in FIG. 1 includes a clock synchronous flip-flop 2 and a half cycle delay circuit 3. The clock synchronous flip-flop 2 stores the signal of the data input 4 internally at the rising edge of the clock signal supplied from the clock input 5. The stored data is applied from the data output 6 of the clock synchronous flip-flop 2 to the data input 7 of the half-period delay circuit 3, and after being delayed by a half-period with respect to the signal from the clock input 5 by the half-period delay circuit 3, Output from the data output 8.
[0030]
FIG. 2 shows an example of the half-cycle delay circuit 3. The delay circuit 3 is a latch circuit that operates with a reverse-phase clock (corresponding to claim 3).
Data input 7 is connected to input 11 of transfer gate 10. The clock signal from the clock input 5 is input to the inverter 12 and output to the transfer gate 10, the inverter 13, and the transfer gate 15. The transfer gate 10 is turned on when the clock signal is "L", and the transfer gate 15 is turned on when the clock signal is "H". The output of the inverter 13 is input to the transfer gate 10 and the control gate of the transfer gate 15 having a polarity opposite to that of the inverter 12. The output 14 of the transfer gate 10 is wired-ORed with the output 16 of the transfer gate 15 and input to the inverter 17. The output of the inverter 17 is input to the inverter 20, and the output of the inverter 20 is output as the data output 8 outside the half-cycle delay circuit 3. The output of the inverter 17 is input to the inverter 18. The output of the inverter 18 is connected to the input 19 of the transfer gate 15.
[0031]
Next, the operation will be briefly described. While the clock input 5 is "H", the transfer gate 10 is off and the transfer gate 15 is on. Thereby, a loop of the inverter 17 and the inverter 18 is formed, and a certain value is output during the period. When the clock input 5 becomes "L", the transfer gate 10 is turned on and the transfer gate 15 is turned off. Thus, the data from the data input 7 is output from the data output 8 through the inverter 17 and the inverter 20.
[0032]
By connecting the half-period delay circuit 3 that operates as described above to the subsequent stage of the clock synchronous flip-flop 2 in FIG. 1, the data stored at the rising edge of the clock input 5 can be converted to the falling edge of the clock input 5 (“L”). From the beginning), and output from the data output 8 to function as a half cycle delay cell.
[0033]
FIG. 3 shows an example in which a clock synchronous flip-flop circuit 30 that operates with an inverted phase clock is connected as the half cycle delay circuit 3 (corresponding to claim 4).
The clock signal from the clock input 5 is inverted by the inverter 31 and input from the clock input 32 of the clock synchronous flip-flop 30. The data input 33 of the clock synchronous flip-flop 30 is connected to the data input 7 of the half-cycle delay circuit 3, and the data output 34 of the clock synchronous flip-flop 30 is connected to the data output 8.
[0034]
With this configuration, data stored in the clock synchronous flip-flop 2 at the rising edge of the clock input 5 is stored in the clock synchronous flip-flop 30 at the next falling edge of the clock input 5, and is output as the data output 8. As a result, data is output with a delay of a half cycle from the rise of the clock input 5.
[0035]
FIG. 4 shows an example in which a half-cycle delay cell is used on the transmitting side of a signal between blocks (corresponding to claim 2).
In the signal transmission / reception between the block (A) 50 and the block (B) 51, the signal line 55 among the signal lines 55 and 56 for transmitting a signal from the block (A) 50 to the block (B) 51 The output of the half-period delay cell 52 and the input of the flip-flop 58 are connected, and the signal line 56 is connected to the output of the half-period delay cell 53 and the input of the flip-flop 59. Conversely, a signal line 57 for transmitting a signal from the block (B) 51 to the block (A) 50 is connected to an output of the half-cycle delay cell 60 and an input of the flip-flop 54. The clock 61 is input to the half-cycle delay cells 52 and 53 and the flip-flop 54 through the buffer 62, and the clock 61 is input to the flip-flops 58 and 59 and the half-cycle delay cell 60 through the buffer 63.
[0036]
By adopting such a configuration, each of the flip-flops 54, 58, 59 and the half-period delay cells 52, 53, 60 for transferring data between the block (A) 50 and the block (B) 51 has a buffer. Even if there is a difference between the arrival times of the clocks supplied through the buffer 62 and the buffer 63, the transmission side has a half-cycle delay. It does not violate time constraints.
[0037]
(Embodiment 2)
FIG. 5 is a diagram showing a flow of the integrated circuit designing method of the present invention according to claim 5, wherein the logic is RTL-described in an RTL description step 100, and the RTL description is assigned to a logic circuit in a synthesis step 101, and a netlist is created. Create Next, the flip-flop on the transmitting side between the blocks is replaced with a half-cycle delay cell in the replacement step 102 with respect to the created netlist. After the replacement in the replacement step 102, a netlist in which the test circuit is inserted is created in the DFT step 103, and a layout is created in the layout step 104 based on the netlist.
[0038]
Next, the details of the replacement step 102 will be described. When replacing the flip-flop on the transmission side between blocks with a half-period delay cell, a cell name list 111 specifying a specific flip-flop, a block name list 112 specifying a block, an inter-block list 113 specifying a block, A clock name list 114 specifying a clock signal, and a clock pair list 115 specifying a set of a certain clock signal and another clock signal different from the clock name list 114 are read in a list reading step 110, and the plurality of lists are replaced with half cycle delay cells. A flip-flop on the transmission side between blocks to be selected is selected and replaced with a half-period delay cell in a cell replacement step 116.
[0039]
For example, when the cell name list 111 is read, a flip-flop on the transmission side between blocks matching the cell name is selected and replaced (corresponding to claim 6).
FIG. 6 shows this state. In the block between the block (A) 120 and the block (B) 121, a clock is supplied from the clock 131 to each flip-flop through the buffer 132 and the buffer 133, and the block is formed between the blocks. In the case where a signal is transmitted from the (A) 120 to the block (B) 121 via the signal lines 125 to 127, two flip-flops corresponding to the cell names read from the cell name list are replaced with the half-period delay cells 122, 123, and the flip-flops 124 and 128-130 not described in the list are left as they are.
[0040]
For example, when the block name list 112 is read in FIG. 5, among the flip-flops existing in the blocks in the block name list 112, the flip-flop that is the transmission side between the blocks is selected and replaced. Equivalent).
[0041]
FIG. 7 shows this state. Between the block (A) 140 and the block (B) 141, a clock is supplied from the clock 151 to the flip-flops 144 and 148-150 through the buffers 152 and 153. Between the blocks, signals are transmitted from block (A) 140 to block (B) 141 via signal lines 145 and 146, and signals are transmitted from block (B) 141 to block (A) 140 via signal line 147. In the case of the configuration, when the block (A) 140 is described in the block name list 112, the flip-flop in which the block (A) 140 is on the transmission side is replaced with half cycle delay cells 142 and 143, and the flip-flop on the reception side is replaced. And the flip-flop 148 of the block (B) not described in the list. 150 to leave the.
[0042]
Further, for example, when the inter-block list 113 is read in FIG. 5, the transmission-side flip-flop of the signal line that exchanges data between one of the blocks described in the list and a block forming a pair with the block is selected. And replace (corresponding to claim 8).
[0043]
FIG. 8 shows this state. Between the block (A) 160 and the block (B) 161 and between the block (A) 160 and the block (C) 162, each flip-flop is supplied from the clock 172 through the buffers 173 to 175. A clock is supplied to the blocks 165 and 169-171, a signal is transmitted between the blocks from the block (A) 160 to the block (B) 161 via the signal lines 166 and 167, and a block (A) 160 is transmitted between the blocks from the block (A) 160. C) In a configuration in which a signal is transmitted to the signal line 168 to the block 162, when the block (A) 160 and the block (B) 161 are described in the inter-block list 113, the block (A) 160 and the block In signal lines 166 and 167 between (B) 161, block (A) 160 is on the transmission side. The flip-flop is replaced with a half cycle delay cells 163 and 164, and the receiving side of the flip-flop 169 and 170, flip-flops 165,171 from block (A) 160 to block (C) 162 is intact.
[0044]
Next, for example, when the clock name list 114 is read, a flip-flop connected to the clock, which is a transmission side between blocks, is selected and replaced (corresponding to claim 9).
[0045]
FIG. 9 shows this state. In the block between the block (A) 180 and the block (B) 181, a clock is supplied from the clock 191 to each flip-flop through the buffer 192 and the buffer 193, and the block between the blocks is blocked. In the case where a signal is transmitted from (A) 180 to block (B) 181 via signal lines 185 and 186 and a signal is transmitted from block (B) 181 to block (A) 180 via signal line 187, When the clock 191 is described in the clock name list 114, the flip-flops on the transmitting side are replaced with the half-cycle delay cells 182, 183, and 190, and the flip-flops 184, 188, and 189 on the receiving side are left as they are.
[0046]
Further, for example, when the clock pair list 115 is read, among the flip-flops connected to one of the clocks listed in the list, the signal between the blocks is supplied to the flip-flop connected to the clock that is paired with the clock. The transmitting device is selected and replaced (corresponding to claim 10).
[0047]
FIG. 10 shows this state. Between the block (A) 200 and the block (B) 201, a clock is supplied from the clock 211 to each flip-flop of the block (A) 200 through the buffer 212, and the clock is supplied. A clock is supplied from 213 to the flip-flops 208 and 209 of the block (B) 201 through the buffer 214, and a clock is supplied from the clock 215 to the flip-flop 210 of the block (B) 201 through the buffer 216, and the block (A) is passed between the blocks. In a configuration in which a signal is transmitted from the signal 200 to the block (B) 201 via the signal lines 205 to 207, when a pair of the clock 211 and the clock 213 is described in the clock pair list 115, the clock 211 is connected to the clock 211. Flip-flop Of the flip-flops that transmit signals between the blocks to the flip-flop connected to the clock 213 that forms the pair with the clock 213, the half-cycle delay cells 202 and 203 replace the flip-flops. , The flip-flop 204 transmitting the signal and the flip-flop 208-210 on the receiving side are kept as they are.
[0048]
(Embodiment 3)
FIG. 11 shows a flow of the integrated circuit design method according to claim 11. First, the logic is RTL-described in an RTL description step 300, and the RTL description is assigned to a logic circuit in a synthesis step 301 to create a netlist. Next, in the shift register checking step 302, it is checked whether or not the transmission and reception of signals between the blocks has a shift register configuration from flip-flop to flip-flop. The transmitting flip-flop between the blocks is replaced with a half-period delay cell based on the check result of the check step 302. After the replacement in the replacement step 303, a netlist in which the test circuit is inserted is created in the DFT step 304, and a layout is created in a layout step 305 based on the netlist.
[0049]
FIG. 12 shows this state. Between the block (A) 310 and the block (B) 311, a clock is supplied from the clock 321 to each flip-flop through the buffer 322 and the buffer 323, and a block is formed between the blocks. Signals are transmitted from (A) 310 to block (B) 311 by signal lines 315 and 316, signals are transmitted from block (B) 311 to block (A) 310 by signal line 317, and signal line 316 is a block. (B) In the case of a configuration in which the signal is input to the gate 325 in the gate 311 and ORed with the signal line 324 and then input to the flip-flop 319, in the shift register checking step 302, the signal line 315 and the signal line 317 are connected. It turns out that a shift register configuration has been found between the two connected flip-flops. Then, in the replacement step 303, in response to the result, the flip-flop on the transmission side is replaced with the half-cycle delay cells 312 and 320, and the flip-flop 313 having a gate 325 in the middle, the flip-flops 314 and 318 on the reception side, 319 is left as it is.
[0050]
(Embodiment 4)
FIG. 13 shows a flow of the integrated circuit design method according to claim 12. First, the logic is RTL-described in an RTL description step 400, and the RTL description is assigned to a logic circuit in a synthesis step 401 to create a netlist. Next, in the antiphase clock connection investigating step 402, a latch or a flip-flop that operates in the reverse phase of the clock input to the flip-flop is connected to a stage subsequent to each clock synchronous flip-flop with respect to the created netlist. In the replacement step 403, the flip-flop in the netlist and the latch or flip-flop in the subsequent stage are collectively replaced with a half-period delay cell based on the result of the check in the antiphase clock connection checking step 402. . After the replacement in the replacement step 403, a netlist in which the test circuit is inserted is created in the DFT step 404, and a layout is created in the layout step 405 based on the netlist.
[0051]
FIG. 14 is a diagram showing this state. FIG. 14A shows a part of the netlist allocated to the logic circuit in the synthesis step 401. Here, the signal line 500 and the clock 501 are input to the flip-flop 502. The clock 501 is supplied to the flip-flop 505 through the inverter 503. At this time, the flip-flop 505 operates in the opposite phase of the clock with respect to the flip-flop 502. The output of the flip-flop 502 is input to the flip-flop 505 through the signal line 504. The output of the flip-flop 505 is connected to the next circuit through a signal line 506.
[0052]
(B) shows a state after the replacement processing in the replacement step 403. Here, in the anti-phase clock connection checking step 402, the flip-flop 502 and the flip-flop 505 of (a) are arranged at a stage subsequent to the clock synchronous flip-flop and operate in the opposite phase of the clock input to the flip-flop. It turns out that the loop has a certain configuration. Therefore, in the replacement step 403, the inverter 503, the flip-flop 505, and the signal line 504 are deleted, and the flip-flop 502 is replaced with the half-cycle delay cell 510.
[0053]
(Embodiment 5)
FIG. 15 shows a flow of the integrated circuit design method according to the thirteenth aspect. The logic is RTL described in an RTL description step 600, the RTL is read in a read step 601 and the read RTL description is synthesized in a synthesis step 602. Create a netlist by assigning it to a logic circuit.
[0054]
Next, the details of the combining step 602 will be described. When replacing the flip-flop on the transmission side between blocks with a half-period delay cell, a block name list 610 specifying blocks, an inter-block list 611 specifying blocks, a clock name list 612 specifying clock signals, a certain clock In the list reading step 614, a clock pair list 613 specifying a set of a signal and another clock signal different from the signal is read. Then, in the cell synthesis step 615, when performing logic synthesis, a half-period delay cell is allocated as a flip-flop having a configuration corresponding to the list, and a netlist is created.
[0055]
For example, when the block name list 610 is read, when synthesizing the logic of the blocks in the block name list 610, when allocating flip-flops, a half-period delay cell is used for a transmission side between blocks. Assigned (corresponding to claim 14).
[0056]
Next, for example, when the inter-block list 611 is read, when the logic of the first block described in the inter-block list 611 and the second block forming a pair with the first block are combined, the first block is read. When outputting a signal to the second block when allocating flip-flops, a half-cycle delay cell is allocated, and when outputting a signal to the first block when allocating flip-flops of the second block, Assigns a half-period delay cell (corresponding to claim 15).
[0057]
Further, for example, when the clock name list 612 is read, when allocating flip-flops connected to the clocks described in the clock name list 612, a half-period delay cell is used for a transmission side between blocks. Assigned (corresponding to claim 16).
[0058]
Further, for example, when the clock pair list 613 is read, the first clock described in the clock pair list 613 and the flip-flop connected to the second clock paired with the first clock are assigned to the first clock. When there is a transmission from a clock flip-flop to a flip-flop connected to a second clock between different blocks, a half-cycle delay cell is allocated as the first clock flip-flop, and conversely, a flip-flop of the second clock If there is a transmission from the flip-flop to the flip-flop connected to the first clock between different blocks, a half-cycle delay cell is allocated as the flip-flop of the second clock (corresponding to claim 17).
[0059]
(Embodiment 6)
FIG. 16 shows a flow of an integrated circuit design method according to claims 18 and 19 of the present invention. Here, the logic is described in RTL in an RTL description step 700, the RTL is read in a reading step 701, and the read RTL description is assigned to a logic circuit in a synthesis step 702 to create a netlist. In the combining step 702, for example, when an RTL description is allocated as shown in FIG. Are connected one-to-one with wiring (NETA connection description 715) in the RTL description (RTL description 710) of the upper hierarchy. If the description of the flip-flop B (REGB description 714) simply stores the signal from NETA at the rising edge of the clock (CLKB), a half-cycle delay cell is assigned to the flip-flop A. 18).
[0060]
In addition, when the RTL description 750 as shown in FIG. 18, for example, is assigned in the combining step 702, the output (OUTA) of the description of the flip-flop A (REGA description 751) in the RTL description 750 is the description of the flip-flop B. (REGB description 752) is a one-to-one connected input, and the REGB description 752 simply takes in the signal from OUTA with its clock, and the clock description of the REGA description 751 and the clock description of the REGB description 752 are opposite in phase. In the case of the relationship, the REGA description 751 and the REGB description 752 are put together, and a half-period delay cell which takes in the input (INA) and outputs (OUTB) is allocated.
[0061]
(Embodiment 7)
FIG. 19 shows a flow of an integrated circuit design method according to claims 20 and 21 of the present invention. In RTL description step 800, the logic is described in RTL, the RTL is read in reading step 801 and the read RTL description is assigned to a logic circuit in synthesis step 802 to create a netlist. The created netlist is checked in timing in step 803. The timing of the synthesis result is checked using the temporary wiring delay, and if there is no violation in the timing check step 803 in the determination step 804, the process ends as it is. If there is a violation, the process is corrected in the correction step 805 and the process ends.
[0062]
In the correction step 805, when a violation is corrected, if a hold violation of more than a half cycle has occurred in all paths from the flip-flop of the starting point, the flip-flop of the starting point is replaced with a half-cycle delay cell. 20).
[0063]
When at least one of the paths from the starting flip-flop has a hold violation of less than half a cycle, the maximum delay time of all the paths from the starting flip-flop is less than half a cycle. Even when a violation does not occur even if delayed by a half cycle, the starting flip-flop is replaced with a half-cycle delay cell (corresponding to claim 21).
[0064]
(Embodiment 8)
FIG. 20 shows the flow of the integrated circuit design method according to the present invention. Here, the logic is described in the RTL in the RTL description step 850, and the RTL is read in the reading step 851. Next, in the hold time determination step 853, referring to the cell library 852, if any of the library cells used in the read RTL is equal to or greater than the value given by the threshold value 854, the library cell An attribute is added such that the flip-flop that is the starting point of the signal line connected to the input of the cell is a half-cycle delay cell. In the synthesizing step 855, a half-period delay cell is assigned as a start-point flip-flop connected to the input of the library cell having the attribute to create a netlist (corresponding to claim 22).
[0065]
For cells in the cell library 852 that require a hold time equal to or greater than a certain threshold, an attribute is added in advance so that the flip-flop that is the starting point of the signal line connected to the input of the cell is a half-cycle delay cell. The hold time determination step 853 can be omitted (corresponding to claim 23).
[0066]
(Embodiment 9)
FIG. 21 shows a flow of the integrated circuit design method according to claim 24. In this configuration, the logic is RTL-described in an RTL description step 860, the RTL is read in a read step 861, and the read RTL description is assigned to a logic circuit in a synthesis step 862 to create a netlist. Here, the reading step 861 for reading the RTL analyzes the contents of the RTL description and checks whether or not there is a description for instructing to allocate a half-period delay cell. To this end, the reading step 861 includes a description analysis step 870 and a half-cycle delay cell assignment instruction step 871 for receiving the result and instructing to assign a half-cycle delay cell to the corresponding flip-flop. In the combining step 862, a half cycle delay cell is assigned to the flip-flop designated in the half cycle delay cell assignment instruction step 871.
[0067]
FIG. 22 shows an example of giving a description for instructing to allocate a half-period delay cell to the RTL description. A half-period delay cell allocation description 881 is described in the RTL description 880, and immediately below it. The description (REG description 882) of a certain flip-flop is specified in the half-cycle delay cell allocation instruction step 871 in FIG.
[0068]
Here, for example, when "//" is described at the head of the half-period delay cell allocation description 881, it can be neglected in the simulation (corresponding to claim 25).
[0069]
Even if there is a half-cycle delay cell allocation description 881, if there is no half-cycle delay cell as a synthesis library, it may be ignored (corresponding to claim 26).
[0070]
【The invention's effect】
According to the first aspect of the present invention, by using the half-period delay cell instead of a normal flip-flop, the hold time can be easily secured as a half cycle of the clock cycle.
[0071]
Further, by using the method for data transfer between blocks in which a clock delay difference is likely to occur, it is possible to prevent an increase in circuit scale.
Further, as a half-cycle delay cell, a latch circuit that operates with a negative-phase clock and a clock-synchronous flip-flop circuit that operates with a negative-phase clock are provided at a stage subsequent to the clock synchronous flip-flop as a circuit that generates a half-period delay. With the configuration, since these cells are previously formed into one cell, problems such as a lack of a space to be inserted, a change in a wiring path, and an increase in negative phase clock wiring do not occur. 4).
[0072]
According to the integrated circuit design method of the present invention, the hold constraint is replaced by replacing the transmission-side flip-flop between the blocks described in the netlist with a half-period delay cell before performing the layout. By providing a delay in advance to a portion expected to be hardly satisfied, it is possible to satisfy a hold time after layout and reduce delay variation after layout. In addition, an increase in the circuit scale can be prevented by limiting all flip-flops to a block instead of a half-cycle delay.
[0073]
Furthermore, a cell name list that specifies a specific flip-flop, a block name list that specifies a block, a clock name list that specifies a clock signal, and a clock that specifies a set of one clock signal and another different clock signal A cell to be replaced with a half-period delay cell may be selected in advance using the pair list. By doing so, the increase in circuit scale can be further reduced by narrowing down the number of cells to be replaced (claim 6-10).
[0074]
Further, according to the integrated circuit design method of the present invention, it is determined whether or not transmission and reception of signals between blocks described in the netlist has a shift register configuration from flip-flop to flip-flop. By replacing the flip-flop on the transmitting side with a half-period delay cell when applicable, a delay is given in advance before laying out the part that is expected to be difficult to satisfy the hold constraint, thereby reducing the hold time after layout. Satisfaction can be satisfied, and delay variation after layout can be reduced. Furthermore, the circuit scale can be prevented from increasing by limiting all flip-flops to a delay between blocks instead of having a half-cycle delay.
[0075]
If a latch or another flip-flop that operates in the opposite phase of the clock input to the flip-flop is connected to a stage subsequent to each clock synchronous flip-flop in the netlist description, The number of wirings and the number of clock wiring branches can also be reduced by replacing the flip-flop described above and a latch or another flip-flop at a stage subsequent thereto with a half-cycle delay cell (claim 12).
[0076]
Further, according to the integrated circuit design method of the present invention, when reading and synthesizing the RTL description, a half-period delay cell is allocated as a flip-flop on the transmission side between blocks to satisfy the hold constraint. If it is difficult to do so, by providing a delay to a portion expected before the layout is performed, the hold time after the layout can be satisfied, and the delay variation after the layout can be reduced. In addition, an increase in the circuit scale can be prevented by limiting all flip-flops to a block instead of a half-cycle delay.
[0077]
Furthermore, a block name list that specifies blocks, an inter-block list that specifies between blocks, a clock name list that specifies clock signals, and a clock pair list that specifies a set of one clock signal and another clock signal different from it May be used to select a portion to be allocated to the half-period delay cell in advance. By doing so, the increase in the circuit scale can be further reduced by narrowing down the number of cells to be allocated (claims 14-17).
[0078]
According to the integrated circuit design method of the present invention, it is checked whether or not transmission and reception of signals between blocks at the time of synthesis is performed in a shift register configuration from flip-flop to flip-flop. By assigning a half-period delay cell as a flip-flop and delaying the expected portion before layout if it is difficult to satisfy the hold constraint, the hold time after layout is satisfied and the delay variation after layout is reduced. It can be reduced. In addition, an increase in the circuit scale can be prevented by limiting all flip-flops to a block instead of a half-cycle delay.
[0079]
When a latch or another flip-flop that operates in the opposite phase of the clock input to the flip-flop is connected to a stage subsequent to each clock synchronous flip-flop in the RTL description, The number of wirings and the number of branches of clock wirings can be reduced by collectively allocating latches or other flip-flops in subsequent stages to half-cycle delay cells (claim 19).
[0080]
According to the integrated circuit design method of the present invention, the timing violation is detected by using the temporary wiring delay, so that the cell is replaced with a half-period delay cell. By giving a delay to a portion expected before performing the above, the hold time after layout can be satisfied, and the delay variation after layout can be reduced. In addition, it is possible to prevent an increase in circuit scale by limiting all flip-flops to an error generating unit instead of having a half-cycle delay.
[0081]
If there is a path that has a hold violation of less than half a cycle, and if the maximum delay time of all paths from the flip-flop that is the starting point is less than half a cycle, the flip-flop that is the starting point is delayed by a half cycle. Even if the cells are replaced with cells, the delay constraint can be satisfied, thereby reducing the portion for adjusting the delay after layout (claim 21).
[0082]
According to the integrated circuit design method of the present invention, when it is known that a relatively large hold time constraint is required in advance in a macro such as an SRAM, the input of a cell in the synthesis library is performed. Looking at the hold time constraint, the half-cycle delay cell is assigned as a flip-flop at the starting point of the input signal to that cell, and the synthesis is performed so that it is difficult to satisfy the hold constraint. By giving a delay in advance, it is possible to satisfy the hold time after layout and reduce the delay variation after layout.
[0083]
Also, instead of looking at the input hold time constraints of the cells in the synthesis library, an attribute for instructing the synthesis library to allocate a half-cycle delay cell may be given and assigned accordingly ( Claim 23).
[0084]
Further, a description for instructing the assignment of a half-period delay cell to the RTL description may be provided, and the half-period delay cell may be assigned to a syntax to which a flip-flop having the description is to be assigned (claim Item 24).
[0085]
It is more preferable that the description for allocating the half-period delay cell is ignored in the logic simulation.
In addition, if there is no half-cycle delay cell in the synthesis library even if there is a description for assigning a half-cycle delay cell, if an ordinary flip-flop is assigned, the RTL description can be changed to the presence or absence of the half-cycle delay cell. Can be common regardless of.
[Brief description of the drawings]
FIG. 1 is a diagram showing a configuration of a half-cycle delay cell in an integrated circuit according to a first embodiment of the present invention;
FIG. 2 is a diagram showing an example of a half-cycle delay circuit in FIG. 1;
FIG. 3 is a diagram showing an example of a half-cycle delay circuit to which a clock synchronous flip-flop circuit is connected in the integrated circuit according to the first embodiment of the present invention;
FIG. 4 is a diagram showing an example in which a half-period delay cell is used as a signal transmitting side between blocks according to the present invention;
FIG. 5 is a diagram showing a flow of an integrated circuit design method according to a second embodiment of the present invention;
FIG. 6 is a diagram showing a state in which a cell is replaced with a half-period delay cell using the cell name list in FIG. 5;
FIG. 7 is a diagram showing a state where a block is replaced with a half-period delay cell using the block name list in FIG. 5;
FIG. 8 is a diagram showing a state in which a list is replaced with a half-period delay cell using the inter-block list in FIG. 5;
FIG. 9 is a diagram showing a state where a clock is replaced with a half-period delay cell using the clock name list in FIG. 5;
FIG. 10 is a diagram showing a state where the clock pair list in FIG. 5 is replaced with a half-period delay cell.
FIG. 11 is a diagram showing a flow of an integrated circuit design method according to a third embodiment of the present invention;
FIG. 12 is a diagram showing a state where a cell is replaced with a half-period delay cell in the flow of FIG.
FIG. 13 is a diagram showing a flow of an integrated circuit design method according to a fourth embodiment of the present invention.
FIG. 14 is a diagram showing a state where the cell is replaced with a half-period delay cell in the flow of FIG.
FIG. 15 is a diagram showing a flow of an integrated circuit design method according to a fifth embodiment of the present invention.
FIG. 16 is a diagram showing a flow of an integrated circuit design method according to a sixth embodiment of the present invention.
FIG. 17 is a diagram showing an example of an RTL description in the flow of FIG. 16;
FIG. 18 is a diagram showing another example of the RTL description in the flow of FIG.
FIG. 19 is a diagram showing a flow of an integrated circuit design method according to a seventh embodiment of the present invention.
FIG. 20 is a diagram showing a flow of an integrated circuit design method according to the eighth embodiment of the present invention;
FIG. 21 is a diagram showing a flow of an integrated circuit design method according to a ninth embodiment of the present invention;
FIG. 22 is a diagram showing an RTL description for instructing to allocate a half cycle delay cell in the flow of FIG. 21;
[Explanation of symbols]
1 half-period delay cell
2 Clock synchronous flip-flop
3 Half-cycle delay circuit
4 Data input
5 Clock input
8 Data output
50 blocks (A)
51 blocks (B)
52 half-period delay cells
53 half-period delay cell
54 flip-flops
58 flip-flops
59 flip-flops
60 half-period delay cell
61 clock
62 buffers
63 buffers

Claims (26)

クロック同期フリップフロップよりも後段に半周期の遅延を生成する回路を設けた集積回路。An integrated circuit provided with a circuit that generates a half-cycle delay at a stage subsequent to a clock synchronous flip-flop. ブロック間での信号の送信側に半周期遅延生成回路を設けた請求項1記載の集積回路。2. The integrated circuit according to claim 1, wherein a half-period delay generation circuit is provided on a signal transmission side between the blocks. クロック同期フリップフロップよりも後段に設けられた半周期の遅延を生成する回路が、逆相クロックで動作するラッチ回路である請求項1記載の集積回路。2. The integrated circuit according to claim 1, wherein the circuit provided at a stage subsequent to the clock synchronous flip-flop and configured to generate a half-period delay is a latch circuit that operates with a reverse-phase clock. クロック同期フリップフロップよりも後段に設けられた半周期の遅延を生成する回路が、逆相クロックで動作するクロック同期フリップフロップ回路である請求項1記載の集積回路。2. The integrated circuit according to claim 1, wherein the circuit provided at a stage subsequent to the clock synchronous flip-flop and configured to generate a half-cycle delay is a clock synchronous flip-flop circuit that operates with a reverse-phase clock. ネットリスト記述された、ブロック間の送信側のフリップフロップを、半周期遅延セルに置換する置換ステップを有する集積回路設計方法。An integrated circuit design method having a replacement step of replacing a transmission-side flip-flop between blocks described in a netlist with a half-cycle delay cell. 特定のフリップフロップを指定するセル名リストを読み込むステップを有するとともに、前記リストに該当するフリップフロップを半周期遅延セルに置換する置換ステップを有する請求項5記載の集積回路設計方法。6. The integrated circuit design method according to claim 5, further comprising a step of reading a cell name list designating a specific flip-flop and a step of replacing a flip-flop corresponding to the list with a half-period delay cell. ブロックを指定するブロック名リストを読み込むステップを有するとともに、前記リストに該当するフリップフロップを半周期遅延セルに置換する置換ステップを有する請求項5記載の集積回路設計方法。6. The integrated circuit design method according to claim 5, further comprising a step of reading a block name list specifying a block, and a step of replacing a flip-flop corresponding to the list with a half-period delay cell. 対をなすブロックどうしを指定するブロック間リストを読み込むステップを有するとともに、前記リストに該当するフリップフロップを半周期遅延セルに置換する置換ステップを有する請求項5記載の集積回路設計方法。6. The integrated circuit design method according to claim 5, further comprising a step of reading an inter-block list that specifies pairs of blocks, and a step of replacing a flip-flop corresponding to the list with a half-period delay cell. クロック信号を指定するクロック名リストを読み込むステップを有するとともに、前記リストに該当するクロックで動作するブロック間の送信側のフリップフロップを半周期遅延セルに置換する置換ステップを有する請求項5記載の集積回路設計方法。6. The integrated circuit according to claim 5, further comprising a step of reading a clock name list designating a clock signal, and a step of replacing a flip-flop on a transmitting side between blocks operated by clocks corresponding to the list with a half-period delay cell. Circuit design method. あるクロック信号とそれとは異なる別のクロック信号との組を指定するクロック対リストを読み込むステップを有するとともに、前記リストに該当するクロックの組で動作するブロック間の送受信信号系において送信側のフリップフロップを半周期遅延セルに置換する置換ステップを有する請求項5記載の集積回路設計方法。A step of reading a clock pair list designating a set of a certain clock signal and another clock signal different from the clock signal, and a transmission-side flip-flop in a transmission / reception signal system between blocks operating with the set of clocks corresponding to the list. 6. The integrated circuit design method according to claim 5, further comprising a replacement step of replacing the data with a half cycle delay cell. ブロック間の信号の送受信がフリップフロップからフリップフロップへのシフトレジスタ構成となっているかどうかを調べるシフトレジスタ調査ステップと、このシフトレジスタ調査ステップの調査結果から、ネットリスト中の送信側のフリップフロップを半周期遅延セルに置換する置換ステップとを有する請求項5記載の集積回路設計方法。A shift register check step for checking whether the transmission and reception of signals between blocks is a shift register configuration from flip-flop to flip-flop, and a check result of the shift register check step, the transmission-side flip-flop in the net list is 6. A method for designing an integrated circuit according to claim 5, further comprising a replacement step of replacing the cell with a half cycle delay cell. ネットリスト記述中にある各クロック同期フリップフロップよりも後段に、前記フリップフロップに入力されているクロックの逆相で動作するラッチないしフリップフロップが接続されているかどうかを調べる逆相クロック接続調査ステップと、この逆相クロック接続調査ステップの調査結果から、ネットリスト中の前記フリップフロップとそれよりも後段にあるラッチないしフリップフロップをまとめて半周期遅延セルに置換する置換ステップとを有する集積回路設計方法。A negative-phase clock connection checking step for checking whether a latch or a flip-flop operating in the reverse phase of the clock input to the flip-flop is connected at a stage subsequent to each clock synchronous flip-flop in the netlist description; An integrated circuit design method comprising the steps of: replacing the flip-flop in the netlist and a latch or flip-flop in a stage subsequent to the flip-flop in the netlist with a half-period delay cell, . RTL記述を読み込むための読み込みステップと、読み込んだRTL記述から論理を合成するための合成ステップとを有し、この合成ステップにおいて、ブロック間の送信側のフリップフロップとして半周期遅延セルを割付ける集積回路設計方法。A read step for reading the RTL description; and a synthesis step for synthesizing logic from the read RTL description. In the synthesis step, a half-cycle delay cell is allocated as a flip-flop on the transmission side between blocks. Circuit design method. ブロックを指定するブロック名リストを読み込むステップを有し、合成ステップにおいて、前記リストに該当するブロックの送信側のフリップフロップとして半周期遅延セルを割付ける請求項13記載の集積回路設計方法。14. The integrated circuit design method according to claim 13, further comprising a step of reading a block name list designating a block, wherein in the synthesizing step, a half-period delay cell is assigned as a flip-flop on the transmission side of the block corresponding to the list. ブロック間を指定するブロック間リストを読み込むステップを有し、合成ステップにおいて、前記リストに該当するブロック間の送信側のフリップフロップとして半周期遅延セルを割付ける請求項13記載の集積回路設計方法。14. The integrated circuit design method according to claim 13, further comprising the step of reading an inter-block list specifying blocks, and in the synthesizing step, allocating a half-period delay cell as a transmission-side flip-flop between the blocks corresponding to the list. クロック信号を指定するクロック名リストを読み込むステップを有し、合成ステップにおいて、前記リストに該当するクロックで動作するブロック間の送信側のフリップフロップとして半周期遅延セルを割付ける請求項13記載の集積回路設計方法。14. The integrated circuit according to claim 13, further comprising a step of reading a clock name list designating a clock signal, wherein in the synthesizing step, a half-period delay cell is assigned as a flip-flop on a transmission side between blocks operating with the clock corresponding to the list. Circuit design method. あるクロック信号とそれとは異なる別のクロック信号との組を指定するクロック対リストを読み込むステップを有し、合成ステップにおいて、前記リストに該当するクロックの組で動作するブロック間の送受信信号系に対し、送信側のフリップフロップとして半周期遅延セルを割付ける請求項13記載の集積回路設計方法。A step of reading a clock pair list designating a set of a certain clock signal and another clock signal different from the clock signal. 14. The integrated circuit design method according to claim 13, wherein a half-period delay cell is assigned as a flip-flop on the transmission side. RTL記述を読み込むための読み込みステップと、読み込んだRTL記述から論理を合成するための合成ステップとを有し、この合成ステップにおいて、ブロック間の信号の送受信が、第1のフリップフロップから第2のフリップフロップへのシフトレジスタ構成となっているかどうかを調べて、該当する送信側のフリップフロップとして半周期遅延セルを割付ける請求項13記載の集積回路設計方法。There is a reading step for reading the RTL description, and a synthesis step for synthesizing logic from the read RTL description. In this synthesis step, transmission and reception of signals between blocks are performed by the first flip-flop from the second flip-flop. 14. The integrated circuit design method according to claim 13, wherein it is determined whether or not the flip-flop has a shift register configuration, and a half-period delay cell is assigned as a corresponding transmission-side flip-flop. RTL記述を読み込むための読み込みステップと、読み込んだRTL記述から論理を合成するための合成ステップとを有し、この合成ステップにおいて、クロック同期フリップフロップよりも後段に、このフリップフロップに入力されているクロックの逆相で動作するラッチないし他のフリップフロップが接続されているかどうかを調べ、該当する前記フリップフロップとそれよりも後段にあるラッチないし他のフリップフロップをまとめて半周期遅延セルとして割付ける集積回路設計方法。There is a reading step for reading the RTL description, and a synthesizing step for synthesizing logic from the read RTL description. In the synthesizing step, a signal is input to the flip-flop after the clock synchronous flip-flop. It is checked whether a latch or another flip-flop that operates in the opposite phase of the clock is connected, and the relevant flip-flop and a latch or another flip-flop at a stage subsequent thereto are collectively assigned as a half-period delay cell. Integrated circuit design method. RTL記述を読み込むための読み込みステップと、読み込んだRTL記述から論理を合成するための合成ステップと、仮配線遅延を用いて合成結果のタイミングをチェックすることでタイミング違反を検知するためのタイミングチェックステップと、タイミング違反が発生した場合にそれを修正するための修正ステップとを有し、前記修正ステップにおいて、始点のフリップフロップからの全経路で半周期以上のホールド違反を起こしている場合は、前記始点のフリップフロップを半周期遅延セルに置き換える集積回路設計方法。A reading step for reading the RTL description, a synthesis step for synthesizing logic from the read RTL description, and a timing checking step for detecting a timing violation by checking the timing of the synthesis result using the temporary wiring delay And a correcting step for correcting a timing violation when it occurs. In the correcting step, when a hold violation of half a cycle or more has occurred in all the paths from the flip-flop of the starting point, An integrated circuit design method for replacing a starting flip-flop with a half-period delay cell. 修正ステップにおいて、半周期未満のホールド違反を起こしている経路がある場合に、その始点のフリップフロップからの全経路の最大遅延時間が半周期未満の場合は、前記始点のフリップフロップを半周期遅延セルに置き換える請求項20記載の集積回路設計方法。In the correcting step, if there is a path that causes a hold violation of less than half a cycle, and if the maximum delay time of all the paths from the flip-flop of the starting point is less than half a cycle, the flip-flop of the starting point is delayed by a half cycle. 21. The integrated circuit design method according to claim 20, wherein the integrated circuit is replaced with a cell. RTL記述を読み込むための読み込みステップと、合成用ライブラリ内のセルの入力ホールド時間がある閾値以上であるかどうかを判別するためのホールド時間判別ステップと、読み込んだRTL記述から論理を合成するための合成ステップとを有し、前記ホールド時間判別ステップにおいて閾値以上のセルがあった場合には、そのセルへの入力信号の始点にあるフリップフロップとして、半周期遅延セルを割付けることを特徴とする集積回路設計方法。A reading step for reading the RTL description, a hold time determining step for determining whether the input hold time of the cell in the synthesis library is equal to or longer than a certain threshold value, and a synthesizing logic from the read RTL description. A synthesizing step, and when there is a cell equal to or larger than a threshold value in the hold time determining step, a half-period delay cell is assigned as a flip-flop at a start point of an input signal to the cell. Integrated circuit design method. RTL記述を読み込むための読み込みステップと、読み込んだRTL記述から論理を合成するための合成ステップとを有し、入力ホールド時間がある閾値以上必要なセルについては、合成用ライブラリに半周期遅延セルを割付けることを指示するための属性を与えておき、前記合成ステップにおいて、前記入力ホールド時間がある閾値以上必要なセルを割り付けた場合には、そのセルへの入力信号の始点にあるフリップフロップとして半周期遅延セルを割付ける集積回路設計方法。It has a reading step for reading the RTL description and a synthesis step for synthesizing logic from the read RTL description. For a cell that requires an input hold time equal to or greater than a certain threshold, a half cycle delay cell is added to the synthesis library. An attribute for instructing the assignment is given, and in the synthesizing step, when the input hold time is assigned to a cell that requires a certain threshold or more, a flip-flop at the starting point of an input signal to the cell is used. An integrated circuit design method for allocating a half-period delay cell. RTL記述を読み込むための読み込みステップと、読み込んだRTL記述から論理を合成するための合成ステップとを有し、前記読み込みステップにおいて、RTL記述に半周期遅延セルを割付けることを指示するための記述を有する部分があった場合には、前記合成ステップにおいて前記記述部分を半周期遅延セルとする集積回路設計方法。A reading step for reading the RTL description, and a synthesizing step for synthesizing logic from the read RTL description; and a description for instructing to allocate a half-period delay cell to the RTL description in the reading step. In the integrated circuit designing method, when there is a portion having the following, in the synthesizing step, the description portion is a half-cycle delay cell. 半周期遅延セルを割付けることを指示するための記述を、RTLシミュレーションでは無視されるように記述する請求項24記載の集積回路設計方法。25. The integrated circuit design method according to claim 24, wherein a description for instructing to allocate a half-period delay cell is described so as to be ignored in the RTL simulation. 半周期遅延セルを割付けることを指示するための記述を、合成ライブラリ内に半周期遅延セルが存在しない場合には無視されるように記述する請求項24記載の集積回路設計方法。25. The integrated circuit design method according to claim 24, wherein the description for instructing the assignment of the half-period delay cell is described so as to be ignored when there is no half-period delay cell in the synthesis library.
JP2002353159A 2002-12-05 2002-12-05 Integrated circuit and its designing method Pending JP2004186515A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002353159A JP2004186515A (en) 2002-12-05 2002-12-05 Integrated circuit and its designing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002353159A JP2004186515A (en) 2002-12-05 2002-12-05 Integrated circuit and its designing method

Publications (1)

Publication Number Publication Date
JP2004186515A true JP2004186515A (en) 2004-07-02

Family

ID=32754514

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002353159A Pending JP2004186515A (en) 2002-12-05 2002-12-05 Integrated circuit and its designing method

Country Status (1)

Country Link
JP (1) JP2004186515A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010101029A1 (en) * 2009-03-03 2010-09-10 日本電気株式会社 Device for designing semiconductor integrated circuit, method for designing semiconductor integrated circuit, and program for designing semiconductor integrated circuit

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010101029A1 (en) * 2009-03-03 2010-09-10 日本電気株式会社 Device for designing semiconductor integrated circuit, method for designing semiconductor integrated circuit, and program for designing semiconductor integrated circuit
JPWO2010101029A1 (en) * 2009-03-03 2012-09-06 日本電気株式会社 Semiconductor integrated circuit design apparatus, semiconductor integrated circuit design method, and semiconductor integrated circuit design program
US8438518B2 (en) 2009-03-03 2013-05-07 Nec Corporation Apparatus for designing semiconductor integrated circuit, method of designing semiconductor integrated circuit, and program for designing semiconductor integrated circuit

Similar Documents

Publication Publication Date Title
US8291358B2 (en) Synchronous to asynchronous logic conversion
US8717078B2 (en) Sequential latching device with elements to increase hold times on the diagnostic data path
US8484523B2 (en) Sequential digital circuitry with test scan
US7583106B2 (en) Clock circuitry
US7254796B2 (en) Method for synthesizing domino logic circuits cross reference to related patent application using partition
US7821850B2 (en) Semiconductor digital circuit, FIFO buffer circuit, and data transferring method
JP2007170959A (en) Semiconductor integrated circuit and design method therefor
JP2010277230A (en) Semiconductor integrated circuit design device
US6711089B2 (en) Method and apparatus for performing signal synchronization
US20090271747A1 (en) Logic circuit designing device, logic circuit designing method and logic circuit designing program for asynchronous logic circuit
TWI528720B (en) Contention-free level converting flip-flops for low-swing clocking
JP2002524790A (en) Synchronous polyphase clock distribution system
US20110181331A1 (en) Integrated circuit with leakage reduction in static nets
US7676685B2 (en) Method for improving the data transfer in semi synchronous clock domains integrated circuits at any possible m/n clock ratio
JP2004186515A (en) Integrated circuit and its designing method
WO2012042586A1 (en) Integrated circuit
US6412099B1 (en) Apparatus and method for converting logical connection information of circuit
JPH10133768A (en) Clock system and semiconductor device, and method for testing semiconductor device, and cad device
US7231620B2 (en) Apparatus, generator, and method for clock tree synthesis
JP2011090493A (en) Circuit design device and method
JP4649064B2 (en) Output circuit
JP5417874B2 (en) Flip-flop circuit
Gilla Silicon compilation and test for dataflow implementations in GasP and Click
Smith et al. Low-latency multiple clock domain interfacing without alteration of local clocks
Nischitha et al. Lint, CDC and RDC analysis for PCIe subsystem using VC_Spyglass