(57)【要約】【課題】多数の機能が実装された大規模論理回路（ＬＳＩ等）において、テクノロジマッピング後の回路の修正もしくは解析が容易にでき、しかも、レジスタ共用による機能を追加する際の設計工数が最小限にでき、回路規模の増加を最小限にすること。【解決手段】  複数の機能ブロック間で、同時に動作するブロックでない場合に、各ブロックのレジスタの対応付けを行い、組を構成する２つのレジスタを、１つの２入力のセレクタと、１つのレジスタとに置き換え、上記同時に動作しない機能ブロックの一方のブロックが選択されるように構成する。【選択図】  図２
2005107575.tif 000002
【特許請求の範囲】
【請求項１】
複数の機能ブロックを組み合わせて設計される大規模集積回路の設計方法において、
上記複数の機能ブロックのうち、互いに同時に動作しない機能ブロックをＮ（Ｎ＞０の整数）個選択する工程と、
上記互いに同時に動作しないＮ個の機能ブロックの各々から１個ずつレジスタを、合計Ｎ個選択する工程と、
上記選択したＮ個のレジスタを、それぞれ１つのＮ入力のセレクタと、１つのレジスタとに順に置き換える工程と、
を含むことを特徴とする大規模集積回路の設計方法。
【請求項２】
請求項１記載の大規模集積回路の設計方法において、
上記互いに同時に動作しないＮ個の機能ブロックを、上記Ｎ入力のセレクタによっていずれかの出力が選択されるように配置する工程を、
含むことを特徴とする大規模集積回路の設計方法。
【請求項３】
請求項１記載の大規模集積回路の設計方法において、
上記互いに同時に動作しないＮ個の機能ブロックから１個づつレジスタを選択する際に、各機能ブロックの論理機能の種類を調べる工程と、
同一論理機能のＭ個の機能ブロックが検出された場合に、該Ｍ個の機能ブロックを１個の機能ブロックに置き換える工程と、
を含むことを特徴とする大規模集積回路の設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は大規模集積回路の設計方法に関し、特に大規模論理回路（ＬＳＩ等）における回路面積の削減を図ったものに関するものである。
【背景技術】
【０００２】
現在、ＬＳＩには多数の機能が実装されており、今後ますます１つのＬＳＩに対しての機能の実装は多くなっていくものと推測される。さらにその機能実装のために費やすことのできる設計時間も開発時間の短縮のためにますます短くなってきている。
【０００３】
そのため最小限の時間で回路規模が小さく、その結果として低コスト、低消費電力のＬＳＩ設計を行うことが望まれている。
【０００４】
そのような状況でまず現在の大規模論理回路（ＬＳＩ等）の設計手法について説明をおこなう。全体の手順としては図４のような手順をとることとなる。
【０００５】
初めにステップＳ３１において、機能仕様から、全体の機能をブロックという単位に分割し、ブロック構成を決定する。
【０００６】
つづいて、ステップＳ３２において、そのブロック毎に機能記述レベルでハードウエア記述言語を用いて記述する。
【０００７】
続いて、ハードウエア記述言語で記述したブロックを、ブロック毎に論理最適化を実施し（ステップＳ３３）、後にテクノロジマッピングを行う（ステップＳ３４）。この際に、回路の動作速度、回路規模、電力等の制約を与えることで、最適な実装になるようにしている。ちなみに現在はこの論理最適化およびテクノロジマッピングを一括でおこなうことが多い。
【０００８】
次にステップＳ２５において、ブロック毎にテクノロジマッピングした結果の統合を行う。場合によってはこのブロック統合した後にも論理最適化を行う場合があるが、通常は大幅な最適化を行うことはない。
【０００９】
このようにしてテクノロジマッピングされた大規模論理回路（ＬＳＩ等）の部品ごとに最適に配置配線（レイアウト）をおこなうことで大規模論理回路（ＬＳＩ等）の設計としては完了する（ステップＳ３６、ステップＳ３７）。
【００１０】
現在上記手順中の論理最適化の段階（ステップＳ３３）で回路規模削減をおこなうという手法はざまざま提案されている。
【００１１】
また、ステップＳ３２からＳ３６に示された、機能記述レベルから配置配線（レイアウト）までの工程を一括で行う手法も存在しており、最終の大規模論理回路（ＬＳＩ等）の配置まで考慮したテクノロジマッピングを行うことで、最適な大規模論理回路（ＬＳＩ等）設計を行うことが可能になってきている。このように、一括で配置まで考慮することで、正確な部品間の距離を見積もることができ、結果として回路の動作速度の最適化を行うことが可能になっている。
【００１２】
ところで、このようにして完成した大規模論理回路（ＬＳＩ等）に対して新たな機能の追加を行う必要が発生することが多い。たとえば音声や映像のデコード回路があったとして、これに新たな音声フォーマットに対応する機能を追加する必要がある等の場合である。その際には大きく分けると以下の２つの方法でおこなうことが多い。
【００１３】
まず、ひとつは新たに全体のブロック単位を最適に分割して設計する方法で、大規模論理回路（ＬＳＩ等）の新機能追加に対する回路規模の増加を最小限にとどめることが可能な場合が多く、新機能の追加に対するコストアップを最小限に食い止めることができる。ただしこの方法を行った場合には多数の工数がかかることが多い。
【００１４】
次にもうひとつの方法として、従来のブロックを残し、新たな機能を行うブロックの追加作業をおこない、極力従来の設計資産を活用するようにする方法である。しかしブロックの追加では大規模論理回路（ＬＳＩ等）の面積増加を招く可能性が高い。これは追加する機能が従来機能とは排他的な動作を行う回路であっても同様に、回路規模の増大を招くこととなる。そのため設計工数は最小限にできるが回路規模の増加によるコストアップが大きくなってしまう。
【００１５】
ところで、論理回路の構成要素としては大きくわけると「組み合わせ回路」と「レジスタ（順序回路）」の２つに分類することができる。
【００１６】
上記「組み合わせ回路」の最適化や共用化に関してはさまざまな提案手法が存在し、論理最適化の段階（ステップＳ３３）で実施することが一般的であり、すでに最適化や共用化手法は実用レベルである。
【００１７】
一方、上記「レジスタ」の最適化や共用化に関しては、レジスタの共用方法は現在はまだ提案されている段階であり、その一例として、特願平１０−３７６８１３号のような提案もなされている。
【００１８】
一般的には論理回路の「組み合わせ回路」と「レジスタ（順序回路）」の面積比はおよそ１対１であり、現状は回路の構成要素の約半分の組み合わせ回路の最適化のみが一般的に利用されているだけであり、さらなる回路規模削減のためにはレジスタの最適化および共用化が必要である。
【００１９】
上述したレジスタの共有化について、以下に説明を行う。
レジスタ共用を考える際に、ます手順内のブロック構成決定（ステップＳ３１）もしくはブロック機能記述（ステップＳ３２）で実施する場合について説明する。
【００２０】
例えば、機能Ａと機能Ｂという独立した機能を実装し、その回路のレジスタを共有化する場合を考える。図５（ａ）の従来の手法１のように、１．仕様設計においてそれぞれの機能で独立した設計を行い、２．機能記述の段階で機能Ａ及び機能Ｂを実現するブロックＡ＋Ｂを作成し、機能記述の場面でレジスタの共有化を行うことが考えられる。ところがその場合、ブロックＡ＋Ｂを作成した後に機能Ａの内容を修正することや、さらには機能Ａが不要になった場合は、機能記述レベルでのレジスタ共有化では、それぞれのレジスタが機能Ａもしくは機能Ｂのどちらのために使用されているかの対応をとることは難しいため、どちらかの機能を修正する場合は、本来修正する必要のない共有相手も修正する必要が発生してしまう。
【００２１】
また、機能Ａと機能Ｂの機能内容が全く異なる分野であった場合には、レジスタ共有化を行わない場合には、機能Ａを実装する機能Ａの作成者は機能Ａのことだけを考え、機能Ｂを実装するブロックＢの作成者は機能Ｂのことだけをそれぞれ把握していれば良いが、機能Ａと機能Ｂのレジスタを共有化するためには双方の機能を理解する必要がある。これは機能の特殊化が進むと非常に困難である。
【００２２】
次にブロック論理最適化（ステップＳ３３）の段階でレジスタ共用化を実施する場合について説明する。
例えば、図５（ｂ）の従来の手法２（特願平１０−３７６８１３号相当）のように、機能記述までを機能回路ＡとＢで独立して行い、機能Ａを実装するブロックＡ、及び機能Ｂを実装するブロックＢをそれぞれ独立して作成する。
【００２３】
その後、ブロックＡ及びブロックＢ内のそれぞれでレジスタの共有化（特願平１０−３７６８１３号相当）を実施し、共有結果としてブロックＡ’及びブロックＢ’が生成される。この場合はどちらかの機能を修正する場合に、本来修正する必要のない共有相手を修正する必要が発生したりすることがなく、また、機能Ａ及び機能Ｂのレジスタ共有を実現するために双方の機能をそれぞれの機能回路の設計者が把握する必要もない。ただしこの場合には、例えば機能Ａを実現するブロックＡは最終的にはブロックＡ’という異なったものになってしまうために、機能記述レベルのブロックＡとテクノロジマッピングを行っているブロックＡ’のレジスタには１対１などの分かりやすい対応を行うことはできない。さらに各機能の性質及び記述によっては十分な回路面積の削減を行うことができない可能性があるものであった。
【特許文献１】特願平１０−３７６８１３号公報
【発明の開示】
【発明が解決しようとする課題】
【００２４】
従来の大規模集積回路の設計方法は以上のように構成されており、組み合わせ回路の削減（最適化）手法に関しては、実用的な効果が得られるものとなっているが、いまだレジスタ回路の削減に関しては実用的な効果を挙げるに至っていない。上記特許文献（特願平１０−３７６８１３号公報）に示されるように、１つのレジスタに異なる２つの変数を割り当てることで、レジスタを共用する手法も提案されているが、その場合には機能記述レベルとテクノロジマッピング後の回路に、対応関係がほとんど無くなってしまう。このような場合、テクノロジマッピング後の回路を修正もしくは解析したい場合には作業が非常に困難となってしまう。また、機能を追加する際に設計工数は最小限にできるが回路規模の増加を最小限にする方法はないという問題点があった。
【００２５】
本発明は以上のような問題点を解消するためになされたもので、多数の機能が実装された大規模論理回路（ＬＳＩ等）において、同時に動作する機能が少数であるという性質を利用し、テクノロジマッピング後の回路の修正もしくは解析が容易にでき、しかも、レジスタ共用による回路規模の削減を効果的に行うことができる大規模集積回路の設計方法を提供することを目的とする。
【課題を解決するための手段】
【００２６】
本発明の請求項１にかかる大規模集積回路の設計方法は、複数の機能ブロックを組み合わせて設計される大規模集積回路の設計方法において、上記複数の機能ブロックのうち、互いに同時に動作しない機能ブロックをＮ（Ｎ＞０の整数）個選択する工程と、上記互いに同時に動作しないＮ個の機能ブロックの各々から１個ずつレジスタを、合計Ｎ個選択する工程と、上記選択したＮ個のレジスタを、それぞれ１つのＮ入力のセレクタと、１つのレジスタとに順に置き換える工程と、を含むものである。
【００２７】
また、本発明の請求項２にかかる大規模集積回路の設計方法は、請求項１記載の大規模集積回路の設計方法において、上記同時に動作しないＮ個の機能ブロックを、上記Ｎ入力のセレクタによっていずれかの出力が選択されるように配置する工程を有するものである。
【００２８】
また、本発明の請求項３にかかる大規模集積回路の設計方法は、請求項１記載の大規模集積回路の設計方法において、上記互いに同時に動作しないＮ個の機能ブロックから１個ずつレジスタを選択する際に、各機能ブロックの論理機能の種類を調べる工程と、同一機能のＭ個の機能ブロックが検出された場合に、該Ｍ個の機能ブロックを１個の機能ブロックに置き換える工程と、を含むものである。
【発明の効果】
【００２９】
本発明（請求項１）にかかる大規模集積回路の設計方法によれば、複数の機能ブロックを組み合わせて設計される大規模集積回路の設計方法において、上記複数の機能ブロックのうち、互いに同時に動作しない機能ブロックをＮ（Ｎ＞０の整数）個選択する工程と、上記同時に動作しないＮ個の機能ブロックの各々から１個ずつレジスタを、合計Ｎ個選択する工程と、上記選択したＮ個のレジスタを、それぞれ１つのＮ入力のセレクタと、１つのレジスタとに順に置き換える工程と、を含むものとしたので、各機能ブロックのレジスタを共用することができ、レジスタ共用の対応関係が明確になっているため、記述レベルとテクノロジマッピング後の回路の修正もしくは解析を容易にでき、しかも、レジスタ共用による回路規模の削減を効果的に行うことができるという効果がある。
【００３０】
また、本発明（請求項２）にかかる大規模集積回路の設計方法によれば、請求項１記載の大規模集積回路の設計方法において、上記同時に動作しないＮ個の機能ブロックを、上記Ｎ入力のセレクタによっていずれかの出力が選択されるように配置する工程を有するものとしたので、Ｎ個の同時に動作しない機能ブロックは、セレクタによって必要なものの信号が選択されて出力されるようになり、通常の回路としての機能を、少ない回路規模で実現することができる効果がある。
【００３１】
また、本発明の請求項３にかかる大規模集積回路の設計方法によれば、請求項１記載の大規模集積回路の設計方法において、上記同時に動作しないＮ個の機能ブロックから１個ずつレジスタを選択する際に、各機能ブロックの論理機能の種類を調べる工程と、同一機能のＭ個の機能ブロックが検出された場合に、該Ｍ個の機能ブロックを１個の機能ブロックに置き換える工程と、を含むものとしたので、レジスタの削減だけではなく、同一機能のＭ個の機能ブロックのうちのいくつかの機能ブロックも不要となり、さらなる回路規模削減を行うことができる効果がある。
【発明を実施するための最良の形態】
【００３２】
（実施の形態１）
本発明の実施の形態１にかかる大規模集積回路の設計方法について、図１、及び図２を用いて説明する。まず、従来の大規模論理回路（ＬＳＩ等）設計時と同様に、ブロック毎にテクノロジマッピングまでの処理を行う（図２のステップＳ２００〜Ｓ２０３参照）。
【００３３】
ここで、ステップＳ２０４において、ある２つのブロックが同時に動作しないことが判定されると、ステップＳ２０５に進んで、２つのブロックで使用されているレジスタの種類と数をリストアップする。ただし以下の説明では、ブロックＡ，Ｂが同時に動作しないものとし、レジスタは１種類しかないものとして説明を行う。全体の手順イメージは図１のようになる。
【００３４】
まず、ブロックＡ、ブロックＢのうちレジスタ数が少ないほうの数をＬとする。たとえばブロックＡのレジスタ数がＬで、ブロックＢのレジスタ数がＭであったとする（ただしL＜Ｍ、図１（ａ）参照）。
【００３５】
次いで、ブロックＡのすべてのレジスタL個と、ブロックＢのレジスタの一部Ｍ個を選択し、ブロックＡおよびブロックＢのレジスタの対応づけを行い、Ｌ組みのレジスタの組を作る（ステップＳ２０６）。例えば、レジスタＲA１−ＲB１，レジスタＲA２−ＲB２、レジスタＲA３−ＲB３を組とする。そして、単純にブロックＡとブロックＢを統合しブロックＣとする（図１（ｂ）参照）。
【００３６】
そして、ステップＳ２０７において、ブロックＣ内から先ほど対応づけたＬ組のレジスタを順に選択する。
【００３７】
次いでステップＳ２０８に進んで、この例の場合、１つの組を形成する２つのレジスタを、２入力のセレクタと１つのレジスタに置き換えてブロックＤとする。ここでは、レジスタＲA１−ＲB１は、セレクタＳ１とレジスタＲA１に、レジスタＲA２−ＲB２は、セレクタＳ２とレジスタＲA２に、レジスタＲA３−ＲB３はセレクタＳ３とレジスタＲA３に置き換えられることになる。ここでセレクタの選択信号（ＳＬＣＴ）は新たな信号としてブロックＤの入力信号とする。
【００３８】
そして、ステップＳ２０９において、置き換え対象となるレジスタがなくなったと判定されるまで、ステップＳ２０７、Ｓ２０８を繰り返し、Ｌ組の２Ｌ個のレジスタをＬ個のセレクタとＬ個のレジスタに置き換え、同一組のブロックに属するブロックＡ１−Ｂ１、Ａ２−Ｂ２を、それぞれ１つのセレクタＳ２、Ｓ３によっていずれかのブロックの出力が選択されて出力される信号経路が構成されるようにレイアウトを行う（図１（ｃ）参照）。
【００３９】
以下、従来と同様にステップＳ２１０にてブロックマージを行い、ステップＳ２１１にて配置配線を行い、ステップＳ２１２に至り設計を完了する。
【００４０】
本実施の形態では、ステップＳ２０６において、各ブロック間の関係が対応付けされているため、従来同様に、マージした後に論理最適化を再び行うことも可能である。
【００４１】
通常はセレクタはレジスタと比較すると回路規模が小さいため上記例の場合セレクタとレジスタの回路規模の差をｄとすると、ｄ*Ｌの回路規模削減をおこなうことができる。上記の例では2個のブロックのレジスタを共用したが一般にＮ個のブロックを共用した場合ではｄ*Ｌ*（Ｎ−１）の回路規模削減をおこなうことができる。つまり共用するブロック数が多ければ多いほど削減効果をおおきくすることができ、回路面積をより削減することができる。
【００４２】
このように本実施の形態にかかる大規模集積回路の設計方法によれば、複数の機能ブロック間で、同時に動作するブロックでない場合に、各ブロックのレジスタの対応付けを行い、組を構成する２つのレジスタを、１つの２入力のセレクタと、１つのレジスタとに置き換え、上記同時に動作しない機能ブロックの一方のブロックが選択されるように構成するようにしたので、ブロックＡとブロックＢのレジスタを共用することができ、しかも図１（ｂ）の手順（図２のステップＳ２０７）でレジスタ共用の対応関係が明確になっているため、ステップＳ２０１の機能記述レベルとステップＳ２０３のテクノロジマッピング処理を行って得られた後の回路に対して、回路の修正及び解析作業を容易に行うことが可能である。
【００４３】
（実施の形態２）
次に本発明の実施の形態２にかかる大規模集積回路の設計方法について説明する。図３は本発明の実施の形態２にかかる大規模集積回路の設計方法において、ブロック間でレジスタ数が異なる場合におけるレジスタの共有化を図るものである。
【００４４】
図３（ａ）に示すように、回路構成として、ブロックＡとブロックＢ間において、それぞれのブロックを構成するレジスタ数が異なる場合、単純に図３（ｂ）に示すように、レジスタ共有のためのブロック間の回路の対応付けを行った場合、レジスタの共有化により従来と比較してレジスタ数の削減を図ることは可能である。
【００４５】
しかしながら、ここで回路構成として組み合わせ回路Ａ１，Ａ２，Ｂ１，Ｂ２，Ｂ３，Ｂ４が全て同様な論理、たとえば加算回路である場合には、図３（ｃ）に示すようなレジスタの対応付けを行った場合には、共有後にレジスタＲA１とＲA２の間に、組み合わせ回路Ａ１とＢ１、及びＡ２とＢ２という２組の組み合わせ回路の共有化を実現することが可能になる。
【００４６】
このようにレジスタ選択の際に、機能ブロックの回路構造を考慮し、機能ブロックの論理の同じ種類のものを整理することにより、レジスタの共用によるレジスタの削減のみではなく、さらに論理回路の削減も行うことができる。
【００４７】
また、上記手順ではステップＳ２０３のテクノロジマッピングとステップＳ２１１の配置配線処理工程前にレジスタの共用を行ったが、ステップＳ２１１の配置配線処理後にレジスタの共用の選択を行うことも可能である。例えば、高速動作するＬＳＩなどにおいては、上記機能ブロックの共有化のために、レイアウトが大幅に変化する場合もあり、面積削減優先のレイアウト設計では、動作時に伝播遅延などの問題が生じることもある。その際には機能ブロックの動作タイミングが最適になるように共有する機能ブロックを選択することが必要である。
【００４８】
また、上記方法の実施自体は非常に簡単なアルゴリズムであるため、本実施の形態２の実施は非常に容易であり、従来の設計手順を大きく変更する必要はない。
【００４９】
さらに、図６に示すように、１．仕様設計から３．テクノロジマッピングまでは機能Ａ、機能Ｂともに独立に行い、機能Ａを実装するブロックＡ、及び機能Ｂを実装するブロックＢを独立して作成し、３．テクノロジマッピング前に共有を行う場合には回路構造の情報から、また４．配置配線後に共有を行う場合には上述したタイミング情報から、レジスタ共有の対応関係を作成し、レジスタの共有化を行うため、レジスタ共有前と共有後のレジスタの対応関係は明らかなものとなっている。
【００５０】
従ってどちらかの機能を修正する場合には、共有後のブロックのどのレジスタがブロックＡもしくはブロックＢのどのレジスタに対応しているかは明確であり、容易に独立したブロックに分離して検討，修正することが可能であり、本来修正する必要のない共有相手も修正する必要が発生するという不具合も生じない。
【００５１】
また、機能Ａ、及び機能Ｂのレジスタを共有するために双方の作成者が双方の機能を理解する必要はなく、機能記述レベルでは、各機能の実装ごとにブロックの設計を分割することができるため、設計が行いやすくなる。
【産業上の利用可能性】
【００５２】
本発明にかかる大規模集積回路の設計方法は、各機能ブロックのレジスタを共用することができ、レジスタ共用の対応関係が明確になっているため、記述レベルとテクノロジマッピング後の回路の修正もしくは解析が容易にでき、レジスタ共用による回路規模の削減に有用である。
【図面の簡単な説明】
【００５３】
【図１（ａ）】本発明の実施の形態１にかかる大規模集積回路の設計方法による、ブロックマージ対象となる２つのブロックの構成を説明するための図。
【図１（ｂ）】本発明の実施の形態１にかかる大規模集積回路の設計方法により、ブロックマージした際のレジスタの構成を説明するための図。
【図１（ｃ）】本発明の実施の形態１にかかる大規模集積回路の設計方法により、ブロックマージしてレジスタを共用化した構成を説明するための図。
【図２】上記実施の形態１にかかる大規模集積回路の設計方法による、レジスタ共用の方法を説明するためのフローチャートを記載した図。
【図３（ａ）】上記実施の形態２にかかる大規模集積回路の設計方法において、ブロック間にけるレジスタの個数が異なる場合について説明を行うための図。
【図３（ｂ）】上記実施の形態２にかかる大規模集積回路の設計方法において、レジスタ共用を実行した場合の構成の説明を行うための図。
【図３（ｃ）】上記実施の形態２にかかる大規模集積回路の設計方法において、組み合わせ回路の機能を考慮してレジスタ共用を実行した場合の構成の説明を行うための図。
【図４】従来の大規模集積回路の設計方法の設計手順を示す図。
【図５】従来の大規模集積回路の設計方法においてレジスタ共有化の手順を中心に説明するための図。
【図６】上記実施の形態２にかかる大規模集積回路の設計方法において、レジスタ共有化の手順を中心に説明するための図。
【符号の説明】
【００５４】
ＲA１，ＲA２，ＲA３  レジスタ
ＲB１，ＲB２，ＲB３，ＲB４  レジスタ
Ａ１〜Ａ２  論理ブロック
Ｂ１〜Ｂ４  論理ブロック
Ｓ１〜Ｓ３  ２入力のセレクタ
【図１（ａ）】
2005107575.tif 000003
【図１（ｂ）】
2005107575.tif 000004
【図１（ｃ）】
2005107575.tif 000005
【図２】
2005107575.tif 000006
【図３（ａ）】
2005107575.tif 000007
【図３（ｂ）】
2005107575.tif 000008
【図３（ｃ）】
2005107575.tif 000009
【図４】
2005107575.tif 000010
【図５】
2005107575.tif 000011
【図６】
2005107575.tif 000012