JP2007188517A - タイミング配分装置 - Google Patents

タイミング配分装置 Download PDF

Info

Publication number
JP2007188517A
JP2007188517A JP2007046318A JP2007046318A JP2007188517A JP 2007188517 A JP2007188517 A JP 2007188517A JP 2007046318 A JP2007046318 A JP 2007046318A JP 2007046318 A JP2007046318 A JP 2007046318A JP 2007188517 A JP2007188517 A JP 2007188517A
Authority
JP
Japan
Prior art keywords
unit
design
information
circuit
wiring
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
JP2007046318A
Other languages
English (en)
Inventor
Koji Takeyama
広治 竹山
Koichi Itaya
剛一 板矢
美紀 ▲高▼木
Yoshinori Takagi
Takehiro Yamazaki
健弘 山崎
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2007046318A priority Critical patent/JP2007188517A/ja
Publication of JP2007188517A publication Critical patent/JP2007188517A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】システム回路設計に当たり、LSIやPCBのタイミング配分に関し、上流工程においてフロアプランを考慮したタイミング配分及びタイミング検証により、下流工程の手戻りを削減するとともに、設計期間を短縮化及び高品質化できるようにする。
【解決手段】複数の設計階層のそれぞれに対応して設けられ、配線形態に関するネットリスト情報を有する複数のタイミング情報データベース57a〜57eから回路の機能に関するブロック情報を入力され、回路の遅延要素により生じる遅延値を配分して得るタイミング配分値を出力しうる複数のタイミング配分作成部54a〜54eと、複数のタイミング配分作成部54a〜54eのそれぞれの間の接続を動的に変更するとともに、複数のタイミング配分作成部54a〜54eのそれぞれの間とタイミング配分値に関する修正情報を送受信する階層間連携マネージャ53とをそなえて構成する。
【選択図】図20

Description

