(57)【要約】【課題】リセット後のプログラムの起動場所を任意に設定できる集積回路装置の製造方法を提供すること。【解決手段】プロセッサ内蔵の集積回路の設計データを自動生成する論理合成ツールの入力となるハードウエア記述言語を作成するハードウエア記述言語作成ステップと、作成されたハードウエア記述言語に基づいて前記論理合成ツールを実行させて集積回路の設計データを自動生成するステップと、前記集積回路の設計データに基づいて集積回路装置を製造するステップとを含む、集積回路装置の製造方法であって、前記ハードウエア記述言語作成ステップにおいて、集積回路を構成する各モジュールでブートアドレスをパラメータで指定し、アドレスとパラメータとの対応関係を定義するパラメータ定義ファイルを設け、当該パラメータ定義ファイルにおいて、ブートアドレスのアドレスを任意に指定し、パラメータとの対応関係を定義することを特徴とする。【選択図】図２
2007334549.tif 000002
【特許請求の範囲】
【請求項１】
論理合成ツールの入力となるハードウエア記述言語を作成するハードウエア記述言語作成ステップと、
作成されたハードウエア記述言語に基づいて前記論理合成ツールを実行させて集積回路の設計データを自動生成するステップと、
前記集積回路の設計データに基づいて集積回路装置を製造するステップとを含む、集積回路装置の製造方法であって、
前記ハードウエア記述言語作成ステップにおいて、
プロセッサ内蔵の集積回路を設計し、
集積回路を構成する各モジュールでブートアドレスをパラメータで指定し、
アドレスとパラメータとの対応関係を定義するパラメータ定義ファイルを設け、当該パラメータ定義ファイルにおいて、ブートアドレスのアドレスを任意に指定し、パラメータとの対応関係を定義することを特徴とする集積回路装置の製造方法。
【請求項２】
論理合成ツールの入力となるハードウエア記述言語を作成するハードウエア記述言語作成ステップと、
作成されたハードウエア記述言語に基づいて前記論理合成ツールを実行させて集積回路の設計データを自動生成する設計データ自動生成ステップと、
前記集積回路の設計データに基づいて集積回路装置を製造するステップとを含む、集積回路装置の製造方法であって、
前記ハードウエア記述言語作成ステップにおいて、
プロセッサ内蔵の集積回路を設計し、
集積回路を構成する各モジュールで所与の予約エリアのアドレスをパラメータで指定し、
アドレスとパラメータとの対応関係を定義するパラメータ定義ファイルを設け、当該パラメータ定義ファイルにおいて、所与の予約エリアのアドレスを任意に指定し、パラメータとの対応関係を定義することを特徴とする集積回路装置の製造方法。
【請求項３】
請求項１乃至２のいずれかにおいて、
前記設計データ自動生成ステップにおいて、
前記論理合成ツールが、パラメータ定義ファイルにおいて指定されたアドレスの競合を検出した場合には、指定された優先順位にしたがってアドレスの割り当ての自動調整を行い集積回路の設計データを自動生成することを特徴とする集積回路装置の製造方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路装置の製造方法に関する。
【背景技術】
【０００２】
近年、家庭用のゲーム装置、カーナビゲーションシステム、プリンタ、携帯情報端末などの電子機器に組み込まれ、高度な情報処理を実現できるマイクロコンピュータに対する需要が高まっている。このようなマイクロコンピュータでは、ＲＯＭを内蔵するもの、即ち内部ＲＯＭを有するものが多い。そしてこの内部ＲＯＭにはユーザが作成したプログラムが記憶されており、マイクロコンピュータのリセット後には、通常、内部ＲＯＭに記憶されているリセット処理プログラム（リセット後に最初に実行するプログラム）を最初に実行する。
【特許文献１】特開平９−２５１４７７号
【特許文献２】ＷＯ０８／４４４０８号
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながらこれまでのマイクロコンピュータでは、リセット後に予め設定されたブートアドレスからしかプログラムを起動できなかった。このため、ユーザーはリセット後のプログラムの起動場所を自由に設定することもできなかった。
【０００４】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、リセット後のプログラムの起動場所を任意に設定できる集積回路装置の製造方法を提供することにある。
【課題を解決するための手段】
【０００５】
（１）本発明は、
論理合成ツールの入力となるハードウエア記述言語を作成するハードウエア記述言語作成ステップと、
作成されたハードウエア記述言語に基づいて前記論理合成ツールを実行させて集積回路の設計データを自動生成するステップと、
前記集積回路の設計データに基づいて集積回路装置を製造するステップとを含む、集積回路装置の製造方法であって、
前記ハードウエア記述言語作成ステップにおいて、
プロセッサ内蔵の集積回路を設計し、
集積回路を構成する各モジュールでブートアドレスをパラメータで指定し、
アドレスとパラメータとの対応関係を定義するパラメータ定義ファイルを設け、当該パラメータ定義ファイルにおいて、ブートアドレスのアドレスを任意に指定し、パラメータとの対応関係を定義することを特徴とする。
【０００６】
ここでプロセッサとは例えばＣＰＵ、ＤＳＰである。また集積回路の設計データとは例えばネットリストやレイアウトパターンである。
【０００７】
論理合成ツールとは、ハードウエア記述言語に従って回路設計シミュレーションを行い、集積回路の設計データを生成する回路設計用の論理シミュレータであり、Verilog(ベリログ)やＶＨＤＬ（VHSIC Hardware Description Language）やシステムＣのそれぞれに対応した論理合成ツールがある。
【０００８】
集積回路の設計データとは、例えばネットリストやレイアウトデータである。
【０００９】
ハードウェア記述言語とは、デジタル回路、特に集積回路を設計するためのコンピュータ言語の一種である。一般にはＨＤＬ(Hardware Description Language)と呼称され、例えばVerilog(ベリログ)やＶＨＤＬ（VHSIC Hardware Description Language）やシステムＣなどがある。
【００１０】
ブートアドレスとはリセット後にプロセッサが最初に読み出すアドレスである。
【００１１】
ここにおいてパラメータとは変数であり、アドレスとは例えば即値で指定されるアドレス（以下、即値指定アドレスという）をいう。
【００１２】
本発明によれば、パラメータ定義ファイルのブートアドレスの即値指定アドレスを変更するだけで、ブートアドレスに対応する即値指定アドレスを各ユーザーごとに設定することができる。従ってユーザーの必要に応じてユーザーごとに最適なブートアドレスを設定することができ、電子機器の低コスト化、コンパクト化、開発期間の短縮化を図ることができる。
【００１３】
（２）本発明は、
論理合成ツールの入力となるハードウエア記述言語を作成するハードウエア記述言語作成ステップと、
作成されたハードウエア記述言語に基づいて前記論理合成ツールを実行させて集積回路の設計データを自動生成する設計データ自動生成ステップと、
前記集積回路の設計データに基づいて集積回路装置を製造するステップとを含む、集積回路装置の製造方法であって、
前記ハードウエア記述言語作成ステップにおいて、
プロセッサ内蔵の集積回路を設計し、
集積回路を構成する各モジュールで所与の予約エリアのアドレスをパラメータで指定し、
アドレスとパラメータとの対応関係を定義するパラメータ定義ファイルを設け、当該パラメータ定義ファイルにおいて、所与の予約エリアのアドレスを任意に指定し、パラメータとの対応関係を定義することを特徴とする。
【００１４】
ここでプロセッサとは例えばＣＰＵ、ＤＳＰである。また集積回路の設計データとは例えばネットリストやレイアウトパターンである。
【００１５】
論理合成ツールとは、ハードウエア記述言語に従って回路設計シミュレーションを行い、集積回路の設計データを生成する回路設計用の論理シミュレータであり、Verilog(ベリログ)やＶＨＤＬ（VHSIC Hardware Description Language）やシステムＣのそれぞれに対応した論理合成ツールがある。
【００１６】
集積回路の設計データとは、例えばネットリストやレイアウトデータである。
【００１７】
ハードウェア記述言語とは、デジタル回路、特に集積回路を設計するためのコンピュータ言語の一種である。一般にはＨＤＬ(Hardware Description Language)と呼称され、例えばVerilog(ベリログ)やＶＨＤＬ（VHSIC Hardware Description Language）やシステムＣなどがある。
【００１８】
予約エリアのアドレスとは例えばメモリ空間やＩ／Ｏ空間に、ＲＡＭ、ＲＯＭ、周辺装置等の予約エリアを設定する際のアドレスである。
【００１９】
ここにおいてパラメータとは変数であり、アドレスとは例えば即値で指定されるアドレス（以下、即値指定アドレスという）をいう。
【００２０】
本発明によれば、パラメータ定義ファイルの所与の予約エリアのアドレスの即値指定アドレスを変更するだけで、所与の予約エリアのアドレスに対応する即値指定アドレスを各ユーザーごとに設定することができる。従ってユーザーの必要に応じてユーザーごとに最適な所与の予約エリアのアドレスを設定することができ、電子機器の低コスト化、コンパクト化、開発期間の短縮化を図ることができる。
【００２１】
（３）本発明の集積回路装置の製造方法は、
前記設計データ自動生成ステップにおいて、
前記論理合成ツールが、パラメータ定義ファイルにおいて指定されたアドレスの競合を検出した場合には、指定された優先順位にしたがってアドレスの割り当ての自動調整を行い集積回路の設計データを自動生成することを特徴とする。
【００２２】
パラメータ定義エリアのアドレスの競合の検出機能や自動調整機能は論理合成ツールが予め持っている機能を利用して行ってもよい。また論理合成ツールが上記機能を有していない場合にはパラメータ定義エリアのアドレスの競合の検出機能や自動調整機能を実現するためのハードウエア記述言語やそれ以外のソフトウエアを利用して行うようにしてもよい。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の好適な実施形態について図面を用いて詳細に説明する。
【００２４】
１．ＣＰＵ
以下、本発明の好適な実施の形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成の全てが本発明の必須構成要件であるとは限らない。
【００２５】
図１は、本実施の形態のＣＰＵ（プロセッサの一例）内蔵の集積回路装置の製造方法について説明するための概念図である。
【００２６】
まず論理合成ツールの入力となるハードウエア記述言語２１０を作成する。
【００２７】
ハードウェア記述言語２１０とは、デジタル回路、特に集積回路を設計するためのコンピュータ言語の一種である。一般にはＨＤＬ(Hardware Description Language)と呼称され、例えばVerilog(ベリログ)やＶＨＤＬ（VHSIC Hardware Description Language）やシステムＣなどがある。
【００２８】
次に作成されたハードウエア記述言語２１０を論理合成ツール２２０の入力データとして論理合成ツール２２０を実行させて集積回路の設計データ２３０を自動生成する。
【００２９】
論理合成ツール２２０とは、ハードウエア記述言語に従って回路設計シミュレーションを行い、集積回路の設計データを生成する回路設計用の論理シミュレータであり、Verilog(ベリログ)やＶＨＤＬ（VHSIC Hardware Description Language）やシステムＣのそれぞれに対応した論理合成ツールがある。
【００３０】
集積回路の設計データ２３０とは、例えばネットリストやレイアウトデータである。
【００３１】
そして集積回路の設計データ２３０に基づいて集積回路装置の製造ライン２４０において集積回路装置（ＩＣ２５０）を製造する。
【００３２】
図２は、第１の実施の形態のＣＰＵ（プロセッサの一例）内蔵の集積回路装置の製造方法について説明するためのフローチャートである。
【００３３】
まず論理合成ツールの入力となるハードウエア記述言語を作成する。ここにおいて、集積回路を構成する各モジュールでブートアドレスをパラメータで指定し、アドレスとパラメータとの対応関係を定義するパラメータ定義ファイルを設け、当該パラメータ定義ファイルにおいて、ブートアドレスのアドレスを任意に指定し、パラメータとの対応関係を定義する（ステップＳ１０）
次に作成されたハードウエア記述言語に基づいて前記論理合成ツールを実行させて集積回路の設計データを自動生成する（ステップＳ２０）。
【００３４】
そして設計データに基づいて集積回路装置を製造する（ステップＳ３０）。
【００３５】
図３〜図５は第１の実施の形態におけるハードウエア記述言語の具体的な作成手法について説明するための図である。
【００３６】
ここではハードウエア記述言語の一例であるVerilogで記述されている場合を例にとり説明する。
【００３７】
例えばVerilogモデルは実際のハードウェアの構成に近いモジュールの階層から構成される。モジュールではまず入力/出力端子、必要に応じて双方向端子が宣言される。次に配線を示すwire、記憶素子を示すregとサブモジュールのリストなどが定義される。さらに続いてその動作を規定するステートメントやステートメントをグループにしたブロック群が定義される。ブロックはbeginキーワードで始まり、endキーワードで終わる範囲で定義されその中は順番に実行される。しかし各ブロックは並列に実行される。
【００３８】
Verilog言語には論理合成を適用して実際の回路に変換可能な記述とそうではない部分がある。設計中のモジュールが全て合成可能なステートメントだけで記述されている場合、適切なソフトウェア（論理合成ツール）を用いて半導体チップの回路、さらにレイアウトデータまで変換することができる。
【００３９】
図３，図４はそれぞれ集積回路のモジュール１を作成するためのハードウエア記述言語が記述されたロジックファイル１（１３０−１）、集積回路のモジュール２を作成するためのハードウエア記述言語（ここではVerilog言語）が記述されたロジックファイル２（１３０−２）である。図３の１０はモジュール１においてブートアドレスを使用する箇所であり、図４の２０はモジュール２においてブートアドレスを使用する箇所である。
【００４０】
第１の実施の形態では、図２のステップＳ１０において、集積回路を構成する各モジュールでブートアドレス（リセット後にプロセッサが最初に読み出すアドレス）を、図３の１０や図４の２０に示すようにパラメータ（ここでは'C17＿TTBR'）で指定する。
【００４１】
図５はハードウエア記述言語（ここではVerilog言語）で記述されたパラメータ定義ファイルの一例である。
【００４２】
パラメータ定義ファイル１２０は、即値指定アドレスとパラメータとの対応関係を定義するためのハードウエア記述言語が記述されたファイルである。
【００４３】
３０は、ブートアドレスの即値指定アドレス（ここでは16'h0040'）とパラメータ（ここでは'C17＿TTBR'）との対応関係を定義する記述である。ここでブートアドレスの即値指定アドレスは任意に指定することができる。したがって例えばユーザーの要望に応じたブートアドレスを指定するようにしてもよい。
【００４４】
このように第１の実施の形態では、ハードウエア記述言語作成ステップにおいて、集積回路を構成する各モジュールがブートアドレス（リセット後にプロセッサが最初に読み出すアドレス）を使用する場合には、各モジュールの記述においてブートアドレスをパラメータ（即値でない）で指定し、即値指定アドレスとパラメータとの対応関係を定義するパラメータ定義ファイルを設け、当該パラメータ定義ファイルにおいて、ブートアドレスの即値指定アドレスを任意に指定し、パラメータとの対応関係を定義する。
【００４５】
従って、パラメータ定義ファイルのブートアドレスの即値指定アドレスを変更するだけで、ブートアドレスに対応する即値指定アドレスを各ユーザーごとに設定することができる。
【００４６】
第１の実施の形態によれば製品ごとに異なるブートアドレスを設定する際の手間が大幅に削減できるので、ユーザーの必要に応じてユーザーごとに最適なブートアドレスを設定することができ、電子機器の低コスト化、コンパクト化、開発期間の短縮化を図ることができる。
【００４７】
図６は、第２の実施の形態のＣＰＵ（プロセッサの一例）内蔵の集積回路装置の製造方法について説明するためのフローチャートである。
【００４８】
まず論理合成ツールの入力となるハードウエア記述言語を作成する。ここにおいて、集積回路を構成する各モジュールで所与の予約エリアのアドレスをパラメータで指定し、アドレスとパラメータとの対応関係を定義するパラメータ定義ファイルを設け、当該パラメータ定義ファイルにおいて、所与の予約エリアのアドレスを任意に指定し、パラメータとの対応関係を定義する（ステップＳ１１０）
次に作成されたハードウエア記述言語に基づいて前記論理合成ツールを実行させて集積回路の設計データを自動生成する（ステップＳ１２０）。
【００４９】
そして設計データに基づいて集積回路装置を製造する（ステップＳ１３０）。
【００５０】
図７（Ａ）は第２の実施の形態における予約エリアの設定例、図７（Ｂ）はメモリマップ例である。
【００５１】
図７（Ａ）のパラメータ定義ファイルでは予約エリアの４つのデファインパラメータの定義（１４０）を示している。
【００５２】
４０は、メモリ空間におけるＲＡＭ（予約エリアの一例）のパラメータ（ここでは'IRAM＿ADDR'）と即値指定アドレス（ここでは'0xc0000'）の対応関係を定義するデファインパラメータ設定である。
【００５３】
５０は、メモリ空間におけるＲＯＭ（予約エリアの一例）のパラメータ（ここでは'IROM＿ADDR'）と即値指定アドレス（ここでは'0xff0000'）の対応関係を定義するデファインパラメータ設定である。
【００５４】
６０は、メモリ空間におけるペリフェラル（周辺装置、予約エリアの一例）のパラメータ（ここでは'PERI＿ADDR'）と即値指定アドレス（ここでは'0x0ff000'）の対応関係を定義するデファインパラメータ設定である。
【００５５】
７０は、メモリ空間におけるＴＴＢ（ブートアドレス、トラップテーブルのアドレス）のパラメータ（ここでは'TTB＿ADDR'）と即値指定アドレス（ここでは'0x4000'）の対応関係を定義するデファインパラメータ設定である。
【００５６】
図７（Ｂ）はパラメータ定義ファイルで定義されたデファインパラメータに従ってアドレスが割り付けられたメモリ空間のメモリマップである。前メモリ空間は１６ＭＢ（２４ビット）と仮定し、パラメータを設定していない空間（図７（Ｂ）の斜線部）はユーザー空間となる。ＴＴＢの実態はユーザー空間にマップされているＲＯＭまたはＲＡＭとなる。
【００５７】
メインメモリ空間とは、主にOSやアプリケーションといったプログラムやデータが保持されている、メインメモリーにおける仮想的な領域（メモリー空間）のことである。DRAMなどの物理メモリーで構成される。
【００５８】
CPUがアクセスできるメモリー空間としては、メインメモリー空間の他にもI/Oアドレス空間がある。メインメモリー空間が周辺機器の制御に用いられる場合の方式は、メモリーマップドI/O方式と呼ばれる。
【００５９】
なおペリフェラルは、CPUがメインメモリ空間にアクセスして、周辺機器を制御するメモリマップドI/O方式の場合に、CPUが「ロード／ストア」と呼ばれる命令を用いて、メインメモリ空間に命令を書き込むことで周辺機器を制御するための領域である。
【００６０】
周辺機器の制御方式としては、他にもI/Oアドレス空間を使ってデータをやり取りする、I/Oアドレス方式がある。周辺機器によってはI/Oアドレス方式とメモリマップドI/O方式とを併用しているものもある。
【００６１】
周辺機器とは、コンピュータと組み合わせて利用される各種の機器のことである。ディスプレイ、プリンター、ハードディスクドライブ、フロッピー（登録商標）ディスクドライブ、フラッシュメモリ、デジタルカメラなどが代表的な周辺機器にあたる。
【００６２】
このように第２の実施の形態では前記ハードウエア記述言語作成ステップにおいて、集積回路を構成する各モジュールで所与の予約エリアのアドレス（例えばＩ／Ｏ空間、ＲＡＭ、ＲＯＭ、周辺装置等）をパラメータ（即値でない）で指定し、即値指定アドレスとパラメータとの対応関係を定義するパラメータ定義ファイルを設け、図７（Ａ）に示すように当該パラメータ定義ファイルにおいて、所与の予約エリアの即値指定アドレスを任意に指定し、パラメータとの対応関係を定義する。
【００６３】
従って、パラメータ定義ファイルの所与の予約エリアのアドレスの即値指定アドレスを変更するだけで、所与の予約エリアのアドレスに対応する即値指定アドレスを各ユーザーごとに設定することができる。
【００６４】
第１の実施の形態によれば製品ごとに異なる所与の予約エリアのアドレスを設定する際の手間が大幅に削減できるので、ユーザーの必要に応じてユーザーごとに最適な所与の予約エリアのアドレスを設定することができ、電子機器の低コスト化、コンパクト化、開発期間の短縮化を図ることができる。
【００６５】
図８（Ａ）（Ｂ）は、本実施の形態でアドレスの競合が起こった場合の処理について説明するための図である。
【００６６】
ユーザは競合しないように、各パラメータを設定するのが基本である。しかし競合があった場合、論理合成ツールのアドレスデコードはIROM>PERI>IRAMの優先順位で設定するよう動作するフェイルセーフ設計とする。
【００６７】
例えば図８（Ａ）のようにＲＡＭの予約エリアのアドレス（ここでは'0xc000'）（８０参照）とペリフェラルの予約エリアのアドレス（ここでは'0xc000'）（９０参照）が競合する場合には、ペリフェラルのほうがＲＡＭよりも優先順位が高いので、図８（Ｂ）の１００に示すようにペリフェラルにパラメータ定義ファイルの出ファインパラメータで定義されたアドレス（ここでは'0xc000'）を与え、図８（Ｂ）の１１０に示すようにＲＡＭ予約エリアのアドレスは他と競合しないアドレスにずらして設定される。
【００６８】
図９は、本実施の形態のＣＰＵ（プロセッサの一例）内蔵の集積回路装置の製造方法の競合発生時の処理について説明するためのフローチャートである。
【００６９】
まず作成したハードウエア記述言語に基づいて論理合成ツールを実行させる（
ステップＳ２１０）。
【００７０】
次に論理合成ツールが、パラメータ定義ファイルにおいて指定されたアドレスの競合を検出した場合には（ステップＳ２２０）、予め指定された優先順位にしたがってアドレスの割り当ての自動調整を行う（ステップＳ２３０）。
【００７１】
そして自動調整後のアドレス割り当てに従って集積回路の設計データを自動生成する（ステップＳ２４０）。
【００７２】
次に論理合成ツールが、パラメータ定義ファイルにおいて指定されたアドレスの競合を検出しない場合には（ステップＳ２２０）、作成されたハードウエア記述言語に基づいて前記論理合成ツールを実行させて集積回路の設計データを自動生成する（ステップＳ２５０）。
【００７３】
そして設計データに基づいて集積回路装置を製造する（ステップＳ２６０）。
【００７４】
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
【図面の簡単な説明】
【００７５】
【図１】ＣＰＵ内蔵の集積回路装置の製造方法について説明するための概念図。
【図２】第１の実施の形態のＣＰＵ内蔵の集積回路装置の製造方法について説明するためのフローチャート。
【図３】モジュール１のロジックファイルのハードウエア記述言語の一例。
【図４】モジュール２のロジックファイルのハードウエア記述言語の一例。
【図５】パラメータ定義ファイルのデファインパラメータのハードウエア記述言語の一例。
【図６】第２の実施の形態のＣＰＵ内蔵の集積回路装置の製造方法について説明するためのフローチャート。
【図７】図７（Ａ）は第２の実施の形態における予約エリアの設定例、図６（Ｂ）はメモリマップ例である。
【図８】図８（Ａ）（Ｂ）は、本実施の形態でアドレスの競合が起こった場合の処理について説明するための図。
【図９】ＣＰＵ内蔵の集積回路装置の製造方法の競合発生時の処理について説明するためのフローチャート。
【符号の説明】
【００７６】
２１０  ハードウエア記述言語、２２０  論理合成ツール、２３０  集積回路の設計データ、２４０  集積回路装置の製造ライン、２５０  ＩＣ
【図１】
2007334549.tif 000003
【図２】
2007334549.tif 000004
【図３】
2007334549.tif 000005
【図４】
2007334549.tif 000006
【図５】
2007334549.tif 000007
【図６】
2007334549.tif 000008
【図７】
2007334549.tif 000009
【図８】
2007334549.tif 000010
【図９】
2007334549.tif 000011