(57)【要約】【課題】従来の半導体装置では、回路形式及び回路構成等を変更する際に設計上意図していない電流パスが形成されることに起因して生じる半導体装置の不具合を回避することが困難である問題があった。【解決手段】一実施の形態によれば、半導体装置は、ユーザーが指定したコマンドの実行順序に関わらず、予め設定したコマンド実行順序に従ってコマンドの実行順序を並べ替えてコマンドを実行することで複数のアナログ機能回路の回路形式及び回路構成を切り替える。【選択図】図５
2015095810.tif 000002
【特許請求の範囲】
【請求項１】
複数のアナログ機能回路と、前記複数のアナログ機能回路の回路形式及び回路構成を切り替えるスイッチ回路群と、を含むアナログフロントエンド部と、
前記回路形式及び前記回路構成を指定する複数のコマンドを受信して、前記複数のコマンドに基づき前記スイッチ回路群を制御する制御回路と、を有し、
前記制御回路は、
前記複数のコマンドの１つとして規定されるコマンド実行命令を受信したことに応じて、受信した前記コマンドの順序とは異なる順序で前記スイッチ回路群を制御する半導体装置。
【請求項２】
前記制御回路は、受信した前記コマンドの順序に関わらず、前記回路形式を指定する回路形式設定コマンド、前記回路構成を指定する回路構成設定コマンド、前記複数のアナログ機能回路の電源を制御する電源制御コマンドの順でコマンドを実行する請求項１に記載の半導体装置。
【請求項３】
前記制御回路は、前記コマンドの実行順序に従ってアドレスが定義される複数のレジスタを有し、
前記複数のコマンドは、それぞれ、前記スイッチ回路群の状態を指定するデータと、前記データが格納される前記レジスタを指定するアドレス値と、を含み、
前記制御回路は、受信した順に前記コマンドを一時的に記憶し、前記コマンド実行命令を受信したことに応じて前記コマンドに含まれる前記アドレス値の順序で前記コマンドのデータを前記レジスタに格納する請求項１に記載の半導体装置。
【請求項４】
前記制御回路は、
前記複数のコマンドのアドレス値に対応付けられ、対応した前記コマンドが入力されたことに応じて有効状態となる書込フラグを含み、前記有効状態となった書込フラグに対応するアドレス値が昇順又は降順となるように、一時的に記憶された前記コマンドを前記複数のレジスタに格納する請求項３に記載の半導体装置。
【請求項５】
前記制御回路は、前記回路構成を指定する回路構成設定コマンドのアドレス値を予め記憶し、入力されたコマンドのアドレス値に基づき前記コマンドが前記回路構成設定コマンドと判断された場合、受信したコマンドを実行する請求項１に記載の半導体装置。
【請求項６】
前記制御回路は、予め規定された即時実行モードを指定するコマンドが入力された場合において、前記回路構成を指定する回路構成設定コマンドが入力された場合、入力されたコマンドを即時に実行する請求項５に記載の半導体装置。
【請求項７】
複数のアナログ機能回路と、前記複数のアナログ機能回路の回路形式及び回路構成を切り替えるスイッチ回路群と、を含むアナログフロントエンド部と、
前記回路形式及び前記回路構成を指定する複数のコマンドを受信して、前記複数のコマンドに基づき前記スイッチ回路群を制御する制御回路と、を有する半導体装置を制御するコードファイルを出力する設計支援装置であって、
前記複数のアナログ機能回路において変更可能な回路パラメータを表示するＧＵＩを表示し、
変更された前記回路パラメータに対応する前記コマンドを修正対象コマンドコードとして予約し、
前記コードファイルの生成指示に応じて、前記修正対象コマンドコードが予約された順序に関わらず、一定の順序で前記修正対象コマンドコードを含むコマンドコードが記述される前記コードファイルを生成する設計支援装置。
【請求項８】
前記設計支援装置は、前記回路形式を指定する回路形式設定コマンド、前記回路構成を指定する回路構成設定コマンド、前記複数のアナログ機能回路の電源を制御する電源制御コマンドの順で前記修正対象コマンドコードを記述する請求項７に記載の設計支援装置。
【請求項９】
前記設計支援装置は、前記コードファイルに記述された前記回路パラメータに対応するコマンドコードの前後に前記アナログ機能回路の電源を制御する電源制御コマンドのコマンドコードを挿入する請求項７に記載の設計支援装置。
【請求項１０】
前記設計支援装置は、前記ＧＵＩ上に表示された即時変更ボタンが押されたことに応じて、変更可能な回路パラメータを、前記回路構成を指定する回路構成設定コマンドに対応するパラメータに制限し、変更された前記回路パラメータに対応するコマンドコードを前記半導体装置に与える請求項７に記載の設計支援装置。
【請求項１１】
複数のアナログ機能回路と、前記複数のアナログ機能回路の回路形式及び回路構成を切り替えるスイッチ回路群と、を含むアナログフロントエンド部と、
前記回路形式及び前記回路構成を指定する複数のコマンドを受信して、前記複数のコマンドに基づき前記スイッチ回路群を制御する制御回路と、
前記複数のコマンドを含むオブジェクトファイルを実行し、前記複数のコマンドを前記制御回路に出力する演算回路と、を有する半導体装置に書き込む前記オブジェクトファイルを出力するコンパイルプログラムであって、
プログラムが記述されたコードファイルを読み出し、
前記コードファイルに含まれる前記複数のコマンドに対応する複数のコマンドコードを検出し、
検出した前記複数のコマンドコードを予め決められた順序に並べ替え、
順序が並べ替えられた前記複数のコマンドコードを含む前記コードファイルに対してコンパイル処理を行って前記オブジェクトファイルを生成するコンパイルプログラム。
【請求項１２】
前記コンパイルプログラムは、前記回路形式を指定する回路形式設定コマンド、前記回路構成を指定する回路構成設定コマンド、前記複数のアナログ機能回路の電源を制御する電源制御コマンドの順で前記コマンドコードを並べ替える請求項１１に記載のコンパイルプログラム。
【請求項１３】
前記コンパイルプログラムは、前記コードファイル中で検出した前記複数のコマンドコードの前後に前記アナログ機能回路の電源を制御する電源制御コマンドのコマンドコードを挿入し、前記電源制御コマンドのコマンドコードを含むコードファイルに対して前記コンパイル処理を実行する請求項１１に記載のコンパイルプログラム。
【請求項１４】
前記コンパイルプログラムは、前記コードファイル中で検出した前記複数のコマンドコードが予め規定された即時変更グループに属するコマンドコードのみであった場合、前記複数のコマンドコードの並べ替え処理を実施することなく前記コンパイル処理を実行する請求項１１に記載のコンパイルプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は設計支援装置、半導体装置及びコンパイルプログラムに関し、例えば回路構成を動的に変更可能な半導体装置及び当該半導体装置を用いたシステムの設計を支援する設計支援装置及びコンパイルプログラムに関する。
【背景技術】
【０００２】
近年、回路の動作範囲、或いは、回路の構成をプログラマブルに切り替えるプログラマブル半導体装置が提案されている。そこで、このプログラマブル半導体装置の一例が特許文献１、２に開示されている。
【０００３】
特許文献１には、入力電圧レンジがプログラマブルに切り替え可能なアナログデジタル変換回路が開示されている。このアナログデジタル変換回路は、シリアルポートから入力されるデータ入力に基づきアナログ入力信号をサンプリングするＣａｐＤＡＣ配列のいずれのビットにサンプリングするかを設定する。
【０００４】
特許文献２では、アンプ等のアナログ機能回路を複数有する半導体装置であって、回路構成コマンドを利用して回路形式（例えば、反転回路、非反転回路等）及び回路構成（例えば、ゲイン等）を切り替える。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２００７−５３１４０８号公報
【特許文献２】特開２０１３−１０４８２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記したプログラマブル半導体装置においては、回路形式を固定して回路構成を変更する場合には、電流経路上の抵抗値等が切り替わるのみであるため問題ないが、回路形式を変更した場合、それまで存在しない直流パス等が形成されることがある。このような意図しない直流パスが形成された場合、意図しない電流が流れ、半導体装置の信頼性に問題が生じるおそれがある。
【０００７】
その他の課題と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】
一実施の形態によれば、半導体装置は、ユーザーが指定したコマンドの実行順序に関わらず、予め設定したコマンド実行順序に従ってコマンドの実行順序を並べ替えてコマンドを実行することで複数のアナログ機能回路の回路形式及び回路構成を切り替える。
【０００９】
なお、上記実施の形態の装置を方法やシステムに置き換えて表現したもの、該装置内の処理又は該装置の一部の処理をコンピュータに実行せしめるプログラムなども、本発明の態様としては有効である。
【発明の効果】
【００１０】
前記一実施の形態によれば、ユーザーが回路形式及び回路構成を切り替える際に生じる不具合を考慮することなく回路形式及び回路構成の切り替えを行うことができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１にかかるセンサシステムの構成図である。
【図２】実施の形態１にかかる半導体装置のブロック図である。
【図３】実施の形態１にかかる半導体装置の回路の接続関係を示す図である。
【図４】実施の形態１にかかる半導体装置の複数のアナログ機能回路の１つを示す回路図である。
【図５】実施の形態１にかかるＳＰＩインタフェースのブロック図である。
【図６】実施の形態１にかかるＳＰＩ制御レジスタマップを説明する図である。
【図７】実施の形態１にかかる半導体装置で用いられる回路変更コマンドを送信する場合のタイミングチャートである。
【図８】実施の形態１にかかる半導体装置で用いられるコマンド実行命令を送信する場合のタイミングチャートである。
【図９】実施の形態１にかかる実行順序演算回路における処理を説明する図である。
【図１０】実施の形態１にかかる半導体装置における回路変更処理のフローチャートである。
【図１１】実施の形態１にかかる半導体装置を制御するオブジェクトファイルの生成手順を示すフローチャートである。
【図１２】実施の形態２にかかるコンパイル装置のブロック図である。
【図１３】実施の形態２にかかるコンパイル処理を示すフローチャートである。
【図１４】図１３に示したステップＳ２２における最適化処理を説明する図である。
【図１５】実施の形態３にかかる設計支援装置で用いられる回路カスタムウィンドウを説明する図である。
【図１６】実施の形態３にかかる設計支援装置で用いられる回路パラメータの設定状況を確認するレジスタ設定値確認画面を説明する図である。
【図１７】実施の形態３にかかる設計支援装置におけるコードファイル生成処理のフローチャートである。
【図１８】実施の形態３にかかる設計支援装置から半導体装置に送信されるコマンドの送信タイミングの第１の例を説明するタイミングチャートである。
【図１９】実施の形態３にかかる設計支援装置から半導体装置に送信されるコマンドの送信タイミングの第２の例を説明するタイミングチャートである。
【図２０】実施の形態４にかかる設計支援装置のブロック図である。
【図２１】実施の形態５にかかるＳＰＩインタフェースのブロック図である。
【図２２】実施の形態５にかかる即時変更グループを説明するためのＳＰＩ制御レジスタマップの図である。
【図２３】実施の形態５にかかる半導体装置と実施の形態１にかかる半導体装置との動作の違いを説明する図である。
【図２４】実施の形態６にかかる即時実行モードを指定するコマンドを説明するためのタイミングチャートである。
【図２５】実施の形態７にかかるコンパイル処理を示すフローチャートである。
【図２６】実施の形態７にかかるコンパイル装置と実施の形態２にかかるコンパイル装置との動作の違いを説明する図である。
【図２７】実施の形態８にかかる設計支援装置で用いられる回路パラメータの設定状況を確認するレジスタ設定値確認画面を説明する図である。
【図２８】実施の形態８にかかる設計支援装置におけるコードファイル生成処理のフローチャートである。
【発明を実施するための形態】
【００１２】
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、ＣＰＵ、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。従、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組み合わせによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００１３】
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００１４】
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、ＣＰＵ、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。従、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組み合わせによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００１５】
以下、図面を参照して実施の形態について説明する。本実施の形態では、回路形式及び回路構成を変更可能な半導体装置において回路形式及び回路構成を変更する構成及び方法について説明する。なお、以下の説明では、アナログフロントエンド部では、回路形式を変更することでアナログ機能回路により別の機能を実現させる又は入出力信号の切り替えを実施し、回路構成を変更することでアナログ機能回路の回路特性を切り替える。
【００１６】
そこで、本実施の形態にかかる半導体装置の理解を助けるため、まず、実施の形態にかかる半導体装置について説明する。図１は、本実施形態にかかる半導体装置を含むセンサシステムの構成を示している。
【００１７】
図１に示すように、このセンサシステムは、センサ２と、センサに接続された半導体装置１とを備えている。
【００１８】
センサ２には、検出結果に応じた電流を出力する電流出力型センサや、検出結果に応じた電圧を出力する電圧出力型センサ、検出結果に応じて微弱な差動信号出力するセンサなど様々なセンサを利用することが可能である。
【００１９】
半導体装置１は、処理部（例えば、ＭＣＵ部２００）とアナログフロントエンド部（例えば、ＡＦＥ部１００）とを有している。例えば、半導体装置１は、ＭＣＵ部２００の半導体チップと、ＡＦＥ部１００の半導体チップとを１つの半導体装置に搭載したＳｏＣ（System-on-a-chip）である。なお、ＭＣＵ部２００とＡＦＥ部１００とを含む１チップの半導体装置としてもよい。また、ＭＣＵ部２００のみを含む半導体装置と、ＡＦＥ部１００のみを含む半導体装置としてもよい。以下、ＡＦＥ部１００及びＭＣＵ部２００を含む装置を半導体装置１と称する場合もあり、ＡＦＥ部１００のみ含む装置を半導体装置１と称する場合もある。
【００２０】
ＭＣＵ部（処理部）２００は、ＡＦＥ部１００を介して入力されるセンサ２の測定信号（検出信号）をＡ／Ｄ変換し、検出結果に応じた制御処理を行うマイクロコントローラである。また、ＭＣＵ部２００は、ＡＦＥ部１００の回路形式及び回路構成の変更する回路変更コマンドをＡＦＥ部１００へ出力する。
【００２１】
ＡＦＥ部（アナログ入力部）１００は、センサ２が出力する測定信号に対し、増幅やフィルタリング等のアナログフロントエンド処理を行い、ＭＣＵ部２００で処理可能な信号とするアナログ回路である。また、ＡＦＥ部１００は、図１に示すように、トポロジ（回路形式及び回路構成）が変更可能であり、さらに、パラメータ（回路特性）も変更可能である。
【００２２】
図１の例のように、オペアンプ回路の構成から、Ｉ／Ｖアンプ、減算（差動）アンプ、加算アンプ、反転アンプ、非反転アンプ、計装アンプの構成に変更できる。また、非反転アンプのパラメータ例のように、動作点の変更、利得（ゲイン）の変更、オフセット調整を行うことができる。
【００２３】
図２は、半導体装置１の回路ブロックを示している。図２に示すように、ＭＣＵ部２００は、ＣＰＵコア２１０、メモリ２２０、オシレータ２３０、タイマ２４０、入出力ポート２５０、Ａ／Ｄコンバータ２６０、通信インタフェース（例えば、ＳＰＩ（Serial Peripheral Interface）インタフェース２７０）を備えている。なお、ＭＣＵ部２００は、マイクロコントローラの機能を実現するためのその他の回路、例えば、ＤＭＡや各種演算回路等を備えている。
【００２４】
ＣＰＵコア２１０は、メモリ２２０に格納されたプログラムを実行しプログラムに従った制御処理を行う。メモリ２２０は、ＣＰＵコア２１０で実行するプログラムや各種データを格納する。メモリ２２０は、各種データの１つとしてＡＦＥ部１００に含まれる複数のアナログ機能回路により構成される回路の回路形式及び回路構成を指定する複数のコマンドを格納する。オシレータ２３０は、ＭＣＵ部２００の動作クロックを生成し、また、必要に応じてＡＦＥ部１００へクロックを供給する。タイマ２４０は、ＭＣＵ部２００の制御動作に利用される。
【００２５】
入出力ポート２５０は、半導体装置１の外部の装置とデータ等の入出力を行うためのインタフェースであり、例えば、後述のように外部のコンピュータ装置等と接続可能である。
【００２６】
Ａ／Ｄコンバータ２６０は、ＡＦＥ部１００を介して入力されるセンサ２の測定信号をＡ／Ｄ変換する。また、Ａ／Ｄコンバータ２６０の電源は、ＡＦＥ部１００から供給されている。
【００２７】
ＳＰＩ（Serial Peripheral Interface）インタフェース２７０は、ＡＦＥ部１００とデータ等の入出力を行うためのインタフェースである。なお、ＳＰＩインタフェース２７０は、汎用的なシリアルインタフェースであり、ＳＰＩに対応していれば、他のマイクロコントローラ／マイクロコンピュータであっても、ＡＦＥ部１００と接続することができる。
【００２８】
図２の半導体装置１は、汎用的な用途に対応可能な構成となっている。具体的には、様々な種類や特性のセンサを接続できるように、センサ用ＡＦＥ回路一式を搭載している。すなわち、ＡＦＥ部１００は、コンフィギュラブル・アンプ１１０、同期検波対応増幅アンプ（増幅アンプともいう）１２０、ＳＣ型ローパス・フィルタ（ローパス・フィルタともいう）１３０、ＳＣ型ハイパス・フィルタ（ハイパス・フィルタともいう）１４０、可変レギュレータ１５０、温度センサ１６０、汎用アンプ１７０、ＳＰＩインタフェース１８０、を備えている。
【００２９】
コンフィギュラブル・アンプ１１０は、センサ２等の外部から入力される信号を増幅する増幅回路であり、ＭＣＵ部２００からの制御（例えば、ＭＣＵ部２００から送信されるコマンド）にしたがって回路形式及び特性、動作が設定可能である。コンフィギュラブル・アンプ１１０は、３ｃｈのアンプ、すなわち、３つのアンプを有している。この３つのアンプにより多くの回路構成を実現することができる。
【００３０】
増幅アンプ１２０は、コンフィギュラブル・アンプ１１０の出力や、センサ２等の外部から入力される信号を増幅する同期検波対応の増幅回路であり、ＭＣＵ部２００からの制御に従って特性、動作が設定可能である。
【００３１】
ローパス・フィルタ１３０は、コンフィギュラブル・アンプ１１０や増幅アンプ１２０の出力、センサ２等の外部から入力される信号に対し、高周波成分を除去し低周波成分を通過させるＳＣ型のフィルタであり、ＭＣＵ部２００からの制御に従って特性、動作が設定可能である。ハイパス・フィルタ１４０は、コンフィギュラブル・アンプ１１０や増幅アンプ１２０の出力、センサ２等の外部から入力される信号に対し、低周波成分を除去し高周波成分を通過させるＳＣ型のフィルタであり、ＭＣＵ部２００からの制御に従って特性、動作が設定可能である。
【００３２】
可変レギュレータ１５０は、ＭＣＵ部２００のＡ／Ｄコンバータ２６０へ電圧を供給する可変電圧源であり、ＭＣＵ部２００からの制御に従って特性、動作が設定可能である。温度センサ１６０は、半導体装置１の温度を測定するセンサであり、ＭＣＵ部２００からの制御に従って動作が設定可能である。
【００３３】
汎用アンプ１７０は、センサ２等の外部から入力される信号を増幅するアンプであり、ＭＣＵ部２００からの制御に従って動作が設定可能である。ＳＰＩインタフェース１８０は、ＭＣＵ部２００とデータ等の入出力を行うためのインタフェースであり、ＭＣＵ部２００のＳＰＩインタフェース２７０とＳＰＩバスを介して接続されている。なお、半導体装置１がＭＣＵ部２００を有さない場合、ＳＰＩインタフェース１８０を半導体装置１の外部端子に接続し、外部端子経由で外部のマイクロコントローラやエミュレータ等とＡＦＥ部１００とを接続する。
【００３４】
次に、半導体装置１におけるＡＦＥ部１００の構成について詳細に説明する。図３は、ＡＦＥ部１００の各回路の接続関係を示している。ＡＦＥ部１００は、複数のアナログ回路要素（例えば、アンプ、抵抗、コンデンサ等）と、複数のアナログ回路要素間の接続状態を切り替えるスイッチ回路群（例えば、スイッチ、マルチプレクサを含むスイッチ回路）と、を含む。
【００３５】
ＳＰＩインタフェース１８０は、ＳＰＩバスに接続された外部端子（ＣＳ、ＳＣＬＫ、ＳＤＯ、ＳＤＩ）に接続されて、レジスタ（ＳＰＩ制御レジスタ）１８１を有している。ＭＣＵ部２００から、ＳＰＩインタフェースを介して、回路の構成・特性を変更するための構成情報（コマンド）が入力され、ＳＰＩ制御レジスタ１８１に格納される。レジスタ１８１は、ＡＦＥ部１００内の各回路に接続されており、ＳＰＩ制御レジスタ１８１の構成情報に応じてＡＦＥ部１００内の各回路の構成・特性が設定される。
【００３６】
コンフィギュラブル・アンプ１１０は、個別アンプＡＭＰ１、ＡＭＰ２、ＡＭＰ３を有しており、アンプの入出力を切り替えるスイッチＳＷ１０〜ＳＷ１５が接続されている。
【００３７】
個別アンプＡＭＰ１は、一方の入力端子がスイッチＳＷ１０を介してＭＰＸＩＮ１０またはＭＰＸＩＮ１１に接続され、他方の入力端子がスイッチＳＷ１１を介してＭＰＸＩＮ２０またはＭＰＸＩＮ２１に接続され、出力端子がＡＭＰ１＿ＯＵＴに接続されている。同様に、個別アンプＡＭＰ２は、一方の入力端子がスイッチＳＷ１２を介してＭＰＸＩＮ３０またはＭＰＸＩＮ３１に接続され、他方の入力端子がスイッチＳＷ１３を介してＭＰＸＩＮ４０またはＭＰＸＩＮ４１に接続され、出力端子がＡＭＰ２＿ＯＵＴに接続されている。
【００３８】
また、個別アンプＡＭＰ３は、一方の入力端子がスイッチＳＷ１４を介してＭＰＸＩＮ５０、ＭＰＸＩＮ５１またはＡＭＰ１の出力端子に接続され、他方の入力端子がスイッチＳＷ１５を介してＭＰＸＩＮ６０、ＭＰＸＩＮ６１またはＡＭＰ２の出力端子に接続され、出力端子がＡＭＰ３＿ＯＵＴに接続されている。ＡＭＰ１〜ＡＭＰ３の出力端子は、増幅アンプ１２０、ローパス・フィルタ１３０、ハイパス・フィルタ１４０にも接続されている。
【００３９】
コンフィギュラブル・アンプ１１０は、ＳＰＩ制御レジスタ１８１の設定値に応じて、スイッチＳＷ１０〜ＳＷ１５が切り替えられて、ＡＭＰ１〜ＡＭＰ３の接続構成が変更され、内部の回路形式・特性も後述のように変更される。
【００４０】
また、図３に示すように、増幅アンプ１２０には、入力を切り替えるスイッチＳＷ１６、ＳＷ１７が接続されている。増幅アンプ１２０は、入力端子がスイッチＳＷ１６、ＳＷ１７を介してＡＭＰ１〜ＡＭＰ３の出力端子、または、スイッチＳＷ１７を介してＧＡＩＮＡＭＰ＿ＩＮに接続され、出力端子がＧＡＩＮＡＭＰ＿ＯＵＴに接続されている。増幅アンプ１２０の出力端子は、ローパス・フィルタ１３０、ハイパス・フィルタ１４０にも接続されている。なお、ＳＷ１６により、ＡＭＰ１〜ＡＭＰ３の出力端子と、外部端子及び増幅アンプとの接続を切り替えてもよい。
【００４１】
ローパス・フィルタ１３０には、入力を切り替えるスイッチＳＷ１８、ＳＷ１９が接続され、ハイパス・フィルタ１４０にも、入力を切り替えるスイッチＳＷ１８、ＳＷ２０が接続されている。ローパス・フィルタ１３０は、入力端子がスイッチＳＷ１６、ＳＷ１７、ＳＷ１８，ＳＷ１９を介してＡＭＰ１〜ＡＭＰ３の出力端子、増幅アンプ１２０の出力端子、ＳＣ＿ＩＮ、またはスイッチＳＷ１９を介してハイパス・フィルタ１４０の出力端子に接続され、出力端子がＬＰＦ＿ＯＵＴに接続されている。ハイパス・フィルタ１４０は、入力端子がスイッチＳＷ１６、ＳＷ１７、ＳＷ１８，ＳＷ２０を介してＡＭＰ１〜ＡＭＰ３の出力端子、増幅アンプ１２０の出力端子、ＳＣ＿ＩＮ、またはスイッチＳＷ１９を介してローパス・フィルタ１３０の出力端子に接続され、出力端子がＨＰＦ＿ＯＵＴに接続されている。なお、ローパス・フィルタ１３０、ハイパス・フィルタ１４０の出力端子と外部端子との間にスイッチを設けて、ローパス・フィルタ１３０、ハイパス・フィルタ１４０の出力端子と、外部端子及びＳＷ１９、ＳＷ２０との接続を切り替えてもよい。
【００４２】
増幅アンプ１２０、ローパス・フィルタ１３０、ハイパス・フィルタ１４０は、ＳＰＩ制御レジスタ１８１の設定値に応じて、スイッチＳＷ１６〜ＳＷ２０が切り替えられて、増幅アンプ１２０、ローパス・フィルタ１３０、ハイパス・フィルタ１４０の接続構成が変更され、内部の特性も後述のように変更される。
【００４３】
また、図３に示すように、可変レギュレータ１５０は、出力端子がＢＧＲ＿ＯＵＴとＬＤＯ＿ＯＵＴに接続されている。可変レギュレータは、ＳＰＩ制御レジスタ１８１の設定値に応じて後述のように特性が変更される。
【００４４】
温度センサ１６０は、出力端子がＴＥＭＰ＿ＯＵＴに接続されている。温度センサ１６０は、ＳＰＩ制御レジスタ１８１の設定値に応じて後述のように特性が変更される。
【００４５】
汎用アンプ１７０は、一方の入力端子がＡＭＰ４＿ＩＮ＿ＮＥに接続され、他方の入力端子がＡＭＰ４＿ＩＮ＿ＰＯに接続され、出力端子がＡＭＰ４＿ＯＵＴに接続されている。汎用アンプは、１つのオペアンプにより構成されており、ＳＰＩ制御レジスタ１８１の設定値に応じて、電源ＯＮ／ＯＦＦが設定される。
【００４６】
ここで、コンフィギュラブル・アンプ１１０の個別アンプＡＭＰ１を例に、回路形式及び回路構成の変更について説明する。図４は、コンフィギュラブル・アンプ１１０の個別アンプＡＭＰ１の回路構成を示している。なお、ＡＭＰ２、ＡＭＰ３も同様の構成である。
【００４７】
図４に示すように、個別アンプＡＭＰ１は、オペアンプ１１１を有し、オペアンプ１１１の各端子に接続される可変抵抗１１２ａ〜１１２ｄ、回路形式制御スイッチ（例えば、スイッチ１１３ａ〜１１３ｃ）、ＤＡＣ１１４を有しており、図３のようにマルチプレクサ（スイッチ）ＳＷ１０、ＳＷ１１が接続されている。
【００４８】
ＳＰＩ制御レジスタ１８１の設定値に応じて、マルチプレクサＳＷ１０、ＳＷ１１によりオペアンプ１１１の入力を切り替え、スイッチ１１３ａ、１１３ｂにより可変抵抗（入力抵抗）１１２ａ、１１２ｂの有無を切り替え、スイッチ１１３ｃによりＤＡＣ１１４の接続を切り替えることができる。なお、オペアンプ１１１の出力は、図３のようにＳＷ１６、ＳＷ１７、ＳＷ１８により、増幅アンプ１２０、ローパス・フィルタ１３０、ハイパス・フィルタ１４０との接続が切り替えられる。また、ＳＰＩ制御レジスタ１８１の設定値に応じて、可変抵抗１１２ａ、１１２ｂ、１１２ｃ、１１２ｄの抵抗値、ＤＡＣ１１４の設定を変えることで、ＡＭＰ１のゲイン、動作点、オフセット等を変更することができる。さらに、ＳＰＩ制御レジスタ１８１の設定値に応じて、電源オン／オフを制御できる。また、ＳＰＩ制御レジスタ１８１の設定値に応じて、オペアンプの動作モードを高速モード、中速モード、低速モードに変更することで、スルーレートを制御することができる。
【００４９】
そして、個別アンプＡＭＰ１は、各スイッチ、マルチプレクサの切り替えにより、Ｉ／Ｖアンプ、反転アンプ、減算（差動）アンプ、非反転アンプ、加算アンプを構成することができる。
【００５０】
続いて、ＡＦＥ部１００において制御回路として機能するＳＰＩインタフェース１８０について詳細に説明する。実施の形態１にかかる制御回路（例えば、ＳＰＩインタフェース１８０）は、アナログ機能回路の回路形式及び回路構成を指定する複数のコマンドを受信して、複数のコマンドに基づきスイッチ回路群を制御する。また、ＳＰＩインタフェース１８０は、複数のコマンドの１つとして規定されるコマンド実行命令を受信したことに応じて、受信したコマンドの順序とは異なる順序でスイッチ回路群を制御する。より具体的には、ＳＰＩインタフェース１８０は、受信した回路変更コマンドを受信した順に実行せずに、予め設定された順序に沿った順番で実行する。ＳＰＩインタフェース１８０がコマンドを実行する順序は、例えば、ＳＰＩ制御レジスタ１８１のメモリマップにより指定することができる。
【００５１】
そこで、ＳＰＩインタフェース１８０の詳細なブロック図を図５に示す。図５に示すように、ＳＰＩインタフェース１８０は、ＳＰＩ制御レジスタ１８１、シリアルパラレル変換回路１８２、データスタック１８３、実行順序演算回路１８４、順序制御カウンタ１８５変更対象分析回路１８６、電源制御回路１８７を有する。
【００５２】
ＳＰＩ制御レジスタ１８１は、アドレス値が予め決められた複数のレジスタを有する。このレジスタは、データ領域ＤＡＴを有しており、回路変更コマンドのデータ部分の値が格納される。ＳＰＩ制御レジスタ１８１のレジスタは、それぞれ予めいずれのスイッチを制御する値が格納するかが決められている。そこで、ＳＰＩ制御レジスタ１８１のレジスタマップを説明する図を図６に示す。
【００５３】
図６に示すように、ＳＰＩ制御レジスタ１８１は、アドレス毎に８ビットのデータが格納される。そして、各レジスタは、それぞれ、データによってどのような機能を変更するかが規定されている。各レジスタにより制御されるレジスタの一例は、例えば、以下のようになる。
【００５４】
アドレス００ｈのレジスタは、回路形式変更レジスタ１として規定される。そして、回路形式変更レジスタ１は、図４で示したスイッチ１１３ａ〜１１３ｃと、図３のオペアンプＡＭＰ２に設けられるスイッチであってスイッチ１１３ａ〜１１３ｃに対応する３つのスイッチと、の開閉状態を指定する値が格納される。また、アドレス０３ｈのレジスタは入出力設定レジスタ１として規定される。入出力設定レジスタ１は、図４で示したセレクタＳＷ１０、ＳＷ１１等が選択する入力信号を指定する値が格納される。また、アドレス０８ｈのレジスタは、ＤＡＣ設定レジスタ１として規定される。ＤＡＣ設定レジスタ１は、ＤＡＣ１１４の出力値を指定する値が格納される。また、アドレス０Ｃｈのレジスタは、アンプゲイン設定レジスタ１として規定される。アンプゲイン設定レジスタ１は、オペアンプＡＭＰ１のゲインを設定する値が格納される。
【００５５】
また、図４に示すシリアルパラレル変換回路１８２は、ＳＰＩ入力信号（ＣＳ、ＳＣＬＫ、ＳＤＩを含む信号）を受信し、シリアルデータである入力データＳＤＩをパラレルデータに変換して、データスタック１８３に与える。この入力データＳＤＩは、モード指定値と、ＳＰＩ制御レジスタ１８１のレジスタを指定するアドレスデータＡＤＤと、データＤＡＴとが直列に配列された信号である。モード指定値は、例えば、リードモード、ライトモード、実行モードの別を示す値である。
【００５６】
ここで、実施の形態１にかかる半導体装置１において用いられる回路変更コマンドのデータフォーマットについて説明する。そこで、図７及び図８にＭＣＵ部２００からＡＦＥ部１００にコマンドを送信する場合のタイミングチャートを示す。図７に示す例は、回路変更コマンドの基本的なデータフォーマットを示すものであり、図８に示す例は、回路変更コマンドの１つとして定義されるコマンド実行命令のデータフォーマットを示すものである。
【００５７】
図７に示すように、回路変更コマンドは、モード指定フィールドに続いて、アドレスフィールドと、データフィールドが定義されている。モード指定フィールドは２ビットの値を有し、アドレスフィールドと、データフィールドは８ビットの値を有する。そして、回路変更コマンドは、モード指定フィールドの値が００である場合ＳＰＩインタフェース１８０にリードモードを指定する。ＳＰＩインタフェース１８０は、リードモードである場合、図５で図示しない回路ブロック等に格納されているデータをリードデータＳＤＯ（図７では不図示とした）として出力する。一方、回路変更コマンドは、モード指定フィールドの値が１０である場合ＳＰＩインタフェース１８０にライトモードを指定する。ＳＰＩインタフェース１８０は、ライトモードである場合、ライトデータＳＤＩとして与えられるデータをＳＰＩ制御レジスタ１８１に書き込む。
【００５８】
図８に示すように、コマンド実行命令は、図７に示した回路変更コマンドのアドレスフィールドとデータフィールドとに対応する位置にカウント指示値が定義される。このカウント指示値は、１６ビットの値である。カウント指示値は、順序制御カウンタ１８５の最大カウント値を指定するものである。回路変更コマンドがコマンド実行命令であることは、モード指定フィールドの値が１１であることで認識できる。シリアルパラレル変換回路１８２は、モード指定フィールドの値が１１である場合、順序制御カウンタ１８５にカウント開始を指示する。
【００５９】
また、図７及び図８に示すように、半導体装置１では、チップセレクト信号ＣＳがローレベルの期間に回路変更コマンドを送信する。また、半導体装置１は、回路変更コマンドの各ビットに対応する位置に立ち上がりエッジを有するシリアルクロックＳＣＬＫをライトデータと共に伝達する。ＳＰＩインタフェース１８０は、シリアルクロックＳＣＬＫを用いて、シリアルデータをパラレルデータに変換する。
【００６０】
また、図４に示すデータスタック１８３は、ＭＣＵ部２００から送信された複数のコマンドを格納する。このとき、データスタック１８３は、受信順にコマンドを格納する。このデータスタック１８３には、コマンドに含まれるアドレスデータＡＤＤとデータＤＡＴとが格納される。データＤＡＴには、複数のアナログ機能回路の回路形式を指定する回路形式設定値と、アナログ機能回路の回路特性等を指定する回路構成設定値と、が含まれる。
【００６１】
実行順序演算回路１８４は、データスタック１８３に格納された複数のコマンドの実行順序を決定する。また、実行順序演算回路１８４は、決定した順序でコマンドが実行されるように、データスタック１８３からＳＰＩ制御レジスタ１８１にデータを転送する。このとき、実行順序演算回路１８４は、コマンドの実行順序をデータスタック１８３に格納された順に関わらず、予め決定された実行順序に合わせて、コマンドの実行順序を並べ替える。実行順序演算回路１８４は、上記実行順序の決定に用いる書込フラグを有する。
【００６２】
より具体的には、本実施の形態では、ＳＰＩ制御レジスタ１８１のレジスタのアドレスがコマンドの実行順序となるように定義されている。そこで、実行順序演算回路１８４は、データスタック１８３に格納されたコマンドのアドレス値ＡＤＤが昇順になるように、実行順序を決定する。そして、実行順序演算回路１８４は、決定した順にデータスタック１８３からデータＤＡＴを読み出して、ＳＰＩ制御レジスタ１８１にデータを転送する。
【００６３】
また、実施の形態１にかかるＳＰＩ制御レジスタ１８１では、回路形式を指定する回路形式設定コマンド、回路構成を指定する回路構成コマンド、複数のアナログ機能回路の電源を制御する電源制御コマンドの順にアドレスが大きくなるレジスタマップを有する。例えば、図６に示すＳＰＩ制御レジスタ１８１のレジスタマップでは、アドレス００ｈ〜０６ｈ）に回路形式設定コマンドが定義され、アドレス０７ｈ〜１０ｈに回路構成コマンドが定義され、アドレス１１ｈ〜１３ｈに電源制御コマンドが定義される。このようにコマンドのアドレスとＳＰＩ制御レジスタ１８１のレジスタマップとを定義することで、ＳＰＩインタフェース１８０は、受信したコマンドの順序に関わらず、回路形式を指定する回路形式設定コマンド、回路構成を指定する回路構成設定コマンド、複数のアナログ機能回路の電源を制御する電源制御コマンドの順でコマンドを実行する。
【００６４】
ここで、実行順序演算回路１８４におけるコマンドの実行順序の計算方法についてさらに詳細に説明する。そこで、図９に実施の形態１にかかる実行順序演算回路１８４における処理を説明する図を示す。
【００６５】
図９に示すように、実施の形態１にかかる実行順序演算回路１８４は、データスタック１８３にコマンドが格納される毎に、格納されたコマンドのアドレス値に対応する書込フラグを有効状態（例えば、１）とする。
【００６６】
そして、実行順序演算回路１８４は、当該書込フラグの値を用いて積算値Ｓｉｇｍａを算出する。この積算値Ｓｉｇｍａは、書込フラグＦに対応するコマンド番号をｎとした場合、Ｓｉｇｍａ［ｎ］＝Ｓｉｇｍａ［ｎ］＋Ｓｉｇｍａ［ｎ−１］により計算される。なお、アドレス００ｈに対応するコマンドは、コマンド番号が０であるため、積算値は計算されない。また、アドレス０１ｈに対応するコマンドは、コマンド番号が１であるため、積算値Ｓｉｇｍａは、Ｓｉｇｍａ［１］＝Ｆ［０］＋Ｆ［１］により算出される。
【００６７】
そして、実行順序演算回路１８４は、上記積算値Ｓｉｇｍａと自書込フラグとの積算結果により制御順序値Ｏｒｄｅｒ［ｎ］を決定する。図９に示す例では、アドレス００ｈに対応するコマンドは、書込フラグＦ［０］＝１であるため、Ｏｒｄｅｒ［０］＝Ｆ［０］＊Ｆ［０］＝１として算出される。また、アドレス０１ｈに対応するコマンドは、書込フラグＦ［１］＝１であるため、Ｏｒｄｅｒ［０］＝Ｓｉｇｍａ［１］＊Ｆ［１］＝２として算出される。
【００６８】
つまり、実行順序演算回路１８４は、書き込まれる可能性のあるコマンドのアドレス値に対応した書込フラグを有し、データスタック１８３にコマンドが書き込まれる毎に格納されたコマンドのアドレス値ＡＤＤに対応する書込フラグを有効状態とする。そして、実行順序演算回路１８４は、当該書込フラグが有効状態となっているコマンドの数を積算し、かつ、積算値と書込フラグの値とを積算することで、データスタック１８３に格納されたコマンドのアドレス値ＡＤＤが昇順になるように制御順序値Ｏｒｄｅｒを決定する。
【００６９】
また、図４に示す順序制御カウンタ１８５は、シリアルパラレル変換回路１８２によりコマンド実行命令が受信されたことに応じて、カウント値ＣＮＴを増加させる。順序制御カウンタ１８５では、コマンド実行命令がカウント指示値を有するため、カウント値ＣＮＴがカウント指示値に達するまでシリアルクロック信号のクロック数をカウントしてカウント値を増加させる。なお、順序制御カウンタ１８５のカウント値の初期値は−１である。また、順序制御カウンタ１８５は、カウント値ＣＮＴがカウント指示値に達した後は、カウント値ＣＮＴを初期値に戻す。
【００７０】
そして、実行順序演算回路１８４は、順序制御カウンタ１８５が出力するカウント値ＣＮＴと制御順序値Ｏｒｄｅｒとを比較する。実行順序演算回路１８４は、カウント値ＣＮＴと一致した制御順序値Ｏｒｄｅｒを有するアドレス値をリードアドレスＲＡＤＤとしてデータスタック１８３に出力すると共に、ライトアドレスＷＡＤＤとして出力する。これより、カウント値ＣＮＴと一致した制御順序値Ｏｒｄｅｒに対応するアドレス値ＡＤＤを有するコマンドがデータスタック１８３からＳＰＩ制御レジスタ１８１に転送される。つまり、ＳＰＩインタフェース１８０は、有効状態となった書込フラグに対応するアドレス値が昇順又は降順となるように、データスタック１８３に一時的に記憶されたコマンドを複数のレジスタ（例えば、ＳＰＩ制御レジスタ１８１）に格納する。
【００７１】
また、図４に示す変更対象分析回路１８６は、データスタック１８３に格納されたコマンドを監視し、格納されたコマンドが回路形式設定コマンドである場合、電源制御回路１８７にアナログ機能回路の電源を遮断することを指示する。電源制御回路１８７は、変更対象分析回路１８６からの指示に基づいて、アナログ機能回路の電源を遮断する。なお、電源制御回路１８７は、順序制御カウンタ１８５のカウント値が初期値（例えば、−１）である場合に上記電源を遮断する。
【００７２】
つまり、実施の形態１にかかる半導体装置１では、アナログ機能回路の回路形式及び回路構成の変更を指示する複数のコマンドがそれぞれ、ＳＰＩ制御レジスタ１８１のレジスタのアドレスを指定するアドレス値を含むように定義される。また、実施の形態１にかかる半導体装置１において制御回路として機能するＳＰＩインタフェース１８０は、ＳＰＩ制御レジスタ１８１のレジスタのアドレスがコマンドの実行順序に従って定義されている。そして、ＳＰＩインタフェース１８０は、受信した順にコマンドを一時的に記憶し、コマンド実行命令を受信したことに応じてコマンドに含まれるアドレス値の順序（例えば、昇順）でコマンドのデータをレジスタに格納する。また、ＳＰＩインタフェース１８０では、上記構成を備えることで、受信したコマンドの順序に関わらず、回路形式を指定する回路形式設定コマンド、回路構成を指定する回路構成設定コマンド、複数のアナログ機能回路の電源を制御する電源制御コマンドの順でコマンドを実行する。
【００７３】
続いて、実施の形態１にかかる半導体装置１の動作について説明する。ここでは、半導体装置１の動作のうちＳＰＩインタフェース１８０に関する動作、つまり、回路変更処理について説明する。そこで、実施の形態１にかかる半導体装置１における回路変更処理のフローチャートを図１０に示す。なお、図１０では、ＡＦＥ部１００における回路変更時のアナログ機能回路の電源オン・オフ動作については記載していないが、回路変更時には、アナログ機能回路（特に、オペアンプ）の電源はオフしておくことが好ましい。また、図１０に示すフローチャートは、主にＳＰＩインタフェース１８０の動作を示すものである。
【００７４】
図１０に示すように、実施の形態１にかかる半導体装置１は、回路構成変更処理を開始すると、まず、ＭＣＵ部２００からＡＦＥ部１００に回路変更コマンドを送信し、ＳＰＩインタフェース１８０が回路変更コマンドを受信する（ステップＳ１）。そして、ＳＰＩインタフェース１８０では、実行順序演算回路１８４が受信した回路構成コマンドのアドレス値に対応する書込フラグを無効状態（例えば、０）から有効状態（例えば、１）とする（ステップＳ２）。半導体装置１は、コマンド実行命令をＳＰＩインタフェース１８０が受信するまで、上記ステップＳ１、Ｓ２の処理を繰り返し実行する（ステップＳ３）。
【００７５】
続いて、ＳＰＩインタフェース１８０がコマンド実行命令を受信すると（ステップＳ３のＹＥＳの枝）、ＳＰＩインタフェース１８０の実行順序演算回路１８４にて例えば、図９に示した表に基づきアドレス値毎の制御順序値を演算する（ステップＳ４）。なお、整序順序値は、実行順序演算回路１８４が組み合わせ回路によ構成されている場合は、回路変更コマンドを受信する毎に計算される。
【００７６】
続いて、ＳＰＩインタフェース１８０は、順序制御カウンタ１８５によりコマンド実行命令と共に入力されるシリアルクロック信号のクロック数をカウントして、カウント値ＣＮＴをカウントアップする（ステップＳ５）。そして、実行順序演算回路１８４は、カウント値ＣＮＴと一致する制御順序値を有するアドレス値をリードアドレスＲＡＤＤ及びライトアドレスＷＡＤＤとして出力する（ステップＳ６）。また、ＳＰＩインタフェース１８０は、実行順序演算回路１８４が出力したリードアドレスＲＡＤＤ及びライトアドレスＷＡＤＤに基づきデータスタック１８３からＳＰＩ制御レジスタ１８１に回路変更コマンドのデータを転送する（ステップＳ７）。ＳＰＩインタフェース１８０は、順序制御カウンタ１８５のカウント値ＣＮＴがコマンド実行命令で示されるカウント指示値に達するまでステップＳ５からステップＳ７の処理を繰り返す（ステップＳ８）。そして、ＳＰＩインタフェース１８０は、カウント値ＣＮＴが最大値（例えば、カウント指示値）に達した時点で回路構成変更処理を終了する（ステップＳ８のＹＥＳの枝）。
【００７７】
上記説明より、実施の形態１にかかる半導体装置１では、ＭＣＵ部２００からＡＦＥ部１００に回路変更コマンドを送信し、ＡＦＥ部１００において、受信した回路変更コマンドの実行順序を並べ替えた後に回路変更コマンドを実行する。例えば、ＳＰＩ制御レジスタ１８１のレジスタのアドレスを予め問題ないと確認された変更順序に合わせて設定し、回路変更コマンドを当該レジスタのアドレスの順に従って並べ替えてコマンドを実行することができる。これにより、ユーザーは、回路変更後の構成だけを考えてプログラミングを実施しながら、例えば、直流パスによる突入電流の発生等の問題を回避することができる。
【００７８】
また、回路変更コマンドの入力順に関わらず、一定の順序で回路変更コマンドが実行されることで、半導体装置１に損傷を与えるような回路構成が形成される事態を回避できるため、実施の形態１にかかる半導体装置１は、高い信頼性を確保することができる。
【００７９】
実施の形態２
実施の形態１にかかる半導体装置１は、ＡＦＥ部１００のメモリに格納された制御プログラムに従ってＡＦＥ部１００の制御を行うが、実施の形態２では、当該プログラムの生成段階で回路変更コマンドの実行順序を最適化する方法について説明する。なお、ＭＣＵ部２００に格納される制御プログラムは、ＭＣＵ部２００において高速な処理が可能なようにマシン語にコンパイルされた状態となっている。そこで、以下の説明では、マシン語にコンパイルされたプログラムをオブジェクトファイルと称し、例えば、Ｃ言語等の高級言語で記述されたプログラムとは区別する。また、Ｃ言語等の高級言語で記述されたプログラムを以下ではコードファイルと称す。
【００８０】
まず、半導体装置１に格納される制御プログラムの生成手順について説明する。そこで、実施の形態１にかかる半導体装置１を制御する制御プログラムの生成手順を示すフローチャートを図１１に示す。図１１に示すように、実施の形態１にかかる半導体装置１を制御するオブジェクトファイルは、半導体装置１の動作検証を経て作成されるコードファイルをコンパイルすることで生成される。
【００８１】
より具体的には、まず、ソフトウェアシミュレーションにより、半導体装置１の動作を検証する（ステップＳ１０）。このソフトウェアシミュレーションでは、例えば、ＡＦＥ部１００のアナログ機能回路をモデル化し、回路の形式及び特性を設定するパラメータをシミュレーションするモデルシミュレーションを行う。
【００８２】
続いて、モデルシミュレーションで検証した回路形式及び回路構成で実際に半導体装置１を制御させるボード評価を実施する（ステップＳ１１）。このボード評価は、実際にハードウェアを動作させて、半導体装置１が意図した特性で動作するかを検証する。
【００８３】
続いて、ボード評価で問題がないと判断されたパラメータをプログラムに反映させたコードファイルを作成する（ステップＳ１２）。このコードファイルには、回路変更コマンドが所定の書式に沿って記述される。また、コードファイルは、高級言語で記述される。
【００８４】
続いて、ステップＳ１２で作成したコードファイルをコンパイルしてオブジェクトファイルを生成する（ステップＳ１３）。そして、ステップＳ１３で生成したオブジェクトファイルを半導体装置１に書き込む（ステップＳ１４）。これにより、半導体装置１が検証されたプログラムによって制御されうる状態となる。
【００８５】
実施の形態２では、上記ステップＳ１３で行うコンパイル処理においてコマンドの実行順序の最適化を実施する。そこで、実施の形態２にかかるコンパイル装置１０のブロック図を図１２に示す。図１２に示すように、実施の形態２にかかるコンパイル装置１０は、例えば、パーソナルコンピュータ等の演算装置である。コンパイル装置１０は、演算部（例えば、ＣＰＵ１１）、入力装置１２、表示装置１３、メモリ１４、記憶装置１５、Ｉ／Ｏインタフェース１６、ネットワークインタフェース１７を有する。また、半導体装置１は、コンパイル装置１０のＩ／Ｏインタフェース１６を介してコンパイル装置１０と接続される。また、半導体装置１にはセンサ２が接続される。
【００８６】
コンパイル装置１０の記憶装置１５には、コンパイルプログラムＦ１、コードファイルＦ２、及び、オブジェクトファイルＦ３が格納されている。コードファイルＦ２は、ユーザーが例えばコンパイル装置１０上で作成しても良いし、他の装置で生成しても良い。
【００８７】
ＣＰＵ１１は、コンパイルプログラムＦ１１を実行することでコードファイルＦ２からオブジェクトファイルＦ３を生成する。このとき、ＣＰＵ１１は、メモリ１４をプログラム実行中に生成される中間ファイルの格納場所として利用する。また、入力装置１２及び表示装置１３は、ユーザーがコンパイル装置１０を利用する際のユーザーインタフェースである。また、コンパイル装置１０のＩ／Ｏインタフェース１６は、例えば、ＵＳＢ（Universal Serial Bus）等の外部機器とコンパイル装置１０とを接続するためのインタフェースである。ネットワークインタフェース１７は、コンパイル装置１０を公衆ネットワーク及びローカルエリアネットワーク（ＬＡＮ）に接続するためのインタフェースである。
【００８８】
続いて、実施の形態２にかかるコンパイル装置１０における処理について詳細に説明する。図１３に、実施の形態２にかかるコンパイル装置１０のコンパイル処理のフローチャートを示す。
【００８９】
図１３に示すように、コンパイル装置１０は、コンパイルの開始に当たり、まず、コードファイルＦ２を記憶装置１５から読み出す（ステップＳ２０）。そして、コンパイル装置１０は、読み出したコードファイル中に、回路変更コマンドの順序最適化命令があるか否かを判断する（ステップＳ２１）。そして、ステップＳ２１で回路変更コマンドの最適化命令があると判断された場合（ステップＳ２１のＹＥＳの枝）、コンパイル装置１０は、回路変更コマンドを最適な順序に並べ替える最適化処理を実施する（ステップＳ２１）。一方、ステップＳ２１で回路変更コマンドの最適化命令がないと判断された場合（ステップＳ２１のＮＯの枝）、コンパイル装置１０は、コンパイル前処理を行い、中間ファイルを生成する（ステップＳ２３）。コンパイル前処理では、例えば、マクロ置換処理、条件付きコンパイル処理等を行う。その後、コンパイル装置１０は、中間ファイルに対してコンパイル処理を実施することでオブジェクトファイルＦ３が生成される（ステップＳ２４）。コンパイル装置１０は、Ｉ／Ｏインタフェース１６を介してこのオブジェクトファイルＦ３を半導体装置１に書き込む。
【００９０】
ここで、順序最適化処理についてさらに詳細に説明する。そこで、図１３に示したステップＳ２２における最適化処理を説明する図を図１４に示す。図１４は、順序最適化処理の前後のコードファイルを比較する図である。図１４に示す例では、コードファイルのうち回路変更コマンドが記述される部分だけを示した。
【００９１】
図１４に示すように、コードファイルには、＃ＳＡＣＯＭ＿ＳＴと＃ＳＡＣＯＭ＿ＥＮとが順序最適化命令である。そして、＃ＳＡＣＯＭ＿ＳＴと＃ＳＡＣＯＭ＿ＥＮとに挟まれる部分に最適化の対象となる回路変更コマンドが記述される。回路変更コマンドは、｛｝に挟まれる部分に、レジスタアドレス、コマンドの値の順で記述される。ここで、コマンドは、スイッチ回路の開閉状態及び回路の動作モードとしてどのような状態を指定するかにより値が変化する。
【００９２】
そして、コンパイル装置１０の順序最適化処理を実行することで、図１４の左側のオリジナルのコードファイルから、図１４の右側の最適化後のコードファイルに変更される。最適化前のオリジナルコードファイルでは、上部に記載されたコマンドのアドレス値が昇順になっていない。一方、順序最適化後のコードファイルでは、コマンドのアドレス値が昇順に変更されている。また、順序最適化処理を実施することで、コマンドの前後の順序最適化命令が電源オン・オフを制御する電源制御コマンドに置き換えられる。
【００９３】
なお、実施の形態２にかかるコンパイル装置１０により最適化された後の回路変更コマンドの順序は、例えば、ＳＰＩ制御レジスタ１８１のレジスタアドレスの順序に対応したものである。つまり、コンパイル装置１０は、回路変更コマンドを、回路形式設定コマンド、回路構成設定コマンド、電源制御コマンドの順に並べる。
【００９４】
上記説明より、実施の形態２にかかるコンパイル装置１０では、コードファイル中の回路変更コマンドを予め設定した順序に並べ替えた上で、オブジェクトファイルを生成する。これにより、コンパイル装置１０により生成されたオブジェクトファイルを制御プログラムとして実行する半導体装置１は、意図しない動作状態で動作することがない。つまり、コンパイル装置１０によりオブジェクトファイルを生成することで、半導体装置１の信頼性を向上させることができる。
【００９５】
また、コンパイル装置１０により生成されるオブジェクトファイルにより半導体装置１を動作させることで、例えば、ＳＰＩインタフェース１８０中に実行順序演算回路１８４、順序制御カウンタ１８５等を備えていない場合であっても、意図しない動作状態で半導体装置１が動作することを回避することができる。つまり、コンパイル装置１０によりオブジェクトファイルを利用することで、半導体装置１（特にＡＦＥ部１００）の回路規模を小さくすることができる。
【００９６】
実施の形態３
実施の形態３では、図１１に示したフローチャートの図１１のボード評価で利用される設計支援装置における回路変更コマンドの実行順序最適化処理について説明する。ここで、実施の形態３にかかる設計支援装置は、例えば、パーソナルコンピュータ等を用いて設計支援プログラムを動作させることで実現できる。つまり、実施の形態３にかかる設計支援装置は、ハードウェアとしては図１２に示したコンパイル装置１０と実質的に同じであるため、ここでは説明を省略する。
【００９７】
実施の形態３にかかる設計支援装置は、設計支援プログラムにより実現されるが、当該設計支援プログラムは、表示装置にＧＵＩ（Graphical User Interface）を用いて、ユーザーに回路形式及び変更可能な回路パラメータを提示し、ユーザーの操作に応じてＧＵＩ上で指定された回路パラメータを半導体装置１に送信する。これにより、ユーザーはＧＵＩ上で設定した回路パラメータによる半導体装置１の動作を検証することができる。また、実施の形態３にかかる設計支援装置は、ＧＵＩ画面上で設定された回路パラメータに基づき回路変更コマンドを含むコードファイルを生成する。
【００９８】
ここで、実施の形態３にかかる設計支援装置は、回路変更コマンドを半導体装置１に送信する場合、及び、ＧＵＩ画面上で設定された回路パラメータに基づきコードファイルを生成する場合の２つの処理においてコマンド実行順序の最適化処理を実施する。
【００９９】
そこで、まず、実施の形態３にかかる設計支援装置において表示装置に表示されるＧＵＩ画面について説明する。図１５に実施の形態３にかかる設計支援装置で用いられる回路カスタムウィンドウを説明する図を示し、図１６に実施の形態３にかかる設計支援装置で用いられる回路パラメータの設定状況を確認するレジスタ設定値確認画面を説明する図を示す。
【０１００】
図１５に示す、回路カスタムウィンドウは、ＡＭＰ１を個別アンプとして利用する場合のものである。図１５に示すように、実施の形態３にかかる設計支援装置が表示する回路カスタムウィンドウは、回路の接続関係を示す回路表示部分を有する。そして、回路表示部分には、変更可能な回路パラメータがプルダウンメニューにて選択できるようになっている。ユーザーはプルダウンメニューを操作して、回路のゲイン、入力、回路形式を選択することができる。また、回路表示部分の隣には、回路を非反転アンプ、反転アンプ、差動アンプ、Ｉ／Ｖアンプとして利用した場合における設定値とゲイン等の特性との関係が表示される。
【０１０１】
また、回路カスタムウィンドウには、適用ボタン２０、終了ボタン２１、コード生成ボタン２２が設けられている。適用ボタン２０が押された場合には、設計支援装置は、接続されている半導体装置１にＧＵＩ画面上で表示されている回路設定をＡＦＥ部１００に反映するための回路変更コマンドを送信する。終了ボタン２１が押された場合には、設計支援装置は、ＧＵＩ画面を閉じて設計支援プログラムを終了する。コード生成ボタン２２が押された場合には、設計支援装置は、ＧＵＩ画面上で表示されている回路設定をＡＦＥ部１００に反映するための回路変更コマンドを含むコードファイルを出力する。
【０１０２】
また、図１６に示すレジスタリストウィンドウは、図１５の回路カスタムウィンドウと共に表示される画面である。レジスタリストウィンドウは、上段部分に現在のＡＦＥ部１００の回路の状態を示すレジスタの一覧が表示されるレジスタ確認ウィンドウ２３を有し、下段部分に変更後のＡＦＥ部１００のレジスタの値が表示される変更予約ウィンドウ２４が表示される。実施の形態３にかかる設計支援装置は、変更があった回路パラメータについては、変更予約を行い、回路カスタムウィンドウの適用ボタン２０が押されたことに応じて回路変更コマンドを最適な順序で出力する。
【０１０３】
続いて、実施の形態３にかかる設計支援装置の動作について説明する。図１７に実施の形態３にかかる設計支援装置の動作を示すフローチャートを示す。なお、図１７に示したフローチャートは、設計支援装置の動作のうちＡＦＥ部１００の回路の形態を指定する回路変更コマンドに関するコードファイル部分のみを生成するフローである。
【０１０４】
図１７に示すように、実施の形態３にかかる設計支援装置では、ユーザーが回路カスタムウィンドウ内のパラメータを操作して、回路形式及び回路構成の変更を受け付ける（ステップＳ３０）。このとき、実施の形態３にかかる設計支援装置では、変更箇所のレジスタを変更予約ウィンドウ２４に表示する。
【０１０５】
次いで、実施の形態３にかかる設計支援装置は、適用ボタン２０が押されたことに応じて（ステップＳ３１のＹＥＳの枝）、回路変更コマンドの実行順序を最適化した状態で半導体装置１にコマンドを送信する（ステップＳ３２）。そして、ユーザーは、設計支援装置のＧＵＩ上で設定した回路による回路動作を検証する（ステップＳ３３）。そして、ユーザーがコード生成ボタン２２を押したことに応じて（ステップＳ３４のＹＥＳの枝）、実施の形態３にかかる設計支援装置は、回路変更コマンドの実行順序が最適化された状態のコードファイルを生成する（ステップＳ３５）。
【０１０６】
ここで、実施の形態３にかかる設計支援装置では、ステップＳ３２におけるコマンド送信処理及びステップＳ３５におけるコードファイル生成処理でコマンドの実行順序の最適化処理を実施する。この最適化処理は、実施の形態２にかかるコンパイル装置１０のＳ２２と実質的に同じ処理である。
【０１０７】
つまり、実施の形態３にかかる設計支援装置では、複数のアナログ機能回路において変更可能な回路パラメータを表示するＧＵＩを表示し、変更された回路パラメータに対応する回路変更コマンドを修正対象コマンドコードとして予約し、ユーザーからの指示に応じて、予約された修正対象コマンドコードを一定の順序に並べ替え、並べ替えた後の順序で修正対象コマンドコードを半導体装置１に出力する。そこで、図１８及び図１９に、実施の形態３にかかる設計支援装置から半導体装置１にコマンドコードを送信する際のタイミングチャートを示す。
【０１０８】
図１８に示す例では、変更予約ウィンドウ２４上でＣ１、Ｃ３、Ｃ２の順で回路変更コマンドが予約されている。そして、図１８に示す例では、コマンドを１つずつ半導体装置１のＡＦＥ部１００に送信する。このとき、設計支援装置は、回路変更コマンドを予約された順ではなく、例えば、コマンドが格納されるレジスタのアドレス順で出力する。
【０１０９】
図１９に示す例では、図１８に示す例と同様に変更予約ウィンドウ２４上でＣ１、Ｃ３、Ｃ２の順で回路変更コマンドが予約されている。そして、図１９に示す例では、コマンドを一括して半導体装置１に出力する。このとき、設計支援装置は、回路変更コマンドを予約された順ではなく、例えば、コマンドが格納されるレジスタのアドレス順で出力する。
【０１１０】
また、実施の形態３にかかる設計支援装置では、複数のアナログ機能回路において変更可能な変更パラメータを表示するＧＵＩを表示し、変更された回路パラメータに対応する回路変更コマンドを修正対象コマンドコードとして予約し、コードファイルの生成指示に応じて、修正対象コマンドコードが予約された順序に関わらず、一定の順序で並べられた修正対象コマンドコードを含むコマンドコードが記述されるコードファイルを生成する。実施の形態３にかかる設計支援装置が生成するコードファイルでは、生成直後から図１４の右側に示したコードファイルとなっている。
【０１１１】
なお、実施の形態３にかかる設計支援装置においても、回路変更コマンドは、回路形式を指定する回路形式設定コマンド、回路構成を指定する回路構成設定コマンド、複数のアナログ機能回路の電源を制御する電源制御コマンドの順で並べ替えられる。また、実施の形態３にかかる設計支援装置が出力するコマンド及びコードファイルにおいても、回路パラメータに対応するコマンドコードの前後にアナログ機能回路の電源を制御する電源制御コマンドのコマンドコードが挿入される。
【０１１２】
上記説明より、実施の形態３にかかる設計支援装置は、ユーザーに回路パラメータを簡易に設定可能な設計環境を提供する。このとき、実施の形態３にかかる設計支援装置は、ユーザーが変更した回路パラメータに対応する回路変更コマンドを実施の形態１、２と同様に、不具合がないと予め検証された順序に並べ替えて出力する。これにより、ユーザーは、回路の変更による半導体装置１の不具合を考慮することなく回路の検証及びコードファイルの作成を行うことことができる。
【０１１３】
また、実施の形態３にかかる設計支援装置を利用することで、半導体装置１のＳＰＩインタフェース１８０に、実行順序演算回路１８４及び順序制御カウンタ１８５等の回路がない状態であっても、半導体装置１が意図しない回路動作で破損することを防止できるコードファイルの生成及び検証動作を行うことが可能である。
【０１１４】
実施の形態４
実施の形態４では、実施の形態１から実施の形態３で説明した各装置を組み合わせた設計支援システムについて説明する。そこで、実施の形態４にかかる設計支援システムのブロック図を図２０に示す。
【０１１５】
図２０に示すように、実施の形態４にかかる設計支援システムは、モデル評価装置３１、ボード評価支援装置３２、コンパイル装置３３を有する。そして、実施の形態４にかかる設計支援システムは、モデル評価装置３１、ボード評価支援装置３２、及び、コンパイル装置３３を用いて半導体装置１を動作させるオブジェクトファイルを生成する。
【０１１６】
モデル評価装置３１は、図１１のステップＳ１０のソフトウェアシミュレーションを行う装置である。ボード評価支援装置３２は、例えば、パーソナルコンピュータ等の汎用的な演算装置であり、当該演算装置上でモデルシミュレーションプログラムが実行される。
【０１１７】
ボード評価支援装置３２は、図１１のステップＳ１１のボード評価を行う装置であって、実施の形態３にかかる設計支援装置である。実施の形態３で説明した様に、ボード評価支援装置３２は、ＧＵＩ画面上でユーザーが指定した回路パラメータをＭＣＵ部２００に反映させる回路変更コマンドを出力する。このとき、ボード評価支援装置３２は、回路変更コマンドを、事前の検証で問題がないことが確認された実行順序に従って並べ替えるコマンド実行順序最適化処理を行う。つまり、ボード評価支援装置３２が出力するＵＳＢインタフェースを介して半導体装置１に与える回路変更コマンドと、生成するコードファイルに含まれる回路変更コマンドとは、いずれもユーザーの回路変更指示に関わらず順序が最適化された形態となる。
【０１１８】
コンパイル装置３３は、図１１のステップＳ１３のコンパイル処理を行う装置であって、実施の形態２にかかるコンパイル装置である。コンパイル装置３３は、ボード評価支援装置３２が出力するコードファイル及びユーザーが作成したマニュアル入力コードファイルを個別にコンパイルする或いは組み合わせてコンパイルする。このコンパイル装置３３は、実施の形態２で説明した様に、コードファイルに含まれる回路変更コマンドの順序を、事前の検証で問題がないことが確認された実行順序に従って並べ替えるコマンド実行順序最適化処理を行う。従、コンパイル装置３３が出力するオブジェクトファイルに含まれる回路変更コマンドは、すでに最適化処理がなされたものとなる。
【０１１９】
半導体装置１は、コンパイル装置３３が出力するオブジェクトファイル、及び、ユーザーが作成した任意のオブジェクトファイルが入力される。そして、半導体装置１は、入力されたオブジェクトファイルをメモリに記憶し、記憶したオブジェクトファイルに基づき動作を行う。
【０１２０】
また、半導体装置１のＳＰＩインタフェースは、実施の形態１で説明したように、実行順序演算回路１８４及び順序制御カウンタ１８５を備える。これにより半導体装置１は、ＡＦＥ部１００が送信する回路変更コマンドの順序が最適化されていない場合であっても、ＳＰＩインタフェース内で回路変更コマンドの実行順序を最適化した上で回路変更コマンドを実行することができる。
【０１２１】
上記説明より、実施の形態４にかかる設計支援システムでは、回路変更コマンドを生成或いは実行する各段階でそれぞれコマンド実行順序の最適化処理を実施する。これにより、実施の形態４にかかる設計支援システムでは、高い精度でＡＦＥ部１００の回路状態が意図しない状態となることを防止して、半導体装置１の信頼性を高めることができる。
【０１２２】
実施の形態５
実施の形態５では、実施の形態１にかかる半導体装置１のＳＰＩインタフェース１８０別の形態について説明する。そこで、実施の形態５にかかるＳＰＩインタフェース１８０ａのブロック図を図２１に示す。なお、実施の形態５の説明において、実施の形態１で説明した構成要素と同じ構成要素については、実施の形態１と同じ符号を付して説明を省略する。
【０１２３】
図２１に示すようにＳＰＩインタフェース１８０ａは、実施の形態１にかかるＳＰＩインタフェース１８０に、レジスタグループ判定回路１９１、モード切替レジスタ１９２、セレクタ１９３、１９４を追加したものである。
【０１２４】
レジスタグループ判定回路１９１は、実行順序の最適化処理を経ずに受信後即座に実行するコマンドを判定する。レジスタグループ判定回路１９１は、受信した回路変更コマンドのアドレス値を参照し、当該回路変更コマンドが予め設定した即時変更グループに属するものであれば、モード切替レジスタ１９２の値をイネーブル状態（例えば、１）とする。一方、レジスタグループ判定回路１９１は、受信した回路変更コマンドのアドレス値が予め設定した即時変更グループに属さないものであれば、モード切替レジスタ１９２の値をディスイネーブル状態（例えば、０）とする。
【０１２５】
セレクタ１９３は、実行順序演算回路１８４が出力するアドレス値と、受信した回路変更コマンドのアドレス値と、のいずれか一方をモード切替レジスタ１９２の値に応じて選択して、選択したアドレス値をリードアドレスＲＡＤＤ及びライトアドレスＷＡＤＤとして出力する。より具体的には、セレクタ１９３は、モード切替レジスタ１９２の値がディスイネーブル状態である場合は、実行順序演算回路１８４が出力するアドレス値を選択し、モード切替レジスタ１９２のイネーブル状態である場合は、受信した回路変更コマンドのアドレス値を選択する。
【０１２６】
セレクタ１９４は、データスタック１８３から出力されるデータと、受信した回路変更コマンドのデータと、のいずれか一方をモード切替レジスタ１９２の値に応じて選択して、選択したデータをＳＰＩ制御レジスタ１８１に書き込む。より具体的には、セレクタ１９４は、モード切替レジスタ１９２の値がディスイネーブル状態である場合は、シリアルパラレル変換回路１８２から出力されるデータを選択し、モード切替レジスタ１９２のイネーブル状態である場合は、受信した回路変更コマンドのデータを選択する。
【０１２７】
上記説明より、実施の形態５にかかるＳＰＩインタフェース１８０ａは、即時変更グループに属する回路変更コマンドが入力された際には、データスタック１８３に一時的に保持することなく、即座にＳＰＩ制御レジスタ１８１に回路変更コマンドのデータを反映させる。つまり、実施の形態５にかかるＳＰＩインタフェース１８０ａは、即時変更グループに属する回路変更コマンドが入力された際には、回路変更コマンドを即座に実行する。
【０１２８】
そこで、実施の形態５にかかるＳＰＩインタフェース１８０ａにおける即時変更グループに属する回路変更コマンドを説明する図を図２２に示す。図２２は、ＳＰＩ制御レジスタ１８１のレジスタマップである。図２２に示すように、実施の形態５では、回路変更コマンドのうち回路構成設定コマンドとして用いられる、アドレス０７ｈから０Ｅｈのコマンドが即時変更グループに分類される。この回路構成設定コマンドによる回路構成の変更では、例えば、ＡＦＥ部１００に設けられた回路の電流経路が基本的に変更されず、抵抗値等が切り替えられるのみである。そのため、回路構成設定コマンドの値を変更しても、半導体装置１に意図しない電流が流れる等の問題は発生しない。
【０１２９】
上記説明より、実施の形態５にかかるＳＰＩインタフェース１８０ａを用いることで、即時変更グループに設定された回路変更コマンドについては、すべての回路構成コマンドを受信することなく回路の変更をＡＦＥ部１００に反映することができる。これにより、実施の形態５にかかるＳＰＩインタフェース１８０ａを有する半導体装置１では、例えば利得変更に要する時間を短くすることができる。そこで、実施の形態５にかかるＳＰＩインタフェース１８０ａによる効果を説明する図を図２３に示す。
【０１３０】
図２３に示すように、ＳＰＩインタフェース１８０を用いた場合、利得或いは基準電圧等を１つ変更する毎に実行順序演算回路１８４及び実行順序演算回路１８４による最適化処理を実施する必要がある。一方、ＳＰＩインタフェース１８０ａを用いた場合、最適化処理を実施することなく、利得或いは基準電圧を連続して変更することができる。
【０１３１】
実施の形態６
実施の形態６では、実施の形態５にかかるＳＰＩインタフェース１８０ａに適用するコマンドの別の形態について説明する。より具体的には、実施の形態６では、即時変更グループに属する回路変更コマンドを即時変更モードで実行するか、実施の形態１のように実行順序最適化処理を経て実行するかを切り替えるコマンドモードを追加する。
【０１３２】
そこで、実施の形態６にかかる即時実行モードを指定するコマンドを説明するためのタイミングチャートを図２４に示す。図２４に示すように、即時実行モードを指定するコマンドは、回路変更コマンドのモード指定フィールドを０１とするものである。
【０１３３】
ＳＰＩインタフェース１８０ａは、即時変更グループに属する回路変更コマンドを即時実行モードを指定するコマンドとして受信した場合、レジスタグループ判定回路１９１、モード切替レジスタ１９２等を機能させて受信した回路変更コマンドを即座に実行する。一方、ＳＰＩインタフェース１８０ａは、ライトモードで即時変更グループに属する回路変更コマンドを受信した場合、レジスタグループ判定回路１９１、モード切替レジスタ１９２等を無効状態として、他の回路変更コマンドと同様に実行順序最適化処理後に受信した回路変更コマンドを実行する。
【０１３４】
また、ＳＰＩインタフェース１８０ａは、即時変更グループに属さない回路変更コマンドを即時実行モードを指定するコマンドとして受信した場合、レジスタグループ判定回路１９１、モード切替レジスタ１９２等を無効状態として、他の回路変更コマンドと同様に実行順序最適化処理後に受信した回路変更コマンドを実行する。
【０１３５】
上記説明より、実施の形態６にかかる即時実行モードを指定するコマンドを用いることで、即時変更グループに属する回路変更コマンドを即時実行モードで実行するか、実行順序最適化処理を経て実行するかを切り替えることができる。
【０１３６】
実施の形態７
実施の形態７では、実施の形態２で説明したコンパイル装置１０が図２２で示した即時変更グループに属する回路変更コマンドを含むコードファイルに対してコンパイル処理を実施する場合の別の形態について説明する。より具体的には、実施の形態７にかかるコンパイル装置では、コードファイル中に即時変更グループに属する回路変更コマンドのみが含まれている場合、コマンド実行順序の最適化処理を実施しない動作モードを備える。
【０１３７】
そこで、実施の形態７にかかるコンパイル装置の動作を示すフローチャートを図２５に示す。図２５に示すように、実施の形態７にかかるコンパイル装置は、図１３に示した実施の形態２にかかるコンパイル装置の動作に加えて、ステップＳ４１の処理を実施する。ステップＳ４１は、ステップＳ２１において回路変更コマンドの順序最適化命令があった場合に実施される。ステップＳ４１では、コードファイル中に即時変更グループに含まれない回路変更コマンドが含まれているか否かを判断する。そして、実施の形態７にかかるコンパイル装置は、ステップＳ４１において即時変更グループに含まれない回路変更コマンドがコードファイル中にあると判断された場合（ステップＳ４１のＹＥＳの枝）、回路変更コマンドの最適化処理を実施する（ステップＳ２２）。一方、実施の形態７にかかるコマンド装置は、ステップＳ４１においてコードファイル中の回路変更コマンドが即時変更グループに含まれる回路変更コマンドのみであると判断された場合（ステップＳ４１のＮＯの枝）、回路変更コマンドの最適化処理を実施することなくステップＳ２３のコンパイル前処理を実施する。
【０１３８】
上記説明より、実施の形態７にかかるコンパイル装置を用いることで、利得或いは基準電圧等の回路構成のみを変更する指示を含むコードファイルを生成する際に、電源のオン・オフを切り替える処理を実施する電源制御コマンドを含まないコードファイルを生成することができる。そして、電源制御コマンドを含まないコードファイルに基づき半導体装置１を制御することで、半導体装置１における利得切り替え、或いは、基準電圧の切り替えを高速に行うことができる。そこで、実施の形態７にかかるコンパイル装置により生成されるコードファイルに基づき動作する半導体装置１の動作を説明する図を図２６に示す。
【０１３９】
図２６の左図に示すように、実施の形態２にかかるコンパイル装置により生成されたコードファイルに基づき半導体装置１を制御した場合、利得、或いは、基準電圧を変更する毎に電源のオン・オフ制御が実施される。一方、図２６の右図に示すように、実施の形態７にかかるコンパイル装置により生成されたコードファイルに基づき半導体装置１を制御した場合、電源のオン・オフ制御を実施することなく利得、或いは、基準電圧を連続的に変更することができる。
【０１４０】
実施の形態８
実施の形態８では、実施の形態３にかかる設計支援装置の別の形態について説明する。実施の形態８にかかる設計支援装置では、回路カスタムウィンドウ上に即時変更ボタン２５を設け、半導体装置１の動作検証時に回路パラメータの変更を即時にＡＦＥ部１００に反映させる動作モードが実装される。
【０１４１】
そこで、実施の形態８にかかる設計支援装置において表示される回路カスタムウィンドウを説明する図を図２７に示す。図２７に示すように、実施の形態８における回路カスタムウィンドウには、実施の形態３で説明した回路カスタムウィンドウに即時変更ボタン２５が追加される。
【０１４２】
そして、実施の形態８にかかる設計支援装置では、即時変更ボタン２５が押された場合、変更可能な回路パラメータを、図２２に示した即時変更グループに属する回路変更コマンド（例えば、回路構成設定コマンド）に対応するパラメータに限定する。また、実施の形態８にかかる設計支援装置は、回路パラメータが変更されたことに応じて、即座に変更された回路パラメータに対応する回路変更コマンドをＡＦＥ部１００に送信する。
【０１４３】
ここで、実施の形態８にかかる設計支援装置の動作について説明する。図２８に実施の形態８にかかる設計支援装置の動作を示すフローチャートを示す。図２８に示すように、実施の形態８にかかる設計支援装置は、図１７で説明した実施の形態３にかかる設計支援装置の動作にステップＳ５１〜Ｓ５４の処理を追加したものである。
【０１４４】
ステップＳ５１では、即時変更ボタン２５が押されているか否かを判断する。このステップＳ５１で即時変更ボタン２５が押されていない場合（ステップＳ５１のＮＯの枝）、実施の形態８にかかる設計支援装置は、実施の形態３にかかる設計支援装置の動作と同じ動作を行う。
【０１４５】
一方、このステップＳ５１で即時変更ボタン２５が押されていると判断された場合（ステップＳ５１のＹＥＳの枝）、回路カスタムウィンドウ内の操作可能な回路パラメータを回路構成設定コマンドに関するものに制限する。そして、実施の形態８にかかる設計支援装置は、変更された回路パラメータの変更を受け付ける（ステップＳ５２）。続いて、実施の形態８にかかる設計支援装置は、変更された回路パラメータに対応する回路変更コマンドをＵＳＢインタフェースを介してＡＦＥ部１００に送信する（ステップＳ５３）。
【０１４６】
その後、ユーザーは、実施の形態３にかかる設計支援装置を利用している場合と同様に回路動作を検証し（ステップＳ３３）、コード生成ボタン２２を押すことでコードファイルを生成する（ステップＳ３４、Ｓ３５）。
【０１４７】
上記説明より、実施の形態８にかかる設計支援装置では、即時変更ボタン２５を実装し、即時変更ボタン２５が押されたことに応じて変更可能な回路パラメータを制限することで、ユーザーが誤ったパラメータ操作を行うことを防止する。また、実施の形態８にかかる設計支援装置では、即時変更ボタン２５が押された状態で回路検証を進めることで、利得或いは基準電圧をスイープさせる検証等を容易に行うことが可能になる。
【０１４８】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【０１４９】
１  半導体装置
２  センサ
１０  コンパイル装置
１１  ＣＰＵ
１２  入力装置
１３  表示装置
１４  メモリ
１５  記憶装置
１６  Ｉ／Ｏインタフェース
１７  ネットワークインタフェース
２０  適用ボタン
２１  終了ボタン
２２  コード生成ボタン
２３  レジスタ確認ウィンドウ
２４  変更予約ウィンドウ
２５  即時変更ボタン
３１  モデル評価装置
３２  ボード評価支援装置
３３  コンパイル装置
１００  ＡＦＥ部
１１０  コンフィギュラブル・アンプ
１１１  オペアンプ
１１２ａ〜１１２ｄ  可変抵抗
１１３ａ〜１１３ｃ  スイッチ
１１４  ＤＡＣ
ＳＷ１０、ＳＷ１１  マルチプレクサ
１２０  増幅アンプ
１３０  ローパス・フィルタ
１４０  ハイパス・フィルタ
１５０  可変レギュレータ
１６０  温度センサ
１７０  汎用アンプ
１８０  ＳＰＩインタフェース
１８１  ＳＰＩ制御レジスタ
１８２  シリアルパラレル変換回路
１８３  データスタック
１８４  実行順序演算回路
１８５  順序制御カウンタ
１８６  変更対象分析回路
１８７  電源制御回路
１９１  レジスタグループ判定回路
１９２  モード切替レジスタ
１９３、１９４  セレクタ
２００  ＭＣＵ部
２１０  ＣＰＵコア
２２０  メモリ
２３０  オシレータ
２４０  タイマ
２５０  入出力ポート
２６０  Ａ／Ｄコンバータ
２７０  ＳＰＩインタフェース
【図１】
2015095810.tif 000003
【図２】
2015095810.tif 000004
【図３】
2015095810.tif 000005
【図４】
2015095810.tif 000006
【図５】
2015095810.tif 000007
【図６】
2015095810.tif 000008
【図７】
2015095810.tif 000009
【図８】
2015095810.tif 000010
【図９】
2015095810.tif 000011
【図１０】
2015095810.tif 000012
【図１１】
2015095810.tif 000013
【図１２】
2015095810.tif 000014
【図１３】
2015095810.tif 000015
【図１４】
2015095810.tif 000016
【図１５】
2015095810.tif 000017
【図１６】
2015095810.tif 000018
【図１７】
2015095810.tif 000019
【図１８】
2015095810.tif 000020
【図１９】
2015095810.tif 000021
【図２０】
2015095810.tif 000022
【図２１】
2015095810.tif 000023
【図２２】
2015095810.tif 000024
【図２３】
2015095810.tif 000025
【図２４】
2015095810.tif 000026
【図２５】
2015095810.tif 000027
【図２６】
2015095810.tif 000028
【図２７】
2015095810.tif 000029
【図２８】
2015095810.tif 000030