本発明は、例えば大規模回路設計に用いて好適な、タイミング配分装置に関する。
一般に、半導体チップの回路(以下、半導体回路と称する)や、半導体やプリント版等の電子機器全体又は電子機器を構成する要素もしくはサブシステム(以下、システム回路と称する)の設計においては、設計者(ユーザ)は、回路全体を2以上の単位に分割し、個々の単位を独立して設計する分割設計と呼ばれる手法を用いている。
この単位とは、所定の回路機能を有するものを意味し、回路モジュール又はモジュールと称される。以下の説明において、処理される前の単位と処理された後の単位とを区別するために、処理される前の単位を、処理すべき単位又は設計対象となる単位と称する。さらに、処理された後の単位を、処理された単位又は処理済みの単位と称する。
また、一つの単位が、他の独立して設計された単位を内包(含む)する状態で設計する手法は、階層設計と呼ばれる。この階層設計は、内包される単位が下位であり、内包する単位が上位であって、階層性を有する。そして、分割設計された部分回路は、全体回路を最上位階層として、最終的に一つの単位に集約される。以下の説明では、階層設計という言葉を用いて、分割設計一般を指すものとする。
図43は階層設計の概念図である。この図43に示す半導体回路(以下、チップと称することがある)100は、最上位階層の回路であって、回路モジュール(以下、モジュールと称することがある)100x,100yを内包する。また、モジュール100xはモジュール101x,102xを内包し、モジュール100yはモジュール101y,102yを内包している。さらに、モジュール101x,101yはそれぞれモジュール103x,103yを内包し、モジュール102x,102yはそれぞれモジュール104x,104yを内包している。これにより、設計者は、各モジュールをそれぞれ個別に設計することができ、設計効率が向上する。
また、回路の規模は年々増加しているため、回路設計装置(以下、設計装置と称することがある)は、より大規模なデータを処理できる能力を求められている。
そして、階層設計によらず、半導体回路全体を一括して設計することは、一括設計と呼ばれている。この一括設計は、設計装置の主にハードウェア能力の理由により、ある規模以上の回路については行なわれておらず、階層設計が一般的に行なわれている。
すなわち、作業用メモリは、その容量について制約があり、また、処理時間の制約がある。設計装置は、回路変更等による処理のため、作業用メモリ等を大量に使用する。この回路変更等の処理について、図44〜図46を用いて説明する。
図44は半導体回路設計装置のブロック図である。この図44に示す設計装置500は、半導体回路を設計するものであって、自動設計処理部200と回路情報データベース300とをそなえて構成されている。この回路情報データベース300は、回路要素(例えばフリップフロップやレジスタ等)の情報を保持するものである。さらに、自動設計処理部200は、回路設計を実行するものであって、HDL(Hardware Description Language)変換処理部200aと、固有化処理部200bと、テスト回路生成処理部200cと、負荷調整処理部200dと、HDL出力処理部200eとをそなえて構成されている。
ここで、HDL変換処理部200aは、HDLソースコード(以下、ソースコードと略称することがある)をHDL変換して、処理すべき単位を回路情報データベース300に保持するものであり、固有化処理部200bは設計者の回路変更により生じる別モジュールの名称を重複しないように割り当てるものである。
そして、テスト回路生成処理部200cは、テスト回路を生成するものであり、階層名,追加端子又は追加ゲートの名称,モジュール間の接続順序等の情報を生成する。さらに、負荷調整処理部200dは、モジュールの負荷を調整するものであり、階層名,入力端子負荷,出力端子の駆動能力等の情報を生成する。加えて、HDL出力処理部200eは、これらの処理が行なわれた後にその処理結果をソースコードに反映するものである。
大規模な回路設計において、同一機能の回路が複数必要な場合には、一般に、複数参照と呼ばれる手法が用いられている。この複数参照とは、必要な機能を有するモジュールを一つの処理すべき単位として設計し、そして、上位階層が、その処理すべき単位を複数回参照する手法である。これにより、設計者は、モジュールの繰り返し配置を省略でき、同一モジュールに関する情報を作業用メモリにロードでき、繰り返して計算する冗長性を防止できる。なお、この複数参照に対して、一度しか参照されない単位は単一参照と呼ばれる。次に、固有化について、図45(a),(b)を用いて説明する。
図45(a),(b)はそれぞれ固有化処理を説明するための図である。この図45(a)に示すチップ150aは、固有化前の回路であって、同一のモジュール151を2個有し、このモジュール151は、モジュール151a(Aと付されたもの)を有する。そして、このモジュール151aの情報は、回路情報データベース300の中に、データイメージ154a(Aと付されたもの)として書き込まれている。
一方、図45(b)に示すチップ150bは、固有化後の回路であって、モジュール151と、モジュール152とを有する。ここで、モジュール152はモジュール151が固有化されて得られたものであって、さらに、内包するモジュール回路から複製されたモジュール152a(A′と付されたもの)を有する。そして、これらのモジュール151a,152aの情報は、それぞれ、回路情報データベース300の中に、データイメージ154b(A−0と付されたもの),154c(A−1と付されたもの)として書き込まれている。
ここで、図45(a)に示すチップ150aは、設計工程(以後、工程と称することがある)のある期間において複数参照されている単位(例えばモジュール151)を有する。固有化処理とは、設計者が、複数参照されている状態をその後の工程において、図45(b)に示すように、単一参照可能な状態に変更するために必要な処理を意味する。
具体的には、設計者が、その単位(モジュール151)が参照された回数分だけ複製し、かつ、その単位の名称を変更して単一参照されている単位へモジュールを移行するように処理するのである。例えば、図45(b)に示す場合では、1個だけ複製されている。これにより、複製と同時に、元のモジュール151aと、複製されたモジュール152aとに、それぞれ、固有名A−0とA−1とが割り当てられ、設計者は区別できるのである。
さらに、図44において、固有化処理部200bにて各工程における変更が、回路情報データベース300に書き込まれて、固有化処理が完了する。この後、テスト回路生成処理部200cと負荷調整処理部200dとにおいて、それぞれ、固有化処理にて変更された内容が、回路情報データベース300から読み出され、テスト回路が生成され、また、負荷調整されるのである。
また、階層設計又は一括設計とは別の手法として、ECO(Engineering Change Order)設計がよく用いられている。このECO設計とは、処理すべき単位の一部のみを変更し、回路のその他の部分については無変更のまま再設計する手法であり、ECO設計は、階層設計を適用するようにもできる。
このECO設計が使用される理由は、主に、半導体回路の部分のみについての再設計が、全体回路の再設計よりも処理時間が短縮されるからである。
図46(a)〜(c)はそれぞれECO設計を説明するための図である。この図46(a)に示すチップ250aは、一旦、設計が完了したもの(以下、通常設計と称することがある)であり、これからECO設計する前におけるものである。ここで、モジュール252a(Cと付されたもの)は、モジュール251aの回路要素である。すなわち、モジュール251aと、モジュール252aとは、ともに、テスト回路やクロック回路が追加されたモジュールであって、設計装置によって自動的に生成されたものである。さらに、モジュール252aは、回路情報データベース300にデータイメージ260a(Cと付されたもの)として書き込まれている。
また、図46(b)に示すチップ250aは、ECO設計を開始するときのものである。この図46(b)に示すチップ250aは、図46(a)に示すチップ250a中のモジュール252aが、テスト回路を追加されていない状態で回路変更されたものである。すなわち、モジュール252aが変更されたものがモジュール252b(C′と付されたもの)に置き換えられ、そのイメージが表示されている。さらに、変更された後のモジュール252bは、回路情報データベース300にデータイメージ260b(C′と付されたもの)として書き込まれている。
また、図46(c)に示すチップ250aは、ECO設計終了時のものであり、モジュール252bが変更されるほか、テスト回路が追加され、モジュール252c(C″と付されたもの)に置き換えられたものである。
このとき、モジュール252bの回路は、モジュール252aのテスト回路を追加する前の回路と同一回路と、変更を追加した回路とを有する。設計者は、モジュール252bについて、再度、テスト回路を生成するときに、変更された部分以外の部分については、モジュール252aの回路と同一になるように設計する。ここで、先に設計されたモジュール252aと、ECO設計を用いて設計されたモジュール252cとの違いが微々ならば、設計者は、レイアウト設計についても、変更する部分を再度設計するだけで済む。従って、設計者は設計に要する時間を短縮できる。
ところで、図44〜図46における階層設計に当たり、昨今の設計規模に対するデータベースの容量は、きわめて大きく、設計装置は、データをすべて作業用メモリにロードすることが困難となっている。このメモリ不足を回避するために、設計者は、一括設計向けの設計装置を使用するときに、ブラックボックス化した回路データを予め作成しており、このため、複雑な繰り返し手順が必要となっている。
一方、設計者が分割設計向きの設計装置を用いた場合においても、その設計装置が、処理しない部分に関する情報を管理する機能を有していないときには、設計者は、処理すべき部分を正しく認識し、かつ、処理すべき部分以外において関係する部分の情報を知らなければならない。加えて、設計者は処理すべき部分以外の情報を個々に指定し、分割設計向けの設計装置に、関連情報を与えなければならない。
ここで、設計情報が参照されないと、ECO設計において、通常設計時(後述する図8参照)の固有名と異なる固有名が付与される可能性があり、後続の処理において、固有名と設計情報とを対比するときに名称が不一致となることがある。
また、従来のECO設計においては、旧回路と新回路とのそれぞれの回路が比較されながら、回路が復元されていた。このECO設計においては、回路の比較と差分解析とが行なわれるため、複雑な処理が必要となり、このため、設計者が自分で情報を指定する等の煩雑性を有する。
次に、図47〜図49を用いて、システム回路である機器の設計や、装置設計等のシステム設計におけるタイミング配分について説明する。システム設計においては、PCB(Printed Circuit Board:プリント回路基板)設計やLSI(Large Scale Integration:大規模集積回路)設計を含むタイミング配分について設計される。
図47はタイミング配分を説明するための図である。この図47に示すPCB140bの両端には、PCB140a,140cがコネクタピン(図示省略)を介して接続されている。また、PCB140a,140cは、それぞれ、LSI240,241を有する。ここで、タイミング配分とは、LSI240からLSI241まで信号が伝達するのに要する時間を配分することを意味し、また、設計者はPCB140a〜140cの間において、伝送時間をどの程度割り当てるかを検討する。そして、PCB上においてLSIの置かれる位置は、セットアップ条件やホールド条件と呼ばれる条件に基づいて検討されるようになっている。ここで、セットアップ条件とは、信号の伝搬時間が所定時間内に収まる条件をいい、ホールド条件とは、データとそのデータのためのクロックとを正確に一致させるための条件をいう。
例えばPCB140a上のLSI240が、PCB140c上のLSI241から遠い側に置かれると、配線が長くなり、信号遅延が生じる。また、この信号遅延は、ホールド条件から外れるほど、短か過ぎる配線による悪影響を受ける。従って、LSI240とLSI241との間を近づけた場合と遠ざけた場合とのそれぞれにおいて、遅延時間を検討する必要があり、この遅延時間を配分する仕様は、タイミング仕様と呼ばれている。
また、図47において、aは負のスラックであり、cは正のスラックであり、負のスラックa側から正のスラックc側に対して、配分値を分けて欲しいとの要求情報が送信されるようになっている。
従来のタイミング配分の設計フローは、システムの初期アーキテクチャを検討した後にPCB及びLSIの分割を行ない、タイミング仕様を制約条件として設定し、そして、下位階層のLSI内部等の設計及び実装(以後、インプリメントと称する)をするようになっている。
これらのタイミング仕様の検討は、まず、PCBとLSIとの間において、AC(Alternative Current)スペックと呼ばれるクロックとデータとの関係を規定した仕様が設計され、その仕様に合致するようにインプリメントされる。ここで、インプリメントされた結果、そのタイミング仕様を満足できない場合があり、タイミング仕様の限界値を知ることが重要となっている。
図48は装置設計の概略を説明するためのフローチャートである。まず、装置仕様が検討され(ステップW1)、アーキテクチャが設計され(ステップW2)、そして、回路機能が、PCB又はLSIに割り当てられて分割設計される(ステップW3)。
このステップW3にてPCBが選択されると、ステップW4にてPCB設計が開始され、論理設計のほか、タイミング設計,波形解析,実装設計及び熱設計が行なわれ、ステップW5にてPCBがインプリメントされる。一方、ステップW3にてLSIが選択されると、ステップW6にてLSI設計が開始され、論理設計,タイミング設計,レイアウト設計,消費電力解析が行なわれ、ステップW7にてLSIがインプリメントされる。
図49はタイミング設計を説明するためのフローチャートである。まず、システムの仕様が決定されると(ステップW50)、システムアーキテクチャが検討され(ステップW51)、PCB/LSIが分割検討される(ステップW52)。
また、ステップW53にてPCBのタイミング仕様が検討され、ステップW54にてPCBがインプリメントされる。また、ステップW55にてLSIのタイミング仕様が検討され、ステップW56にてLSIがインプリメントされる。
これらLSIとPCBとを個々にインプリメントする工程においては、STA(Static Timing Analysis)が用いられており、このSTAは、シミュレーションパターンを生成せずに静的にタイミング検証が可能となる。
また、タイミング配分については、以下の公知文献が知られている。
特開平5−181929号公報(以下、公知文献1と称する)に記載された技術は、階層的な論理回路の遅延検証を行なう際、上位階層の論理回路の遅延検証を下位階層の論理回路の設計,遅延検証が完了していなくとも行なえるようにするものである。この公知文献1には、回路ブロックの階層的なタイミング配分についての遅延時間検証方式が開示されている。
特開平9−212533号公報(以下、公知文献2と称する)に記載された技術は、階層設計されたハードウェアを各階層ごとに最適化する際に階層間にまたがったクリティカルパスに対して、パスへの遅延制約を階層ごとに適切に分配し、効率よく遅延最適化するものである。この公知文献2には、配分の最適化の方法が開示されている。なお、クリティカルな部分とは、遅延が許されない部分であって、この部分において遅延が生ずると、タイミングが適切に割り当てられなくなるものをいう。
そして、これらの公知文献1,2に記載された技術によって、遅延配分が効率的に行なわれる。
しかしながら、従来の手法によると、設計者の手入力による項目が多く、設計手順の複雑化を招き、設計者の負担の増加や、誤り発生の原因となるという課題がある。
そのうえ、設計者が、一旦、設計が完成した回路を変更する場合、その変更により、外部端子が追加又は削除されるため、上位階層と下位階層との間で端子構成の不一致が発生することがある。従って、従来の設計手法においては端子構成が一致していないと、上位階層と下位階層との間において不整合が発生し、エラーと認識され、設計効率が非常に悪くなるという課題がある。
また、タイミング配分については、アーキテクチャ設計検討において、設計者は何回も値を変化させて試行する。従って、設計者は、対象とするPCB又はLSIについての確定値を、ライブラリから対象回路にマッピングするまで、詳細なタイミングを明確に知ることができず、また、設計者は、一旦、所定の遅延値をPCB又はLSIに割り当てて、その他の検討をするようにしている。
そのため、フリップフロップ等の回路要素を設計者が直接見ることができない工程においては、システム全体のタイミング配分は、不確定な部分が多く、また、システム全体のタイミングを決定できず、タイミング変更に対して柔軟に対応できないという課題がある。
加えて、LSIやPCB等からなる各回路ブロックは、いずれも密接には連携していない。さらに、回路要素を有する回路ブロックについて、レイテンシ(処理するために必要な時間)や遅延値の見積もりを計算するためには、設計者は実際にインプリメント設計をしなければならない。これに対して、クリティカル部分(遅延が許されない部分)については、アーキテクチャ決定と実際のインプリメント工程との連携が希薄である。そのため、一つのアーキテクチャを詳細に検討することや、物理階層をまたがったフロアプラン(例えばPCBからLSIへのフロアプラン)を別回路ブロックヘ継承することが困難であるという課題がある。
また、LSIのディープサブミクロン化が進み、ゲート遅延よりも、配線遅延の占める割合が顕著になっており、配線遅延、特にグローバル配線部分における遅延の影響が大きくなってきている。
さらに、配置されたピン間を配線するためには、マンハッタン長による手法があり、この手法によって簡易的かつ高速に配線長が計算されている。図50はマンハッタン長を説明するための図である。この図50に示す回路モジュール170は、回路モジュールI51,I50を有し、これらの間が、パスL1,L2により接続されている。これらのパスL1,L2は、それぞれ、マンハッタン長に相当し、2点間の直角距離を表している。
しかしながら、これらの手法は配線混雑度が密な場所においては精度が悪く、また、実配線においては処理速度が困難となる。具体的には次の(1−1)〜(1−13)に示すようなことが生ずる。
(1−1)設計者は、決定された仕様に基づきインプリメントするが、その仕様やフロアプランの良否の判断が困難であり、仕様にて配分されたタイミングに偏りが生じた場合、設計不可能又はタイミング調整するための冗長な回路が増加する。
(1−2)設計部分の仕様に基づき、複数の設計者が並行して分散設計する場合は、各設計者は、それぞれ、自己の設計に当たり、上位階層や下位階層のタイミング配分を把握し難く、PCBやLSIで構成されたシステム全体のタイミング配分や検証が困難である。
(1−3)設計者がインプリメントする場合にタイミング仕様が満たされないときは、設計者は、変更により影響を受ける他の設計者と仕様変更のために交渉しなければならず、また、変更できないときは、上位アーキテクチャを変更しなければならず、大幅に設計期間が増大する。
(1−4)使用部品又は回路ブロックの精度については、タイミングライブラリにて定義されているそれぞれの精度が異なる。従って、複数の部品を組み合わせて設計する場合、精度の悪い部品が、精度の高い部品を使用している部分に影響し、設計者はその部分のタイミングを正確に把握できない。
(1−5)上記のマンハッタン長配線は、PCB上の斜め配線を考慮していないため、実配線遅延との相違が大きく現れる。
(1−6)配線混雑度が密であると、マンハッタン長で計算した配線遅延値は、実配線の遅延値との誤差が大きくなり、タイミングエラーが発生しやすい。
(1−7)回路図又はソースコードにより表現されたネットリストにおいて、送信側のピンから受信側のピンに対して、どのような遠近関係で配線されるかについては、レイアウト結果が出るまで論理設計者は知ることができない。
(1−8)LSI及びPCBの分割検討時に、PCB上の配線を用いて信号伝送するか、又はLSI内部にモジュールを配置するかを検討する際に、PCBテクノロジとLSIテクノロジとの間のテクノロジを切り替えて判断するのに必要な工数が多くなる。また、PCBのフロアプランからLSIのフロアプランヘ継承して設計する場合、設計者はLSI専用のフロアプランツールを用いて、再度そのフロアプランを入力しなければならず工数が多くなる。
(1−9)仕様検討時に、設計者は、各ネットの配線を、仮配線を用いるか、実配線を用いるかの判断が困難である。
(1−10)必要な配線層の数は、把握し難い。
(1−11)LSIのピン数の増加により、各ピンごとにタイミングを配分する工数が大きい。
(1−12)PCBアーキテクチャの設計工程において、設計者はLSIの完成前に波形解析ができない。
(1−13)アーキテクチャ設計工程において、配線遅延の影響により、設計者はブロック間の信号が1クロックで伝送できるか否かの検討ができない。
また、図49に示すフローチャートの進行方向は一方的であるが、アーキテクチャ設計工程内においてタイミング配分が決定されることもあり、設計工程を柔軟に変更できる必要がある。
本発明は、このような課題に鑑み創案されたもので、システム回路設計に当たり、LSIやPCBのタイミング配分に関し、上流工程においてフロアプランを考慮したタイミング配分及びタイミング検証により、下流工程の手戻りを削減するとともに、設計期間を短縮化及び高品質化できる、タイミング配分装置を提供し、併せて、回路が変更されたときに、他の設計者もその変更内容を参照できるようにすることを目的とする。
このため、本発明のタイミング配分装置は、複数の設計階層のそれぞれに対応して設けられ、配線形態に関するネットリスト情報を有する複数のタイミング情報データベースから回路の機能に関するブロック情報を入力され、回路の遅延要素により生じる遅延値を配分して得るタイミング配分値を出力しうる複数のタイミング配分作成部と、複数のタイミング配分作成部のそれぞれの間の接続を動的に変更するとともに、複数のタイミング配分作成部のそれぞれの間とタイミング配分値に関する修正情報を送受信する階層間連携マネージャとをそなえて構成されていることを特徴としている(請求項1)。
そして、上記のタイミング配分作成部は、複数の設計階層のそれぞれに対応して設けられ設計情報を有する階層エンティティと設計情報を処理するためのプログラムデータとを有するエージェントとして構成されるとともに、階層間連携マネージャが、エージェントとしてのタイミング配分作成部に接続され複数の設計階層のそれぞれとタイミング配分値に関する情報を送受信するマネージャとして構成されてもよい(請求項2)。
このように、本発明のタイミング分配装置によれば、階層設計において、複数の設計階層のそれぞれに対応して設けられ、配線形態に関するネットリスト情報を有する複数のタイミング情報データベースから回路の機能に関するブロック情報を入力され、回路の遅延要素により生じる遅延値を配分して得るタイミング配分値を出力しうる複数のタイミング配分作成部と、複数のタイミング配分作成部のそれぞれの間の接続を動的に変更するとともに、複数のタイミング配分作成部のそれぞれの間とタイミング配分値に関する修正情報を送受信する階層間連携マネージャとをそなえて構成されているので、タイミング仕様が変更されたときに、その影響範囲を即座に参照でき、仕様変更の参照ミスがなくなる。また、仮配線と実配線との組み合わせにより、フロアプランの実行速度向上と精度の向上の両立が図れる。さらに、階層エンティティを用いることができ分散設計環境が構築でき、トップダウン設計において、必要部分のみ詳細化でき、一つの設計チームにおいて、試行検討で分割されたタイミング仕様の良否を検討でき、インプリメント時の問題を予測でき、手戻りを削減できる(請求項1)。
さらに、タイミング配分作成部が、複数の設計階層のそれぞれに対応して設けられ設計情報を有する階層エンティティと設計情報を処理するためのプログラムデータとを有するエージェントとして構成されるとともに、階層間連携マネージャが、エージェントとしてのタイミング配分作成部に接続され複数の設計階層のそれぞれとタイミング配分値に関する情報を送受信するマネージャとして構成されてもよく、このようにすれば、オブジェクト指向的な階層エンティティにより、論理設計と物理レイアウトとを融合させたタイミングドリブンレイアウト処理を行なうときに、各論理階層と物理階層との間における情報の流れが明確となり、連携が容易となる(請求項2)。
以下、図面を参照して本発明の実施の形態を説明する。
(A)本発明の第1実施形態の説明
図1は本発明の第1実施形態に係る回路設計装置の構成図である。この図1に示す回路設計装置1(以下、設計装置1と称することがある)は、半導体回路を設計するものであって、回路情報データベース2と、自動設計処理部3と、設計情報データベース5とをそなえて構成されている。
ここで、回路情報データベース2は、回路に関する情報を保持するものであり、自動設計処理部3は、回路情報データベース2から回路に関する情報を読み出し所定の処理すべき単位ごとに回路を処理しうるものであり、また、設計情報データベース5は、自動設計処理部3において得られた回路要素の固有化情報,回路を変更した履歴を表す変更履歴情報及び回路の端子負荷・駆動能力情報を含む設計情報を保持するものである。
これにより、自動設計処理部3にて、回路情報データベース2から回路に関する情報が読み出され、処理すべき単位ごとに回路処理され、得られた設計情報等が設計情報データベース5に書き込まれる。また、自動設計処理部3にて、設計情報データベース5から処理内容に応じて所望の設計情報が読み出されるようになっている。
ここで、回路情報データベース2は、階層設計又はECO設計において、処理された単位(処理済みの単位)ごとに回路情報を保持しており、他の回路モジュールが、処理すべき単位ごとにその回路情報を参照できるようになっている。
また、回路情報データベース2には、ハードウェア記述言語により記述されたソースコードが、計算機プログラムが処理しやすいような形式に分類されて書き込まれている。例えばVHDLソースコードのEntityやVerilogHDLソースコードのmoduleに相当する階層は、種々の情報を有する。すなわち、各階層は、いずれも、階層名、階層端子、ネットリスト、内包する論理ゲート、下位階層等の構成要素情報や、それらの名称や接続情報等を有する。
次に、設計情報データベース5は、回路に加えられた変更や他階層に与える影響を情報として保持しており、また、テスト回路を生成するためのプログラムや回路を最適化するためのプログラムを保持し、これにより、回路が作成され更新される。そして、設計情報データベース5は、回路要素を個別のファイルに保存しうる複数の保持部(図示省略)をそなえて構成されている。従って、設計情報が回路設計に反映され、設計期間等の作業効率が向上する。
さらに、設計情報データベース5には、次の(2−1)〜(2−4)に示す情報が分類されて保持されている。
(2−1)固有化情報
インスタンス名,固有化前の名称,固有化後の名称及び固有化処理の対象となる単位名。ここで、インスタンス名とは、対象となる単位の内部に含まれるセルが有する固有名である。また、固有化処理(階層固有化処理)とは、階層設計において、所定機能を有する単位を、上位階層が複数回参照する場合に、被参照単位を複数参照の回数分だけ複製し固有名を付与し一度のみ参照される単一参照単位へ変更することを意味する。
(2−2)テスト回路情報
階層名と、追加端子の名称及び機能と、追加する論理ゲートの名称及び機能と、接続関係(スキャンチェーン)の接続順序。
(2−3)階層負荷情報
階層名と、大きさと、入力端子の名称及び負荷と、出力端子の名称及び駆動能力とファンアウト数。
(2−4)階層情報
回路情報データベース2に保持されている階層名と、階層間の上下関係。
このように、各情報がそれぞれ分類されて保持されているので、設計者は、効率よく回路を設計できる。
次に、自動設計処理部3は、HDL読み込み部3a,パラメータ入力部3b,処理結果出力部3c,計算処理部4をそなえて構成されている。このHDL読み込み部3aは、HDL言語で書かれたソースコードを読み込み、その読み込んだデータを計算処理部4に入力するものである。
パラメータ入力部3bは、設計者が指定したユーザ指定パラメータ(以下、パラメータと称することがある)を計算処理部4に入力するものである。このパラメータとは、処理の流れに関するものであって、例えば階層設計において、どの階層から処理を開始するかという情報や、後述するテスト回路規則入力部3d(図3参照)が読み込む複数のテスト回路情報のうちいずれかを選択するかについての情報等に関するものである。
さらに、処理結果出力部3cは、計算処理部4にて自動設計された処理内容を、一定のフォーマットで出力するものであって、これにより、設計者は処理内容を確認したり、後続の設計に利用できるようになっている。この自動設計処理部3の機能は、図示を省略するが、CPU(Central Processing Unit)やROM(Read Only Memory)、RAM(Random Access Memory)等により実現されている。
また、これにより、設計者がパラメータ入力部3bに、一つのパラメータを入力するだけで、これらの処理が自動的に実行され、設計者は、各処理において別々のパラメータを入力することなく、設計できるようになる。
さらに、計算処理部4は、回路の計算処理を行なうものであって、HDL変換処理部4a,固有化処理部4b,テスト回路生成処理部4c,負荷調整処理部4d,HDL出力処理部4eをそなえて構成されている。
このHDL変換処理部4aは、ソースコードとパラメータとを入力され、そのパラメータに指定された内容に基づいて、ソースコードを変換し、その変換したデータを回路情報データベース2に出力するものである。
図5は本発明の第1実施形態に係るHDL変換の概念図である。この図5に示すHDLソースコード40a(CHIP),40b(submodA),40c(submodB)は、それぞれ、HDL変換処理部4a(図1参照)にて、変換されて、回路情報データベース2に書き込まれるようになっている。
また、図5に示すデータイメージ41a,41b,41cは、いずれも、この回路情報データベース2に保持されるものを概念的に表したものであって、例えば端子負荷・駆動能力情報(端子情報と略記されたもの)、ネット情報、要素情報の3種類に分類されて保持されるようになっている。なお、このHDL変換は一括して行なったり、又は分割して複数回数にわたって行なってもよい。
次に、固有化処理部4b(図1参照)は、設計情報データベース5から固有化情報を読み出して、処理すべき単位のそれぞれについて相異なる固有名を付与するものである。また、この固有化処理部4bは、パラメータと上記処理にて変換された回路情報データベース2とを読み出し、被複数参照単位データを複製したり、固有名を変更するようになっている。
さらに、テスト回路生成処理部4cは、設計情報データベース5から変更履歴情報を読み出し上位階層のテスト回路を生成しうるものである。負荷調整処理部4dは、設計情報データベース5から端子負荷・駆動能力情報を読み出し上位階層の回路に含まれる端子のそれぞれについて設計情報を付与するとともに、設計情報に基づいて負荷を調整するものである。
また、HDL出力処理部4eは、パラメータ入力部3bにて入力されたパラメータと回路情報データベース2とを読み込み、ソースコード(HDLソースコード)に必要なデータを書き込むものである。そして、これらの固有化処理部4b,テスト回路生成処理部4c,負荷調整処理部4dは、いずれも、回路情報データベース2と設計情報データベース5とに接続され、これらに保持されたデータの読み出し及び書き込みが可能である。
そして、これらの固有化処理部4b,テスト回路生成処理部4c,負荷調整処理部4dは、いずれも、階層設計及びECO設計を行なうようになっている。ここで、階層設計とは、処理すべき単位のうちの一つの単位が、他の独立して設計された単位を階層的に内包した状態で回路を設計するものである。この階層設計により、大規模回路を部分ごとに設計できるようになる。
また、ECO設計とは、処理すべき単位のうちの一部分を変更し、回路における他の部分を変更しないで再設計するものである。
そして、これら階層設計とECO設計とにより、設計装置1においては、回路の設計が同一の操作手順を使用できるようになっている。
次に、図2を用いて固有化処理部4bについてさらに詳細に説明し、図3を用いてテスト回路生成処理部4cについて、図4を用いて負荷調整処理部4dについてそれぞれさらに説明する。
図2は本発明の第1実施形態に係る固有化処理部4bのブロック図である。この図2に示す固有化処理部4bは、回路情報データベース2中の被複数参照単位を、固有名の付与及びデータの複製によって、単一参照するために処理するようになっている。また、固有化処理部4bは、階層設計やECO設計に対応するため、付加的な機能を有し、回路を処理する処理部100bと、この処理部100を制御する制御部100aとを有する。なお、処理部100aと制御部100bとは、それぞれ、例えばソフトウェアにより実現される。
ここで、上述したものと同一の符号を有するものは同一のもの又は同様の機能を有するものなので、更なる説明を省略する。図2に示す各部間の太線は、接続されていることを表す。なお、これら以外の各部間がそれぞれ、接続されるようにもできる。
まず、処理部100bは、設計情報読み込み部6b,処理データ取得部7b,複数参照解析部8b,固有名生成部9b,回路データ複製部10b,回路情報書き込み部11b,設計情報書き込み部12bを有する。
設計情報読み込み部6bは、設計情報データベース5に書き込まれた設計情報を読み込むものであって、固有化前の階層名と固有化後の階層名とを対応づけて、固有化前の階層名による固有化後の回路データを参照できるようになっている。従って、固有化処理部4bが、固有化処理の有無と固有化前後における階層名とを得られ、処理不要な回路データか否かの判別や、同一の固有名が発生するのを抑制するのに使用できるので、設計の効率が向上する。
加えて、固有化処理部4bは、ECO設計に当たり、通常設計情報(ECO設計以前に一旦完了した設計の設計情報)を用いて通常設計された回路と変更箇所以外とが同一の回路を設計するようになっている。また、設計情報読み込み部6bは、第1の単位Aを処理して得られる第1の単位Aの処理結果(第1の単位Aを処理して得られる第1の単位Aの位置等)に関する第1単位情報を設計情報データベース5から読み込むようになっている。なお、設計情報読み込み部6bは、一時的にデータを保持するメモリ(図示省略)と接続されている。
処理データ取得部7bは処理対象判別部7aにより判別された処理対象/処理対象外に基づいて、回路情報データベース2から処理すべき単位の回路データを取得するものである。
これにより、固有化処理部4bが上位階層を処理するときには、設計情報書き込み部12bにて下位階層についての処理結果が設計情報データベース5に書き込まれる。そして、設計情報データベース5に保持された情報は、設計情報読み込み部6bを介して読み込まれ、次に、処理対象判別部7aにて設計情報データベース5に書き込まれた下位階層についての既処理/未処理が認識され、その認識結果に基づき下位階層についての処理対象/処理対象外が判別されるのである。
また、複数参照解析部8bは、回路中において、同一の回路単位を複数使用している箇所を検索し、その箇所における回路単位の種別について、階層,セル,ブラックボックスを判別するものである。この複数参照解析部8bにより、固有化処理が効率よくでき、かつ、きめ細かい設計が可能となる。
さらに、固有名生成部9bは、処理対象判別部7aにて処理対象と判別された場合は設計情報データベース5に保持された参照関係と同一の参照関係になるように固有名を生成し、非処理対象と判別された場合は既に割り当てた固有名と異なる固有名を生成するものである。
すなわち、固有名生成部9bは、処理対象判別部7aにより処理対象と判別され、複数参照解析部8bにより複数参照されていると判断された回路単位に固有名を付与すべく、名称を発生させるのである。
また、階層設計を用いて部分ごとの設計を行なう場合は、固有名生成部9bは、設計単位を超えた回路間で固有名の重複が起きないように、単一参照単位についても設定されたネーミング規則(固有名付与規則)に従った固有名を付与する。
さらに、ECO設計においては、固有名生成部9bは、通常設計において付与した固有名と同一の固有名を、同一の参照関係にある回路単位に割り付ける必要があるので、設計情報データベース5に保持された参照関係の情報と固有名の情報とを使用して、ECO処理対象回路に対する固有名を生成する。
また、この固有名生成部9bは、複数参照解析部8bにて判別された、複数参照単位及び単一参照単位のそれぞれについて固有名を生成するようになっている。
さらに、固有名生成部9bは、ECO設計で設計情報データベース5に既存の固有名を使用する場合以外においては、固有名付与規則設定部9aにて設定されたネーミング規則に基づいて、処理すべき単位に、既に処理された単位に付与した固有名と異なる固有名を生成するようにもなっている。
これにより、処理対象判別部7aにて、処理すべき単位について設計情報の書き込み有りと判別された場合は同一の参照関係になるように固有名が生成され、また、処理すべき単位について設計情報の書き込み無しと判別された場合は既に割り当てた固有名と異なる固有名が生成される。
なお、この固有化処理については、図6を用いて後述する。
回路データ複製部10bは、固有名生成部9bにて生成された固有名を複数参照単位と単一参照単位とのそれぞれに割り付けて、回路データを複製するものである。この回路データとは、例えば回路モジュール45(図6参照)のようなものである。そして、回路情報書き込み部11bは、記憶装置上のデータベースに回路情報を書き込むものである。
加えて、設計情報書き込み部12bは、設計情報データベース5に接続され、処理した階層の設計情報を設計情報データベース5に書き込むものである。これにより、固有化処理の情報が蓄積され、上位階層処理時における処理不要な部分の判別や、ECO設計での同一固有名の付与に利用できるようになる。
また、この設計情報書き込み部12bは、第1の単位Aの処理結果に関する第1単位情報を収集し第1単位情報を設計情報データベース5に書き込むようにもなっている。
次に、図2に示す制御部100aは、設計情報読み込み制御部6a,処理対象判別部7a,複数参照解析制御部8a,固有名付与規則設定部9a,回路データ複製制御部10a,回路情報書き込み制御部11a,設計情報書き込み制御部12aを有する。
まず、設計情報読み込み制御部6aは、パラメータ入力部3bから得られるパラメータを解析し、設計情報データベース5から固有化情報を取得するか否かを判断し、設計情報読み込み部6bに対して入力を指示するものである。
処理対象判別部7aは、設計情報データベース5に書き込まれた設計情報に基づいて、処理すべき単位について処理対象/非処理対象を判別するものである。この処理対象判別部7aは、設計情報読み込み部6bを介して設計情報データベース5に保持された情報を得られるようになっている。
そして、処理対象判別部7aは、設計情報データベース5に現在処理中の単位についての設計情報(固有化情報)の書き込みの有無を判別し、下位階層が処理済みであることを認識すると、処理済みの回路データの取得を停止するようになっている。従って、作業用のメモリの節約が可能となる。
また、処理対象判別部7aは、設計情報のうち、第1の単位Aを処理して得られる第1の単位Aの処理結果に関する第1単位情報に基づいて、次に処理する第2の単位Bが内包する単位が処理された単位であるか否かを判別するようにもなっている。
これにより、処理対象判別部7aは、パラメータ入力部3bにて設計者によって入力されたパラメータと、設計情報読み込み部6bから得られた固有化情報とに基づいて処理すべき対象の箇所を、容易に判別するのである。
さらに、処理対象判別部7aは、処理データ取得部7bを制御し、これにより、処理データ取得部7bが回路情報データベース2から処理データを取得するようになっている。従って、処理すべき部分に関する情報が容易に得られるようになる。
そして、固有化処理部4bが回路の階層構造に基づく分割設計を行なう場合に、上位階層を処理するときは、まず、設計情報読み込み部6bにて設計情報データベース5に書き込まれた下位階層についての既処理/未処理が読み込まれ、処理対象判別部7aにてその既処理/未処理に基づき下位階層について処理対象/処理対象外が判別されるようになっている。
続いて、複数参照解析制御部8aは、複数参照解析部8bを制御するものである。固有名付与規則設定部9aは、設計情報データベース5に基づいて、回路要素の名称に関するパラメータに基づき、処理すべき単位のそれぞれについて固有名を付与すべく、ネーミング規則を設定するものである。そして、固有名付与規則設定部9aは、そのパラメータに含まれるネーミング規則と、固有化情報に含まれる既存の固有名とを解析するようになっている。
これにより、固有名生成部9bは、ネーミング規則に適合し、かつ、他の固有名と重複しない固有名を生成できる。
回路データ複製制御部10aは、ネーミング規則に基づいて、複数参照された複数参照単位及び単一参照された単一参照単位のそれぞれについて固有名を付与するとともに、データを複製するものである。具体的には、回路データ複製制御部10aは、被複数参照単位が個々に単一参照される状態にすべく、回路データの複製処理を制御するようになっている。
また、回路情報書き込み制御部11aは、回路情報書き込み部11bを制御するものである。これにより、固有名の付与と複製したデータとが、それぞれ、回路情報データベース2に書き込まれる処理が制御されるようになっている。
さらに、設計情報書き込み制御部12aは、設計情報書き込み部12bを制御するものである。そして、設計情報書き込み制御部12aは、固有化処理にて扱った単位の固有化前の単位名,固有化後の単位名及び回路全体における位置を特定するための情報等を設計情報データベース5に書き込むべく制御するようになっている。
そして、この図2において、制御のために必要な情報は、設計情報データベース5から、L3と付したルート(点線)を通り、制御部100aに入力されるようになっており、また、回路(設計対象)のデータは、設計情報データベース5から、L4と付したルート(点線)を通り、処理部100bにて、データ処理されるようになっている。
このように、制御データと、回路データとが2系統にてそれぞれ伝送するので、効率よく設計できるようになる。
次に、固有化処理部4bの処理について、図6を用いて説明する。固有化処理部4bは、固有名を重複させないように2種類の手法を用いている。
図6は本発明の第1実施形態に係る固有化処理を説明するための図である。この図6に示す回路モジュール43は、回路モジュール43a,43b(以下、回路モジュール43a,43bをそれぞれモジュール43a,43bと称する)を内包し、これらは、それぞれ、回路モジュール45を内包する。ここで、モジュール45は、一例として、フリップフロップやラッチ回路であり、Aという名称を付されている。モジュール43a,43bは、それぞれ、レジスタやカウンタであり、その名称は、それぞれ、X,Yである。
第1の手法は、設計者が、パラメータを用いて処理すべき単位ごとにネーミング規則の設定を変更し、そして、その設定されたネーミング規則に基づいて名称を発生させる手法である。固有化処理部4bは、図6において、モジュール43aに含まれる3個のモジュール45を、例えばA−X−0,A−X−1,A−X−2とし、モジュール43bに含まれる2個のモジュール45を、A−Y−0,A−Y−1とするのである。すなわち、パラメータが解析され、複数参照されている単位(モジュール45)について、その参照されている回数分(3回又は2回)だけ複製され、その複製された単位(モジュール)名が、現在処理中の単位名と重複しないように生成されるのである。
また、第2の手法は、設計者が、設計情報データベース5に保持されている名称以外の名称を発生させる手法である。すなわち、固有化処理部4bは、モジュール43aに含まれる3個のモジュール45を、それぞれ、A−0,A−1,A−2とし、モジュール43bに名称を付与するに当たり、設計情報データベース5を参照して、設計情報データベース5に保持されている名称と重複しないように、A−0,A−1,A−2を使用せずに、モジュール43bに含まれる2個のモジュール45を、A−3,A−4とするのである。
このように、階層設計に当たり、まず、固有名付与規則設定部9a(図2参照)にて設計者が指定したパラメータに基づき、処理すべき単位のそれぞれについてネーミング規則が設定され、また、固有名生成部9bにて、既に処理済みの単位に付した固有名と異なるように、そのネーミング規則に基づき、処理すべき単位に固有名が生成される。
これらの手法によれば、元の固有名と、設計者により指定されたネーミング規則とに基づいて新たな名称が生成される。このため、固有化処理によって新たに名称が複数個生成されても、それらの名称の判別を明確にでき、設計者はそれらの名称をグループ分け(グルーピング)することが容易となり、また、処理すべき単位ごとにグルーピングできる。さらに、処理された単位と現在処理中の単位の名称との重複が回避される。
従って、新たに名称を生成するときに、設計情報データベース5が参照され、設定されているネーミング規則に基づいて、設定情報データベース5及び作業用メモリ(図示省略)にロードされている固有名情報と重複しない名称が生成されるのである。
このため、階層設計において、回路の部分ごとに固有化処理されても、回路全体において生成された名称のすべてを考慮して名称が付与されるので、名称の重複が生じない。
このように、固有化処理部4bは、上位階層を処理するときに、内包している下位階層について、回路情報データベース2から情報を取得する代わりに、下位階層を処理すべき単位として設計した処理結果等が保持されている設計情報データベース5から情報を取得できる。
また、本発明の回路設計方法を、2種類説明する。
本発明の第1の回路設計方法は、まず、固有化処理部4bが、回路に関する情報を保持する回路情報データベース2から回路に関する情報を読み出して、所定の処理すべき単位ごとに回路を設計しうる自動設計処理部3において、第1の単位Aを処理して得られる第1の単位Aの処理結果に関する第1単位情報を生成する(処理生成ステップ)。
続いて、固有化処理部4bは、処理生成ステップにて生成中の回路要素の固有化情報,回路を変更した履歴を表す変更履歴情報及び回路の端子負荷・駆動能力情報を含む設計情報を収集する(設計情報収集ステップ)。
また、固有化処理部4bは、設計情報収集ステップにて収集された設計情報を、自動設計処理部3に接続され設計情報を保持する設計情報データベース5に処理すべき単位ごとに書き込む(設計情報書き込みステップ)。
さらに、固有化処理部4bは、後に別単位を処理する場合に、設計情報書き込みステップにて書き込まれた設計情報に基づいて第2の単位Bを処理すべく、第1の単位Aに関する設計情報を参照する(参照ステップ)。
そして、固有化処理部4bは、参照ステップにて参照された第1の単位Aに関する設計情報についての参照関係を認識する(認識ステップ)。従って、設計情報データベース5内の情報が使用され、その第2の単位Bが、既に処理された第1の単位Aを内包するか否かがチェックされる。
続いて、固有化処理部4bは、参照ステップにて得られた参照関係に基づき、回路情報データベース2に保持された位置と処理結果とに関する単位情報を参照する(回路情報データベース参照ステップ)。次に、固有化処理部4bは、設計処理された回路データを更新する(回路情報データベース書き込みステップ)。
このように、内包する場合には第1の単位Aが処理済であるか否かが自動的に認識される。
また、これにより、設計情報書き込み部12bにて、第1の単位Aの位置と処理結果とに関する第1単位情報が収集され、第1単位情報が設計情報データベース5に書き込まれ、その書き込まれた第1単位情報は設計情報読み込み部6bにて読み込まれる。そして、処理対象判別部7aにて、第1単位情報に基づき、第2の単位Bが第1の単位Aを内包しているか否かが判別され、また、内包有りと判別した場合は第1の単位Aが処理された単位であるか否かが判別されるのである。
従って、固有化処理部4bは、処理された単位を自動的に判別するので、下位階層について、回路情報データベース2からの読み出しが不要となり、これにより、固有化処理のために使用する、作業用メモリの容量等が大幅に節約できる。
また、本発明の第2の回路設計方法は、まず、固有化処理部4bが、回路に関する情報を保持する回路情報データベース2から回路に関する情報を読み出して、所定の処理すべき単位ごとに回路を設計しうる自動設計処理部3において、第3の単位Cを内包する第4の単位を処理する(第1処理ステップ)。
次に、固有化処理部4bが、第1処理ステップにて生成中の第3の単位Cの処理結果に関する第3単位情報を収集する(第3単位情報収集ステップ)。
さらに、固有化処理部4bが、第3単位情報収集ステップにて収集された第3単位情報を、自動設計処理部3に接続され設計情報を保持する設計情報データベースに書き込む(設計情報書き込みステップ)。
そして、固有化処理部4bが、設計情報書き込みステップにて書き込まれた第3単位情報に基づき、第3の単位Cを変更して得られる第3処理済単位が第4の単位を変更して得られる第4処理済単位を内包するか否かを判別するとともに、第3処理済単位が第3の単位Cと同等か否かを判別する(判別ステップ)。
このように、本発明の2種類の回路設計方法を用いることにより、全自動化による連続処理が可能になり、処理時間の削減、ひいては設計期間を短縮できる。
また、設計者又はシステム構築の担当者(以下、設計者等と称することがある)は、本設計装置1を、パソコン又はワークステーション(以下、コンピュータと称する)を用いて構築する。すなわち、設計者等は、ソフトウェアプログラムを作成し、コンピュータのハードディスクに保持するようにしており、そのプログラムは、上述した処理をコンピュータ上にて実行させることができるものである。
本発明のプログラムは、コンピュータを、回路に関する情報を保持する回路情報データベース2から回路に関する情報を読み出し所定の処理すべき単位ごとに回路を設計するとともに、設計によって得られた回路要素の固有化情報,回路を変更した履歴を表す変更履歴情報及び回路の端子負荷・駆動能力情報を含む設計情報を設計情報データベース5に保持するように機能させるものである。
換言すれば、自動設計処理部3の機能は、このプログラムが、コンピュータのCPUによって読み取られて実行されることにより実現される。
なお、本発明のプログラムをそのハードディスクにインストールする方法は、コンピュータが有する読み取り装置に応じて、CD−ROM(Compact Disk-Read Only Memory)、CD−R(CD-Recordable)、CD−RW(CD-Rewritable)及びフロッピーディスク等の記録媒体を用いるようになっている。
このように、設計者等は、大規模回路を設計する環境を簡便に構築することができる。
また、本発明のプログラムは、コンピュータに、以下に示す各ステップを実行させるように機能させるものである。すなわち、本発明のプログラムは、回路に関する情報を保持する回路情報データベース2から回路に関する情報を読み出して、所定の処理すべき単位ごとに回路を設計しうる自動設計処理部3において、まず、第1の単位Aを処理して得られる第1の単位Aの処理結果に関する第1単位情報を生成させ(処理生成ステップ)、生成中の回路要素の固有化情報,回路を変更した履歴を表す変更履歴情報及び回路の端子負荷・駆動能力情報を含む設計情報を収集させる(設計情報収集ステップ)。
そして、このプログラムは、収集された設計情報を、自動設計処理部3に接続され設計情報を保持する設計情報データベースに処理すべき単位ごとに書き込ませて(設計情報書き込みステップ)、書き込まれた設計情報に基づいて第2の単位Bを処理すべく、第1の単位Aに関する設計情報を参照させる(参照ステップ)。
さらに、このプログラムは、参照された第1の単位Aに関する設計情報についての参照関係を認識させ(認識ステップ)、得られた参照関係に基づき、回路情報データベース2に保持された位置と処理結果とに関する単位情報を参照させ(回路情報データベース参照ステップ)、設計処理された回路データを更新させる(回路情報データベース書き込みステップ)ようコンピュータに機能させるのである。
このように、全自動化により連続処理が可能になり、処理時間の削減、ひいては設計期間を短縮できる。
さらに、本発明のプログラムは、コンピュータに、以下に示す各ステップを実行させるように機能させるものである。すなわち、本発明のプログラムは、回路に関する情報を保持する回路情報データベース2から回路に関する情報を読み出して、所定の処理すべき単位ごとに回路を設計しうる自動設計処理部3において、第3の単位を内包する第4の単位Dを処理させ(第1処理ステップ)、生成中の第3の単位の処理結果に関する第3単位情報を収集させ(第3単位情報収集ステップ)、収集された第3単位情報を、自動設計処理部3に接続され設計情報を保持する設計情報データベースに書き込ませる(設計情報書き込みステップ)。
続いて、このプログラムは、書き込まれた第3単位情報に基づき、第3の単位を変更して得られる第3処理済単位が第4の単位Dを変更して得られる第4処理済単位を内包するか否かを判別するとともに、第3処理済単位が第3の単位と同等か否かを判別させる(判別ステップ)ようコンピュータに機能させるのである。
このように、全自動化により連続処理が可能になり、処理時間の削減、ひいては設計期間を短縮できる。
次に、ECO設計における固有化処理について説明する。
図7(a)〜(d)及び図8はいずれも本発明の第1実施形態に係るECO設計における固有化処理を説明するための図である。この図7(a)に示すチップ80は、モジュールA,Cを内包し、また、モジュールAとモジュールCとはそれぞれ、モジュールBを内包している。通常設計において、固有化が実行されると、例えば、図7(a)に示すような固有なモジュール名が付けられる。そして、図7(b)に示すように、その変更履歴には、モジュールAは名称A−1と書き込まれ、モジュールCは名称C−1と書き込まれる。同様に、モジュールA内のモジュールBは名称B−1と、モジュールC内のモジュールBは名称B−2と書き込まれる。
図7(c)に示す回路は、この回路のいずれかのモジュール(例えばモジュールB)の論理を変更した場合における、ECO設計を開始するときの回路である。そして、現在処理中の単位についての情報が、設計情報データベース5に保持されているか否かが判別され、保持されている場合は、図7(d)に示すように、設計情報データベース5に書き込まれている参照関係と同一の参照関係になるように名称が生成される。一方、保持されていない場合は、図示しないが、書き込まれている他の単位の名称と重複しないように名称が生成される。
なお、設計情報が参照されないと、ECO設計において、図8に示すような通常設計時の固有名と異なる固有名が付与される可能性があり、後続の処理において、固有名と設計情報とを対比するときに名称が不一致となることがある。
従って、ECO設計において、回路変更が発生した箇所以外を旧回路と同等に復元することができる。すなわち、固有化処理において、固有化後の階層名が旧回路の設計時と同一の名称を割り当てられるので、固有化前の回路からECO処理を続行できる。
また、固有化処理部4bは、旧回路の設計で作成された設計情報データベース5から、固有化情報データを入力されたときに、その固有化情報を用いて、同一のインスタンス名を有する階層であって未だ固有化されていないものに対して、旧回路と同一の固有名を自動的に付与できる。
このように、新旧回路の階層を一致させることができる。
そして、このように、固有化処理部4bは、設計情報として通常設計時の固有化情報を読み込むので、ECO設計を図7(c)に示すチップ80の全体が、固有化前の回路を用いて再処理されなくても、図7(b)に示すチップ80が有する設計完了状態の回路情報と、変更のあったモジュール(例えばモジュールB)の回路情報とを用いて、再処理することも可能である。このとき、通常設計が完了したときの設計情報が、「全モジュール固有化済み」を示していても、ECO設計処理においては、パラメータ指定されたECO設計の対象となるモジュールは、強制的に再処理される。
さらに、図1に示すテスト回路生成処理部4cと負荷調整処理部4dとの詳細を、それぞれ、図3と図4とを用いて詳述する。
図3は本発明の第1実施形態に係るテスト回路生成処理部4cのブロック図である。この図3に示すテスト回路生成処理部4cは、階層設計やECO設計に対応するため、付加的な機能を有し、回路を処理する処理部101bと、この処理部101bを制御する制御部101aとを有し、制御部101aの入力側に、テスト回路規則入力部(テスト回路ルール入力部)3dが設けられている。また、図3に示すもので、上述したものと同一の符号を有するものは同一のもの又は同様の機能を有するものなので、更なる説明を省略する。各部間の太線についても、図2に示すものと同様である。
ここで、テスト回路規則入力部3dは、どのようにテスト回路を生成するかについてのテスト回路情報をテスト回路生成処理部4cに入力するものである。このテスト回路情報とは、例えばスキャン(回路から信号を取り出したり、あるいは、その信号を設定すること)と呼ばれる手法や、ビスト(自動ラストのための回路を埋め込むこと)と呼ばれる手法等についての詳細な情報である。そして、設計者は、必要なテスト回路情報が書き込まれた複数のファイルの中から所望のファイルを選択し、これにより、設計装置1が起動したときに、その選択されたファイルが自動的に読み込まれるようになっている。
まず、処理部101bは、固有化処理部4bの処理部100bと異なり、回路解析部8dとテスト回路生成部9dと階層整合性復元部10dとを有する。
回路解析部8dは、設計情報データベース5に基づいて、ECO設計対象単位について、通常設計時に作成された通常設計情報及びテスト回路規則を用いて、通常設計時と同一のテスト回路を生成できる部分と、新たなテスト回路を生成すべき部分とのそれぞれを識別する識別データを抽出するものである。これにより、作業用メモリの使用量が最適化される。
テスト回路生成部9dは、回路解析部8dにより抽出された識別データに基づき、ECO設計対象単位について、通常設計時と同一のテスト回路を生成できる部分について同一のテスト回路を生成し、新たなテスト回路を生成すべき部分についてテスト回路規則に従ったテスト回路を生成するものである。これにより、ECO設計におけるテスト回路の設計効率が大幅に向上する。
階層整合性復元部10dは、設計情報データベース5に保持された設計情報に基づいて、下位階層にテスト信号入力用として追加した端子と上位階層が参照した階層における端子との間の端子不整合を解消するものであって、これにより、ECO設計における設計者の操作性が大幅に向上する。
また、この階層整合性復元部10dは、ECO設計に当たり、設計情報のうち通常設計時についての通常時設計情報とECO設計対象単位と上位階層における端子情報とを用いて、階層整合性を復元するようになっている。
次に、制御部101aは、固有化処理部4bの制御部100aと異なり、回路解析制御部8cとテスト回路生成制御部9cと階層整合性復元制御部10cとを有する。ここで、回路解析制御部8cは回路解析部8dを制御するものでありテスト回路生成制御部9cはテスト回路生成部9dを制御するものであり、また、階層整合性復元制御部10cは階層整合性復元部10dを制御するものである。
なお、制御部101aと処理部101bとは、それぞれ、例えばソフトウェアにより実現される。
そして、固有化処理部4b(図2参照)と同様に、制御のために必要な情報が、設計情報データベース5から、L3と付したルートを通り、制御部101aに入力され、また、設計対象のデータは、設計情報データベース5から、L4と付したルートを通り、処理部101bにて、データ処理される。
このように、制御データと、回路データとが2系統にてそれぞれ伝送するので、効率よく設計できるようになる。
次に、図9(a),(b)を用いてテスト回路生成処理部4cの階層設計を説明し、図10(a)〜(d)を用いてECO設計を説明する。
図9(a),(b)はいずれも本発明の第1実施形態に係る階層設計におけるテスト回路生成処理を説明するための図である。この図9(a)に示す回路モジュールC(モジュールC)は、2個の回路モジュール(内部の2個の四角形)を内包する。また、図9(b)に示す回路モジュールDは、モジュールCのほか他の回路モジュールを内包している。
そして、テスト回路生成処理部4cは、図9(b)に示すモジュールCと他のモジュールとを接続するために端子名称を回路情報データベース2から読み出す。さらに詳述すると、処理対象判別部7a(図3参照)にて第3の単位Cが設計情報データベース5に書き込まれているか否かが判別される。そして、第3の単位Cの書き込み有りと判別された場合は第3の単位Cについて設計情報データベース5に保持された設計情報が読み出され、処理データ取得部7bにて必要な設計情報が取得され、回路解析部8dを介して、テスト回路生成部9dにてテスト回路が生成されるのである。
換言すれば、階層設計において、第3の単位Cが処理され、次に第3の単位Cを内包している第4の単位Dを処理するに当たり、第3の単位Cが第4の単位Dにおいて参照されていても、設計情報データベース5に情報が格納されているか否かが自動判別され、格納されているときはその情報によって、第4の単位Dの回路が変更される。
次に、図10(a)〜(d)はいずれも本発明の第1実施形態に係るECO設計におけるテスト回路生成処理を説明するための図であって、テスト用のスキャンチェーンを例にして説明する。この図10(a)に示すチップ82は、回路モジュールG(モジュールG)を内包し、モジュールGは、複数のフリップフロップ(FF)を内包する。また、図10(b)に示す回路は、スキャン完成回路であって、モジュールG内の複数のフリップフロップ(FF)間がそれぞれ接続され、また、回路の端子情報が付与され、モジュールGと回路の端子とが接続されている。
テスト回路生成処理において、ECO処理により回路変更した部分以外については、旧回路のテスト回路を復元する必要がある。このため、テスト回路生成処理部4cは、旧回路の設計で作成された設計情報データベース5を読み込み、同一端子の追加、同一論理ゲートの追加、同一のテスト用のスキャンチェーンの接続等によって旧回路と同等のテスト回路を復元する。そして、回路変更のあった箇所については新たにテスト回路が生成される。
例えば、図10(c)に示す回路は、設計者がモジュールGを変更したものであり、モジュールG′となっている。このモジュールG′は、図10(a)のモジュールGと同じく、スキャン完成回路が存在しない状態である。
図10(d)に示すモジュールG′は、復元されたテスト回路であり、テスト回路生成処理部4cは、設計情報データベース5から履歴情報を読み出して、フリップフロップ間の接続やテスト端子名を認識し、旧回路と同等なテスト用のスキャンチェーンを生成するのである。
このように、テスト回路生成処理において、追加した端子の情報、追加した論理ゲートの情報、テスト回路の接続情報が、それぞれ、設計情報として書き込まれる。
また、このように、上位階層の処理において、各回路モジュールは、いずれも、設計情報データベース5から下位階層のテスト回路情報を取得して、上位階層のテスト回路が生成される。
さらに、このように、ECO設計において、旧回路と新回路とのそれぞれの回路を比較する必要がなく、また、回路の比較と差分解析とが不要となるので、複雑な処理が不要となり、さらに、設計者の情報入力が不要となるので、設計効率が大幅に向上する。
このようにして、旧回路を設計したときの設計情報が使用され、新回路の回路変更箇所以外を自動的に旧回路と同等に復元できる。
また、図3に示すテスト回路生成処理部4cは、固有化処理部4bと同様に、上位階層を処理するときに、内包している下位階層について、回路情報データベース2の代わりに、設計情報データベース5から情報を取得する。具体的には、テスト回路生成処理部4cは、下位階層を処理すべき単位として設計した処理結果等を取得し、処理された部分を自動的に判別する。
このようにして、下位階層についての回路情報データベース2が不要となり、テスト回路生成処理のために使用する、作業用メモリの容量が大幅に節約できる。
次に、図4を用いて、負荷調整処理部4dについて説明する。
図4は本発明の第1実施形態に係る負荷調整処理部4dのブロック図である。この図4に示す負荷調整処理部4dは、回路を処理する処理部102bとこの処理部102bを制御する制御部102aとを有する。図4に示すもので、上述したものと同一の符号を有するものは、同一のもの又は同様の機能を有するものなので、重複した説明を省略する。また、これらのものは、いずれも、回路情報データベース2と設計情報データベース5とに接続されている。
処理部102bは、固有化処理部4bの処理部100bと異なり、端子負荷・駆動能力設定部8fと、負荷解析部9fと、回路調整部10fとを有する。また、制御部102aは、固有化処理部4bの制御部100aと異なり、端子負荷・駆動能力設定制御部8eと、負荷解析制御部9eと、回路調整制御部10eとを有する。
ここで、端子負荷・駆動能力設定部8fは、上位階層の回路から参照する下位階層端子のそれぞれについて、下位階層の負荷調整処理で得られた負荷情報及び駆動能力情報を付与するものである。この端子負荷・駆動能力設定部8fは、設計情報データベース5に保持された階層端子のみなし負荷容量値を設定する。
そして、負荷解析部9fは、論理ゲート(論理素子)が駆動可能な端子容量を解析して、駆動不能な端子を抽出するものである。具体的には、負荷解析部9fは、論理ゲートの駆動能力と、駆動される論理ゲートや処理済み階層における階層端子の負荷容量及び配線容量から計算される総負荷容量とを評価して駆動不能箇所を抽出するものである。ここで、処理済み階層における階層端子の負荷容量や駆動能力は、端子負荷・駆動能力設定部8fによって、設計情報データベース5中の情報を利用して設定される。
さらに詳述すると、駆動される側が論理ゲートであるときは、その負荷容量値は、テクノロジライブラリ(図示省略)から取得される。また、駆動する配線の負荷容量は、配線長と分岐数とに基づいて計算される。そして、駆動する側が論理ゲートであるときは、その駆動能力値は、テクノロジライブラリから取得される。
また、回路調整部10fは、負荷解析部9fにて抽出された駆動不能な端子を調整するものである。具体的には、回路調整部10fは、負荷解析部9fにてエラーが抽出された論理ゲートについて、より大きい駆動能力を有する論理ゲートに置き換えたり、あるいは、ファンアウト数が多い部分について、バッファを回路に挿入して負荷を分散させるように調整する。これにより、回路における各端子がいずれも適切な容量に調整されるようになる。
また、端子負荷・駆動能力設定制御部8e,負荷解析制御部9e,回路調整制御部10eは、それぞれ、端子負荷・駆動能力設定部8f,負荷解析部9f,回路調整部10fを制御するものである。
そして、固有化処理部4b(図2参照)と同様に、制御のために必要な情報が、設計情報データベース5から、L3と付したルートを通り、制御部102aに入力され、また、設計対象のデータは、設計情報データベース5から、L4と付したルートを通り、処理部102bにて、データ処理される。
これにより、負荷調整において、分割された単位ごとに調整され、その単位の最上位階層の各端子に階層内部の論理ゲートのスペックから求めた負荷と駆動能力とを設定した、設計情報が作成される。そして、より上位の階層における負荷調整実行時には、設計情報データベース5から負荷と駆動能力の情報とを取得することによって、処理される。
次に、図11(a)〜(d)を用いて、負荷調整処理について説明する。
図11(a)〜(d)はいずれも本発明の第1実施形態に係る階層設計における負荷調整処理を説明するための図であって、主として回路調整部10fにて処理されるものである。この図11(a)に示すチップ83は、モジュールA,B,C,Dを内包しており、モジュールA,B間に、論理ゲート(以下、ゲートと称することがある)LGが存在することもある。
まず、モジュールAなどの負荷調整を行なうと、図11(b)に示すような論理ゲートで構成された回路が含まれる。この図11(b)に示すゲートG1は、ゲート群G2の4個の論理ゲートを駆動するので、駆動能力が不足し駆動不能となる可能性がある。ここで、駆動可能とするためには、ゲートG1を同一の論理でより駆動能力の大きな論理ゲートに置き換えるか、又は、図11(c)に示すように、バッファ66を挿入し、それぞれの論理ゲートが駆動する論理ゲートの数を減少させるのである。このような方法により、モジュールA〜Dのそれぞれの負荷調整を処理する。
また、モジュールAの負荷調整が処理されると、モジュール端子(階層端子とも称する)の入力端子に、その先にて駆動される論理ゲートの負荷容量値を代表してもたせることが可能であり、モジュール端子の出力端子に、その端子に信号を送信する論理ゲートの駆動能力を代表してもたせることができる。
このようにして、図11(d)に示すように、モジュールA〜Dのそれぞれについて、端子負荷・駆動能力情報が、設計情報データベース5にファイルとして、書き込まれる。
これにより、階層設計において、モジュールA〜Dが、一旦、負荷調整完了した後に、チップレベルの負荷調整が実行され、モジュールA〜Dの駆動能力と負荷とに関する情報が利用される。
また、図4に示す負荷調整処理部4dは、固有化処理部4b及びテスト回路生成処理部4cと同様に、上位階層を処理するときに、内包している下位階層について、回路情報データベース2の代わりに、設計情報データベース5にアクセスして、下位階層を処理すべき単位として設計した処理結果等を取得し、処理された部分を自動的に判別する。
このようにして、下位階層についての回路情報データベース2が不要となり、回路計算において、作業用メモリの容量が大幅に節約できる。
上述の構成により、図12を用いて回路データの流れについて説明し、また、図13及び図14を用いて階層設計について説明し、図15及び図16を用いてECO設計について詳述する。
図12は本発明の第1実施形態に係る回路データの流れを説明するための図である。この図12に示す回路モジュールイメージ42a(以下、モジュール42aと称する)は、回路情報データベース2に保持されたデータイメージであり、サブモジュールA,B(submodA,submodB)を内包する。また、サブモジュールAは、回路要素A1,A2を内包し、サブモジュールBは、回路要素B1と、配線D1,D2,D3とを内包する。
さらに、回路モジュールイメージ42b(以下、モジュール42bと称する)は、自動設計処理部3にて処理された後のデータイメージである。そして、モジュール42aのサブモジュールAはテスト回路生成処理により、回路要素A1,A2間が配線され、テスト端子A3,A4(SI,SOと付されたもの)が付与される。また、モジュール42aのサブモジュールBは負荷調整により、回路要素B2が配線D1〜D3に設けられる。
また、データイメージ41d,41eは、いずれも、設計情報データベース5に保持され、そして、テスト回路生成処理により発生したテスト端子の情報や、スキャンチェーンの情報が、モジュール42bのサブモジュールAの回路生成情報として保持される。さらに、負荷調整処理により発生した情報は、サブモジュールBの負荷容量情報及び駆動能力情報として保持される。
これにより、モジュール42aを一度に処理するには、作業メモリが不足する場合においても、サブモジュールAの処理と、サブモジュールBの処理と、設計情報データベース5を利用したモジュール42aの処理とを順番に行なうことにより、少ない作業用メモリで処理できる。
図13は本発明の第1実施形態に係る半導体回路Aのデータイメージを示す図である。この図13に示す半導体回路Aは、所定階層におけるチップ(以下、チップAと称することがある)であり、回路モジュールB,D(以下、モジュールB,Dと称する)と、2個の回路モジュールC(以下、モジュールCと称する)とを内包している。さらに、これらのモジュールB,C,Dは、それぞれ、サブモジュールXを内包する。
そして、この半導体回路Aについて、モジュールB,C,D,X,Aの順に、HDL変換処理、固有化処理、テスト回路生成処理、負荷調整処理が実行される。
なお、以下の説明では、このモジュールは、単位(処理すべき単位又は処理された単位)という意味でも使用する。
図14は本発明の第1実施形態に係る階層設計を説明するためのフローチャートである。まず、ステップA1にて、HDLで記述された半導体回路(チップ)Aのデータが、回路情報データベース2に変換される。そして、このHDL変換によりモジュールB,C,Dがそれぞれ、回路情報データベース2に保持される。
次に、モジュールBとモジュールBに属するモジュールの処理が、ステップA2にて行なわれる。すなわち、固有化処理され(ステップA2x)、テスト回路生成処理され(ステップA2y)、負荷調整処理される(ステップA2z)。また、これらの処理により変更された情報はそれぞれ設計情報データベース5に保持される。
続いて、モジュールCとモジュールCに属するモジュールの処理が、ステップA3にて行なわれる。すなわち、固有化処理され(ステップA3x)、テスト回路生成処理され(ステップA3y)、負荷調整処理され(ステップA3z)、そして、これらの処理により変更された情報はそれぞれ設計情報データベース5に保持される。
同様に、モジュールDとモジュールDに属するモジュールの処理が、ステップA4にて行なわれる。すなわち、固有化処理され(ステップA4x)、テスト回路生成処理され(ステップA4y)、負荷調整処理され(ステップA4z)、これらの処理により変更された情報はそれぞれ設計情報データベース5に保持される。
そして、ステップA5にて、チップレベル処理により作業用メモリの容量不足を生じる可能性がある階層が、既に処理済みか否かが判定され、処理済みでないときは、Nルートを通り、ステップA6にて未処理の階層が処理され、また、処理済みのときは、Yルートを通る。
ここで、ステップA7において、チップAを処理する場合には内包しているモジュールB,C,Dの情報が既に設計情報データベース5に保持されているため、回路情報データベース2からチップAの情報が読み込まれ、設計情報データベース5から必要な情報を取得され、回路が変更される。さらに、既に処理されたモジュールに関する実体については参照されない。
まず、チップAの未処理の部分について、固有化処理され(ステップA7x)、テスト回路生成処理され(ステップA7y)、負荷調整処理される(ステップA7z)。また、テスト回路生成処理及び負荷調整においては設計情報データベース5に保持されているモジュールB,C,Dの情報が参照されて、チップAの回路が変更される。ここで、実体の回路情報は参照されていない。続いて、ステップA8において、ゲートレベルとして完成されたチップAのゲートレベルのデータ(HDLデータなど)が出力され、以降、物理設計工程に進む。
このように、回路情報データベース2からチップAの情報を読み込むときに、設計情報データベース5から必要な情報だけが取得され、変更が不要な回路については情報が取得されないで、設計が行なわれる。
また、このようにして、処理されたモジュールが複数参照されている場合でも設計情報データベース5に保持された情報が使用されることにより、上位階層におけるモジュールの回路変更が可能となる。
続いて、ECO処理について説明する。
図15は本発明の第1実施形態に係る他の半導体回路(チップ)Aのデータイメージを示す図である。この図15に示すチップAは、回路モジュールB,C,D,E(以下、モジュールB,C,D,Eと称する)を内包する。ここで、モジュールCに含まれるサブモジュールY−0は、設計者が、一旦、設計を完成した後のものである。そして、このサブモジュールY−0は、設計者の設計変更により名称Y′を有するサブモジュールに置き換えられる。なお、この図15に示す名称A,B,C,Dは、いずれも図13,図14に示すそれらとは別のものである。
前提として、設計の対象となるチップAの全体は、既に設計装置1を用いて設計されている。そして、設計者はECO処理の対象とするモジュールの回路情報を含む回路情報データベース2の他に、設計完成時において生成された設計情報データベース5を保持しているとする。
設計者は、回路の論理を変更しない場合は、設計装置1を用いて設計完了した回路を変更するのではなく、それ以前における回路を変更する。この回路は、設計者自身が仕様に基づき作成した回路である。そして、その変更された情報は、HDL変換により回路情報データベース2に再入力される。
そして、設計者は、変更したモジュールの名称を、設計装置1に対してパラメータとして入力する。設計装置1は、この名称から、設計情報データベース5内の階層情報を読み出して、回路情報データベース2内から必要な回路情報のみを選択して作業用メモリにロードする。
ここで、ECO設計の対象となるモジュールが、複数参照されているモジュールであり、かつ、固有化が必要な場合には、設計装置1は、設計情報データベース5の固有化情報を参照する。そして、その参照したモジュールが、それ以前の固有化時に存在していたモジュールである場合には、同一の名称が再度付与される。
一方、その参照したモジュールが、設計情報データベース5の固有化情報に存在しないモジュールであって新たに追加されたものである場合は、設計装置1は、現在参照している設計情報データベース5に保持された情報の範囲内において、他のモジュールと重複しない名称に変更する。
そして、設計者が前回の処理時にはなかった端子を追加したり又は逆に端子を削減した場合であって、ECO設計でないときは、設計装置1は、HDL記述違反としてエラーとする。一方、ECO設計であるときは、設計装置1は、設計情報データベース5を参照して一時的不整合を容認する。
さらに、設計装置1は、ECO設計の対象となったモジュールに含まれるものであっても、設計情報データベース5を参照し、前回の処理時に付加した回路と同一の回路を可能な限り、復元する。このとき、設計情報データベース5中の情報と、ECO設計対象モジュール中の回路との対応は、インスタンス名の一致などにより判断あれ、いずれも前回処理されたときと同一構成の付加回路に含まれるように処理される。
次に、図16(a),(b)を用いてECO処理について説明する。図16(a),(b)は本発明の第1実施形態に係るECO処理を説明するためのフローチャートである。ここで、図16(a)は通常処理を表すものであり、図16(b)は本発明のECO処理を表す。
まず、図16(a)において、未完成の半導体回路AのHDLデータが、回路情報データベース2に変換され(ステップB1)、固有化処理され(ステップB2)、テスト回路生成処理され(ステップB3)、負荷調整処理され(ステップB4)、そして、ゲートレベルとして完成された半導体回路AのHDLデータが出力される(ステップB5)。
また、図16(b)において、一旦完成された半導体回路AのHDLデータと、回路変更されたサブモジュールYのHDLデータとが、それぞれ、回路情報データベース2に変換され(ステップC1)、ステップC2において、通常処理時の履歴に基づき固有化処理されて、新たなサブモジュールY′が得られ、この名称Y′が名称Y−0に変更される。さらに、階層構造の復元が確認され(ステップC3)、通常処理時の履歴に基づきテスト回路生成処理され(ステップC4)、接続関係の復元が確認され(ステップC5)、通常処理時の履歴に基づいて負荷調整処理され(ステップC6)、ECO処理が完了した半導体回路AのHDLデータが出力される(ステップC7)。
このように、本発明の設計装置1は、大規模半導体回路の階層設計又はECO設計において、回路のすべてにわたって回路情報データベース2を参照せずに、各階層を処理したときや、又は、前回処理したときに自動的に抽出した設計情報データベース5を参照し、各モジュール間の関係を自動的に認識して処理するため、作業用メモリの使用量を最適にでき、設計者の負担を一括設計と同等にまで削減できる。
また、このように、すべての工程が自動化されるため、複数の処理を連続的に実行することが可能になり、処理時間の削減、ひいては設計期間が短縮され、そして、固有化処理と、テスト回路生成処理と、負荷調整処理とのそれぞれについて設計効率が向上する。
このようにして、例えば端子の境界情報や端子等の設計情報が自動的に入力され、履歴情報から現在の処理における処理対象外の部分が自動的に判別され、また、その処理対象外の部分に含まれる設計情報が自動的に抽出されて、現在設計中の部分の処理に利用される。
従って、このようにして、階層設計が容易に実現でき、また、大規模回路の階層設計が非常に効率よくできる。
(B)本発明の第2実施形態の説明
第2実施形態は、回路設計におけるタイミング配分装置についてのものであり、この回路設計においては、PCB設計やLSI設計を含むタイミング配分について設計される。
図17は本発明の第2実施形態に係る回路設計の工程を示す図である。まず、システム仕様が設計され(ステップP1)、ステップP2にて、システムアーキテクチャが検討され(ステップP2x)、PCB及びLSIのブロック分割が設計される(ステップP2y)。続いて、PCBのタイミング仕様が設計された後(ステップP3)、PCBがインプリメントされる(ステップP4)。一方、LSIについては、タイミング仕様が設計された後(ステップP5)、LSIがインプリメントされる(ステップP6)。
そして、PCBのタイミング仕様の設計と、LSIのタイミング仕様の設計とは、それぞれ、相互に密接にデータを共有するようにして進めることができるようになっている。本発明のタイミング配分装置は、ステップP2〜ステップP3又はステップP5の間の工程にて用いられるのが好ましく、また、分散設計に用いるのが好ましく、さらに、PCB又はLSIのインプリメントに重大な影響を与えるものである。なお、ステップP3とステップP5との間は、独立して設計されているが、設計中のデータを相互に参照することができるようになっている。
図18は本発明の第2実施形態に係るブロック分割設計の工程を示す図であり、この図18に示すステップ名のうち、図17に示すものと同一のものは、同一のステップを表す。ここで、ステップP2yにて、PCBとLSIとにブロック分割され、ブロック情報が生成され、ステップP7において、タイミング配分(PCB,LSI)について設計される。具体的には、ブロック情報,制約定義情報,HDLソースコード(以下、ソースコードと略称することがある)及び後述するライブラリデータに基づいて、タイミング配分が決定されるようになっている。一方、ソースコードに設計内容が反映され(ステップP8)、タイミング付き論理シミュレーションが可能となるとともに(ステップP9)、PCB又はLSIがインプリメントされる(ステップP4,P6)。
図19は本発明の第2実施形態に係る回路設計装置の構成図である。この図19に示す回路設計装置1a(以下、設計装置1aと称することがある)は、回路を設計するものであって、タイミング配分装置51と、配分レポート作成部50dとをそなえて構成されている。また、図19に示す設計装置1aは、レイアウトCAD装置52a,52cと、波形解析CAD装置52bと接続されている。ここで、レイアウトCAD装置52a,52cは、それぞれ、LSI用/PCB用のレイアウトに関して設計するものであり、波形解析CAD装置52bは、回路の波形を解析するものであり、LSI及びPCBの双方を設計できる。
図20は本発明の第2実施形態に係るタイミング配分装置51のブロック図である。この図20に示すタイミング配分装置51(以下、本装置51と称することがある)は、階層設計において、タイミング配分値を決定するものであって、階層間連携マネージャ53と、タイミング配分作成部54a〜54eと、タイミング情報データベース(以下、TDB[Timing Data Base]と称することがある)57a〜57eとをそなえて構成されている。
このタイミング配分値(以下、配分値と称することがある)とは、回路ブロック間の配線における第1の配分値と回路ブロック単位の内部における第2の配分値とを意味する。第1の配分値は、ブロック間配線遅延値,配線長,配線負荷容量について配分したものであり、第2の配分値は、トランジスタ製造プロセスによるばらつきや温度も考慮したゲート遅延値,処理が完了するまでの時間を示す遅延サイクル数,ブロック内部の配線における遅延値について配分したものである。
また、階層間連携マネージャ53は、タイミング配分作成部54a〜54eのそれぞれに接続され、タイミング配分作成部54a〜54eのそれぞれの間とタイミング配分値に関する修正情報を送受信するものである。また、タイミング配分作成部54a〜54eは、それぞれ、複数の設計階層のそれぞれに対応して設けられ、配線形態に関するネットリストを有するTDB57a〜57eから回路の機能に関するブロック情報を入力され、回路の遅延要素により生じる遅延値を配分して得るタイミング配分値を出力しうるものである。
さらに、TDB57a〜57eは、それぞれ、ネットリスト表現によるデータベースであって、階層エンティティのうちの制約定義情報と、仮レイアウト及び実レイアウト後のタイミング情報とを配線形態を意識した状態で保持している。なお、配線形態を意識した状態での保持内容については、図33(a)〜(c)を用いて後述する。
ここで、階層エンティティとは、各階層ごとの情報を管理するものであり、図21,図22を用いて後述する。また、ネットリストとは、回路における部品、配線接続情報、位置情報等をテキストファイルのリスト形式で出力したものであり、このネットリストが読み込まれることにより、設計者が部品を1つづつ入力せずに、全部品を回路上に配置できるようにするためのものである。
さらに、制約定義情報とは、タイミングに関する制約情報であり、例えば一つの端子から他の端子に信号を伝送するのに、何nm(ナノメートル)以下の制限がある等の情報を意味するほか、回路設計において、部品配置が禁止されている箇所や、部品の高さ等を表す情報を意味する。そして、タイミング情報とは、フロアプラン(配置位置情報)が生成された後のものであり、その内容は配線形態を意識したネットリスト表現で保持されている。この配線形態を意識したネットリスト表現とは、ネットリストの名称付与に関するものであって、その詳細については、図33(a)〜(c)を用いて後述する。
次に、図20に示す配分マネージャ56a〜56eと、階層間連携マネージャ53との間における配分値の送受信について説明する。フロアプラン部55aは論理/制約情報保持部64aに接続され、回路素子の配置及び回路素子間の配線に関するフロアプランに基づきタイミングを配分して仮配線するものである。そして、配分マネージャ56aは論理/制約情報保持部64aとタイミング情報保持部65aとに接続され、ネットリストに基づいて遅延値を出力するものである。配分マネージャ56b〜56eは、それぞれ、論理/制約情報保持部64b〜64eとタイミング情報保持部65b〜65eとに接続され、ネットリストに基づいて遅延値を出力するものである。なお、論理/制約情報保持部64a,タイミング情報保持部65aの詳細については、図24を用いて後述する。
図21は本発明の第2実施形態に係る階層間の配分値の送受信を説明するための図である。この図21に示す階層間連携マネージャ53は、各階層エンティティを担当する各配分マネージャ56a〜56eとの間において、データを送受信し、必要な情報を得るようになっている。
また、階層間連携マネージャ53は、TDB57a〜57eのうちの一つが送信したタイミング配分仕様変更要求を受信し、タイミング配分仕様変更が影響を与えうる他のTDB57a〜57eを抽出し、他のTDB57a〜57eに対してタイミング配分値の変更の可否を問い合わせるようになっており、他のTDB57a〜57eからタイミング配分値の変更可能を受信すると、所望のTDB57a〜57eに対して変更可能を出力するようになっており、さらに、タイミング配分値が変更されると、その変更された階層よりも上位の階層エンティティが更新されるようになっている。
すなわち、設計者によるタイミング仕様変更が影響を与える他階層が自動的に抽出され、その変更の可否が階層間連携マネージャ53及び配分マネージャ56a〜56eを介して、その階層のTDB57a〜57eに問い合わせられるのである。また、その変更可否の結果が、タイミング配分値の変更が可能であるものであれば、設計者に対して、変更通知が発行されるようになっている。これにより、タイミング仕様の変更が迅速に通知される。
そして、タイミング配分値が変更された場合、階層間連携マネージャ53によって、タイミング変更された階層エンティティのTDB57a〜57eから、必要な部分のみがその階層エンティティよりも上位の階層エンディティに対して、自動的に、タイミング配分値として取り込まれる。
なお、図21に示す配分マネージャ56dは配分マネージャ56aと同様のものであり、TDB57dもTDB57aと同様なものであり、更なる説明を省略する。
図22は本発明の第2実施形態に係る上位階層と下位階層との間の配分値の送受信を説明するための図である。この図22に示すもので、上述したものと同一の符号を有するものは同一のもの又は同様の機能を有するものであるので、更なる説明を省略する。
これにより、最上位階層は、下位階層からの配分値を得られるので、システム全体での静的なタイミング解析(STA)が可能となる。このSTAとは、テストベンチをせずにタイミング検証することを意味する。
また、階層間連携マネージャ53は、TDB57a〜57eに対して、タイミング情報データが不足している回路ブロックを抽出して入力するとともに、その不足している回路ブロックを設計者に対して通知するようになっており、これにより、設計者の作業効率が向上する。
次に、この図21に示す各配分マネージャ56a〜56eを模式化したものを図23に示す。
図23は本発明の第2実施形態に係る階層エンティティを説明するための図である。この図23に示す円のそれぞれが、各設計階層ごとに設けられた階層エンティティを表し、これらは木構造になっている。この階層エンティティは、具体的には各設計階層において必要な設計情報を一まとめにしたものである。ここで、設計情報とは、TDB,ネットリスト,ブロック情報,制約定義情報,レイアウト情報,仮/実レイアウト後,タイミング情報等を意味する。
従って、階層設計において、各階層ごとに階層エンティティと階層エンティティのデータを処理するプログラムとが、一つの設計階層として分割されている。換言すれば、オブジェクト指向(エージェント指向)を用いることにより、システム全体のタイミングが配分されるのである。
これにより、複数の設計階層が、相互に、階層間連携マネージャ53を介して通信できるようになっている。
図23に示す階層エンティティ90a(PCBブロック)は、階層エンティティ90b(LSI2ブロック)に対して、見積もり要求やバックアノテーション要求を送信し、また、階層エンティティ90bからの見積もり返答や実遅延値返答を受信する。さらに、階層エンティティ90bは、階層エンティティ90c(HLB2−2ブロック)及び階層エンティティ90d(HLB2−1ブロック)との間で、同様な要求又は返答を送受信する。また、これら以外の各階層エンティティについても、同様である。そして、見積もり要求/バックアノテーション要求,見積もり返答/実遅延値返答は、それぞれ、階層間連携マネージャ53と配分マネージャ56aというプログラムによって実行される。なお、HLB(Hierarchy Layout Block:階層レイアウトブロック)とは、LSI中のサブブロックを表す。
従って、本装置51は、タイミング配分作成部54a〜54eが、複数の設計階層のそれぞれに対応して設けられ設計情報を有する階層エンティティと設計情報を処理するためのプログラムデータとを有するエージェントとして構成されるとともに、階層間連携マネージャ53が、エージェントとしてのタイミング配分作成部54a〜54eに接続され複数の設計階層のそれぞれとタイミング配分値に関する情報を送受信するマネージャとして構成されたことになる。
また、階層間連携マネージャ53(図21,図22等参照)は、配分マネージャ56a〜56eの組み合わせを変更できるようになっている。従って、階層間連携マネージャ53と、配分マネージャ56a〜56eのそれぞれとに対応する階層エンティティは、設計対象に応じて自由にかつ動的に変更できる。このため、図23に示す木構造のうちの特定の円にぶら下がっている(接続されている)複数の円をまとめて、他の複数の円を付け替えることもできる。
従って、階層エンティティが、全体から部分へ、さらに、部分から他の部分への順に階層間が密接に連携して動作できる。このため、設計者は、設計対象の回路ブロックを下位ブロックヘ分割するときに、試行検討で分割したタイミング仕様についての良否判断が容易となる。加えて、分割が上位から下位に行なわれるので、設計者はタイミング配分値を、概略値から詳細値ヘと得ることができ、アーキテクチャ設計に当たり、タイミングがクリティカルな部分の予測又は検討が可能になる。
また、そのタイミングがクリティカルな部分については、対象となる部分のみが、実レイアウトを実行されるので、先行検証が可能となる。さらに、設計者は他の回路ブロックにおける配分値を参照しながら設計できるため、誤った配分を防止できる。また、要求される時間(制約)と到着する時間(遅延値)との差は、スラックマージンと呼ばれ、この値の正負により検討する。すなわち、スラックが負の場合は遅延違反となり、正の場合はタイミング要求の範囲内となる。インプリメント時にタイミング仕様にて指定されたその要求を満足できない場合(遅延違反)は、他の部分に配分されている正のスラックを消費することにより、負のスラックの改善を図ることができる。
なお、タイミング配分作成部54b〜54eも、タイミング配分作成部54aと同一の構成であるので、重複した説明を省略する。次に、図20に示すタイミング配分作成部54aについて、図24を用いて説明する。
図24は本発明の第2実施形態に係るタイミング配分作成部54aのブロック図である。この図24に示すタイミング配分作成部54aは、フロアプラン部55a,配分マネージャ56a,論理/制約情報保持部64a,タイミング情報保持部65a,HDLアノテータ58e,HDLコンパイラ58f,配分レポート作成部50d,波形解析用情報作成部58h,波形解析用情報保持部58iをそなえて構成されている。以下、論理/制約情報保持部64a,タイミング情報保持部65a,波形解析用情報保持部58iを、それぞれ、保持部64a,65a,58iと称することがある。また、この図24に示すもので、上述したものと同一の符号を有するものは同一のもの又は同様の機能を有するものであるので、重複した説明を省略する。なお、〔1〕,〔2〕(図中、それぞれ丸付き数字1,2で示す)と付されたものは図36を用いて説明する。
なお、以下の説明において、図21,図22,図24,図36〜図38に示す丸付き数字は、それぞれ、〔〕付き数字を用いて説明する。
ここで、保持部64aは、設計言語のソースコードに関するネットリスト,ブロック情報及び配線に関する制約情報を有する論理/制約情報を保持するものであって、制約条件保持部58b,構造部分ネットリスト保持部58c(以下、制約条件保持部58b,構造部分ネットリスト保持部58cを、それぞれ、保持部58b,58cと称することがある)を有する。保持部58bは、制約定義情報を入力され、その情報に基づき、部品等が占める面積やタイミング仕様を制約条件として保持するものであり、保持部58cはブロック情報を入力され、ネットリストを保持するものである。
また、フロアプラン部55aは保持部64aに接続され、回路素子の配置及び回路素子間の配線に関するフロアプランに基づきタイミングを配分して仮配線を行なうものである。そして、タイミング情報保持部(タイミング情報)65aは、フロアプラン部55aに接続され、上記のブロック情報やネットリスト、タイミング情報を保持するものである。
ここで、2以上の配分値を用いた計算においては、配分値の最小値及び最大値が自動的に生成され、そして、遅延値が計算されるようになっている。この精度差は、四捨五入により元の数値になる範囲に逆丸め込み演算することにより得られる。ここで、一例として、遅延値を、計算対象とする2.227ns(ナノ秒)に有効数字桁数を合わせるために、有効数字2桁の1.2nsから4桁の範囲を有する数値(1.145〜1.244ns)に変換する手法について説明する。
従って、他階層が自動的に抽出され、その変更の可否が、各階層のTDB57a〜57eに問い合わせられ、その変更可否の結果が、タイミング配分値の変更可能であれば、設計者に対して、変更通知が発行される。これにより、柔軟な設計変更が可能となる。
タイミングライブラリにおいて、遅延値が1.2nsと保持されているとする。そのため、設計者は、丸め込みのため、誤差範囲を0.09ns(0.099999…ns)と設定する。そして、この誤差範囲0.09nsを有し、かつ、小数第2位における四捨五入により遅延値1.2nsになる範囲を求めると、最小値1.15ns〜最大値1.24nsとなる。換言すれば、この間の遅延値を小数第2位において四捨五入することにより、1.2nsが得られるようになっている。
次に、これらの最小値1.15ns,最大値1.24nsのそれぞれについて、最小値と最大値とを設計者が計算し、1.15nsについては、最小値1.145ns〜最大値1.154nsの範囲を得て、また、1.24nsについては、最小値1.235ns〜最大値1.244nsの範囲を得る。そして、得られた範囲に基づいて、最小値1.145ns〜最大値1.244nsの範囲が得られるのである。
従って、有効数字2桁が4桁に拡張され、2桁の遅延値(1.2ns)が4桁の遅延値(1.145〜1.244ns)を得られるので、他の数値と同一の有効数字桁数の遅延値を生成することができる。
また、他のタイミングライブラリにおいて、遅延値が有効数字4桁の場合(計算対象の2.237ns)は、最小値と最大値との双方が2.237nsとなる。
このように、配分値の精度が、タイミングライブラリに保持されているデータに基づき、異なる精度を有するデータ間において、自動的に決定される。このため、高速部品と低速部品とが接続された場合でも、これらの部品に生じる精度差によらずに、計算が可能である。
また、精度の異なる複数のタイミングライブラリを用いることが可能となる。さらに、誤差を含め、最小値/最大値表現によりスラックを把握しやすくなる。
すなわち、配分マネージャ56aは、マージンが減少する方向に、配分値を変更できるか否かに関する可否情報を有し、各配分値のうち、クリティカルなパスを抽出できるようになっており、また、改善可能な部分を抽出できるようになっている。これにより、回路の配分修正が可能となり、設計者は修正部分を容易に知ることができる。
HDLアノテータ58eは、タイミング配分値に起因する情報をソースコードに書き込むものであり、タイミング情報保持部65aから所望のデータを読み込み、ソースコードに必要なデータを書き込むようになっている。また、HDLアノテータ58eは、ソースコードに、配線形態に関するネットリストを書き込むようにもなっている。すなわち、信号代入に必要な時間の記述について、HDLアノテータ58eにより配分された値が、ソースコードにバックアノテーションされ、遅延値が、設定又は変更されるのである。また、このバックアノテーションをすると、配線形態を意識したネットリスト表現についても、ソースコードに、コメント文として、書き込まれる。
これにより、設計者と本装置51との間のユーザインターフェースが、より密接になる。
HDLコンパイラ58fは、ソースコードとパラメータとを入力され、そのデータを構造部分ネットリスト保持部58cに出力するものである。
さらに、波形解析用情報作成部58hは、LSIの階層のI/Oバッファ情報(入出力バッファ情報)からPCBの波形解析用の情報を生成するものである。従って、設計者は波形が簡易に解析できる。
そして、波形解析用情報保持部58iは、波形解析用情報作成部58hと波形解析CAD装置52bとに接続され、波形解析用情報作成部58hにより書き込まれるタイミング配分値のほか、各LSIブロックについてのデータを保持しており、各PCBブロックは、いずれも、波形解析に必要なネットリストについてのデータを保持している。従って、波形解析用のライブラリとして機能している。また、この波形解析用情報保持部58iは、波形解析CAD装置52bと接続され、この波形解析用情報保持部58iがそれらのデータを参照できるようになっている。
図25は本発明の第2実施形態に係るフロアプラン部55aのブロック図であり、この図25に示すフロアプラン部55aは、配置処理部59f,物理テクノロジ情報保持部59c,実配線・仮配線実行部60,配線情報保持部(配線情報)59d,変換部59eをそなえて構成されている。
配置処理部59fは保持部64aに接続され、属性情報としての配分値を制約情報からのスラックに基づき改善と修正とが可能な部分を提示するとともに、遅延要素情報に起因する配置情報を保持するものであって、属性情報としての配分値を制約情報からのスラックに基づき改善と修正とが可能な部分を提示する配置支援部59aと、遅延要素情報に起因する配置情報を保持する配置情報保持部59bとを有する。
実配線・仮配線実行部60は配置処理部59fに接続され、実配線への連携と仮配線とを行なうとともに配線情報を出力するものであって、マンハッタン長仮配線部60a,斜めマンハッタン長仮配線部60b,実配線連携部60c,60d,抽出部60e,名称付与部60fをそなえて構成されている。ここで、実配線とは配線層を考慮し、配線を3次元で配線し他の配線との衝突や配線幅を考慮したものであって、処理時間が長い配線手法である。仮配線とは配線を2次元で配線しかつ配線間ショートを考慮しない配線手法である。
また、実配線・仮配線実行部60が、マンハッタン長仮配線と斜めマンハッタン長仮配線と実配線とに基づいて仮配線するようになっている。これにより、配線混雑度が密な場所においても精度が向上する。
そして、実配線・仮配線実行部60は、選択された階層について遅延値及び負荷容量を、物理テクノロジ情報保持部59cから読み出し、単位配線長当たりの遅延時間を変化させて配分するようにもなっている。従って、タイミング仕様の変更時に、再計算を即座に行なえるようになる。
上記のマンハッタン長仮配線部60aは配置支援部59aの配置結果に基づき、PCBとLSIとの双方についてマンハッタン長仮配線する。従って、配線作業の効率が向上する。
斜めマンハッタン長仮配線部60b(以下、仮配線部60bと称することがある)は配置支援部59aの配置結果に基づきPCBの縁に対して斜めに配線する斜め配線を用いて仮配線するものであり、また、PCBに用いられる配線手法である。従って、やはり、配線作業の効率が向上する。
図26は本発明の第2実施形態に係る斜めマンハッタン長仮配線を説明するための図であり、Pと付されたものはピンを表し、これらのピンP間が配線されている。この配線アルゴリズムは、次の(3−1)〜(3−3)に示すようになる。
(3−1)仮配線部60bは、予め設定した斜め配線率に基づき、斜め配線成分を生成する。
(3−2)仮配線部60bは、マンハッタン配線における角(かど)の部分について、総配線長のうち斜め配線率分に相当する配線長の部分を45度配線する。
(3−3)負のスラック(余剰時間)を有するパスであれば、仮配線部60bは、斜め配線率を上げて再配線する。ここで、斜め配線部分の総配線長は、図26に示すように、直交配線部分の相当する部分の配線長のルート2分の1である。
さらに、実配線・仮配線実行部60は、仮配線により得られたタイミング配分値について計算されたマージンと配線密度を表す配線混雑度とに基づいて実配線するようになっている。これにより、配線混雑度に応じて仮配線又は実配線が自動的に切り替えられるため、トレードオフを有効活用でき、設計者の手間を削減できる。
加えて、抽出部60eは、配線混雑度を抽出するものである。従って、実配線・仮配線実行部60が、配線禁止の領域と配線混雑度とに基づいて、仮配線及び実配線をするようになっている。この配線混雑度は、2種類のアルゴリズムを用いて、自動的に抽出されるようになっている。
図27,図28はいずれも本発明の第2実施形態に係る配線混雑度を抽出するためのアルゴリズムを説明するための図であり、回路ブロックB1,B2が配置され、これらのブロック間が、多数の線(Lと付された円に含まれる線分)によって、接続されている。
まず、第1のアルゴリズムは、簡易アルゴリズムと呼ばれ、次の(4−1),(4−2)に示すようなものである。
(4−1)各回路ブロックの端子と端子との間に線を引く。
(4−2)図27に示すS1と付した単位面積当たりの線数をカウントし、その値を配線混雑度とする。
第2のアルゴリズムは、マンハッタン長を用いたアルゴリズムであり、次の(5−1),(5−2)に示すようになる。
(5−1)図28に示す直角的な配線のように、マクロな回路ブロックB1,B2や配線禁止領域等を避けて、グリッド線に沿って配線する。
(5−2)図28に示すS2と付した単位面積当たりの配線数をカウントし、その値を配線混雑度とする。
さらに、実配線連携部60c,60dは協働して、LSIとPCBとについて配線するものであり、このうち実配線連携部60cはLSI用であり、実配線連携部60dはPCB用である。そして、実配線連携部60cは、レイアウトCAD装置52aと接続されて、データを送受信でき、また、実配線連携部60dは、レイアウトCAD装置52cと接続されて、データを送受信できるようになっている。
従って、仮配線と設計対象となる回路ブロックに依存した詳細な実配線とを混在させて配線でき、タイミングの配分値を抽出できる。
加えて、実配線・仮配線実行部60は、実配線のみ行なえる他の計算機を援用する設計装置と連動させるべく、実配線にて不足する情報に関する解析用の情報を出力するようになっている。
これにより、本装置51が実配線する際に、不足する情報が設計者に通知され、設計者がその情報に基づき解析に必要な情報を作成して、その情報を実配線専用のレイアウトCAD装置52a,52cに送信して配線できるようになる。
また、実配線・仮配線実行部60は、長い計算時間を要する実配線と計算時間が短い仮配線とを併用して配線し、かつ、タイミング配分値を抽出するようになっている。
これにより、設計者は、まず、仮配線によりタイミング仕様を検討し、その検討にて得られた結果に基づいてタイミング配分を変更して実配線できる。
さらに、図25において、フロアプラン部55aは、回路ブロックの規模(大きさ)又は形状を実配線及び仮配線している間に変更できるようになっている。
図29は本発明の第2実施形態に係る配置領域の拡大を模式的に示す図である。この図29に示す回路ブロックI20の配置領域が拡大されて、回路ブロックI21が得られ、I20中には入らなかったD,E及びFの配置が、I21においては、可能となった。逆に、大き過ぎる配置領域を縮小することも可能になっている。従って、柔軟な配置設計が可能となる。
加えて、図25において、フロアプラン部55aは、回路ブロック中の配線幅を、実配線及び仮配線している間に変更できるようになっている。この配線幅が小さいと配線容量が小さくなり、大きいと配線容量が大きくなる。従って、この配線幅を変更できるので、回路を柔軟に設計できる。
そして、配線情報保持部59dは実配線・仮配線実行部60に接続され、配線情報を保持するものである。変換部59eは配線情報保持部59dと物理テクノロジ情報保持部59cとに接続され、配線長及び負荷容量に基づいて配線情報を遅延値に変換して出力するものである。また、物理テクノロジ情報保持部59cは、単位長当たりの遅延値,単位長当たりの負荷容量とを、相互に関連づけて保持するものである。これらの値(ライブラリ)は、配線幅及び配線層ごとに用意されており、それらが、PCBのテクノロジ(PCBテクノロジ)やLSIのテクノロジ(LSIテクノロジ)ごとに用意され、保持されている。そして、この物理テクノロジ情報を用いて、配線長から遅延値が算出されるようになっている。
従って、変換部59eにて、物理配線長に基づき物理テクノロジ情報保持部59cからその単位長当たりの遅延値が読み出され、配線長と遅延値とが変換される。また、変換部59eにて、負荷容量に基づき、その単位容量による遅延値が読み出され、負荷容量と遅延値とが変換される。これにより、容易に配線長から遅延値が算出される。
さらに、実配線・仮配線実行部60(図25参照)は、選択された階層について物理テクノロジを変更可能となっており、遅延値及び負荷容量を、物理テクノロジ情報保持部59cから読み出し、単位配線長当たりの遅延時間を、選択した物理テクノロジに合わせて自動的に設定して配分するようになっている。すなわち、回路ブロックの物理テクノロジを変更可能なため、タイミング制約を満たすための物理テクノロジを検索することができる。
また、さらに、実配線・仮配線実行部60は、制約条件として使用されたクロック周波数に基づき到達しなければならない時間内(1周期分)に到達可能の可否を判定し、到達不可と判定すると複数の回路ブロック間のネットリストに対してバッファ及びフリップフロップの挿入を指示するようになっている。これにより、仮想ピンまで到達不可能な場合にのみ、バッファ等が挿入されるので、制約条件を効果的に満たすことができる。
図30は本発明の第2実施形態に係るLSI内部のタイミング配分を説明するための図である。この図30に示すチップ61は、回路モジュール(モジュール)61a〜61eを有し、その外周部又は内部には、端子(外周部については四角形のもの)を有する。また、各モジュール61a〜61eは、それぞれ、モジュールの端部に仮想ピン(円形で表示されたもの)を設けている。この仮想ピンは、他のモジュールに設けられた仮想ピンと接続され、例えばクロック(CLK)等が共有するようになっている。
そして、実配線・仮配線実行部60は、回路ブロックに含まれる端子(仮想ピン)を制約情報に基づいて配置するようになっている。すなわち、仮想ピンの位置については、負のスラックとなるものから優先的にモジュール端部の所定位置に設けられる。そして、その位置において、マンハッタン長で配線したときのスラックが計算され、負のスラックが発生しなければその位置に決定する。この図30に示す他のモジュール61b〜61eについても、モジュール61aと同様である。なお、PCBの設計においては、斜めマンハッタン長も含まれる。従って、配置が簡易になる。
さらに、モジュール61bの仮想ピンQは、クリティカルネット61fと接続されており、また、クリティカルネット61fには、フリップフロップ61gが接続されている。これにより、クリティカルネット61fが負のスラックを有し、タイミング条件を満たせない場合は、そのタイミング条件を満たすように、フリップフロップ,バッファ又はインバータが挿入される。
このフリップフロップを挿入することにより、仮想ピンQから出力される信号は、フリップフロップにて、1サイクル遅延するが、仮想ピンQ〜フリップフロップ61g,フリップフロップ61g〜モジュール61cの端子Aとの間においては、セットアップ条件が満たされる。
従って、配分値と、与えられたクロック周波数とに基づき、1クロックで回路ブロックのピン,仮想ピンから、他の回路ブロックのピン,仮想ピンまで到達できるか否かが計算され、到達不可能な場合には、回路ブロック間のネットリストに、フリップフロップ等が挿入される。また、この例におけるチップ61は、9mm(ミリメートル)長だけ配線すると、6nsの遅延値となるものであり、従って、動作周波数が166MHz(メガヘルツ)以下であれば動作する。
このように、RTL(Register Transfer Level)設計前に、タイミングを調整できる。次に、タイミング配分値の設定について、説明する。
図24において、タイミング配分作成部54aは、予め設定された他のタイミング仕様とフロアプラン部55aにて配分されたタイミングとに基づいて、タイミング配分値を出力するようになっている。そして、配分レポート作成部50dは、タイミング仕様とフロアプラン部55aにて配分されたタイミング条件とを参照して、フロアプランとタイミング仕様との妥当性を配分レポートとして出力する。この配分レポートとは、配分値を記載したテキストファイルであって、設計者の参照等に使用される。
さらに、ソースコードとタイミング配分作成部54aとの間における機能について、説明する。
タイミング配分作成部54aは、HDLコンパイラ58fによりソースコードを用いて、論理設計時又はレイアウト検討からバックアノテートされたタイミング配分値を読み込むようになっている。具体的には、ネットリストのほか、シミュレーションするのに必要なタイミング遅延値が含まれるソースコードが読み出される。従って、設計者は容易にシミュレーションを行なえる。
続いて、図24に示す配分マネージャ56aは、保持部64aとタイミング情報保持部65aとTDB57aと階層間連携マネージャ53とに接続され、ネットリストに基づいて遅延値を出力するものである。
図31は本発明の第2実施形態に係る配分マネージャ56aのブロック図であり、この図31に示す配分マネージャ56b〜56eもこの配分マネージャ56aと同一の構造である。この配分マネージャ56aは、配分エディタ63a,データベース参照登録部63e,自階層TDB出力・他階層TDB自動反映部(自階層TDB出力・他階層TDB反映部;以下、TDB出力反映部と称することがある。)63d,調停制御部63fをそなえて構成されている。この配分エディタ63aは、保持部64aに接続され、タイミング配分するものであり、データベース参照登録部63eは、配分エディタ63aと保持部64aとタイミング情報保持部65aとに接続され、ネットリストと配分値とを入出力するものであって、TDB登録部63b,TDB参照部63cを有する。TDB登録部63bは、TDB57aにデータを書き込むものであり、TDB参照部63cは、TDB57aからデータを読み出すものである。
さらに、TDB出力反映部63dは、自己の階層のタイミング配分情報と他の階層のタイミング配分情報とを入出力するものである。すなわち、他の階層(他階層、下位階層)に関するデータを、階層間連携マネージャ53を介して、TDB57aに反映させるとともに、自己の階層(自階層)に関するデータを、階層間連携マネージャ53を介して他のTDB57b〜57eのうち、自階層の一つ上位の階層に反映させるのである。また、反映する/反映しないは、調停制御部63fによって、制御されるようになっている。この調停制御部63fは、TDB出力反映部63dと配分エディタ63aとに接続され、配分値を自階層と他階層とのうちのいずれかを選択するかを調停し、また、配分値の反映可否を決定するものである。
これにより、調停制御部63fは、自階層のデータと他階層のデータとを用いてタイミング制約を満たすか否かを判断し、満たせば、反映可とし、また、満たさなければ反映不可として再設定要求を出す。再設定時は、自階層のデータは、TDB出力反映部63dにより、TDB57aから読み出され、再設定が必要であるというメッセージが、調停制御部63fを介して、配分エディタ63aに入力されるとともに、他階層の配分マネージャ56a〜56eからのデータ送信要求により階層間連携マネージャ53を介して出力されるのである。また、他階層のデータは、階層間連携マネージャ53に対して要求した後、送信されてきた所望の他階層のデータは、配分エディタ63aに入力され、制約情報を満たすまで繰り返され、制約が満たされると、TDB57aに書き込まれる。
なお、配分マネージャ56b〜56e(図20参照)の構成も、配分マネージャ56aと同一であるので、重複した説明を省略する。
図32は本発明の第2実施形態に係るスキュー計算を説明するための図であり、この図32に示すネットリスト62aは、回路モジュールI1,I2,I3,I4,I5を有する(四角形で表示されたもの)。この図32において、例えばI1(I1と表現するのは、回路モジュールI1を意味し、その他の回路モジュールについても同様である)から出力された信号の位相は、PCB上を伝搬するときに遅延し、また、I2の回路モジュールに入力されたときにも、その入力ピン容量の影響により遅延する。
これを踏まえて、設計者は、I1〜I3間の遅延値と、I1〜I4間の遅延値と、I1〜I5間の遅延値とをそれぞれ計算する。ここで、遅延発生の要素は、I1,I2のそれぞれの内部遅延(a,cと表したもの)と、I1〜I2間の遅延値(bと表したもの)と、I2〜I3,I2〜I4,I2〜I5間の遅延値(d,e,f,gと表したもの)とがある。
そして、例えばI1〜I3(の遅延時間)と、I1〜I5(の遅延時間)との位相差とを得る計算においては、通常基準点(I1の遅延値aに相当)からの遅延値の差が計算される。ここで、a,b,c,dの遅延値は、いずれも、I1〜I3と、I1〜I5との双方に共通したパスによるものなので、各回路モジュール間のばらつきや、配線のばらつきが考慮されない。従って、位相差は、(遅延値e+I3の入力ピン容量)と(遅延値f+遅延値g+I5の入力ピン容量)との差で計算できる。これらの2つの入力ピン容量は、I3とI5とに同一の論理回路がインプリメントされていても、製造ばらつき等が存在する。
このため、配分マネージャ56aは、信号の到着時間の位相差を表すスキューを、配線形態に関するネットリストの配線パスのうち共通の配線パス以外のものに基づいて計算するようになっている。
すなわち、ネットリストに基づき、信号伝搬方向とは逆の方向からパスを辿っていき、共通部分が現れたところで、共通部分でない部分を抽出することにより、共通部分のばらつきを除去された計算が自動的に実行されるのである。
図33(a)〜(c)はいずれも本発明の第2実施形態に係るネットリスト表現を説明するための図である。この図33(a)に示すネットリスト62は、回路モジュールI1,I2,I3,I4(以下、モジュールI1等と略称する)を有する論理回路であり、モジュールI1のポートAは、信号を出力するものであり、モジュールI2〜I4のポートB,C,Dは、それぞれ、信号を入力するものである。また、図33(b),(c)には、それぞれ、配線された物理レイアウトが表示されている。この図33(b)に示すチップ63は、インプリメントしたものを表す。
ここで、サブ信号名は、"I1.A−I2.B−I3.C−I4.D"で表されることができる。なお、ネットリスト表現は、区切り文字を"−"とし、インスタンス名との区切り文字を"."としている。ここで、ポートAのファンアウトは3であり、ポートB,C,Dをそれぞれ駆動させており、この順に一筆書きのように配線されていることを意味する。
図33(c)に示すネットリスト表現は、ネットリストに等長の区間(ABとACとが等長)が存在するときのものである。すなわち、この場合、等長にする部分にかっこを付すようにし、サブ信号名は、"I1.A−(I2.B−I3.C)−I4.D"で表される。遅延に制約があるときは、例えば、"#"を用いて遅延値を記述し、サブ信号名は、"I1.A−(1.4ns#I2.B−I3.C)−1.2ns#I4.Dと表される。
さらに、負荷容量、配線長、配線幅、配線層指定等のその他の制約についても、次の(6−1)〜(6−3)のようなサブ信号名で記述できる。ここで、pfはピコファラッドを表し、μm(マイクロメートル)は配線長を表し、wは配線幅(μm)を表す。LA,LBはそれぞれ配線層を表す。
I1.A−(0.3pf#I2.B−I3.C)−1.2ns#I4.D
…(6−1)
I1.A−(1.4ns#I2.B−I3.C)−31.2μm#I4.D
…(6−2)
0.6w#LA,LB#I1.A−I2.B−I3.C−I4.D
…(6−3)
すなわち、LA層は0.6μm幅で配線され、I1〜I2,I1〜I3,I1〜I4の配線は、いずれも、LB層で一筆書き配線することを制約している。
さらに、PCB設計の場合において、斜め配線するときの表記は、斜め配線部分に、"−"の代わりに"/"が用いられる。例えば、サブ信号名は、"I1.A/I2.B−I3.C−I4.D"で表される。
従って、配分マネージャ56aが、配線パスに、副信号名として配線形態を表す名称を付与するように構成されたことになり、副信号名とファンアウト数とを関連づけて命名するように構成されたことになる。
また、図示を省略するが、配分マネージャ56aは、配線した部分について、制約情報の値に応じたグラデーションを操作画面にて色彩表示するようになっており、配分マネージャ56aは、回路ブロックを示す図に、タイミング配分値とタイミング配分できる値の範囲を表示するようになっている。
このように、共通部分のばらつきを除去することができるので、信頼性の高い回路を設計できる。
また、本発明のプログラムは、階層設計するに当たり、コンピュータを、複数の設計階層のそれぞれに対応して設けられ、配線形態に関するネットリストを有するTDB57a〜57eから回路の機能に関するブロック情報を入力され回路の遅延要素により生じる遅延値を配分して得るタイミング配分値を出力しうるタイミング配分作成部54a〜54eと、タイミング配分作成部54a〜54eのそれぞれに接続され、タイミング配分作成部54a〜54eのそれぞれの間とタイミング配分値に関する修正情報を送受信する階層間連携マネージャ53として機能させるためのものである。
すなわち、タイミング配分作成部54aと階層間連携マネージャ53との機能は、それぞれ、タイミング配分装置51として使用されるコンピュータのハードディスク等の記録媒体(図示省略)に記憶されたプログラムを、そのコンピュータのCPUが読み取って動作することにより実現される。
また、本発明のプログラムをそのハードディスク等の記録媒体にインストールする方法は、コンピュータが有する読み取り装置に応じて、CD−ROM、CD−R、CD−RW及びフロッピーディスク等の記録媒体を用いるようになっている。
上述の構成により、本発明のタイミング配分装置51の動作について、図34〜図45を参照して詳述する。
図34は本発明の第2実施形態に係るブロック設計の工程を示す図である。この図34に示す工程は、PCB,LSI及びLSI内のサブブロックについての3階層のタイミング設計が同時に進行することを表している。
まず、システム仕様が設計された後(ステップP1)、ステップP10と付されたPCB設計が開始される。まず、ステップP10aにおいて、LSIの設計をするときは、1と付したルートを通り、ステップP20以降の処理が行なわれ、PCBの設計は、2と付したルートを通り、VHDL,VHDL+等を用いてコーディングされる(ステップP10b)。そして、ステップP10bにて、ソースコードが得られると、1と付されたルートを通り、ステップP40にてPCBのインプリメントが開始され、また、ステップP10bにて、ソースコードが得られると、2と付されたルートを通り、ステップP10cにて、タイミング配分が作成される。また、タイミング配分するに当たり、ステップP10fにおいて、TDB57a〜57eと、階層間連携マネージャ53と連携しながら実行される。その後、フロアプランが生成され(ステップP10d)、レイアウトCAD装置(PCB物理レイアウトCAD装置)52cによりそのフロアプランが読み出される(ステップP10e)。このフロアプランが、ステップP40のPCBインプリメントに使用される。
LSIとLSI内のサブブロックについても同様である。ステップP10aにおいて、LSIの設計をするときは、1と付したルートを通り、ステップP20aにおいて、LSI設計が開始される。このステップP20aにて、LSI内のサブブロックについて設計するときは、1と付したルートを通り、ステップP30以降の処理が行なわれ、LSIの設計は、2と付したルートを通り、VHDL,VHDL+等を用いてコーディングされる(ステップP20b)。
そして、ステップP20bにて、ソースコードが得られると、1と付されたルートを通り、ステップP41にてLSIがインプリメントされ、また、ステップP20bにて、ソースコードが得られると、2と付されたルートを通り、ステップP20cにて、タイミング配分が作成される。また、タイミング配分するに当たり、ステップP20fにおいて、TDB57a〜57eと、階層間連携マネージャ53と連携する。その後、フロアプランが生成され(ステップP20d)、レイアウトCAD装置(LSI物理レイアウトCAD装置)52aによりそのフロアプランが読み出される(ステップP20e)。このフロアプランが、ステップP41のLSIインプリメントに使用される。
LSI内のサブブロックについても、まず、設計が開始され(ステップP30a)、VHDL,VHDL+等を用いてコーディングされる(ステップP30b)。そして、ステップP30bにて、ソースコードが得られると、1と付されたルートを通り、ステップP41にてLSIのサブブロックのインプリメントが開始され、また、ステップP30bにて、ソースコードが得られると、2と付されたルートを通り、ステップP30cにて、タイミング配分が作成される。また、タイミング配分するに当たり、ステップP30fにおいて、TDB57a〜57eと、階層間連携マネージャ53と連携する。その後、フロアプランが生成され(ステップP30d)、レイアウトCAD装置52aによりそのフロアプランが読み出される(ステップP30e)。このフロアプランが、ステップP41のLSIインプリメントに使用される。
従って、各回路ブロックは、いずれも、他の回路ブロックのタイミング情報をリアルタイムに把握できるので、タイミング仕様の変更時に、再計算を即座に行なえるようになり、設計効率が向上する。
また、分散設計環境によるタイミング配分により、設計者は、他の回路ブロックヘの影響を考慮しながら設計し、また、影響がある場合は許容範囲内か否かを配分レポートによりチェックしながら設計する。
図35は本発明の第2実施形態に係るタイミング配分を説明するためのフローチャートである。各設計階層のタイミング配分作成部54a〜54eに、ブロックの制約定義情報と対象ブロックのネットリスト又はタイミング仕様が記述されたソースコードが入力され(ステップQ10)、フロアプラン部55aと、配分マネージャ56aとによりタイミング配分処理され(ステップQ11)、TDB57a〜57eのそれぞれに、各ブロックのタイミング配分値が書き込まれ(ステップQ12)、配分レポートが出力され、配分値が検討される(ステップQ13)。
従って、複数の設計者が同時に、タイミング仕様とインプリメント条件とを相互に参照できるので、設計者間におけるミスコミュニケーションを防止できる。
また、TDB57a〜57eに保持されたタイミング仕様は、既に決定された部分については、属性情報が変更不可に設定されて定数として扱われ、そして、変更された部分は、即座にTDB57a〜57eに書き込まれる。複数の階層間をまたがった部分については、階層間連携マネージャ53は、一つ上位の階層のTDB57a〜57eに即座に反映される。
次に、図36〜図38を用いて、図21,図22に示す階層間連携マネージャ53と配分マネージャ56a〜56eとの間のデータ送受信について説明する。
図36〜図38はいずれも本発明の第2実施形態に係るタイミング配分の一部を説明するためのフローチャートである。図36に示すものは、中間階層の間においてデータを更新するときのものであり、図21に示すA−〔1〕及びA−〔2〕と付した箇所に対応する。また、図37に示すものは中間階層間において問い合わせる処理であり、図21に示すB−〔1〕〜B−〔4〕と付した箇所に対応する。図37に示すものは最上位階層と中間階層とにおけるものであって全体タイミングを問い合わせるときのものである。また、これら図36〜図38に示すフローチャートは、階層間連携マネージャ53と配分マネージャとの間にてメッセージ通信を行なうものである。
このように、階層間連携マネージャ53は、配分マネージャ56aからのメッセージをどの配分マネージャに送信したらよいかを判断し、目的の配分マネージャ5に送信されたメッセージデータを送信する。
まず、図36のステップQ20にて、ある階層において、LSIのサブブロックが有する各仮想ピンのACスペック,クロックスキューの配分値が、一つ上位の階層(例えばLSIのTDB)に取り込まれる。続いて、ステップQ21にて、LSIの各仮想ピンのACスペック、クロックスキュー配分値が、一つ上位の階層(例えばPCBのTDB)に取り込まれる。
図37のステップQ30において、各配分マネージャ56a〜56eは、それぞれ、LSI内の他のサブブロックの配分値がどの程度であるかを階層間連携マネージャ53に問い合わせる。次に、階層間連携マネージャ53は、相当するLSIブロック(一つ上位のブロック)に対して配分値を問い合わせる(ステップQ31)。LSIブロックは、そのLSIにインスタンスしている他のLSIブロックの配分値を保持しているので、問い合わせられたLSIブロックは、階層間連携マネージャ53に対して配分値を返却し(ステップQ32)、階層間連携マネージャ53は、最初に問い合わせを発したLSIのサブブロックに対してLSIの他のサブブロックの配分値を受け取る(ステップQ33)。
また、図38のステップQ40において、最上位階層(PCB)より、PCB上に存在する各部品に対して配分値が問い合わせられる。そして、各部品は、それぞれ、各部品中に存在する各サブブロックに対して配分値を問い合わせて(ステップQ41)、各サブブロックは、問い合わせた元の部品に対して自己のブロックの配分値を返却し(ステップQ42)、各部品は問い合わせ元のPCBに対して自己の部品の配分値を返却する(ステップQ43)。なお、この図38に示す〔1〕〜〔4〕と付した記号は、図22に示すものと対応する。
図39は本発明の第2実施形態に係るタイミング配分作成部54a〜54eの動作を説明するためのフローチャートである。まず、ソースコードの存在の有無が判定され(ステップR1)、存在する場合はYと付されたルートを通り、ソースコードよりブロック間接続情報が抽出されて構造部分のネットリストが生成され(ステップR2)、ステップR3にて、ソースコード中に遅延値記述の存在の有無が判定される。ここで、存在する場合はYルートを通り、ステップR4にて、制約定義情報の制約条件(動作速度やゲート規模等)とソースコード中の遅延値記述よりタイミング仕様が抽出され制約条件が作成される。また、ステップR3にて、遅延値記述がない場合は、Nルートを通り、ステップR9以降の処理が行なわれる。
また、ステップR1にて、ソースコードが存在しない場合は、Nと付されたルートを通り、ブロック情報よりブロック間接続情報が抽出されて構造部分のネットリストが生成され(ステップR5)、ステップR6にて、タイミング仕様の値を設定するか否かが判定され、設定する場合は、Yルートを通り、ステップR7にて、制約条件タイミング配分作成部54aは構造部分ネットリスト保持部58cから、ネットリストを読み出して、配分マネージャ56a中の配分エディタ63a(図31参照)により、人手でタイミング仕様を入力する(図21〔1〕参照)。また、その設定内容を制約条件のうちのタイミング仕様として制約条件保持部58bに書き込む(図21〔2〕参照)。さらに、ステップR6にて、タイミング仕様の値を設定しない場合は、Nルートを通り、ステップR9にて、タイミング仕様の値は空(なし)と設定される。
そして、配分マネージャ56aは、他階層の配分値を参照して配分を検討し(ステップR8)、フロアプラン部55aは、フロアプラン後のタイミング情報を生成し(ステップR10)、タイミング仕様とタイミング情報とが、配分マネージャ56aを通じて配分値としてTDB57aに登録される(ステップR11)。そして、配分レポート作成部50dは、配分レポートを出力し(ステップR12)、フロアプラン部55aにて得られたタイミング情報が、HDLアノテータ58eによりソースコードに反映され(ステップR13)、タイミング情報が波形解析用情報作成部58hにより、波形解析CAD用のファイルに変換されて連携するのである(ステップR14)。
次に、上述した丸め込み手法により、低い精度の部品又は回路ブロックが使用している値に対しては、最小値/最大値を用いて遅延時間の範囲を設けることにより、高精度の部品又は回路ブロックと接続され、また、精度の異なる部品又は回路ブロックを混合して設計される。
さらに、PCBのタイミング配分は、既存の手法を使用するほか、斜め配線も使用し、タイミング情報が作成される。まず、マンハッタン長、斜めマンハッタン長による配線を用いて、配線混雑度が計算され、配線混雑度が設定条件よりも低い場合には、単純マンハッタン長又は斜め配線を考慮したマンハッタン長による配線により配分する。
一方、配線混雑度が設定条件よりも高い場合には、次の(7−1),(7−2)のうちのいずれかが用いられてタイミング配分される。
(7−1)配線混雑度に対応させて遅延値を増加し、より大きい遅延値を得る。
(7−2)実配線連携部60c,60dが、それぞれ、データ変換し、既存の手法を用いた実配線をし、その配線情報に基づき遅延値に変換し、配分する。
図40は本発明の第2実施形態に係るフロアプラン部55aの動作を説明するためのフローチャートであり、フロアプラン部55b〜55eも同様である。フロアプラン部55aは、制約条件と構造部分ネットリストとを入力され(ステップR20)、配置支援部59aは、仮配線部(マンハッタン長仮配線部60a,斜めマンハッタン長仮配線部60b)と連携し、配線を考慮して配置決定し、配置情報を作成し(ステップR21)、その配置情報に基づき仮配線が実行される(ステップR22)。
また、ステップR23にて、配線混雑度が設定値を超えたか、又は、スラックが設定条件以下になったかが判定され、いずれかが満足されると、Yルートを通り、ステップR24にて、設定値を超えた部分について、実配線連携部60c,60dは、レイアウトCAD装置52a,52cを用いて実配線して配線情報を作成する。さらに、フロアプラン部55aは、物理テクノロジ情報を用いて配線長や負荷容量を遅延値に変換し、論理/制約情報保持部64aに書き込む(ステップR25)。なお、ステップR23にて、いずれも満足されなければ、Nルートを通り、フロアプラン部55aは、仮配線の結果を用いて配線情報を作成し(ステップR26)、ステップR25の処理をする。
図41と図42とはともに本発明の第2実施形態に係る配分マネージャ56aの動作を説明するためのフローチャートであり、配分マネージャ56b〜56eも同様である。
図41に示すステップR30にて、配分マネージャ56aは、階層間連携マネージャ53からのTDB出力要求の有無を判定し、要求有りの場合はYルートを通り、ステップR31にて、TDB出力反映部63dは、自階層のTDB入出力部分の内容を階層間連携マネージャ53に入力し、ステップR32にて、階層間連携マネージャ53は他階層の配分マネージャ56b〜56eに対して受け取った内容を入力する。
また、ステップR30における判定により、TDB出力要求がない場合はNルートを通り、ステップR33にて、他階層のTDB57a〜57eの内容を反映させるか否かが判定され、反映させる場合は、Yルートを通り、配分マネージャ56aは、階層間連携マネージャ53に対して他階層のTDB57a〜57eの内容の参照要求を発行し(ステップR34)、階層間連携マネージャ53は他階層からTDB57a〜57eの入出力部分の内容を受け取ると(ステップR35)、参照要求のあった配分マネージャ56a〜56eに対して、他階層のTDB57a〜57eの入出力部分の内容を入力する(ステップR36)。そして、ステップR37にて、処理が終了したか否かが判定されて、終了した場合はYルートを通り、処理が終了し、そうでなければ、Nルートを通り、ステップR30からの処理が行なわれる。
また、ステップR33にて、他階層のTDB57a〜57eの内容を反映させない場合はNルートを通り(1と付されたもの)、図42に示すステップR38に進む。また、2と付されたものは、図42に示すステップR39又はステップR41が実行された後に実行されるものである。
図42に示すステップR38にて、配分マネージャ56aは、配分エディタ63aを用いて他階層の配分内容を参照するか否かを判定し、参照する場合は、Yルートを通り、ステップR39にて、TDB参照部63cを用いて、TDB57aより他階層の配分値を読み込み、処理が終了する。また、ステップR38にて、参照しない場合は、Nルートを通り、ステップR40にて、配分マネージャ56aは、制約条件やタイミング情報をTDB57a〜57eに登録するか否かを判定し、登録する場合はYルートを通り、ステップR41にて、配分マネージャ56aは、TDB登録部63bを用いてTDB57a〜57eに自階層の制約条件やタイミング情報を登録する。一方、ステップR40にて登録しない場合はNルートを通り、処理が終了する(図41のステップR37)。
このように、他階層との連携により、システム全体のタイミング条件を満足させることができる。また、フロアプラン部55aにより、設計者は、処理速度と見積もり精度とのトレードオフを気にすることなく、精度よくタイミング配分できる。
これは、上記(7−1),(7−2)により、仮配線で配線すべきか、実配線で配線すべきかが自動的に選択され(図40参照)、各回路ブロック(論理ブロック)ごとに決定され、1PCB又は1チップ上に、仮配線と実配線とを混在できるためである。
このように、配線混雑度に応じて仮配線又は実配線が自動的に切り替えられるため、トレードオフを有効活用でき、設計者の手間を削減できる。さらに、配線中に配線混雑度のしきい値を超えた場合、超えるごとに配線層の数を増加し、最終的な配線層として算出する。
このように、再レイアウトせずに必要な配線層数を知ることが可能となる。また、各ピンや各配線に対して属性を与え、複数のピンや複数配線をまとめて配分し、配分のための工数を削減する。
また、次に、設計者は、配線形態を意識したネットリスト表現を適用して、レイアウト後のサブシグナル名が、HDLアノテータ58eによりHDLソースコードに書き込まれる。このサブシグナル名に関する情報は、次の(8−1)〜(8−3)に示す態様を用いて取り込まれる。
(8−1)サブシグナル名に関する情報は、HDLアノテータ58eに取り込まれ、ソースコードの信号代入文の遅延値記述に反映される。これにより、タイミング配分値を指定できる。
(8−2)ソースコードに配線形態を意識したネットリスト表現がコメント文の形式にて取り込まれる。これにより、フロアプラン後にソースピンとシンクピンとの距離の遠近や順序関係について、設計者はHDL設計に当たり、ファンアウト数、配分値とともに把握しながら進めることができる。また、レイアウト前に、論理設計からも配線形態を指定できる。従って、レジスタの入力を記述するRTL設計前に、フロアプランが作成され、予め配線パスの長さが予測できる。このため、設計者は、信号伝搬時間が1サイクル内であるか否かを検討でき、1サイクル内でない場合は、フリップフロップやバッファを挿入するように指示でき早期対策が可能となる。
(8−3)サブシグナル名に関する情報は、波形解析用情報作成部58hに取り込まれ、波形解析に必要な情報が出力される。
さらに、物理テクノロジ情報には、各テクノロジごとに、単位配線長当たりの遅延値や、負荷容量が保持されており、設計者は、これらの情報を用いて、アーキテクチャ設計からPCB設計へのサブシステム分割と、アーキテクチャ設計からLSI設計へのサブシステム分割とのそれぞれについて試行検討する。さらに、設計者は、細部検討が必要な部分については、既存のレイアウトCAD装置52a,52cを用いて検討する。
加えて、この物理テクノロジ情報を用いることにより、設計者はフロアプラン作成時に、回路ブロックに使用するテクノロジ(PCB又はLSI)を変更できる。そして、変更された場合は、フロアプランを作成するときに用いられる単位配線長当たりの遅延値や、負荷容量は、それぞれ、この物理テクノロジ情報を参照して、自動的に変更される。
さらに、LSI階層のTDB57a〜57eに保持された情報を用いて、PCBの波形解析用のライブラリが生成される。加えて、上記(8−1)〜(8−3)により、PCB階層から、波形解析のために必要な情報として配線形態を取り入れることができ、LSI完成前にPCBの波形解析が可能となる。
また、配線遅延値は、次の(9)式により計算できる。ここで、クロストークとは、配線間隔が近接していることにより生じるノイズを意味し、そのノイズを除去すべく、配線間隔を拡げたり、そのクロストークが生じている部分の長さを変更する。
配線遅延値=(単位配線長当たりの遅延値×配線長)+(クロストーク部分の単位配線長当たりの遅延値×クロストーク部分の配線長) …(9)
例えば、PCBテクノロジ又はLSIテクノロジについて、単位配線長当たりの遅延値が7ps/mm(ピコ秒/ミリメートル)であり、全配線長が157mm、クロストーク部分の単位配線長当たりの遅延値が1ps/mm、クロストーク部分の配線長が50mmであるとした場合、遅延値は、7ps×157+1ps×50=1.149nsとなる。
また、フロアプランに関するデータは、実配線連携部60c,60dによって、インプリメント用のレイアウトデータに自動的に変換され、レイアウト情報が継承される。また、不足する情報は、設計者に通知される。
このように、シュリンク(半導体の微細化が進み、密度が上がり同一面積内により多くの回路を集積できることにより、チップ面積が収縮すること)時に上位の回路ブロック(例えばPCBのフロアプラン)情報が、下位の回路ブロック(LSI)に継承されるため、設計者は、レイアウト情報(PCBのレイアウト情報)についての設計資産を有効に利用できる。
また、このように、フロアプラン結果に基づいて、STAが行なわれ、1サイクルに収まらない場合にはフリップフロップやバッファ挿入指示が配分レポートとして出力される。予め、伝送遅延を配分してからRTLを設計でき、インプリメント時の問題を予測でき、手戻り(イタレーション)を削減できる。
従って、このように、アーキテクチャ設計時にタイミングを考慮したフリップフロップが挿入されるので、RTLの再設計の手戻りが削減できる。加えて、フリップフロップを挿入する場合、バッファを挿入する場合に比較して、制御条件(セットアップ時間)を満たすべき遅延時間を超えてしまってもパスを分割することにより、制約条件内に遅延時間を抑えることができる。
(C)その他
本発明は上述した実施態様に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、種々変形して実施することができる。
例えば例示した名称は、種々変更することができる。なお、上記の説明におけるデータイメージは、その形式に限定されるものではない。第1実施形態において、名称の表記は、ハイフン記号の代わりに、アンダースコア記号を用いることもできる。
固有化処理,テスト回路生成処理,負荷調整処理の順番は、この順に限定されるのではなく、種々変更したり、これらの処理の間に他の処理を入れて実行されることは言うまでもなく、それらの順番を変更したものに対しても、本発明の優位性は何ら損なわれることはない。
(D)付記
(付記1) 回路に関する情報を保持する回路情報データベースと、
該回路情報データベースから該回路に関する情報を読み出し所定の処理すべき単位ごとに該回路を設計する設計処理部と、
該設計処理部において得られた少なくとも回路要素の固有化情報,該回路を変更した履歴を表す変更履歴情報及び該回路の端子負荷・駆動能力情報を含む設計情報を保持する設計情報データベースとをそなえて構成されたことを特徴とする、回路設計装置。
(付記2) 該設計処理部が、
該設計情報データベースから該固有化情報を読み出して、該処理すべき単位のそれぞれについて相異なる固有名を付与する固有化処理部と、
該設計情報データベースから該変更履歴情報を読み出し上位階層のテスト回路を生成しうるテスト回路生成処理部と、
該設計情報データベースから該端子負荷・駆動能力情報を読み出し該上位階層の回路に含まれる端子のそれぞれについて該設計情報を付与するとともに、該設計情報に基づいて負荷を調整する負荷調整処理部とをそなえて構成されたことを特徴とする、付記1記載の回路設計装置。
(付記3) 該固有化処理部と、該テスト回路生成処理部と、該負荷調整処理部とのうちの少なくとも一つが、
該処理すべき単位のうちの一つの単位が、他の独立して設計された単位を階層的に内包した状態で上記回路の設計を行なう階層設計をするように構成されたことを特徴とする、付記2記載の回路設計装置。
(付記4) 該固有化処理部が、
該設計情報データベースに基づいて、該回路要素の名称に関するパラメータに基づき、該処理すべき単位のそれぞれについて固有名を付与すべく、固有名付与規則を設定する固有名付与規則設定部と、
該固有名付与規則設定部にて設定された該固有名付与規則に基づいて、該処理すべき単位に、既に処理された単位に付与した固有名と異なる固有名を生成する固有名生成部とをそなえて構成されたことを特徴とする、付記3記載の回路設計装置。
(付記5) 該固有化処理部が、
同一の回路単位を複数使用している箇所を検索し、該箇所における回路単位の種別について、階層,セル,ブラックボックスを判別する複数参照解析部をそなえ、
該固有名生成部が、
該複数参照解析部にて判別された、複数参照単位及び単一参照単位のそれぞれについて固有名を生成するように構成されたことを特徴とする、付記4記載の回路設計装置。
(付記6) 該固有化処理部が、
該固有名生成部にて生成された固有名を該複数参照単位と該単一参照単位とのそれぞれに割り付けて、回路データを複製する回路データ複製部とをそなえて構成されたことを特徴とする、付記5記載の回路設計装置。
(付記7) 該固有化処理部と、該テスト回路生成処理部と、該負荷調整処理部とのうちの少なくとも一つが、該上位階層を処理するときには、
該設計情報データベースに書き込まれた該設計情報に基づいて、処理すべき単位について処理対象/非処理対象を判別する処理対象判別部と、
該処理対象判別部により判別された該処理対象/処理対象外に基づいて、該回路情報データベースから該処理すべき単位の回路データを取得する処理データ取得部とをそなえて構成されたことを特徴とする、付記3記載の回路設計装置。
(付記8) 該固有化処理部と、該テスト回路生成処理部と、該負荷調整処理部とのうちの少なくとも一つが、
該設計情報データベースに書き込まれた該設計情報に基づいて、処理すべき単位について処理対象/非処理対象を判別する処理対象判別部とをそなえて構成されたことを特徴とする、付記2記載の回路設計装置。
(付記9) 該処理対象判別部が、
該設計情報のうち、第1の単位を処理して得られる第1の単位の処理結果に関する第1単位情報に基づいて、次に処理する第2の単位が内包する単位が該処理された単位であるか否かを判別するように構成されたことを特徴とする、付記2記載の回路設計装置。
(付記10) 該テスト回路生成処理部が、
該設計情報データベースに保持された該設計情報に基づいて、下位階層にテスト信号入力用として追加した端子と上位階層が参照した階層における端子との間の端子不整合を解消する階層整合性復元部をそなえて構成されたことを特徴とする、付記3記載の回路設計装置。
(付記11) 該固有化処理部と、該テスト回路生成処理部と、該負荷調整処理部とのうちの少なくとも一つが、
該処理すべき単位のうちの一部分を変更し、上記回路における他の部分を変更しないで再設計するエンジニアリングチェインジオーダー設計(以下、ECO設計と称する)をするように構成されたことを特徴とする、付記2記載の回路設計装置。
(付記12) 該固有化処理部と、該テスト回路生成処理部と、該負荷調整処理部とのうちの少なくとも一つが、
通常設計により作成された通常設計情報を読み込む設計情報読み込み部と、
該通常設計情報とパラメータで与えられるECO対象単位情報とを用いて処理すべき回路データを判別する処理対象判別部とをそなえ、
該通常設計情報を用いて通常設計された回路と変更箇所以外とが同一の回路を設計するように構成されたことを特徴とする、付記11記載の回路設計装置。
(付記13) 該固有化処理部が、
該上位階層が該設計情報を参照する場合に、該処理すべき単位を該複数参照の回数分だけ複製し該付加後の処理すべき単位のそれぞれに該固有名を付与すべく、
該設計情報データベースに書き込まれた該設計情報に基づいて、処理すべき単位について処理対象/非処理対象を判別する処理対象判別部と、
該処理対象判別部にて処理対象と判別された場合は該設計情報データベースに保持された該参照関係と同一の参照関係になるように該固有名を生成し、非処理対象と判別された場合は既に割り当てた固有名と異なる固有名を生成する固有名生成部とをそなえて構成されたことを特徴とする、付記11記載の回路設計装置。
(付記14) 該テスト回路生成処理部が、
該設計情報データベースに基づいて、ECO設計対象単位について、通常設計時に作成された通常設計情報及びテスト回路規則を用いて、該通常設計時と同一のテスト回路を生成できる部分と、新たなテスト回路を生成すべき部分とのそれぞれを識別する識別データを抽出する回路解析部とをそなえて構成されたことを特徴とする、付記11記載の回路設計装置。
(付記15) 該テスト回路生成処理部が、
該設計情報データベースに保持された該設計情報に基づいて、下位階層にテスト信号入力用として追加した端子と上位階層が参照した階層における端子との間の端子不整合を解消する階層整合性復元部をそなえ、
該階層整合性復元部が、
該設計情報のうち通常設計時についての通常時設計情報とECO設計対象単位と該上位階層における端子情報とを用いて、階層整合性を復元するように構成されたことを特徴とする、付記11記載の回路設計装置。
(付記16) 該テスト回路生成処理部が、
該回路解析部により抽出された識別データに基づき、該ECO設計対象単位について、通常設計時と同一のテスト回路を生成できる部分について同一のテスト回路を生成し、新たなテスト回路を生成すべき部分についてテスト回路規則に従ったテスト回路を生成するテスト回路生成部とをそなえて構成されたことを特徴とする、付記14記載の回路設計装置。
(付記17) 該固有化処理部が、
該設計情報データベースから該設計情報を読み出す設計情報読み込み部とをそなえ、
該設計情報読み込み部が、
固有化前の階層名と固有化後の階層名とを対応づけて、固有化前の階層名による固有化後の回路データを参照できるように構成されたことを特徴とする、付記2又は付記11記載の回路設計装置。
(付記18) 該負荷調整処理部が、
論理素子が駆動可能な端子容量を解析して、駆動不能な端子を抽出する負荷解析部と、
該負荷解析部にて抽出された該駆動不能な端子の駆動能力を調整する回路調整部とをそなえて構成されたことを特徴とする、付記2記載の回路設計装置。
(付記19) 該回路情報データベースが、
階層設計とエンジニアリングチェインジオーダー設計(以下、ECO設計と称する)とのうちの少なくとも一方において、
該処理された単位ごとに回路情報を該回路情報データベースに書き込む回路情報書き込み部と、
該回路情報書き込み部に接続され、該処理すべき単位ごとに書き込まれた回路情報を参照できる参照部とをそなえて構成されたことを特徴とする、付記1記載の回路設計装置。
(付記20) 該設計情報データベースが、
該回路要素を個別のファイルに保存しうる複数の保持部をそなえて構成されたことを特徴とする、付記11記載の回路設計装置。
(付記21) 回路設計方法において、
回路に関する情報を保持する回路情報データベースから該回路に関する情報を読み出して、所定の処理すべき単位ごとに回路を設計しうる設計処理部において、第1の単位を処理して得られる第1の単位の処理結果に関する第1単位情報を生成する処理生成ステップと、
該処理生成ステップにて生成中の少なくとも回路要素の固有化情報,該回路を変更した履歴を表す変更履歴情報及び該回路の端子負荷・駆動能力情報を含む設計情報を収集する設計情報収集ステップと、
該設計情報収集ステップにて収集された該設計情報を、該設計処理部に接続され該設計情報を保持する設計情報データベースに該処理すべき単位ごとに書き込む設計情報書き込みステップと、
該設計情報書き込みステップにて書き込まれた該設計情報に基づいて第2の単位を処理すべく、第1の単位に関する設計情報を参照する参照ステップと、
該参照ステップにて参照された第1の単位に関する設計情報についての参照関係を認識する認識ステップと、
該参照ステップにて得られた該参照関係に基づき、該回路情報データベースに保持された位置と処理結果とに関する単位情報を参照する回路情報データベース参照ステップと、
設計処理された回路データを更新する回路情報データベース書き込みステップとをそなえて構成されたことを特徴とする、回路設計方法。
(付記22) 回路設計方法において、
回路に関する情報を保持する回路情報データベースから該回路に関する情報を読み出して、所定の処理すべき単位ごとに回路を設計しうる設計処理部において、第3の単位を内包する第4の単位を処理する第1処理ステップと、
該第1処理ステップにて生成中の該第3の単位の処理結果に関する第3単位情報を収集する第3単位情報収集ステップと、
該第3単位情報収集ステップにて収集された該第3単位情報を、該設計処理部に接続され該設計情報を保持する設計情報データベースに書き込む設計情報書き込みステップと、
該設計情報書き込みステップにて書き込まれた該第3単位情報に基づき、該第3の単位を変更して得られる第3処理済単位が該第4の単位を変更して得られる第4処理済単位を内包するか否かを判別するとともに、該第3処理済単位が該第3の単位と同等か否かを判別する判別ステップとをそなえて構成されたことを特徴とする、回路設計方法。
(付記23) コンピュータを、
回路に関する情報を保持する回路情報データベースから該回路に関する情報を読み出し所定の処理すべき単位ごとに該回路を設計するとともに、該設計によって得られた少なくとも回路要素の固有化情報,該回路を変更した履歴を表す変更履歴情報及び該回路の端子負荷・駆動能力情報を含む設計情報を該設計情報データベースに保持するように機能させるための、プログラムが記録されたコンピュータ読み取り可能な記録媒体。
(付記24) コンピュータに、
回路に関する情報を保持する回路情報データベースから該回路に関する情報を読み出して、所定の処理すべき単位ごとに回路を設計しうる設計処理部において、第1の単位を処理して得られる第1の単位の処理結果に関する第1単位情報を生成する処理生成ステップと、
該処理生成ステップにて生成中の少なくとも回路要素の固有化情報,該回路を変更した履歴を表す変更履歴情報及び該回路の端子負荷・駆動能力情報を含む設計情報を収集する設計情報収集ステップと、
該設計情報収集ステップにて収集された該設計情報を、該設計処理部に接続され該設計情報を保持する設計情報データベースに該処理すべき単位ごとに書き込む設計情報書き込みステップと、
該設計情報書き込みステップにて書き込まれた該設計情報に基づいて第2の単位を処理すべく、第1の単位に関する設計情報を参照する参照ステップと、
該参照ステップにて参照された第1の単位に関する設計情報についての参照関係を認識する認識ステップと、
該参照ステップにて得られた該参照関係に基づき、該回路情報データベースに保持された位置と処理結果とに関する単位情報を参照する回路情報データベース参照ステップと、
設計処理された回路データを更新する回路情報データベース書き込みステップとを実行するように機能させるための、プログラムが記録されたコンピュータ読み取り可能な記録媒体。
(付記25) コンピュータに、
回路に関する情報を保持する回路情報データベースから該回路に関する情報を読み出して、所定の処理すべき単位ごとに回路を設計しうる設計処理部において、第3の単位を内包する第4の単位を処理する第1処理ステップと、
該第1処理ステップにて生成中の該第3の単位の処理結果に関する第3単位情報を収集する第3単位情報収集ステップと、
該第3単位情報収集ステップにて収集された該第3単位情報を、該設計処理部に接続され該設計情報を保持する設計情報データベースに書き込む設計情報書き込みステップと、
該設計情報書き込みステップにて書き込まれた該第3単位情報に基づき、該第3の単位を変更して得られる第3処理済単位が該第4の単位を変更して得られる第4処理済単位を内包するか否かを判別するとともに、該第3処理済単位が該第3の単位と同等か否かを判別する判別ステップとを実行するように機能させるための、プログラムが記録されたコンピュータ読み取り可能な記録媒体。
(付記26) 階層設計において、
複数の設計階層のそれぞれに対応して設けられ、配線形態に関するネットリスト情報を有する複数のタイミング情報データベースから回路の機能に関するブロック情報を入力され、該回路の遅延要素により生じる遅延値を配分して得るタイミング配分値を出力しうる複数のタイミング配分作成部と、
該複数のタイミング配分作成部のそれぞれの間の接続を動的に変更するとともに、該複数のタイミング配分作成部のそれぞれの間と該タイミング配分値に関する修正情報を送受信する階層間連携マネージャとをそなえて構成されていることを特徴とする、タイミング配分装置。
(付記27) 該タイミング配分作成部が、該複数の設計階層のそれぞれに対応して設けられ設計情報を有する階層エンティティと該設計情報を処理するためのプログラムデータとを有するエージェントとして構成されるとともに、
該階層間連携マネージャが、該エージェントとしての該タイミング配分作成部に接続され該複数の設計階層のそれぞれと該タイミング配分値に関する情報を送受信するマネージャとして構成されたことを特徴とする、付記26記載のタイミング配分装置。
(付記28) 該タイミング配分作成部が、
少なくとも設計言語のソースコードに関するネットリスト,該ブロック情報及び配線に関する制約情報を有する論理/制約情報を保持する論理/制約情報保持部と、
該論理/制約情報保持部に接続され、回路素子の配置及び回路素子間の配線に関するフロアプランに基づきタイミングを配分して仮配線を行なうフロアプラン部と、
該フロアプラン部に接続され、該ネットリスト情報を保持するタイミング情報保持部と、
該論理/制約情報保持部と該タイミング情報保持部とに接続され、少なくとも該ネットリスト情報に基づいて該遅延値を出力する配分マネージャとをそなえて構成されたことを特徴とする、付記27記載のタイミング配分装置。
(付記29) 該フロアプラン部が、
該論理/制約情報保持部に接続され、属性情報としての配分値を該制約情報からのスラックに基づき改善と修正とが可能な部分を提示するとともに、該遅延要素情報に起因する配置情報を保持する配置処理部と、
該配置処理部に接続され、実配線への連携と仮配線とを行なうとともに配線情報を出力する実配線・仮配線実行部と、
該実配線・仮配線実行部に接続され、該配線情報を保持する配線情報保持部と、
該タイミング情報を出力すべく、少なくとも配線幅及び配線層に対応した単位長当たりの遅延値及び単位長当たりの負荷容量からなる物理テクノロジ情報を保持する物理テクノロジ情報保持部と、
該配線情報保持部と該物理テクノロジ情報保持部とに接続され、遅延長及び負荷容量に基づいて該配線情報を遅延値に変換して出力する変換部とをそなえて構成されたことを特徴とする、付記28記載のタイミング配分装置。
(付記30) 該実配線・仮配線実行部が、
長い計算時間を要する実配線と計算時間が短い仮配線とを併用して配線し、かつ、該タイミング配分値を抽出するように構成されたことを特徴とする、付記29記載のタイミング配分装置。
(付記31) 該実配線・仮配線実行部が、
属性情報としての配分値を制約情報からのスラックに基づき改善と修正とが可能な部分を提示する配置支援部の配置結果に基づき、プリント回路基板と大規模集積回路との双方についてマンハッタン長仮配線するマンハッタン長仮配線部と、
該配置結果に基づき該プリント回路基板の縁に対して斜めに配線する斜め配線を用いて仮配線する斜めマンハッタン長仮配線部と、
該プリント回路基板と該大規模集積回路とについて配線する実配線連携部とをそなえて構成されたことを特徴とする、付記29記載のタイミング配分装置。
(付記32) 該実配線・仮配線実行部が、
該マンハッタン長仮配線と該斜めマンハッタン長仮配線と実配線とに基づいて該仮配線するように構成されたことを特徴とする、付記31記載のタイミング配分装置。
(付記33) 該実配線・仮配線実行部が、
選択された該階層について該遅延値及び該負荷容量を、該物理テクノロジ情報保持部から読み出し、単位配線長当たりの遅延時間を変化させて配分するように構成されたことを特徴とする、付記29記載のタイミング配分装置。
(付記34) 該実配線・仮配線実行部が、
該仮配線により得られた該タイミング配分値について計算された該マージンと配線密度を表す配線混雑度とに基づいて実配線するように構成されたことを特徴とする、付記31記載のタイミング配分装置。
(付記35) 該実配線・仮配線実行部が、
該実配線のみ行なえる他の計算機を援用する設計装置と連動させるべく、該実配線にて不足する情報に関する解析用の情報を出力するように構成されたことを特徴とする、付記31記載のタイミング配分装置。
(付記36) 該実配線・仮配線実行部が、
少なくとも配線禁止の領域と該配線混雑度とに基づいて、該仮配線及び実配線をするように構成されたことを特徴とする、付記31記載のタイミング配分装置。
(付記37) 該実配線・仮配線実行部が、
制約条件として使用されたクロック周波数に基づき到達しなければならない時間内に到達可能の可否を判定し、到達不可と判定すると複数の該回路ブロック間の該ネットリスト情報に対してバッファ及びフリップフロップのうちの少なくとも一つの挿入を指示するように構成されたことを特徴とする、付記31記載のタイミング配分装置。
(付記38) 該実配線・仮配線実行部が、
該回路ブロックに含まれる端子を該制約情報に基づいて配置するように構成されたことを特徴とする、付記31記載のタイミング配分装置。
(付記39) 該階層間連携マネージャが、
該タイミング情報データベースに対して、該タイミング情報データが不足している該回路ブロックを抽出して入力するとともに、その不足している該回路ブロックを設計者に対して通知するように構成されたことを特徴とする、付記27記載のタイミング配分装置。
(付記40) 該フロアプラン部が、
該回路ブロック中の該配線幅を、実配線及び仮配線している間に変更できるように構成されたことを特徴とする、付記28記載のタイミング配分装置。
(付記41) 該階層間連携マネージャが、
該複数の配分マネージャの組み合わせを変更できるように構成されたことを特徴とする、付記27記載のタイミング配分装置。
(付記42) 該タイミング配分作成部が、さらに、
大規模集積回路の階層の入出力バッファ情報からプリント回路基板の波形解析用の情報を生成する波形解析用情報作成部をそなえて構成されたことを特徴とする、付記28記載のタイミング配分装置。
(付記43) 該タイミング配分作成部が、
予め設定された他のタイミング仕様と該フロアプラン部にて配分された該タイミングとに基づいて、該タイミング配分値を出力するように構成されたことを特徴とする、付記28記載のタイミング配分装置。
(付記44) 該フロアプラン部が、
該回路ブロックの規模又は形状のうちの少なくとも一方を実配線及び仮配線している間に変更できるように構成されたことを特徴とする、付記28記載のタイミング配分装置。
(付記45) 該タイミング配分作成部が、
該ソースコードを用いて、論理設計時又はレイアウト検討からバックアノテートされたタイミング配分値を読み込むように構成されたことを特徴とする、付記28記載のタイミング配分装置。
(付記46) 該タイミング配分作成部が、さらに、
該タイミング配分値に起因する情報を該ソースコードに書き込むアノテータをそなえて構成されたことを特徴とする、付記28記載のタイミング配分装置。
(付記47) 該アノテータが、
該ソースコードに、配線形態に関するネットリスト情報を書き込むように構成されたことを特徴とする、付記46記載のタイミング配分装置。
(付記48) 該物理テクノロジ情報保持部が、
該配線長と、該単位長当たりの遅延値,該単位長当たりの負荷容量とを、相互に関連づけて保持するように構成されていることを特徴とする、付記29記載のタイミング配分装置。
(付記49) 該階層間連携マネージャが、
該複数のタイミング情報データベースのうちの一つが送信したタイミング配分仕様変更要求を受信し、該タイミング配分仕様変更が影響を与えうる他のタイミング情報データベースを抽出し、該他のタイミング情報データベースに対して該タイミング配分値の変更の可否を問い合わせるように構成されたことを特徴とする、付記26記載のタイミング配分装置。
(付記50) 該階層間連携マネージャが、
該他のタイミング情報データベースから該タイミング配分値の変更可能を受信すると、所望のタイミング情報データベースに対して変更可能を出力するように構成されたことを特徴とする、付記27記載のタイミング配分装置。
(付記51) 該階層間連携マネージャが、
該タイミング配分値が変更されると、その変更された階層よりも上位の該階層エンティティが更新されるように構成されたことを特徴とする、付記28記載のタイミング配分装置。
(付記52) 該配分マネージャが、
該論理/制約情報保持部に接続され、タイミング配分する配分エディタと、
該配分エディタと該論理/制約情報保持部と該タイミング情報保持部とに接続され、該ネットリスト情報を出力するデータベース参照登録部と、
自己の階層のタイミング配分情報と他の階層のタイミング配分情報とを入出力する自階層タイミング情報データベース出力・他階層タイミング情報データベース反映部と、
調停を行なう調停制御部とをそなえて構成されたことを特徴とする、付記27記載のタイミング配分装置。
(付記53) 該配分マネージャが、
信号の到着時間の位相差を表すスキューを、配線形態に関するネットリスト情報の該配線パスのうち共通の配線パス以外のものに基づいて計算するように構成されたことを特徴とする、付記28記載のタイミング配分装置。
(付記54) 該配分マネージャが、
該配線パスに、副信号名として配線形態を表す名称を付与するように構成されたことを特徴とする、付記28記載のタイミング配分装置。
(付記55) 該配分マネージャが、
副信号名とファンアウト数とを関連づけて命名するように構成されたことを特徴とする、付記28記載のタイミング配分装置。
(付記56) 該配分マネージャが、
配線した部分について、該制約情報の値に応じたグラデーションを操作画面にて色彩表示するように構成されたことを特徴とする、付記28記載のタイミング配分装置。
(付記57) 該配分マネージャが、
該回路ブロックを示す図に、該タイミング配分値とタイミング配分できる値の範囲を表示するように構成されたことを特徴とする、付記28記載のタイミング配分装置。
(付記58) 階層設計するに当たり、コンピュータを、
複数の設計階層のそれぞれに対応して設けられ、配線形態に関するネットリスト情報を有する複数のタイミング情報データベースから回路の機能に関するブロック情報を入力され該回路の遅延要素により生じる遅延値を配分して得るタイミング配分値を出力しうる複数のタイミング配分作成部と、
該複数のタイミング配分作成部のそれぞれに接続され、該複数のタイミング配分作成部のそれぞれの間と該タイミング配分値に関する修正情報を送受信する階層間連携マネージャとして機能させるための、プログラムが記録されたコンピュータ読み取り可能な記録媒体。
以上、詳述したような付記記載の本発明の関連技術としての回路設計装置,回路設計方法及び本発明のタイミング配分装置によれば、以下のような効果が得られる。
(1)回路設計装置が、回路に関する情報を保持する回路情報データベースと、回路情報データベースから回路に関する情報を読み出し所定の処理すべき単位ごとに回路を処理しうる設計処理部と、設計処理部において得られた少なくとも回路要素の固有化情報,回路を変更した履歴を表す変更履歴情報及び回路の端子負荷・駆動能力情報を含む設計情報を保持する設計情報データベースとをそなえて構成されているので、作業用メモリの使用量が最適化され、階層設計やECO設計における、設計者の負担を一括設計する場合と同等にまで削減できる。また、全自動化により連続処理が可能になり、処理時間の削減、ひいては設計期間を短縮できる。
(2)設計処理部が、設計情報データベースから固有化情報を読み出して、処理すべき単位のそれぞれについて相異なる固有名を付与する固有化処理部と、設計情報データベースから変更履歴情報を読み出し上位階層のテスト回路を生成しうるテスト回路生成処理部と、設計情報データベースから端子負荷・駆動能力情報を読み出し上位階層の回路に含まれる端子のそれぞれについて設計情報を付与するとともに、設計情報に基づいて負荷を調整する負荷調整処理部とをそなえて構成されてもよく、このようにすれば、階層の境界情報や端子などの設計情報が自動的に入力され、処理履歴から現在の処理における処理対象部分が、自動的に判断され、また、処理対象外の部分に含まれる設計情報が自動的に抽出されて、現在設計中の部分の処理に利用できる利点がある。
(3)回路設計方法が、回路に関する情報を保持する回路情報データベースから回路に関する情報を読み出して、所定の処理すべき単位ごとに回路を設計しうる設計処理部において、第1の単位を処理して得られる第1の単位の処理結果に関する第1単位情報を生成する処理生成ステップと、処理生成ステップにて生成中の少なくとも回路要素の固有化情報,回路を変更した履歴を表す変更履歴情報及び回路の端子負荷・駆動能力情報を含む設計情報を収集する設計情報収集ステップと、設計情報収集ステップにて収集された設計情報を、設計処理部に接続され設計情報を保持する設計情報データベースに処理すべき単位ごとに書き込む設計情報書き込みステップと、設計情報書き込みステップにて書き込まれた設計情報に基づいて第2の単位を処理すべく、第1の単位に関する設計情報を参照する参照ステップと、参照ステップにて参照された第1の単位に関する設計情報についての参照関係を認識する認識ステップと、参照ステップにて得られた参照関係に基づき、回路情報データベースに保持された位置と処理結果とに関する単位情報を参照する回路情報データベース参照ステップと、設計処理された回路データを更新する回路情報データベース書き込みステップとをそなえて構成されているので、下位階層について回路情報データベースからの読み出しが不要となり、固有化処理のために使用する、作業用メモリの容量等が大幅に節約できる。
(4)タイミング配分装置が、階層設計において、複数の設計階層のそれぞれに対応して設けられ、配線形態に関するネットリスト情報を有する複数のタイミング情報データベースから回路の機能に関するブロック情報を入力され、回路の遅延要素により生じる遅延値を配分して得るタイミング配分値を出力しうる複数のタイミング配分作成部と、複数のタイミング配分作成部のそれぞれの間の接続を動的に変更するとともに、複数のタイミング配分作成部のそれぞれの間とタイミング配分値に関する修正情報を送受信する階層間連携マネージャとをそなえて構成されているので、タイミング仕様が変更されたときに、その影響範囲を即座に参照でき、仕様変更の参照ミスがなくなる。また、仮配線と実配線との組み合わせにより、フロアプランの実行速度向上と精度の向上の両立が図れる。さらに、階層エンティティを用いることができ分散設計環境が構築でき、トップダウン設計において、必要部分のみ詳細化でき、一つの設計チームにおいて、試行検討で分割されたタイミング仕様の良否を検討でき、インプリメント時の問題を予測でき、手戻りを削減できる。
(5)タイミング配分作成部が、複数の設計階層のそれぞれに対応して設けられ設計情報を有する階層エンティティと設計情報を処理するためのプログラムデータとを有するエージェントとして構成されるとともに、階層間連携マネージャが、エージェントとしてのタイミング配分作成部に接続され複数の設計階層のそれぞれとタイミング配分値に関する情報を送受信するマネージャとして構成されてもよく、このようにすれば、オブジェクト指向的な階層エンティティにより、論理設計と物理レイアウトとを融合させたタイミングドリブンレイアウト処理を行なうときに、各論理階層と物理階層との間における情報の流れが明確となり、連携が容易となる。
(6)固有化処理部が、固有名付与規則設定部と、固有名生成部とをそなえて構成されてもよく、このようにすれば、設計者が回路変更する前における元の固有名と、設計者により設定された設定値とに基づいて新たな名称が生成され、複数参照されて新たに名称が複数個生成されても、それらの名称の判別が明確にでき、設計者はそれらの名称をグループ分けが容易となり、処理すべき単位ごとにグルーピングできる。また、処理された単位と現在処理中の単位の名称との重複が回避される。
(7)固有化処理部が同一の回路単位を複数使用している箇所を検索し、その箇所における回路単位の種別について、階層,セル,ブラックボックスを判別する複数参照解析部をそなえ、固有化処理部が前記複数参照解析部にて判別された、複数参照単位及び単一参照単位のそれぞれについて固有名を生成するように構成されてもよく、また、固有名生成部にて生成された固有名を複数参照単位と単一参照単位とのそれぞれに割り付けて、回路データを複製する回路データ複製部をそなえて構成されてもよく、このようにすれば、固有化処理が効率よくでき、かつ、きめ細かい設計が可能となる。
(8)固有化処理部と、テスト回路生成処理部と、負荷調整処理部とが、それぞれ、上位階層を処理するときには、設計情報データベースに書き込まれた設計情報に基づいて、処理すべき単位について処理対象/非処理対象を判別する処理対象判別部と、処理対象判別部により判別された処理対象/処理対象外に基づいて、回路情報データベースから処理すべき単位の回路データを取得する処理データ取得部とをそなえて構成されてもよく、このようにすれば、作業用のメモリの節約が可能となる。
(9)固有化処理部と、テスト回路生成処理部と、負荷調整処理部とが、それぞれ、設計情報データベースに書き込まれた設計情報に基づいて、処理すべき単位について処理対象/非処理対象を判別する処理対象判別部とをそなえて構成されてもよく、このようにすれば、処理すべき部分に関する情報が容易に得られるようになる。
(10)処理対象判別部が、設計情報のうち、第1の単位を処理して得られる第1の単位の処理結果に関する第1単位情報に基づいて、次に処理する第2の単位が内包する単位が処理された単位であるか否かを判別するように構成されてもよく、このようにすれば、処理すべき対象の箇所を、容易に判別できる。
(11)テスト回路生成処理部が、設計情報データベースに保持された設計情報に基づいて、下位階層にテスト信号入力用として追加した端子と上位階層が参照した階層における端子との間の端子不整合を解消する階層整合性復元部をそなえて構成されてもよく、このようにすれば、ECO設計における設計者の操作性が大幅に向上する。
(12)固有化処理部と、テスト回路生成処理部と、負荷調整処理部とが、それぞれ、ECO設計するように構成されてもよく、このようにすれば、回路の設計が同一の操作手順を使用できる。
(13)固有化処理部と、テスト回路生成処理部と、負荷調整処理部とが、それぞれ、通常設計により作成された通常設計情報を読み込む設計情報読み込み部と、通常設計情報とパラメータで与えられるECO対象単位情報とを用いて処理すべき回路データを判別する処理対象判別部とをそなえ、通常設計情報を用いて通常設計された回路と変更箇所以外とが同一の回路を設計するように構成されてもよく、このようにすれば、全自動化により連続処理が可能になり、処理時間の削減、ひいては設計期間を短縮できる。
(14)固有化処理部が、設計情報データベースに書き込まれた設計情報に基づいて、処理すべき単位について処理対象/非処理対象を判別する処理対象判別部と、処理対象判別部にて処理対象と判別された場合は設計情報データベースに保持された参照関係と同一の参照関係になるように固有名を生成し、非処理対象と判別された場合は既に割り当てた固有名と異なる固有名を生成する固有名生成部とをそなえて構成されてもよく、このようにすれば、上位階層が設計情報を参照する場合に、処理すべき単位を複数参照の回数分だけ複製でき、付加後の処理すべき単位のそれぞれに重複しない固有名を付与できる。
(15)テスト回路生成処理部が、設計情報データベースに基づいて、ECO設計対象単位について、通常設計時に作成された通常設計情報及びテスト回路規則を用いて、通常設計時と同一のテスト回路を生成できる部分と、新たなテスト回路を生成すべき部分とのそれぞれを識別する識別データを抽出する回路解析部とをそなえて構成されてもよく、このようにすれば、作業用メモリの使用量が最適化される。
(16)階層整合性復元部が、設計情報のうち通常設計時についての通常時設計情報とECO設計対象単位と上位階層における端子情報とを用いて、階層整合性を復元するように構成されてもよく、このようにすれば、大規模回路を部分ごとに設計できる。
(17)テスト回路生成処理部が、回路解析部により抽出された識別データに基づき、ECO設計対象単位について、通常設計時と同一のテスト回路を生成できる部分について同一のテスト回路を生成し、新たなテスト回路を生成すべき部分についてテスト回路規則に従ったテスト回路を生成するテスト回路生成部とをそなえて構成されてもよく、このようにすれば、ECO設計の設計効率が大幅に向上する。
(18)設計情報読み込み部が、固有化前の階層名と固有化後の階層名とを対応づけて、固有化前の階層名による固有化後の回路データを参照できるように構成されてもよく、このようにすれば、固有化処理の有無と固有化前後における階層名とを得られる。
(19)負荷調整処理部が、論理素子が駆動可能な端子容量を解析して、駆動不能な端子を抽出する負荷解析部と、負荷解析部にて抽出された駆動不能な端子の駆動能力を調整する回路調整部とをそなえて構成されてもよく、このようにすれば、回路における各端子がいずれも適切な容量に調整されるようになる。
(20)回路情報データベースが、階層設計とECO設計とにおいて、処理された単位ごとに回路情報を回路情報データベースに書き込む回路情報書き込み部と、回路情報書き込み部に接続され、処理すべき単位ごとに書き込まれた回路情報を参照できる参照部とをそなえて構成されてもよく、このようにすれば、設計効率が向上する。
(21)設計情報データベースが、回路要素を個別のファイルに保存しうる複数の保持部をそなえて構成されてもよく、このようにすれば、設計情報が回路設計に反映され、設計期間等の作業効率が向上する。
(22)回路設計方法が、設計処理部において、第3の単位を内包する第4の単位を処理する第1処理ステップと、生成中の第3の単位の処理結果に関する第3単位情報を収集する第3単位情報収集ステップと、収集された第3単位情報を設計処理部に接続され設計情報を保持する設計情報データベースに書き込む設計情報書き込みステップと、書き込まれた第3単位情報に基づき、第3の単位を変更して得られる第3処理済単位が第4の単位を変更して得られる第4処理済単位を内包するか否かを判別するとともに、第3処理済単位が第3の単位と同等か否かを判別する判別ステップとをそなえて構成されているので、全自動化により連続処理が可能になり、処理時間の削減、ひいては設計期間を短縮できる。階層設計が容易に実現でき、また、大規模回路の階層設計が非常に効率よくできる。
(23)本発明のプログラムが、コンピュータを、回路情報データベースから回路に関する情報を読み出し処理すべき単位ごとに回路を設計するとともに、設計によって得られた回路要素の固有化情報,回路を変更した履歴を表す変更履歴情報及び回路の端子負荷・駆動能力情報を含む設計情報を設計情報データベースに保持するように機能させているので、大規模回路を設計する環境を簡便に構築することができる。
(24)本発明のプログラムが、コンピュータに、設計処理部において、第1の単位の処理結果に関する第1単位情報を生成する処理生成ステップと、生成中の変更履歴情報及び回路の端子負荷・駆動能力情報を含む設計情報を収集する設計情報収集ステップと、収集された設計情報を、設計情報データベースに処理すべき単位ごとに書き込む設計情報書き込みステップと、書き込まれた設計情報に基づいて第2の単位を処理すべく、第1の単位に関する設計情報を参照する参照ステップと、参照された第1の単位に関する設計情報についての参照関係を認識する認識ステップと、得られた参照関係に基づき、回路情報データベースに保持された位置と処理結果とに関する単位情報を参照する回路情報データベース参照ステップと、設計処理された回路データを更新する回路情報データベース書き込みステップとを実行するように機能させるので、例えば内包する場合には第1の単位が処理済であるか否かが自動的に認識される。
(25)本発明のプログラムは、コンピュータに、回路情報データベースから回路に関する情報を読み出して、設計処理部において、第3の単位を内包する第4の単位を処理する第1処理ステップと、生成中の第3の単位の処理結果に関する第3単位情報を収集する第3単位情報収集ステップと、収集された第3単位情報を、設計情報データベースに書き込む設計情報書き込みステップと、書き込まれた第3単位情報に基づき、第3の単位を変更して得られる第3処理済単位が第4の単位を変更して得られる第4処理済単位を内包するか否かを判別するとともに、第3処理済単位が第3の単位と同等か否かを判別する判別ステップとを実行するように機能させるので、全自動化により連続処理が可能になり、処理時間の削減、ひいては設計期間を短縮できる。
(26)タイミング配分作成部が、複数の設計階層のそれぞれに対応して設けられた階層エンティティと設計情報を処理するためのプログラムデータとを有するエージェントとして構成されるとともに、階層間連携マネージャが、エージェントとしてのタイミング配分作成部に接続され複数の設計階層のそれぞれとタイミング配分値に関する情報を送受信するマネージャとして構成されてもよく、このようにすれば、複数の設計階層が、相互に、階層間連携マネージャを介して通信できる。
(27)タイミング配分作成部が、遅延要素情報を保持する論理/制約情報保持部と、フロアプランに基づきタイミングを配分して仮配線を行なうフロアプラン部と、ネットリスト情報を保持するタイミング情報保持部と、ネットリスト情報に基づいて遅延値を出力する配分マネージャとをそなえて構成されてもよく、このようにすれば、柔軟な設計変更が可能となる。
(28)フロアプラン部が、属性情報としての配分値を制約情報からのスラックに基づき改善と修正とが可能な部分を提示するとともに遅延要素情報に起因する配置情報を保持する配置処理部と、実配線への連携と仮配線とを行なうとともに配線情報を出力する実配線・仮配線実行部と、配線情報を保持する配線情報保持部と、単位長当たりの遅延値及び単位長当たりの負荷容量からなる物理テクノロジ情報を保持する物理テクノロジ情報保持部と、遅延長及び負荷容量に基づいて配線情報を遅延値に変換して出力する変換部とをそなえて構成されてもよく、このようにすれば、容易に配線長から遅延値が算出される。
(29)実配線・仮配線実行部が、長い計算時間を要する実配線と計算時間が短い仮配線とを併用して配線し、かつ、タイミング配分値を抽出するように構成されてもよく、このようにすれば、設計者は仮配線によりタイミング仕様を検討しその検討にて得られた結果に基づいてタイミング配分を変更して実配線できる。
(30)実配線・仮配線実行部が、PCBとLSIとの双方についてマンハッタン長仮配線するマンハッタン長仮配線部と、斜めに配線する斜め配線を用いて仮配線する斜めマンハッタン長仮配線部と、プリント回路基板と大規模集積回路とについて配線する実配線連携部とをそなえて構成されてもよく、このようにすれば、配線作業の効率が向上する。
(31)実配線・仮配線実行部が、マンハッタン長仮配線と斜めマンハッタン長仮配線と実配線とに基づいて仮配線するように構成されてもよく、このようにすれば、配線混雑度が密な場所においても精度が向上する。
(32)実配線・仮配線実行部が、選択された階層について遅延値及び負荷容量を、物理テクノロジ情報保持部から読み出し、単位配線長当たりの遅延時間を変化させて配分するように構成されてもよく、このようにすれば、配線作業の効率が向上する。
(33)実配線・仮配線実行部が、仮配線により得られたタイミング配分値について計算されたマージンと配線密度を表す配線混雑度とに基づいて実配線するように構成されてもよく、このようにすれば、配線混雑度に応じて仮配線又は実配線が自動的に切り替えられるため、トレードオフを有効活用でき、設計者の手間を削減できる。
(34)実配線・仮配線実行部が、実配線のみ行なえる他の計算機を援用する設計装置と連動させるべく、実配線にて不足する情報に関する解析用の情報を出力するように構成されてもよく、このようにすれば、実配線する際に不足する情報が設計者に通知され、設計者がその情報に基づき解析に必要な情報を作成しその情報を実配線専用のレイアウトCAD装置に送信して配線できる。
(35)実配線・仮配線実行部が、配線禁止の領域と配線混雑度とに基づいて、仮配線及び実配線をするように構成されてもよく、このようにすれば、仮配線と設計対象となる回路ブロックに依存した詳細な実配線とを混在させて配線でき、タイミングの配分値を抽出できる。
(36)実配線・仮配線実行部が、制約条件として使用されたクロック周波数に基づき到達しなければならない時間内に到達可能の可否を判定し、到達不可と判定すると複数の回路ブロック間のネットリスト情報に対してバッファ及びフリップフロップの挿入を指示するように構成されてもよく、このようにすれば、仮想ピンまで到達不可能な場合にのみ、バッファ等が挿入されるので、制約条件を効果的に満たすことができる。
(37)実配線・仮配線実行部が、回路ブロックに含まれる端子を制約情報に基づいて配置するように構成されてもよく、このようにすれば、配置が簡易になる。
(38)階層間連携マネージャが、タイミング情報データベースに、タイミング情報データが不足している回路ブロックを抽出し、その不足している回路ブロックを設計者に対して通知するように構成されてもよく、このようにすれば、設計者の作業効率が向上する。
(39)フロアプラン部が、回路ブロック中の配線幅を、実配線及び仮配線している間に変更できるように構成されてもよく、このようにすれば、配線幅を変更できるので、回路を柔軟に設計できる。
(40)階層間連携マネージャが、複数の配分マネージャの組み合わせを変更できるように構成されてもよく、このようにすれば、設計対象に応じて自由にかつ動的に変更できる。
(41)タイミング配分作成部が、LSIの階層のI/Oバッファ情報からPCBの波形解析用の情報を生成する波形解析用情報作成部をそなえて構成されてもよく、このようにすれば、波形が簡易に解析できる。
(42)タイミング配分作成部が、予め設定された他のタイミング仕様とフロアプラン部にて配分されたタイミングとに基づいて、タイミング配分値を出力するように構成されてもよく、このようにすれば、設計者は配分値を記載した配分レポートを参照できる。
(43)フロアプラン部が、回路ブロックの規模又は形状を実配線及び仮配線している間に変更できるように構成されてもよく、このようにすれば、柔軟な配置設計が可能となる。
(44)タイミング配分作成部が、ソースコードを用いて、論理設計時又はレイアウト検討からバックアノテートされたタイミング配分値を読み込むように構成されてもよく、このようにすれば、設計者は容易にシミュレーションを行なえる。
(45)タイミング配分作成部が、タイミング配分値に起因する情報をソースコードに書き込むアノテータをそなえて構成されてもよく、このようにすれば、設計者と回路設計装置との間のユーザインターフェースがより密接になる。
(46)アノテータが、ソースコードに、配線形態に関するネットリスト情報を書き込むように構成されてもよく、このようにすれば、配分された値がソースコードにバックアノテーションされ、遅延値が自動的に設定又は変更される。
(47)物理テクノロジ情報保持部が、配線長と、単位長当たりの遅延値,単位長当たりの負荷容量とを、相互に関連づけて保持するように構成されてもよく、このようにすれば、配線長から遅延値が算出される。
(48)階層間連携マネージャが、複数のタイミング情報データベースのうちの一つが送信したタイミング配分仕様変更要求を受信し、タイミング配分仕様変更が影響を与えうる他のタイミング情報データベースを抽出し、他のタイミング情報データベースに対してタイミング配分値の変更の可否を問い合わせるように構成されてもよく、このようにすれば、タイミング仕様の変更が迅速に通知される。
(49)階層間連携マネージャが、他のタイミング情報データベースからタイミング配分値の変更可能を受信すると、所望のタイミング情報データベースに対して変更可能を出力するように構成されてもよく、このようにすれば、やはり、タイミング仕様の変更が迅速になる。
(50)階層間連携マネージャが、タイミング配分値が変更されると、その変更された階層よりも上位の階層エンティティが更新されるように構成されてもよく、このようにすれば、やはり、タイミング仕様の変更が迅速になる。
(51)配分マネージャが、論理/制約情報保持部に接続され、タイミング配分する配分エディタと、配分エディタと論理/制約情報保持部とタイミング情報保持部とに接続され、ネットリスト情報を出力するデータベース参照登録部と、自己の階層のタイミング配分情報と他の階層のタイミング配分情報とを入出力する自階層TDB出力・他階層TDB自動反映部と、調停を行なう調停制御部とをそなえて構成されてもよく、このようにすれば、配分値が効率的に反映される。
(52)配分マネージャが、スキューを、配線形態に関するネットリスト情報の配線パスのうち共通の配線パス以外のものに基づいて計算するように構成されてもよく、このようにすれば、共通部分のばらつきを除去された計算が自動的に行なえる。
(53)配分マネージャが、配線パスに、副信号名として配線形態を表す名称を付与するように構成されてもよく、このようにすれば、再度のレイアウトが不要となり配線層数を知ることができ、また、配分のための工数が削減する。
(54)配分マネージャが、副信号名とファンアウト数とを関連づけて命名するように構成されてもよく、このようにすれば、各ピンや各配線に対して属性が与えられるのでやはり工数が削減する。
(55)配分マネージャが、配線した部分について、制約情報の値に応じたグラデーションを操作画面にて色彩表示するように構成されてもよく、このようにすれば、共通部分のばらつきを除去することができる。
(56)配分マネージャが、回路ブロックを示す図に、タイミング配分値とタイミング配分できる値の範囲を表示するように構成されてもよく、このようにすれば、設計者は信頼性の高い回路を設計できる。
(57)本発明のプログラムが、階層設計するに当たり、コンピュータを、複数のタイミング配分作成部と、階層間連携マネージャとして機能させているので、例えば端子の境界情報や端子等の設計情報が自動的に入力され、処理履歴から現在の処理における処理対象外部分が自動的に判断され、また、処理対象外部分に含まれる設計情報が自動的に抽出されて、現在設計中の部分の処理に利用できる。そして、クリティカル部分については、レイアウト前に配線形態を指定できるため、実レイアウト後の高信頼性を有する配線が可能となる。既存のPCB用レイアウトCAD装置やLSI用レイアウトCAD装置を用いて詳細検討でき、インプリメントに直結できるため、既存の設計フローを変更することなく設計できる。加えて、波形解析用情報により、LSI完成前にPCBを波形解析できるため、LSIとPCBとの並行設計が容易となる。
また、テクノロジに依存しないフロアプラン情報の再利用ができるため、既存のレイアウト資産を有効利用できる。さらに、今後ますます重要となる高速系システムの構成要素であるPCB,LSIを総合したタイミング設計が可能となる。そして、アーキテクチャテクチャ設計において、インプリメント時にクリティカルかつ重要なタイミング仕様を有する部分が、分散検討により先行把握でき、開発期間の大幅な短縮と、高信頼性設計とができる。
本発明の第1実施形態に係る回路設計装置の構成図である。 本発明の第1実施形態に係る固有化処理部のブロック図である。 本発明の第1実施形態に係るテスト回路生成処理部のブロック図である。 本発明の第1実施形態に係る負荷調整処理部のブロック図である。 本発明の第1実施形態に係るHDL変換の概念図である。 本発明の第1実施形態に係る固有化処理を説明するための図である。 (a)〜(d)はいずれも本発明の第1実施形態に係るECO設計における固有化処理を説明するための図である。 本発明の第1実施形態に係るECO設計における回路変更を説明するための図である。 (a),(b)はいずれも本発明の第1実施形態に係る階層設計におけるテスト回路生成処理を説明するための図である。 (a)〜(d)はいずれも本発明の第1実施形態に係るECO設計におけるテスト回路生成処理を説明するための図である。 (a)〜(d)はいずれも本発明の第1実施形態に係る階層設計における負荷調整処理を説明するための図である。 本発明の第1実施形態に係る回路データの流れを説明するための図である。 本発明の第1実施形態に係る半導体回路のデータイメージを示す図である。 本発明の第1実施形態に係る階層設計を説明するためのフローチャートである。 本発明の第1実施形態に係る他の半導体回路のデータイメージを示す図である。 (a),(b)は本発明の第1実施形態に係るECO処理を説明するためのフローチャートである。 本発明の第2実施形態に係る回路設計の工程を示す図である。 本発明の第2実施形態に係るブロック分割設計の工程を示す図である。 本発明の第2実施形態に係る回路設計装置の構成図である。 本発明の第2実施形態に係るタイミング配分装置のブロック図である。 本発明の第2実施形態に係る階層間の配分値の送受信を説明するための図である。 本発明の第2実施形態に係る上位階層と下位階層との間の配分値の送受信を説明するための図である。 本発明の第2実施形態に係る階層エンティティを説明するための図である。 本発明の第2実施形態に係るタイミング配分作成部のブロック図である。 本発明の第2実施形態に係るフロアプラン部のブロック図である。 本発明の第2実施形態に係る斜めマンハッタン長仮配線を説明するための図である。 本発明の第2実施形態に係る配線混雑度を抽出するためのアルゴリズムを説明するための図である。 本発明の第2実施形態に係る配線混雑度を抽出するためのアルゴリズムを説明するための図である。 本発明の第2実施形態に係る配置領域の拡大を模式的に示す図である。 本発明の第2実施形態に係るLSI内部のタイミング配分を説明するための図である。 本発明の第2実施形態に係る配分マネージャのブロック図である。 本発明の第2実施形態に係るスキュー計算を説明するための図である。 (a)〜(c)はいずれも本発明の第2実施形態に係るネットリスト表現を説明するための図である。 本発明の第2実施形態に係るブロック設計の工程を示す図である。 本発明の第2実施形態に係るタイミング配分を説明するためのフローチャートである。 本発明の第2実施形態に係るタイミング配分の一部を説明するためのフローチャートである。 本発明の第2実施形態に係るタイミング配分の一部を説明するためのフローチャートである。 本発明の第2実施形態に係るタイミング配分の一部を説明するためのフローチャートである。 本発明の第2実施形態に係るタイミング配分作成部の動作を説明するためのフローチャートである。 本発明の第2実施形態に係るフロアプラン部の動作を説明するためのフローチャートである。 本発明の第2実施形態に係る配分マネージャの動作を説明するためのフローチャートである。 本発明の第2実施形態に係る配分マネージャの動作を説明するためのフローチャートである。 階層設計の概念図である。 半導体回路設計装置のブロック図である。 (a),(b)はそれぞれ固有化処理を説明するための図である。 (a)〜(c)はそれぞれECO設計を説明するための図である。 タイミング配分を説明するための図である。 装置設計の概略を説明するためのフローチャートである。 タイミング設計を説明するためのフローチャートである。 マンハッタン長を説明するための図である。
符号の説明
1,1a 半導体回路設計装置
2 回路情報データベース
3 自動設計処理部
4 計算処理部
5 設計情報データベース
3a HDL言語読み込み部
3b パラメータ入力部
3c 処理結果出力部
3d テスト回路規則入力部
4a HDL変換処理部
4b 固有化処理部
4c テスト回路生成処理部
4d 負荷調整処理部
4e HDL出力処理部
6a 設計情報読み込み制御部
6b 設計情報読み込み部
7a 処理対象判別部
7b 処理データ取得部
8a 複数参照解析制御部
8b 複数参照解析部
8c 回路解析制御部
8d 回路解析部
8e 端子負荷・駆動能力設定制御部
8f 端子負荷・駆動能力設定部
9a 固有名付与規則設定部
9b 固有名生成部
9c テスト回路生成制御部
9d テスト回路生成部
9e 負荷解析制御部
9f 負荷解析部
10a 回路データ複製制御部
10b 回路データ複製部
10c 階層整合性復元制御部
10d 階層整合性復元部
10e 回路調整制御部
10f 回路調整部
11a 回路情報書き込み制御部
11b 回路情報書き込み部
12a 設計情報書き込み制御部
12b 設計情報書き込み部
40a,40b,40c ソースコード
41a,41b,41c,41d,41e データイメージ
42a,42b 回路モジュールイメージ
43,43a,43b,45,61a〜61e 回路モジュール
50d 配分レポート作成部
51 タイミング配分装置
52a,52c レイアウトCAD装置
52b 波形解析CAD装置
53 階層間連携マネージャ
54a〜54e タイミング配分作成部
55a〜55e フロアプラン部
56a〜56e 配分マネージャ
57a〜57e TDB
58b 制約条件保持部
58c 構造部分ネットリスト保持部
58e HDLアノテータ
58f HDLコンパイラ
58h 波形解析用情報作成部
58i 波形解析用情報保持部
59a 配置支援部
59b 配置情報保持部
59c 物理テクノロジ情報保持部
59d 配線情報保持部
59e 変換部
59f 配置処理部
60 実配線・仮配線実行部
60a マンハッタン長仮配線部
60b 斜めマンハッタン長仮配線部
60c,60d 実配線連携部
60e 抽出部
60f 名称付与部
61,63,80〜83 チップ
61f クリティカルネット
61g フリップフロップ
62,62a ネットリスト
63a 配分エディタ部
63b TDB登録部
63c TDB参照部
63d 自階層TDB出力・他階層TDB自動反映部
63e データベース参照登録部
63f 調停制御部
64a〜64e 論理/制約情報保持部
65b〜65e タイミング情報保持部
66 バッファ
90a〜90c 階層エンティティ
100a,101a,102a 制御部
100b,101b,102b 処理部

Claims (2)

  1. 階層設計において、
    複数の設計階層のそれぞれに対応して設けられ、配線形態に関するネットリスト情報を有する複数のタイミング情報データベースから回路の機能に関するブロック情報を入力され、該回路の遅延要素により生じる遅延値を配分して得るタイミング配分値を出力しうる複数のタイミング配分作成部と、
    該複数のタイミング配分作成部のそれぞれの間の接続を動的に変更するとともに、該複数のタイミング配分作成部のそれぞれの間と該タイミング配分値に関する修正情報を送受信する階層間連携マネージャとをそなえて構成されていることを特徴とする、タイミング配分装置。
  2. 該タイミング配分作成部が、該複数の設計階層のそれぞれに対応して設けられ設計情報を有する階層エンティティと該設計情報を処理するためのプログラムデータとを有するエージェントとして構成されるとともに、
    該階層間連携マネージャが、該エージェントとしての該タイミング配分作成部に接続され該複数の設計階層のそれぞれと該タイミング配分値に関する情報を送受信するマネージャとして構成されたことを特徴とする、請求項1記載のタイミング配分装置。
JP2007046318A 2007-02-26 2007-02-26 タイミング配分装置 Pending JP2007188517A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007046318A JP2007188517A (ja) 2007-02-26 2007-02-26 タイミング配分装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007046318A JP2007188517A (ja) 2007-02-26 2007-02-26 タイミング配分装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2000342069A Division JP4031905B2 (ja) 2000-11-09 2000-11-09 回路設計装置及び回路設計方法

Publications (1)

Publication Number Publication Date
JP2007188517A true JP2007188517A (ja) 2007-07-26

Family

ID=38343583

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007046318A Pending JP2007188517A (ja) 2007-02-26 2007-02-26 タイミング配分装置

Country Status (1)

Country Link
JP (1) JP2007188517A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8171440B2 (en) 2008-08-20 2012-05-01 Nec Corporation Timing analyzing apparatus, timing analyzing method and program thereof
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
US8984456B2 (en) 2012-02-02 2015-03-17 Nec Corporation Macro timing analysis device, macro boundary path timing analysis method and macro boundary path timing analysis program
US11861284B2 (en) * 2021-05-27 2024-01-02 Taiwan Semiconductor Manufacturing Company, Ltd. Conductor scheme selection and track planning for mixed-diagonal-manhattan routing

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8171440B2 (en) 2008-08-20 2012-05-01 Nec Corporation Timing analyzing apparatus, timing analyzing method and program thereof
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
US8984456B2 (en) 2012-02-02 2015-03-17 Nec Corporation Macro timing analysis device, macro boundary path timing analysis method and macro boundary path timing analysis program
US11861284B2 (en) * 2021-05-27 2024-01-02 Taiwan Semiconductor Manufacturing Company, Ltd. Conductor scheme selection and track planning for mixed-diagonal-manhattan routing

Similar Documents

Publication Publication Date Title
JP4031905B2 (ja) 回路設計装置及び回路設計方法
US6378123B1 (en) Method of handling macro components in circuit design synthesis
US6295636B1 (en) RTL analysis for improved logic synthesis
NL192892C (nl) Computer-ondersteund systeem voor het ontwerpen van geïntegreerde schakelingen.
US6836877B1 (en) Automatic synthesis script generation for synopsys design compiler
US8516399B2 (en) Collaborative environment for physical verification of microdevice designs
CN102112988B (zh) 用于针对生产工作流的芯片设计中的单元完整性、改变和起点的独立评估的方法和设备
US5980092A (en) Method and apparatus for optimizing a gated clock structure using a standard optimization tool
KR101336516B1 (ko) Eda 툴 설계 뷰들에서 정보를 보호하기 위한 방법 및프로그램 제품
US7958470B1 (en) Method and system for false path analysis
US20050268258A1 (en) Rule-based design consultant and method for integrated circuit design
US5956256A (en) Method and apparatus for optimizing a circuit design having multi-paths therein
US20030101331A1 (en) ASIC design technique
US6289491B1 (en) Netlist analysis tool by degree of conformity
US8495535B2 (en) Partitioning and scheduling uniform operator logic trees for hardware accelerators
US8954915B2 (en) Structured placement of hierarchical soft blocks during physical synthesis of an integrated circuit
US20220075920A1 (en) Automated Debug of Falsified Power-Aware Formal Properties using Static Checker Results
US9361417B2 (en) Placement of single-bit and multi-bit flip-flops
Saxena et al. Routing Congestion in VLSI Circuits: Estimation and Optimization
Simpson FPGA design
JP2010257164A (ja) 半導体集積回路装置の設計方法およびプログラム
JP2007188517A (ja) タイミング配分装置
JP5447547B2 (ja) マクロ遅延解析装置、マクロ境界パスの遅延解析方法、マクロ境界パスの遅延解析プログラム
US8024681B2 (en) Hierarchical HDL processing method and non-transitory computer-readable storage medium
Reinhardt Automatic layout modification: including design reuse of the alpha cpu in 0.13 micron soi technology

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090602

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091020