以下、本発明の一実施形態である半導体集積回路のレイアウト設計方法、及び当該レイアウト設計方法に基づいて作成された半導体集積回路について図面を用いて説明する。
<実施の形態1>
本実施の形態1においては、半導体集積回路のレイアウト設計方法について図1(a)に示すフローチャートを用いて説明する。
図1(a)に示すように、実施の形態1における半導体集積回路のレイアウト設計方法においては、まず、データ転送制御回路を含む機能ブロックの配置を決定する(ステップS101)。機能ブロックは、半導体集積回路に要求される仕様に応じて定まるものであり、データ転送制御回路は、設計する半導体集積回路が接続される回路や機器とのデータ転送を実行する機能を有するものであり、例えばDMAC(Direct Memory Access Controller)などである。つまり、データ転送制御回路は、データ転送のマスタ機能を有する回路である。
これにより、外部端子位置が定まっておらずとも、半導体集積回路内部の設計までは終了させることができる。
一方、実際に外部端子位置の仕様が定まると、当該仕様に従って、半導体集積回路のレイアウトに外部端子の配置を決定する(ステップS102)。
外部端子の配置位置を決定した後に、複数の外部端子に対応する複数のIOブロックの配置を決定する(ステップS103)。具体的には、決定した外部端子の配置位置それぞれに対して、各外部端子に対応するようにIOブロックの配置を、各外部端子の配置位置の近傍に決定する。即ち、1つの外部端子につき、少なくとも1つのIOブロックが配置される。また、外部端子の近傍とは、外部端子とIOブロックとの間の配線によるデータ転送において、タイミング調整、即ち、外部端子−IOブロック間を信号が流れることにより発生し得る遅延の修正の必要がない程度の距離内をいう。
複数のIOブロックの配置が決定されると、当該複数のIOブロックそれぞれとデータ転送制御回路とを接続するバスの配置を決定する。そして、配したバスの配線長に応じた個数(段数)のタイミング調整回路を当該バスの配線上に挿入する。タイミング調整回路は、信号線の配線遅延をリタイミングする機能を有するものであり、タイミング調整回路には、例えば、フリップフロップあるいはラッチなどが用いられる。当該リタイミングとは、入力された信号を半導体集積回路が動作する際に用いられる動作クロックの周期に同期させた信号を出力することをいう。複数の信号がバス上を流れることにより、当該バスの配線長、材質によっては、当該バス上を流れる信号が半導体集積回路の動作クロックで示される周期からそれぞれ個別に遅延する(別の言い方をすれば、位相がずれる)、即ち、バス上を流れる間に複数の信号間でクロックとの位相がずれてしまい、このために半導体集積回路が正常に動作しなくなる可能性がある。よって、当該ずれを修正する必要があり、タイミング調整回路はこのずれを修正する。なお、図面上では、当該動作クロック用の配線等は当然備えられているものとして記載していない。また、半導体集積回路は、当該動作クロックを生成する水晶発振子等も搭載する構成としてもよいし、当該動作クロックは、半導体集積回路外部から供給される構成としてもよい。
なお、当該図1(a)に示すフローチャートに従ったレイアウト設計方法は、図1(b)に示すように変形することができる。即ち、ステップS101における機能ブロックの配置の決定と、ステップS102とステップS103における外部端子の配置と、それに伴うIOブロックの配置の決定とは、それぞれ並行に処理されてもよい。
なお、図1(a)や、図1(b)においては、データ転送制御回路が機能ブロックに含まれる例を記載しているが、データ転送制御回路は必ずしも機能ブロックに含まれなくともよい。データ転送制御回路は、複数のIOブロックそれぞれに含まれる、あるいは、IOブロックそれぞれに対応する形で配置することを前提としたレイアウト設計を行ってもよい。
図1のレイアウト設計方法に従って、半導体集積回路を設計した場合の一具体例を、図2を用いて説明する。
まず、図2(a)に示すように、データ転送制御回路たる内部回路140及び各機能ブロック(ブロックA〜E)の配置を決定する。当該配置は、各機能ブロックの要求仕様に基づいて決定される部品及び部品間をつなぐ配線の配置面積に応じて決定される。このとき、IOブロックや、IOブロックと内部回路140を接続するバスを配置できる程度の隙間を残すこととする。図2(a)には明記しないが、この時点でIOブロックは各機能ブロック(ブロックA〜E)のいずれかに含まれてレイアウトされているものとする。
次に外部端子位置が半導体集積回路を搭載する装置等の構成などにより決定すると、その決定された位置を外部端子の配置位置として、例えば、図2(b)の外部端子110a、110bに示すように決定する。
そして、決定した外部端子位置それぞれの近傍にIOブロックたる外部端子I/F回路の配置位置を、例えば、図3(a)に示すように決定する。即ち、外部端子110aの配置位置の近傍に対応する外部端子I/F回路130aの配置位置を決定し、外部端子110bの配置位置の近傍に対応する外部端子I/F回路130bの配置位置を決定する。
そして、決定した外部端子I/F回路130a、130bと、内部回路140とを接続するバスの配置位置を、図3(b)に示すように決定する。即ち、内部回路140と外部端子I/F回路130aとを接続するバス124aと、内部回路140と外部端子I/F回路130bとを接続するバス124bとの配置位置を図3(b)に示すように決定する。なお、図3(b)においては、内部回路140と外部端子I/F回路130a、130bとを直接結線するように記載しているが、実際には、各ブロックの部品間を縫うように、配線位置を決定することになる。
そうして、決定されたバスの配線位置によって定まるバスの配線長に応じてタイミング調整回路たるスライスの段数とその配置位置を決定する。即ち、図3(b)に示すように、バス124aの配線長に応じて、スライス125a、125bを、バス124bの配線長に応じて、スライス125cの配置位置を決定する。
なお、図2、3においては、内部回路や、外部端子I/F回路、スライスは、図面の見易さのために、大きく示しているが、実際には、それぞれの部品の配置に要する面積はそれほど大きいものではない。
<まとめ>
以上に説明してきたように、本実施の形態1におけるレイアウト設計方法においては、先にデータ転送制御回路を含む1以上の機能ブロックそれぞれの部品や配線のレイアウトを決定した後で、要求された外部端子位置に外部端子を配置し、その近傍にIOブロックを配する。これによって、外部端子位置とIOブロックが理想に近い形での配置を実現できる。また、IOブロックとデータ転送制御回路とをバスで接続し、そのバスに当該バスの配線長に応じた数のタイミング調整回路を挿入することによって、信号間のタイミング調整がなされ、正常に動作する半導体集積回路を作成できる。
したがって、外部端子位置の変更によるフロアプランの変更といった事態を招くことなく、半導体集積回路のレイアウト設計をより柔軟に行えるとともに、そのレイアウト設計の設計コストを抑制することができる。
<変形例1>
上記実施の形態1に示したレイアウト設計方法においては、各外部端子I/F回路と内部回路とを接続するバスをそれぞれ設けるように配置を決定することとした。しかしながら、当該構成は、外部端子I/F回路分の個数のバスを配線しなければならず、その分半導体集積回路の面積を増大させるという問題がある。
そこで、本変形例1においては、上記実施の形態1に示した半導体集積回路の設計面積をより小さくし得るレイアウト設計方法を開示する。
本変形例1における上記実施の形態1との差異は、バスを各外部端子I/F回路に応じて設けるのではなく、共有バスで接続することにある。
本変形例1に係るレイアウト設計方法を図4(a)のフローチャートに示す。
図4(a)に示すフローチャートにおいて、図1に示したフローチャートとの差異は、ステップS403以降の処理となる。ステップS401、S402と、ステップS101、102とにおける処理は、共通しているので、ここではその説明を割愛する。
ステップS402で複数の外部端子の配置を決定した後、複数のIOブロックたる外部端子I/F回路の配置を決定し、配置した外部端子I/F回路の配置位置に応じて、全ての外部端子I/F回路になるべく近接するように共有バスの配置を決定する。そして、データ転送制御回路たる内部回路から共有バスに接続する配線の配置位置を、当該配線がなるべく短くなるように決定する。そして、内部回路からの配線長に応じて、即ち、内部回路から一定距離ごとに、共有バス上にタイミング調整回路たるスライスの配置位置を決定する(ステップS403)。
そして、複数のチャネルと複数のIOブロックたる外部端子I/F回路それぞれの共有バスへの接続位置を決定し、共有バスまでの配線の配置位置を決定する(ステップS404)。
なお、当該図4(a)に示すフローチャートに従ったレイアウト設計方法は、図4(b)に示すように変形することができる。即ち、ステップS401における機能ブロックの配置の決定と、ステップS402とステップS403における外部端子の配置と、それに伴うIOブロックの配置、共有バスの配置とタイミング調整回路の配置の決定とは、それぞれ並行に処理されてもよい。
なお、図4(a)や、図4(b)においては、データ転送制御回路が機能ブロックに含まれる例を記載しているが、データ転送制御回路は必ずしも機能ブロックに含まれなくともよい。データ転送制御回路は、複数のIOブロックそれぞれに含まれる、あるいは、IOブロックそれぞれに対応する形で配置することを前提としたレイアウト設計を行ってもよい。
また、図4(a)、(b)及び図5(b)では機能ブロックと複数のIOブロックがバス型のトポロジーで接続される例を記載しているが、機能ブロックと複数のIOブロックがデイジーチェーン型のトポロジーで接続されても良い。バス型のトポロジーで接続するか、デイジーチェーン型のトポロジーで接続するかは設計の仕様で定められ、当該使用に従って、レイアウト設計がなされる。
この変形例1に従って、レイアウトを行う一具体例を図2及び図5を用いて説明する。
まず、ステップS401及びステップS402における処理を経ることにより、図2(b)に示すレイアウトができる。ここまでは、実施の形態1に示した通りである。
一方、本変形例1においては、ステップS403の処理を経ることにより、図5(a)に示すようなレイアウトが生成される。
図5(a)に示すように、変形例1においては、上記実施の形態1と異なり、ステップS403においては、複数の外部端子(110a、110b)が配置を定められると、配置した外部端子に接続するための共有バス124の配置を決定する。そして、内部回路140からの共有バス124への接続位置並びに配線位置を決定する。そして、決定した共有バス124上に、内部回路140からの距離に応じて、タイミング調整回路たるスライス125a、125b、125cの配置位置が決定される。即ち、内部回路140から一定距離が離れるごとに、スライスを配置していく。
そして、最終的に定められた各外部端子I/F回路130a、130bと、内部回路140とを共有バス124を介して接続した場合の配線長に応じて、その間に挿入されるべきタイミング調整回路の段数を決定し、当該決定された段数だけIOブロック‐内部ブロック間に挿入されるように、IOブロックから共有バスへの接続位置が図5(b)に示すように決定される。図5(b)の例では、外部端子I/F回路130aと内部回路140との間には、2つの段数のスライスが挿入されるように、スライス125a、125bを経由する位置を外部端子I/F回路130aからの接続位置としている。また、外部端子I/F回路130bと内部回路140との間には、1つの段数のスライスが挿入されるように、スライス125bを経由する位置を外部端子I/F回路130bからの接続位置としている。
<まとめ>
当該変形例1における半導体集積回路におけるレイアウト設計方法によれば、外部端子の配置位置の決定が遅れたとしても、それほど、半導体集積回路のレイアウト設計を変更せずに、外部端子位置を配置したレイアウトが設計できるとともに、各外部端子I/F回路と、内部回路とを接続するバスを共有バスとすることで、半導体集積回路の設計面積を、共有バスとしない場合に比して、小さくすることができる。
<変形例2>
上記変形例1においては、外部端子I/F回路と、内部回路とを接続するバスを共有バスとするレイアウト設計を提示した。本変形例2においては、更なる利便性の高いレイアウト設計方法を提示する。
本変形例2と上記変形例1における差異は、共有バスの配置位置の決定タイミングにある。即ち、変形例2における共有バスの配置の決定タイミングを外部端子の配置位置が定まるよりも先に決定することにある。
本変形例2に係るレイアウト設計方法を、図6のフローチャートに示す。
図6(a)のフローチャートに示すように、まず、設計する半導体集積回路の要求仕様に応じて、半導体集積回路のサイズを決定し、共有バスの配置を決定する。そして、当該共有バス上を流れる信号のタイミング調整を行うためのタイミング調整回路の配置位置を決定する(ステップS601)。当該共有バスは、いずれの内部回路とも接続可能なように、かつ、外部端子が配される周縁部になるべく近くなるように配する。また、タイミング調整回路は、各内部回路から外部端子までの配線距離に応じて配されるべきであるため、この場合には、共有バス上に一定距離間隔で配することとなる。
次に設計する半導体集積回路の要求仕様に応じて、データ転送制御回路を含む各機能ブロックの配置位置を決定する(ステップS602)。なお、図6(a)の場合であれば、ステップS601とステップS602との処理は前後してもよい。
データ転送制御回路を含む各機能ブロックや、共有バスの配置、タイミング調整回路の配置が決定すると、次に、半導体集積回路の要求仕様に応じた、外部端子の配置が決定され、決定された位置を外部端子の配置位置とする(ステップS603)。
複数の外部端子の配置位置が決定すると上記実施の形態1においても示したように、各外部端子に対応する複数のIOブロックの配置を決定する(ステップS604)。
複数のIOブロックの配置を決定すると、当該複数のIOブロックそれぞれの共有バスへの接続位置を決定する(ステップS605)。当該接続位置は、各IOブロックから共有バスへの配線長がなるべく短くなるように配置位置を決定する。
なお、当該図6(a)に示すフローチャートに従ったレイアウト設計方法は、図6(b)に示すように変形することができる。即ち、ステップS601における機能ブロックの配置の決定と、ステップS602及びステップS603における外部端子の配置と、それに伴うIOブロックの配置、共有バスの配置とタイミング調整回路の配置の決定と、ステップS604における共有バスとタイミング調整回路の配置とは、それぞれ並行に処理されてもよい。
なお、図6(a)や、図6(b)においては、データ転送制御回路が機能ブロックに含まれる例を記載しているが、データ転送制御回路は必ずしも機能ブロックに含まれなくともよい。データ転送制御回路は、複数のIOブロックそれぞれに含まれる、あるいは、IOブロックそれぞれに対応する形で配置することを前提としたレイアウト設計を行ってもよい。
また、図6(a)、(b)及び図8では機能ブロックと複数のIOブロックがバス型のトポロジーで接続される例を記載しているが、機能ブロックと複数のIOブロックがデイジーチェーン型のトポロジーで接続されても良い。バス型のトポロジーで接続するか、デイジーチェーン型のトポロジーで接続するかは設計の仕様で定められ、当該仕様に従って、レイアウト設計がなされる。
このようにして設計されるレイアウトの一例を図7及び図8を用いて説明する。
図7(a)に示すように、まず、変形例2においては、半導体集積回路のサイズ、仕様、データ転送制御回路たる内部回路140を含む各機能ブロックのサイズに応じて、内部回路140及び機能ブロックの配置を定めるとともに、共有バス124の配置位置を決定する。
そして、次に、図7(b)に示すように決定された外部端子位置に従って、外部端子110a、110bの配置位置を決定する。
外部端子110a、110bの配置位置が定まると、図8に示すように、各外部端子に対応する外部端子I/F回路の配置位置を決定する。
そして、決定した外部端子I/F回路の配置位置から、内部回路140までの距離に応じて、共有バス124への接続位置を決定し、各外部端子I/F回路からの共有バス124への配線の配置を決定する。
<まとめ>
本変形例2に示したレイアウト設計方法によれば、外部端子の配置位置を決定する前に、共有バスの配置位置も決定してしまっているため、外部端子の配置位置が決定した後の設計工数を、上記変形例1に示したものよりも、少なくすることができる。
<実施の形態2>
実施の形態2においては、上記各変形例に示した手法を用いてレイアウト設計を行って作成された半導体集積回路について、その構成及び動作を説明する。
図9は半導体集積回路100の機能構成を示す機能ブロック図である。
図9に示すように半導体集積回路100は、外部端子110a、110bと、スライスバス121、122、123と、スライス群124、125と、I/F回路130a、130bと、DMAC(Direct Memory Access Controller)140と、調停器151、152と、バッファ160とを含んで構成される。なお、本実施の形態2においては、上記実施の形態1との共通点を明確にすべく、本来DMACには別の符号を割り振るべきところを、上記実施の形態1に示す内部回路に相当するものということで、同じ符号140を付している。
外部端子110a、110bは、それぞれ対応するI/F回路130a、130bに接続され、半導体集積回路100を搭載する機器上の回路等に接続するための端子である。各外部端子は、それぞれが1本以上の端子から構成されている。
スライスバス121、122、123は、スライス群124−DMAC140間、スライス群124−スライス群125間の信号を伝達するための信号線である。
スライス群124、125は、入力された信号のタイミング調整を実行する機能を有する。ここで、各スライスは、それぞれ、予め定められた固定長の時間幅分の調整を実行する。スライス群124、125は、具体的には、フリップフロップあるいはラッチなどにより実現されるものであり、ここでは、入力された信号をリタイミングする機能を有するものとする。上述したように、リタイミングとは、入力された信号を半導体集積回路が動作する際に用いられる動作クロックの周期に同期させた信号を出力することをいう。なお、図面上では、当該動作クロック用の配線等は当然備えられているものとして記載していない。また、半導体集積回路は、当該動作クロックを生成する水晶発振子等も搭載する構成としていてもよいし、あるいは当該動作クロックが半導体集積回路外部から供給される構成としてもよい。スライスバス121、122、123、スライス群124、125を含んで、共有バスを形成している。
I/F回路130a、130bは、外部からの信号をDMAC140に中継する機能を有し、また、DMAC140から転送されてきた信号を接続している外部の機器へと送信する機能を有する。
DMAC140は、バッファ160にアクセスし、データを読み出す、あるいは、データを書き込む機能を有する。また、DMAC140は、半導体集積回路100に接続される回路や装置と通信を実行する機能を有する。DMAC140は、個別の経路へのデータ転送を行う複数のチャネルでの通信を実行する機能を有し、ここでは、チャネル141aと、チャネル141bとを備える。
本実施形態では、チャネル141aはバッファ160から外部端子I/F回路130aに対しデータ転送を行い、チャネル141bは外部端子I/F回路130bからバッファ160に対しデータ転送を行うものとする。よって、半導体集積回路100では、チャネル141aを使用してバッファ160から共有バス、外部端子I/F回路130a及び外部端子110aを経由して半導体集積回路100外部に情報を出力し、チャネル141bを使用して半導体集積回路100外部から外部端子110b、外部端子I/F回路130b、及び共有バスを経由してバッファ160に情報を入力する。
調停器151、152は、共有バスに入力される信号のうち、いずれを転送するのかを調停する機能を有する。なお、調停器151は、DMAC140から、I/F回路へのダウンリンク用の信号の調停を実行するものであり、調停器152は、I/F回路からDMAC140へのアップリンク用の信号の調停を実行するものである。チャネル141aと外部端子I/F回路130aとの間の情報転送(以下では情報転送Aと呼称する)、並びにチャネル141bと外部端子I/F回路130bとの間の情報転送(以下では情報転送Bと呼称する)は、共有バスを経由して行われる。情報転送A及び情報転送Bにおいては共に共有バスを使用するため、情報を転送する前には予めバス権を獲得する必要があり、調停器151、152は、要求されるバス権の調停を担う。
バッファ160は、DMAC140、半導体集積回路100などから転送されるデータを一時的に記憶する機能を有するメモリである。バッファ160は、DMAC140から書き込まれたデータを保持する機能と、保持しているデータのうちDMAC140から要求されたデータを出力する機能とを有する。
ここで、DMAC140と外部端子I/F回路130aの間で送受する情報、及び情報授受を実現するための信号接続について、図10を使用して説明する。
DMAC140と外部端子I/F回路130aの間では、共有バス1200を介してコマンド、ダウンリンクデータ、ダウンリンクインフォメーション、アップリンクデータ、アップリンクインフォメーションの5つの全ての情報、あるいはそのサブセットの情報が送受される。また、共有バス1200はコマンドバス、ダウンリンクデータバス、ダウンリンクインフォメーションバス、アップリンクデータバス、アップリンクインフォメーションバスの5つのバスにより構成されている。コマンドの送受にはコマンドバスを使用し、ダウンリンクデータの送受にはダウンリンクデータバスを使用し、ダウンリンクインフォメーションの送受にはダウンリンクインフォメーションバスを使用し、アップリンクデータの送受にはアップリンクデータバスを使用し、アップリンクインフォメーションの送受にはアップリンクインフォメーションバスを使用する。
コマンドバス、ダウンリンクデータバス、及びダウンリンクインフォメーションバスを構成する信号は、DMAC140から外部端子I/F回路130aに向けて情報を伝達し、アップリンクデータバス、及びアップリンクインフォメーションバスを構成する信号は、外部端子I/F回路130aからDMAC140に向けて情報を伝達する。
コマンドは、DMAC140から外部端子I/F回路130aに対し送られるデータ転送の属性を示す情報である。具体的には、コマンドで送受する情報は、そのデータ転送がダウンリンクデータ・アップリンクデータのいずれの方向の転送であるのかを示す情報、転送するデータのサイズ、転送アドレスなどの情報を含む。
ダウンリンクデータは、DMAC140から外部端子I/F回路130aに対し送られるデータ及びデータ同期情報であり、アップリンクデータは外部端子I/F回路130aからDMAC140に送られるデータ及びデータ同期情報である。ここで、データ同期情報とはデータと同じサイクルで送られるデータの属性を示す情報であり、具体的にはデータのバイトイネーブル、最終データ転送などの情報を含む。
インフォメーションとは、データ転送とは非同期に、DMAC140と外部端子I/F回路130aの間で授受される情報である。具体的には、アップリンクインフォメーションとしては、例えば外部端子I/F回路130aからチャネル141aに対し転送開始要求などを含む情報が送られ、ダウンリンクインフォメーションとしてはチャネル141aから外部端子I/F回路130aに対しバッファ160へのデータ書き込み完了情報などを含む情報が送られる。
また、外部端子I/F回路130aからDMAC140に対し、共有バス1200で送受する情報以外に、ライトレディとリードレディの情報が送られている。ライトレディは外部端子I/F回路130aがダウンリンクデータ転送をするためのコマンドを受け付けることが可能であることを示す情報であり、リードレディは外部端子I/F回路130aがアップリンクデータ転送をするためのコマンドを受け付けることが可能であることを示す情報である。ライトレディ信号とリードレディ信号は共有バスとは異なり、外部端子I/F回路130aとチャネル141aとの間、外部端子I/F回路130bとチャネル141bとの間でpeer to peerに接続されている信号である。
図10では、DMAC140と外部端子I/F回路130aの間は共有バスで接続されており、当該共有バスはスライス群124でスライスされている。DMAC140とスライス群124の間はスライスバス121で接続されており、スライスバス121はコマンドバス1211とダウンリンクデータバス1212とダウンリンクインフォメーションバス1213とアップリンクデータバス1214とアップリンクインフォメーションバス1215で構成される。スライス群124と外部端子I/F回路130aの間はスライスバス122で接続されており、スライスバス122はコマンドバス1221とダウンリンクデータバス1222とダウンリンクインフォメーションバス1223とアップリンクデータバス1224とアップリンクインフォメーションバス1225で構成される。
スライス群124は、コマンドバス1211とコマンドバス1221をスライスするためのスライス1241と、ダウンリンクデータバス1212とダウンリンクデータバス1222をスライスするためのスライス1242と、ダウンリンクインフォメーションバス1213とダウンリンクインフォメーションバス1223をスライスするためのスライス1243と、アップリンクデータバス1214とアップリンクデータバス1224をスライスするためのスライス1244と、アップリンクインフォメーションバス1215とアップリンクインフォメーションバス1225をスライスするためのスライス1245と、後に説明するライトレディ信号をスライスするためのスライス1246と、後に説明するリードレディ信号をスライスするためのスライス1247を含む。
コマンドは、DMAC140から出力され、コマンドバス1211、スライス1241、コマンドバス1221を経由して外部端子I/F回路130aに送られる。ダウンリンクデータは、DMAC140から出力され、ダウンリンクデータバス1212、スライス1242、ダウンリンクデータバス1222を経由して外部端子I/F回路130aに送られる。ダウンリンクインフォメーションは、DMAC140から出力され、ダウンリンクインフォメーションバス1213、スライス1243、ダウンリンクインフォメーションバス1223を経由して外部端子I/F回路130aに送られる。
アップリンクデータは、外部端子I/F回路130aから出力され、アップリンクデータバス1224、スライス1244、アップリンクデータバス1214を経由してDMAC140に送られる。アップリンクインフォメーションは、外部端子I/F回路130aから出力され、アップリンクインフォメーションバス1225、スライス1245、アップリンクインフォメーションバス1215を経由してDMAC140に送られる。
また、共有バス以外の信号として、外部端子I/F回路130aからDMAC140に対しライトレディ信号及びリードレディ信号が送られており、共有バス同様にそれぞれスライス1246、スライス1247によりスライスされている。
なお、図10には明示しないが、ライトレディ信号及びリードレディ信号は外部端子I/F回路130bからDMAC140に対しても送られており、スライス群124には、外部端子I/F回路130bから送られるライトレディ信号とリードレディ信号のスライスも含むものとする。
次に、DMAC140と調停器151との間の信号接続を図11(a)を用いて説明する。
調停器151はDMAC140の近傍に配置されており、DMAC140と調停器151との間の配線はスライスされない。
チャネル141a及びチャネル141bそれぞれが調停器151と直接接続されており、チャネル141a及びチャネル141bから調停器151に対してバス権要求信号群が送られており、調停器151からチャネル141a及びチャネル141bそれぞれに対してバス権承認信号群が送られている。
チャネル141a及びチャネル141bから調停器151に対して送られるバス権要求信号群は、コマンドバス権要求信号、ダウンリンクデータバス権要求信号、及びダウンリンクインフォメーションバス権要求信号の全てあるいはそれらのサブセットにより構成される。調停器151からチャネル141a及びチャネル141bに対して送られるバス権承認信号は、コマンドバス権承認信号、ダウンリンクデータバス権承認信号、及びダウンリンクインフォメーションバス権承認信号の全てあるいはそれらのサブセットにより構成される。
チャネル141aがコマンドバスを使用する場合、チャネル141aが調停器151に対しコマンドバス権要求信号を送り、それを受けて調停器151がチャネル141aに対しコマンドバス権承認信号を返す。チャネル141aがダウンリンクデータバスを使用する場合、チャネル141aが調停器151に対しダウンリンクデータバス権要求信号を送り、それを受けて調停器151がチャネル141aに対しダウンリンクデータバス権承認信号を返す。チャネル141aがダウンリンクインフォメーションバスを使用する場合、チャネル141aが調停器151に対しダウンリンクインフォメーションバス権要求信号を送り、それを受けて調停器151がチャネル141aに対しダウンリンクインフォメーションバス権承認信号を返す。チャネル141bについても同様である。
外部端子I/F回路群130と調停器152との間の信号接続を、図11(b)を使用して説明する。本実施形態では、外部端子I/F回路130bが外部端子I/F回路130aの遠方に配置されており、調停器152は外部端子I/F回路130bの近傍に配置されている。そのため、外部端子I/F回路130aと調停器152との間の配線はスライス群1250によりスライスされている一方で、外部端子I/F回路130bと調停器152との間の配線はスライスされていない。
スライス群1250は、スライス群1240と同様に、共有バス信号をスライスするためのスライス1251からスライス1255(スライス群1240の構成要素であるスライス1241から1245に相当する)を有すると共に、外部端子I/F回路130bからDMAC140に対し送られるライトレディ信号、及びリードレディ信号をスライスするためのスライス1256及びスライス1257、更にはバス権要求信号群及びバス権承認信号群をスライスするためのスライス1258及びスライス1259を備えている。
外部端子I/F回路130bから調停器152に対してバス権要求信号群が送られており、調停器152から外部端子I/F回路130bに対してバス権承認信号群が送られている。外部端子I/F回路130aから調停器152に対してスライス1258を経由してバス権要求信号群が送られており、調停器152から外部端子I/F回路130aに対してスライス1259を経由してバス権承認信号群が送られている。
外部端子I/F回路130a及び外部端子I/F回路130bから調停器152に対して送られるバス権要求信号群は、アップリンクデータバス権要求信号、及びアップリンクインフォメーションバス権要求信号の全てあるいはそれらのサブセットにより構成される。調停器152から外部端子I/F回路130a及び外部端子I/F回路130bに対して送られるバス権承認信号は、アップリンクデータバス権承認信号、及びアップリンクインフォメーションバス権承認信号の全てあるいはそれらのサブセットにより構成される。
外部端子I/F回路130aがアップリンクデータバスを使用する場合、外部端子I/F回路130aが調停器152に対しアップリンクデータバス権要求信号を送り、それを受けて調停器152が外部端子I/F回路130aに対しアップリンクデータバス権承認信号を返す。外部端子I/F回路130aがアップリンクインフォメーションバスを使用する場合、外部端子I/F回路130aが調停器152に対しアップリンクインフォメーションバス権要求信号を送り、これを受けて調停器152が外部端子I/F回路130aに対しアップリンクインフォメーションバス権承認信号を返す。外部端子I/F回路130bについても同様である。
図12に調停器の構成を記載する。図12(a)は調停器151の構成を示す図である。調停器151はコマンドバス権調停回路1511、ダウンリンクデータバス権調停回路1512、及びダウンリンクインフォメーションバス権調停回路1513を含んで構成される。
コマンドバス権調停回路1511は、チャネル141a及びチャネル141bそれぞれからコマンドバス権要求信号を受け、チャネル141a及びチャネル141bそれぞれに対してコマンドバス権承認信号を返す。
ダウンリンクデータバス権調停回路1512は、チャネル141a及びチャネル141bそれぞれからダウンリンクデータバス権要求信号を受け、チャネル141a及びチャネル141bそれぞれに対しダウンリンクデータバス権承認信号を返す。ダウンリンクインフォメーションバス権調停回路1513は、チャネル141a及びチャネル141bそれぞれからダウンリンクインフォメーションバス権要求信号を受け、チャネル141a及びチャネル141bそれぞれに対しダウンリンクインフォメーションバス権承認信号を返す。
図12(b)は調停器152の構成を示す図である。調停器152はアップリンクデータバス権調停回路1522、及びアップリンクインフォメーションバス権調停回路1523を含んで構成される。
アップリンクデータバス権調停回路1522は、外部端子I/F回路130a及び130bそれぞれからアップリンクデータバス権要求信号を受け、外部端子I/F回路130a及び130bそれぞれに対しアップリンクデータバス権承認信号を返す。
アップリンクインフォメーションバス権調停回路1523は、外部端子I/F回路130a及び130bそれぞれからアップリンクインフォメーションバス権要求信号を受けて、外部端子I/F回路130a及び130bそれぞれに対しアップリンクインフォメーションバス権承認信号を返す。
以上が調停器151、152の機能構成である。
なお、コマンドバス、ダウンリンクデータバス、ダウンリンクインフォメーションバスに共通して、チャネル141aあるいはチャネル141bがバス権の承認を得た後は、共有バスの種類(コマンド、ダウンリンクデータ、ダウンリンクインフォメーション)毎に定められたサイクル数分だけ共有バスを使用することが可能となる。当該サイクル数は共有バスの使用回路(チャネル141a、チャネル141b)毎に個別の値であっても良い。
また、アップリンクデータバス、アップリンクインフォメーションバスに共通して、外部端子I/F回路130aあるいは外部端子I/F回路130bがバス権の承認を得た後は、共有バスの種類(アップリンクデータ、アップリンクインフォメーション)毎に定められたサイクル数分だけ共有バスを使用することが可能となる。当該サイクル数は共有バスの使用回路(外部端子I/F回路130a、外部端子I/F回路130b)毎に個別の値であっても良い。
<動作>
次に、半導体集積回路100の動作を図13に示すタイミングチャートや、図14〜図17に示すフローチャートを用いて説明する。
ここで図13を使用して、チャネル141aと外部端子I/F回路130aとの間のデータ転送、及びチャネル141bと外部端子I/F回路130bとの間のデータ転送の典型的な例を説明する。図13(a)にはチャネル141aから外部端子I/F回路130aへのデータ転送を行う場合の情報転送フローを記載している。
本実施の形態2では、データ転送を行うために、まず外部端子I/F回路130aからチャネル141aに対し転送サイズ情報を含んだ転送開始要求を送り、これを受けてチャネル141aがデータ転送を開始する。チャネル141aは指定された転送サイズ分のデータを一度に転送しきるのではなく、所定のサイズに分割して複数回に分けてデータ転送を行う。データ転送を行う際は、チャネル141aから外部端子I/F回路130aに対しコマンドを送り、続いてチャネル141aから外部端子I/F回路130aに対しダウンリンクデータを送る。これを、指定されたサイズ分のデータ転送を終えるまで繰り返す。ただし、転送開始要求時に指定された転送サイズが所定のサイズより小さい場合は、データ転送は一度で終える。
図13(a)には、データ転送開始時の、転送開始要求の授受及び、初めのコマンド、データの授受までを記載したフロー図である。以下、図13(a)に記載のフローを詳細に説明する。
まず、外部端子I/F回路130aがチャネル141aに対し転送開始要求を通知するために、調停器152に対してアップリンクインフォメーションバス権要求を送り、それに応じて調停器152が外部端子I/F回路130aに対しアップリンクインフォメーションバス権承認を返している。それを受けた外部端子I/F回路130aはチャネル141aに対しアップリンクインフォメーションバスを利用して転送開始要求を通知する。
転送開始要求を受けたチャネル141aは外部端子I/F回路130aに対しコマンドを送付するために、調停器151に対してコマンドバス権要求を送り、それに応じて調停器151がチャネル141aに対しコマンドバス権承認を返している。それを受けたチャネル141aは外部端子I/F回路130aに対しコマンドバスを利用してコマンドを送付する。
コマンドの送付を終えたチャネル141aは外部端子I/F回路130aに対しデータを送付するために、調停器151に対してダウンリンクデータバス権要求を送り、それに応じて調停器151がチャネル141aに対しダウンリンクデータバス権承認を返している。それを受けたチャネル141aは外部端子I/F回路130aに対しダウンリンクデータバスを利用してデータを送付する。
図13(b)には外部端子I/F回路130bからチャネル141bへのデータ転送を行う場合の情報転送フローを記載している。
本実施の形態2では、データ転送を行うために、まず外部端子I/F回路130bからチャネル141bに対し転送サイズ情報を含んだ転送開始要求を送り、これを受けてチャネル141bがデータ転送を開始する。チャネル141bは指定された転送サイズ分のデータを一度に転送しきるのではなく、所定のサイズに分割して複数回に分けてデータ転送を行う。データ転送を行う際は、チャネル141bから外部端子I/F回路130bに対しコマンドを送り、続いて外部端子I/F回路130bからチャネル141bに対しアップリンクデータを送る。これを、指定されたサイズ分のデータ転送を終えるまで繰り返す。ただし、転送開始要求時に指定された転送サイズが所定のサイズより小さい場合は、データ転送は一度で終える。その後、全データ転送を終えた後に、チャネル141bから外部端子I/F回路130bに対しデータ転送完了通知を行う。
図13(b)には、指定されたサイズ分のデータ転送を一度のデータ転送で終える場合の例を記載しており、一度のコマンドとデータの授受を終えた後に、データ転送完了通知を行っている。以下、図13(b)に記載のフローを詳細に説明する。
まず、外部端子I/F回路130bがチャネル141bに対し転送開始要求を通知するために、調停器152に対してアップリンクインフォメーションバス権要求を送り、それに応じて調停器152が外部端子I/F回路130bに対しアップリンクインフォメーションバス権承認を返している。それを受けた外部端子I/F回路130bはチャネル141bに対しアップリンクインフォメーションバスを利用して転送開始要求を通知する。
転送開始要求を受けたチャネル141bは外部端子I/F回路130bに対しコマンドを送付するために、調停器151に対してコマンドバス権要求を送り、それに応じて調停器151がチャネル141bに対しコマンドバス権承認を返している。それを受けたチャネル141bは外部端子I/F回路130bに対しコマンドバスを利用してコマンドを送付する。
コマンドを受けた外部端子I/F回路130bはチャネル141bに対しデータを送付するために、調停器152に対してアップリンクデータバス権要求を送り、それに応じて調停器152が外部端子I/F回路130bに対しアップリンクデータバス権承認を返している。それを受けた外部端子I/F回路130bはチャネル141bに対しアップリンクデータバスを利用してデータを送付する。
データを受けたチャネル141bはバッファ160へのデータ書込み完了を確認した後、外部端子I/F回路130bに対しデータ転送完了を通知するために、調停器151に対してダウンリンクインフォメーションバス権要求を送り、それに応じて調停器151がチャネル141bに対しダウンリンクインフォメーションバス権承認を返している。それを受けたチャネル141bは外部端子I/F回路130bに対しダウンリンクインフォメーションバスを利用してデータ転送完了を通知する。
図14は、チャネル141aのデータ転送制御を示すフローチャートである。まず、外部端子I/F回路130aからの転送開始要求を受けてチャネル141aが起動する。
起動されたチャネル141aは、まず外部端子I/F回路130aから送られてくるライトレディ信号を確認する。外部端子I/F回路130aがライトレディをアサートするまで待ち(ステップS1401のNO)、ライトレディがアサートした(ステップS1401のYES)ところでコマンドバス権を要求する(ステップS1402)。コマンドバス権を要求するとコマンドバス権が承認されるまで待ち(ステップS1403のNO)、コマンドバス権が承認されたところで(ステップS1403のYES)コマンドを送信する(ステップS1404)。
コマンドを送信した後は外部端子I/F回路130aに送るべきデータが準備できるまで待ち(ステップS1405のNO)、データが準備できたところで(ステップS1405のYES)、ダウンリンクデータバス権を要求する(ステップS1406)。ダウンリンクデータバス権を要求するとダウンリンクデータバス権が承認されるまで待ち(ステップS1407のNO)、ダウンリンクデータバス権が承認されたところで(ステップS1407のYES)ダウンリンクデータを送信する(ステップS1409)。
転送開始要求時に指定されたサイズ分のデータ転送が完了していない場合はS1401に戻り(ステップS1409のNO)、再びデータ転送を行う。指定されたサイズ分のデータ転送が完了している場合は(ステップS1409のYES)、チャネル141aは停止し、次の転送開始要求を受けるまで動作しない。
図15は、外部端子I/F回路130aのデータ転送制御を示すフローチャートである。まず、外部端子I/F回路130aは半導体集積回路100内部の図示しないプロセッサなどにより起動される。
起動された外部端子I/F回路130aはチャネル141aに転送開始要求を通知するためにアップリンクインフォメーションバス権を要求する(ステップS1501)。アップリンクインフォメーションバス権を要求するとアップリンクインフォメーションバス権が承認されるまで待ち(ステップS1502のNO)、アップリンクインフォメーションバス権が承認されたところで(ステップS1502のYES)、アップリンクインフォメーションバスを使用して転送開始要求を送信する(ステップS1503)。
次に外部端子I/F回路130aのデータ受信の準備が整うまで待ち(ステップS1504のNO)、データ受信の準備が完了した時点でライトレディをアサートする(ステップS1505)。その後、チャネル141aから送られるコマンドを受信し(ステップS1506)、次いでダウンリンクデータを受信する(ステップS1507)。
転送開始要求時に指定されたサイズ分のデータ転送が完了していない場合はS1501に戻り(ステップS1508のNO)再びデータ転送を行う。指定されたサイズ分のデータ転送が完了している場合は、外部端子I/F回路130aは停止し、次の起動指示を受けるまで動作しない。
図16は、チャネル141bのデータ転送制御を示すフローチャートである。まず、外部端子I/F回路130bからの転送開始要求を受けてチャネル141bが起動する。
起動されたチャネル141bは、まずチャネル141bのデータ受信の準備が整うまで待ち(ステップS1601のNO)、準備が整うと(ステップS1601のYES)、次いで外部端子I/F回路130bから送られてくるリードレディ信号を確認する。外部端子I/F回路130bがリードレディをアサートするまで待ち(ステップS1602のNO)、リードレディがアサートしたところで(ステップS1602のYES)、コマンドバス権を要求する(ステップS1603のYES)。コマンドバス権を要求するとコマンドバス権が承認されるまで待ち(ステップS1604のNO)、コマンドバス権が承認されたところで(ステップS1604のYES)、コマンドを送信する(ステップS1605)。その後、外部端子I/F回路130bから送られるデータを受信しバッファ160への書き込みを行う(ステップS1606)。
転送開始要求時に指定されたサイズ分のデータ転送が完了していない場合は(ステップS1607のNO)ステップS1601に戻り、再びデータ転送を行う。指定されたサイズ分のデータ転送が完了している場合は、データ転送完了通知を行うために、アップリンクインフォメーションバス権を要求する(ステップS1608)。アップリンクインフォメーションバス権を要求するとアップリンクインフォメーションバス権が承認されるまで待ち(ステップS1609のNO)、アップリンクインフォメーションバス権が承認されたところでアップリンクインフォメーションバスを使用してデータ転送完了を通知する(ステップS1610)。その後、チャネル141bは停止し、次の転送開始要求を受けるまで動作しない。
図17は、外部端子I/F回路130bのデータ転送制御を示すフローチャートである。まず、外部端子I/F回路130bは半導体集積回路100内部の図示しないプロセッサなどにより起動される。
起動された外部端子I/F回路130bはチャネル141bに転送開始要求を通知するためにアップリンクインフォメーションバス権を要求する(ステップS1701)。アップリンクインフォメーションバス権を要求するとアップリンクインフォメーションバスが承認されるまで待ち(ステップS1702のNO)、アップリンクインフォメーションバスが承認されたところで(ステップS1702のYES)、アップリンクインフォメーションバス権を使用して転送開始要求を送信する(ステップS1703)。
次に外部端子I/F回路130bはリードレディをアサートする(ステップS1704)。その後、チャネル141bから送られるコマンドを受信する(ステップS1705)。コマンドを受信した後はチャネル141bに送るべきデータが準備できるまで待ち(ステップS1706のNO)、データが準備できたところで(ステップS1706のYES)、アップリンクデータバス権を要求する(ステップS1707)。アップリンクデータバス権を要求するとアップリンクデータバス権が承認されるまで待ち(ステップS1708のNO)、アップリンクデータバス権が承認されたところで(ステップS1708のYES)データを送信する(ステップS1709)。
転送開始要求時に指定されたサイズ分のデータ転送が完了していない場合は(ステップS1710のNO)、ステップS1704に戻り、再びデータ転送を行う。指定されたサイズ分のデータ転送が完了している場合は(ステップS1710のYES)、外部端子I/F回路130bはデータ転送完了の通知を受けた後に(ステップS1711)停止し、次の起動指示を受けるまで動作しない。
以上が各データ転送の動作の説明である。
ここから、実際のデータ転送のタイミングについて説明する。
図18は、DMAC140から外部端子I/F回路群130a、130bの方向に情報を伝える共有バスのバス権の割り当て及び共有バスの使用状況を示す図である。ここでは、チャネル141a及びチャネル141bがコマンドバスを使用しており、チャネル141a及びチャネル141bがバス権承認を得た際に共に共有バスを3サイクル使用する例を記載している。
時刻T0以前にチャネル141aからのコマンドバス権要求信号が調停器151に到達しており、それを受けた調停器151がチャネル141aに対し時刻T0にコマンドバス権承認を返している。その結果、時刻T0から時刻T2の間チャネル141aがスライスバス121のコマンドバスを使用する権利を得る(ダウンリンクバス権=A)。
時刻T0から時刻T2の間にチャネル141aからスライスバス121のコマンドバスに出力されたコマンドは、スライス群124を通過する際に1サイクル遅延し、時刻T1から時刻T3の間スライスバス122のコマンドバスに出力される。ここで、コマンドは外部端子I/F回路130aに取得される。
次に、時刻T3以前にチャネル141bからのコマンドバス権要求信号が調停器151に到達しており、それを受けた調停器151がチャネル141bに対し時刻T3にコマンドバス権承認を返している。その結果、時刻T3から時刻T5の間チャネル141bがスライスバス121のコマンドバスを使用する権利を得る(ダウンリンクバス権=B)。
時刻T3から時刻T5の間にチャネル141bからスライスバス121のコマンドバスに出力されたコマンドは、スライス群124を通過する際に1サイクル遅延し、時刻T4から時刻T6の間スライスバス122のコマンドバスに出力される。同様に、時刻T4から時刻T6の間スライスバス122のコマンドバスに出力されたコマンドは、スライス群125を通過する際に1サイクル遅延し、時刻T5から時刻T7の間スライスバス123のコマンドバスに出力される。ここで、コマンドは外部端子I/F回路130bに取得される。
以降、時刻T6から時刻T8のコマンドバス権及びそれに対応する共有バスの使用状況は時刻T0から時刻T2のそれと同様であり、時刻T9から時刻T11のコマンドバス権及びそれに対応する共有バスの使用状況は時刻T3から時刻T5のそれと同様である。
図19は、外部端子I/F回路群130からDMAC140の方向に情報を伝える共有バスのバス権の割り当て及び共有バスの使用状況を示す図である。ここでは、外部端子I/F回路130a及び外部端子I/F回路130bがアップリンクインフォメーションバスを使用しており、外部端子I/F回路130a及び外部端子I/F回路130bがバス権承認を得た際に共に共有バスを3サイクル使用する例を記載している。
時刻T0以前に外部端子I/F回路130aからのアップリンクインフォメーションバス権要求信号が調停器152に到達しており、それを受けた調停器152が外部端子I/F回路130aに対し時刻T0にアップリンクインフォメーションバス権承認を返している。その結果、時刻T0から時刻T2の間外部端子I/F回路130aがスライスバス123のアップリンクインフォメーションバスを使用する権利を得る(ダウンリンクバス権=A)。ただし、外部端子I/F回路130aはスライスバス123には接続されていないため、時刻T0から時刻T2の間、スライスバス123は使用されない。
外部端子I/F回路130aに送られるべきアップリンクインフォメーションバス権承認信号はスライス群125を通過する際に1サイクル遅延し、時刻T1にスライスバス122に接続される外部端子I/F回路130aに到達する。この結果、時刻T1から時刻T3の間外部端子I/F回路130aがスライスバス122のアップリンクインフォメーションバスを使用する権利を得る(ダウンリンクバス権=A)。
時刻T1から時刻T3の間に外部端子I/F回路130aからスライスバス122のアップリンクインフォメーションバスに出力された情報は、スライス群124を通過する際に1サイクル遅延し、時刻T2から時刻T4の間スライスバス121のアップリンクインフォメーションバスに出力される。ここで、アップリンクインフォメーションバス経由で送られた情報はチャネル141aに取得される。
次に、時刻T3以前に外部端子I/F回路130bからのアップリンクインフォメーションバス権要求信号が調停器152に到達しており、それを受けた調停器152が外部端子I/F回路130bに対し時刻T3にアップリンクインフォメーションバス権承認を返している。その結果、時刻T3から時刻T5の間外部端子I/F回路130bがスライスバス123のアップリンクインフォメーションバスを使用する権利を得る(ダウンリンクバス権=B)。
時刻T3から時刻T5の間に外部端子I/F回路130bからスライスバス123のアップリンクインフォメーションバスに出力された情報は、スライス群125を通過する際に1サイクル遅延し、時刻T4から時刻T6の間スライスバス122のアップリンクインフォメーションバスに出力される。同様に、時刻T4から時刻T6の間スライスバス122のアップリンクインフォメーションバスに出力された情報は、スライス群124を通過する際に1サイクル遅延し、時刻T5から時刻T7の間スライスバス121のアップリンクインフォメーションバスに出力される。ここで、アップリンクインフォメーションバス経由で送られた情報はチャネル141bに取得される。
このように、共有バスのバス権承認信号を共有バス経由で送付する情報と同等にスライスすることにより、共有バスのバス権切替時に共有バスの未使用期間を設けること無しに情報を転送することができ、高いバス使用効率を実現することが可能となる。
なお、図18及び図19では、共有バス使用回路(チャネル141a、チャネル141b、外部端子I/F回路130a、あるいは外部端子I/F回路130b)がバス権承認を得た際に共有バスを固定サイクル数(3サイクル)使用する例を記載したが、本発明はこれに限定されるものではない。例えば、この共有バスの使用期間は共有バスの使用回路毎に異なっていても良い。
共有バスの使用期間が共有バスの使用回路毎に異なる例を、図20及び図21を使用して説明する。ここでは、チャネル141a及びチャネル141bがコマンドバスを使用しており、チャネル141aがバス権承認を得た際に共有バスを3サイクル使用し、チャネル141bがバス権承認を得た際に共有バスを2サイクル使用する例を記載している。
図20は、調停器151が共有バスの使用回路毎の共有バスの使用期間を知らず、共有バスの使用期間の最大値(3サイクル)毎に調停を行い、バス権の承認を返す例を記載している。この場合、チャネル141bが共有バスを使用する権利を得ている期間(3サイクル)のうち1サイクルが未使用期間となる。具体的には、チャネル141bが共有バスを使用する権利を得ている時刻T5及び時刻T11で、チャネル141bはスライスバス121を使用しない。そのため時刻T6及び時刻T12でスライスバス122は使用されておらず、更に時刻T7及び時刻T13でスライスバス123は使用されていない。このため、共有バスの使用効率が低下してしまう。
これを避けるため、調停器151に使用回路毎の共有バスの使用期間情報を持たせ、使用回路毎の共有バスの使用期間に応じて、調停するタイミングを変化させても良い。
図21は、調停器151が使用回路毎の共有バスの使用期間情報を持ち、使用回路毎の共有バスの使用期間に応じて、調停するタイミングを変化させる例である。図20と同様に、チャネル141a及びチャネル141bがコマンドバスを使用しており、チャネル141aがバス権承認を得た際に共有バスを3サイクル使用し、チャネル141bがバス権承認を得た際に共有バスを2サイクル使用する例を記載している。
調停器151は、時刻T0で調停を行い調停器151がチャネル141aに対し時刻T0にコマンドバス権承認を返している。ここで調停器151はチャネル141aの共有バスの使用期間情報(3サイクル)を保持しており、次の調停を3サイクル後の時刻T3に行う。
調停器151は、時刻T3ではチャネル141bに対しコマンドバス権承認を返している。ここで調停器151はチャネル141bの共有バスの使用期間情報(2サイクル)を保持しており、次の調停を2サイクル後の時刻T5に行う。
調停器151は、時刻T5ではチャネル141aに対しコマンドバス権承認を返している。ここで調停器151はチャネル141aの共有バスの使用期間情報(3サイクル)を保持しており、次の調停を3サイクル後の時刻T8に行う。
このように、調停器151に使用回路毎の共有バスの使用期間情報を持たせ、使用回路毎の共有バスの使用期間に応じて調停するタイミングを変化させることにより、共有バスの使用回路毎に使用期間が異なる場合でも、高いバス使用効率を維持することが可能となる。
<まとめ>
以上に説明してきたように、本実施の形態2に示した半導体集積回路は、上記変形例に従って設計、作成されており、外部端子位置の決定が遅れていたとしても、問題なく動作する構成を実現できる。即ち、外部端子位置に応じて、タイミング調整回路の段数を決定して作成されているため、簡単な構成で、データ転送間の遅延等に配慮した半導体集積回路を実現できる。
<実施の形態3>
上記実施の形態2においては、各外部端子I/F回路130a、130bとDMAC140とがデータ転送を行う際に、バス権の使用期間が異なるものが混在する場合を説明した。
本実施の形態3においては、バス権の使用期間が異なる場合に、共有バスを分けて構成する例を説明する。なお、ここでいうバス権の使用期間は、1度のデータ転送におけるバースト長と言い換えてもよい。
図22は、共有バスを分けない場合の半導体集積回路200の構成例を示す機能ブロック図である。また、図23は、共有バスを分ける場合の半導体集積回路300の構成例を示す機能ブロック図である。なお、両機能ブロック図においては、基本的には、実施の形態2に示した半導体集積回路100と構成と略一致するので、若干省略してバッファ160等を省略して記載する。
DMAC240はチャネル241a、チャネル241b、チャネル241c、チャネル241dの4つのチャネルを含み、共有バスを介して外部端子I/F回路群230と接続されている。チャネル241aは外部端子I/F回路230aと情報を授受し、チャネル241bは外部端子I/F回路230bと情報を授受し、チャネル241cは外部端子I/F回路230cと情報を授受し、チャネル241dは外部端子I/F回路230dと情報を授受する。
チャネル241a、チャネル241b、チャネル241c、及びチャネル241dのそれぞれは調停器251に対しバス権要求信号群を送り、調停器251はチャネル241a、チャネル241b、チャネル241c、及びチャネル241dのそれぞれに対しバス権承認信号群を送る。外部端子I/F回路230a、外部端子I/F回路230b、外部端子I/F回路230c、及び外部端子I/F回路230dのそれぞれは調停器252に対しバス権要求信号群を送り、調停器252は外部端子I/F回路230a、外部端子I/F回路230b、外部端子I/F回路230c、及び外部端子I/F回路230dのそれぞれに対しバス権承認信号群を送る。バス権要求信号群とバス権承認信号群の構成は図11での説明と同様である。
また、図22では記載を省略しているが図1と同様に情報を授受するチャネルと外部端子I/F回路の間では、ライトレディ信号とリードレディ信号がスライスを介して接続されている。
共有バスはスライス群224、スライス群225とそれらによりスライスされたスライスバス221、スライスバス222、スライスバス223により構成される。DMAコントローラ240はスライスバス221に接続されており、外部端子I/F回路230a及び外部端子I/F回路230cはスライスバス222に接続されており、外部端子I/F回路230b及び外部端子I/F回路230dはスライスバス223に接続されている。
図24は、DMAコントローラ240から外部端子I/F回路群に230の方向に情報を伝える共有バスのバス権の割り当て及び共有バスの使用状況を示す図である。ここでは、チャネル241a、チャネル241b、チャネル241c、及びチャネル241dがコマンドバスを使用しており、チャネル241a及びチャネル241bがバス権承認を得た際に共有バスを3サイクル使用し、チャネル241c、及びチャネル241dがバス権承認を得た際に共有バスを2サイクル使用する例を記載している。また、調停器251は使用回路毎の共有バスの使用期間情報を持たず、固定サイクル(3サイクル)毎に調停を行う。
この場合、図20での説明と同様に、共有バスの使用期間が調停器251の調停間隔(3サイクル)よりも短いチャネル241c、及びチャネル241dが共有バスを使用する場合に、未使用期間(図中斜線部分)ができ、共有バスの使用効率が低下する。
この共有バスの使用効率の低下を回避するため、共有バスの使用期間3であるチャネル241a及びチャネル241bが使用する共有バスと、共有バスの使用期間2であるチャネル241c及びチャネル241dが使用する共有バスを個別に実装しても良い。この例を図23及び、図25と図26とを使用して説明する。
図23は個別の共有バスを実装する場合の構成例である。DMAC340及び外部端子I/F回路群330a〜330dの構成は、図22の場合と略同様である。ただし、図22とは異なり、共有バスを2系統設け、共有バスの系統毎に調停器を設けている点が異なる。
具体的には、チャネル341a、チャネル341b、外部端子I/F回路330a及び外部端子I/F回路330bはスライスバス321a、スライスバス322a、スライスバス323a、スライス群324a、及びスライス群325aにより構成される第1共有バスに接続されており、チャネル341c、チャネル341d、外部端子I/F回路330c及び外部端子I/F回路330dはスライスバス321b、スライスバス322b、スライスバス323b、スライス群324b、及びスライス群325bにより構成される第2共有バスに接続されている。
チャネル341a、及びチャネル341bのそれぞれは調停器351aに対しバス権要求信号群を送り、調停器351aはチャネル341a、及びチャネル341bのそれぞれに対しバス権承認信号群を送る。チャネル341c及びチャネル341dのそれぞれは調停器351bに対しバス権要求信号群を送り、調停器351bはチャネル341c及びチャネル341dのそれぞれに対しバス権承認信号群を送る。
外部端子I/F回路330a、及び外部端子I/F回路330bのそれぞれは調停器352aに対しバス権要求信号群を送り、調停器352aは外部端子I/F回路330a、及び外部端子I/F回路330bのそれぞれに対しバス権承認信号群を送る。外部端子I/F回路330c、及び外部端子I/F回路330dのそれぞれは調停器352bに対しバス権要求信号群を送り、調停器352bは外部端子I/F回路330c、及び外部端子I/F回路330dのそれぞれに対しバス権承認信号群を送る。
バス権要求信号群とバス権承認信号群の構成は図11での説明と同様である。また、図23では記載を省略しているが図9と同様に情報を授受するチャネルと外部端子I/F回路の間では、ライトレディ信号とリードレディ信号がスライスを介して接続されている。
図25は、外部端子I/F回路群330a〜330dからDMAC340の方向に情報を伝える共有バスのバス権の割り当て及び共有バスの使用状況を示す図である。ここでは、チャネル341a、及びチャネル341bが第1共有バスのコマンドバスを使用しており、チャネル341c、及びチャネル341dが第2共有バスのコマンドバスを使用している。また、調停器351a、及び調停器351bはそれぞれが固定サイクル毎に調停を行い、調停器351aは3サイクル毎に、調停器351bは2サイクル毎に調停を行うものとする。
この場合、図25に記載の通り、図18での説明と同様に未使用期間が入ることなく共有バスを使用することができる。
<まとめ>
以上に説明してきたように共有バスを、使用回路ごとにバスの一時の使用期間が異なる仕様の場合に、個別に設けることにより、使用回路毎の共有バスの使用期間に応じて調停するタイミングを変化させる複雑な調停回路を設けなくても、高効率に共有バスを使用することが可能となる。
<実施の形態4>
上記実施の形態1〜3においては、主として、データ転送制御回路たるDMACが機能ブロックに含まれる例を説明した。ところで、機能ブロックにDMACを設ける構成とすると、設計の拡張性が低くなることがある。
これは、アップリンク用の調停器と、ダウンリンク用の調停器を、例えば、図9や図22あるいは、図23のように配する構成とした場合、それぞれの構成に対応してどのように調停を実行するかを設計しているため、ここに新たな外部端子や外部端子I/F回路を設ける設計が追加された場合には、調停器は設計しなおす必要があるためである。なお、元から設計に盛り込まれていた外部端子や外部端子I/F回路を取り除く設計が追加された場合であっても調停器の再設計が必要となるのは同様である。また、DMACには、新たな外部端子、外部I/F回路に対応する新たなチャネルを設ける必要があるため、DMACの再設計もまた必要となる。
そこで、上記実施の形態1や各種変形例に示したレイアウト設計方法においては、データ転送制御回路たるDMACを機能ブロック内に含まずに、外部端子I/F回路の一部としてレイアウト設計を行ってもよいことを記載している。
この場合のレイアウト設計方法の一例を、図28に示す。図28(a)には一例として図4(a)に示したレイアウト設計方法において、データ転送制御回路が機能ブロックに含まれない場合のレイアウト設計方法を示した。図28において、図4と共通する内容は同じステップ番号を付し、異なる内容については、異なるステップ番号を付している。なお、本実施の形態4に示すデータ転送制御回路を機能ブロックに含まずに設計する手法は、図4だけでなく、図1あるいは図6などに示したレイアウト設計手法にも適用可能である。
図28(a)に示したフローチャートと図4(a)に示したフローチャートとの相違点は、データ転送制御回路の配置を定めるタイミングである。
まず、ステップS2801においては、ステップS401と比較すればわかるように、データ転送制御回路が含まれていない機能ブロックの配置を定めている(ステップS2801)。
そして、複数の外部端子の配置が決定されると(ステップS402)、各外部端子に対応するデータ転送制御回路を含むIOブロックの配置を決定する。このとき、IOブロックがデータ転送制御回路を含まない場合には、データ転送制御回路の配置も、各IOブロックに対応するように、決定する。そして、IOブロックの配置が決定すると共有バスの配置と、その共有バスに挿入されるタイミング調整回路の配置を決定する(ステップS2803)。
なお、図28(b)には、図4と同様に、図28(a)における各ステップにおいて並行処理によるレイアウト設計をする手法を示している。
<構成>
図28の設計手順に従って設計される半導体集積回路の構成について説明する。
図29は、半導体集積回路400の機能構成を示すブロック図である。
図29と、図22や図23との相違点は、データ転送制御回路としてDMAC機能を有する回路(DMAチャネル)を各外部端子I/F回路に対応させて設けたことと、アップリンク用調停器とダウンリンク用調停器を設けない代わりに、各DMAチャネルに対応させて簡易な調停器を設けたことにある。つまり、図22や図23の場合、DMAチャネルは一つの回路(DMAC)が遠隔の外部端子I/F回路を制御する構成となっていたのに対し、本実施の形態4の図29では、DMAC機能が外部端子I/F回路側に配されている。
以下、このようにして設計される半導体集積回路400の機能について説明する。なお、ここでは、半導体集積回路200や300と重複する内容については省略し、異なる構成について説明する。
図29に示すように、図28に示すフローチャートに従って設計された半導体集積回路400は、機能ブロック440と、外部端子410a、410bと、外部端子I/F回路430a、430bと、DMAチャネル440a、440bと、調停器450a、450bと、スライス群424、425と、スライスバス421、422、423と、バッファ460とから構成される。各回路は、図29に示される構成で接続される。
半導体集積回路400は、半導体集積回路400に接続される外部機器からのデータを外部端子410a、410bで受信して、バッファ460に転送する機能と、バッファ460からのデータを外部端子410a、410bから半導体集積回路400に接続される外部機器に転送する機能を含む回路である。
外部端子410a、410b、スライス群424、425、バッファ460は、上記実施の形態1〜3に示したものと同様の機能を果たすものである。
DMAチャネル440aは、外部端子I/F回路430aとバッファ460との間のデータ転送を制御する機能を有する。DMAチャネル440aは、データ転送を実行しようとする場合、まず、調停器450aにデータ転送要求を送信する。そして、調停器440bから共有バスの使用許可の通知を受け付けるとデータ転送を実行する。
DMAチャネル440bは、外部端子I/F回路430bとバッファ460との間のデータ転送を制御する機能を有する。DMAチャネル440bは、データ転送を実行しようとする場合、まず、調停器450bにデータ転送要求を送信する。そして、調停器450bから共有バスの使用許可の通知を受け付けるとデータ転送を実行する。
DMAチャネル440aと440bとはともに共有バス(421、422、423)に接続されている。このため、実際にデータ転送を実行するためには、バス権を獲得する必要がある。
調停器450a、450bはそのために配されており、調停器450a、450bによりバス権が管理される。
調停器450a、450bは、DMAチャネルからデータ転送要求を受け付けている場合であって、同時に機能ブロック440側から見て下流にある調停器(調停器450aに対する調停器450b)からバス権要求信号を受け付けたときには、両者のバス権要求を所定のポリシーで優先度付けをし、優先度の高い方のバス権要求信号を上流(機能ブロック440)に向けて出力する。また調停器450a、450bは、DMAチャネルからデータ転送要求を受け付けていない場合であって、下流の調停器からバス権要求信号を受け付けたときには、当該バス権要求信号をそのまま上流に出力する。
機能ブロック440は、調停器450aから送信されてきたバス権要求信号に応じて、バス権を与えて良いタイミング(例えば、共有バスがいずれの回路にも使用されていないタイミング)でバス権承認信号を調停器450aに送信する機能を有する。
このような構成とすると、外部端子と外部端子I/F回路の追加や削除が容易となるうえ、調停器も上述の単純な構成によるバス権の管理を行うのみであるため、調停器の再設計もせずに済む構成となる。
図30には、図29の構成に新たな外部端子410cと外部端子I/F回路430cとDMAチャネル440cと調停器450cとを追加した構成の半導体集積回路400aを示した。なお、図30においては、新たなスライス群426を設ける構成を示したが、このスライス群426は、共有バスの配線長に応じて設けられるものである。そのため、新たな外部端子や外部端子I/F回路までの配線長がそれほど長いものにならない場合には、タイミング調整のためのスライス群は新たに設ける必要がなく、図31に示すような構成の半導体集積回路400bが設計される。
また、逆にもともと設計していたデータ転送経路(外部端子と外部端子I/F回路とDMAチャネルと調停器の組み合わせ)が不要になることもある。図32には、追加でなく、削除した構成を示した。このような構成とすることで、外部端子と外部端子I/F回路とDMAチャネルと調停器の組み合わせからなる一つのデータ転送経路を単位として考えられた設計の追加や削除を行うことができる。
このように、図29などに示すように、一つの外部端子と外部I/F回路とDMAチャネルと調停器とを一単位とした配置をすることができるので、図9、図22、図23などに示した構成とする場合に比して、外部端子、外部I/F回路の追加や削除などの設計変更を容易に行うことができる。
また、図29〜図32では、機能ブロックと複数のIOブロックがバス型のトポロジーで接続される例を記載しているが、これはデイジーチェーン型のトポロジーで接続されてもよい。デイジーチェーン型のトポロジーで機能ブロックやIOブロックを接続する構成としては、例えば、図33に示すような構成が考えられる。図33に示す半導体集積回路400dは、図31に示したバス型のトポロジーで機能ブロックとIOブロックとが接続されている半導体集積回路400bをデイジーチェーン型のトポロジーで接続された構成に変更したものである。例えば、IOブロックとして、外部端子I/F回路(430a/430b/430c)とDMAチャネル(440a/440b/440c)と調停器(450a/450b/450c)とを一つにパッケージした回路を用いる。図33に示される通り、機能ブロック440と、スライス群424、425と、IOブロック470a、470b、470cとはデイジーチェーン構成でバス(421、422、423)により接続されている。
また、IOブロック470a、470b、470cは、図34に示す半導体集積回路400eのように、一組のDMAチャネル(440a/440b/440c)と調停器(450a/450b/450c)とを一つにパッケージした回路であってもよい。
このような構成であっても、図33に示した半導体集積回路400d、図34に示した半導体集積回路400eは、実質的には、図31に示した半導体集積回路400bと同等の機能を発揮する。
なお、バス型のトポロジーで接続するか、デイジーチェーン型のトポロジーで接続するかは設計の仕様で定められ、当該仕様に従って、レイアウト設計がなされる。
<まとめ>
以上、実施の形態4に示したように、各外部端子と外部端子I/F回路に対応する形で、データ転送制御回路たるDMAチャネルと、調停器とを設ける構成とすることで、一つの外部端子と外部端子I/F回路とデータ転送制御回路と調停器とを一つのデータ転送経路として、データ転送経路の追加または削除が容易なレイアウト設計方法及び当該レイアウト設計方法により設計される半導体集積回路を提供することができる。
<補足>
上記実施の形態において、本発明の実施の手法について説明してきたが、本発明の実施の形態がこれに限られないことは勿論である。以下、上記実施の形態以外に本発明として含まれるその他の各種変形例について説明する。
(1)上記実施の形態において、レイアウト設計方法を示した。当該レイアウト設計方法は、人間が当該レイアウト設計方法に従って、半導体集積回路のレイアウトを設計することとしてもよいし、半導体集積回路のレイアウトを自動設計する装置において、上記実施の形態に従ったレイアウト設計方法の手順に従ってレイアウトを実行する装置であればよく、レイアウト設計を実行する装置に命じて、設計することとしてもよい。
(2)上記実施の形態において示したレイアウト設計方法は、半導体集積回路のレイアウトを設計する設計装置が実行することとしてもよい。
即ち、データ転送制御回路や、各機能ブロックの面積等の情報及び設計する半導体集積回路の大きさに応じて許される総配置面積の情報を入力として、まず、最適な機能ブロック及びデータ転送制御回路の配置を決定する。当該配置の決定方法の詳細については、各種従来技術が開示されているので、ここでは割愛する。
データ転送制御回路と機能ブロックとの配置を決定すると、設計装置は、外部端子位置の情報の入力を、例えば、設計装置のオペレータから受け付ける。
外部端子位置の情報の入力を受け付けると、当該情報で示される位置を外部端子の配置位置として決定する。
設計装置は、外部端子位置の近傍にIOブロックの配置位置を決定する。当該決定は、決定された外部端子位置から、予め定められた所定の距離内であって、他の部品との配置が重複しない位置の中から、外部端子とIOブロックとの間の配線長が最も短くなる位置をIOブロックの配置位置として決定する。
そして、設計装置は、IOブロックの配置位置が決定されると、当該IOブロックとデータ転送制御回路とを接続し、かつ、他の部品との配置が重複しないようにバスの配線位置を決定する。
そして、決定されたバスの配線をすることにより、定まるバスの配線長から、当該バス上に挿入するタイミング調整回路の数と位置を、他の部品の配置位置と重複しないように、挿入する。挿入するタイミング調整回路の数については、予め設計装置に、ある一定の長さの範囲で分けられた配線長ごとの、挿入するタイミング調整回路の数を示すテーブルを記憶しておき、決定したバスの配置位置に基づいてその配線長を算出する。そして算出した配線長が、テーブルのどの範囲に該当するのかに基づいて、該当する範囲に対応するタイミング調整回路の数を、挿入すべきタイミング調整回路の数として決定する。
こうして、最終的に図3(b)に示すようなレイアウトが設計される。
なお、ここでは、実施の形態1に示したレイアウト設計方法に基づく、設計装置について説明したが、これは、他の実施の形態に示したレイアウト設計方法に基づく、設計装置によるレイアウト設計であってもよい。
また、設計装置は、変形例1や変形例2、あるいは、実施の形態4に示した手法を以ってレイアウト設計を実行することとしてもよい。
(3)上記実施の形態におけるレイアウト設計方法においては、共有バスの配置は、図27に示すように配置することとしてもよい。即ち、各機能ブロックを囲うように共有バスを配線する。そして、内部回路140からの配線長に応じて、タイミング調整回路たるスライス群125a〜125jを配置する。その周囲に外部端子I/F回路を設置するためのスペースを確保し、外部端子位置の決定を待つ。
そして、外部端子位置が決定すると、決定された位置を外部端子110a〜110cの配置位置とし、その近傍にIOブロックたる外部端子I/F回路130a〜130cの配置位置を決定し、外部端子と接続し、外部端子I/F回路から直線距離で最も短くなるように共有バスへ配置する。
こうすると、IOブロックからデータ転送制御回路まで、共有バスを、各機能ブロックの部品間をどのように通すのかを考慮することなく、外部端子I/F回路から、共有バスへの配線を容易に決定できるので、とくに、上記変形例2における設計手法において有効な設計方法と言える。
(4)上記実施の形態2では、DMAコントローラ140と外部端子I/F回路群130a、130bとの間で、コマンド、ダウンリンクデータ、ダウンリンクインフォメーション、アップリンクデータ、アップリンクインフォメーションの5つの情報全てが授受される例を記載しているが、本発明はこれに限定されるものではない。例えば、DMAコントローラ140と外部端子I/F回路群130a、130bの間の情報授受が、コマンド、ダウンリンクデータのみで構成しても良く、5つの情報のサブセットが含まれていれば良い。
(5)上記実施の形態2では、外部端子I/F回路群130a、130bからDMAコントローラ140に対して送られるライトレディ信号及びリードレディ信号がスライスされている例を記載しているが、本発明はこれに限定されるものではない。ライトレディ信号及びリードレディ信号はスライスを経由することなしに直接、外部端子I/F回路群130a、130bとDMAコントローラ140との間で接続されていても良い。
(6)上記実施の形態2では、外部端子I/F回路130aから調停器152に対して送られるバス権要求信号群がスライス1258によりスライスされている例を記載しているが、本発明はこれに限定されるものではない。バス権要求信号群はスライスを経由することなしに直接調停器と接続されていても良い。
(7)本実施の形態2では、調停器151及び調停器152が共有バスの全ての構成要素(コマンドバス、ダウンリンクデータバス、ダウンリンクインフォメーションバス、アップリンクデータバス、アップリンクインフォメーションバス)の調停回路を備える例を記載しているが、本発明はこれに限定されるものではない。
例えば、DMAC140が外部端子I/F回路群130に対しダウンリンクインフォメーションを送付する必要が無く、共有バスとしてダウンリンクインフォメーションバスが実装されない場合は、それに対応するダウンリンクインフォメーションバス調停回路1513を実装しなくても良い。
あるいは、ダウンリンクインフォメーションを送付する必要があっても、例えば、チャネル141bは情報を送付せず、チャネル141aのみが情報を送付する場合(ダウンリンクインフォメーションバスを占有しても良い場合)は、ダウンリンクインフォメーションバス調停回路1513を実装しなくても良い。
(8)上記実施の形態2では、コマンドバス権調停回路1511、ダウンリンクデータバス権調停回路1512、及びダウンリンクインフォメーションバス権調停回路1513が調停器1510内に含まれる局所化された物理領域にレイアウトされている例を記載しているが、本発明はこれに限定されるものではない。コマンドバス権調停回路1511、ダウンリンクデータバス権調停回路1512、及びダウンリンクインフォメーションバス権調停回路1513のそれぞれは必要に応じて分散された領域にレイアウトされても良い。調停器1520に含まれるアップリンクデータバス権調停回路1522、アップリンクインフォメーションバス権調停回路1523についても同様である。
(9)上記実施の形態2においては、コマンド情報を送付した後に続いてデータを転送する例を記載しているが、コマンドの送信方法や回数などはこれに限定されるものではない。例えば、コマンドをデータに先行してN回(Nは2以上の整数)続けて送った後にデータ転送を開始する構成としても良い。
(10)上記実施の形態3においては、コマンドバスを例として記載しているが、本発明はこれに限定されるものではない。例えば、DMAC240(340)から外部端子I/F回路群230a〜230d(330a〜330d)の方向に情報を転送するダウンリンクデータバス、及びダウンリンクインフォメーションバスで同様の構成を採っても良い。また、外部端子I/F回路群230からDMAC240の方向に情報を転送するアップリンクデータバス及びアップリンクインフォメーションバスで同様の構成を採っても良い。
(11)上記実施の形態においては、1つの外部IO端子が1つの外部端子I/F回路に対応する構成を示したが、これはその限りではない。1つの外部端子I/F回路が複数の外部IO端子に対応してもよい。また設計される半導体集積回路は、図32に示すように1つの外部端子I/F回路及び1つのDMAチャネルのみを備える構成であってもよい。
(12)上述の実施形態で示したレイアウト設計に係る動作(図1、図4、図6参照)をレイアウト設計装置等のプロセッサ、及びそのプロセッサに接続された各種回路に実行させるためのプログラムコードからなる制御プログラムを、記録媒体に記録すること、又は各種通信路等を介して流通させ頒布させることもできる。このような記録媒体には、ICカード、ハードディスク、光ディスク、フレキシブルディスク、ROM等がある。流通、頒布された制御プログラムはプロセッサに読み出され得るメモリ等に格納されることにより利用に供され、そのプロセッサがその制御プログラムを実行することにより、実施形態で示したような各種機能が実現されるようになる。
(13)上記実施の形態に示したブロック図(図8〜12、22、23等参照)における各機能部、各種回路は、集積化されて1又は複数のLSI(Large Scale Integration)により実現されてもよい。また、複数の機能部が1のLSIにより実現されてもよい。
LSIは集積度の違いにより、IC(Integrated Circuit)、システムLSI、VLSI(Very Large Scale Integration)、SLSI(SuperLarge Scale Integration)、ULSI(Ultra Large ScaleIntegration)などと呼称されることもある。
更には、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、当該技術を用いて、機能ブロックの集積化を実現してもよい。当該技術としては、バイオ技術の適応等が可能性としてありえる。
(14)以下に、本発明に係る集積回路製造方法並びに半導体集積回路の実施の態様とその効果について説明する。
本発明に係る第1の集積回路製造方法は、集積回路の製造に用いられるマスクパターンを作成するためのレイアウト設計ステップと、前記マスクパターンを用いて、半導体材料上に前記集積回路を作成する作成ステップとを含む集積回路製造方法であって、前記レイアウト設計ステップは、機能ブロックの配置を決定する第1ステップと、前記集積回路と外部の機器とを接続するための複数の外部IO(Input-Output)端子の配置を決定する第2ステップと、前記第2ステップで決定された各外部IO端子の配置に応じて、前記外部IO端子のいずれかに接続される少なくとも1つのIO(Input-Output)ブロックの配置を決定する第3ステップと、前記機能ブロックと前記IOブロックとの間を接続するバスの配置と、当該バスの配線長に応じた段数の、前記バス上を流れる信号のタイミング調整を行うタイミング調整回路との配置を決定する第4ステップと、を含むことを特徴とする。
また、本発明に係る第2の集積回路製造方法は、集積回路の製造に用いられるマスクパターンを作成するためのレイアウト設計ステップと、前記マスクパターンを用いて、半導体材料上に前記集積回路を作成する作成ステップとを含む集積回路製造方法であって、前記レイアウト設計ステップは、機能ブロックの配置を決定する第1ステップと、前記集積回路と外部の機器とを接続するための複数の外部IO(Input-Output)端子の配置を決定する第2ステップと、前記第2ステップで決定された各外部IO端子の配置に応じて、前記外部IO端子のいずれかに接続される少なくとも1つのIO(Input-Output)ブロックの配置を決定する第3ステップと、前記機能ブロックと前記IOブロックとの間を接続する共有バスの配置と、当該共有バスの配線長に応じた段数の、前記共有バス上を流れる信号のタイミング調整を行うタイミング調整回路との配置を決定する第4ステップと、を含むことを特徴とする。
また、本発明に係る第3の集積回路製造方法は、集積回路の製造に用いられるマスクパターンを作成するためのレイアウト設計ステップと、前記マスクパターンを用いて、半導体材料上に前記集積回路を作成する作成ステップとを含む集積回路製造方法であって、前記レイアウト設計ステップは、機能ブロックの配置を決定する第1ステップと、共有バスと、前記共有バス上を流れる信号のタイミング調整を行うタイミング調整回路との配置を決定する第2ステップと、前記集積回路と外部の機器とを接続するための複数の外部IO(Input-Output)端子の配置を決定する第3ステップと、前記第2ステップで決定された各外部IO端子の配置に応じて、前記外部IO端子のいずれかに接続される少なくとも1つのIO(Input-Output)ブロックの配置を決定する第4ステップと、前記機能ブロックと前記IOブロックとを前記共有バスに接続する第5ステップと、を含むことを特徴とする。
また、これらの集積回路製造方法により製造される半導体集積回路は、機能ブロックと、複数の外部IO端子と、前記外部IO端子のいずれかに接続される少なくとも1つのIOブロックと、前記機能ブロックと前記少なくとも1つのIOブロックとの間で共有される共有バスと、前記共有バスに挿入され、前記共有バス上を流れる信号のタイミング調整を行う1以上のタイミング調整回路とを備え、前記共有バスは、挿入されている前記タイミング調整回路により、複数のスライスに分割されており、前記機能ブロックと前記IOブロックとは前記複数のスライスの何れかに接続されていることを特徴とする。
これらのレイアウト設計方法により、外部端子と外部端子に対応する複数のIOブロック間の配線、及び外部端子とデータ転送回路の間の配線制約を緩和すると同時に、これらの配線の敷設による配線面積増大を抑制することができ、レイアウト設計負荷の低減と面積増大の抑制を実現することが可能となる。
また、上記第1〜第3の集積回路製造方法において、前記第1ステップにおいて配置を決定する前記IOブロックは、データ転送制御回路を含むこととしてもよい。
あるいは、上記第1の半導体集積回路において、前記機能ブロックは、データ転送制御回路を含むこととしてもよい。
これにより、データ転送制御回路を含むIOブロックを配置するだけで、データ転送の制御を実行できる機能部を有する集積回路を製造することができる。
また、上記第1〜第3の集積回路製造方法において、前記第3ステップにおいて配置を決定する前記IOブロックは、データ転送制御回路を含むこととしてもよい。
あるいは、上記第1の半導体集積回路において、前記IOブロックは、データ転送制御回路を含むこととしてもよい。
これにより、データ転送制御回路を各IOブロックに含ませることで、外部IO端子とIOブロックとを一つの単位としたデータ転送経路の追加や削除が容易となる。
また、上記第1又は第2の集積回路製造方法において、前記第3ステップは、前記外部IO端子に近接する位置を前記IOブロックの配置位置として決定することとしてもよい。
あるいは、上記第3の集積回路製造方法において、前記第4ステップは、前記外部IO端子に近接する位置を前記IOブロックの配置位置として決定することとしてもよい。
あるいは、上記第1の半導体集積回路において、前記IOブロックは、前記外部IO端子に近接する位置に配置されていることとしてもよい。
ここでいう、外部端子に近接する位置とは、外部端子とIOブロックとの間でのデータ転送における通信遅延が誤差として許容できるデータ通信を行える範囲内とする。
これにより、IOブロックは外部端子の近傍に配されることになるため、外部端子とIOブロック間のデータ転送におけるタイミング調整のための構成を考慮せずともよく、レイアウト設計の負担を軽減することができる。
また、上記第1の集積回路製造方法において、前記タイミング調整回路は、入力された信号について、当該信号を含む複数の信号が前記バスを流れることにより発生する当該複数の信号間の位相のずれを修正して出力する回路であり、前記第4ステップは、前記配線長に応じて前記信号に発生する遅延量に基づいて、前記タイミング調整回路を挿入する段数及びその配置位置を決定することとしてもよい。
あるいは、上記第2の集積回路において、前記タイミング調整回路は、入力された信号について、当該信号を含む複数の信号が前記共有バスを流れることにより発生する当該複数の信号間の位相のずれを修正して出力する回路であり、前記第4ステップは、前記配線長に応じて前記信号に発生する遅延量に基づいて、前記タイミング調整回路を挿入する段数及びその配置位置を決定することとしてもよい。
さらには、上記第3の集積回路において、前記タイミング調整回路は、入力された信号について、当該信号を含む複数の信号が前記共有バスを流れることにより発生する当該複数の信号間の位相のずれを修正して出力する回路であり、前記第2ステップは、前記配線長に応じて前記信号に発生する遅延量に基づいて、前記タイミング調整回路を挿入する段数及びその配置位置を決定することとしてもよい。
これにより、当該集積回路製造方法に従って生成される集積回路は、バスを流れる信号の動作クロックからの遅延を修正できる。
また、上記第2の集積回路製造方法において、前記第4ステップにおいて配置を決定する共有バスは、前記機能ブロックと前記IOブロックとをデイジーチェーン接続するように配置が決定されるとしてよい。
また、上記第3の集積回路製造方法において、前記第5ステップにおいて、前記機能ブロックと前記IOブロックとは前記共有バスによりデイジーチェーン接続されるように配置が決定されるとしてよい。
これにより、当該集積回路製造方法に従って機能ブロックとIOブロックとがデイジーチェーン接続された回路構成の半導体集積回路を設計することができる。
また、上記第1の半導体集積回路において、前記半導体集積回路は、更に、前記共有バスの一端に接続され、前記IOブロックから前記データ転送制御回路へ向かう方向のデータ転送に関するバス権要求信号を調停するアップリンク調停器を備え、前記アップリンク調停器は、前記複数のIOブロックからのバス権要求信号を調停し、前記複数のIOブロックのうち選択された1つのIOブロックにバス権承認信号を発行し、前記バス権承認信号は、前記選択された1つのIOブロックと前記アップリンク調停器間のスライスを介して遅延されて前記選択された1つのIOブロックに通知されることとしてもよい。
これにより、アップリンク調停器の簡素化を図るとともに、共有バスの利用効率を高めることができる。
また、上記第1の半導体集積回路において、前記共有バスは、前記データ転送制御回路から前記IOブロックへ向かう方向の信号を伝達するためのダウンリンクバスと、前記IOブロックから前記データ転送制御回路へ向かう方向の信号を伝達するためのアップリンクバスとを含んで構成されることとしてもよい。
更に、上記第1の半導体集積回路において、前記アップリンク調停器は、前記複数のIOブロックが転送するデータそれぞれのバースト長の情報を備えており、前記アップリンク調停器が、バス権を承認された1つのIOブロックに対応したバースト長の情報に応じて、バス権要求信号の調停間隔を決定することとしてもよい。
これにより、IOブロック毎にデータ転送のバースト長が異なる場合でも、アップリンクバスの利用効率を高めることが可能となる。
また、上記第1の半導体集積回路において、前記半導体集積回路は、更に、前記データ転送制御回路に接続され、前記データ転送制御回路から前記IOブロックへ向かう方向のデータ転送に関するバス権要求信号を調停するダウンリンク調停器を備え、前記データ転送制御回路は、前記IOブロックが配置されたスライスまでの遅延に応じたタイミングで、前記共有バスにデータを出力することとしてもよい。
これにより、ダウンリンク調停器の簡素化を図るとともに、共有バスの利用効率を高めることができる。
また、上記第1の半導体集積回路において、前記ダウンリンク調停器は、前記複数のチャネルが転送するデータそれぞれのバースト長の情報を備えており、前記ダウンリンク調停器が、バス権を承認された1つのチャネルに対応したバースト長の情報に応じて、バス権要求信号の調停間隔を決定することとしてもよい。
これにより、チャネル毎にデータ転送のバースト長が異なる場合でも、ダウンリンクバスの利用効率を高めることが可能となる。
また、上記第1の半導体集積回路において、前記共有バスは、長バーストデバイス用のバスと、短バーストデバイス用のバスとを含み、前記データ転送制御回路と前記IOブロックとの間のデータ転送のバースト長に応じて、前記長バーストデバイス用のバスと、前記短バーストデバイス用のバスの何れかを用いてデータ転送を行うこととしてもよい。
これにより、調停器がバスを使用するデバイス毎に調停間隔を変更すること無く、共有バスの利用効率を高めることができる。