JP2004086682A - 機能ブロック設計方法および機能ブロック設計装置 - Google Patents
機能ブロック設計方法および機能ブロック設計装置 Download PDFInfo
- Publication number
- JP2004086682A JP2004086682A JP2002248439A JP2002248439A JP2004086682A JP 2004086682 A JP2004086682 A JP 2004086682A JP 2002248439 A JP2002248439 A JP 2002248439A JP 2002248439 A JP2002248439 A JP 2002248439A JP 2004086682 A JP2004086682 A JP 2004086682A
- Authority
- JP
- Japan
- Prior art keywords
- block
- memory
- floor plan
- design
- design data
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
【課題】オーダに応じた機能ブロックの開発期間を短縮できるようにする。
【解決手段】所定のデータ記憶容量のメモリフロアプランブロック121,122,・・・,131,132,133,・・・とメモリフロアプランブロック121,122,・・・,131,132,133,・・・以外の固定ブロック100との論理設計を行い、論理設計に従ってブロック別設計データを作成する。作成されたブロック別設計データに関し、メモリブロックの搭載可能範囲内で、CPUマクロ100を作成するための制約条件が常に満たされることを検証する。そして、検証されたブロック別設計データを用い、任意のメモリ容量に応じた数のメモリブロックを固定ブロック110に接続したCPUマクロ100機能ブロックの設計データを生成する。
【選択図】 図1
【解決手段】所定のデータ記憶容量のメモリフロアプランブロック121,122,・・・,131,132,133,・・・とメモリフロアプランブロック121,122,・・・,131,132,133,・・・以外の固定ブロック100との論理設計を行い、論理設計に従ってブロック別設計データを作成する。作成されたブロック別設計データに関し、メモリブロックの搭載可能範囲内で、CPUマクロ100を作成するための制約条件が常に満たされることを検証する。そして、検証されたブロック別設計データを用い、任意のメモリ容量に応じた数のメモリブロックを固定ブロック110に接続したCPUマクロ100機能ブロックの設計データを生成する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明はメモリを含む機能ブロックを設計するための機能ブロック設計方法およびその方法の処理を実行する機能ブロック設計装置に関し、特にオーダに応じた任意の容量のメモリを実装した機能ブロックを設計するための機能ブロック設計方法およびその方法の処理を実行する機能ブロック設計装置に関する。
【0002】
【従来の技術】
現在、様々な電子機器が、LSI(Large Scale Integration)化された制御装置(システムLSI)によって制御されている。近年、このような電子機器の開発期間の短縮による迅速な市場投入の要求が高まっている。そこで、電子機器に実装するシステムLSIについても、高機能で最適なものを短期間で開発するよう求められてきている。
【0003】
システムLSIを短期間で開発する手法として、システムLSIの機能毎に回路設計および動作実証を行う方法がある。機能毎の回路ブロック(機能ブロック)をマクロと呼び、電子機器の制御に必要なマクロを組み合わせることで、その電子機器に必要なシステムLSIを開発する。
【0004】
システムLSIを構成するマクロのうち、CPU(Central Processing Unit)のコア回路を含むマクロをCPUマクロと呼ぶ。なお、DSP(Digital Signal Processor)を含むマクロについても、CPUマクロの概念に含まれるものとする。
【0005】
CPUマクロには、CPUコア回路以外に周辺回路やメモリ回路などが含まれる。CPUマクロにメモリ回路を内蔵しておくことで、CPUコア回路で実行させる基本的な処理(たとえば、処理の高速化が求められる処理)の動作検証をCPUコア回路内で行うことができる。
【0006】
ところで、CPUマクロは、最終製品である電子機器に合わせてメモリ構成(たとえば、ROM(Read Only Memory)とRAM(Random Access Memory)とのそれぞれの容量)が決定される。したがって、システムLSIが実装される製品毎に、CPUマクロのフロアプランを決定する必要がある。システムLSIの開発期間の短期化を促進させるためにも、CPUマクロのフロアプランの設計期間の短期化が望まれている。
【0007】
図8は、従来のCPUマクロのフロアプランを示す図である。図8(A)は、フロアプランの第1の例を示しており、図8(B)は、フロアプランの第2の例を示しており、図8(C)は、フロアプランの第3の例を示している。
【0008】
図8に示すようにCPUマクロ開発においては、製品毎に要求メモリサイズ/メモリ構成が異なる。そのため、製品毎に、CPUコア、周辺回路、メモリ回路の配置が決定される。フロアプランでは、CPUマクロ全体のアスペクト比(縦横比)が所定の範囲内になるように設計される。アスペクト比が正方形に近いほど、LSIチップ全体を開発する際に、チップの設計が容易となるからである。
【0009】
たとえば、図8(A)のフロアプランでは、CPUマクロ910内に、CPUコア回路911、周辺回路912、複数のメモリ回路913が設けられている。CPUマクロ910は長方形をしており、横の辺の長さがX1、縦の辺の長さがY1である。アスペクト比(縦横比)は、Y1/X1である。このCPUマクロ910は、他のフロアプランの例に比べてメモリ容量が少ない。
【0010】
図8(B)のフロアプランでは、CPUマクロ920内に、CPUコア回路921、周辺回路922、複数のメモリ回路923が設けられている。CPUマクロ920の大きさは、横の辺の長さがX2、縦の辺の長さがY2である。アスペクト比は、Y2/X2である。このCPUマクロ920は、第1の例に示すフロアプランよりはメモリ容量が多いが、第3の例に示すフロアプランよりはメモリ容量が少ない。
【0011】
図8(C)のフロアプランでは、CPUマクロ930内に、CPUコア回路931、周辺回路932、複数のメモリ回路933が設けられている。CPUマクロ930の大きさは、横の辺の長さがX3、縦の辺の長さがY3である。アスペクト比は、Y3/X3である。このCPUマクロ930は、他のフロアプランよりメモリ容量が多い。
【0012】
このように、オーダ毎のCPUマクロでは、CPUコア回路、周辺回路の論理構造が変わらない場合でも、メモリ構成/メモリ容量は異なる。そのため、アスペクト比が一定範囲内に収まるよう各回路の配置を決定し、CPUマクロ毎にフロアプランを行っていた。すなわち、過去に設計したCPUマクロの構成に対してメモリ容量を変更するだけであっても、CPUコア回路、周辺回路、複数のメモリ回路それぞれを配置し直す必要があった。
【0013】
新規にフロアプランが行われた場合、一定の動作周波数を保証するための工程を実行しなければならない。
図9は、CPUマクロの設計作業の手順を示す図である。まず、顧客仕様が決定する(ステップS91)と、その顧客仕様に基づいて論理設計を行う(ステップS92)。論理設計終了後、フロアプランのレイアウトを決定する(ステップS93)。すなわち、アスペクト比が所定範囲内になるように、CPUコア回路、周辺回路、複数のメモリ回路を配置する。
【0014】
フロアプランレイアウトが終わると、タイミング検証手順(ステップS94〜S98)と、物理検証手順(ステップS99〜S101)とに作業が分かれる。タイミング検証手順(ステップS94〜S98)では、まずRC抽出処理が行われる(ステップS94)。これは、回路内の複数の区間における抵抗(R)と静電容量(C)とに基づく遅延計算を行う。その後、抽出したRCに基づいてタイミング検証が行われる(ステップS95)。すなわち、論理設計通りに信号が正しいタイミングで伝わるか否かが検証される。そして検証結果が判定される(ステップS96)。
【0015】
検証結果がNGの場合、論理設計(ステップS92)、またはフロアプランレイアウト(ステップS93)まで戻って、作業をやり直す。一般には、初期の段階のNGの判定の場合、フロアプランやレイアウト(ステップS93)をやり直す。フロアプランやレイアウト(ステップS93)を何度修正してもタイミング検証がNGになってしまう場合、論理設計(ステップS92)からやり直すことになる。
【0016】
検証結果がOKであれば、タイミングライブラリが作成される(ステップS97)。タイミングライブラリには、構成要素(たとえば、フリップ・フロップ)間の信号の伝搬(信号の遅延等)に関する情報が登録されている。
【0017】
物理検証手順では、まず物理検証が行われる(ステップS99)。物理検証は、たとえば、配線間隔等の物理的な配置が、所定のルールで示される条件を満たしているか否かが検証される。そして検証結果が判定される(ステップS100)。
【0018】
物理検証の結果がNGであれば、ステップS93のレイアウト決定処理をやり直す。
物理検証の結果がOKであれば、フロアプランデータやマスクパターンデータが作成される(ステップS101)。フロアプランデータは、CPUマクロを他の回路に接続するために設けられる端子の位置などのデータである。マスクパターンデータは、CPUマクロのマスクパターンを示すデータである。そして、生成されたタイミングライブラリ、フロアプランデータ、マスクパターンデータが顧客に渡される。
【0019】
このようにして、一定の動作周波数による動作が保証されたCPUマクロの構造が決定される。
【0020】
【発明が解決しようとする課題】
しかし、新規にフロアプランを行うと動作周波数を保証するために、タイミング検証や物理検証が行われ、これらの検証にパスするまで、フロアプランやレイアウトプランなどの作成作業が繰り返し発生してしまう。フロアプランやレイアウトプランが変更されれば、タイミング検証や物理検証もやり直しとなる。その結果、CPUマクロ開発に時間がかかっていた。
【0021】
本発明はこのような点に鑑みてなされたものであり、オーダに応じた機能ブロックの開発期間を短縮することができる機能ブロック設計方法および機能ブロック設計装置を提供することを目的とする。
【0022】
【課題を解決するための手段】
本発明では上記課題を解決するために、メモリを含む機能ブロックを設計するための機能ブロック設計方法において、所定の論理設計に従って、所定のデータ記憶容量のメモリブロックと前記メモリブロック以外の固定ブロックとのそれぞれに関するブロック別設計データを作成し、作成された前記ブロック別設計データに関し、前記メモリブロックの搭載可能範囲内で、前記機能ブロックを作成するための制約条件が常に満たされることを検証し、検証された前記ブロック別設計データを用い、任意のメモリ容量に応じた数の前記メモリブロックを前記固定ブロックに接続した機能ブロックの設計データを生成する、ことを特徴とする機能ブロック設計方法が提供される。
【0023】
このような機能ブロック設計方法によれば、メモリブロックの搭載可能範囲内で、機能ブロックを作成するための制約条件が常に満たされることが予め検証されるため、任意のメモリ容量に応じた数のメモリブロックを固定ブロックに接続することで生成された機能ブロックの設計データは、常に制約条件を満たす。
【0024】
また、本発明では上記課題を解決するために、メモリを含む機能ブロックを自動設計する機能ブロック設計装置において、メモリブロックの搭載可能範囲内で前記機能ブロックを作成するための制約条件が常に満たされることが検証された、前記メモリブロックと前記メモリブロック以外の前記固定ブロックとに関するブロック別設計データが格納された記憶装置と、メモリ容量の指定入力が行われると、前記記憶装置に格納された前記ブロック別設計データを用い、指定された前記メモリ容量に応じた数の前記メモリブロックを前記固定ブロックに接続した機能ブロックの設計データを生成する演算装置と、を有することを特徴とする機能ブロック設計装置が提供される。
【0025】
このような機能ブロック設計装置によれば、メモリ容量の指定入力が行われると、機能ブロックを作成するための制約条件が常に満たされることが予め検証されたブロック別設計データを用いて、指定入力されたメモリ容量の機能ブロックの設計データが生成される。
【0026】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
まず、実施の形態に適用される発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。なお、以下の実施の形態では、メモリを含む機能ブロックとして、CPUマクロのフロアプランを設計する場合の例である。また、以下の例では、メモリブロックをメモリフロアプランブロックと呼ぶ。
【0027】
図1は、実施の形態に適用される発明の概念図である。なお、図1では、横方向をX軸、縦方向をY軸とする。
第1の工程として、CPUマクロ100のフロアプランにおいて、変更の必要がない固定ブロック110を配置する領域と、顧客毎に異なる構成のメモリが配置されるメモリフロアプラン領域120,130(メモリ容量可変)とに分ける。固定ブロック110には、CPUコア回路と周辺回路とが含まれる。一方のメモリフロアプラン領域120は固定ブロック110の上に設けられ、他方のメモリフロアプラン領域130は固定ブロック110の下に設けられている。
【0028】
なお、図1の例では、固定ブロック110の上下にメモリフロアプラン領域120,130が配置されているが、固定ブロック110の左右にメモリフロアプラン領域120,130を配置することも可能である。その場合、以下の説明における縦方向(Y軸方向)と横方向(X軸方向)とが逆になる。
【0029】
第2の工程として、所定の接続規則に従って搭載可能範囲内で任意の数のメモリフロアプランブロック121,122,・・・,131,132,133,・・・を接続したときのCPUマクロ100のアスペクト比(縦横比)が常に所定の範囲内となるように、各ブロックの形状を決定する。
【0030】
なお、図1の例における所定の接続規則では、固定ブロック110とメモリフロアプランブロック121,122,・・・,131,132,133との隣接する辺(長さXFの辺)に交わる方向(たとえば、XFの辺に垂直な縦方向)に沿って、メモリフロアプランブロック121,122,・・・,131,132,133,・・・を上下に連鎖的に配置して行くことが決められている。
【0031】
また、図1の例では、固定ブロック110とメモリフロアプランブロック121,122,・・・,131,132,133,・・・とは、長方形である。従って、各ブロックの縦と横の辺の長さを決めれば、各ブロックの形状が決定する。
【0032】
そこで、CPUマクロ100のアスペクト比(縦横比)であるYS/XSが、CPUマクロ100の仕様で定められた最大・最小メモリ面積において所定の範囲内となるように、固定領域のYFとXFとを決定する。ここで、YSはCPUマクロ100の縦方向の長さであり、XSはCPUマクロ100の横方向の長さである。また、YFは固定ブロック110の縦方向の長さであり、XFは固定ブロック110の横方向の長さである。なお、XFは、CPUマクロ100の縁に設けられる冗長スペースの分だけXSより小さい値である。
【0033】
具体的には、以下の2つの条件を満たすYF/XFが求められる。第1の条件は、最小メモリ構成の場合(YSが最小になる)に、YS/XSがアスペクト比の最小値以上であることである。第2の条件は、最大メモリ構成の場合(YSが最大になる)に、YS/XSがアスペクト比の最大値以下であることである。
【0034】
なお、メモリフロアプラン領域120,130の面積は、最大メモリ容量に基づいて決定される。すなわち、メモリフロアプラン領域120,130は、CPUマクロ100内に実装する最大メモリ容量に応じた数のメモリフロアプランブロックを内包できるだけの面積を有している。なお、最大メモリ容量は、CPUコア回路からアクセス可能なメモリ空間のサイズとすることができる。
【0035】
また、メモリ種別によって、メモリフロアプランブロックのサイズが異なる。たとえば、ROMよりもRAMの方が専有面積が広くなる。この場合、RAMを可能な限り実装したときに、メモリフロアプラン領域120,130の面積が最大となる。なお、メモリ空間のサイズ以下であれば、オーダ受け付け可能な最大メモリ容量を任意に決定してもよい。
【0036】
第3の工程として、第2の工程で決定したXFと、XBがほぼ等しくなるように各メモリフロアプランブロックの一辺の長さを決める。そして、所定の論理設計に従って、所定のデータ記憶容量のメモリブロックとメモリブロック以外の固定ブロックとのそれぞれに関する設計データ(ブロック別設計データ)を作成する。
【0037】
第4の工程として、作成されたブロック別設計データに関し、メモリフロアプランブロック121,122,・・・,131,132,133,・・・の搭載可能範囲内で、CPUマクロ100を作成するための制約条件が常に満たされることを検証する。このとき、制約条件を満たすのが最も厳しくなるメモリ構成について制約条件が満たされることが確認できれば、制約条件が常に満たされるものとみなすことができる。制約条件とは、たとえば、信号の遅延を規定値以内にするというタイミング保証である。タイミング保証を行うことで、予定された動作周波数に同期させて正しく信号が伝わることが検証できる。
【0038】
具体的には、固定ブロック110の上下に配置したメモリフロアプランブロックのデータ出力端子からCPUマクロ100のデータ出力端子までのパスで、遅延値が最大及び最小となるメモリ構成に対してタイミング保証を行う。遅延値が最大となるメモリ構成とは、メモリフロアプラン領域120,130に、最大限のメモリフロアプランブロックを実装したときの構成である。また、遅延値が最小となるメモリ構成とは、メモリフロアプラン領域120,130に、最小限のメモリフロアプランブロックを実装したときの構成である。なお、CPUコア回路の設計上、遅延値が小さいときには問題が生じないことが分かっている場合、遅延値が最小となるメモリ構成に対するタイミング保証作業を省くことも可能である。
【0039】
第5の工程として、検証されたブロック別設計データを用い、任意のメモリ容量に応じた数のメモリフロアプランブロック121,122,・・・,131,132,133,・・・を固定ブロック110に接続したCPUマクロ100の設計データを生成する。
【0040】
具体的には、顧客からオーダされたメモリ構成に応じた数のメモリフロアプランブロック121,122,・・・,131,132,133,・・・を、メモリフロアプラン領域120,130内に配置する。メモリフロアプランブロック121,122,・・・,131,132,133,・・・の配置は、固定ブロック110に隣接する位置から順番に行う。たとえば、メモリフロアプランブロック121→メモリフロアプランブロック131→メモリフロアプランブロック122→メモリフロアプランブロック132→・・・の順で、上下のメモリフロアプラン領域120,130に交互に配置する。
【0041】
このようにメモリフロアプランブロックを、顧客からのオーダに応じた数だけ配置することで、オーダされたメモリ容量のCPUマクロの設計データを作成することができる。
【0042】
以下、オーダに応じたCPUマクロのフロアプラン作成処理について、具体的に説明する。
図2は、設計データの構造例を示している。図2の例では、固定ブロック110の上側のメモリフロアプラン領域120の更に上に、クリップモジュールブロック141が設けられている。同様に、固定ブロック110の下側のメモリフロアプラン領域130の更に下に、クリップモジュールブロック142が設けられている。クリップモジュールブロック141,142は、メモリフロアプラン領域120,130内のメモリフロアプランブロック131,132,・・・における入出力端子のうち、所定の端子へ固定の信号を入力するためのフロアプランブロックである。
【0043】
各フロアプランブロックは、入出力端子11〜15,21〜25,31〜35,41〜45,51〜55,61〜65によって互いに接続されている。入出力端子11〜15は、固定ブロック110とメモリフロアプラン領域120内のメモリフロアプランブロック(図示せず)との間を接続している。入出力端子21〜25は、固定ブロック110とメモリフロアプラン領域130内のメモリフロアプランブロック131との間を接続している。入出力端子31〜35は、メモリフロアプランブロック131とメモリフロアプランブロック132との間を接続している。入出力端子41〜45は、メモリフロアプランブロック131とメモリフロアプラン領域130内の他のメモリフロアプランブロック(図示せず)との間を接続している。入出力端子51〜55は、メモリフロアプラン領域120内のメモリフロアプランブロック(図示せず)とクリップモジュールブロック141との間を接続している。入出力端子61〜65は、メモリフロアプラン領域130内のメモリフロアプランブロック(図示せず)とクリップモジュールブロック142との間を接続している。
【0044】
固定ブロック110は内部にCPUコア回路と周辺回路とを有しており、5種類の信号が入出力される。n1ビットのメモリ出力制御信号は、入出力端子11,21,31,41,51,61を介して、各フロアプランブロック間で受け渡される。n2ビットのメモリ出力データは、入出力端子12,22,32,42,52,62を介して、各フロアプランブロック間で受け渡される。n3ビットのメモリアドレスは、入出力端子13,23,33,43,53,63を介して、各フロアプランブロック間で受け渡される。n4ビットのメモリ入力クロックは、入出力端子14,24,34,44,54,64を介して、各フロアプランブロック間で受け渡される。n5ビットのメモリライトデータは、入出力端子15,25,35,45,55,65を介して、各フロアプランブロック間で受け渡される。なお、n1、n2、n3、n4、n5は、1以上の整数である。
【0045】
図2の例では、メモリフロアプランブロック131はROMのフロアプランブロックであり、メモリフロアプランブロック132はRAMのフロアプランブロックである。
【0046】
ROMのメモリフロアプランブロック131は、ROM回路131a〜131c、AND(論理積)回路131d〜131fおよびOR(論理和)回路131g〜131iで構成されている。ROM回路131a〜131cには、予めデータを記憶させておくことができ、そのデータを読み出すことができる。
【0047】
ROM回路131a〜131cには、入出力端子23,24を介してメモリアドレスとメモリ入力クロックとが入力される。ROM回路131aの出力は、AND回路131dに入力される。ROM回路131bの出力は、AND回路131eに入力される。ROM回路131cの出力は、AND回路131fに入力される。さらに、AND回路131d〜131fには、入出力端子21を介してメモリ出力制御信号が入力される。
【0048】
AND回路131dの出力は、OR回路131gに入力される。AND回路131eとAND回路131fとの出力は、OR回路131iに入力される。OR回路131iの出力は、OR回路131gに入力される。OR回路131gの出力は、OR回路131hに入力される。さらに、OR回路131hには、入出力端子32を介してメモリ出力データが入力される。OR回路131hの出力は、入出力端子22を介して、メモリ出力データとして固定ブロック110に供給される。入出力端子25から入力されたメモリライトデータは、入出力端子35を介してRAMのメモリフロアプランブロック132に対して出力される。
【0049】
RAMのメモリフロアプランブロック132は、RAM回路132a,132b,AND回路132c,132d、およびOR回路132eで構成されている。RAM回路132a,132bには、データを随時書き込むことが出来ると共に、書き込んだデータを読み出すことができる。
【0050】
RAM回路132a,132bには、入出力端子33,34,35を介してメモリアドレス、メモリ入力クロックおよびメモリライトデータが入力される。RAM回路132aの出力は、AND回路132cに入力される。RAM回路132bの出力は、AND回路132dに入力される。さらに、AND回路132c,132dには、入出力端子31を介してメモリ出力制御信号が入力される。
【0051】
AND回路132cとAND回路132dとの出力は、OR回路132eに入力される。さらに、OR回路132eには、入出力端子42を介してメモリ出力データが入力される。OR回路132eの出力は、入出力端子32を介して、メモリ出力データとしてメモリフロアプランブロック131に供給される。
【0052】
なお、メモリフロアプラン領域120内に設けられるメモリフロアプランブロックの構成は、メモリフロアプラン領域130内のメモリフロアプランブロック131,132を180度回転させた構成となる。
【0053】
クリップモジュールブロック141では、グランドレベル(ローレベル)の信号が、バッファ回路141aを介して入出力端子52に供給されている。他の入出力端子51,53,54,55からクリップモジュールブロック141に供給される信号は、開放された状態である。
【0054】
クリップモジュールブロック142では、グランドレベルの信号が、バッファ回路142aを介して入出力端子62に供給されている。他の入出力端子61,63,64,65からクリップモジュールブロック142に供給される信号は、開放された状態である。
【0055】
このような構成のフロアプランブロックであれば、固定ブロック110から出力されるメモリ出力制御信号、メモリアドレス、メモリ入力クロック、及びメモリライトデータが各メモリフロアプランブロック131,132,・・・に供給される。また、各メモリフロアプランブロック131,132,・・・から出力されたメモリ出力データが固定ブロック110に供給される。
【0056】
たとえば、ROM回路131aからデータを読み出す場合、固定ブロック110から、ROM回路131aに割り当てられたメモリアドレスが出力される。出力されたメモリアドレスは、入出力端子23を介してメモリフロアプランブロック131に入力される。各ROM回路131a,131b,131cは、固定ブロック110から供給されるメモリ入力クロックに同期して、メモリアドレスを取り込む。
【0057】
すると、ROM回路131aが、入力されたメモリアドレスに対応する記憶領域からデータを取りだし、AND回路131dに出力する。AND回路131dは、メモリ出力制御信号がアサートされたときに、入力されたデータを出力する。AND回路131dから出力されたデータは、OR回路131g、OR回路131hおよび入出力端子22を経由して、固定ブロック110に渡される。
【0058】
このようにして、固定ブロック110内のCPUコア回路から、メモリフロアプランブロック内のデータを読み取ることができる。
また、RAM回路132aへデータを書き込む場合、固定ブロック110から、ROM回路132aに割り当てられたメモリアドレスが出力されるとともに、メモリライトデータが出力される。出力されたメモリアドレスとメモリライトデータとは、それぞれ入出力端子33と入出力端子35とを介してメモリフロアプランブロック132に入力される。各RAM回路132a,132bは、固定ブロック110から供給されるメモリ入力クロックに同期して、メモリアドレスを取り込む。すると、RAM回路132aが、入力されたメモリアドレスに対応する記憶領域へデータを書き込む。
【0059】
このようにして、固定ブロック110内のCPUコア回路から出力されるデータを、メモリフロアプランブロック内に書き込むことができる。
なお、図2に示す設計データでは、クリップモジュールブロック141,142では、入力信号クリップとして、固定ブロック110に対して供給する信号の入力端を、ローレベル(グランドレベル)に固定している。これにより、メモリフロアプランブロックへの入力信号が不定になることが防止される。
【0060】
しかも、本実施の形態では、メモリフロアプランブロックの上下に入出力端子が設けられ、上側の入出力端子と下側の入出力端子とが1対1で対応付けられている。そして、対応する入出力端子には同じ種類の信号が入出力されるように構成されている。これにより、上下方向にメモリフロアプランブロック同士を接続した場合に、同じ種類の信号用の入出力端子の位置が合致する。その結果、任意の段数のメモリフロアプランブロックを連鎖的に接続することができる。
【0061】
さらに、ROMのメモリフロアプランブロックには、RAMメモリライトデータを通過させるための信号線が設けられている。そのため、ROMのメモリフロアプランブロックとRAMのメモリフロアプランブロックとを混在させ、任意の配列で接続することができる。
【0062】
ところで、各フロアプランブロックに関する設計データは、たとえば、フロアプランデータは、LEF(Library Exchange Format)やDEF(Design Exchange Format)のデータ形式、マスクパターンデータはGDSのデータ形式で作成することができる。
【0063】
また、メモリフロアプランブロックは、顧客からのオーダに応じて任意のメモリ容量分だけ設けることができる。1つのメモリフロアプランブロック当りのメモリ容量(bit、word、column)及び種類(ROM、RAM等)も任意に設定できる。
【0064】
次に、オーダに応じたCPUマクロのフロアプラン作成処理の手順を具体的に説明する。オーダに応じたCPUマクロのフロアプラン作成処理は、大別して、顧客のオーダに依存せずに予め実行される設計データ作成処理(前述の第1の工程から第4の工程)と、オーダに応じたフロアプラン作成処理(前述の第5の工程)とに分けることができる。
【0065】
図3は、設計データ作成処理の作業手順を示す図である。以下、図3に示す処理を、ステップ番号に沿って説明する。
[ステップS1]フロアプランブロックの論理設計が行われる。たとえば、設計担当者がコンピュータに実装されたソフトウェアを利用して、フロアプランブロックの論理設計を行い、論理設計の内容をコンピュータ内に記憶させる。
【0066】
[ステップS2]固定ブロックのフロアプランやレイアウトを作成する。具体的には、メモリフロアプラン領域の面積が最大になるとき(メモリ最大)、およびメモリフロアプラン領域の面積が最小になるとき(メモリ最小)のCPUマクロのアスペクト比が所定範囲内になるように、固定ブロックの横幅(X軸方向の長さ)を決定する。そして、決定された横幅の領域内にCPUコア回路や周辺回路が内包できるように、回路の配線等の設計を行う。このとき、固定ブロックのフロアプランやレイアウトにおける物理検証を行い、配線幅等の所定のルールを満足したフロアプランやレイアウトを作成する。
【0067】
[ステップS3]メモリフロアプランブロックのフロアプランやレイアウトを作成する。このとき、メモリフロアプランブロックのフロアプランやレイアウトにおける物理検証を行い、配線幅等の所定のルールを満足したフロアプランやレイアウトを作成する。なお、メモリフロアプランブロックは、記憶容量や種別毎に複数作成しておくことができる。
【0068】
[ステップS4]クリップモジュールブロックのフロアプランやレイアウトを作成する。このとき、クリップモジュールブロックのフロアプランやレイアウトにおける物理検証を行い、配線幅等の所定のルールを満足したフロアプランやレイアウトを作成する。
【0069】
[ステップS5]メモリ最大時のタイミング検証を行う。
[ステップS6]メモリ最大時のタイミング検証の結果を判定し、問題がなければステップS9に処理を進める。問題が発生したら、ステップS2の処理に戻り、フロアプラン・レイアウト作成をやり直す。
【0070】
[ステップS7]メモリ最小時のタイミング検証を行う。
[ステップS8]メモリ最小時のタイミング検証の結果を判定し、問題がなければステップS9に処理を進める。問題が発生したら、ステップS2の処理に戻り、フロアプラン・レイアウト作成をやり直す。
【0071】
[ステップS9]フロアプランブロック毎の設計データを生成する。
これにより、フロアプランブロック毎の設計データが生成される。
ここで、ステップS2で行われる固定ブロックの形状(横幅XFと縦幅YF)の決定方法について詳しく説明する。
【0072】
固定ブロックの形状は、最終的に実装可能なメモリ構成のアスペクト比に依存する。すなわち、どのようなメモリ構成となってもアスペクト比が所定範囲に収まるように、固定ブロックの形状が決定される。具体的には、アスペクト比が最大になるメモリ構成と、アスペクト比が最小になるメモリ構成とについて、そのアスペクト比が所定範囲内に収まるようにする。
【0073】
図4は、固定ブロック形状決定に用いる情報を示す図である。図4では、横方向にX軸、縦方向にY軸を採っている。CPUマクロ100の枠の縦幅Ysと横幅Xsとによりアスペクト比(Ys/Xs)が表される。
【0074】
CPUマクロ100の枠には、冗長幅αの分だけ冗長部分が設けられている。従って、CPUマクロ100の枠の横幅Xsの値は、固定ブロック110の横幅X Fから冗長幅αの分だけ大きい値である。また、メモリフロアプランブロック121,122,・・・12N,131,132,・・・13M、クリップモジュールブロック141,142の横幅XBは、固定ブロック110の横幅X Fとほぼ同じである。クリップモジュールブロック141,142の縦幅はYCである。
【0075】
CPUマクロ100の枠の縦幅Ysについては、メモリの搭載量によって決まる。図4の例では、上側のメモリフロアプラン領域120にN個(Nは自然数)のメモリフロアプランブロック121,122,・・・12Nが搭載されており、下側のメモリフロアプラン領域130にM個(Mは自然数)のメモリフロアプランブロック,131,132,・・・13Mが搭載されている。
【0076】
このような場合、以下のようにして、固定ブロック110の形状(横幅XFと縦幅YF)を決定する。
【0077】
【数1】
c≧(aYA+YF+2Yc+2α)/(XF+2α)・・・(1)
【0078】
【数2】
d≧(bYB+YF+2Yc+2α)/(XF+2α)・・・(2)
ここで、cは、アスペクト比の最大値である。dは、アスペクト比の最小値である。αは、冗長スペースの幅であり、0以上の任意の値である。YAは、CPUマクロ100の仕様においてメモリの容量が最大時の1メモリフロアプランブロックのY方向の長さである。YBは、CPUマクロ100の仕様においてメモリの容量が最小時の1メモリフロアプランブロックのY方向の長さである。aは、CPUマクロ100の仕様において、メモリの容量が最大時のメモリフロアプランブロック数である。bは、CPUマクロ100の仕様においてメモリの容量が最小時のメモリフロアプランブロック数である。
【0079】
以上の式(1)、(2)を満たすXF、YFの組み合わせの中から適当な形状が決定される。たとえば、アスペクト比が最も1に近いものを採用する。
なお、図1に示したようなクリップモジュールブロックの無い構成の場合、式(1)、式(2)内の「2YC」の項は不要である。
【0080】
固定ブロックの横幅と縦幅が決まれば、他のフロアプランブロックの形状も決まる。そして、その形状内で、各フロアプランブロック内部のフロアプランやレイアウトが作成され、フロアプランブロック毎の設計データとして保存される。
【0081】
その後、フロアプランブロック毎の設計データに基づいて、顧客からのオーダに応じたメモリ構成のCPUマクロの設計データが生成される。
図5は、顧客からのオーダに応じたフロアプラン作成処理の手順を示す図である。以下、図5に示す処理をステップ番号に沿って説明する。
【0082】
[ステップS11]顧客仕様が決定する。本実施の形態では、顧客からのオーダによってメモリ構成が決定される。
[ステップS12]顧客仕様に基づいてフロアプランのレイアウトを決定する。具体的には、メモリ構成に応じたメモリフロアプランブロックを、固定ブロックの上下に追加する。この際、データ入出力の速度が遅い種類のメモリを、固定ブロックに近い位置に配置する。たとえば、RAMよりもROMの方が遅い場合には、まず固定ブロック110に隣接する位置にROMのメモリフロアプランブロックを配置する。その後、ROMのメモリフロアプランブロックに隣接させて、RAMのメモリフロアプランブロックが配置される。
【0083】
[ステップS13]タイミングライブラリが作成される。タイミングライブラリには、構成要素(たとえば、フリップ・フロップ)間の信号の伝搬(信号の遅延等)に関する情報が登録されている。
【0084】
[ステップS14]作成されたタイミングライブラリが顧客に渡される。
[ステップS15]フロアプランデータやマスクパターンデータが作成され、顧客に渡される。
【0085】
このようにして、顧客のオーダ毎のCPUマクロの設計データが作成され、顧客に渡される。なお、フロアプランブロック毎の設計データを作成した際に、物理検証を行っていると共に、最も厳しい条件下(信号の遅延が最も発生しやすい条件下)でのタイミング検証を行っているため、顧客からのオーダを受けた際にはタイミング検証を行う必要はない。その結果、フロアプランやレイアウト作成のやり直しが発生せず、顧客のオーダに応じたCPUマクロの設計データを短期間で作成することが可能となる。
【0086】
ところで、CPUマクロの設計データの供給方法として、図5に示した処理をコンピュータで実行させ、設計データを自動生成することもできる。ここで、設計データを自動生成する機能を、CPUマクロジェネレータと呼ぶこととする。
【0087】
たとえば、フロアプランブロック毎に各設計データ(Netlist、DEF、LEF、GDS等)を用意し、ストレージデバイスに格納しておく。顧客がCPUマクロジェネレータに対してパラメータ(メモリ構成、テクノロジコード)を入力すると、CPUマクロジェネレータが自動的に必要なパーツを集めて所望の設計データを出力する。この際、さらに上記のパラメータ入力により、作成されたCPUマクロのスペックを、CPUマクロジェネレータに計算させることもできる。
【0088】
図6は、設計データ自動作成例を示す図である。図6に示すように、ストレージデバイス220には、固定ブロック221、メモリフロアプランブロック222、クリップモジュールブロック223の設計データが予め格納されている。
【0089】
そして、CPUマクロジェネレータ210にパラメータが入力される。パラメータは、たとえば、メモリ構成、テクノロジコード等である。なお、入力可能な複数のパラメータを予め用意しておき、その中からユーザにパラメータを選択させることもできる。
【0090】
すると、CPUマクロジェネレータ210において、フロアプランブロック毎に作成されている設計データ(LEF、DEF、GDS等)から必要なデータを集め、CPUマクロ全体としての設計データを生成する。たとえば、メモリ規模が少なければ(メモリ規模小)、2つのメモリフロアプランブロック121,131が含まれるCPUマクロ100aの様な構成を示す設計データが生成される。メモリ規模がCPUマクロ100aより大きければ(メモリ規模中)、5つのメモリフロアプランブロック121,122,131,132,133が含まれるCPUマクロ100bの様な構成を示す設計データが生成される。メモリ規模がさらに大きければ(メモリ規模大)、6つのメモリフロアプランブロック121a,122,123,131a,132a,133が含まれるCPUマクロ100cの様な構成を示す設計データが生成される。なお、メモリフロアプランブロック121a,131a,132aは、メモリフロアプランブロック121,131,132よりも記憶容量が大きい。
【0091】
また、CPUマクロジェネレータ210は、ユーザからのパラメータとしてメモリ構成・容量を入力または選択を受け付け、予め準備しているメモリフロアプランブロック単位の設計データ(たとえば、サイズや消費電力)から必要なデータを収集し、CPUマクロ100の設計データ(たとえば、CPUマクロ100全体のサイズや消費電力等のスペック情報)を出力する。これにより、スペック見積り・データ提供の作業工数が短縮化できる。
【0092】
図7は、CPUマクロジェネレータの機能を実現するためのコンピュータのハードウェア構成例を示す図である。コンピュータ200は、CPU201によって装置全体が制御されている。CPU201には、バス207を介してRAM202、ハードディスクドライブ(HDD:Hard Disk Drive)203、グラフィック処理装置204、入力インタフェース205、および通信インタフェース206が接続されている。
【0093】
RAM202には、CPU201に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM202には、CPU201による処理に必要な各種データが格納される。HDD203には、OSやアプリケーションプログラムが格納されるとともに、各種フロアプランブロックの設計データが格納される。
【0094】
グラフィック処理装置204には、モニタ301が接続されている。グラフィック処理装置204は、CPU201からの命令に従って、画像をモニタ301の画面に表示させる。入力インタフェース205には、キーボード302とマウス303とが接続されている。入力インタフェース205は、キーボード302やマウス303から送られてくる信号を、バス207を介してCPU201に送信する。
【0095】
通信インタフェース206は、ネットワーク310に接続されている。通信インタフェース206は、ネットワーク310を介して、他のコンピュータとの間でデータの送受信を行う。
【0096】
以上のようなハードウェア構成によって、本実施の形態のCPUマクロジェネレータを実現することができる。
以上のように、本発明の実施の形態によれば、規則性を持つフロアプランの作成方法を用い、CPUマクロの仕様において最も動作限界に近いメモリ構成での動作保証を行うことができる。また、本実施の形態に係るフロアプランの作成方法を利用して設計データを供給し、マクロの見積りを行うことにより、CPUマクロの開発期間を短縮化できる。
【0097】
なお、上記の実施の形態では、入力信号クリップとしてローレベルの信号に固定しているが、ハイレベルの信号に固定することもできる。
また、上記のCPUマクロジェネレータの処理機能を実現するために、CPUマクロジェネレータが有すべき機能の処理内容を記述した機能ブロック設計プログラムが提供される。その機能ブロック設計プログラムをコンピュータで実行することにより、CPUマクロジェネレータの処理機能がコンピュータ上で実現される。処理内容を記述した機能ブロック設計プログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(DigitalVersatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto−Optical disc)などがある。
【0098】
機能ブロック設計プログラムを流通させる場合には、たとえば、その機能ブロック設計プログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、機能ブロック設計プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにその機能ブロック設計プログラムを転送することもできる。
【0099】
機能ブロック設計プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録された機能ブロック設計プログラムもしくはサーバコンピュータから転送された機能ブロック設計プログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置から機能ブロック設計プログラムを読み取り、機能ブロック設計プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接機能ブロック設計プログラムを読み取り、その機能ブロック設計プログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取った機能ブロック設計プログラムに従った処理を実行することもできる。
【0100】
(付記1) メモリを含む機能ブロックを設計するための機能ブロック設計方法において、
所定の論理設計に従って、所定のデータ記憶容量のメモリブロックと前記メモリブロック以外の固定ブロックとのそれぞれに関するブロック別設計データを作成し、
作成された前記ブロック別設計データに関し、前記メモリブロックの搭載可能範囲内で、前記機能ブロックを作成するための制約条件が常に満たされることを検証し、
検証された前記ブロック別設計データを用い、任意のメモリ容量に応じた数の前記メモリブロックを前記固定ブロックに接続した機能ブロックの設計データを生成する、
ことを特徴とする機能ブロック設計方法。
【0101】
(付記2) 前記制約条件は、信号の遅延に関する条件であることを特徴とする付記1記載の機能ブロック設計方法。
(付記3) 前記制約条件の検証では、前記制約条件を満たすのが最も厳しくなるメモリ構成について前記制約条件が満たされることが確認できれば、前記制約条件が常に満たされるものとみなすことを特徴とする付記1記載の機能ブロック設計方法。
【0102】
(付記4) 前記制約条件の検証では、前記メモリブロックを最大限搭載したときに前記制約条件が満たされるか否かを確認することを特徴とする付記3記載の機能ブロック設計方法。
【0103】
(付記5) 前記ブロック別設計データを作成する際には、前記メモリブロックと前記固定ブロックとの形状を、所定の接続規則に従って搭載可能範囲内で任意の数の前記メモリブロックを接続したときの前記機能ブロックの縦横比が常に所定の範囲内となる形状とし、
前記機能ブロックの前記設計データを生成する際には、前記所定の接続規則に従って前記メモリブロックを前記固定ブロックに接続することを特徴とする付記1記載の機能ブロック設計方法。
【0104】
(付記6) 前記所定の接続規則では、前記固定ブロックに隣接する位置から前記メモリブロックを連鎖的に接続することが決められていることを特徴とする付記5記載の機能ブロック設計方法。
【0105】
(付記7) 前記所定の接続規則では、前記固定ブロックの対向する2つの辺それぞれに隣接する位置から、前記メモリブロックを連鎖的に接続することが決められていることを特徴とする付記6記載の機能ブロック設計方法。
【0106】
(付記8) 前記所定の接続規則では、前記固定ブロックと前記メモリブロックとの隣接する辺に交わる方向に沿って、前記メモリブロックを連鎖的に接続することが決められていることを特徴とする付記6記載の機能ブロック設計方法。
【0107】
(付記9) 前記固定ブロックの形状を決定する際には、前記固定ブロックと前記メモリブロックとを接続する辺の長さを決定することを特徴とする付記5記載の機能ブロック設計方法。
【0108】
(付記10) 前記機能ブロックの前記設計データを生成する際には、終端の前記メモリブロックの入出力端子へ所定のレベルの信号を供給するクリップモジュールブロックを、前記終端の前記メモリブロックに接続することを特徴とする付記5記載の機能ブロック設計方法。
【0109】
(付記11) 前記ブロック別設計データを作成する際には、前記メモリブロックの対向する2つの辺それぞれに設けられる入出力端子を、前記2つの辺に隣接する他の一辺から同じ距離の位置に設けること特徴とする付記1記載の機能ブロック設計方法。
【0110】
(付記12) 前記メモリブロックに関して、対向する前記2つの辺それぞれに対し、前記隣接する他の一辺から同じ距離に設けられた入出力端子に同種の信号が入出力されることを前提とした内部回路を設計することを特徴とする付記11記載の機能ブロック設計方法。
【0111】
(付記13) 前記メモリブロックのブロック別設計データは、メモリ種別毎に複数生成することを特徴とする付記1記載の機能ブロック設計方法。
(付記14) 読み取り専用メモリのブロック別設計データには、書き込み用の信号を通過させるための配線を含めることを特徴とする付記13記載の機能ブロック設計方法。
【0112】
(付記15) メモリを含む機能ブロックをコンピュータにより自動設計するための機能ブロック設計方法において、
メモリブロックの搭載可能範囲内で、前記機能ブロックを作成するための制約条件が常に満たされることが検証された、前記メモリブロックと前記メモリブロック以外の前記固定ブロックとに関するブロック別設計データを予め記憶装置に格納し、
メモリ容量の指定入力が行われると、前記記憶装置に格納された前記ブロック別設計データを用い、指定された前記メモリ容量に応じた数の前記メモリブロックを前記固定ブロックに接続した機能ブロックの設計データを生成する、
ことを特徴とする機能ブロック設計方法。
【0113】
(付記16) メモリを含む機能ブロックを自動設計する機能ブロック設計装置において、
メモリブロックの搭載可能範囲内で前記機能ブロックを作成するための制約条件が常に満たされることが検証された、前記メモリブロックと前記メモリブロック以外の前記固定ブロックとに関するブロック別設計データが格納された記憶装置と、
メモリ容量の指定入力が行われると、前記記憶装置に格納された前記ブロック別設計データを用い、指定された前記メモリ容量に応じた数の前記メモリブロックを前記固定ブロックに接続した機能ブロックの設計データを生成する演算装置と、
を有することを特徴とする機能ブロック設計装置。
【0114】
(付記17) メモリを含む機能ブロックを自動設計するための機能ブロック設計プログラムにおいて、
コンピュータに、
メモリブロックの搭載可能範囲内で、前記機能ブロックを作成するための制約条件が常に満たされることが検証された、前記メモリブロックと前記メモリブロック以外の前記固定ブロックとに関するブロック別設計データを予め記憶装置に格納し、
メモリ容量の指定入力が行われると、前記記憶装置に格納された前記ブロック別設計データを用い、指定された前記メモリ容量に応じた数の前記メモリブロックを前記固定ブロックに接続した機能ブロックの設計データを生成する、
処理を実行させることを特徴とする機能ブロック設計プログラム。
【0115】
(付記18) メモリを含む機能ブロックを自動設計するための機能ブロック設計プログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記コンピュータに、
メモリブロックの搭載可能範囲内で、前記機能ブロックを作成するための制約条件が常に満たされることが検証された、前記メモリブロックと前記メモリブロック以外の前記固定ブロックとに関するブロック別設計データを予め記憶装置に格納し、
メモリ容量の指定入力が行われると、前記記憶装置に格納された前記ブロック別設計データを用い、指定された前記メモリ容量に応じた数の前記メモリブロックを前記固定ブロックに接続した機能ブロックの設計データを生成する、
処理を実行させることを特徴とする機能ブロック設計プログラムを記録したコンピュータ読み取り可能な記録媒体。
【0116】
【発明の効果】
以上説明したように本発明では、メモリブロックの搭載可能範囲内で、機能ブロックを作成するための制約条件が常に満たされることが予め検証されたブロック別設計データを用いて、任意のメモリ容量に応じた数のメモリブロックを固定ブロックに接続した機能ブロックの設計データを生成したため、生成された設計データは常に制約条件を満たす。その結果、メモリ容量が異なる機能ブロック毎に制約条件の検証を行う必要が無くなり、機能ブロックの設計期間が短縮される。
【図面の簡単な説明】
【図1】実施の形態に適用される発明の概念図である。
【図2】設計データの構造例を示している。
【図3】設計データ作成処理の作業手順を示す図である。
【図4】固定ブロック形状決定に用いる情報を示す図である。
【図5】顧客からのオーダに応じたフロアプラン作成処理の手順を示す図である。
【図6】設計データ自動作成例を示す図である。
【図7】CPUマクロジェネレータの機能を実現するためのコンピュータのハードウェア構成例を示す図である。
【図8】従来のCPUマクロのフロアプランを示す図である。図8(A)は、フロアプランの第1の例を示しており、図8(B)は、フロアプランの第2の例を示しており、図8(C)は、フロアプランの第3の例を示している。
【図9】CPUマクロの設計作業の手順を示す図である。
【符号の説明】
100 CPUマクロ
110 固定ブロック
120,130 メモリフロアプラン領域
121,122,131,132,133 メモリフロアプランブロック
【発明の属する技術分野】
本発明はメモリを含む機能ブロックを設計するための機能ブロック設計方法およびその方法の処理を実行する機能ブロック設計装置に関し、特にオーダに応じた任意の容量のメモリを実装した機能ブロックを設計するための機能ブロック設計方法およびその方法の処理を実行する機能ブロック設計装置に関する。
【0002】
【従来の技術】
現在、様々な電子機器が、LSI(Large Scale Integration)化された制御装置(システムLSI)によって制御されている。近年、このような電子機器の開発期間の短縮による迅速な市場投入の要求が高まっている。そこで、電子機器に実装するシステムLSIについても、高機能で最適なものを短期間で開発するよう求められてきている。
【0003】
システムLSIを短期間で開発する手法として、システムLSIの機能毎に回路設計および動作実証を行う方法がある。機能毎の回路ブロック(機能ブロック)をマクロと呼び、電子機器の制御に必要なマクロを組み合わせることで、その電子機器に必要なシステムLSIを開発する。
【0004】
システムLSIを構成するマクロのうち、CPU(Central Processing Unit)のコア回路を含むマクロをCPUマクロと呼ぶ。なお、DSP(Digital Signal Processor)を含むマクロについても、CPUマクロの概念に含まれるものとする。
【0005】
CPUマクロには、CPUコア回路以外に周辺回路やメモリ回路などが含まれる。CPUマクロにメモリ回路を内蔵しておくことで、CPUコア回路で実行させる基本的な処理(たとえば、処理の高速化が求められる処理)の動作検証をCPUコア回路内で行うことができる。
【0006】
ところで、CPUマクロは、最終製品である電子機器に合わせてメモリ構成(たとえば、ROM(Read Only Memory)とRAM(Random Access Memory)とのそれぞれの容量)が決定される。したがって、システムLSIが実装される製品毎に、CPUマクロのフロアプランを決定する必要がある。システムLSIの開発期間の短期化を促進させるためにも、CPUマクロのフロアプランの設計期間の短期化が望まれている。
【0007】
図8は、従来のCPUマクロのフロアプランを示す図である。図8(A)は、フロアプランの第1の例を示しており、図8(B)は、フロアプランの第2の例を示しており、図8(C)は、フロアプランの第3の例を示している。
【0008】
図8に示すようにCPUマクロ開発においては、製品毎に要求メモリサイズ/メモリ構成が異なる。そのため、製品毎に、CPUコア、周辺回路、メモリ回路の配置が決定される。フロアプランでは、CPUマクロ全体のアスペクト比(縦横比)が所定の範囲内になるように設計される。アスペクト比が正方形に近いほど、LSIチップ全体を開発する際に、チップの設計が容易となるからである。
【0009】
たとえば、図8(A)のフロアプランでは、CPUマクロ910内に、CPUコア回路911、周辺回路912、複数のメモリ回路913が設けられている。CPUマクロ910は長方形をしており、横の辺の長さがX1、縦の辺の長さがY1である。アスペクト比(縦横比)は、Y1/X1である。このCPUマクロ910は、他のフロアプランの例に比べてメモリ容量が少ない。
【0010】
図8(B)のフロアプランでは、CPUマクロ920内に、CPUコア回路921、周辺回路922、複数のメモリ回路923が設けられている。CPUマクロ920の大きさは、横の辺の長さがX2、縦の辺の長さがY2である。アスペクト比は、Y2/X2である。このCPUマクロ920は、第1の例に示すフロアプランよりはメモリ容量が多いが、第3の例に示すフロアプランよりはメモリ容量が少ない。
【0011】
図8(C)のフロアプランでは、CPUマクロ930内に、CPUコア回路931、周辺回路932、複数のメモリ回路933が設けられている。CPUマクロ930の大きさは、横の辺の長さがX3、縦の辺の長さがY3である。アスペクト比は、Y3/X3である。このCPUマクロ930は、他のフロアプランよりメモリ容量が多い。
【0012】
このように、オーダ毎のCPUマクロでは、CPUコア回路、周辺回路の論理構造が変わらない場合でも、メモリ構成/メモリ容量は異なる。そのため、アスペクト比が一定範囲内に収まるよう各回路の配置を決定し、CPUマクロ毎にフロアプランを行っていた。すなわち、過去に設計したCPUマクロの構成に対してメモリ容量を変更するだけであっても、CPUコア回路、周辺回路、複数のメモリ回路それぞれを配置し直す必要があった。
【0013】
新規にフロアプランが行われた場合、一定の動作周波数を保証するための工程を実行しなければならない。
図9は、CPUマクロの設計作業の手順を示す図である。まず、顧客仕様が決定する(ステップS91)と、その顧客仕様に基づいて論理設計を行う(ステップS92)。論理設計終了後、フロアプランのレイアウトを決定する(ステップS93)。すなわち、アスペクト比が所定範囲内になるように、CPUコア回路、周辺回路、複数のメモリ回路を配置する。
【0014】
フロアプランレイアウトが終わると、タイミング検証手順(ステップS94〜S98)と、物理検証手順(ステップS99〜S101)とに作業が分かれる。タイミング検証手順(ステップS94〜S98)では、まずRC抽出処理が行われる(ステップS94)。これは、回路内の複数の区間における抵抗(R)と静電容量(C)とに基づく遅延計算を行う。その後、抽出したRCに基づいてタイミング検証が行われる(ステップS95)。すなわち、論理設計通りに信号が正しいタイミングで伝わるか否かが検証される。そして検証結果が判定される(ステップS96)。
【0015】
検証結果がNGの場合、論理設計(ステップS92)、またはフロアプランレイアウト(ステップS93)まで戻って、作業をやり直す。一般には、初期の段階のNGの判定の場合、フロアプランやレイアウト(ステップS93)をやり直す。フロアプランやレイアウト(ステップS93)を何度修正してもタイミング検証がNGになってしまう場合、論理設計(ステップS92)からやり直すことになる。
【0016】
検証結果がOKであれば、タイミングライブラリが作成される(ステップS97)。タイミングライブラリには、構成要素(たとえば、フリップ・フロップ)間の信号の伝搬(信号の遅延等)に関する情報が登録されている。
【0017】
物理検証手順では、まず物理検証が行われる(ステップS99)。物理検証は、たとえば、配線間隔等の物理的な配置が、所定のルールで示される条件を満たしているか否かが検証される。そして検証結果が判定される(ステップS100)。
【0018】
物理検証の結果がNGであれば、ステップS93のレイアウト決定処理をやり直す。
物理検証の結果がOKであれば、フロアプランデータやマスクパターンデータが作成される(ステップS101)。フロアプランデータは、CPUマクロを他の回路に接続するために設けられる端子の位置などのデータである。マスクパターンデータは、CPUマクロのマスクパターンを示すデータである。そして、生成されたタイミングライブラリ、フロアプランデータ、マスクパターンデータが顧客に渡される。
【0019】
このようにして、一定の動作周波数による動作が保証されたCPUマクロの構造が決定される。
【0020】
【発明が解決しようとする課題】
しかし、新規にフロアプランを行うと動作周波数を保証するために、タイミング検証や物理検証が行われ、これらの検証にパスするまで、フロアプランやレイアウトプランなどの作成作業が繰り返し発生してしまう。フロアプランやレイアウトプランが変更されれば、タイミング検証や物理検証もやり直しとなる。その結果、CPUマクロ開発に時間がかかっていた。
【0021】
本発明はこのような点に鑑みてなされたものであり、オーダに応じた機能ブロックの開発期間を短縮することができる機能ブロック設計方法および機能ブロック設計装置を提供することを目的とする。
【0022】
【課題を解決するための手段】
本発明では上記課題を解決するために、メモリを含む機能ブロックを設計するための機能ブロック設計方法において、所定の論理設計に従って、所定のデータ記憶容量のメモリブロックと前記メモリブロック以外の固定ブロックとのそれぞれに関するブロック別設計データを作成し、作成された前記ブロック別設計データに関し、前記メモリブロックの搭載可能範囲内で、前記機能ブロックを作成するための制約条件が常に満たされることを検証し、検証された前記ブロック別設計データを用い、任意のメモリ容量に応じた数の前記メモリブロックを前記固定ブロックに接続した機能ブロックの設計データを生成する、ことを特徴とする機能ブロック設計方法が提供される。
【0023】
このような機能ブロック設計方法によれば、メモリブロックの搭載可能範囲内で、機能ブロックを作成するための制約条件が常に満たされることが予め検証されるため、任意のメモリ容量に応じた数のメモリブロックを固定ブロックに接続することで生成された機能ブロックの設計データは、常に制約条件を満たす。
【0024】
また、本発明では上記課題を解決するために、メモリを含む機能ブロックを自動設計する機能ブロック設計装置において、メモリブロックの搭載可能範囲内で前記機能ブロックを作成するための制約条件が常に満たされることが検証された、前記メモリブロックと前記メモリブロック以外の前記固定ブロックとに関するブロック別設計データが格納された記憶装置と、メモリ容量の指定入力が行われると、前記記憶装置に格納された前記ブロック別設計データを用い、指定された前記メモリ容量に応じた数の前記メモリブロックを前記固定ブロックに接続した機能ブロックの設計データを生成する演算装置と、を有することを特徴とする機能ブロック設計装置が提供される。
【0025】
このような機能ブロック設計装置によれば、メモリ容量の指定入力が行われると、機能ブロックを作成するための制約条件が常に満たされることが予め検証されたブロック別設計データを用いて、指定入力されたメモリ容量の機能ブロックの設計データが生成される。
【0026】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
まず、実施の形態に適用される発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。なお、以下の実施の形態では、メモリを含む機能ブロックとして、CPUマクロのフロアプランを設計する場合の例である。また、以下の例では、メモリブロックをメモリフロアプランブロックと呼ぶ。
【0027】
図1は、実施の形態に適用される発明の概念図である。なお、図1では、横方向をX軸、縦方向をY軸とする。
第1の工程として、CPUマクロ100のフロアプランにおいて、変更の必要がない固定ブロック110を配置する領域と、顧客毎に異なる構成のメモリが配置されるメモリフロアプラン領域120,130(メモリ容量可変)とに分ける。固定ブロック110には、CPUコア回路と周辺回路とが含まれる。一方のメモリフロアプラン領域120は固定ブロック110の上に設けられ、他方のメモリフロアプラン領域130は固定ブロック110の下に設けられている。
【0028】
なお、図1の例では、固定ブロック110の上下にメモリフロアプラン領域120,130が配置されているが、固定ブロック110の左右にメモリフロアプラン領域120,130を配置することも可能である。その場合、以下の説明における縦方向(Y軸方向)と横方向(X軸方向)とが逆になる。
【0029】
第2の工程として、所定の接続規則に従って搭載可能範囲内で任意の数のメモリフロアプランブロック121,122,・・・,131,132,133,・・・を接続したときのCPUマクロ100のアスペクト比(縦横比)が常に所定の範囲内となるように、各ブロックの形状を決定する。
【0030】
なお、図1の例における所定の接続規則では、固定ブロック110とメモリフロアプランブロック121,122,・・・,131,132,133との隣接する辺(長さXFの辺)に交わる方向(たとえば、XFの辺に垂直な縦方向)に沿って、メモリフロアプランブロック121,122,・・・,131,132,133,・・・を上下に連鎖的に配置して行くことが決められている。
【0031】
また、図1の例では、固定ブロック110とメモリフロアプランブロック121,122,・・・,131,132,133,・・・とは、長方形である。従って、各ブロックの縦と横の辺の長さを決めれば、各ブロックの形状が決定する。
【0032】
そこで、CPUマクロ100のアスペクト比(縦横比)であるYS/XSが、CPUマクロ100の仕様で定められた最大・最小メモリ面積において所定の範囲内となるように、固定領域のYFとXFとを決定する。ここで、YSはCPUマクロ100の縦方向の長さであり、XSはCPUマクロ100の横方向の長さである。また、YFは固定ブロック110の縦方向の長さであり、XFは固定ブロック110の横方向の長さである。なお、XFは、CPUマクロ100の縁に設けられる冗長スペースの分だけXSより小さい値である。
【0033】
具体的には、以下の2つの条件を満たすYF/XFが求められる。第1の条件は、最小メモリ構成の場合(YSが最小になる)に、YS/XSがアスペクト比の最小値以上であることである。第2の条件は、最大メモリ構成の場合(YSが最大になる)に、YS/XSがアスペクト比の最大値以下であることである。
【0034】
なお、メモリフロアプラン領域120,130の面積は、最大メモリ容量に基づいて決定される。すなわち、メモリフロアプラン領域120,130は、CPUマクロ100内に実装する最大メモリ容量に応じた数のメモリフロアプランブロックを内包できるだけの面積を有している。なお、最大メモリ容量は、CPUコア回路からアクセス可能なメモリ空間のサイズとすることができる。
【0035】
また、メモリ種別によって、メモリフロアプランブロックのサイズが異なる。たとえば、ROMよりもRAMの方が専有面積が広くなる。この場合、RAMを可能な限り実装したときに、メモリフロアプラン領域120,130の面積が最大となる。なお、メモリ空間のサイズ以下であれば、オーダ受け付け可能な最大メモリ容量を任意に決定してもよい。
【0036】
第3の工程として、第2の工程で決定したXFと、XBがほぼ等しくなるように各メモリフロアプランブロックの一辺の長さを決める。そして、所定の論理設計に従って、所定のデータ記憶容量のメモリブロックとメモリブロック以外の固定ブロックとのそれぞれに関する設計データ(ブロック別設計データ)を作成する。
【0037】
第4の工程として、作成されたブロック別設計データに関し、メモリフロアプランブロック121,122,・・・,131,132,133,・・・の搭載可能範囲内で、CPUマクロ100を作成するための制約条件が常に満たされることを検証する。このとき、制約条件を満たすのが最も厳しくなるメモリ構成について制約条件が満たされることが確認できれば、制約条件が常に満たされるものとみなすことができる。制約条件とは、たとえば、信号の遅延を規定値以内にするというタイミング保証である。タイミング保証を行うことで、予定された動作周波数に同期させて正しく信号が伝わることが検証できる。
【0038】
具体的には、固定ブロック110の上下に配置したメモリフロアプランブロックのデータ出力端子からCPUマクロ100のデータ出力端子までのパスで、遅延値が最大及び最小となるメモリ構成に対してタイミング保証を行う。遅延値が最大となるメモリ構成とは、メモリフロアプラン領域120,130に、最大限のメモリフロアプランブロックを実装したときの構成である。また、遅延値が最小となるメモリ構成とは、メモリフロアプラン領域120,130に、最小限のメモリフロアプランブロックを実装したときの構成である。なお、CPUコア回路の設計上、遅延値が小さいときには問題が生じないことが分かっている場合、遅延値が最小となるメモリ構成に対するタイミング保証作業を省くことも可能である。
【0039】
第5の工程として、検証されたブロック別設計データを用い、任意のメモリ容量に応じた数のメモリフロアプランブロック121,122,・・・,131,132,133,・・・を固定ブロック110に接続したCPUマクロ100の設計データを生成する。
【0040】
具体的には、顧客からオーダされたメモリ構成に応じた数のメモリフロアプランブロック121,122,・・・,131,132,133,・・・を、メモリフロアプラン領域120,130内に配置する。メモリフロアプランブロック121,122,・・・,131,132,133,・・・の配置は、固定ブロック110に隣接する位置から順番に行う。たとえば、メモリフロアプランブロック121→メモリフロアプランブロック131→メモリフロアプランブロック122→メモリフロアプランブロック132→・・・の順で、上下のメモリフロアプラン領域120,130に交互に配置する。
【0041】
このようにメモリフロアプランブロックを、顧客からのオーダに応じた数だけ配置することで、オーダされたメモリ容量のCPUマクロの設計データを作成することができる。
【0042】
以下、オーダに応じたCPUマクロのフロアプラン作成処理について、具体的に説明する。
図2は、設計データの構造例を示している。図2の例では、固定ブロック110の上側のメモリフロアプラン領域120の更に上に、クリップモジュールブロック141が設けられている。同様に、固定ブロック110の下側のメモリフロアプラン領域130の更に下に、クリップモジュールブロック142が設けられている。クリップモジュールブロック141,142は、メモリフロアプラン領域120,130内のメモリフロアプランブロック131,132,・・・における入出力端子のうち、所定の端子へ固定の信号を入力するためのフロアプランブロックである。
【0043】
各フロアプランブロックは、入出力端子11〜15,21〜25,31〜35,41〜45,51〜55,61〜65によって互いに接続されている。入出力端子11〜15は、固定ブロック110とメモリフロアプラン領域120内のメモリフロアプランブロック(図示せず)との間を接続している。入出力端子21〜25は、固定ブロック110とメモリフロアプラン領域130内のメモリフロアプランブロック131との間を接続している。入出力端子31〜35は、メモリフロアプランブロック131とメモリフロアプランブロック132との間を接続している。入出力端子41〜45は、メモリフロアプランブロック131とメモリフロアプラン領域130内の他のメモリフロアプランブロック(図示せず)との間を接続している。入出力端子51〜55は、メモリフロアプラン領域120内のメモリフロアプランブロック(図示せず)とクリップモジュールブロック141との間を接続している。入出力端子61〜65は、メモリフロアプラン領域130内のメモリフロアプランブロック(図示せず)とクリップモジュールブロック142との間を接続している。
【0044】
固定ブロック110は内部にCPUコア回路と周辺回路とを有しており、5種類の信号が入出力される。n1ビットのメモリ出力制御信号は、入出力端子11,21,31,41,51,61を介して、各フロアプランブロック間で受け渡される。n2ビットのメモリ出力データは、入出力端子12,22,32,42,52,62を介して、各フロアプランブロック間で受け渡される。n3ビットのメモリアドレスは、入出力端子13,23,33,43,53,63を介して、各フロアプランブロック間で受け渡される。n4ビットのメモリ入力クロックは、入出力端子14,24,34,44,54,64を介して、各フロアプランブロック間で受け渡される。n5ビットのメモリライトデータは、入出力端子15,25,35,45,55,65を介して、各フロアプランブロック間で受け渡される。なお、n1、n2、n3、n4、n5は、1以上の整数である。
【0045】
図2の例では、メモリフロアプランブロック131はROMのフロアプランブロックであり、メモリフロアプランブロック132はRAMのフロアプランブロックである。
【0046】
ROMのメモリフロアプランブロック131は、ROM回路131a〜131c、AND(論理積)回路131d〜131fおよびOR(論理和)回路131g〜131iで構成されている。ROM回路131a〜131cには、予めデータを記憶させておくことができ、そのデータを読み出すことができる。
【0047】
ROM回路131a〜131cには、入出力端子23,24を介してメモリアドレスとメモリ入力クロックとが入力される。ROM回路131aの出力は、AND回路131dに入力される。ROM回路131bの出力は、AND回路131eに入力される。ROM回路131cの出力は、AND回路131fに入力される。さらに、AND回路131d〜131fには、入出力端子21を介してメモリ出力制御信号が入力される。
【0048】
AND回路131dの出力は、OR回路131gに入力される。AND回路131eとAND回路131fとの出力は、OR回路131iに入力される。OR回路131iの出力は、OR回路131gに入力される。OR回路131gの出力は、OR回路131hに入力される。さらに、OR回路131hには、入出力端子32を介してメモリ出力データが入力される。OR回路131hの出力は、入出力端子22を介して、メモリ出力データとして固定ブロック110に供給される。入出力端子25から入力されたメモリライトデータは、入出力端子35を介してRAMのメモリフロアプランブロック132に対して出力される。
【0049】
RAMのメモリフロアプランブロック132は、RAM回路132a,132b,AND回路132c,132d、およびOR回路132eで構成されている。RAM回路132a,132bには、データを随時書き込むことが出来ると共に、書き込んだデータを読み出すことができる。
【0050】
RAM回路132a,132bには、入出力端子33,34,35を介してメモリアドレス、メモリ入力クロックおよびメモリライトデータが入力される。RAM回路132aの出力は、AND回路132cに入力される。RAM回路132bの出力は、AND回路132dに入力される。さらに、AND回路132c,132dには、入出力端子31を介してメモリ出力制御信号が入力される。
【0051】
AND回路132cとAND回路132dとの出力は、OR回路132eに入力される。さらに、OR回路132eには、入出力端子42を介してメモリ出力データが入力される。OR回路132eの出力は、入出力端子32を介して、メモリ出力データとしてメモリフロアプランブロック131に供給される。
【0052】
なお、メモリフロアプラン領域120内に設けられるメモリフロアプランブロックの構成は、メモリフロアプラン領域130内のメモリフロアプランブロック131,132を180度回転させた構成となる。
【0053】
クリップモジュールブロック141では、グランドレベル(ローレベル)の信号が、バッファ回路141aを介して入出力端子52に供給されている。他の入出力端子51,53,54,55からクリップモジュールブロック141に供給される信号は、開放された状態である。
【0054】
クリップモジュールブロック142では、グランドレベルの信号が、バッファ回路142aを介して入出力端子62に供給されている。他の入出力端子61,63,64,65からクリップモジュールブロック142に供給される信号は、開放された状態である。
【0055】
このような構成のフロアプランブロックであれば、固定ブロック110から出力されるメモリ出力制御信号、メモリアドレス、メモリ入力クロック、及びメモリライトデータが各メモリフロアプランブロック131,132,・・・に供給される。また、各メモリフロアプランブロック131,132,・・・から出力されたメモリ出力データが固定ブロック110に供給される。
【0056】
たとえば、ROM回路131aからデータを読み出す場合、固定ブロック110から、ROM回路131aに割り当てられたメモリアドレスが出力される。出力されたメモリアドレスは、入出力端子23を介してメモリフロアプランブロック131に入力される。各ROM回路131a,131b,131cは、固定ブロック110から供給されるメモリ入力クロックに同期して、メモリアドレスを取り込む。
【0057】
すると、ROM回路131aが、入力されたメモリアドレスに対応する記憶領域からデータを取りだし、AND回路131dに出力する。AND回路131dは、メモリ出力制御信号がアサートされたときに、入力されたデータを出力する。AND回路131dから出力されたデータは、OR回路131g、OR回路131hおよび入出力端子22を経由して、固定ブロック110に渡される。
【0058】
このようにして、固定ブロック110内のCPUコア回路から、メモリフロアプランブロック内のデータを読み取ることができる。
また、RAM回路132aへデータを書き込む場合、固定ブロック110から、ROM回路132aに割り当てられたメモリアドレスが出力されるとともに、メモリライトデータが出力される。出力されたメモリアドレスとメモリライトデータとは、それぞれ入出力端子33と入出力端子35とを介してメモリフロアプランブロック132に入力される。各RAM回路132a,132bは、固定ブロック110から供給されるメモリ入力クロックに同期して、メモリアドレスを取り込む。すると、RAM回路132aが、入力されたメモリアドレスに対応する記憶領域へデータを書き込む。
【0059】
このようにして、固定ブロック110内のCPUコア回路から出力されるデータを、メモリフロアプランブロック内に書き込むことができる。
なお、図2に示す設計データでは、クリップモジュールブロック141,142では、入力信号クリップとして、固定ブロック110に対して供給する信号の入力端を、ローレベル(グランドレベル)に固定している。これにより、メモリフロアプランブロックへの入力信号が不定になることが防止される。
【0060】
しかも、本実施の形態では、メモリフロアプランブロックの上下に入出力端子が設けられ、上側の入出力端子と下側の入出力端子とが1対1で対応付けられている。そして、対応する入出力端子には同じ種類の信号が入出力されるように構成されている。これにより、上下方向にメモリフロアプランブロック同士を接続した場合に、同じ種類の信号用の入出力端子の位置が合致する。その結果、任意の段数のメモリフロアプランブロックを連鎖的に接続することができる。
【0061】
さらに、ROMのメモリフロアプランブロックには、RAMメモリライトデータを通過させるための信号線が設けられている。そのため、ROMのメモリフロアプランブロックとRAMのメモリフロアプランブロックとを混在させ、任意の配列で接続することができる。
【0062】
ところで、各フロアプランブロックに関する設計データは、たとえば、フロアプランデータは、LEF(Library Exchange Format)やDEF(Design Exchange Format)のデータ形式、マスクパターンデータはGDSのデータ形式で作成することができる。
【0063】
また、メモリフロアプランブロックは、顧客からのオーダに応じて任意のメモリ容量分だけ設けることができる。1つのメモリフロアプランブロック当りのメモリ容量(bit、word、column)及び種類(ROM、RAM等)も任意に設定できる。
【0064】
次に、オーダに応じたCPUマクロのフロアプラン作成処理の手順を具体的に説明する。オーダに応じたCPUマクロのフロアプラン作成処理は、大別して、顧客のオーダに依存せずに予め実行される設計データ作成処理(前述の第1の工程から第4の工程)と、オーダに応じたフロアプラン作成処理(前述の第5の工程)とに分けることができる。
【0065】
図3は、設計データ作成処理の作業手順を示す図である。以下、図3に示す処理を、ステップ番号に沿って説明する。
[ステップS1]フロアプランブロックの論理設計が行われる。たとえば、設計担当者がコンピュータに実装されたソフトウェアを利用して、フロアプランブロックの論理設計を行い、論理設計の内容をコンピュータ内に記憶させる。
【0066】
[ステップS2]固定ブロックのフロアプランやレイアウトを作成する。具体的には、メモリフロアプラン領域の面積が最大になるとき(メモリ最大)、およびメモリフロアプラン領域の面積が最小になるとき(メモリ最小)のCPUマクロのアスペクト比が所定範囲内になるように、固定ブロックの横幅(X軸方向の長さ)を決定する。そして、決定された横幅の領域内にCPUコア回路や周辺回路が内包できるように、回路の配線等の設計を行う。このとき、固定ブロックのフロアプランやレイアウトにおける物理検証を行い、配線幅等の所定のルールを満足したフロアプランやレイアウトを作成する。
【0067】
[ステップS3]メモリフロアプランブロックのフロアプランやレイアウトを作成する。このとき、メモリフロアプランブロックのフロアプランやレイアウトにおける物理検証を行い、配線幅等の所定のルールを満足したフロアプランやレイアウトを作成する。なお、メモリフロアプランブロックは、記憶容量や種別毎に複数作成しておくことができる。
【0068】
[ステップS4]クリップモジュールブロックのフロアプランやレイアウトを作成する。このとき、クリップモジュールブロックのフロアプランやレイアウトにおける物理検証を行い、配線幅等の所定のルールを満足したフロアプランやレイアウトを作成する。
【0069】
[ステップS5]メモリ最大時のタイミング検証を行う。
[ステップS6]メモリ最大時のタイミング検証の結果を判定し、問題がなければステップS9に処理を進める。問題が発生したら、ステップS2の処理に戻り、フロアプラン・レイアウト作成をやり直す。
【0070】
[ステップS7]メモリ最小時のタイミング検証を行う。
[ステップS8]メモリ最小時のタイミング検証の結果を判定し、問題がなければステップS9に処理を進める。問題が発生したら、ステップS2の処理に戻り、フロアプラン・レイアウト作成をやり直す。
【0071】
[ステップS9]フロアプランブロック毎の設計データを生成する。
これにより、フロアプランブロック毎の設計データが生成される。
ここで、ステップS2で行われる固定ブロックの形状(横幅XFと縦幅YF)の決定方法について詳しく説明する。
【0072】
固定ブロックの形状は、最終的に実装可能なメモリ構成のアスペクト比に依存する。すなわち、どのようなメモリ構成となってもアスペクト比が所定範囲に収まるように、固定ブロックの形状が決定される。具体的には、アスペクト比が最大になるメモリ構成と、アスペクト比が最小になるメモリ構成とについて、そのアスペクト比が所定範囲内に収まるようにする。
【0073】
図4は、固定ブロック形状決定に用いる情報を示す図である。図4では、横方向にX軸、縦方向にY軸を採っている。CPUマクロ100の枠の縦幅Ysと横幅Xsとによりアスペクト比(Ys/Xs)が表される。
【0074】
CPUマクロ100の枠には、冗長幅αの分だけ冗長部分が設けられている。従って、CPUマクロ100の枠の横幅Xsの値は、固定ブロック110の横幅X Fから冗長幅αの分だけ大きい値である。また、メモリフロアプランブロック121,122,・・・12N,131,132,・・・13M、クリップモジュールブロック141,142の横幅XBは、固定ブロック110の横幅X Fとほぼ同じである。クリップモジュールブロック141,142の縦幅はYCである。
【0075】
CPUマクロ100の枠の縦幅Ysについては、メモリの搭載量によって決まる。図4の例では、上側のメモリフロアプラン領域120にN個(Nは自然数)のメモリフロアプランブロック121,122,・・・12Nが搭載されており、下側のメモリフロアプラン領域130にM個(Mは自然数)のメモリフロアプランブロック,131,132,・・・13Mが搭載されている。
【0076】
このような場合、以下のようにして、固定ブロック110の形状(横幅XFと縦幅YF)を決定する。
【0077】
【数1】
c≧(aYA+YF+2Yc+2α)/(XF+2α)・・・(1)
【0078】
【数2】
d≧(bYB+YF+2Yc+2α)/(XF+2α)・・・(2)
ここで、cは、アスペクト比の最大値である。dは、アスペクト比の最小値である。αは、冗長スペースの幅であり、0以上の任意の値である。YAは、CPUマクロ100の仕様においてメモリの容量が最大時の1メモリフロアプランブロックのY方向の長さである。YBは、CPUマクロ100の仕様においてメモリの容量が最小時の1メモリフロアプランブロックのY方向の長さである。aは、CPUマクロ100の仕様において、メモリの容量が最大時のメモリフロアプランブロック数である。bは、CPUマクロ100の仕様においてメモリの容量が最小時のメモリフロアプランブロック数である。
【0079】
以上の式(1)、(2)を満たすXF、YFの組み合わせの中から適当な形状が決定される。たとえば、アスペクト比が最も1に近いものを採用する。
なお、図1に示したようなクリップモジュールブロックの無い構成の場合、式(1)、式(2)内の「2YC」の項は不要である。
【0080】
固定ブロックの横幅と縦幅が決まれば、他のフロアプランブロックの形状も決まる。そして、その形状内で、各フロアプランブロック内部のフロアプランやレイアウトが作成され、フロアプランブロック毎の設計データとして保存される。
【0081】
その後、フロアプランブロック毎の設計データに基づいて、顧客からのオーダに応じたメモリ構成のCPUマクロの設計データが生成される。
図5は、顧客からのオーダに応じたフロアプラン作成処理の手順を示す図である。以下、図5に示す処理をステップ番号に沿って説明する。
【0082】
[ステップS11]顧客仕様が決定する。本実施の形態では、顧客からのオーダによってメモリ構成が決定される。
[ステップS12]顧客仕様に基づいてフロアプランのレイアウトを決定する。具体的には、メモリ構成に応じたメモリフロアプランブロックを、固定ブロックの上下に追加する。この際、データ入出力の速度が遅い種類のメモリを、固定ブロックに近い位置に配置する。たとえば、RAMよりもROMの方が遅い場合には、まず固定ブロック110に隣接する位置にROMのメモリフロアプランブロックを配置する。その後、ROMのメモリフロアプランブロックに隣接させて、RAMのメモリフロアプランブロックが配置される。
【0083】
[ステップS13]タイミングライブラリが作成される。タイミングライブラリには、構成要素(たとえば、フリップ・フロップ)間の信号の伝搬(信号の遅延等)に関する情報が登録されている。
【0084】
[ステップS14]作成されたタイミングライブラリが顧客に渡される。
[ステップS15]フロアプランデータやマスクパターンデータが作成され、顧客に渡される。
【0085】
このようにして、顧客のオーダ毎のCPUマクロの設計データが作成され、顧客に渡される。なお、フロアプランブロック毎の設計データを作成した際に、物理検証を行っていると共に、最も厳しい条件下(信号の遅延が最も発生しやすい条件下)でのタイミング検証を行っているため、顧客からのオーダを受けた際にはタイミング検証を行う必要はない。その結果、フロアプランやレイアウト作成のやり直しが発生せず、顧客のオーダに応じたCPUマクロの設計データを短期間で作成することが可能となる。
【0086】
ところで、CPUマクロの設計データの供給方法として、図5に示した処理をコンピュータで実行させ、設計データを自動生成することもできる。ここで、設計データを自動生成する機能を、CPUマクロジェネレータと呼ぶこととする。
【0087】
たとえば、フロアプランブロック毎に各設計データ(Netlist、DEF、LEF、GDS等)を用意し、ストレージデバイスに格納しておく。顧客がCPUマクロジェネレータに対してパラメータ(メモリ構成、テクノロジコード)を入力すると、CPUマクロジェネレータが自動的に必要なパーツを集めて所望の設計データを出力する。この際、さらに上記のパラメータ入力により、作成されたCPUマクロのスペックを、CPUマクロジェネレータに計算させることもできる。
【0088】
図6は、設計データ自動作成例を示す図である。図6に示すように、ストレージデバイス220には、固定ブロック221、メモリフロアプランブロック222、クリップモジュールブロック223の設計データが予め格納されている。
【0089】
そして、CPUマクロジェネレータ210にパラメータが入力される。パラメータは、たとえば、メモリ構成、テクノロジコード等である。なお、入力可能な複数のパラメータを予め用意しておき、その中からユーザにパラメータを選択させることもできる。
【0090】
すると、CPUマクロジェネレータ210において、フロアプランブロック毎に作成されている設計データ(LEF、DEF、GDS等)から必要なデータを集め、CPUマクロ全体としての設計データを生成する。たとえば、メモリ規模が少なければ(メモリ規模小)、2つのメモリフロアプランブロック121,131が含まれるCPUマクロ100aの様な構成を示す設計データが生成される。メモリ規模がCPUマクロ100aより大きければ(メモリ規模中)、5つのメモリフロアプランブロック121,122,131,132,133が含まれるCPUマクロ100bの様な構成を示す設計データが生成される。メモリ規模がさらに大きければ(メモリ規模大)、6つのメモリフロアプランブロック121a,122,123,131a,132a,133が含まれるCPUマクロ100cの様な構成を示す設計データが生成される。なお、メモリフロアプランブロック121a,131a,132aは、メモリフロアプランブロック121,131,132よりも記憶容量が大きい。
【0091】
また、CPUマクロジェネレータ210は、ユーザからのパラメータとしてメモリ構成・容量を入力または選択を受け付け、予め準備しているメモリフロアプランブロック単位の設計データ(たとえば、サイズや消費電力)から必要なデータを収集し、CPUマクロ100の設計データ(たとえば、CPUマクロ100全体のサイズや消費電力等のスペック情報)を出力する。これにより、スペック見積り・データ提供の作業工数が短縮化できる。
【0092】
図7は、CPUマクロジェネレータの機能を実現するためのコンピュータのハードウェア構成例を示す図である。コンピュータ200は、CPU201によって装置全体が制御されている。CPU201には、バス207を介してRAM202、ハードディスクドライブ(HDD:Hard Disk Drive)203、グラフィック処理装置204、入力インタフェース205、および通信インタフェース206が接続されている。
【0093】
RAM202には、CPU201に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM202には、CPU201による処理に必要な各種データが格納される。HDD203には、OSやアプリケーションプログラムが格納されるとともに、各種フロアプランブロックの設計データが格納される。
【0094】
グラフィック処理装置204には、モニタ301が接続されている。グラフィック処理装置204は、CPU201からの命令に従って、画像をモニタ301の画面に表示させる。入力インタフェース205には、キーボード302とマウス303とが接続されている。入力インタフェース205は、キーボード302やマウス303から送られてくる信号を、バス207を介してCPU201に送信する。
【0095】
通信インタフェース206は、ネットワーク310に接続されている。通信インタフェース206は、ネットワーク310を介して、他のコンピュータとの間でデータの送受信を行う。
【0096】
以上のようなハードウェア構成によって、本実施の形態のCPUマクロジェネレータを実現することができる。
以上のように、本発明の実施の形態によれば、規則性を持つフロアプランの作成方法を用い、CPUマクロの仕様において最も動作限界に近いメモリ構成での動作保証を行うことができる。また、本実施の形態に係るフロアプランの作成方法を利用して設計データを供給し、マクロの見積りを行うことにより、CPUマクロの開発期間を短縮化できる。
【0097】
なお、上記の実施の形態では、入力信号クリップとしてローレベルの信号に固定しているが、ハイレベルの信号に固定することもできる。
また、上記のCPUマクロジェネレータの処理機能を実現するために、CPUマクロジェネレータが有すべき機能の処理内容を記述した機能ブロック設計プログラムが提供される。その機能ブロック設計プログラムをコンピュータで実行することにより、CPUマクロジェネレータの処理機能がコンピュータ上で実現される。処理内容を記述した機能ブロック設計プログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(DigitalVersatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto−Optical disc)などがある。
【0098】
機能ブロック設計プログラムを流通させる場合には、たとえば、その機能ブロック設計プログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、機能ブロック設計プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにその機能ブロック設計プログラムを転送することもできる。
【0099】
機能ブロック設計プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録された機能ブロック設計プログラムもしくはサーバコンピュータから転送された機能ブロック設計プログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置から機能ブロック設計プログラムを読み取り、機能ブロック設計プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接機能ブロック設計プログラムを読み取り、その機能ブロック設計プログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取った機能ブロック設計プログラムに従った処理を実行することもできる。
【0100】
(付記1) メモリを含む機能ブロックを設計するための機能ブロック設計方法において、
所定の論理設計に従って、所定のデータ記憶容量のメモリブロックと前記メモリブロック以外の固定ブロックとのそれぞれに関するブロック別設計データを作成し、
作成された前記ブロック別設計データに関し、前記メモリブロックの搭載可能範囲内で、前記機能ブロックを作成するための制約条件が常に満たされることを検証し、
検証された前記ブロック別設計データを用い、任意のメモリ容量に応じた数の前記メモリブロックを前記固定ブロックに接続した機能ブロックの設計データを生成する、
ことを特徴とする機能ブロック設計方法。
【0101】
(付記2) 前記制約条件は、信号の遅延に関する条件であることを特徴とする付記1記載の機能ブロック設計方法。
(付記3) 前記制約条件の検証では、前記制約条件を満たすのが最も厳しくなるメモリ構成について前記制約条件が満たされることが確認できれば、前記制約条件が常に満たされるものとみなすことを特徴とする付記1記載の機能ブロック設計方法。
【0102】
(付記4) 前記制約条件の検証では、前記メモリブロックを最大限搭載したときに前記制約条件が満たされるか否かを確認することを特徴とする付記3記載の機能ブロック設計方法。
【0103】
(付記5) 前記ブロック別設計データを作成する際には、前記メモリブロックと前記固定ブロックとの形状を、所定の接続規則に従って搭載可能範囲内で任意の数の前記メモリブロックを接続したときの前記機能ブロックの縦横比が常に所定の範囲内となる形状とし、
前記機能ブロックの前記設計データを生成する際には、前記所定の接続規則に従って前記メモリブロックを前記固定ブロックに接続することを特徴とする付記1記載の機能ブロック設計方法。
【0104】
(付記6) 前記所定の接続規則では、前記固定ブロックに隣接する位置から前記メモリブロックを連鎖的に接続することが決められていることを特徴とする付記5記載の機能ブロック設計方法。
【0105】
(付記7) 前記所定の接続規則では、前記固定ブロックの対向する2つの辺それぞれに隣接する位置から、前記メモリブロックを連鎖的に接続することが決められていることを特徴とする付記6記載の機能ブロック設計方法。
【0106】
(付記8) 前記所定の接続規則では、前記固定ブロックと前記メモリブロックとの隣接する辺に交わる方向に沿って、前記メモリブロックを連鎖的に接続することが決められていることを特徴とする付記6記載の機能ブロック設計方法。
【0107】
(付記9) 前記固定ブロックの形状を決定する際には、前記固定ブロックと前記メモリブロックとを接続する辺の長さを決定することを特徴とする付記5記載の機能ブロック設計方法。
【0108】
(付記10) 前記機能ブロックの前記設計データを生成する際には、終端の前記メモリブロックの入出力端子へ所定のレベルの信号を供給するクリップモジュールブロックを、前記終端の前記メモリブロックに接続することを特徴とする付記5記載の機能ブロック設計方法。
【0109】
(付記11) 前記ブロック別設計データを作成する際には、前記メモリブロックの対向する2つの辺それぞれに設けられる入出力端子を、前記2つの辺に隣接する他の一辺から同じ距離の位置に設けること特徴とする付記1記載の機能ブロック設計方法。
【0110】
(付記12) 前記メモリブロックに関して、対向する前記2つの辺それぞれに対し、前記隣接する他の一辺から同じ距離に設けられた入出力端子に同種の信号が入出力されることを前提とした内部回路を設計することを特徴とする付記11記載の機能ブロック設計方法。
【0111】
(付記13) 前記メモリブロックのブロック別設計データは、メモリ種別毎に複数生成することを特徴とする付記1記載の機能ブロック設計方法。
(付記14) 読み取り専用メモリのブロック別設計データには、書き込み用の信号を通過させるための配線を含めることを特徴とする付記13記載の機能ブロック設計方法。
【0112】
(付記15) メモリを含む機能ブロックをコンピュータにより自動設計するための機能ブロック設計方法において、
メモリブロックの搭載可能範囲内で、前記機能ブロックを作成するための制約条件が常に満たされることが検証された、前記メモリブロックと前記メモリブロック以外の前記固定ブロックとに関するブロック別設計データを予め記憶装置に格納し、
メモリ容量の指定入力が行われると、前記記憶装置に格納された前記ブロック別設計データを用い、指定された前記メモリ容量に応じた数の前記メモリブロックを前記固定ブロックに接続した機能ブロックの設計データを生成する、
ことを特徴とする機能ブロック設計方法。
【0113】
(付記16) メモリを含む機能ブロックを自動設計する機能ブロック設計装置において、
メモリブロックの搭載可能範囲内で前記機能ブロックを作成するための制約条件が常に満たされることが検証された、前記メモリブロックと前記メモリブロック以外の前記固定ブロックとに関するブロック別設計データが格納された記憶装置と、
メモリ容量の指定入力が行われると、前記記憶装置に格納された前記ブロック別設計データを用い、指定された前記メモリ容量に応じた数の前記メモリブロックを前記固定ブロックに接続した機能ブロックの設計データを生成する演算装置と、
を有することを特徴とする機能ブロック設計装置。
【0114】
(付記17) メモリを含む機能ブロックを自動設計するための機能ブロック設計プログラムにおいて、
コンピュータに、
メモリブロックの搭載可能範囲内で、前記機能ブロックを作成するための制約条件が常に満たされることが検証された、前記メモリブロックと前記メモリブロック以外の前記固定ブロックとに関するブロック別設計データを予め記憶装置に格納し、
メモリ容量の指定入力が行われると、前記記憶装置に格納された前記ブロック別設計データを用い、指定された前記メモリ容量に応じた数の前記メモリブロックを前記固定ブロックに接続した機能ブロックの設計データを生成する、
処理を実行させることを特徴とする機能ブロック設計プログラム。
【0115】
(付記18) メモリを含む機能ブロックを自動設計するための機能ブロック設計プログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記コンピュータに、
メモリブロックの搭載可能範囲内で、前記機能ブロックを作成するための制約条件が常に満たされることが検証された、前記メモリブロックと前記メモリブロック以外の前記固定ブロックとに関するブロック別設計データを予め記憶装置に格納し、
メモリ容量の指定入力が行われると、前記記憶装置に格納された前記ブロック別設計データを用い、指定された前記メモリ容量に応じた数の前記メモリブロックを前記固定ブロックに接続した機能ブロックの設計データを生成する、
処理を実行させることを特徴とする機能ブロック設計プログラムを記録したコンピュータ読み取り可能な記録媒体。
【0116】
【発明の効果】
以上説明したように本発明では、メモリブロックの搭載可能範囲内で、機能ブロックを作成するための制約条件が常に満たされることが予め検証されたブロック別設計データを用いて、任意のメモリ容量に応じた数のメモリブロックを固定ブロックに接続した機能ブロックの設計データを生成したため、生成された設計データは常に制約条件を満たす。その結果、メモリ容量が異なる機能ブロック毎に制約条件の検証を行う必要が無くなり、機能ブロックの設計期間が短縮される。
【図面の簡単な説明】
【図1】実施の形態に適用される発明の概念図である。
【図2】設計データの構造例を示している。
【図3】設計データ作成処理の作業手順を示す図である。
【図4】固定ブロック形状決定に用いる情報を示す図である。
【図5】顧客からのオーダに応じたフロアプラン作成処理の手順を示す図である。
【図6】設計データ自動作成例を示す図である。
【図7】CPUマクロジェネレータの機能を実現するためのコンピュータのハードウェア構成例を示す図である。
【図8】従来のCPUマクロのフロアプランを示す図である。図8(A)は、フロアプランの第1の例を示しており、図8(B)は、フロアプランの第2の例を示しており、図8(C)は、フロアプランの第3の例を示している。
【図9】CPUマクロの設計作業の手順を示す図である。
【符号の説明】
100 CPUマクロ
110 固定ブロック
120,130 メモリフロアプラン領域
121,122,131,132,133 メモリフロアプランブロック
Claims (10)
- メモリを含む機能ブロックを設計するための機能ブロック設計方法において、
所定の論理設計に従って、所定のデータ記憶容量のメモリブロックと前記メモリブロック以外の固定ブロックとのそれぞれに関するブロック別設計データを作成し、
作成された前記ブロック別設計データに関し、前記メモリブロックの搭載可能範囲内で、前記機能ブロックを作成するための制約条件が常に満たされることを検証し、
検証された前記ブロック別設計データを用い、任意のメモリ容量に応じた数の前記メモリブロックを前記固定ブロックに接続した機能ブロックの設計データを生成する、
ことを特徴とする機能ブロック設計方法。 - 前記制約条件は、信号の遅延に関する条件であることを特徴とする請求項1記載の機能ブロック設計方法。
- 前記ブロック別設計データを作成する際には、前記メモリブロックと前記固定ブロックとの形状を、所定の接続規則に従って搭載可能範囲内で任意の数の前記メモリブロックを接続したときの前記機能ブロックの縦横比が常に所定の範囲内となる形状とし、
前記機能ブロックの前記設計データを生成する際には、前記所定の接続規則に従って前記メモリブロックを前記固定ブロックに接続することを特徴とする請求項1記載の機能ブロック設計方法。 - 前記所定の接続規則では、前記固定ブロックに隣接する位置から前記メモリブロックを連鎖的に接続することが決められていることを特徴とする請求項3記載の機能ブロック設計方法。
- 前記固定ブロックの形状を決定する際には、前記固定ブロックと前記メモリブロックとを接続する辺の長さを決定することを特徴とする請求項3記載の機能ブロック設計方法。
- 前記機能ブロックの前記設計データを生成する際には、終端の前記メモリブロックの入出力端子へ所定のレベルの信号を供給するクリップモジュールブロックを、前記終端の前記メモリブロックに接続することを特徴とする請求項3記載の機能ブロック設計方法。
- 前記ブロック別設計データを作成する際には、前記メモリブロックの対向する2つの辺それぞれに設けられる入出力端子を、前記2つの辺に隣接する他の一辺から同じ距離の位置に設けること特徴とする請求項1記載の機能ブロック設計方法。
- 前記メモリブロックのブロック別設計データは、メモリ種別毎に複数生成することを特徴とする請求項1記載の機能ブロック設計方法。
- 読み取り専用メモリのブロック別設計データには、書き込み用の信号を通過させるための配線を含めることを特徴とする請求項8記載の機能ブロック設計方法。
- メモリを含む機能ブロックを自動設計する機能ブロック設計装置において、
メモリブロックの搭載可能範囲内で前記機能ブロックを作成するための制約条件が常に満たされることが検証された、前記メモリブロックと前記メモリブロック以外の前記固定ブロックとに関するブロック別設計データが格納された記憶装置と、
メモリ容量の指定入力が行われると、前記記憶装置に格納された前記ブロック別設計データを用い、指定された前記メモリ容量に応じた数の前記メモリブロックを前記固定ブロックに接続した機能ブロックの設計データを生成する演算装置と、
を有することを特徴とする機能ブロック設計装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002248439A JP2004086682A (ja) | 2002-08-28 | 2002-08-28 | 機能ブロック設計方法および機能ブロック設計装置 |
US10/635,499 US7076754B2 (en) | 2002-08-28 | 2003-08-07 | Functional block design method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002248439A JP2004086682A (ja) | 2002-08-28 | 2002-08-28 | 機能ブロック設計方法および機能ブロック設計装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004086682A true JP2004086682A (ja) | 2004-03-18 |
Family
ID=31972519
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002248439A Pending JP2004086682A (ja) | 2002-08-28 | 2002-08-28 | 機能ブロック設計方法および機能ブロック設計装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7076754B2 (ja) |
JP (1) | JP2004086682A (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010512645A (ja) * | 2006-12-06 | 2010-04-22 | クゥアルコム・インコーポレイテッド | プロセスばらつき耐性メモリ設計 |
US8597911B2 (en) | 2003-06-11 | 2013-12-03 | Chugai Seiyaku Kabushiki Kaisha | Process for producing antibodies |
US9241994B2 (en) | 2005-06-10 | 2016-01-26 | Chugai Seiyaku Kabushiki Kaisha | Pharmaceutical compositions containing sc(Fv)2 |
US9493569B2 (en) | 2005-03-31 | 2016-11-15 | Chugai Seiyaku Kabushiki Kaisha | Structural isomers of sc(Fv)2 |
US10011858B2 (en) | 2005-03-31 | 2018-07-03 | Chugai Seiyaku Kabushiki Kaisha | Methods for producing polypeptides by regulating polypeptide association |
US11124576B2 (en) | 2013-09-27 | 2021-09-21 | Chungai Seiyaku Kabushiki Kaisha | Method for producing polypeptide heteromultimer |
US11142587B2 (en) | 2015-04-01 | 2021-10-12 | Chugai Seiyaku Kabushiki Kaisha | Method for producing polypeptide hetero-oligomer |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7930592B2 (en) * | 2002-12-16 | 2011-04-19 | International Business Machines Corporation | Enabling memory redundancy during testing |
US20070076478A1 (en) * | 2005-09-30 | 2007-04-05 | Sigmatel, Inc. | System and method of memory block management |
JP4987787B2 (ja) * | 2008-04-10 | 2012-07-25 | ルネサスエレクトロニクス株式会社 | 配置検証装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5848432A (en) * | 1993-08-05 | 1998-12-08 | Hitachi, Ltd. | Data processor with variable types of cache memories |
US6029236A (en) * | 1997-01-28 | 2000-02-22 | Altera Corporation | Field programmable gate array with high speed SRAM based configurable function block configurable as high performance logic or block of SRAM |
EP1019912A2 (en) * | 1997-10-10 | 2000-07-19 | Rambus Incorporated | Apparatus and method for pipelined memory operations |
GB2351824B (en) * | 1999-07-02 | 2004-03-31 | Altera Corp | Embedded memory blocks for programmable logic |
US6553552B1 (en) * | 2000-01-27 | 2003-04-22 | National Semiconductor Corporation | Method of designing an integrated circuit memory architecture |
US6631440B2 (en) * | 2000-11-30 | 2003-10-07 | Hewlett-Packard Development Company | Method and apparatus for scheduling memory calibrations based on transactions |
JP2003100073A (ja) * | 2001-09-25 | 2003-04-04 | Mitsubishi Electric Corp | 半導体記憶装置 |
-
2002
- 2002-08-28 JP JP2002248439A patent/JP2004086682A/ja active Pending
-
2003
- 2003-08-07 US US10/635,499 patent/US7076754B2/en not_active Expired - Fee Related
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8597911B2 (en) | 2003-06-11 | 2013-12-03 | Chugai Seiyaku Kabushiki Kaisha | Process for producing antibodies |
US9493569B2 (en) | 2005-03-31 | 2016-11-15 | Chugai Seiyaku Kabushiki Kaisha | Structural isomers of sc(Fv)2 |
US10011858B2 (en) | 2005-03-31 | 2018-07-03 | Chugai Seiyaku Kabushiki Kaisha | Methods for producing polypeptides by regulating polypeptide association |
US9241994B2 (en) | 2005-06-10 | 2016-01-26 | Chugai Seiyaku Kabushiki Kaisha | Pharmaceutical compositions containing sc(Fv)2 |
US9777066B2 (en) | 2005-06-10 | 2017-10-03 | Chugai Seiyaku Kabushiki Kaisha | Pharmaceutical compositions containing sc(Fv)2 |
JP2010512645A (ja) * | 2006-12-06 | 2010-04-22 | クゥアルコム・インコーポレイテッド | プロセスばらつき耐性メモリ設計 |
US11124576B2 (en) | 2013-09-27 | 2021-09-21 | Chungai Seiyaku Kabushiki Kaisha | Method for producing polypeptide heteromultimer |
US11142587B2 (en) | 2015-04-01 | 2021-10-12 | Chugai Seiyaku Kabushiki Kaisha | Method for producing polypeptide hetero-oligomer |
Also Published As
Publication number | Publication date |
---|---|
US7076754B2 (en) | 2006-07-11 |
US20040044969A1 (en) | 2004-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI575393B (zh) | 產生包含標準元件及至少一個記憶體實體兩者的積體電路之佈局的方法 | |
US7945878B2 (en) | Rules and directives for validating correct data used in the design of semiconductor products | |
US8959472B1 (en) | Considering compatibility of adjacent boundary regions for standard cells placement and routing | |
US7890909B2 (en) | Automatic block composition tool for composing custom blocks having non-standard library cells in an integrated circuit design flow | |
US7467367B1 (en) | Method and system for clock tree synthesis of an integrated circuit | |
US20110032029A1 (en) | Configurable embedded processor | |
US6425115B1 (en) | Area efficient delay circuits | |
US6574781B1 (en) | Design methodology for inserting RAM clock delays | |
US20040158806A1 (en) | Automatic insertion of clocked elements into an electronic design to improve system performance | |
Farooq et al. | Pre-silicon verification using multi-FPGA platforms: A review | |
JP2004086682A (ja) | 機能ブロック設計方法および機能ブロック設計装置 | |
US8074196B2 (en) | Integrated circuit design support apparatus, integrated circuit design support method, integrated circuit design support program, and recording medium with said program recorded therein | |
US20090125859A1 (en) | Methods for Optimal Timing-Driven Cloning Under Linear Delay Model | |
JP5444985B2 (ja) | 情報処理装置 | |
US7380231B2 (en) | Wire spreading through geotopological layout | |
US7418675B2 (en) | System and method for reducing the power consumption of clock systems | |
US9177090B1 (en) | In-hierarchy circuit analysis and modification for circuit instances | |
Madhavan et al. | Physical Design and Implementation of Lakshya-Sub-system of Built in Self Test System | |
EP1564645A2 (en) | Configurable memory system for embedded processors | |
JP2006338090A (ja) | 半導体集積回路の設計方法および設計装置 | |
Sowash | Design of a RISC-V Processor with OpenRAM Memories | |
JP4130117B2 (ja) | 半導体装置の設計方法 | |
JPH09232436A (ja) | 論理合成方法及び装置並びに半導体集積回路設計方法 | |
KR102718979B1 (ko) | Beol을 고려하여 집적 회로를 설계하기 위한 컴퓨터 구현 방법 및 컴퓨팅 시스템 | |
Brothers et al. | The Megacell concept: an approach to painless custom design |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050704 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080208 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080219 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080701 |