以下,図面を用いて本発明の実施の形態について説明する。
図1は,回路基板の設計支援装置の構成を示す図である。図1の設計支援装置10は,CPU11と,ROM12と,RAM13と,マウスやキーボード等の入力装置14と,ディスプレイ等の出力装置15と,バス16とを有する。
ROM12は,後述する設計支援プログラム20等の各種プログラムやプログラムの実行に必要なデータを記憶する。RAM13は,CPU11がROM12からロードした各種プログラムや一時的なデータ等を記憶する。
CPU11は,ROM12に記憶された各種プログラムを実行し,設計支援装置10の制御を行う。例えば,CPU11は設計支援プログラムを実行して,入力装置14を介して入力された操作を検出する操作検出手段21や,予め定義された要素を格納する要素定義情報テーブル23から要素を読み出して回路基板の設計データを新規に生成,又は設計情報テーブル24から設計データを読み出して設計データを更新し設計情報テーブル24に記憶する設計データ生成手段22,コマンドやプログラム関数の実行履歴をログファイル28に出力するログファイル出力手段25を実現する。なお,操作とは,後述の出力装置15に表示される画面100上で,要素やコマンドの選択,文字の入力又は表示ボタンの押下等を行うために設計者が入力装置14に加えた動作をいう。また,要素定義情報テーブル23に格納されている要素とは,コンデンサ,抵抗,集積回路,信号線,信号結合子,電源,図形,テキストボックス等の回路基板の設計データに含まれる要素である。
図2は,設計支援プログラムの画面の一例を示す図である。CPU11は,設計者による入力装置14の操作に応じて設計支援プログラム20を起動すると,出力装置15に画面100を表示する。
画面100は,コマンドを表示するメニュー101と,要素毎に設計図表示部104への表示・非表示及び選択の可否を設定可能にする要素制御部102と,設計情報テーブル24に格納されている設計データを表示する基板選択部103と,作業中の設計データを表示する設計図表示部104と,要素定義情報テーブル23から部品を読み出して部品の選択を可能とする部品選択部105と,コマンドの実行結果等を表示するメッセージ部106とを有する。
コマンドとは,要素の配置・配線,要素の移動・削除,要素の属性変更,制約条件の設定等,設計者が設計データを作成するのに必要な機能を設計支援プログラムに実行させる命令である。
設計者は,入力装置14を操作してメニュー101からコマンドを選択して実行し,設計図表示部104上に部品配置や配線等を行い,設計データを作成する。また,後述するように,設計者は,設計図表示部104の設計データが有する要素を選択し,選択した要素に対して入力装置14のマウスを操作してコマンドを選択することもできる。そして,設計者が「保存」コマンドを選択することで,設計図表示部104の設計データが設計情報テーブル24に記憶される。
図3は,ログファイルの一例を示す図である。設計者がコマンドを選択すると,コマンドに対応するプログラム関数が実行される。選択されたコマンド及びそれにより実行されたプログラム関数の履歴は,それぞれログファイル26のコマンド履歴部110,関数履歴部111に出力される。
CPU11は,設計者によるコマンドの選択操作に応じてコマンドを実行するとコマンド履歴部110にそのコマンド名称を出力し,そのコマンドを正常終了するとコマンド履歴部110にコマンド完了の旨を出力する。
例えば,図3のコマンド履歴部110には,CPU11が,部品を配置するための「部品配置」コマンド,部品の名称等の属性を変更するための「部品属性変更」コマンド,部品を任意の座標に移動させるための「移動」コマンドを実行して正常終了し,その後に,集積回路のピンの配置や属性等を変更するための「FPGAエディター」コマンドを実行したことが示されている。また,図3のコマンド履歴部110には,「FPGAエディター」コマンドが完了した旨の出力はされていないため,ログファイル26は,「FPGAエディター」コマンドの実行中である場合,又は「FPGAエディター」コマンドの実行中の途中で異常終了した場合のいずれかであることを示している。
CPU11はコマンドを実行すると,コマンドに対応して実行したプログラム関数の名称と,そのプログラム関数を有するモジュールのパスとを関数履歴部111に出力する。例えば,図3の関数履歴部111には,実行されたプログラム関数の名称とそのプログラム関数を有するモジュールのパスとが下から順に出力されている。したがって,最後に実行されたプログラム関数は,関数履歴部111の最上段に出力されているように,パス「C:¥Programfiles¥BP」にあるモジュール「FpgaEditor.dll」のプログラム関数「ConnectLineLink」である。
通常,設計者は,設計支援プログラムの開発においては予期されていなかったデータが取り込まれた等により設計データの作成中にCPU11が異常終了すると,CPU11が異常終了までに実行したコマンドやプログラム関数の履歴が出力されているログファイル26を,設計支援プログラムの開発者へ提供し,原因の解明等の対応を依頼する。しかし,1つのプログラム関数が複数のコマンドや操作に対応する場合があるため,開発者は,実行されたプログラム関数の履歴が出力されたログファイルを解析しても,異常終了時に設計者が行った操作を具体的に把握できない場合がある。そのような場合には,開発者は設計者に異常終了時の操作内容を確認しながら作業する必要があるため,迅速な対応が難しい。
例えば,「FPGAエディター」コマンドの実行途中で異常終了が発生すると,図3のようにログファイル26が出力される。開発者は,関数履歴部111の最上段を確認することでパス「C:¥Programfiles¥BP」にあるモジュール「FpgaEditor.dll」のプログラム関数「ConnectLineLink」の実行中に異常終了が発生したことを認識することができる。
しかし,ログファイル26からでは,設計者が作成していた設計データが有する要素のうち,どの要素に対して「FPGAエディター」コマンドが実行されたのかは不明である。また,「FPGAエディター」コマンドでは,集積回路のピンの配置変更や属性変更等の操作をすることが可能であり,いずれの操作についてもモジュール「FpgaEditor.dll」のプログラム関数「ConnectLineLink」を使用するため,設計者が異常終了直前にどのような操作を行っていたのかも不明である。
また,開発者は異常終了した「FPGAエディター」コマンドに対して解析を行うため,正常に終了している「部品配置」コマンド,「部品属性変更」コマンド及び「移動」コマンドに対応するプログラム関数の履歴は不要である。
そこで,後述するように,本実施の形態における設計支援プログラムは,設計者による操作の履歴(操作情報),コマンドの実行対象である要素(要素情報),及び実行されたプログラム関数の履歴を,解析に必要だけログファイルに出力することで,開発者がログファイルに基づいて異常終了時の状況を迅速に把握して対応できることを可能とする。
図4は,本実施の形態における回路基板の設計支援装置の構成を示す図である。図4では,図1の設計支援装置10と共通する部分については同じ符号がふされている。図4の設計支援装置30は,CPU11と,ROM12と,RAM13と,マウスやキーボード等の入力装置14と,ディスプレイ等の出力装置15と,バス16とを有する。CPU11は,ROM12が記憶する設計支援プログラム40を実行して,操作検出手段21と,設計データ生成手段22と,ログデータ生成手段41とを実現する。
ログデータ生成手段41は,設計支援プログラムの起動後に操作検出手段21により検出された操作情報を操作情報テーブル47(操作情報記憶部)に記憶する操作情報記憶手段42と,コマンドの実行対象である要素を要素情報テーブル48(要素情報記憶部)に記憶する要素情報記憶手段43と,設計支援プログラムの起動後実行されたプログラム関数の履歴を関数履歴テーブル49(関数履歴記憶部)に記憶する実行関数記憶手段44と,設計データ生成手段22が異常終了を検出すると操作情報テーブル47,要素情報テーブル48及び関数履歴テーブル49をログファイル50に出力するログ出力手段45と,実行されたコマンドの名称をログファイル50に出力するコマンド履歴出力手段46とを含む。
CPU11は,設計者による入力装置14の操作に応じて設計支援装置プログラム40を起動すると,出力装置15のディスプレイに図2の画面100を表示する。設計者は,入力装置14を操作して,画面100を介してコマンドを実行し,設計データを作成する。
図5は,本実施の形態における設計支援プログラムの正常動作時のログデータ生成フローチャートである。
設計支援プログラム40が起動されると,まず,ログデータ生成手段41はログファイル50を生成する(S11)。このときログファイル50には何も履歴が出力されていない。次に,ログデータ生成手段41は,操作情報テーブル47と,要素情報テーブル48と,関数履歴テーブル49とを生成し(S12),初期化を行う(S13,初期化工程)。
そして,ログデータ生成手段41は,操作検出手段21が検出した操作情報を取得し,操作情報テーブル47への記憶を開始する(S14,操作情報記憶工程)。それとともに,関数履歴テーブル49に実行されたプログラム関数の履歴を記憶開始する(S15,実行関数記憶工程)。なお,プログラム関数の履歴の記憶(S15)は,コマンドの実行が完了の旨がログファイルに出力される(S24)まで行われる。
ステップS14にて記憶した操作情報がコマンドの選択でない場合(S16のNo),データ生成手段41は,ステップS14に戻り,操作検出手段21が次に検出した操作情報を取得し操作情報テーブル47への記憶をする(S14)。
一方,ステップS14にて記憶した操作情報がコマンドの選択である場合(S16のYES),ログデータ生成手段41は,選択されたコマンドの名称をログファイルに出力する(S17)。そして,ステップS17の後,ログデータ生成手段41はコマンドの実行対象である要素が選択されているか否かの判定を行う(S18)。なぜならば,後述するように,設計支援プログラム40では,要素の選択が行われた後にコマンドが選択される場合と,コマンドが選択されて単一又は複数の操作がなされた後に要素が選択される場合とがあるためである。
ステップS19にてコマンドの実行対象である要素が選択されている場合(S18のYES),ログデータ生成手段41は,選択された要素を要素情報テーブル48に記憶する(S19,要素情報記憶工程)。そして,データ生成手段41は,操作検出手段21が次に検出した操作情報を取得し操作情報テーブル47への記憶をする(S20,操作情報記憶工程)。
ステップS20の後,ログデータ生成手段41は,ステップS20の操作情報がコマンド完了の操作か否かの判定を行う(S21)。ステップS21において,ステップS20の操作情報がコマンド完了の操作でない場合(S21のNo),ステップS20へ戻る。一方,ステップS20の操作情報がコマンド完了の操作である場合(S21のYes),ログデータ生成手段41は,コマンドの完了の旨をログファイルに出力する(S24,ログ出力工程)。ステップ24の後ステップS13に戻り,ログデータ生成手段41は,操作情報テーブル47と要素情報テーブル48と関数履歴テーブル49とを初期化する(S13)。
ステップS19において,コマンドの実行対象である要素が選択されていない場合(S18のNo),設計者の次の操作で要素が選択される可能性があるため,データ生成手段41は,操作検出手段21が次に検出した操作情報を取得し操作情報テーブル47への記憶をする(S22,操作情報記憶工程)。
ステップS22の後,ログデータ生成手段41は,ステップS20の操作情報がコマンド完了の操作か否かの判定を行う(S23)。ステップS22の操作情報がコマンド完了の操作でない場合(S23のNo),ログデータ生成手段41は,ステップS18に戻り要素が選択されているか否かの判定を行う(S18)。一方,ステップS22の操作情報がコマンド完了の操作である場合(S23のYes),つまり要素が選択されずにコマンド完了の操作がされた場合,ログデータ生成手段41は,コマンドの完了の旨をログファイルに出力する(S24)。ステップ24の後ステップS13に戻り,ログデータ生成手段41は,操作情報テーブル47と要素情報テーブル48と関数履歴テーブル49とを初期化する(S13)。
このように,設計支援プログラムの正常動作時では,ログデータ生成手段41は,設計支援プログラム40の起動後又は前回のコマンドの実行完了後から,今回のコマンドの実行完了までの操作情報,選択された要素,プログラム関数の履歴がそれぞれ操作情報テーブル47,要素情報テーブル48,関数履歴テーブル49に記憶される。そして,今回のコマンドの実行完了時に操作情報テーブル47,要素情報テーブル48,関数履歴テーブル49が初期化される。また,正常動作時では,操作情報,要素及び実行されたプログラム関数の履歴は不要であるため,ログデータ生成手段41はこれらをログファイル50に出力しない。
図6は,本実施の形態における設計支援プログラムの異常終了時のログデータ生成フローチャートである。
設計支援プログラム40が起動されると,設計データ生成手段22にて異常終了の発生有無の判定が行われる(S31)。設計データ生成手段22が異常終了を検出すると,ログデータ生成手段41はこれに応じて(S31のYES),図5の正常動作を中断する(S32)。そして,ログデータ生成手段41は,その時点での操作情報テーブル47と,要素情報テーブル48と,関数履歴テーブル49とをログファイル50に出力する(S33)。
したがって,ロブファイル50に出力されるのは,設計支援プログラム40の起動後又は前回のコマンドの実行完了後から,異常終了までの間に操作情報テーブル47に記憶された操作情報,要素情報テーブル48に記憶された要素及び関数履歴テーブル49に記憶された関数履歴である。これにより,開発者は,異常終了の原因を解析するのに必要な情報のみを取得することができる。
以下,第1乃至第4の実施の形態にて,設計支援プログラム40の具体的な動作例を説明する。
[第1の実施の形態]
第1の実施の形態では,設計者が設計図表示部104に配置した部品の属性を変更するための操作をした場合の設計支援プログラム40の動作について説明する。まず,設計支援プログラム40の正常動作時の例について説明する。
図7は,第1の実施の形態における設計図表示部の第1の例を示す図である。図7は,設計者が設計データを作成している間における,出力装置15に表示される画面100の設計図表示部104の一例である。
図7の設計図表示部104には,ピンP1〜P8,VDD及びGNDを有する集積積回路M15と,コンデンサC1〜C3と,抵抗R1〜R5と,基準電源GNDと,3.3vの電源と,信号結合子T1〜T8と,各要素を接続する直線の信号線とが配置されている。 図7では,設計者は,集積回路M15の名称「M15」を「M16」に変更するために,まず入力装置14のマウスを動かしてカーソル120を集積回路M15上に移動させ,マウスの左クリックを押下して集積回路M15を選択する。このとき,ログデータ生成手段41は,設計者が行ったマウスの移動及び左クリックの押下の操作情報を操作検出手段21から取得し,操作情報テーブル47に記憶する(図5のステップS14)。それとともに,ログデータ生成手段41は,設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル49に記憶する(図5のステップS15)。
次に,設計者は,マウスの右クリックを押下し,ポップアップメニュー121を表示させる。このとき,ログデータ生成手段41は,右クリックの押下の操作情報を操作検出手段21から取得し,操作情報テーブル47に記憶する(図5のステップS14)。それとともに,ログデータ生成手段41は,設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル49に記憶する(図5のステップS15)。
この後,設計者は,マウスを動かし,ポップアップメニュー121に表示されている「要素属性変更」上にカーソル121を移動させて,マウスの左クリックを押下して「要素属性変更」コマンドを選択する。これにより「要素属性変更」コマンドが開始される。
このとき,ログデータ生成手段41は,左クリックの押下により「要素属性変更」コマンドが選択されたという操作情報を操作検出手段21から取得し,操作情報テーブル47に記憶する(図5のステップS14)。それとともに,ログデータ生成手段41は,設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル49に記憶する(図5のステップS15)。また,当該操作情報はコマンドの選択に該当するため(図5のステップS16のYES),選択された「要素属性変更」コマンドがログファイル50に出力される(図5のステップS17)。そして,集積回路M15が予め選択されているため(図5のステップS18のYES),ログデータ生成手段41は,集積回路M15を要素情報テーブル48に記憶する(図5のステップS19)。
図8は,第1の実施の形態における「要素属性変更」コマンド選択時の操作情報テーブル,要素情報テーブル,関数履歴テーブル及びログファイルの一例を示す図である。図8は,図7の操作が行われたときの操作情報テーブル47,要素情報テーブル48,関数履歴テーブル49及びログファイル50を示す。
図8の操作情報テーブル47には,上述のように,集積回路M15の選択操作,ポップアップメニュー121の表示操作及び「要素属性変更」コマンドの選択操作の操作情報が記憶されている。操作情報テーブル47は,操作毎に“設計データ名称”,“メイン画面名称”,“サブ画面名称”,“操作された入力装置14”,“操作内容(座標,画面に表示されるボタン名称,入力文字,コマンド名称)”,“設計者の入力装置14に加えた動作内容(左・右クリック,キーボードのボタン)”を操作情報として記憶する。例えば,操作情報テーブル47の1行目の操作情報「設計図01, 画面100, , マウス, x:265mm y:215mm, 左クリック」は,集積回路M15の選択操作を示している。すなわち,1行目は,設計者が画面100の座標「x:265mm y:215mm」において,マウスの左クリックを押下したことを示している。同様に,2行目の操作情報「設計図01, 画面100, , マウス, x:265mm y:215mm, 右クリック」はポップアップメニュー121の表示操作を示し,3行目の操作情報「設計図01, 画面100, ポップアップメニュー, マウス, コマンド(要素属性変更), 左クリック」は「要素属性変更」コマンドの選択操作を示す。
一方,図8の要素情報テーブル48には,「要素属性変更」コマンドの選択操作により部品(M15)が登録されている。
図8の関数履歴テーブル49には,集積回路M15の選択操作,ポップアップメニュー121の表示操作及び「要素属性変更」コマンドの選択操作により実行されたプログラム関数が下から順に記憶されている。関数履歴テーブル49は,最上段の1行目にパス「C:¥Programfiles¥BP」にあるモジュール「MeBP.exe」のプログラム関数「Cclass」が実行されたことを示している。
図8のログファイル50のコマンド履歴部141には,「要素属性変更」コマンドの選択操作によりログデータ生成手段41が出力したコマンド名称「要素属性変更」が最下段に出力されている(図5のステップS17)。なお,「要素属性変更」よりも上には,図7の操作の前に設計者が実行したコマンドの名称及びコマンド完了の旨が出力されている。
図9は,第1の実施の形態における要素属性変更操作の一例を示す図である。図7で設計者が「要素属性変更」コマンドを選択すると,図9に示す要素属性変更画面130が出力装置15に表示される。図9(1)のように,設計者はマウスを操作して部品名欄131上にカースル120を移動させ,左クリックを押下して部品名欄131を選択する。そして,設計者は部品名欄131に記載されている「M15」を削除し,キーボードを使用して「M16」を入力する。このとき,ログデータ生成手段41は,これらの操作情報を操作検出手段21から取得し,操作情報テーブル47に記憶する(図5のステップS20)。それとともに,ログデータ生成手段41は,設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル49に記憶する(図5のステップS15)。
そして,図9(2)のように,設計者はマウスを操作して完了ボタン132上にカースル120を移動させ,左クリックを押下し,「要素属性変更」コマンドを完了させる。このとき,ログデータ生成手段41は,「要素属性変更」コマンドの完了操作について操作情報を操作検出手段21から取得し,操作情報テーブル47に記憶する(図5のステップS20)。それとともに,ログデータ生成手段41は,「要素属性変更」コマンドの完了操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル49に記憶する(図5のステップS15)。さらに,設計者により行われた操作は「要素属性変更」コマンドの完了操作であるため(図5のS21のYES),ログデータ生成手段41は,コマンドの完了の旨をログファイルに出力する(図5のS24)。ステップ24の後ステップS13に戻り,ログデータ生成手段41は,操作情報テーブル47と要素情報テーブル48と関数履歴テーブル49とを初期化する(図5のS13)。
図10は,第1の実施の形態における「要素属性変更」コマンド完了時の操作情報テーブル,要素情報テーブル,関数履歴テーブル及びログファイルの一例を示す図である。図10は,図9の要素属性変更」コマンドの完了操作が行われログデータ生成手段41がコマンドの完了の旨をログファイルに出力した(図5のステップS24)ときの,操作情報テーブル47,要素情報テーブル48,関数履歴テーブル49及びログファイル50を示す。
図10の操作情報テーブル47には,図9で説明した「要素属性変更」コマンド選択操作以降の操作,すなわち部品名欄131の選択操作,部品名欄131に記載されている「M15」の削除操作,部品名欄131への「M16」の入力操作,及び「要素属性変更」コマンドの完了操作の操作情報が,4行目から11行目に記憶されている。なお,1行目から3行目までの操作情報は,図8と同様である。
4行目の操作情報「設計図01, 要素情報変更130, 部品情報,マウス, 部品名, 左クリック」は,部品名欄131の選択操作を示し,5行目〜7行目の操作情報「設計図01, 要素情報変更130, 部品情報, キーボード, , Delete」は部品名欄131に記載されている「M15」の削除操作を示す。また,8行目〜10行目の操作情報「設計図01, 要素情報変更130, 部品情報, キーボード, ,M」,「設計図01, 要素情報変更130, 部品情報, キーボード, ,1」及び「設計図01, 要素情報変更130, 部品情報, キーボード, ,6」は部品名欄131への「M16」の入力操作を示す。11行目の操作情報「設計図01, 要素属性変更130, 部品情報, マウス, OK, 左クリック」は「要素属性変更」コマンドの完了操作を示す。
図10の要素情報テーブル48には,図8と同様に,「要素属性変更」コマンドの選択時に要素情報テーブル48に記憶された「部品(M15)」が記憶されている。
図10の関数履歴テーブル49には,図8以降実行されたプログラム関数がさらに記憶されている。図10の関数履歴テーブル49では,図8の1行目以下の履歴が図10の3行目以下の履歴に該当する。また,図10の関数履歴テーブル49は,図8以降,2行目に出力されているパス「C:¥Programfiles¥BP」にあるモジュール「MeBP.exe」のプログラム関数「Function」が実行され,その後に,1行目に出力されているパス「C:¥Programfiles¥BP」にあるモジュール「MeBP.exe」のプログラム関数「SetUndo」が実行されたことを示している。
図10のログファイル50のコマンド履歴部141には,コマンド名称「要素属性変更」の下に,コマンドが完了した旨を意味する「要素属性変更完了」が出力されている(図5のS24)。ログデータ生成手段41がコマンドの完了の旨をログファイルに出力した(図5のS24)後に初期化動作(図5のS13)を行うと,図10の各テーブル47〜49に記憶された操作情報,要素及び実行されたプログラム関数の履歴は全て削除される。
このように正常動作においては,ログデータ生成手段41は,前回のコマンドの実行完了後から今回の「要素情報変更」コマンドの実行完了までの間の操作情報を操作情報テーブル47に記憶し,選択された要素を要素情報テーブル48に記憶し,実行された関数を関数履歴テーブル49に記憶する。ログデータ生成手段41は「要素情報変更」コマンドの実行完了すると,操作情報,要素及び実行されたプログラム関数の履歴は不要であるため,これらをログファイル50に出力しない。
次に,設計支援プログラム40の異常終了時の例について説明する。
図11は,第1の実施の形態における異常終了時に出力されるログファイルの一例である。例えば,図9において,設計者が部品名欄131に「M16」ではなく環境依存文字「I」を入力し,マウスを操作して完了ボタン132上にカースル120を移動させ左クリックを押下したときに,設計支援プログラム40が異常終了したとする(図6のステップS31のYES)。この場合,ログデータ生成手段41は,図5の動作を中断し(図6のステップS32),図11のように,操作情報テーブル47,要素情報テーブル48,関数履歴テーブル49をログファイル50に出力する。
図11のログファイル50のコマンド履歴部141は,図8と同様である。操作情報部142には,ログデータ生成手段41が異常終了により正常動作を中断するまで(図6のステップS32)に操作情報テーブル47に記憶された操作情報が出力される(図6のステップS33)。8行目の操作情報では,キーボードから入力した文字が環境依存文字であったために,文字化けが生じている。要素情報部143には,ログデータ生成手段41が異常終了により動作を中断するまで(図6のステップS32)に要素情報テーブル48に記憶された要素が出力される(図6のステップS33)。関数履歴部144には,グデータ生成手段41が異常終了により動作を中断するまで(図6のステップS32)に関数履歴テーブル49に記憶されたプログラム関数が出力される(図6のステップS33)。
設計者より問い合わせを受けた開発者は,図11のログファイル50により,まず,部品(M15)に対して(要素情報部143の1行目),「要素属性変更」コマンドが実行され(操作情報部142の3行目)たことを把握することができる。
次に,開発者は,部品情報変更画面130の部品情報の項目「部品名」が選択され(操作情報142の4行目),キーボードの「1」ボタン,「変換」ボタン,Enterボタンが順に押されて環境依存文字「I」が入力されたことを把握することができる(操作情報142の8行目〜10行目)。
そして,開発者は,要素属性変更画面130の部品情報画面に表示されるOKボタンに対してマウスの右クリックを押下する操作をしたとき(操作情報部142の11行目)に異常終了が発生したことを把握することができる。
さらに,開発者は,関数履歴部144に基づいて,パス「C:¥Programfiles¥BP」にあるモジュール「MeBP.exe」のプログラム関数「Function」の実行中に,異常終了が発生したことを把握することができる。
そして,開発者は,設計者から作成中の設計データ「設計図01」を受領してログファイル50に基づいて設計者と同じ操作をしたり,プログラム関数「Function」をデバッグしたりする等,迅速に対応をとることができる。
その結果,開発者は,例えば予め定めた入力可能文字以外の文字が入力された場合には警告メッセージを出力する処理がプログラム関数「Function」に規定されていなく,プログラム関数「Function」に対応していない処理を設計支援装置30に実行させる操作がされたために異常終了が起きた等の異常終了の原因を発見することができる。
このように,異常終了が発生したときに,ログデータ生成手段41が正常動作を中断して,その時点での操作情報テーブル47,要素情報テーブル48及び関数履歴テーブル49とをログファイル50に出力する。これにより,開発者はログファイル50に基づいて,異常終了時の状況を把握することができ迅速に対応することができる。
[第2の実施の形態]
第2の実施の形態では,設計者が複数の要素を任意の座標に移動させる操作をした場合の設計支援プログラム40の動作について説明する。
図12は,第2の実施の形態における設計図表示部の第1の例を示す図である。図12は,設計者が設計データを作成している間における,出力装置15に表示される画面100の設計図表示部104の一例である。
図12の設計図表示部104には,信号線L11〜L13と,コンデンサC11,C12と,グラウンド電源GND11,GND12と,抵抗R12と,矢印の図形Ob11と,テキストCOM11と,信号結合子T11,T12とが配置されている。
第2の実施の形態では,図12の配置状態から,設計者は,信号線L11と,コンデンサC11と,グラウンド電源GND11と,図形Ob11と,文字列COM11とを選択して(以下,要素群Y10とする。),選択した要素を移動させる操作を行う。まず,設計支援プログラム40の正常動作時の例について説明する。
設計者は,入力装置14のマウスを動かしカーソル200を座標P1(x:120mm y:240mm)に移動させる。そして,設計者は,マウスの左クリックを押しながらそのままの状態でマウスを動かし,カーソル200を座標P2(x:200mm y:100mm)まで移動させ,マウスの左クリックを離す。これにより要素群Y10が選択される。
このとき,ログデータ生成手段41は,設計者による左クリックが押されたままのマウスの移動の操作情報を操作検出手段21から取得し,操作情報テーブル47に記憶する(図5のステップS14)。それとともに,ログデータ生成手段41は,設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル49に記憶する(図5のステップS15)。
図13は,第2の実施の形態における設計図表示部の第2の例を示す図である。設計者は要素を選択した後,入力装置14のマウスの右クリックを押下し,ポップアップメニュー210を表示させる。
このとき,ログデータ生成手段41は,右クリックの押下の操作情報を操作検出手段21から取得し,操作情報テーブル47に記憶する(図5のステップS14)。それとともに,ログデータ生成手段41は,設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル49に記憶する(図5のステップS15)。
そして,設計者は,マウスを動かし,ポップアップメニュー210内に表示されるコマンドから「移動」上にカーソル200を移動させて,マウスの左クリックを押下して「移動」コマンドを選択する。これにより「移動」コマンドが開始される。
このとき,ログデータ生成手段41は,左クリックの押下により「移動」コマンドが選択されたという操作情報を操作検出手段21から取得し,操作情報テーブル47に記憶する(図5のステップS14)。それとともに,ログデータ生成手段41は,設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル49に記憶する(図5のステップS15)。また,当該操作情報はコマンドの選択に該当するため(図5のステップS16のYES),選択された「移動」コマンドがログファイル50に出力される(図5のステップS17)。
そして,要素群Y10が予め選択されているため(図5のステップS18のYES),ログデータ生成手段41は,信号線L11,コンデンサC11,グラウンド電源GND11,図形Ob11及び文字列COM11を要素情報テーブル48に記憶する(図5のステップS19)。
図14は,第2の実施の形態における設計図表示部の第3の例を示す図である。設計者は,「移動コマンド」を選択した後,マウスを動かしてカースルを座標P2から座標P3(x:50mm y:100mm)へ移動させる。そして,設計者は,座標P3上でマウスの左クリックを押下する。これにより,要素群Y10が,座標P3を中心とする位置に移動する。すなわち,信号線L11,コンデンサC11,グラウンド電源GND11,図形Ob11及び文字列COM11の移動する。また,「移動」コマンドでは,要素の移動が完了することで「移動」コマンドが完了となる。したがって,座標P3上でのマウスの左クリック押下の操作によって要素Y10の移動が完了すると,「移動」コマンドは完了する。
このとき,ログデータ生成手段41は,座標P3での左クリックの押下の操作情報を操作検出手段21から取得し,操作情報テーブル47に記憶する(図5のステップS20)。それとともに,ログデータ生成手段41は,設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル49に記憶する(図5のステップS15)。さらに,設計者により行われた操作は「移動」コマンドの完了操作であるため(図5のS21のYES),ログデータ生成手段41は,コマンドの完了の旨をログファイルに出力する(図5のS24)。さらに,座標P3での左クリックの押下の操作は「移動」コマンドの完了操作にも該当するため(図5のS21のYES),ログデータ生成手段41は,コマンドの完了の旨をログファイルに出力する(図5のS24)。ステップ24の後ステップS13に戻り,ログデータ生成手段41は,操作情報テーブル47と要素情報テーブル48と関数履歴テーブル49とを初期化する(図5のS13)。
図15は,第2の実施の形態における「移動」コマンド完了時の操作情報テーブル,要素情報テーブル,関数履歴テーブル及びログファイルの一例を示す図である。図15は,ログデータ生成手段41が「移動」コマンドの完了の旨のログファイルを出力した(図5のステップS24)ときの,操作情報テーブル47,要素情報テーブル48,関数履歴テーブル49及びログファイル50を示す。
図15の操作情報テーブル47には,図12のように,マウスの左クリックを押下したまま座標P1からP2へカーソルを移動させて要素群Y10を選択する操作が,1行目に操作情報「設計図01, 画面100, , マウス, x:120mm-200mm y:240mm-100mm, 左クリック」として記憶されている。
2行目には,座標P2上でポップアップメニューを表示させるために行われたマウスの左クリック押下の操作が,操作情報「設計図01, 画面100, , マウス, x:200mm y:100mm, 右クリック」として記憶されている。
3行目の操作情報「設計図01, 画面100, ポップアップメニュー, マウス, コマンド(移動), 左クリック」は,図13のように「移動」コマンドの選択操作を示す。
4行目の操作情報「設計図01, 画面100, , マウス, x:50mm y:100mm, 左クリック」は,図14のように,座標P3上でマウスを左クリックを押下し要素群Y10を移動させる操作を示す。
図15の要素情報テーブル48には,「移動」コマンドの選択時に要素情報テーブル48に記憶された「部品(信号線L11)」,「部品(コンデンサC11)」,「部品(グラウンド電源GND11)」,「図形Ob11」及び「文字列COM11」が記憶されている。
図15の関数履歴テーブル49には,図12〜図14において設計者の操作により実行されたプログラム関数が下から順に記憶されている。最上段1行目のパス「C:¥Programfiles¥BP」にあるモジュール「Move.dll」のプログラム関数「SetUndotitle」が最後に実行される前に,2行目のパス「C:¥Programfiles¥BP」にあるモジュール「Move.dll」のプログラム関数「MoveFigure」が実行されたことが示されている。
図15のログファイル50のコマンド履歴部141には,コマンド名称「移動」の下に,コマンドが完了した旨を意味する「要素属性変更完了」が出力されている(図5のS24)。なお,「移動」よりも上には,図12の操作の前に設計者が実行したコマンドの名称及びコマンド完了の旨が出力されている。
ログデータ生成手段41が「移動」コマンドの完了の旨をログファイルに出力した(図5のS24)後に初期化動作(図5のS13)を行うと,図15の各テーブル47〜49に記憶された操作情報,要素及び実行されたプログラム関数の履歴は全て削除される。
このように「移動」コマンドの正常動作においては,ログデータ生成手段41は,前回のコマンドの実行完了後から「移動」コマンドの実行完了までの間の操作情報を操作情報テーブル47に記憶し,選択された要素を要素情報テーブル48に記憶し,実行された関数を関数履歴テーブル49に記憶する。ログデータ生成手段41は「移動」コマンドの実行完了すると,操作情報,要素及び実行されたプログラム関数の履歴は不要であるため,各テーブルから削除しログファイル50に出力しない。
次に,設計支援プログラム40の異常終了時の例について説明する。
図16は,第2の実施の形態における異常終了時に出力されるログファイルの一例である。例えば,設計者が,図13において「移動」コマンドを選択した後に図14で座標P3ではなく抵抗R11が配置されている座標(x:220mm,y:140mm)上へカーソルを移動させて左クリックが押下されたとき,設計支援プログラム40が異常終了したとする(図6のステップS31のYES)。この場合,ログデータ生成手段41は,図5の動作を中断し(図6のステップS32),図16のように,操作情報テーブル47,要素情報テーブル48,関数履歴テーブル49をログファイル50に出力する(図6のステップS33)。
図16のログファイル50のコマンド履歴部141は,「移動」コマンドの選択によりログデータ生成手段41が出力したコマンド名称「移動」が最下段に出力されている(図5のステップS17)。操作情報部142には,ログデータ生成手段41が異常終了により正常動作を中断するまで(図6のステップS32)に操作情報テーブル47に記憶された操作情報が出力される(図6のステップS33)。要素情報部143には,ログデータ生成手段41が異常終了により動作を中断するまで(図6のステップS32)に要素情報テーブル48に記憶された要素が出力される(図6のステップS33)。関数履歴部144には,グデータ生成手段41が異常終了により動作を中断するまで(図6のステップS32)に関数履歴テーブル49に記憶されたプログラム関数が出力される(図6のステップS33)。
設計者より問い合わせを受けた開発者は,図16のログファイル50により,信号線L11,コンデンサC11,グラウンド電源GND11,図形Ob11及び文字列COM11に対して(要素情報部143の1〜5行目),「移動」コマンドが実行され,抵抗R11が配置されている座標(x:220mm,y:140mm)上でマウスの左クリックを押下する操作をしたとき(操作情報部142の4行目)に異常終了が発生したことを把握することができる。
さらに,開発者は,関数履歴部144に基づいて,パス「C:¥Programfiles¥BP」にあるモジュール「Move.dll」のプログラム関数「MoveFigure」の実行中に,異常終了が発生したことを把握することができる。
そして,開発者は,設計者から作成中の設計データ「設計図01」を受領してログファイル50に基づいて設計者と同じ操作をしたり,プログラム関数「MoveFigure」をデバッグしたりする等,迅速に対応をとることができる。
その結果,開発者は,例えば要素が配置されている座標を選択した場合には警告メッセージを出力する処理がプログラム関数「MoveFigure」に規定されていなく,プログラム関数「MoveFigure」に対応していない処理を設計支援装置30に実行させる操作がされたために異常終了が起きた等の異常終了の原因を発見することができる。
このように,異常終了が発生したときに,ログデータ生成手段41が正常動作を中断して,その時点での操作情報テーブル47,要素情報テーブル48及び関数履歴テーブル49とをログファイル50に出力する。これにより,開発者はログファイル50に基づいて,異常終了時の状況を把握することができ迅速に対応することができる。
[第3の実施の形態]
第3の実施の形態では,集積回路のピンの配置を変更する場合の設計支援プログラム40の動作について説明する。
図17は,第3の実施の形態における画面の一例を示す図である。図12は,設計者が設計データを作成している間における,出力装置15に表示される画面100の一例である。設計者は,メニュー101から,集積回路の属性を変更するためのコマンドである「FPGAエディタ」コマンドを選択し,要素情報テーブルから集積回路の一覧を読み出して任意の集積回路を選択し,選択した集積回路のピンの配置を変更する。まず,設計支援プログラム40の正常動作時の例について説明する。
図17において,設計者は,入力装置14のマウスを動かしてカーソル300をメニュー101の「FPGAエディタ」上に移動させる。そして,設計者は,マウスの左クリックを押下して「FPGAエディタ」コマンドを選択する。これにより,「FPGAエディタ」コマンドが開始される。
このとき,ログデータ生成手段41は,左クリックの押下により「FPGAエディタ」コマンドが選択されたという操作情報を操作検出手段21から取得し,操作情報テーブル47に記憶する(図5のステップS14)。それとともに,ログデータ生成手段41は,設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル49に記憶する(図5のステップS15)。また,当該操作情報はコマンドの選択に該当するため(図5のステップS16のYES),選択された「FPGAエディタ」コマンドがログファイル50に出力される(図5のステップS17)。しかし,この時点では要素は選択されていないため(図5のステップS18のNo),要素情報テーブル48には要素は記憶されない。
図18は,第4の実施の形態における集積回路の属性変更操作の一例を示す図である。設計者が「FPGAエディタ」コマンドを選択すると,出力装置15に図18の集積回路属性変更画面300が表示される。集積回路属性変更画面300は,要素情報テーブル48に記憶されている集積回路の一覧302と,一覧302から選択した集積回路の編集を開始する編集開始ボタン303とを有する。
設計者は,一覧302に表示される集積回路から,編集対象の集積回路を選択する。図18では,設計者はマウスを動かして,一覧302の2列目「モジュール」列の3行目上にカーソル300を移動させて左クリックを押下し,集積回路「ALM_CPLD_EPM570F256C5」を選択する。
このとき,ログデータ生成手段41は,左クリックの押下の操作情報を操作検出手段21から取得し,操作情報テーブル47に記憶する(図5のステップS22)。それとともに,ログデータ生成手段41は,設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル49に記憶する(図5のステップS15)。
そして,設計者はマウスを動かして,編集開始ボタン303上にカーソル300を移動させて,マウスの左クリックを押下して集積回路の編集を開始する。また,この操作により,コマンド実行対象の要素が集積回路「ALM_CPLD_EPM570F256C5」に確定する。
このとき,ログデータ生成手段41は,左クリックの押下の操作情報を操作検出手段21から取得し,操作情報テーブル47に記憶する(図5のステップS22)。それとともに,ログデータ生成手段41は,設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル49に記憶する(図5のステップS15)。
さらに,コマンド実行対象の要素が一覧302から選択された集積回路「ALM_CPLD_EPM570F256C5」に確定したため(図5のステップS18のYES),ログデータ生成手段41は,集積回路「ALM_CPLD_EPM570F256C5」を要素情報テーブル48に記憶する(図5のステップS19)。
図19は,第4の実施の形態における集積回路のピン編集操作画面の一例を示す図である。図18の編集開始ボタン303が押下されると,図19に示すピン編集画面304が出力装置15に表示される。ピン編集画面304は,メニュー305と,図18の集積回路属性画面300で選択された集積回路が有するピンの一覧306と,一覧306から選択されたピンを任意の位置に移動させるための4方向(上下左右)の矢印からなる移動ボタン307とを有する。
図20は,第4の実施の形態における集積回路のピン編集操作の第1の例を示す図である。図20では,設計者は,ピンの一覧306に表示されるピンから,3番目に配置されているピン「55」と5番目に配置されているピン「53」とを配置変更する操作を行う。
まず,設計者はマウスを動かして,一覧306の2列目「ピン名」列の3行目上にカーソル300を移動させて左クリックを押下し,上から3番目に配置されているピン「55」を選択する。
このとき,ログデータ生成手段41は,一覧306の2列目3行目上での左クリックの押下の操作情報を操作検出手段21から取得し,操作情報テーブル47に記憶する(図5のステップS20)。それとともに,ログデータ生成手段41は,設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル49に記憶する(図5のステップS15)。
そして,設計者はマウスを動かして,下方向の矢印の移動ボタン307上にカーソル300を移動させて左クリックを押下し,ピン「55」を3行目から4行目,すなわち4番目の配置に移動させる。これにより4行目にあったピン「54」は3行目に移動する。
このとき,ログデータ生成手段41は,下方向の矢印の移動ボタン307上での左クリックの押下の操作情報を操作検出手段21から取得し,操作情報テーブル47に記憶する(図5のステップS20)。それとともに,ログデータ生成手段41は,設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル49に記憶する(図5のステップS15)。
次に,設計者は,再び下方向の矢印の移動ボタン307上にカーソル300を移動させて左クリックを押下し,ピン「55」を4行目から5行目,すなわち5番目の配置に移動させる。これにより5行目にあったピン「53」は4行目に移動する。
このとき,ログデータ生成手段41は,下方向の矢印の移動ボタン307上での左クリックの押下の操作情報を再び操作検出手段21から取得し,操作情報テーブル47に記憶する(図5のステップS20)。それとともに,ログデータ生成手段41は,設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル49に記憶する(図5のステップS15)。
そして,設計者はマウスを動かして,一覧306の2列目「ピン名」列の4行目上にカーソル300を移動させて左クリックを押下し,上から4番目に配置されているピン「53」を選択する。
このとき,ログデータ生成手段41は,一覧306の2列目4行目上での左クリックの押下の操作情報を操作検出手段21から取得し,操作情報テーブル47に記憶する(図5のステップS20)。それとともに,ログデータ生成手段41は,設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル49に記憶する(図5のステップS15)。
そして,設計者はマウスを動かして,上方向の矢印の移動ボタン307上にカーソル300を移動させて左クリックを押下し,ピン「53」を4行目から3行目,すなわち3番目の配置に移動させる。これにより3行目にあったピン「54」は4行目に移動する。
このとき,ログデータ生成手段41は,上方向の矢印の移動ボタン307上での左クリックの押下の操作情報を操作検出手段21から取得し,操作情報テーブル47に記憶する(図5のステップS20)。それとともに,ログデータ生成手段41は,設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル49に記憶する(図5のステップS15)。
図21は,第4の実施の形態における集積回路のピン編集操作の第2の例を示す図である。図20での操作により,一覧306の2列目「ピン名」列の5行目にピン「53」が移動し,3行目にピン「55」が移動する。
設計者はマウスを動かして,メニュー305の「閉じる」ボタンの上にカーソル300を移動させ,左クリックを押下する。これにより,「FPGAエディタ」コマンドは完了する。
このとき,ログデータ生成手段41は,「閉じる」ボタンの上での左クリックの押下の操作情報を操作検出手段21から取得し,操作情報テーブル47に記憶する(図5のステップS20)。それとともに,ログデータ生成手段41は,設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル49に記憶する(図5のステップS15)。
さらに,「閉じる」ボタン上での左クリックの押下の操作は「FPGAエディタ」コマンドの完了操作にも該当するため(図5のS21のYES),ログデータ生成手段41は,コマンドの完了の旨をログファイルに出力する(図5のS24)。ステップ24の後ステップS13に戻り,ログデータ生成手段41は,操作情報テーブル47と要素情報テーブル48と関数履歴テーブル49とを初期化する(図5のS13)。
図22は,第3の実施の形態における「FPGAエディタ」コマンド完了時の操作情報テーブル,要素情報テーブル,関数履歴テーブル及びログファイルの一例を示す図である。図22は,ログデータ生成手段41が「FPGAエディタ」コマンドの完了の旨のログファイルを出力した(図5のステップS24)ときの,操作情報テーブル47,要素情報テーブル48,関数履歴テーブル49及びログファイル50を示す。
図22の操作情報テーブル47の1行目には,図17のように,マウスの左クリックを押下してメニュー101の「FPGAエディタ」コマンドを選択する操作が操作情報「設計図01, 画面100, メニュー101, マウス, コマンド(FPGAエディタ), 左クリック」として記憶されている。
2行目には,図18のように,マウスの左クリックを押下して集積回路属性変更画面300の一覧302の2列目「モジュール」列の3行目を選択する操作が「設計図01, 集積回路属性変更画面300, 一覧302, マウス, 行:3 列:2, 左クリック」として記憶されている。
また,3行目には,マウスの左クリックを押下して編集実行ボタンを選択し集積回路の編集を開始する操作が操作情報「設計図01, 集積回路属性変更画面300, , マウス, 編集実行, 左クリック」として記憶されている。
4行目から6行目までは,図20のように,ピン編集画面304の一覧306の2列目3行目(ピン「55」)を選択して5行目に移動させる操作が記憶されている。そして7行目,8行目には一覧306の2列目4行目(ピン「53」)を選択して3行目に移動させる操作が記憶されている。
9行目には,マウスの左クリックを押下してピン編集画面304のメニュー305の「閉じる」ボタンを選択する操作がされたことが,「設計図01, ピン編集画面304, メニュー305, マウス, 閉じる, 左クリック」として記憶されている。
図22の要素情報テーブル48には,集積回路属性変更画面300の編集実行ボタンの選択時に要素情報テーブル48に記憶された集積回路「ALM_CPLD_EPM570F256C5」が記憶されている。
図22の関数履歴テーブル49には,図17〜図21において設計者の操作により実行されたプログラム関数が下から順に記憶されている。最上段1行目のパス「C:¥Programfiles¥BP」にあるモジュール「FpgaEditor.dll」のプログラム関数「SetUndotitle」が最後に実行される前に,2行目のパス「C:¥Programfiles¥BP」にあるモジュール「FpgaEditor.dll」のプログラム関数「MovePin」が実行されたことが示されている。
図22のログファイル50のコマンド履歴部141には,コマンド名称「FPGAエディタ」の下に,コマンドが完了した旨を意味する「FPGAエディタ完了」が出力されている(図5のS24)。なお,「FPGAエディタ」よりも上には,図17の操作の前に設計者が実行したコマンドの名称及びコマンド完了の旨が出力されている。
ログデータ生成手段41が「FPGAエディタ」コマンドの完了の旨をログファイルに出力した(図5のS24)後に初期化動作(図5のS13)を行うと,図22の各テーブル47〜49に記憶された操作情報,要素及び実行されたプログラム関数の履歴は全て削除される。
このように「FPGAエディタ」コマンドの正常動作においては,ログデータ生成手段41は,前回のコマンドの実行完了後から「FPGAエディタ」コマンドの実行完了までの間の操作情報を操作情報テーブル47に記憶し,「FPGAエディタ」コマンド開始後に選択された集積回路を要素情報テーブル48に記憶し,実行された関数を関数履歴テーブル49に記憶する。ログデータ生成手段41は「FPGAエディタ」コマンドの実行完了すると,操作情報,要素及び実行されたプログラム関数の履歴は不要であるため,各テーブルから削除しログファイル50に出力しない。
次に,設計支援プログラム40の異常終了時の例について説明する。
図23は,第2の実施の形態における異常終了時に出力されるログファイルの一例である。例えば,設計者が,図19において一覧306から移動対象のピンを選択せずに移動ボタン307を選択したとき,設計支援プログラム40が異常終了したとする(図6のステップS31のYES)。この場合,ログデータ生成手段41は,図5の動作を中断し(図6のステップS32),図23のように,操作情報テーブル47,要素情報テーブル48,関数履歴テーブル49をログファイル50に出力する(図6のステップS33)。
図23のログファイル50のコマンド履歴部141は,「FPGAエディタ」コマンドの選択によりログデータ生成手段41が出力したコマンド名称「FPGAエディタ」が最下段に出力されている(図5のステップS17)。操作情報部142には,ログデータ生成手段41が異常終了により正常動作を中断するまで(図6のステップS32)に操作情報テーブル47に記憶された操作情報が出力される(図6のステップS33)。要素情報部143には,ログデータ生成手段41が異常終了により動作を中断するまで(図6のステップS32)に要素情報テーブル48に記憶された要素が出力される(図6のステップS33)。関数履歴部144には,グデータ生成手段41が異常終了により動作を中断するまで(図6のステップS32)に関数履歴テーブル49に記憶されたプログラム関数が出力される(図6のステップS33)。
設計者より問い合わせを受けた開発者は,図23のログファイル50により,集積回路「ALM_CPLD_EPM570F256C5」に対して(要素情報部143の1行目),「FPGAエディタ」が実行されたことを把握することができる(操作情報部142の1〜3行目)。
また,開発者は,集積回路属性変更画面300の編集実行ボタンを選択した後に(操作情報部142の3行目),ピン編集画面304の下方向の移動ボタン307を選択したときに異常終了が発生したことを把握することができる(操作情報部142の4行目)。
さらに,開発者は,関数履歴部144に基づいて,パス「C:¥Programfiles¥BP」にあるモジュール「FpgaEditor.dll」のプログラム関数「MovePin」の実行中に,異常終了が発生したことを把握することができる。
そして,開発者は,設計者から作成中の設計データ「設計図01」を受領してログファイル50に基づいて設計者と同じ操作をしたり,プログラム関数「MovePin」をデバッグしたりする等,迅速に対応をとることができる。
その結果,開発者は,例えば移動対象のピンを選択せずに移動ボタンを選択した場合に警告メッセージを出力する処理がプログラム関数「MovePin」に規定されていなく,プログラム関数「MovePin」に対応していない処理を設計支援装置30に実行させる操作がされたために異常終了が起きた等の異常終了の原因を発見することができる。
このように,異常終了が発生したときに,ログデータ生成手段41が正常動作を中断して,その時点での操作情報テーブル47,要素情報テーブル48及び関数履歴テーブル49とをログファイル50に出力する。これにより,開発者はログファイル50に基づいて,異常終了時の状況を把握することができ迅速に対応することができる。
[第4の実施の形態]
第4の実施の形態では,設計者が要素定義情報テーブル23から部品を検索して設計図表示部104に部品を配置する操作をした場合の設計支援プログラム40の動作について説明する。まず,設計支援プログラムの正常動作時の例について説明する。
図24は,第4の実施の形態における出力装置に表示される画面の第1の例を示す図である。図24は,設計図表示部104に何も要素が配置されていないときの画面100の一例である。
まず,設計者は入力装置14のマウスを動かして,メニュー101の「部品配置」コマンドボダン上にカーソル400を移動させて,マウスの左クリックを押下して「部品配置」コマンドボダンを選択する。これにより「部品配置」コマンドが開始される。
このとき,ログデータ生成手段41は,左クリックの押下により「部品配置」コマンドを選択する操作情報を操作検出手段21から取得し,操作情報テーブル47に記憶する(図5のステップS14)。それとともに,ログデータ生成手段41は,設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル49に記憶する(図5のステップS15)。また,当該操作情報はコマンドの選択に該当するため(図5のステップS16のYES),選択された「部品配置」コマンドがログファイル50に出力される(図5のステップS17)。しかし,要素は選択されていないため(図5のステップS18のNo),この時点では要素情報テーブル48には要素は記憶されない。
図25は,第4の実施の形態における部品選択部の一例である。図24にてメニュ101の「部品配置」コマンドボタンが選択されると,部品選択部105に図25の部品入力画面401が表示される。部品入力画面401は,部品の型番を入力するライブラリアクセスキー欄402と,ライブラリアクセスキー欄402に入力された型番に該当する要素を要素定義情報テーブル23から検索する検索ボタン403と,その検索結果を表示する検索結果欄404とを有する。
設計者はマウスを動かして,部品入力画面401のライブラリアクセスキー欄402上にカーソル400を移動させ,マウスの左クリックを押下してライブラリアクセスキー欄402を選択する。
このとき,ログデータ生成手段41は,ライブラリアクセスキー欄402上での左クリックの押下の操作情報を操作検出手段21から取得し,操作情報テーブル47に記憶する(図5のステップS22)。それとともに,ログデータ生成手段41は,設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル49に記憶する(図5のステップS15)。
そして,設計者はキーボードを使用してライブラリアクセスキー欄402に型番「CA465」を入力する。
このとき,ログデータ生成手段41は,型番「CA465」の入力の操作情報を操作検出手段21から取得し,操作情報テーブル47に記憶する(図5のステップS22)。それとともに,ログデータ生成手段41は,設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル49に記憶する(図5のステップS15)。
設計者はマウスを動かして,検索ボタン403上にカーソル400を移動させ,マウスの左クリックを押下して検索ボタン403を選択する。これにより,要素定義情報テーブル23の要素のうち型番「CA465」に該当する部品の検索が行われる。そして,検索結果として,CA465を含む型番が検索結果欄404に表示される。
このとき,ログデータ生成手段41は,検索ボタン403の選択の操作情報を操作検出手段21から取得し,操作情報テーブル47に記憶する(図5のステップS22)。それとともに,ログデータ生成手段41は,設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル49に記憶する(図5のステップS15)。
設計者はマウスを動かして,検索結果欄404の1行目の部品「CA46500−0002」上にカーソル400を移動させ,マウスの左クリックを押下して部品「CA46500−0002」を選択する。これにより,「部品配置」コマンドの対象の要素が部品「CA46500−0002」であることが確定する。
このとき,ログデータ生成手段41は,部品「CA46500−0002」の選択の操作情報を操作検出手段21から取得し,操作情報テーブル47に記憶する(図5のステップS22)。それとともに,ログデータ生成手段41は,設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル49に記憶する(図5のステップS15)。さらに,当該操作によりコマンドの対象となる要素が部品「CA46500−0002」に確定したため(図5のステップS18のYES),ログデータ生成手段41は,部品「CA46500−0002」を要素情報テーブル48に記憶する(図5のステップS19)。
図26は,第4の実施の形態における出力装置に表示される画面の第2の例を示す図である。
設計者は図25の部品入力画面401で部品「CA46500−0002」を選択した後,図26のように,マウスを動かしてカーソル400を画面100の設計図表示部104における座標P4(X:400mm Y:210mm)上に移動させ,マウスの左クリックを押下する。これにより,部品「CA46500−0002」が座標P4に配置され,「部品配置」コマンドが完了する。
このとき,ログデータ生成手段41は,座標P4上でのマウスの左クリック押下操作の操作情報を操作検出手段21から取得し,操作情報テーブル47に記憶する(図5のステップS20)。それとともに,ログデータ生成手段41は,設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル49に記憶する(図5のステップS15)。
さらに,座標P4上での左クリックの押下の操作は「部品配置」コマンドの完了操作にも該当するため(図5のS21のYES),ログデータ生成手段41は,コマンドの完了の旨をログファイルに出力する(図5のS24)。ステップ24の後ステップS13に戻り,ログデータ生成手段41は,操作情報テーブル47と要素情報テーブル48と関数履歴テーブル49とを初期化する(図5のS13)。
図27は,第4の実施の形態における「部品配置」コマンド完了時の操作情報テーブル,要素情報テーブル,関数履歴テーブル及びログファイルの一例を示す図である。図27は,ログデータ生成手段41が「部品配置」コマンドの完了の旨のログファイルを出力した(図5のステップS24)ときの,操作情報テーブル47,要素情報テーブル48,関数履歴テーブル49及びログファイル50を示す。
図27の操作情報テーブル47の1行目には,図24のように,「部品配置」コマンドを実行するために行われた,マウスの左クリックを押下して「部品配置」コマンドボダンを選択する操作が,操作情報「設計図01, 画面100, メニュー101, マウス,コマンド(部品入力), 左クリック」として記憶されている。
2〜8行目には,図25のように,部品入力画面401のライブラリアクセスキー欄402を選択して(2行目)型番「CA465」を入力し(3行目〜7行目),「CA465」を含む型番を検索するために検索ボタン403を選択する(8行目)操作情報が記憶されている。
9行目には,マウスの左クリックを押下して検索結果の1行目(部品「CA46500−0002」)を選択する操作が操作情報「設計図01, 部品入力画面401, 検索結果欄404, マウス, 行:1, 左クリック」として記憶されている。
そして,10行目には,図26のように,選択した部品「CA46500−0002」を配置するために設計図表示部104の座標P4(X:400mm Y:210mm)上でマウスの左クリックを押下する操作が,操作情報「設計図01, 画面100, , マウス, x:400mm y:210mm, 左クリック」として記憶されている。
図27の要素情報テーブル48には,検索結果から選択された部品「CA46500−0002」が記憶されている。
図27の関数履歴テーブル49には,図24〜図26において設計者の操作により実行されたプログラム関数が下から順に記憶されている。最上段1行目のパス「C:¥Programfiles¥BP」にあるモジュール「ToolAddFig.dll」のプログラム関数「SetUndotitle」が最後に実行される前に,2行目のパス「C:¥Programfiles¥BP」にあるモジュール「ToolAddFig.dll」のプログラム関数「AddFig」が実行されたことが示されている。
図27のログファイル50のコマンド履歴部141には,コマンド名称「部品配置」の下に,コマンドが完了した旨を意味する「部品配置完了」が出力されている(図5のS24)。なお,「部品配置」よりも上には,図24の操作の前に設計者が実行したコマンドの名称及びコマンド完了の旨が出力されている。
ログデータ生成手段41が「部品配置」コマンドの完了の旨をログファイルに出力した(図5のS24)後に初期化動作(図5のS13)を行うと,図27の各テーブル47〜49に記憶された操作情報,要素及び実行されたプログラム関数の履歴は全て削除される。
このように「部品配置」コマンドの正常動作においては,ログデータ生成手段41は,前回のコマンドの実行完了後から「部品配置」コマンドの実行完了までの間の操作情報を操作情報テーブル47に記憶し,要素定義情報テーブル23の検索結果から選択された要素を要素情報テーブル48に記憶し,実行された関数を関数履歴テーブル49に記憶する。ログデータ生成手段41は「部品配置」コマンドの実行完了すると,操作情報,要素及び実行されたプログラム関数の履歴は不要であるため,各テーブルから削除しログファイル50に出力しない。
次に,設計支援プログラム40の異常終了時の例について説明する。
図28は,第4の実施の形態における異常終了時に出力されるログファイルの一例である。
例えば,設計者が,図25においてライブラリアクセスキーに型番「CA999」を入力して要素定義情報テーブル23の検索を実行したとき,「CA999」を含む型番が要素定義情報テーブル23に存在せず検索結果が0件となった場合に設計支援プログラム40が異常終了したとする(図6のステップS31のYES)。この場合,ログデータ生成手段41は,図5の動作を中断し(図6のステップS32),図28のように,操作情報テーブル47,要素情報テーブル48,関数履歴テーブル49をログファイル50に出力する(図6のステップS33)。
図28のログファイル50のコマンド履歴部141は,「部品配置」コマンドの選択によりログデータ生成手段41が出力したコマンド名称「部品配置」が最下段に出力されている(図5のステップS17)。操作情報部142には,ログデータ生成手段41が異常終了により正常動作を中断するまで(図6のステップS32)に操作情報テーブル47に記憶された操作情報が出力される(図6のステップS33)。要素情報部143には,ログデータ生成手段41が異常終了により動作を中断するまで(図6のステップS32)に要素情報テーブル48に記憶された要素が出力される(図6のステップS33)。なお,図28においては,異常終了が発生した時点では要素情報テーブル48に要素が記憶されていないため,要素情報部143は0件である。関数履歴部144には,グデータ生成手段41が異常終了により動作を中断するまで(図6のステップS32)に関数履歴テーブル49に記憶されたプログラム関数が出力される(図6のステップS33)。
設計者より問い合わせを受けた開発者は,図28のログファイル50の操作情報部142により,画面100のメニュー101から「部品配置」コマンドが実行され(操作情報部142の1行目),部品入力画面401のライブラリアクセスキー欄402に「CA999」が入力されて検索が実行されたとき(操作情報部142の2行目〜8行目),異常終了が発生したことを把握することができる。
さらに,開発者は,関数履歴部144に基づいて,パス「C:¥Programfiles¥BP」にあるモジュール「ToolAddFig」のプログラム関数「AddFig」の実行中に,異常終了が発生したことを把握することができる。
そして,開発者は,設計者から作成中の設計データ「設計図01」を受領してログファイル50に基づいて設計者と同じ操作をしたり,プログラム関数「AddFig」をデバッグしたりする等,迅速に対応をとることができる。
その結果,開発者は,例えば検索結果が0件の場合には警告メッセージを出力する処理がプログラム関数「AddFig」に規定されていなく,プログラム関数「AddFig」に対応していない処理を設計支援装置30に実行させる操作がされたために異常終了が起きた等の異常終了の原因を発見することができる。
このように,異常終了が発生したときに,ログデータ生成手段41が正常動作を中断して,その時点での操作情報テーブル47,要素情報テーブル48及び関数履歴テーブル49とをログファイル50に出力する。これにより,開発者はログファイル50に基づいて,異常終了時の状況を把握することができ迅速に対応することができる。
以上の実施の形態をまとめると,次の付記のとおりである。
(付記1)
コンピュータに要素が配置された回路基板の設計データを生成させる設計支援プログラムにおいて,
前記コンピュータに,
操作入力に応答して操作情報を操作記憶部に記憶する操作情報記憶工程と,
前記操作入力に基づいて実行されたプログラムの関数を関数履歴記憶部に記録する実行関数記憶工程と,
前記設計データを生成する所定の機能をコンピュータに実行させるコマンド操作が検出された場合に,選択された要素を取得して要素情報記憶部に記憶する要素情報記憶工程と,
前記所定の機能の異常終了を検出し,前記関数履歴記憶部の関数,前記操作情報記憶部の操作情報及び前記要素情報記憶部の要素をログファイルに出力するログ出力工程とを実行させる設計支援プログラム。
(付記2)
付記1において,
さらに,前記コンピュータに,
前記所定の機能の正常終了を検出したとき,前記関数履歴記憶部,前記操作情報記憶部及び前記要素情報記憶部を初期化する初期化工程を実行させる設計支援プログラム。
(付記3)
付記1において,
前記操作入力が,前記プログラムの関数に対応していない処理を前記コンピュータに実行させる操作入力である場合,前記コンピュータに前記異常終了を検出させる設計支援プログラム。
(付記4)
付記3において,
前記所定の機能は,前記選択された要素の名称の変更であって,
前記操作入力が前記プログラムの関数が入力可能であると規定していない名称を入力する操作入力である場合,前記コンピュータに前記異常終了を検出させる設計支援プログラム。
(付記5)
付記3において,
前記所定の機能は,前記選択された要素の移動であって,
前記操作入力が前記選択された要素を他の要素の上に移動する操作入力である場合,前記コンピュータに前記異常終了を検出させる設計支援プログラム。
(付記6)
付記3において,
前記所定の機能は,前記選択された要素である集積回路のピンの配置変更であって,
前記操作入力が,配置変更の対象となるピンを指定せずにピンを移動させる操作入力である場合,前記コンピュータに前記異常終了を検出させる設計支援プログラム。
(付記7)
付記3において,
前記操作入力が前記要素を定義する要素定義情報に存在しない要素を検索する操作入力である場合,前記コンピュータに前記異常終了を検出させる設計支援プログラム。
(付記8)
付記1において,
前記要素情報記憶工程では,前記コマンド操作の前の操作入力により選択された要素を取得して要素記憶部に記憶する設計支援プログラム。
(付記9)
付記1において,
前記要素情報記憶工程では,前記コマンド操作の後の操作入力により選択された要素を取得して要素記憶部に記憶する設計支援プログラム。
(付記10)
コンピュータにより,要素が配置された集積回路の設計データが生成される設計支援方法において,
前記コンピュータが,操作入力に応答して操作情報を操作情報記憶部に記憶する操作情報記憶工程と,
前記コンピュータが,前記操作入力に基づいて実行されたプログラムの関数を関数履歴記憶部に記録する実行関数記憶工程と,
前記コンピュータが,前記設計データを生成する所定の機能をコンピュータに実行させるコマンド操作が検出された場合に,選択された要素を取得して要素情報記憶部に記憶する要素情報記憶工程と,
前記コンピュータが,前記所定の機能の異常終了を検出し,前記関数履歴記憶部の関数,前記操作情報記憶部の操作情報及び前記要素情報記憶部の要素をログファイルに出力するログ出力工程とを有する設計支援方法。
(付記11)
要素が配置された集積回路の設計データを生成する設計支援装置において,
操作入力に応答して操作情報を操作情報記憶部に記憶する操作情報記憶手段と,
前記操作入力に基づいて実行されたプログラムの関数を関数履歴記憶部に記録する実行関数記憶手段と,
前記設計データを生成する所定の機能を前記設計支援装置に実行させるコマンド操作が入力された場合に,選択された要素を取得して要素情報記憶部に記憶する要素情報記憶手段と,
前記所定の機能の異常終了を検出し,前記関数履歴記憶部の関数,前記操作情報記憶部の操作情報及び前記要素情報記憶部の要素をログファイルに出力するログ出力手段とを有する設計支援装置。