(57)【要約】【課題】  ＦＰＧＡで構成された回路を、セルベースＩＣなどのセミカスタムＬＳＩで構成するときに、回路の等価性を保つことができるＦＰＧＡデバイス、および、そのＦＰＧＡデバイスを生成するＥＤＡを提供する。【解決手段】  （ａ）回路設計ＥＤＡ（Electronic  Design  Automation）が、半導体デバイスの論理設計モデルに基づいて第１ＲＴＬ（Resister  Transfer  Level）記述モデルを生成するステップと、  （ｂ）回路変更ＥＤＡが、前記第１ＲＴＬ記述モデルを第２ＲＴＬ記述モデルに変換するステップと、  （ｃ）論理合成ツールが、前記第２ＲＴＬ記述モデルをＦＰＧＡプリミティブにマッピングするステップを具備する方法をコンピュータに実行させるためのプログラムを作成し、そのプログラムを用いて半導体回路を設計する。【選択図】        図１
2006318266.tif 000002
【特許請求の範囲】
【請求項１】
特定の用途のために製造される半導体デバイスの設計を支援するプログラムであって、
（ａ）回路設計ＥＤＡ（Electronic  Design  Automation）が、前記半導体デバイスの論理設計モデルに基づいて第１ＲＴＬ（Resister  Transfer  Level）記述モデルを生成するステップと、
（ｂ）回路変更ＥＤＡが、前記第１ＲＴＬ記述モデルを第２ＲＴＬ記述モデルに変換するステップと、
（ｃ）論理合成ツールが、前記第２ＲＴＬ記述モデルをＦＰＧＡプリミティブにマッピングするステップ
を具備する方法をコンピュータに実行させるためのプログラム。
【請求項２】
請求項１に記載のプログラムにおいて、
前記（ａ）ステップは、
前記半導体デバイスの内部の記憶回路を特定し、前記記憶回路のリセット回路を構成して前記第１ＲＴＬ記述モデルを生成するステップを含み、
前記（ｂ）ステップは、
前記第１ＲＴＬ記述モデルに、前記記憶回路の書き換え値を受ける書き換え値入力端と、前記記憶回路が保持する値を受ける記憶値供給端とを生成するステップを含み、
前記（ｃ）ステップは、
前記第２ＲＴＬ記述モデルに基づいて、論理合成を実行してＦＰＧＡ用ネットリストを生成し、前記ＦＰＧＡ用ネットリストに基づいてマッピングを実行するステップ
を具備する方法をコンピュータに実行させるためのプログラム。
【請求項３】
請求項２に記載のプログラムにおいて、
前記（ｂ）ステップは、
外部から供給される前記書き換え値を受ける第１端子と、前記記憶値供給端に接続される第２端子と、前記第１端子と前記第２端子との一方を介して供給される値を前記書き換え値入力端に提供するスイッチとを備える書き換え回路モデルを生成するステップと、
前記スイッチの出力端と前記書き換え値入力端とを接続して前記第２ＲＴＬ記述モデルを生成するステップ
を具備する方法をコンピュータに実行させるためのプログラム。
【請求項４】
請求項３に記載のプログラムにおいて、
前記リセット回路は、前記記憶回路と前記記憶回路の前段に備えられる論理回路との間に設けられ、第１入力端子と第２入力端子とを有する選択回路を含み、
前記（ａ）ステップは、
前記第２入力端子と前記論理回路とを接続するステップを含み、
前記（ｂ）ステップは、
前記スイッチの出力端と前記第１入力端子とを接続し、前記第２端子と前記記憶回路の出力端とを接続した信号経路を形成して前記第２ＲＴＬ記述モデルを生成するステップ
を具備する方法をコンピュータに実行させるためのプログラム。
【請求項５】
特定の用途のために製造される半導体デバイスの設計を支援する半導体設計支援装置であって、
半導体デバイスの論理設計モデルに基づいて第１ＲＴＬ記述モデルを生成する回路設計装置と、
前記第１ＲＴＬ記述モデルを第２ＲＴＬ記述モデルに変換する回路変更装置と、
前記第２ＲＴＬ記述モデルをＦＰＧＡプリミティブにマッピングする論理合成装置と
を具備する
半導体設計支援装置。
【請求項６】
請求項５に記載の半導体設計支援装置において、
前記回路設計装置は、
前記半導体デバイスの内部の記憶回路を特定し、前記記憶回路のリセット回路を構成して前記第１ＲＴＬ記述モデルを生成し、
前記回路変更装置は、
前記第１ＲＴＬ記述モデルに基づいて、前記記憶回路の書き換え値を受ける書き換え値入力端と、前記記憶回路が保持する値を受ける記憶値供給端とを有する前記第２ＲＴＬ記述モデルに変換し、
前記論理合成装置は、
前記第２ＲＴＬ記述モデルに基づいて、論理合成を実行してＦＰＧＡ用ネットリストを生成し、前記ＦＰＧＡ用ネットリストに基づいてマッピングを実行する
半導体設計支援装置。
【請求項７】
請求項６に記載の半導体設計支援装置において、
前記回路変更装置は、
外部から供給される前記書き換え値を受ける第１端子と、前記記憶値供給端に接続される第２端子と、前記第１端子と前記第２端子との一方を介して供給される値を前記書き換え値入力端に提供するスイッチとを備える書き換え回路モデルを生成し、
前記スイッチの出力端と前記書き換え値入力端とを接続して前記第２ＲＴＬ記述モデルを生成する
半導体設計支援装置。
【請求項８】
請求項７に記載の半導体設計支援装置において、
前記リセット回路は、前記記憶回路と前記記憶回路の前段に備えられる論理回路との間に設けられ、第１入力端子と第２入力端子とを有する選択回路を含み、
前記回路設計装置は、
前記第２入力端子と前記論理回路とを接続し、
前記回路変更装置は、
前記スイッチの出力端と前記第１入力端子とを接続し、前記第２端子と前記記憶回路の出力端とを接続した信号経路を形成して前記第２ＲＴＬ記述モデルを生成する
半導体設計支援装置。
【請求項９】
特定の用途のために製造される半導体デバイスであって、
前記半導体デバイスは、
内部記憶回路と、
前記内部記憶回路に接続され、前記内部記憶回路の書き換え値を受ける書き換え値入力端と、前記内部記憶回路が保持する値を受ける記憶値供給端と
を備えるリセット部と、
前記書き換え値を前記リセット部に供給する書き換え回路
を具備し、
前記書き換え回路は、
前記書き換え値が供給される第１端子と、
前記記憶回路の出力端に接続される第２端子と、
前記第１端子と前記第２端子の１方を、前記リセット部に接続するスイッチ手段と
を備え、
前記スイッチ手段は、外部から入力される制御信号に応答して前記書き換え回路と前記リセット部との接続を制御して、前記スイッチ手段を介して前記書き換え値を前記リセット部に出力し、
前記リセット部は、リセット入力に応答して前記書き換え回路の出力に基づいて前記内部記憶回路に前記書き換え値を供給する
半導体デバイス。
【請求項１０】
請求項９に記載の半導体デバイスにおいて、
前記スイッチ手段は、前記制御信号に基づいて、値の書き換えを禁止する内部記憶回路を特定し、前記書き換え禁止内部記憶回路の出力と前記リセット部の入力とを接続する
半導体デバイス。
【請求項１１】
請求項１０に記載の半導体デバイスにおいて、
前記リセット部は、さらに、
前記記憶回路と前記記憶回路の前段に備えられる論理回路との間に接続される選択回路を備え、
前記選択回路は、
前記論理回路の出力に接続される第１論理入力端と、
前記書き換え回路の出力に接続される第２論理入力端と、
前記記憶回路に接続される第１出力端と
を含み、
前記選択回路は、
前記リセット入力に応答して、前記第１論理入力端から供給される値を前記記憶回路に出力する
半導体デバイス。
【請求項１２】
特定の用途のために製造される半導体デバイスの製造方法であって、
（ａ）回路設計ＥＤＡが、半導体デバイスの論理設計モデルに基づいて第１ＲＴＬ記述モデルを生成するステップと、
（ｂ）回路変更ＥＤＡが、前記第１ＲＴＬ記述モデルを第２ＲＴＬ記述モデルに変換するステップと、
（ｃ）論理合成ツールが、論理合成を実行して前記第２ＲＴＬ記述モデルに対応するＦＰＧＡ用ネットリストを生成するステップと
（ｄ）前記ＦＰＧＡ用ネットリストに基づいて、実際のＦＰＧＡデバイスを製造するステップ
を具備し、
前記（ａ）ステップは、
前記半導体デバイスの内部の記憶回路を特定し、前記記憶回路のリセット回路を構成して前記第１ＲＴＬ記述モデルを生成するステップを含み、
前記（ｂ）ステップは、
前記記憶回路の書き換え値を受ける書き換え値入力端と、前記記憶回路が保持する値を受ける記憶値供給端とを有する前記第２ＲＴＬ記述モデルに変換するステップ
を具備する
半導体製造方法。
【請求項１３】
請求項１２に記載の半導体製造方法において、
前記（ｂ）ステップは、
外部から供給される前記書き換え値を受ける第１端子と、前記記憶値供給端に接続される第２端子と、前記第１端子と前記第２端子との一方を介して供給される値を前記書き換え値入力端に提供するスイッチとを備える書き換え回路モデルを生成するステップと、
前記スイッチの出力端と前記書き換え値入力端とを接続して前記第２ＲＴＬ記述モデルを生成するステップ
を具備する
半導体製造方法。
【請求項１４】
請求項１３に記載のプログラムにおいて、
前記リセット回路は、前記記憶回路の前段に備えられる論理回路と前記記憶回路との間に設けられ、第１入力端子と第２入力端子とを有する選択回路を含み、
前記（ａ）ステップは、
前記第２入力端子と前記論理回路とを接続するステップを含み、
前記（ｂ）ステップは、
前記スイッチの出力端と前記第１入力端子とを接続し、前記第２端子と前記記憶回路の出力端とを接続した信号経路を形成して前記第２ＲＴＬ記述モデルを生成するステップ
を具備する
半導体製造方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体デバイス、半導体設計装置および半導体設計方法に関し、特にＰＬＤ（Programmable  Logic  Device）の設計装置、ＰＬＤの設計方法およびその設計装置で設計されるＰＬＤに関する。
【背景技術】
【０００２】
ユーザが任意に論理を書き込むことにより、ユーザ側で様々なランダム・ロジック回路を実現できる半導体デバイスを総称してＰＬＤ（Programmable  Logic  Device）と呼び、近年、急速に大規模化し、有力なＡＳＩＣ開発手法として認知されつつある。特に、ここ数年においては、新しいＰＬＤとして、ＦＰＧＡ（Field  Programmable  Gate  Array）が開発され、広く普及してきている。ＦＰＧＡは、セルベースＩＣなどのセミカスタムＬＳＩとは異なり、チップの製造後、ユーザがプログラムして使用するものである。
【０００３】
ＦＰＧＡを採用する半導体デバイス（以下、ＦＰＧＡデバイスと呼ぶ）を開発する場合、そのデバイスは複数の工程を経て開発される。工程は一般的には、システム仕様に基づいて論理回路を設計する論理設計工程と、設計された論理回路からネットリスト（回路の接続状態を表現したデータ）を生成する論理合成工程と、ネットリストに基づいてロジックセルの配置・配線処理を行う配置・配線工程と、実際のデバイスにプログラミングを行うプログラミング工程とがある。
【０００４】
論理設計工程では、設計した論理回路をテキストエディタなどを用いてＨＤＬ（Hardware  Description  Language；ハードウェア記述言語）で記述する。論理合成工程では、ＥＤＡ（Electronic  Design  Automation：半導体設計向け電子設計自動化ソフトウェア）ツール（例えば、論理合成ツール）を用いて、ＨＤＬで記述された回路情報に基づいてネットリストを生成する。配置・配線工程において、作成されたネットリストに基づいて、ＥＤＡツール（例えば配置・配線ツール）を用いて、配置・配線処理が行われる。ＦＰＧＡには、基本論理機能を提供する論理素子が、予め多数配置されている。配置・配線工程において、ＥＤＡツールは、ロジックセルをその論理素子にマッピングする。さらに、マッピングされたセル間の配線を行う。この配置・配線処理が完了した後、配線遅延などを検証するシミュレーションを行い、動作タイミングなどの検証を行う。動作検証により設計された回路が仕様を満たすと判断された場合、プログラミング工程において、実デバイスに回路情報が入力される。この工程で実際のＦＰＧＡデバイスが形成される。
【０００５】
上述したように、ＦＰＧＡは、基本論理機能をもつ論理素子を備えている。ユーザは、その論理素子を複数組み合わせて、ランダム・ロジックを実現することができる。ユーザによるプログラミングが行われた後、そのプログラムの書き換え作業が必要になる場合がある。そのような場合に内部レジスタの書き換えを行うことでプログラムを書き換える技術が知られている（例えば、特許文献１参照。）。
【０００６】
従来、ＦＰＧＡ内部レジスタの書き換え機能を実現するには、例えば、ハードウェアエミュレータでは、ＨＤＬによって記述される回路を、論理を追加した専用ＦＦにマッピングした後に、ＦＰＧＡプリミティブ（”白紙”状態のＦＰＧＡ）にマッピングしている。また、書き換え対象のＦＰＧＡとは別に、書き換え用の制御ＣＰＵを構成した場合、デバッグ対象のＦＰＧＡのレジスタを、その制御ＣＰＵを用いて読み書きすることで書き換えを実行している。
【０００７】
【特許文献１】特開平３−２０１１４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上述したように、レジスタ書き換えの用の専用のハードウェアを追加することで、レジスタの書き換えが可能なＦＰＧＡデバイスを構成することができるが、専用のハードウェアの追加は、ＦＰＧＡ回路規模の増大につながっている。
【０００９】
また、ＦＰＧＡは、セルベースＩＣなどのセミカスタムＬＳＩと比べ開発期間が短いこと、標準品であるため少量生産用途に向いていること、特に多額の初期費用（マスク設計・製作費等）が不要であることがメリットである。しかしながら、一般的に、生産数量が多くなるとＦＰＧＡよりセミカスタムＬＳＩの方がゲートあたりの単価のうえで有利となる。したがって、製品機器の生産数量の増加に伴って、ＦＰＧＡに変えてセルベースＩＣなどのセミカスタムＬＳＩで搭載する半導体デバイスを構成することで、製品機器のコストを削減することができる。また、ＡＳＩＣ（例えばセルベースＩＣ）の開発において、開発プロセスにおけるプロトタイピングにＦＰＧＡを用いて開発を進める場合がある。
【００１０】
このように、ＦＰＧＡで構成していた半導体デバイスをセミカスタムＬＳＩで構成する場合や、プロトタイピングにＦＰＧＡを用いて開発を行う場合に、セミカスタムＬＳＩへ実装する回路構成と、ＦＰＧＡ実装時に実現していた回路構成との差分が大きいと、相互の回路で等価性が保たれず、ＦＰＧＡでは正常動作していた回路がセルベースＩＣでは不安定になってしまう場合がある。
【００１１】
本発明が解決しようとする課題は、ＦＰＧＡデバイスによって実現される回路を、セミカスタムＬＳＩで構成するときに、相互の回路間における等価性を保つことができる回路構成を有するＦＰＧＡデバイス、および、そのＦＰＧＡデバイスを設計することができるＥＤＡを提供することにある。
【課題を解決するための手段】
【００１２】
以下に、［発明を実施するための最良の形態］で使用される番号を用いて、課題を解決するための手段を説明する。これらの番号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］との対応関係を明らかにするために付加されたものである。ただし、それらの番号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１３】
上記課題を解決するために、ユーザが任意に論理を書き込むことにより所定のロジック回路を構成する半導体（ＦＰＧＡ）の設計を支援するプログラムを以下のように構成する。そのプログラムは、
［ａ］回路設計ＥＤＡ（Electronic  Design  Automation）が、半導体デバイスの論理設計モデルに基づいて第１ＲＴＬ（Resister  Transfer  Level）記述モデルを生成するステップと、
［ｂ］回路変更ＥＤＡが、前記第１ＲＴＬ記述モデルを第２ＲＴＬ記述モデルに変換するステップと、
［ｃ］論理合成ツールが、前記第２ＲＴＬ記述モデルをＦＰＧＡプリミティブにマッピングするステップ
を具備する方法をコンピュータに実行させるためのプログラムであることが好ましい。
【００１４】
ここで、そのプログラムにおいて、前記［ａ］ステップは、前記半導体デバイスの内部の記憶回路を特定し、前記記憶回路のリセット回路を構成して前記第１ＲＴＬ記述モデルを生成するステップを含むものであることが好ましい。
また、前記［ｂ］ステップは、前記第１ＲＴＬ記述モデルに、前記記憶回路の書き換え値を受ける書き換え値入力端と、前記記憶回路が保持する値を受ける記憶値供給端とを生成するステップを含むものであることが好ましい。
さらに、前記［ｃ］ステップは、前記第２ＲＴＬ記述モデルに基づいて、論理合成を実行してＦＰＧＡ用ネットリストを生成し、前記ＦＰＧＡ用ネットリストに基づいてマッピングを実行するステップを含むものであることがこのましい。これらのステップを具備する方法をコンピュータに実行させる。
さらに、前記［ｂ］ステップは、外部から供給される前記書き換え値を受ける第１端子と、前記記憶値供給端に接続される第２端子と、前記第１端子と前記第２端子との一方を介して供給される値を前記書き換え値入力端に提供するスイッチとを備える書き換え回路モデルを生成するステップと、前記スイッチの出力端と前記書き換え値入力端とを接続して前記第２ＲＴＬ記述モデルを生成するステップを含むものであっても良い。
【００１５】
書き換え回路（３１）は、デバッグ時には、第１端子から供給される書き換え値を記憶回路（レジスタ）側に供給する。また、書き換えを行なわない記憶回路がある場合には、スイッチ（３１）の接続を切り替えて、記憶回路の出力が再び同じ記憶回路に戻るような閉回路（３６→３７→４２→４１）を構成することで、記憶回路の値を保持し続ける。また、デバッグが完了した後は、デバッグ時に供給していた書き換え値に変えてリセット値を供給することで、通常のリセット回路として作用させる。
【発明の効果】
【００１６】
本発明によると、ＦＰＧＡで構成された回路を、セルベースＩＣなどのセミカスタムＬＳＩで構成するときに、回路の等価性を保つことができるＦＰＧＡデバイス、および、そのＦＰＧＡデバイスを生成するＥＤＡを提供することが可能になる。
【発明を実施するための最良の形態】
【００１７】
以下に、図面を参照して本発明を実施の形態について説明を行う。以下の実施の形態において、ＲＴＬ（Resister  Transfer  Level：回路をフリップフロップ＋組み合わせ論理回路で表現したレベル）記述で回路構成（回路モデル）が記述され、開発対象の回路を実装する半導体デバイスがＦＰＧＡである場合を例示して説明を行う。また、本実施の形態において、ＦＰＧＡとの等価性が要求されるセミカスタムＬＳＩがセルベースＩＣであるものとして説明を行う。
【００１８】
図１は、本発明の半導体開発手法の概要を示すブロック図である。図１（ａ）は、本発明の半導体開発手法の概要を示し、図１（ｂ）は、本願発明との比較のために従来の半導体開発手法の概要を示している。
【００１９】
図１（ａ）を参照すると、本発明による半導体開発では、システム仕様に基づいた論理設計を行い、ＲＴＬ記述によって基本となる論理回路を構成する（以下、基本回路構成と呼ぶ。）。基本回路構成データは、回路変更ＥＤＡに読み込まれ、論理修正処理が実行される。回路変更ＥＤＡは、プログラミング可能なように基本回路構成を修正する。論理修正処理により生成される論理回路（以下、修正後回路構成と呼ぶ）は、論理合成ツールで読み込まれ、ＦＰＧＡ用ネットリストが生成される。生成されたＦＰＧＡ用ネットリストは、ＦＰＧＡ開発ツールに送られ、実デバイスによる回路の形成が行われる。
【００２０】
また、図１（ｂ）を参照すると、従来の半導体開発では、レジスタの書き換え機能を実現するための専用ＦＦを用意し、その専用ＦＦにマッピングした後、ＦＰＧＡにマッピングを行っている。ここで、図１（ａ）および図１（ｂ）に示されているように、基本回路構成に対応するセルベースＩＣを構成する場合、セルベースＩＣ用ネットリストを生成する。セルベースＩＣ用ネットリストはレイアウト・ツールに読み込まれ、セルベースＩＣへのレイアウト作業が実行される。
【００２１】
前述したように、セルベースＩＣへ実装する回路構成と、ＦＰＧＡデバイスで実現していた回路構成との差分が大きいと、その回路構成をセルベースＩＣへ実装したときに不具合が発生することがある。本実施の形態の半導体開発装置は、上述した回路変更ＥＤＡを備え、その回路変更ＥＤＡが、適切な論理修正処理を実行することで、プログラミング（レジスタの書き換え）が可能な回路を構成している。本実施の形態の詳細な構成、動作に関して以下に説明を行っていく。本実施の形態において、開発対称となる半導体回路は、コンピュータを用いて設計された後、実ＦＰＧＡデバイスへのプログラミングが行われる。
【００２２】
図２は、本実施の形態の半導体設計装置の構成を例示するブロック図である。図２を参照すると、本実施の形態の半導体設計装置は、回路設計コンピュータ１と、回路設計コンピュータ１に情報を入力する入力装置２と、回路設計コンピュータ１から出力される出力データに基づいて情報の出力を行う出力装置３とで構成されている。回路設計コンピュータ１は、半導体デバイスの設計を実行する情報処理装置である。図２に示されているように、回路設計コンピュータ１は、ＣＰＵ４とメモリ５と大容量記憶装置６とを備えて構成され、それらはバス７を介して接続されている。ＣＰＵ４は、各種装置の制御や入出力されるデータの処理を行う演算処理装置である。メモリ５は、ＣＰＵ４が処理するデータを記憶する記憶装置である。大容量記憶装置６は、半導体設計に用いられる各種ツールや半導体設計に用いられるデータを保持する記憶装置である。
【００２３】
図２に示されるように、大容量記憶装置６は、ＥＤＡツール群８と、設計データ９と、回路データ記憶領域１０と、ＦＰＧＡ論理素子データ１１と、デバッガプログラム１２とを備えている。ＥＤＡツール群８は、半導体デバイスの開発を支援するコンピュータソフトウェアである。複数のＥＤＡ(Electronic  Design  Automation)ツールを含んで構成されている。図２を参照すると、ＥＤＡツール群８は、回路変更ＥＤＡ１３と、論理合成ツール１４と、エディタ１５と、回路設計ＥＤＡ１８とを含んでいる。設計データ９は、システムの仕様に基づいて設計される半導体デバイスの設計データである。以下に述べる本実施の形態の基本回路データ１６および修正後回路データ１７は、設計データ９に基づいて生成される。
【００２４】
回路データ記憶領域１０は、基本回路データ１６と、修正後回路データ１７とを保持する記憶領域である。基本回路データ１６は、リセット回路を有するレジスタの回路構成を示すデータである。また、修正後回路データ１７は、その基本回路データ１６に基づいて論理修正を実行した場合に生成される回路構成を示すデータである。ここで、各々の回路構成の詳細は後述するものとする。
【００２５】
ＦＰＧＡ論理素子データ１１は、白紙状態のＦＰＧＡが有するゲートの構成を示すデータである。また、デバッガプログラム１２は、ＦＰＧＡデバイスのデバッガ時に使用されるコンピュータソフトウェアである。ここで、上述の回路設計コンピュータ１を用いる場合における、本実施の形態の動作を例示する。
【００２６】
図３は、本実施の形態における、回路設計の全体的な動作を例示するフローチャートである。図３を参照すると、ステップＳ１０１において、システムの仕様に基づいて論理設計が行われる。
【００２７】
ステップＳ１０２において、設計された回路の構成をエディタを用いてＲＴＬ記述によって記述することで、仕様に沿った論理回路を構成する。回路設計ＥＤＡ１８は、ＲＴＬ記述で構成される設計データ９から、論理回路を構成しているレジスタを特定する。レジスタを特定した回路設計ＥＤＡは、そのレジスタに保持される値をリセットするためのリセット部を構成し、そのリセット部とレジスタとを接続して基本回路データ１６を生成する。回路変更ＥＤＡ１３は、生成する基本回路データ１６を、回路データ記憶領域１０に格納する。
【００２８】
ステップＳ１０３において、回路変更ＥＤＡ１３は回路データ記憶領域１０から基本回路データ１６を読み出す。回路変更ＥＤＡ１３は、読み出した基本回路データ１６に基づいて、その基本回路の論理修正を実行する。ここで、回路変更ＥＤＡ１３が実行する論理修正処理に関する動作の詳細は、後述するものとする。ステップＳ１０４において、回路変更ＥＤＡ１３は、修正後の回路の構成をＲＴＬ記述によって構成し、その修正後回路データ１７として回路データ記憶領域１０に格納する。
【００２９】
ステップＳ１０５において、論理合成ツール１４は、回路データ記憶領域１０から修正後回路データ１７を読み出し、論理合成を実行する。論理合成ツール１４は、ＦＰＧＡ論理素子データに基づいて、読み出した修正後回路データ１７に示される回路をＦＰＧＡプリミティブにマッピングしていく。ステップＳ１０６において、論理合成ツール１４は、マッピング完了に応答してＦＰＧＡ用ネットリストを生成し、そのＦＰＧＡ用ネットリストを大容量記憶装置６に格納する。
【００３０】
ステップＳ１０７において、修正後回路データ１７は、ＦＰＧＡ開発ツール（図示されず）に出力される。修正後回路データ１７が供給されたＦＰＧＡ開発ツールは、その修正後回路データ１７に基づいて実際のＦＰＧＡデバイスにプログラムを書き込み、実デバイスを製造する。
【００３１】
以上が、本実施の形態における全体的な構成・動作についての説明である。以下に、上述した論理修正処理に関する詳細な説明を行なう。
【００３２】
図４は、上述のフローチャートにおけるステップＳ１０２で生成される基本回路構成を例示する回路図である。図４に示されている基本回路図２１は、ＲＴＬ記述で構成される基本回路データ１６を、回路記号で表示したときの回路図である。基本回路図２１に示されるように、設計データに基づいて生成される半導体デバイスには、複数のレジスタ２２が備えられている。回路変更ＥＤＡ１３は、その複数のレジスタに対応して複数の基本回路２１を生成する。なお、以下の実施の形態において、同一の符号が付されているものは、その構成・動作が同様であるので重複する説明は省略する。
【００３３】
図４を参照すると、基本回路２１は、レジスタ２２と、そのレジスタ２２の前段に備えられたセレクタ２３とを含んで構成されている。図４に示されているように、セレクタ２３は、リセット値入力信号線２４と、入力側回路内部論理信号線２５と、リセット入力信号線２６とに接続されている。セレクタ２３から出力される値はレジスタ２２に供給され、レジスタ２２は、供給されるクロックに同期して、記憶している値をレジスタ出力信号線２７を介して出力している。
【００３４】
リセット値入力信号線２４には、リセット時にレジスタ２２に入力されるリセット値が供給されている。セレクタ２３は、リセット入力信号線２６から供給されるリセット信号に応答して、リセット値入力信号線２４から供給されるリセット値に基づいてレジスタ２２の値をリセットする。また、図４に示されているように、セレクタ２３は、入力側回路内部論理信号線２５を介して前段の論理回路（図示されず）に接続されている。セレクタ２３は、通常動作に、入力側回路内部論理信号線２５を介して供給される値をレジスタ２２に供給している。
【００３５】
図５は、図３のフローチャートにおけるステップＳ１０３で生成される修正後回路構成を例示するブロック図である。図５に示されている修正後回路２８は、ＲＴＬ記述で構成される修正後回路データ１７を、回路記号で表示している。図５に示されているように、修正後回路２８は、基本回路２１と、その基本回路２１に接続される書き換え回路３１とを含んで構成されている。修正後回路２８に示されるように、基本回路２１は基本回路入力端４１と基本回路出力端４２を備え、両端子を介して書き換え回路３１に接続されている。図５を参照すると、書き換え回路３１は、スイッチ３２を備えて構成されている。スイッチ３２は、基本回路出力端４２と書き換え値入力信号線３３とに接続されている。基本回路出力端４２は、帰還入力信号線３７を介してノード３６に接続され、レジスタ２２から出力される値をスイッチ３２に供給している。
【００３６】
図５に示されているように、論理修正によって生成される回路は、切り換え信号線３４から供給される切り換え信号に応答して、スイッチ３２の接続を切り替えている。修正後回路２８に示される回路構成を有するＦＰＧＡデバイスは、書き換え回路３１を介してレジスタ２２の書き換え値を供給することが可能である。また、特定のレジスタ２２に対して、書き換えを実行しない場合には、スイッチ３２に接続を切り替えることで、レジスタ２２の値を保持し続けることが可能である。また、修正後回路２８の構成において、書き換え値入力信号線３３を介してリセット値（ＶＤＤまたはＧＮＤ）を供給することで、リセット動作を実現することができる。
【００３７】
図６は、上述した論理修正の動作（修正後回路２８を生成する動作）の詳細を例示するフローチャートである。図６を参照すると、ステップＳ２０１において、回路変更ＥＤＡ１３は基本回路データ１６の読み出しを実行する。ステップＳ２０２において、回路変更ＥＤＡ１３はリセット端子情報の入力を要求する。設計者は、その要求に応答してリセット部に接続されるリセット端子の名前をリセット端子情報として入力装置２から入力する。回路変更ＥＤＡ１３は、入力されたリセット端子情報に基づいてリセット端子を特定する。回路変更ＥＤＡ１３は、そのリセット端子に接続されるセレクタ２３およびその後段のレジスタ２２を認識することで基本回路２１を特定する。
【００３８】
ステップＳ２０３において、回路変更ＥＤＡ１３は、特定した基本回路２１の構成と基本回路データ１６に基づいて、基本回路２１に含まれるレジスタ２２の出力端を特定する。ステップＳ２０４において、回路変更ＥＤＡ１３は、レジスタ２２の出力端の特定に応答して基本回路出力端４２を特定しノード３６から帰還入力信号線３７を介して基本回路出力端４２に接続する経路を生成する。また、回路変更ＥＤＡ１３は、特定した基本回路２１の構成と基本回路データ１６に基づいて、基本回路２１に含まれるリセット値入力信号線２６を特定する。回路変更ＥＤＡは、そのリセット値入力信号線２６に対応する基本回路入力端４１を生成し、基本回路入力端４１に接続されるリセット値入力信号線２６を書き換え値供給線３５として特定する。
【００３９】
ステップＳ２０５において、回路変更ＥＤＡ１３は、基本回路入力端４１および基本回路出力端４２の特定に応答して、回路設計コンピュータ１に備えられたデータ格納領域から書き換え回路３１に対応するデータを抽出する。回路変更ＥＤＡ１３は、そのデータに基づいて基本回路データ１６に書き換え回路３１に対応するＲＴＬ記述を追加して修正後回路２８を構成する。また、回路変更ＥＤＡ１３は、デバイス製造時に書き換え値が供給される入力ピン（図示されず）に接続される書き換え値入力信号線３３を特定する。そして、回路変更ＥＤＡ１３は、そのスイッチ３２の第１の入力端と書き換え値入力信号線３３とを接続し、第２の入力端と基本回路出力端４２とを接続し、さらに、スイッチ３２の出力端と基本回路入力端４１とを接続した修正後回路２８を構成する。回路変更ＥＤＡ１３は、この修正後回路２８に対応するＲＴＬ記述を修正後回路データ１７として出力する。
【００４０】
上述したように、本実施の形態のＦＰＧＡデバイスは、ＬＳＩのリセット動作を実行するためのリセット部（２３、２６とで構成される回路）を備えて基本回路２１を構成している。書き換え回路３１は、そのリセット部を利用してレジスタ２２の書き換えを実行している。書き換え回路３１の回路面積は、従来使用されていたレジスタ値書き換え用の専用回路の回路面積よりも小さい面積である。したがって、本願発明の回路を搭載するＦＰＧＡデバイスは、従来のＦＰＧＡデバイスに比較して、回路面積の増加を抑制することが可能になる。また、ＦＰＧＡで構成された回路を、セルベースＩＣなどのセミカスタムＬＳＩで構成するときに、そのセミカスタムＬＳＩと回路の等価性を保つことができるＦＰＧＡデバイスを構成することが可能になる。
【００４１】
以下に、本発明の他の実施の形態について説明を行なう。図７は、他の実施の形態の修正後回路２８の構成を例示する回路図である。図７を参照すると、他の実施の形態の修正後回路２８は、基本回路入力端４１とセレクタ２３との間に接続される入力バッファ４３と、基本回路出力端４２とノード３６との間に接続される出力バッファ４４とを備えている。図７に示されているように、他の実施の形態の修正後回路２８は、基本回路入力端４１と基本回路出力端４２を介して、ＬＳＩ外部のコンピュータ（例えば回路設計コンピュータ１）に接続可能である。修正後回路２８は、基本回路入力端４１と基本回路出力端４２とを介して回路設計コンピュータ１に接続されることで、論理を追加した専用ＦＦなどを構成することなく、レジスタの書き換えを行なうことが可能になる。
【図面の簡単な説明】
【００４２】
【図１】図１は、本発明の概要を示すブロック図である。
【図２】図２は、本実施の形態の半導体設計装置の構成を例示するブロック図である。
【図３】図３は、本実施の形態の動作を例示するフローチャートである。
【図４】図４は、基本回路の構成を例示する回路図である。
【図５】図５は、修正後回路の構成を例示する回路図である。
【図６】図６は、論理修正動作の詳細を例示するフローチャートである。
【図７】図７は、他の実施の形態の構成を例示する回路図である。
【符号の説明】
【００４３】
１…回路設計コンピュータ
２…入力装置
３…出力装置
４…ＣＰＵ
５…メモリ
６…大容量記憶装置
７…バス
８…ＥＤＡツール群
９…設計データ
１０…回路データ記憶領域
１１…ＦＰＧＡプリミティブ
１２…デバッガプログラム
１３…回路変更ＥＤＡ
１４…論理合成ツール
１５…エディタ
１６…基本回路データ
１７…修正後回路データ
１８…回路設計ＥＤＡ
２１…基本回路
２２…レジスタ
２３…セレクタ
２４…リセット値入力信号線
２５…入力側回路内部論理信号線
２６…リセット入力信号線
２７…レジスタ出力信号線
２８…修正後回路
３１…書き換え回路
３２…スイッチ
３３…書き換え値入力信号線
３４…切り換え信号線
３５…書き換え値供給線
３６…ノード
３７…帰還入力信号線
４１…基本回路入力端
４２…基本回路出力端
４３…入力バッファ
４４…出力バッファ
【図１】
2006318266.tif 000003
【図２】
2006318266.tif 000004
【図３】
2006318266.tif 000005
【図４】
2006318266.tif 000006
【図５】
2006318266.tif 000007
【図６】
2006318266.tif 000008
【図７】
2006318266.tif 000009