(57)【要約】【課題】ターゲットデバイスがオンチップデバッグ機能を有することなく、アナログ特性を考慮してターゲットデバイスの動作をエミュレートすることができるエミュレーションシステムの提供。【解決手段】本エミュレーションシステム１００は、アナログ信号処理部を含むターゲットデバイスの動作をエミュレートするエミュレーションシステムであって、アナログ信号処理部３１４を含む半導体デバイス３１０と、エミュレーション装置２０とを含み、半導体デバイス３１０は、半導体デバイス３１０に含まれるアナログ信号処理部３１４の入力又は出力の少なくとも一つを接続することができる外部端子を含み、半導体デバイス３１０に含まれるアナログ信号処理部３１４は、ターゲットデバイスに含まれるアナログ信号処理部と同視できるアナログ特性を有し、エミュレーション装置２０と半導体デバイス３１０の外部端子が接続される。【選択図】図２
2008077176.tif 000002
【特許請求の範囲】
【請求項１】
アナログ信号処理部を含むターゲットデバイスの動作をエミュレートするエミュレーションシステムであって、
前記エミュレーションシステムは、
アナログ信号処理部を含む半導体デバイスと、エミュレーション装置とを含み、
前記半導体デバイスは、
前記半導体デバイスに含まれる前記アナログ信号処理部の入力又は出力の少なくとも一つを接続することができる外部端子を含み、
前記半導体デバイスに含まれる前記アナログ信号処理部は、
前記ターゲットデバイスに含まれる前記アナログ信号処理部と同視できるアナログ特性を有し、
前記エミュレーション装置と前記半導体デバイスの前記外部端子が接続されることを特徴とするエミュレーションシステム。
【請求項２】
請求項１において、
前記半導体デバイスの前記外部端子は、
前記半導体デバイスに含まれる前記アナログ信号処理部の出力信号の少なくとも一つを外部に出力することができ、
前記エミュレーション装置は、
前記半導体デバイスの前記外部端子から出力される信号に基づいて処理を行うことを特徴とするエミュレーションシステム。
【請求項３】
請求項１又は２において、
前記半導体デバイスの前記外部端子は、
前記半導体デバイスに含まれる前記アナログ信号処理部の入力信号の少なくとも一つを外部から入力することができ、
前記エミュレーション装置は、
前記半導体デバイスの前記アナログ信号処理部に入力される信号の少なくとも一つを生成して前記半導体デバイスの前記外部端子に供給することを特徴とするエミュレーションシステム。
【請求項４】
請求項１乃至３において、
前記半導体デバイスは、
少なくとも一つのモード設定端子を含み、当該モード設定端子の状態に基づいて前記半導体デバイスに含まれる前記アナログ信号処理部の入力又は出力の少なくとも一つを前記外部端子に接続するか否かを選択することを特徴とするエミュレーションシステム。
【請求項５】
請求項１乃至４において、
前記エミュレーション装置は、デジタル信号処理部を含み、
当該デジタル信号処理部の一部又は全部が、プログラム可能な論理素子で構成される半導体デバイスによって実現されることを特徴とするエミュレーションシステム。
【請求項６】
アナログ信号処理部を含むターゲットデバイスの動作をエミュレートするエミュレーション方法であって、
前記ターゲットデバイスに含まれる前記アナログ信号処理部と同視できるアナログ特性を有するアナログ信号処理部と、当該アナログ信号処理部の出力信号の少なくとも一つを外部に出力することができる外部端子とを含む半導体デバイスが、前記半導体デバイスに含まれる前記アナログ信号処理部の出力信号を前記外部端子からエミュレーション装置に供給するステップと、
前記エミュレーション装置が、前記半導体デバイスが供給する前記出力信号に基づいて処理を行うステップとを含むことを特徴とするエミュレーション方法。
【請求項７】
アナログ信号処理部を含むターゲットデバイスの動作をエミュレートするエミュレーション方法であって、
エミュレーション装置が、前記ターゲットデバイスに含まれる前記アナログ信号処理部と同視できるアナログ特性を有するアナログ信号処理部と、当該アナログ信号処理部の入力信号の少なくとも一つを外部から入力することができる外部端子とを含む半導体デバイスの前記アナログ信号処理部に入力される信号の少なくとも一つを生成して前記半導体デバイスの前記外部端子に供給するステップと、
前記半導体デバイスに含まれる前記アナログ信号処理部が、前記入力信号に基づいて処理をするステップとを含むことを特徴とするエミュレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エミュレーションシステム、エミュレーション方法に関する。
【背景技術】
【０００２】
実際のデバイスに内蔵された周辺回路動作を阻止し、外部の他のデバイス（代替デバイス）に内蔵された周辺回路を接続して、ターゲットデバイスの動作をエミュレートする方法が存在する。このエミュレーション方法によれば、ＣＰＵは汎用のものを使用し、用途に応じて周辺デジタル回路を変更して様々なデバイスを開発するような場合に、ターゲットプログラムのデバッグを効率良く行うことができる。
【特許文献１】特許第３４５２１４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、代替デバイスがアナログ回路を含む場合、代替デバイスとターゲットデバイスのアナログ特性が異なるためにアナログ特性を考慮したエミュレーションをすることができなかった。そのため、ターゲットデバイスと代替デバイスのアナログ特性の相違に起因するターゲットプログラムのバグを発見することが困難であった。
【０００４】
また、ターゲットデバイスの試作品が完成した後にターゲットプログラムにアナログ特性に起因したバグが存在することが発見できたとしても、ブレークポイントの設定やステップ実行などのオンチップデバッグ機能がターゲットデバイスに組み込まれていなければ、ターゲットプログラムのデバッグが困難である。しかし、オンチップデバッグ機能をターゲットデバイスに組み込むと、ターゲットデバイスの規模が大きくなるため、コストの増加が避けられない。
【０００５】
本発明は、以上のような問題点に鑑みてなされたものであり、ターゲットデバイスがオンチップデバッグ機能を有することなく、アナログ特性を考慮してターゲットデバイスの動作をエミュレートすることができるエミュレーションシステムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
（１）本発明は、
アナログ信号処理部を含むターゲットデバイスの動作をエミュレートするエミュレーションシステムであって、
前記エミュレーションシステムは、
アナログ信号処理部を含む半導体デバイスと、エミュレーション装置とを含み、
前記半導体デバイスは、
前記半導体デバイスに含まれる前記アナログ信号処理部の入力又は出力の少なくとも一つを接続することができる外部端子を含み、
前記半導体デバイスに含まれる前記アナログ信号処理部は、
前記ターゲットデバイスに含まれる前記アナログ信号処理部と同視できるアナログ特性を有し、
前記エミュレーション装置と前記半導体デバイスの前記外部端子が接続されることを特徴とする。
【０００７】
本発明によれば、ターゲットデバイスに搭載されるアナログ信号処理部と同視できる特性を有するアナログ信号処理部とエミュレーション装置を接続した状態で、エミュレーション装置が動作するので、ターゲットデバイスのアナログ信号処理部の特性を考慮したエミュレーションシステムを提供することができる。すなわち、半導体デバイスの外部端子を介して、エミュレーション装置から半導体デバイスに含まれるアナログ信号処理部に入力信号を供給することもできるし、半導体デバイスに含まれるアナログ信号処理部の出力信号に基づいてエミュレーション装置が処理を行うこともできる。
【０００８】
そのため、ターゲットプログラムにアナログ信号処理部の特性に基づくバグがあっても発見することが可能になる。さらに、エミュレーション装置はブレークポイントの設定やステップ実行などの種々のデバッグ機能を有するので、ターゲットプログラムにアナログ信号処理部の特性に基づくバグがあっても、比較的容易にデバッグすることが可能となる。従って、ターゲットデバイスにオンチップデバッグ機能を搭載しなくても、デバッグの効率が向上する。
【０００９】
半導体デバイスは、ターゲットデバイスに含まれるアナログ信号処理部と同視できる特性を有するアナログ信号処理部を含む半導体デバイスであれば良く、例えば、ターゲットデバイスに含まれるアナログ信号処理部と同一の特性を有するアナログ処理部を有する既存の半導体デバイスでも良いし、ターゲットプログラムが実装されていない状態のターゲットデバイスそのものであっても良い。
【００１０】
アナログ信号処理部は、アナログ信号を処理する部分を含むものであれば良く、アナログ信号のみを処理するものであっても良いし、一部にデジタル信号を処理する部分を含んでいても良い。アナログ信号処理部には、例えば、ＬＣＤ（Liquid Crystal Display）ドライバ、ＡＤ変換器（アナログ／デジタル変換器）、ＤＡ変換器（デジタル／アナログ変換器）などが含まれる。
【００１１】
アナログ信号処理部の入力又は出力のみを外部端子を介してエミュレーション装置と接続できるようにしても良いし、当該アナログ信号処理部の入力及び出力の双方を外部端子を介してエミュレーション装置と接続できるようにしても良い。アナログ信号処理部の入力をエミュレーション装置と接続する場合は、当該アナログ信号処理部の入力の全て又は一部をそれぞれ異なる外部端子を介してエミュレーション装置と接続できるようにしても良く、アナログ信号処理部の出力をエミュレーション装置と接続する場合は、当該アナログ信号処理部の出力の全て又は一部をそれぞれ異なる外部端子を介してエミュレーション装置と接続できるようにしても良い。
【００１２】
アナログ信号処理部の入力又は出力の少なくとも一つを接続することができる外部端子とは、アナログ信号処理部の入力又は出力の少なくとも一つが常時接続されている専用の外部端子であっても良いし、通常動作時はアナログ信号処理部の入力又は出力以外の信号が接続されているが、所定のモード設定によりエミュレーションモードが選択された場合のみ、アナログ信号処理部の入力又は出力の少なくとも一つが接続されるように兼用される外部端子であっても良い。
【００１３】
（２）本発明のエミュレーションシステムは、
前記半導体デバイスの前記外部端子は、
前記半導体デバイスに含まれる前記アナログ信号処理部の出力信号の少なくとも一つを外部に出力することができ、
前記エミュレーション装置は、
前記半導体デバイスの前記外部端子から出力される信号に基づいて処理を行うことを特徴とする。
【００１４】
本発明によれば、半導体デバイスがアナログ信号処理部の出力信号を外部端子を介してエミュレーション装置に供給することができるので、エミュレーション装置は当該アナログ信号処理部の出力信号に基づいて処理を行うことができる。アナログ信号処理部の特性を考慮したターゲットデバイスの動作をエミュレートすることができるので、ターゲットプログラムにアナログ信号処理部の特性に基づくバグがあっても発見することが可能になる。
【００１５】
例えば、アナログ信号処理部がＡＤ変換器であれば、ＡＤ変換器が出力する多ビットのデジタル信号に基づいてＣＰＵが処理を行うことができるので、ＡＤ変換器の特性を考慮したターゲットデバイスの動作をエミュレートすることができる。そのため、ターゲットデバイスに組み込まれるＡＤ変換器の特性に起因するターゲットプログラムのバグを発見することができる。
【００１６】
（３）本発明のエミュレーションシステムは、
前記半導体デバイスの前記外部端子は、
前記半導体デバイスに含まれる前記アナログ信号処理部の入力信号の少なくとも一つを外部から入力することができ、
前記エミュレーション装置は、
前記半導体デバイスの前記アナログ信号処理部に入力される信号の少なくとも一つを生成して前記半導体デバイスの前記外部端子に供給することを特徴とする。
【００１７】
本発明によれば、エミュレーション装置が半導体デバイスのアナログ信号処理部への入力信号を生成し、外部端子を介して供給することができるので、アナログ信号処理部の特性を考慮したターゲットデバイスの動作をエミュレートすることができる。そのため、ターゲットプログラムにアナログ信号処理部の特性に基づくバグがあっても発見することが可能になる。
【００１８】
例えば、アナログ信号処理部がＬＣＤドライバであれば、エミュレーション装置からＬＣＤドライバに所定の制御信号を供給することにより、ＬＣＤドライバの特性を考慮したターゲットデバイスの動作をエミュレートすることができる。従って、ＬＣＤドライバの出力に接続されるＬＣＤパネルの表示状態をモニタすることによって、ターゲットデバイスの動作を製造前に確認することができる。そのため、ターゲットデバイスに組み込まれるＬＣＤドライバの特性に起因するターゲットプログラムのバグを発見することができる。
【００１９】
（４）本発明のエミュレーションシステムは、
前記半導体デバイスは、
少なくとも一つのモード設定端子を含み、当該モード設定端子の状態に基づいて前記半導体デバイスに含まれる前記アナログ信号処理部の入力又は出力の少なくとも一つを前記外部端子に接続するか否かを選択することを特徴とする。
【００２０】
本発明によれば、半導体デバイスにおいて、通常動作時はアナログ信号処理部の入力又は出力が外部端子に接続されていない場合であっても、モード設定端子を所定の状態に設定することによりアナログ信号処理部の入力又は出力が外部端子に接続される。すなわち、エミュレーション装置と半導体デバイスのアナログ信号処理部を外部端子により接続したエミュレーションシステムを提供することができるので、アナログ信号処理部の特性を考慮したターゲットデバイスの動作をエミュレートすることができる。そのため、ターゲットプログラムにアナログ信号処理部の特性に基づくバグがあっても発見することが可能になる。
【００２１】
例えば、半導体デバイスの外部端子の数が少ないために通常動作モードではアナログ信号処理部の出力を外部端子に接続することができない場合や、半導体デバイスの特性を劣化させないために通常動作モードではアナログ信号処理部の出力を外部端子に接続しないような場合がある。このような場合であっても、モード設定端子を所定の状態にすることにより、エミュレーションモードでは当該アナログ信号処理部の出力を外部端子に接続することができる。従って、エミュレーション装置と当該アナログ信号処理部を接続した状態で、ターゲットデバイスの動作をエミュレートすることができる。エミュレーションモードを選択した時に、半導体デバイスに含まれる当該アナログ信号処理部以外の信号処理部の全て又は一部の動作を停止するようにしても良いし、停止させないようにしても良い。
【００２２】
モード設定端子は一つであっても良いし、複数であっても良い。例えば、半導体デバイスが複数のアナログ信号処理部を有する場合に、複数のモード設定端子の入力の組み合わせにより、それぞれのアナログ信号処理部の入出力を外部端子に接続することや、一つのアナログ信号処理部の入力及び他のアナログ信号処理部の出力を外部端子に接続すること等を選択することができるようにしても良い。
【００２３】
（５）本発明のエミュレーションシステムは、
前記エミュレーション装置は、デジタル信号処理部を含み、
当該デジタル信号処理部の一部又は全部が、プログラム可能な論理素子で構成される半導体デバイスによって実現されることを特徴とする。
【００２４】
本発明によれば、エミュレーション装置はデジタル信号処理部を含むので、アナログ信号処理部だけでなくデジタル信号処理部も接続したエミュレーションシステムを提供することができる。例えば、外部インターフェース回路を制御して外部デバイスと通信するようなターゲットデバイスについて、当該外部インターフェース回路をエミュレーション装置に組み込むことにより、当該外部インターフェース回路の制御プログラムのデバッグを効率よく行うことができる。さらに、デジタル信号処理部とアナログ信号処理部のインターフェース回路を新規に設計する場合は、当該インターフェース回路と等価な論理回路をプログラム可能な論理素子で構成される半導体デバイスによって実現し、エミュレーション装置に組み込むことができる。そのため、ターゲットデバイスに含まれるアナログ信号処理部と同視できるアナログ特性を有する半導体デバイスとエミュレーション装置を接続することにより、アナログ特性を考慮したエミュレーションを実行することが可能となる。
【００２５】
また、本発明によれば、ターゲットデバイスのデジタル信号処理部の設計が終了した段階で、ターゲットデバイスの試作品が完成する前に、プログラム可能な論理素子で構成される半導体デバイスにより当該デジタル信号処理部の機能を実現することができるので、当該デジタル信号処理部の制御プログラムを用いてターゲットデバイスの動作をエミュレートすることできる。そのため、当該デジタル信号処理部の制御プログラムのデバッグを早期に開始することができる。
【００２６】
デジタル信号処理部の全部について、プログラム可能な論理素子で構成される半導体デバイスで実現しても良いし、一部のみプログラム可能な論理素子で構成される半導体デバイスで実現しても良い。例えば、ターゲットデバイスに含まれるＣＰＵが汎用のＣＰＵでない場合には、ＣＰＵを含めた全てのデジタル処理部をプログラム可能な論理素子で構成される半導体デバイスで実現してエミュレーション装置を構成しても良い。また、ターゲットデバイスに含まれるＣＰＵが汎用のＣＰＵである場合には、ＣＰＵ以外の全てのデジタル処理部をプログラム可能な論理素子で構成される半導体デバイスで実現してエミュレーション装置を構成しても良い。
【００２７】
プログラム可能な論理素子で構成される半導体デバイスは、外部からの制御によって任意の論理回路を構成することができる半導体デバイスであれば良く、例えば、ＦＰＧＡ（Field Programmable Gate Array）であっても良いし、ＣＰＬＤ（Complex Programmable Logic Device）であっても良い。
【００２８】
（６）本発明は、
アナログ信号処理部を含むターゲットデバイスの動作をエミュレートするエミュレーション方法であって、
前記ターゲットデバイスに含まれる前記アナログ信号処理部と同視できるアナログ特性を有するアナログ信号処理部と、当該アナログ信号処理部の出力信号の少なくとも一つを外部に出力することができる外部端子とを含む半導体デバイスが、前記半導体デバイスに含まれる前記アナログ信号処理部の出力信号を前記外部端子からエミュレーション装置に供給するステップと、
前記エミュレーション装置が、前記半導体デバイスが供給する前記出力信号に基づいて処理を行うステップとを含むことを特徴とする。
【００２９】
本発明によれば、半導体デバイスがアナログ信号処理部の出力信号を外部端子を介してエミュレーション装置に供給することができるので、エミュレーション装置は当該アナログ信号処理部の出力信号に基づいて処理を行うことができる。アナログ信号処理部の特性を考慮したターゲットデバイスの動作をエミュレートすることができるので、ターゲットプログラムにアナログ信号処理部の特性に基づくバグがあっても発見することが可能になる。
【００３０】
半導体デバイスにおいて、通常動作時はアナログ信号処理部の出力が外部端子に接続されていない場合であっても、モード設定端子を所定の状態に設定することによりアナログ信号処理部の出力が外部端子に接続されるようにしても良い。例えば、半導体デバイスの外部端子の数が少ないために通常動作モードではアナログ信号処理部の出力を外部端子に接続することができない場合や、半導体デバイスの特性を劣化させないために通常動作モードではアナログ信号処理部の出力を外部端子に接続しないような場合がある。このような場合であっても、モード設定端子を所定の状態にすることにより、エミュレーションモードでは当該アナログ信号処理部の出力を外部端子に接続するようにしても良い。エミュレーションモードを選択した時に、半導体デバイスに含まれるアナログ信号処理部以外の信号処理部の全て又は一部の動作を停止するようにしても良いし、停止させないようにしても良い。
【００３１】
モード設定端子は一つであっても良いし、複数であっても良い。例えば、半導体デバイスが複数のアナログ信号処理部を有する場合に、複数のモード設定端子の入力の組み合わせにより、それぞれのアナログ信号処理部の出力を外部端子に接続するようにしても良い。
【００３２】
また、ターゲットデバイスがデジタル信号処理部を含む場合には、エミュレーション装置にも当該デジタル信号処理部と同一の論理のデジタル信号処理部を含ませることにより、アナログ信号処理部だけでなくデジタル信号処理部も接続したエミュレーション方法を提供することもできる。例えば、外部インターフェース回路を制御して外部デバイスと通信するようなターゲットデバイスについて、当該外部インターフェース回路をエミュレーション装置に組み込むことにより、当該外部インターフェース回路の制御プログラムのデバッグを効率よく行うことができる。さらに、デジタル信号処理部とアナログ信号処理部のインターフェース回路を新規に設計する場合は、当該インターフェース回路と等価な論理回路をプログラム可能な論理素子で構成される半導体デバイスによって実現し、エミュレーション装置に組み込むことができる。そのため、ターゲットデバイスに含まれるアナログ信号処理部と同視できるアナログ特性を有する半導体デバイスとエミュレーション装置を接続することにより、アナログ特性を考慮したエミュレーションを実行することが可能となる。
【００３３】
ターゲットデバイスのデジタル信号処理部の設計が終了した段階で、ターゲットデバイスの試作品が完成する前に、プログラム可能な論理素子で構成される半導体デバイスにより当該デジタル信号処理部の機能を実現することができるので、当該デジタル信号処理部の制御プログラムを用いてターゲットデバイスの動作をエミュレートすることできる。そのため、制御プログラムのデバッグを早期に開始することができる。
【００３４】
（７）本発明は、
アナログ信号処理部を含むターゲットデバイスの動作をエミュレートするエミュレーション方法であって、
エミュレーション装置が、前記ターゲットデバイスに含まれる前記アナログ信号処理部と同視できるアナログ特性を有するアナログ信号処理部と、当該アナログ信号処理部の入力信号の少なくとも一つを外部から入力することができる外部端子とを含む半導体デバイスの前記アナログ信号処理部に入力される信号の少なくとも一つを生成して前記半導体デバイスの前記外部端子に供給するステップと、
前記半導体デバイスに含まれる前記アナログ信号処理部が、前記入力信号に基づいて処理をするステップとを含むことを特徴とする。
【００３５】
本発明によれば、エミュレーション装置が半導体デバイスに含まれるアナログ信号処理部の入力信号を生成し、外部端子を介して供給することができるので、半導体デバイスに含まれるアナログ信号処理部は当該入力信号に基づいて処理を行うことができる。アナログ信号処理部の特性を考慮したターゲットデバイスの動作をエミュレートすることができるので、ターゲットプログラムにアナログ信号処理部の特性に基づくバグがあっても発見することが可能になる。
【００３６】
半導体デバイスにおいて、通常動作時はアナログ信号処理部の入力が外部端子に接続されていない場合であっても、モード設定端子を所定の状態に設定することによりアナログ信号処理部の入力が外部端子に接続されるようにしても良い。例えば、半導体デバイスの外部端子の数が少ないために通常動作モードではアナログ信号処理部の入力を外部端子に接続することができない場合や、半導体デバイスの特性を劣化させないために通常動作モードではアナログ信号処理部の入力を外部端子に接続しないような場合がある。このような場合であっても、モード設定端子を所定の状態にすることにより、エミュレーションモードでは当該アナログ信号処理部の入力を外部端子に接続するようにしても良い。エミュレーションモードを選択した時に、半導体デバイスに含まれるアナログ信号処理部以外の信号処理部の全て又は一部の動作を停止するようにしても良いし、停止させないようにしても良い。
【００３７】
モード設定端子は一つであっても良いし、複数であっても良い。例えば、半導体デバイスが複数のアナログ信号処理部を有する場合に、複数のモード設定端子の入力の組み合わせにより、それぞれのアナログ信号処理部の入力を外部端子に接続するようにしても良い。
【００３８】
また、ターゲットデバイスがデジタル信号処理部を含む場合には、エミュレーション装置にも当該デジタル信号処理部と同一の論理のデジタル信号処理部を含ませることにより、アナログ信号処理部だけでなくデジタル信号処理部も接続したエミュレーション方法を提供することもできる。例えば、外部インターフェース回路を制御して外部デバイスと通信するようなターゲットデバイスについて、当該外部インターフェース回路をエミュレーション装置に組み込むことにより、当該外部インターフェース回路の制御プログラムのデバッグを効率よく行うことができる。さらに、デジタル信号処理部とアナログ信号処理部のインターフェース回路を新規に設計する場合は、当該インターフェース回路と等価な論理回路をプログラム可能な論理素子で構成される半導体デバイスによって実現し、エミュレーション装置に組み込むことができる。そのため、ターゲットデバイスに含まれるアナログ信号処理部と同視できるアナログ特性を有する半導体デバイスとエミュレーション装置を接続することにより、アナログ特性を考慮したエミュレーションを実行することが可能となる。
【００３９】
ターゲットデバイスのデジタル信号処理部の設計が終了した段階で、ターゲットデバイスの試作品が完成する前に、プログラム可能な論理素子で構成される半導体デバイスにより当該デジタル信号処理部の機能を実現することができるので、当該デジタル信号処理部の制御プログラムを用いてターゲットデバイスの動作をエミュレートすることできる。そのため、制御プログラムのデバッグを早期に開始することができる。
【発明を実施するための最良の形態】
【００４０】
以下、本発明の好適な実施形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成の全てが本発明の必須構成要件であるとは限らない。
【００４１】
１．エミュレーションシステム
図１は、本実施形態のエミュレーションシステムの利用形態を示した図である。
【００４２】
本実施形態のエミュレーションシステムは、ＰＣ（パーソナルコンピュータ）１０、エミュレーション装置２０、アナログボード３０で構成される。エミュレーション装置２０は、ＣＰＵ及びその他の周辺デジタルブロック、メモリなどを含む。アナログボード３０にはアナログ信号処理部を含む半導体デバイスなどが実装される。ＰＣ１０とエミュレーション装置２０はケーブルで接続され、例えば、ＵＳＢ（Universal Serial Bus）インターフェースなどによるデータ通信が行われる。
【００４３】
エミュレーションが実行される前に、エミュレーション装置２０に含まれるメモリには、ＰＣ１０からターゲットプログラムがロードされる。エミュレーション装置とアナログボードがケーブルで接続され、ＣＰＵ、周辺デジタルブロック、ターゲットプログラムが格納されたメモリ、アナログ信号処理部などによりターゲットデバイスのアナログ信号処理部の特性を考慮したエミュレーションシステムが構成される。
【００４４】
図２は本実施形態のエミュレーションシステムの構成について説明するための図である。
【００４５】
エミュレーションシステム１００は、ＰＣ（パーソナルコンピュータ）１０、エミュレーション装置２０、実デバイス３１０（アナログ信号処理部を含む半導体デバイスの一例）が搭載されたアナログボード３０により構成される。
【００４６】
ＰＣ１０とエミュレーション装置２０はＵＳＢケーブルで接続され、ＵＳＢコントローラ２１０による制御の下、ＰＣ１０とエミュレーション装置２０の間でエミュレーションに必要なデータ通信が行われる。なお、ＰＣ１０とエミュレーション装置２０の間でのデータ通信はＵＳＢインターフェースで行う必要はなく、他のインターフェースを使用しても良い。
【００４７】
エミュレーション装置２０は、エミュレーションメモリ２４０、ＣＰＵ２３０、周辺デジタルブロック２５０を含み、さらに、ＵＳＢコントローラ２１０、エミュレーション制御ブロック２２０を含む。
【００４８】
ＣＰＵ２３０と周辺デジタルブロック２５０はデジタル信号処理部であり、周辺デジタルブロック２５０には、例えば、外部デジタルインターフェース回路、タイマ、各種制御レジスタなどが含まれる。周辺デジタルブロック２５０はプログラム可能な論理素子で構成される半導体デバイスであるＦＰＧＡによって実現される。ＣＰＵ２３０は、一般的には、汎用のＣＰＵデバイスで実現されるが、ＦＰＧＡによって実現しても良い。
【００４９】
エミュレーションメモリ２４０は、書き換え可能なメモリであればよく、揮発性のＲＡＭ（Random Access Memory）であっても良いし、フラッシュメモリ、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read Only Memory）などの不揮発性メモリであっても良い。エミュレーションメモリ２４０にはデバッグの対象となるターゲットプログラムが格納される。エミュレーションの実行前にＰＣ１０からエミュレーション装置２０にターゲットプログラムを送信して、ターゲットプログラムをエミュレーションメモリ２４０に格納しても良いし、ターゲットプログラムが格納されたメモリをエミュレーション装置に実装しても良い。
【００５０】
ＣＰＵは２３０、ターゲットデバイスに組み込まれるＣＰＵと同一のＣＰＵであっても良いし、同一の動作をする他のＣＰＵであっても良い。ＣＰＵ２３０は、エミュレーションメモリ２４０に格納されたターゲットプログラムの各命令を実行する。例えば、ＣＰＵ２３０は、周辺デジタルブロック２５０に含まれる制御レジスタ（図示せず）に所定の設定値を書き込む命令を実行する。これにより、エミュレーション装置２０に接続されるユーザターゲット４０を制御することができる。ユーザターゲット４０には、例えば、スイッチやブザーなどの外部部品が含まれる。
【００５１】
また、ＣＰＵ２３０は、周辺デジタルブロック２５０に含まれる制御レジスタに所定の設定値を書き込む命令を実行することにより、周辺デジタルブロック２５０を介してＬＣＤドライバブロック（アナログブロック）３１４を制御しても良いし、ＣＰＵ２３０がＬＣＤドライバブロック３１４を制御する信号を出力しても良い。
【００５２】
エミュレーション制御ブロック２２０は、ＰＣ１０からの命令に従って、例えば、エミュレーションメモリ２４０に格納された命令を１ステップ実行するたびに停止したり（ステップ実行）、ＰＣ１０が設定したブレークポイントで命令の実行を停止するなどのデバッグ機能の実現に必要な制御を行う。
【００５３】
アナログボード３０は、実デバイス３１０、ＬＣＤパネル３２０、フラッシュメモリ３３０で構成される。
【００５４】
実デバイス３１０は、ＬＣＤドライバブロック（アナログブロック、アナログ信号処理部の一例）３１４、モード設定端子３１６、アナログ信号処理部の入力又は出力の少なくとも一つを接続することができる外部端子（図示せず）を含み、さらに、ＣＰＵブロック３１２、周辺デジタルブロック（図示せず）、内蔵ＲＯＭ（図示せず）などを含む。ＬＣＤドライバブロック３１４は、ＬＣＤパネル３２０の表示を制御するための信号を出力する。
【００５５】
実デバイス３１０は、ＬＣＤドライバブロック（アナログブロック）３１４の特性が、ターゲットデバイスに含まれるＬＣＤドライバブロックの特性と同視できるような半導体デバイスであれば良い。例えば、実デバイス３１０は、内蔵ＲＯＭにターゲットプログラムが格納されていない点を除いてターゲットデバイスと同一の半導体デバイスでも良いし、先行開発された既存の他の半導体デバイスでも良い。実デバイス３１０の内蔵ＲＯＭには、ターゲットプログラムが書き込まれていても良いし、ターゲットプログラムの一部のみ書き込まれていても良いし、何も書き込まれていなくても良い。
【００５６】
実デバイス３１０は、モード設定端子３１６がＨレベルに設定された時は通常動作モードになり、モード設定端子３１６がＬレベルに設定された時はエミュレーションモードになる。モード設定端子３１６の極性により、通常動作モードとエミュレーションモードの選択をすることができれば良く、モード設定端子３１６がＬレベルに設定された時に通常動作モードになり、Ｈレベルに設定された時にエミュレーションモードになるようにしても良い。通常動作モードでは、実デバイス３１０の内部においてＣＰＵブロック３１２からＬＣＤドライバブロック（アナログブロック）３１４に制御信号が供給される。一方、エミュレーションモードでは、エミュレーション装置２０から実デバイス３１０の所定の外部端子（図示せず）を経由してＬＣＤドライバブロック（アナログブロック）３１４に制御信号が供給される。本実施の形態のエミュレーションシステムでは、モード設定端子３１６はＬレベルに固定されており、常にエミュレーションモードになっているので、ＬＣＤドライバブロック（アナログブロック）３１４は、所定の外部入力端子からの制御信号によって制御される。
【００５７】
一般に、実デバイス３１０は、コストや実装面積の削減のために必要最小限の端子数を備えるパッケージに封入されるため、パッケージの多くの外部端子は通常動作時に外部デバイスとの間で必要となる信号を入出力するために使用される。そのため、通常動作モードでは、実デバイス３１０の内部のデジタルブロックとアナログブロックのインターフェース信号は外部端子と接続されていない場合が多い。外部端子の数が少ない場合は、通常動作モード時とエミュレーションモード時に異なる信号が接続されるようにして外部端子を兼用しても良い。外部端子の数が多い場合は、アナログブロックの入出力信号を専用に接続する外部端子を使用しても良く、その場合は、モード設定端子３１６は不要である。
【００５８】
モード設定端子３１６の極性によってＬＣＤドライバブロック（アナログブロック）３１４の入力を切り替えるだけの場合、モード設定端子は１つで良いが、アナログブロックが複数存在するような場合は、各アナログブロックの入力や出力を選択して外部端子と接続するために複数のモード設定端子を備えても良い。
【００５９】
本実施の形態のエミュレーションシステムでは、外部デバイスとしてＬＣＤパネル３２０がアナログボード３０に組み込まれているので、アナログ信号処理部としてＬＣＤドライバブロック３１４が使用されているが、本実施の形態におけるアナログ信号処理部は周辺デバイスの種類に応じて、例えば、ＡＤ（アナログ／デジタル）変換器、ＤＡ（デジタル／アナログ）変換器などであってもよい。
【００６０】
図３は本実施の形態のエミュレーションシステムに含まれる半導体デバイス（実デバイス）のブロック図の一例である。
【００６１】
実デバイス３１０は、アナログブロック（ＬＣＤドライバ、Ａ／Ｄコンバータなど、アナログ信号処理部の一例）３１４、モード設定端子３１６、Ｉ／Ｏポート３１８を含み、さらに、ＣＰＵ３１２、ＲＯＭ（Read Only Memory）４１０、ＲＡＭ（Random Access Memory）４２０、タイマ４３０、電源回路４４０、発振回路４５０、ＳＩＯ（Serial I/O）インターフェース回路４６０、汎用Ｉ／Ｏ回路４７０、スイッチ回路４８０、および、これらのブロックを相互に接続する内部信号線４９０を含む。
【００６２】
アナログブロック３１４は、ターゲットデバイスのアナログ信号処理部の特性と同視できる特性を有するアナログ信号処理部であれば良い。
【００６３】
Ｉ／Ｏポート３１８は、アナログブロック３１４の入力又は出力の少なくとも一つを接続することができる外部端子として機能する。アナログブロック３１４の出力信号の少なくとも一つをＩ／Ｏポート３１８に出力することができるようにしても良いし、アナログブロック３１４の入力信号の少なくとも一つをＩ／Ｏポート３１８から入力することができるようにしても良い。また、アナログブロック３１４の入力と出力の双方を複数のＩ／Ｏポート３１８にそれぞれ接続することができるようにしても良い。
【００６４】
タイマ４３０およびＳＩＯインターフェース回路４６０はデジタル信号処理部である。本実施の形態のエミュレーションシステムにおいては、例えば、タイマ４３０およびＳＩＯインターフェース回路４６０と等価の論理回路が、周辺デジタルブロック２５０としてＦＰＧＡで実現される。
【００６５】
ＲＯＭ４１０には、ターゲットプログラムが書き込まれていても良いし、ターゲットプログラムの一部のみ書き込まれていても良いし、何も書き込まれていなくても良い。
【００６６】
モード設定端子３１６は、実デバイス３１０の動作モードが通常動作モードになるか、エミュレーションモードになるかを選択するために使用される。
【００６７】
例えば、モード設定端子３１６がＨレベルに設定された時は実デバイス３１０の動作モードは通常動作モードになり、Ｌレベルに設定された時はエミュレーションモードになるようにしても良いし、モード設定端子３１６がＬレベルに設定された時に通常動作モードになり、Ｈレベルに設定された時にエミュレーションモードになるようにしても良い。
【００６８】
通常動作モードが選択された場合は、Ｉ／Ｏポート３１８が汎用Ｉ／Ｏ回路４７０に接続されるようにスイッチ回路４８０が動作する。一方、エミュレーションモードが選択された場合は、Ｉ／Ｏポート３１８がアナログブロック３１４の入力や出力に接続されるようにスイッチ回路４８０が動作する。エミュレーションモードが選択された場合は、Ｉ／Ｏポート３１８を介して、エミュレーション装置２０からアナログブロック３１４に入力信号が供給することもできるし、アナログブロック３１４の出力をエミュレーション装置２０に供給することもできる。そのため、本実施の形態のエミュレーションシステムは、ターゲットデバイスのアナログ信号処理部の特性を考慮したエミュレーション環境を提供することができる。
【００６９】
通常動作モード時は、ＣＰＵ３１２はＲＯＭ４１０に格納されたプログラムの各命令を実行し、エミュレーションモード時は、ＣＰＵ３１０、ＲＯＭ４１０、ＲＡＭ４２０、タイマ４３０、ＳＩＯインターフェース回路４６０、汎用Ｉ／Ｏ回路４７０は動作を停止しても良い。また、アナログブロックがクロックを必要としないの場合は、発振回路４５０の動作も停止しても良い。
【００７０】
実デバイス３１０は、アナログブロック３１４の特性がターゲットデバイスのアナログ信号処理部の特性と同視できるデバイスであれば良く、ＲＯＭ４１０を除いてターゲットデバイスと同一の半導体デバイスであっても良い。
【００７１】
本実施の形態のエミュレーションシステムによれば、ターゲットデバイスの開発段階に応じて、適切なエミュレーション環境が提供できる。
【００７２】
ターゲットデバイスに搭載されるアナログ信号処理部とその特性において同視できる半導体デバイスが存在すれば、実デバイス３１０として当該半導体デバイスを使用することができるので、ターゲットデバイスの試作品が完成する前にターゲットプログラムの完全なデバッグを完了することができる。この場合は、ターゲットプログラムの開発期間の削減だけでなく、ターゲットデバイスの製造に使用されるマスクの修正に伴うコストを削減することもできる。
【００７３】
一方、ターゲットデバイスに搭載されるアナログ信号処理部とその特性において同視できる半導体デバイスが存在しない場合、ターゲットデバイスの試作品が完成するまでは、ターゲットデバイスに搭載されるアナログ信号処理部の特性を考慮したエミュレーション環境を提供することはできない。そのため、ターゲットプログラムの中でアナログ信号処理部の特性に依存して異なる処理が行われるような場合には、ターゲットプログラムの完全なデバッグができない。しかし、ターゲットプログラムの中でもアナログ信号処理部の特性の影響を受けない部分、例えば、ＣＰＵ内部の演算処理やデジタル周辺ブロックのみの制御を行う部分については、ターゲットデバイスに搭載されるＣＰＵ及びデジタル周辺ブロックの設計が終了した時点でデバッグが可能である。
【００７４】
複数の種類のデバイスに同一のＣＰＵが搭載されるのであれば、ＣＰＵ２３０として汎用ＣＰＵデバイスを用意しておくことができる。周辺デジタルブロック２５０に関しては、各製品ごとに異なる設計がされるため、汎用デバイスを用意することは現実的ではない。そこで、周辺デジタルブロック２５０はプログラム可能な論理素子で構成される半導体デバイス（例えば、ＦＰＧＡ）で実現するのが効率的である。そのため、本実施の形態のエミュレーション装置においては、周辺デジタルブロック２５０のみをＦＰＧＡで実現する構成になっているが、ＣＰＵを新規に設計する場合など、汎用ＣＰＵデバイスが存在しないなどの事情がある場合には、ＣＰＵ２３０と周辺デジタルブロック２５０からなるすべてのデジタル信号処理部をＦＰＧＡで実現することもできる。これにより、ターゲットデバイスの試作品が完成する前に、ターゲットプログラムの初期デバッグを開始することができる。
【００７５】
ターゲットプログラムの初期デバッグを行っている間に、並行してアナログ信号処理部の設計を行うことができる。ターゲットプログラムの初期デバッグが終了する前であっても、アナログ信号処理部やその他の部分の設計が終了すればターゲットデバイスの試作品を製造することができる。
【００７６】
本実施の形態におけるエミュレーションシステムにおいて、実デバイス３１０としてこの試作品を使用することができる。ターゲットプログラムのデバッグが完了する前なので、この試作品のＲＯＭにはデバッグが終了している一部のプログラムのみ格納しても良いし、何も格納しなくても良い。実デバイス３１０としてこの試作品を使用することにより、ターゲットデバイスのアナログ信号処理部の特性に依存して処理内容が異なるプログラムのデバッグも可能になる。
【００７７】
ターゲットデバイスが書き換え可能な不揮発性メモリを有する場合には、量産品の出荷時に、当該不揮発性メモリにデバッグ済みのターゲットプログラムを書き込むことができる。ターゲットプログラムの規模が小さい場合には、一般に、ターゲットデバイスの中にマスクＲＯＭとしてターゲットプログラムを組み込むことが行われる。この場合は、ターゲットプログラムのデバッグ後に、配線層のマスクのみを変更することにより、マスクＲＯＭとしてターゲットプログラムを実装したターゲットデバイスの量産を開始することができる。
【００７８】
すなわち、本実施の形態のエミュレーションシステムによれば、デジタル信号処理部の設計が終了した時点でターゲットプログラムのデバッグを開始することができるだけでなく、ターゲットデバイスの試作品が完成した後はアナログ信号処理部の特性を考慮したエミュレーション環境を提供することができる。ターゲットデバイスがアナログ信号処理部を含む場合であっても、エミュレーション装置２０に搭載されるデバッグ機能を使用すれば、ターゲットプログラムのデバッグを効率よく行うことができる。そのため、ターゲットプログラムの完成を早めることができ、プログラムのバグの修正のために生じるマスク変更に伴うコストやターゲットデバイスの開発工数を削減することができる。
【００７９】
ターゲットデバイスの試作品に、外部メモリに格納されたプログラムを実行する機能がある場合には、実デバイス３１０のモード設定端子をＨレベルに固定して通常動作モードにし、外部フラッシュメモリ３３０に格納されたターゲットプログラムを実行することができる。すなわち、ターゲットデバイスの試作品が完成すれば、アナログボード３０単体でも簡易なエミュレーションの実行やデモを行うことができる。
【００８０】
また、本実施の形態のエミュレーションシステムによれば、ターゲットプログラムの初期デバッグ時にデジタル周辺ブロック２５０をＦＰＧＡで実現することにより、ターゲットデバイスの試作品のマスク製造前に、デジタル周辺ブロックの論理設計ミスなどを発見することができる場合もある。その場合は、デジタル周辺ブロックの論理修正を試作品に反映することができるので、余分なマスク修正に伴うコストの増加を防ぐことができる。
【００８１】
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
【００８２】
例えば、モード設定端子３１６を複数設けてモード設定端子の設定の組み合わせにより、アナログブロック３１４の複数の入出力信号から一組を選択してＩ／Ｏポート３１８に接続するように複数のスイッチ回路を組み合わせて複数のエミュレーションモードを実現することも可能である。
【図面の簡単な説明】
【００８３】
【図１】本実施形態のエミュレーションシステムの利用形態を示す図。
【図２】本実施形態のエミュレーションシステムの構成について説明するための図。
【図３】本実施の形態の半導体デバイス（実デバイス）のブロック図。
【符号の説明】
【００８４】
１０  ＰＣ（パーソナルコンピュータ）、２０  エミュレーション装置、３０  アナログボード、４０  ユーザターゲット（外部部品）、１００  エミュレーションシステム、２１０  ＵＳＢコントローラ、２２０  エミュレーション制御ブロック、２３０  ＣＰＵ  、２４０  エミュレーションメモリ、２５０  周辺デジタルブロック、３１０  実デバイス、３１２  ＣＰＵブロック、３１４  ＬＣＤドライバブロック（アナログブロック）、３１６  モード設定端子、３１８  Ｉ／Ｏポート、３２０  ＬＣＤパネル、３３０  フラッシュメモリ、４１０  ＲＯＭ、４２０  ＲＡＭ、４３０  タイマ、４４０  電源回路、４５０  発振回路、４６０  ＳＩＯインターフェース回路、４７０  汎用Ｉ／Ｏ回路、４８０  スイッチ回路、４９０  内部信号線
【図１】
2008077176.tif 000003
【図２】
2008077176.tif 000004
【図３】
2008077176.tif 000005