(57)【要約】【課題】ＬＳＩのバージョンを正確に管理する。【解決手段】ＩＰ管理装置１０１は、新規ＩＰとして登録対象の回路ブロックの設計データに、バージョン番号を保持するためのレジスタと、それを読み出すための回路を付加し、その回路を設計データとしてデータベース１０５に登録する。当該回路ブロックにＩＰが再利用されている場合には、利用されている回路ブロックに含まれる、バージョン番号を保持するためのレジスタの出力端子と、当該回路ブロック自体のバージョンを保持するレジスタとを選択的に読み出すための回路を、登録対象の回路ブロックの設計データに付加する。【選択図】図１
2006202140.tif 000002
【特許請求の範囲】
【請求項１】
回路ブロックの設計データを管理する回路ブロックの管理装置であって、
新たな管理対象の回路ブロックの設計データに、レジスタおよびその読み出し回路を追加する回路変更手段と、
前記レジスタに、前記新たな管理対象の回路ブロックのバージョン情報を登録する登録手段と
を備えることを特徴とする回路ブロックの管理装置。
【請求項２】
少なくとも、前記登録手段によりバージョン番号と、前記レジスタに登録された回路ブロックの設計データの識別名とを保存する保存手段をさらに備えることを特徴とする請求項１に記載の回路ブロックの管理装置。
【請求項３】
前記登録手段は、前記新たな管理対象の回路ブロックに対して、前記保存手段に保存された前記新たな管理対象の回路ブロックと同一の識別名に対応するバージョン情報と重複しないバージョン情報を割り当てて前記レジスタに登録することを特徴とする請求項２に記載の回路ブロックの管理装置。
【請求項４】
前記新たな管理対象の回路ブロックに、バージョン情報が登録されたレジスタを有するサブ回路ブロックが含まれている場合には、前記回路変更手段は、前記サブ回路ブロックの有するレジスタと、前記新たな管理対象の回路ブロックに追加したレジスタとを選択的に読み出す選択読み出し回路を前記読み出し回路として追加することを特徴とする請求項１に記載の回路ブロックの管理装置。
【請求項５】
前記新たな管理対象の回路ブロックにバスおよび該バスに接続されたプロセッサが含まれている場合には、前記選択読み出し回路は、前記バスを介して前記プロセッサにより指定された、前記サブ回路ブロックの有するレジスタまたは前記新たな管理対象の回路ブロックに追加したレジスタを選択し、選択したレジスタの値を前記バスを介して前記プロセッサにより読み出させることを特徴とする請求項４に記載の回路ブロックの管理装置。
【請求項６】
回路ブロックの設計データを管理するためのデータベース装置であって、
新たな管理対象の回路ブロックの設計データに、レジスタおよびその読み出し回路を追加する回路変更手段と、
前記レジスタに、前記新たな管理対象の回路ブロックのバージョン情報を登録する登録手段と、
前記新たな管理対象の回路ブロックの設計データを、その回路ブロックの識別子と、前記登録手段によりレジスタに登録されたバージョン情報とをキーとして保存するデータ保存手段と
を備えることを特徴とするデータベース装置。
【請求項７】
回路ブロックの設計データを管理する回路ブロックの管理方法であって、
新たな管理対象の回路ブロックの設計データに、レジスタおよびその読み出し回路を追加する回路変更工程と、
前記レジスタに、前記新たな管理対象の回路ブロックのバージョン情報を登録する登録工程と
を備えることを特徴とする回路ブロックの管理方法。
【請求項８】
請求項７に記載の管理方法をコンピュータにより実行するためのコンピュータ実行可能なプログラム。
【請求項９】
請求項８に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１０】
バージョン情報を保持するための第１レジスタおよびその出力端子を備えた回路ブロックを利用する集積回路であって、
バージョン情報を保持するための第２レジスタと、
前記第１レジスタと前記第２レジスタを選択的に読み出す読み出し回路と、
前記読み出し回路により読み出されたデータを出力する出力回路と
を備えることを特徴とする集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は集積回路、たとえばシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）に利用される回路ブロックの設計データすなわちＩＰ（Ｉｎｔｅｌｅｃｔｕａｌ  Ｐｒｏｐｅｒｔｙ：設計資産）の管理方法及び装置に関するものであり、特にＩＰのバージョン管理の信頼性向上を実現した管理方法及び装置に関するものである。
【背景技術】
【０００２】
従来ＬＳＩにバージョンを格納したレジスタを内蔵し、このレジスタをＬＳＩのバージョン確認、およびバージョンの管理のために使ってきた（特許文献１等参照）。
【０００３】
一方、近年ＬＳＩ開発において高集積化が進み、現在ではシステムを構成する多様な機能を１つのＬＳＩに集積したＳＯＣ（Ｓｙｓｔｅｍ  Ｏｎ  Ｃｈｉｐ）開発が多く行われている。多様な機能を盛り込むＳＯＣの設計では製品ごとに新規設計を行うと多大な時間を費やすため、一度設計した回路ブロックについては、その設計データ等の設計資産（ＩＰ）を再利用することができる。
【特許文献１】特開２０００−１３７６７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ＩＰはそれぞれ独立して、個々ＩＰの不具合修正や機能追加によりバージョンが変更される。ＩＰのバージョン変更は、ＩＰとして提供される回路ブロックの仕様変更ひいてはそれを利用するＬＳＩそのものの仕様変更をもたらす場合もあるし、論理検証やチップテストに用いられるテストパタンの変更をもたらす場合もある。したがって、集積回路に使用されているＩＰのバージョンを正確に管理していなければ、仕様と実装とが相違するという事態が生じたり、あるいは正しい回路のテストや検証が行えないおそれがある。
【０００５】
ところが従来、ＩＰのバージョン管理はこのように重要な事項にもかかわらず、人手で作成したＩＰのバージョンリストなどを使用して行われている。そのため、集積回路に利用されている各ＩＰのバージョンに誤りが生じることがある。また、ＩＰのバージョン情報が曖昧であれば、バージョンを確認するために利用したＩＰのＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）データ（たとえばＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）で記述されたデータ）とネットリストの論理検証をする等、無駄な工数が生じる。
【０００６】
本発明は上記従来例に鑑みてなされたもので、集積回路に利用される回路ブロックのバージョン管理の信頼性を向上させる、集積回路に再利用される回路ブロックの管理方法および装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために本発明は以下の構成を備える。すなわち、回路ブロックの設計データを管理する回路ブロックの管理装置であって、
新たな管理対象の回路ブロックの設計データに、レジスタおよびその読み出し回路を追加する回路変更手段と、
前記レジスタに、前記新たな管理対象の回路ブロックのバージョン情報を登録する登録手段とを備えることを特徴とする。
【０００８】
あるいは、回路ブロックの設計データを管理するためのデータベース装置であって、
新たな管理対象の回路ブロックの設計データに、レジスタおよびその読み出し回路を追加する回路変更手段と、
前記レジスタに、前記新たな管理対象の回路ブロックのバージョン情報を登録する登録手段と、
前記新たな管理対象の回路ブロックの設計データを、その回路ブロックの識別子と、前記登録手段によりレジスタに登録されたバージョン情報とをキーとして保存するデータ保存手段とを備える。
【発明の効果】
【０００９】
本発明によれば、ＬＳＩチップに内蔵されるＩＰのバージョンを管理する際の人手によるミスを防ぎ、信頼性の高い管理を行うことが可能となる。
【発明を実施するための最良の形態】
【００１０】
＜ＩＰ管理装置の構成＞
添付の図面、図１、図２にて本発明の基本構成を説明する。図１に本発明に係る回路ブロックの設計データ管理装置（ＩＰ管理装置）の構成を示す。このＩＰ管理装置は、その構成要素であるバージョン管理ツール１０２および設計データ変更プログラム１０３、データベース１０５を含めて、たとえばコンピュータにより所定のプログラムを実行することで実現できる。管理対象の設計データを保存するデータベース１０５は、そのコンピュータ自体、あるいはバックエンドのコンピュータにより実現しても良い。
【００１１】
図１において、本発明に係るバージョン管理装置１０１は、回路ブロックの設計データのバージョン管理を行う。設計データとは、部品であるＩＰ及びＩＰを組み合わせて作成したシステムＬＳＩの設計データを含む。本実施形態では、具体的には特定のＨＤＬ等を用いて記述されたデータである。バージョン管理装置１０１には、バージョン管理ツール１０２と設計データの変更プログラム１０３とを含む。バージョン管理ツール１０２は、たとえば新規に登録しようとする回路ブロックの設計データ（すなわちＩＰ）に対して固有のバージョン番号を付与する。そのために、バージョン管理ツール１０２は、たとえば過去にバージョン番号を付与したＩＰの識別名とバージョン番号とを組にして保持し、識別名の保持されていないＩＰに対しては新たな識別名とバージョン番号とを付与し、識別名の保持されているＩＰに対しては新たなバージョン番号を付与する。付与した識別名およびバージョン番号は、バージョン管理ツール１０２により保持される。なお、過去にバージョン番号を付与したＩＰの識別名とバージョン番号との組を保持する代わりに、ＩＰを登録したデータベース１０５を利用することもできる。
【００１２】
設計データの変更プログラム１０３とは、後述の図２に示す工程を実行するプログラムであり、バージョン管理ツール１０２から更新されるべきバージョン情報を受け取って実行する。
【００１３】
新たな管理対象となるＩＰ１０４は新たにＩＰとして登録する設計データには、新しく作成された回路ブロックと、既存のＩＰに変更を加えてバージョン変更された回路ブロックとがある。
【００１４】
データベース１０５は、バージョン管理装置１０１によりバージョン管理回路（後述の通り図３に示すレジスタ３０１やそれを読み出すための回路を含めた回路の総称）の付された設計データを登録するためのデータベースである。データベース１０５はたとえばハードディスク等に格納され、バージョン管理装置１０１に管理される。データベース１０５はたとえば各種設計データの名称（識別名）とそのバージョンとをキーにして検索可能に構成される。
【００１５】
データベース１０５は、いくつかの部分データベースを含む。部分データベース１０６はＩＰ管理装置１０１で登録されたＩＰであるＣＰＵの設計データのデータベースである。部分データベースとは、データベース１０５の構成要素であることを示す名称であり、実体としてはデータベースそのものであってもよい。部分データベース１０７はＩＰ管理装置１０１で登録されたＩＰであるブロックＡの設計データのデータベースである。部分データベース１０８はＩＰ管理装置１０１で登録されたＩＰであるブロックＢの設計データのデータベースである。部分データベース１０９は、ＩＰ管理装置１０１で登録されたＩＰを組み合わせて作成したシステムＬＳＩであるＣｈｉｐＸの設計データのデータベースである。データベース１０６〜１０９は、単一のデータベースとしてまとめられたものであってもよい。メモリ１１０は、レジスタやセレクタ等の設計データのテンプレートを保存したり、あるいは、プログラム実行に必要なメモリ領域を確保するために用いられる。テンプレート保存のためには不揮発であることが望ましい。
【００１６】
＜バージョンの付加手順＞
次に、新規管理対象の設計データすなわちＩＰのバージョン管理を行うために実行される設計データ変更プログラム１０３の手順を説明する。このプログラム１０３は、システムＬＳＩに含まれるＩＰのバージョン情報を格納したレジスタを、新規管理対象の回路ブロックの設計データに組み込む工程１（Ｓ２０１）と、工程Ｓ２０１にて組み込まれたレジスタを外部から参照する仕組みをさらに組み込む工程２（Ｓ２０２）と、工程２にて組み込まれたレジスタにバージョン情報を付加する工程３（Ｓ２０３）を実行する。なお、組み込むレジスタは汎用のレジスタではなく、与えられた一定の値（すなわちバージョン番号）を、その読み出しに対して出力するＲＯＭ回路などで構成される。したがって工程３は、バージョン番号に相当する値を出力する回路データをレジスタに組み込む工程となる。次に各工程について説明する。
（１）工程１（ステップＳ２０１）
工程１は、新規登録対象のシステムＬＳＩの設計データに、バージョン管理ツール１０２により付与されたそのＩＰのバージョン情報を格納するレジスタ（以下バージョンレジスタと呼ぶことにする。）の回路を組み込む工程である。そのために、バージョン管理装置１０１にレジスタのテンプレートを用意しておく。そして、ＩＰのバージョン登録時に、そのＩＰの最上位層にバージョンレジスタとして、テンプレートに記述されたレジスタを組み込む。回路設計は、部品となる回路ブロックをブラックボックス化し、ブラックボックスを利用して階層的に行われることが多い。ＩＰの最上位層とはその設計上の最上位階層を意味している。データベース１０５に登録される設計データがＨＤＬデータであれば、組み込まれるレジスタ回路もＨＤＬデータである。図３にテンプレートの一例を示す。図３は模式的にレジスタを示すもの（これは図１なども同様である。）であって、実際の設計データそのものを示すものではない。ＩＰに組み込まれるレジスタは８ビットレジスタであり、０〜２５５までのバージョン情報を格納することが可能である。テンプレートでは定数ＶＥＲＳＩＯＮを値として格納している。この値は工程３で書き替えられるので特に意味はない。
【００１７】
ここで組み込まれるレジスタは８ビットであるから各ビットについて出力が存在する。このバージョンレジスタの出力名は、ＨＤＬの設計データにおいて固有に与えられる。そこで、新規登録対象の回路ブロックの識別名とそのバージョン番号との組を、一定の文字列等と組み合わせ、さらにレジスタのビット番号を付加した名称を、組み込まれるバージョンレジスタの出力ビットそれぞれに与える。たとえば、「ｖｒｅｇ“識別名”“バージョン番号”“端子番号”」が与えられる。この例では、ｖｒｅｇという定数値に、“識別名”“バージョン番号”“端子番号”をつなげたものが各出力ビットの名称となる。端子番号は、８ビットの端子に０−７の値を割り当てた値である。こうすることで、登録されるＩＰにおいて、そのバージョンレジスタの出力を唯一つ特定することができる。また、ｖｒｅｇという定数を、他の回路に使用しないように予約しておくことで、バージョンレジスタの出力を検索することができる。識別名としてはたとえばオペレータにより入力された名称や、ＩＰ管理装置１０１が自動的に精製した名称を用いることができる。バージョン番号としては、バージョン管理ツール１０２が割り当てたバージョン情報を用いることができる。
（２）工程２
工程２では、新規登録対象の回路ブロックに工程１で組み込んだバージョンレジスタと、当該回路ブロックに利用したＩＰに含まれる、そのＩＰのバージョン番号が登録されたバージョンレジスタとを外部から参照する仕組みを、当該回路ブロックに作りこむ。当該回路ブロックに利用したＩＰに含まれるバージョンレジスタも、そのＩＰのデータベース１０５への登録時にＩＰ管理装置１０１により付加されたバージョンレジスタである。工程２は、登録対象のＩＰが、その中に他のＩＰを利用しているか否かでその内容が異なる。
【００１８】
（２−１）具体的には、新規登録対象のＩＰが、既存のＩＰ（ただしＩＰ管理装置１０１により管理されているＩＰに限られる。以下同じ。）を含まないＩＰであれば、その設計データの最上位層に出力端子を追加し、工程１で組み込んだレジスタの出力をその出力端子に接続する。ここで、工程１で組み込んだレジスタの出力の名称は、工程１で説明したように一定の規則に従って与えられているために、設計データからその名称に該当するもの（たとえば先頭が「ｖｒｅｇ」である名称）を検索し、該当する出力を出力端子に接続する（ための記述を追加する）。この出力端子の名称は、レジスタ出力の名称と同一にしておく。もちろんＩＰがＨＤＬデータであれば、このレジスタを読み込む仕組みもＨＤＬで記述される。
【００１９】
（２−２）また、新規登録対象のＩＰが、既存のＩＰを含むＩＰであれば、工程１で追加したレジスタの他に、利用されているＩＰに備えられたバージョンレジスタについても、それらバージョンレジスタを選択的に外部から参照するための仕組みを当該回路ブロックに作り込む。このために、新規登録対象のＩＰ（単に着目ＩＰとも呼ぶ。）の設計データの最上位層に、セレクタ回路および選択信号端子およびセレクタ出力端子を追加する。そして、工程１で組み込んだバージョンレジスタについてはその出力を、バージョンレジスタを有するＩＰについてはバージョンレジスタの出力端子をセレクタのデータ入力に接続し、セレクタの出力を出力端子に接続する。このセレクタの出力端子の名称は、工程１で組み込んだバージョンレジスタの出力の名称と同一にすることができる。この場合工程１で組み込んだレジスタの出力の名称は使用しない。セレクタ回路は、８×ｎビット入力（ｎはバージョンレジスタの数）で、８ビット単位で選択された入力データを出力するセレクタである。また、選択信号端子をセレクタの選択信号に接続する。各バージョンレジスタの出力の検索は、上述の通り出力端子の名称で行うことができる。また、レジスタ毎にビット番号を除いて共通の名称を有しているから、レジスタ単位で選択されるようにバージョンレジスタの出力をセレクタの入力に接続することができる。
【００２０】
なお、セレクタについてもＩＰ管理装置１０１がテンプレートを保持し、それを用いて着目ＩＰに付加することができる。ただし、セレクタの入力データの数及び選択信号の数は、バージョンレジスタの数ｎによって異なる（選択信号の数はｌｏｇ2ｎとなる）。そこで、このテンプレートとしては、数ｎをいくつか代えたセレクタを用意しておくか、あるいは、入力数をバージョンレジスタの数ｎに応じて変更可能な形式で記述しておく。
【００２１】
なお、登録対象のＩＰに他のＩＰが利用されているか否かの判定は、オペレータの指定に基づいて行っても良いが、本実施形態では、レジスタの出力端子名を検索したときに、検索された名称に、複数の相異なるＩＰの識別名を含むものがあれば、当該ＩＰは他のＩＰを含むものと判定する。
（３）工程３
工程１にて付加したバージョンレジスタにバージョン情報を付加する。バージョン管理ツール１０２が決定する更新されるべきバージョンの値を、付加したレジスタ値である定数ＶＥＲＳＩＯＮと置き換え、登録を終了する。
【００２２】
そしてこうして回路データが変更された回路ブロックの設計データが、データベース１０５に登録される。工程１、工程２、工程３を経て登録が終了した回路ブロックの設計データの模式図の一例が図１のデータベース１０６、１０７、１０８、１０９である。図１のデータベースには、バージョンレジスタのみ記載されているが、もちろんその他の回路も記述されている。
【００２３】
＜システムＬＳＩのＩＰの登録＞
次に、既存のＩＰを利用したＩＰの登録について、図４に示すブロック図のシステムＬＳＩ（Ｃｈｉｐ  Ｘ）４０１をＩＰとして登録する例を説明する。ＩＰの識別名はＣｈｉｐＸである。システムＬＳＩ  ＣｈｉｐＸ４０１は、システムバス４０２、システムバスに接続するＩＰであるＣＰＵ４０３、システムバスに接続するＩＰであるＢｌｏｃｋＡ４０４、システムバスに接続するＩＰであるＢｌｏｃｋＢ４０５を含む。すなわち、ＬＳＩ４０１には３つのＩＰが利用されている。これらＩＰ４０３〜４０５は、前述した工程１，２，３を経てデータベース２０５に登録された設計データである。したがって、それぞれ内部にそのバージョン情報を格納するバージョンレジスタを内蔵している。さらにそのレジスタ出力を出力端子として持っている。このように構成されるＬＳＩ４０１のＩＰ登録は、ＩＰ管理装置１０１によって実行される設計データ変更プログラム１０３により、図２の工程１〜工程３にしたがって以下の通りに行われる。
（１）工程１
システムＬＳＩに、そのＩＰのバージョン情報を格納したバージョンレジスタを組み込む。すなわち、ＣｈｉｐＸの設計データの最上位層にバージョンレジスタを組み込む。このバージョンレジスタはＣｈｉｐＸ自体のバージョンを格納するためのレジスタである。
（２）工程２
工程１にて組み込まれたバージョンレジスタを外部から参照する仕組みを作りこむ。すなわち、ＣｈｉｐＸに利用されているＩＰ４０３〜４０５に含まれるバージョンレジスタ、およびＣｈｉｐＸの最上位層に工程１で組み込んだバージョンレジスタを外部から参照する仕組みを作りこむ。すなわち、上述したように、各ＩＰのバージョンレジスタの出力端子名を検索し、検索された名称の出力端子をセレクタの入力に接続する。また、工程１で組み込んだバージョンレジスタの出力もセレクタの入力に接続する。
【００２４】
そのためにバージョン管理装置１０１には図５に示すセレクタ回路６０２のテンプレートを用意する。セレクタ回路６０２において、入力５０１はセレクタの入力信号、セレクト信号（選択信号）５０２は、デコードされていずれの入力信号を選択するかを示すための信号、出力信号５０３はセレクタの出力信号である。システムＬＳＩ４０１の内部に含まれるＩＰの数をＮとすると、入力信号５０１は（Ｎ＋１）本（ただし８ビットが１組である。）、セレクト信号５０２はｌｏｇ2（Ｎ＋１）本となる。すなわち上述した数ｎがＮ＋１に相当する。このセレクタ回路６０２は（Ｎ＋１）本の入力をセレクト信号で選択し、セレクタの出力信号に出す回路である。
（３）工程３
工程１で組み込んだバージョンレジスタに、ＣｈｉｐＸ４０１に対してバージョン管理ツール１０２によって与えられたバージョン情報（バージョン番号）を書き込む。たとえばこのバージョンレジスタは、それが選択された場合に、定数であるバージョン番号を出力するように構成される。これもＨＤＬにより記述されるが、回路上は、たとえばＨレベルのビットはＶｃｃにプルアップされ、Ｌレベルのビットはグラウンドに接続されるような回路となろう。
【００２５】
以上のような工程で、ＩＰ管理装置１０１の設計データ変更プログラム１０３により、図４の回路を基に作成されるのが図６に示す回路の設計データである。ＩＰのバージョン登録時に、図６に示す通りシステムＬＳＩ６００の最上位層に図５のセレクタ回路６０２を組み込み、システムＬＳＩ内部に含まれる全てのＩＰ４０３−４０５のバージョンを格納したレジスタの出力端子及びシステムＬＳＩ自体のバージョンを格納したレジスタ６０１の出力をセレクタ回路６０２の入力に接続される。外部出力端子６０３、外部入力端子６０４が追加され、それぞれセレクタ回路６０２の出力、セレクト信号と接続されている。
【００２６】
したがって、ＣｈｉｐＸの全てのＩＰのバージョン情報およびＣｈｉｐＸシステムのＬＳＩ自体のバージョン情報を、外部入力端子６０４で選択して外部出力端子６０３からモニター可能になる。なお、このセレクタ回路のセレクタや出力端子はテストモードを利用して兼用端子とする形態も可能である。
【００２７】
［第２実施形態］
ＩＰおよびシステムＬＳＩチップの最上位層に内蔵したレジスタを外部から参照する仕組みをもう一例あげる。第１の実施形態では、登録されるＩＰに付加されるバージョンを保持して読み出させるための回路、すなわちバージョンレジスタ及びセレクタは、本来の機能を果たすための回路ブロックそのものとは論理的に独立している。これに対して本実施形態では、設計データ変更プログラム１０３によって、図４のＬＳＩにおけるＣＰＵ４０３およびバス４０２を介してバージョン情報を外部から読み出すような構成になるよう、回路ブロックの設計データを変更する。すなわち、各バージョンレジスタはシステムＬＳＩのメモリ空間にマッピングされる。そのために、本実施形態ではいくつかの前提条件が必要とされる。
（１）ＣＰＵを持つシステムＬＳＩのＩＰ登録であること
（２）レジスタをマッピングするためのメモリ空間が確保されていること。
【００２８】
このうち第１の前提条件は、ＩＰ登録しようとするオペレータが判定することができる。しかし本実施形態では、利用されているＩＰを識別することでＩＰ管理装置１０１によって判定する。たとえば各ＩＰのバージョンレジスタの出力端子（第１実施形態で説明した出力端子）の名称を検索して、そこに含まれるＩＰの識別名からＣＰＵのＩＰであるか否かを判定する。第２の前提条件は、あらかじめ取り決めておく必要がある。すなわち、ＩＰとして登録しようとするシステムＬＳＩにおける未使用のアドレス空間のうち、バージョンレジスタに割り当てるアドレスを、新たなＩＰの登録時にＩＰ管理装置１０１に入力するか、あるいはあらかじめ記憶させておく。
【００２９】
この様な条件の下で、設計データ変更プログラム１０３により図２と同様の手順が実行される。ただし、工程２（ステップＳ２０２）は第１の実施形態と相違する。
（１）工程１（ステップＳ２０１）
工程１は、新規登録対象のシステムＬＳＩの設計データに、バージョン管理ツール１０２により付与されたそのＩＰのバージョン情報を格納するレジスタ（以下バージョンレジスタと呼ぶことにする。）の回路を組み込む工程である。そのために、バージョン管理装置１０１にレジスタのテンプレートを用意しておく。そして、ＩＰのバージョン登録時に、そのＩＰの最上位層にバージョンレジスタとして、テンプレートに記述されたレジスタを組み込む。これは第１の実施形態の工程１と同様である。
（２）工程２
工程２では、新規登録対象の回路ブロックに工程１で組み込んだバージョンレジスタと、当該回路ブロックに利用したＩＰに含まれる、そのＩＰのバージョン番号が登録されたバージョンレジスタとを外部から参照する仕組みを、当該回路ブロックに作りこむ。当該回路ブロックに利用したＩＰに含まれるバージョンレジスタも、そのＩＰのデータベース１０５への登録時にＩＰ管理装置１０１により付加されたバージョンレジスタである。
【００３０】
具体的には、新規登録対象のＩＰが、既存のＩＰ（ただしＩＰ管理装置１０１により管理されているＩＰに限られる。以下同じ。）を含まないＩＰであれば、その設計データの最上位層に出力端子を追加し、工程１で組み込んだレジスタの出力をその出力端子に接続する。これは第１実施形態と同様である。
【００３１】
一方、新規登録対象のＩＰが、既存のＩＰを含むＩＰであれば、工程１で追加したレジスタの他に、利用されているＩＰに備えられたバージョンレジスタについても、それらバージョンレジスタを選択的に外部から参照するための仕組みを当該回路ブロックに作り込む。このために、新規登録対象のＩＰ（単に着目ＩＰとも呼ぶ。）の設計データの最上位層に、レジスタリード回路８０１（図８参照）を追加する。そして、工程１で組み込んだバージョンレジスタについてはその出力を、バージョンレジスタを有するＩＰについてはバージョンレジスタの出力端子をレジスタリード回路８０１のデータ入力に接続し、その出力をバス４０２のデータバスに接続する。バス幅がレジスタ幅よりも大きい場合には、余ったバスの上位桁をたとえばＬ信号レベルとなるように構成する。レジスタリード回路８０１には、システムバスインターフェース回路のほか、バージョンレジスタの値を選択的に出力するための構成を備えている。選択された値がバスインターフェースを介してデータバスに載せられる。
【００３２】
そのために、バージョン管理装置１０１は図７に示すレジスタリード回路７０１のテンプレートを用意する。レジスタリード回路８０１は、使用しているシステムバスのインターフェース７０１を持ち、システムバスのプロトコルで、与えられたアドレスに従って入力信号７０２の中から出力データを選択する。入力信号はシステムＬＳＩの内部に含まれるＩＰの数をＮとすると、（Ｎ＋１）本である。
【００３３】
システムバスのプロトコルに従うために、たとえば、レジスタリード回路８０１にはアドレスデコーダが含まれる。アドレスデコーダは、バス４０２のアドレスバスを入力信号として、上述したようにあらかじめ割り当てられたレジスタのアドレスに従って指定されたバージョンレジスタを活性化するための信号を各バージョンレジスタに対して出力する。活性化されたレジスタは保持しているバージョン番号を出力する。その値がバスインターフェースを介してデータバスに載せられる。
（３）工程３
工程１にて付加したバージョンレジスタにバージョン情報を付加する。バージョン管理ツール１０２が決定する更新されるべきバージョンの値を、付加したレジスタ値である定数ＶＥＲＳＩＯＮと置き換え、登録を終了する。第１実施形態と同様である。
【００３４】
この様な構成により、全てのＩＰのバージョン情報及びシステムＬＳＩ自体のバージョン情報をＣＰＵからアドレスを指定して参照することが可能になる。
【００３５】
そしてこうして回路データが変更された回路ブロックの設計データが、データベース１０５に登録される。
【００３６】
以上に述べた工程１〜工程３が終わって登録が終了した時点でその回路ブロックの設計データにはバージョン管理ツールによって与えられたバージョン情報を格納したレジスタが内蔵される。
【００３７】
さらに、登録されているＩＰを再利用して設計した回路ブロックについては、その設計データに、工程１〜３が終わって登録が終了した時点でバージョン管理ツールによって与えられた当該回路ブロック自体のバージョン情報を格納したレジスタが内蔵され、かつ、再利用されているＩＰのバージョン情報を参照するための回路が内蔵される。
【００３８】
このようにして、新規にＩＰとして登録しようとする回路ブロックの設計データに、そのＩＰのバージョンを保持するレジスタおよびそれにアクセスするための回路を自動的に追加してから、当該回路ブロックの設計データをＩＰとしてデータベースに登録する。このため、管理する際の人手によるミスを防ぐことができ、信頼性の高い管理を行える。
【図面の簡単な説明】
【００３９】
【図１】ＩＰ管理装置とＩＰデータベースのブロック図である。
【図２】ＩＰ登録時の設計データ変更プログラムによる処理手順を示す図である。
【図３】ＩＰのバージョン情報を格納したレジスタのテンプレートを示す図である。
【図４】第１実施形態において登録済みのＩＰの設計データを再利用したシステムＬＳＩの構成の一例を示す図である。
【図５】バージョン情報を格納したレジスタを外部から参照するためのセレクタ回路のテンプレートの一例を示す図である。
【図６】登録済みのシステムＬＳＩの設計データの一例を示す図である。
【図７】バージョン情報を格納したレジスタを外部から参照するためのレジスタリード回路のテンプレートを示す図である。
【図８】第２実施形態において登録済みのＩＰの設計データを再利用したシステムＬＳＩの構成の一例を示す図である。１０１  バージョン管理装置１０２  既存のバージョン管理ツール１０３  設計データの変更プログラム１０４  登録する設計データ１０５  ＩＰ管理装置１０１が管理するデータベース１０６  登録済みのＩＰであるＣＰＵのデータベース１０７  登録済みのＩＰであるＢｌｏｃｋＡのデータベース１０８  登録済みのＩＰであるＢｌｏｃｋＢのデータベース１０９  登録済みのシステムＬＳＩであるＣｈｉｐＸのデータベース
【図１】
2006202140.tif 000003
【図２】
2006202140.tif 000004
【図３】
2006202140.tif 000005
【図４】
2006202140.tif 000006
【図５】
2006202140.tif 000007
【図６】
2006202140.tif 000008
【図７】
2006202140.tif 000009
【図８】
2006202140.tif 000010