(57)【特許請求の範囲】
【請求項１】
アプリケーション仕様から機能ブロックライブラリで定義される機能ブロックを組み合わせて構成した組合せ回路を生成する手段と、
入力ピンに接続されている機能ブロックの演算が終了した後に演算を開始する条件で、組合せ回路内の各機能ブロックの演算順序を付加する手段と、
前記組合せ回路を、
（１）前記機能ブロックの演算順序を付加する手段が生成した演算順序を記憶する演算順序記憶部と、
（２）少なくとも前記組合せ回路内に使用されている機能ブロックを種類別に１つずつ並列に接続した機能ブロック群と、
（３）入力データ、機能ブロックによる演算結果を逐次記憶する共通のメモリと、
（４）前記メモリに記憶されるデータを、前記機能ブロックへの入力として読み出すメモリ制御部と、
（５）前記読み出されたデータを前記機能ブロック群への入力として選別する入力セレクタと、
（６）前記機能ブロック群の演算結果を選択して前記メモリへ格納する出力セレクタと、及び
（７）前記演算順序に従い、前記メモリ制御部、前記入力セレクタ、及び前記出力セレクタを制御して、前記機能ブロック群の各機能ブロックを実行する演算実行制御部とを有する順序回路へ変換する手段と、
前記順序回路の実行時の演算順序を抽出する手段と、
前記組合せ回路に付加した演算順序と、前記抽出した演算順序との一致を判定する手段を備えたことを特徴とする半導体ＬＳＩ設計装置。
【請求項２】
アプリケーション仕様から機能ブロックライブラリで定義される機能ブロックを組み合わせて構成した組合せ回路を生成する手段と、
入力ピンに接続されている機能ブロックの演算が終了した後に演算を開始する条件で、組合せ回路内の各機能ブロックの演算順序を付加する手段と、
前記組合せ回路を、
（１）前記機能ブロックの演算順序を付加する手段が生成した演算順序を記憶する演算順序記憶部と、
（２）少なくとも前記組合せ回路内に使用されている機能ブロックを種類別に１つずつ並列に接続した機能ブロック群と、
（３）入力データ、機能ブロックによる演算結果を逐次記憶する共通のメモリと、
（４）前記メモリに記憶されるデータを、前記機能ブロックへの入力として読み出すメモリ制御部と、
（５）前記読み出されたデータを前記機能ブロック群への入力として選別する入力セレクタと、
（６）前記機能ブロック群の演算結果を選択して前記メモリへ格納する出力セレクタと、及び
（７）前記演算順序に従い、前記メモリ制御部、前記入力セレクタ、及び前記出力セレクタを制御して、前記機能ブロック群の各機能ブロックを実行する演算実行制御部とを有する順序回路へ変換する手段と、
前記組合せ回路と前記順序回路の等価性を判定する手段を備えたことを特徴とする半導体ＬＳＩ設計装置。
【請求項３】
前記組合せ回路と前記順序回路の等価性を判定する手段は、
前記組合せ回路と前記順序回路へ同一の入力信号を与え、一定時間後の各回路の出力信号を比較し、全ての入力パターンに対して比較結果が一致していれば等価であると判定する手段であることを特徴とする請求項２に記載の半導体ＬＳＩ設計装置。
【請求項４】
アプリケーション仕様から機能ブロックライブラリで定義される機能ブロックを組み合わせて構成した組合せ回路を生成する工程と、
入力ピンに接続されている機能ブロックの演算が終了した後に演算を開始する条件で、組合せ回路内の各機能ブロックの演算順序を付加する工程と、
前記組合せ回路を、
（１）前記機能ブロックの演算順序を付加する手段が生成した演算順序を記憶する演算順序記憶部と、
（２）少なくとも前記組合せ回路内に使用されている機能ブロックを種類別に１つずつ並列に接続した機能ブロック群と、
（３）入力データ、機能ブロックによる演算結果を逐次記憶する共通のメモリと、
（４）前記メモリに記憶されるデータを、前記機能ブロックへの入力として読み出すメモリ制御部と、
（５）前記読み出されたデータを前記機能ブロック群への入力として選別する入力セレクタと、
（６）前記機能ブロック群の演算結果を選択して前記メモリへ格納する出力セレクタと、及び
（７）前記演算順序に従い、前記メモリ制御部、前記入力セレクタ、及び前記出力セレクタを制御して、前記機能ブロック群の各機能ブロックを実行する演算実行制御部とを有する順序回路へ変換する工程と、
前記順序回路の実行時の演算順序を抽出する工程と、
前記組合せ回路に付加した演算順序と、前記抽出した演算実行順序との一致を判定する工程とを有することを特徴とする半導体ＬＳＩ設計方法。
【請求項５】
前記順序回路の実行時の演算順序を抽出する工程と、
前記組合せ回路に付加した演算順序と、前記抽出した演算実行順序との一致を判定する工程に代えて、
前記組合せ回路と前記順序回路の等価性を判定する工程を有することを特徴とする請求項４に記載の半導体ＬＳＩ設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、高い安全性を求められる制御装置に用いる半導体ＬＳＩ設計装置および設計方法に関する。
【背景技術】
【０００２】
原子力プラントにおいて、安全保護系システムは、放射線計測装置、その他各種センサからの入力に基づき、原子炉緊急停止、放射性物質の漏えいを防止する各種バルブの遮断などの制御を行うために設けられている。
【０００３】
従来、制御装置にはマイクロコンピュータが用いられてきたが、機器の多重化による冗長系に同一のソフトウェアを用いた場合には、このソフトウェアの欠陥により機器の多重化の機能が損なわれる可能性がある。また、宇宙線などの放射線が記憶装置のメモリセルに照射されると、電荷が失われデータが書き換わってしまうソフトエラーと呼ばれ現象が発生して偶発的な異常動作が起こる可能性もある。さらに、ソフトウェアの書き換え防止など耐タンパー性が求められ始めている。
そのため、高い安全性を求められる原子力発電所などの制御装置では、セキュリティの向上を目的にプロセッサレスなハードワイヤード方式が求められている。
【０００４】
背景技術として、特許第４３７１８５６号公報（特許文献１）がある。この特許には、「ＡＳＩＣおよびＦＰＧＡから選択されるハードウェアに実装したディジタルロジックを用いて構築された原子炉の安全保護計装システムにおいて、入力の全てのロジックパターンに対する出力のロジックパターンが実装前段階においてあらかじめ検証された機能ユニットと、前記検証済みの機能ユニットを組み合わせて構成した機能モジュールの少なくとも一方を用いてディジタルロジック部分が構成され、前記機能モジュールは、前記検証済みの機能ユニットと同一のロジック構成を有する機能ユニットのみで構成されたことを特徴とする安全保護計装システム。」と記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４３７１８５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
原子力発電所の制御装置でのセキュリティの向上を目的に、プロセッサレスなハードワイヤード方式への要求に応えるため、特許文献１では、信頼性の高いディジタル信号処理装置で構成される安全保護計装システムおよびその取扱方法について記載されている。しかし、ＡＳＩＣやＦＰＧＡに実装する際の使用リソース数の削減は考慮されていない。
【０００７】
例えば、高安全制御装置を構成するため、ＦＰＧＡはソフトエラー耐性の高いＦｌａｓｈ型のＦＰＧＡを用いることが考えられるが、Ｆｌａｓｈ型のＦＰＧＡは一般にＳＲＡＭ型のＦＰＧＡと比較して搭載可能な論理規模が小さい課題がある。
【０００８】
また、もう１つの例として、低コスト化を目的に、安価なＦＰＧＡを採用する場合には、１つのＦＰＧＡに搭載可能な論理規模が小さい。そのため、制御論理を１つのＦＰＧＡに実装できず複数チップにまたがることとなり、論理の複雑化や検証コストの増大などが課題となる。
よって、ＦＰＧＡなどのデバイスの使用リソース数は、高安全制御装置の実現に重要な要素の１つである。
【０００９】
そこで、本発明では、制御装置の論理実装に必要なリソースの削減技術を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために本発明の半導体ＬＳＩ設計装置を、アプリケーション仕様から機能ブロックライブラリで定義される機能ブロックを組み合わせて構成した組合せ回路を生成する手段と、入力ピンに接続されている機能ブロックの演算が終了した後に演算を開始する条件で、組合せ回路内の各機能ブロックの演算順序を付加する手段と、前記組合せ回路を機能ブロックを時分割で複数回使用する順序回路へ変換する手段と、前記順序回路の実行時の演算順序を抽出する手段と、前記組合せ回路に付加した演算順序と、前記抽出した演算順序との一致を判定する手段とを備えて構成する。
【００１１】
また、上記課題を解決するために本発明の半導体ＬＳＩ設計装置を、アプリケーション仕様から機能ブロックライブラリで定義される機能ブロックを組み合わせて構成した組合せ回路を生成する手段と、入力ピンに接続されている機能ブロックの演算が終了した後に演算を開始する条件で、組合せ回路内の各機能ブロックの演算順序を付加する手段と、前記組合せ回路を機能ブロックを時分割で複数回使用する順序回路へ変換する手段と、前記組合せ回路と前記順序回路の等価性を判定する手段とを備えて構成する。
【００１２】
また、本発明の他の特徴として、前記半導体ＬＳＩ設計装置において、前記組合せ回路を機能ブロックを時分割で複数回使用する順序回路へ変換する手段は、前記組合せ回路を、前記機能ブロックの演算順序を付加する手段が生成した演算順序を記憶する演算順序記憶部と、少なくとも前記組合せ回路内に使用されている機能ブロックを種類別に１つずつ並列に接続した機能ブロック群と、入力データ、機能ブロックによる演算結果を逐次記憶するメモリと、前記メモリに記憶されるデータを、前記機能ブロックへの入力として読み出すメモリ制御部と、前記読み出されたデータを前記機能ブロック群への入力として選別する入力セレクタと、前記機能ブロック群の演算結果を選択して前記メモリへ格納する出力セレクタと、及び前記演算順序に従い、前記メモリ制御部、前記入力セレクタ、及び前記出力セレクタを制御する演算実行制御部とを有する順序回路へ変換する手段であるように構成する。
【００１３】
また、上記課題を解決するために本発明の半導体ＬＳＩ設計方法を、アプリケーション仕様から機能ブロックライブラリで定義される機能ブロックを組み合わせて構成した組合せ回路を生成する工程と、入力ピンに接続されている機能ブロックの演算が終了した後に演算を開始する条件で、組合せ回路内の各機能ブロックの演算順序を付加する工程と、前記組合せ回路を機能ブロックを時分割で複数回使用する順序回路へ変換する工程と、前記順序回路の実行時の演算順序を抽出する工程と、前記組合せ回路に付加した演算順序と、前記抽出した演算実行順序との一致を判定する工程とを有するように構成する。
【発明の効果】
【００１４】
本発明によれば、制御装置の論理実装に必要なリソースを削減できる。
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１の実施形態に係る半導体ＬＳＩ設計装置の構成図の例である。
【図２】本発明の第１の実施形態に係る制御回路設計部における処理のフローチャートの例である。
【図３】本発明の第１の実施形態に係る組合せ回路設計部が出力した組合せ回路ＨＤＬのブロック図の例である。
【図４】本発明の第１の実施形態に係る演算順序付加部のフローチャートの例である。
【図５】本発明の第１の実施形態に係る演算順序付加部が生成した演算順序情報テーブルの例である。
【図６】本発明の第１の実施形態に係る組合せ回路−順序回路変換部で生成する順序回路の例である。
【図７】本発明の第２の実施形態に係る制御回路設計部における処理のフローチャートの例である。
【図８】本発明の第３の実施形態に係る半導体ＬＳＩ設計装置の構成図の例である。
【図９】本発明の第３の実施形態に係る制御回路設計部における処理のフローチャートの例である。
【発明を実施するための形態】
【００１６】
以下、実施例を図面を用いて説明する。
【実施例１】
【００１７】
図１は、本実施例の半導体ＬＳＩ設計装置１００の構成図の例である。
半導体ＬＳＩ設計装置１００は、汎用の計算機上に構成することができて、そのハードウェア構成は、ＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）などにより構成される演算部１１０、ＲＯＭ（Read Only Memory）、ＨＤＤ（Hard Disk Drive）、フラッシュメモリなどを用いたＳＳＤ（Solid State Drive）などにより構成される記憶部１２０、キーボードやマウス等の入力デバイスより構成される入力部１３０、ＣＲＴディスプレイ、ＬＣＤ（Liquid Crystal Display）、有機ＥＬディスプレイなどの表示装置、各種出力装置などにより構成される表示・出力部１４０、ＣＤ−ＲＯＭ、ＵＳＢメモリなどの可搬性を有する可搬型記憶媒体の情報を読み出すメディア読取部１５０、ＮＩＣ（Network Interface Card）などにより構成される通信部１６０、などを備える。
通信部１６０は、ネットワーク１７０を介して外部の論理回路シミュレータ１８１、論理合成装置１８２、および半導体ＬＳＩ製造装置１９０と接続されている。
【００１８】
演算部１１０は、記憶部１２０に記憶されている制御回路設計プログラム(図示せず)をＲＡＭへロードしてＣＰＵで実行することにより以下の各機能部を有する制御回路設計部１０１を実現する。制御回路設計部１０１は、制御回路設計者(ユーザ)にユーザインタフェースを提供して制御回路設計者(ユーザ)による機能ブロックの組合せ回路１０の設計を支援する組合せ回路設計部１１１と、前記組合せ回路設計部１１１が出力する組合せ回路ＨＤＬ１０内の各機能ブロックの演算順序情報５０を抽出して出力する演算順序付加部１１２と、前記演算順序情報５０の通りに機能ブロック演算を実行する順序回路に変換し、順序回路ＨＤＬ６０を出力する組合せ回路−順序回路変換部１１３と、前記順序回路ＨＤＬ６０の演算順序７０を抽出する演算実行順序抽出部１１４と、前記演算順序付加部１１２が出力した演算順序情報５０と前記演算実行順序抽出部１１４が出力した順序回路ＨＤＬ６０の演算順序７０とが等しいことを判定して、演算順序判定結果８０を出力する演算順序判定部１１５から構成される。
【００１９】
記憶部１２０は、複数アプリケーションの制御回路で共通に使用する各種機能ブロックを登録した機能ブロックライブラリ１２１を有する。機能ブロックは、論理演算、四則演算、積分演算などであり、回路規模は多様であるが、機能ブロックに対する全入力パターンに対する出力パターンが、設計仕様から期待される予測値のパターンと全て一致していることを確認することが可能なロジック規模である。各機能ブロックは予め、プロパティ検証やダイナミック検証などで検証されて登録された検証済みＨＤＬライブラリである。
【００２０】
記憶部１２０は更に、前記組合せ回路設計部１１１が出力する組合せ回路ＨＤＬ１０を記憶する組合せ回路ＨＤＬ記憶領域１２２と、前記演算順序付加部１１２が出力する演算順序情報５０を記憶する演算順序記憶領域１２３と、前記組合せ回路−順序回路変換部１１３が出力する順序回路ＨＤＬ６０を記憶する順序回路ＨＤＬ記憶領域１２４と、前記演算実行順序抽出部１１４が出力する順序回路ＨＤＬ６０の演算順序７０を記憶する順序回路の演算順序記憶領域１２５と、前記演算順序判定部１１５が出力する演算順序判定結果８０を記憶する演算順序判定結果記憶領域１２６とを有する。
【００２１】
図２は、制御回路設計部１０１における処理のフローチャートを示す。  
組合せ回路設計部１１１は、表示・出力部１４０にユーザインタフェースを提示して、制御回路設計者(ユーザ)がこれから設計を行う制御回路を、アプリケーション仕様１０２に基づいて、ハードウェア記述言語形式で、または機能ブロックを表わす図形を配置する入力形式などにより、入力部１３０より入力する情報を受け付けて、組合せ回路を生成する。組合せ回路設計部１１１は、機能ブロックライブラリ１２１に登録されている機能ブロックのメニューを提示して、制御回路設計者(ユーザ)は、メニュー内の機能ブロックを自由に配置して、配置された各機能ブロック間を配線して、入出力ピンを付加して、アプリケーション仕様１０２を実現する組合せ回路の設計を行う。組合せ回路設計部１１１は、ＨＤＬ形式の組合せ回路ＨＤＬ１０を出力して、組合せ回路ＨＤＬ記憶領域１２２に記憶する。
【００２２】
図３は、組合せ回路設計部１１１が出力した組合せ回路ＨＤＬ１０のブロック図の例である。図３の例では、４つの機能ブロック（２１〜２４）を並べて配置し、入力ピン（３１〜３４）と出力ピン（３５〜３６）を配置し、機能ブロック２１〜２４間、および機能ブロックと入出力ピンの間を配線（W０１〜W１０）で結線し、４入力２出力のアプリケーションを実現している。
【００２３】
図２に示す演算順序付加部１１２は、組合せ回路設計部１１１で作成した組合せ回路ＨＤＬ１０において、次に示す制約条件を基に、各機能ブロックに演算順序を付与する。制約条件は、「ある機能ブロックＸの演算順序は、機能ブロックＸの入力ピンに接続されている全ての機能ブロックの演算順序より後方である」という条件である。
【００２４】
図４は、演算順序付加部１１２の処理の例をフローチャートで示したものである。図４のフローチャートに基づく動作は下記の通りである。  
ステップＳ１０１：組合せ回路設計部１１１で作成した組合せ回路ＨＤＬ１０を読み込む。
ステップＳ１０２：組合せ回路ＨＤＬ１０内の配置済み機能ブロック情報を収集し、データＣとする。例えば、Ｃ＝｛“ブロックA”，“ブロックB”，“ブロックC”，“ブロックB”｝のような集合。
ステップＳ１０３：付与する演算順序を表す変数ｏｒｄｅｒを１に初期化する。
ステップＳ１０４：演算順序を付与するデータＣ内の機能ブロックを指し示す変数ｉを１に初期化する。
【００２５】
ステップＳ１０５：前記変数ｉが指し示す機能ブロックの演算順序を付与可能か判定する。なお、変数ｉが指し示す機能ブロックに演算順序が付与されておらず、かつ、該機能ブロックの入力ピンに接続されている全ての機能ブロックに演算順序が付与されている時に、演算順序を付与可能と判定する。
ステップＳ１０６：変数ｉに１を加え、次の機能ブロックへ処理を移す。
ステップＳ１０７：変数ｉが指し示す機能ブロックに演算順序を付与する。付与する値は、前記変数ｏｒｄｅｒとする。
ステップＳ１０８：変数ｏｒｄｅｒに１を加え、付与する演算順序を変更する。
ステップＳ１０９：全ての機能ブロックに演算順序を付与したか判定するため、変数ｏｒｄｅｒとＣの要素数を比較する。例えば、ｏｒｄｅｒがＣの要素数より小さいとき、演算順序未付与の機能ブロックが存在する。
【００２６】
ステップＳ１１０：付与した演算順序を図５に示す演算順序情報５０テーブル形式に作成して、出力する。演算順序情報テーブルのブロックＩＤ欄５０ａは機能ブロックを指し示す変数ｉの値であり、演算順序欄５０ｂは付与した演算順序であり、ブロック種類欄５０ｃは機能ブロックライブラリに登録された機能ブロックを識別する種類のデータであり、接続情報の入力欄５０ｄは該当機能ブロックの入力ピンに接続する配線を識別する符号データであり、接続情報の出力欄５０ｅは該当機能ブロックの出力ピンに接続する配線を識別する符号データをそれぞれ格納する。図５の演算順序情報テーブルは、図３に示す組合せ回路ＨＤＬ１０の例を格納している。演算順序付加部１１２は、演算順序情報５０を演算順序記憶領域１２３に記憶する。
なお、図４のフローチャートは演算順序付加部１１２の実現方法の一例であり、例えば、設計者が演算順序を付加するなどしても良い。
【００２７】
図２に示す組合せ回路−順序回路変換部１１３は、組合せ回路設計部１１１が出力した組合せ回路ＨＤＬ１０と、演算順序付加部１１２が出力した演算順序情報５０とを入力して、及び機能ブロックライブラリ１２１を参照して、順序回路ＨＤＬ６０を作成する。組合せ回路ＨＤＬを、順序回路ＨＤＬに変換する形式を図６に示す。
【００２８】
図６は、組合せ回路−順序回路変換部１１３が出力する順序回路ＨＤＬ６０の構成例（２００）である。組合せ回路−順序回路変換部１１３では、演算順序付加部１１２で付加した演算順序５０に従い各機能ブロックの演算を実行する順序回路を生成する。生成する順序回路２００は、演算順序記憶部２０１と、演算制御部２０２と、機能ブロック群２０３で構成される。
【００２９】
演算順序記憶部２０１には、図５に示す演算順序情報５０のうち、演算順序欄５０ｂ、ブロック種類欄５０ｃ、接続情報の入力欄５０ｄ、及び接続情報の出力欄５０ｅの各データを格納する。
【００３０】
演算制御部２０２は、例えば、メモリ２０４と、メモリ制御部２０５と、メモリ入力セレクタ２０６と、メモリ出力セレクタ２０７と、入力セレクタ２０８と、出力セレクタ２０９と、演算実行制御部２１０から構成される。
【００３１】
機能ブロック群２０３は、組合せ回路ＨＤＬ１０内に使用されている機能ブロックを対象として、種類別に１つずつ並列に入力セレクタ２０８と、出力セレクタ２０９に接続して構成する。
演算制御部２０２と機能ブロックは予め検証しておく。
【００３２】
本順序回路２００の動作は下記の通りである。
動作１：入力データ（Ｉｎ１〜Ｉｎ４）は、メモリ入力セレクタ２０６により、１データが選択され、メモリ制御部２０５が制御するメモリ２０４に配線(接続)情報を付加して格納される。
動作２：演算実行制御部２１０は、演算順序に従い、演算順序記憶部２０１に格納されている次に実行するブロック種類、接続情報(入力、出力)を取得する。
【００３３】
動作３：メモリ制御部２０５がメモリ２０４を制御し、メモリ２０４から入力データを接続情報に従いリードする。リードデータは、入力セレクタ２０８を通り、順番にＦＦに格納される。入力セレクタ２０８は、演算実行制御部２１０が制御する。
動作４：機能ブロック群２０３で各機能ブロックの演算が実行される。
動作５：演算実行した機能ブロックの各出力を出力セレクタ２０９が順番に選択し、メモリ２０４に接続情報を付加して順番に格納する。出力セレクタ２０９は演算実行制御部２１０に制御される。
【００３４】
動作６：演算順序記憶部２０１に格納されている全てのデータに対して、動作２から動作５までを実行する。
動作７：メモリ２０４に格納されているデータのうち、演算結果データを順番にリードし、メモリ出力セレクタ２０７が各出力ポートに出力する。
なお、図６は順序回路ＨＤＬ６０で表される回路の一例であり、例えば、入力データを直接ＦＦに書き込み、メモリ２０４を持たない構成としても良い。
【００３５】
また、機能ブロック群２０３には、機能ブロックライブラリ１２１に含まれる全ての種類の機能ブロックを搭載しても良いし、演算順序情報５０を参照し、使用する機能ブロックのみを搭載してもよい。
【００３６】
組合せ回路−順序回路変換部１１３は、作成した順序回路ＨＤＬ６０を順序回路ＨＤＬ記憶領域１２４に格納する。
【００３７】
図２に示す演算実行順序抽出部１１４は、組合せ回路−順序回路変換部１１３が出力した順序回路ＨＤＬ６０を解析し、機能ブロック群２０３の各機能ブロックが演算実行される順番を取得する。順序回路ＨＤＬ６０の解析方法としては、例えば、ＨＤＬシミュレーションを実行することが考えられる。図６の例では、順序回路２００のＨＤＬシミュレーションを実行し、どの機能ブロックの出力信号が出力セレクタ２０９で選択されたかを確認し、機能ブロックの演算実行順序を取得する。出力セレクタの選択は、演算実行制御部２１０から出力セレクタへの制御信号により制御されるため、演算実行制御部の出力信号を監視し、演算実行順序を取得しても良い。
【００３８】
演算実行順序抽出部１１４の処理は、図１に示す例では、外部計算機に実装されている公知の論理回路シミュレータ１８１を使用して計算することでもよいし、または論理回路シミュレータが半導体ＬＳＩ設計装置１００に実装されていて、それを使用することでもよい。演算実行順序抽出部１１４が解析して出力した順序回路ＨＤＬ６０の演算順序７０は、順序回路の演算順序記憶領域１２５に記憶される。
【００３９】
図２に示す演算順序判定部１１５は、演算実行順序抽出部１１４が解析した順序回路ＨＤＬ６０の演算順序７０と、演算順序付加部１１２が生成した演算順序情報５０とが等しいことを判定し、演算順序判定結果８０として出力し、演算順序判定結果記憶領域１２６に記憶する。演算順序判定結果８０が「等しい」場合、組合せ回路−順序回路変換が正しく実行されたと判断する。これは、図６の回路構成要素において、演算制御部２０２と機能ブロック群２０３は検証済みであるため、未検証の回路構成要素は演算順序記憶部２０１のみであることから、順序回路ＨＤＬ６０の演算順序７０が正しければ、演算実行順序を格納している演算順序記憶部２０１は正しく動作していると見なせるからである。
【００４０】
なお、演算順序判定結果８０が「等しくない」場合は、演算順序付加部１１２で作成した演算順序情報５０を演算順序記憶部２０１へ記憶する処理を先ず疑うことになる。
【００４１】
順序回路ＨＤＬ記憶領域１２４に記憶された順序回路ＨＤＬ６０は、演算順序判定結果８０が「等しい」と判定された場合に、論理合成装置１８２に送られて論理合成と配置配線処理が行われ、順序回路ネットリストが作成される。この順序回路ネットリストは、半導体ＬＳＩ製造装置１９０などへ送られて、ＡＳＩＣまたはＦＰＧＡへ実装される。
なお、公知の論理回路シミュレータ、論理合成ツールを半導体ＬＳＩ設計装置１００に実装する構成も考えられる。その場合には、一連の設計処理を演算部１１０において実行することになる。
【００４２】
以上に説明する通り、本実施例によれば、同種類の機能ブロックを複数実行する組合せ回路を、同種類の機能ブロックは１つの機能ブロックを複数回時分割で使用する順序回路へ変換することで、回路使用リソースを削減できる。例えば、５０種類の機能ブロックを組合せ、合計１０，０００回機能ブロックを使用するアプリケーションの場合、組合せ回路では機能ブロックを１０，０００個配置するが、順序回路では機能ブロックを５０個のみ配置する。そのため、機能ブロックの実装に用いる回路リソースは５０／１００００＝１／２００となる。複雑なアナログ計算を実現する機能ブロックが使われるアプリケーション、例えば核計装などでは、機能ブロックの使用リソースが支配的であるため、全体の回路使用リソースの削減効果は大きくなり、演算順序記憶部と演算制御部の使用リソースを加味しても、全体の回路使用リソースを１／１００程度に削減することができると考えられる。これにより、高安全制御装置の論理を少ない回路リソースで実現できる。
【実施例２】
【００４３】
図７は、第２の実施例を示す。図２と同じ構成要素には同じ符号を付してあり、構成、動作が同じであるので、説明を省略する。本実施例は、順序回路ＨＤＬ６０の正当性を検証するために、付与した演算順序５０と順序回路での演算実行順序７０とを比較する代わりに、組合せ回路ＨＤＬ１０と順序回路ＨＤＬ６０の等価性を判定するものである。図７を参照して、実施例１から変更がある構成要素についてのみ、以下に説明する。
【００４４】
等価性判定部１１６は、組合せ回路設計部１１１が出力する組合せ回路ＨＤＬ１０と組合せ回路−順序回路変換部１１３が出力する順序回路ＨＤＬ６０の等価性を判定し、判定結果を等価性判定結果９０として出力する。等価性判定結果９０が「等価」である場合、組合せ回路−順序回路変換が正しく実行されたと判定できる。等価性の判定方法としては、例えば、組合せ回路ＨＤＬ１０で表される組合せ回路と順序回路ＨＤＬ６０で表される順序回路に同一の入力信号を与え、一定時間後の各回路の出力信号を比較するという方法がある。図３と図６を例に取ると、各回路のＩｎ１〜Ｉｎ４に同一の入力信号を与え、一定時間後の各回路のＯｕｔ１同士とＯｕｔ２同士を比較する。全ての入力パターンに対して、比較結果が一致していれば、等価であると判定する。
【００４５】
このように変更することにより、順序回路ＨＤＬ６０と組合せ回路ＨＤＬ１０の演算結果が一致することを検証できるため、順序回路ＨＤＬ６０の正当性検証をより確度高く実行できる。これにより、高安全制御装置の論理を少ない回路リソースで実現できる。
【実施例３】
【００４６】
図９は、第３の実施例を示す。図２と同じ構成要素には同じ符号を付してあり、構成、動作が同じであるので、説明を省略する。論理合成配置配線部１１７は、順序回路ＨＤＬ６０を読み込み、ＡＳＩＣまたはＦＰＧＡへ実装するための論理合成と配置配線を行い、順序回路ネットリスト９１を出力する。論理等価性判定部１１８は、順序回路ＨＤＬ６０と順序回路ネットリスト９１の論理等価性を判定する。論理等価性の判定方法は、等価性判定部１１６と同様の方法とする。
【００４７】
このように変更することにより、回路使用リソースの少ない順序回路をＡＳＩＣまたはＦＰＧＡへ実装可能となる。順序回路の正当性は、演算順序判定部１１５と論理等価性判定部１１８により、判定することができる。これにより、高安全制御装置の論理を少ない回路リソースで実現し、ＡＳＩＣまたはＦＰＧＡへ実装することが可能となる。
【００４８】
第３の実施例の半導体ＬＳＩ設計装置１００の構成図の例を図８に示す。論理合成配置配線部１１７の処理は、順序回路ＨＤＬ記憶領域１２４に記憶されている順序回路ＨＤＬ６０を、外部計算機に実装されている公知の論理合成ツール１８２へ送って、論理合成処理を委託して、処理結果の順序回路ネットリスト９１を受け取り、順序回路ネットリスト記憶領域１２７へ記憶する。または、論理合成ツールを半導体ＬＳＩ設計装置１００に実装しておき、演算部１１０において論理合成配置配線処理を実行する構成であってもよい。
【００４９】
順序回路ネットリスト記憶領域１２７に記憶された順序回路ネットリスト９１は、等価性判定結果９２、および演算順序判定結果８０が共に「等しい」と判定された場合に、半導体ＬＳＩ製造装置１９０などへ送られて、ＡＳＩＣまたはＦＰＧＡへ実装される。
【００５０】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Solid State Drive）等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【符号の説明】
【００５１】
１０  組合せ回路ＨＤＬ
５０  演算順序情報
６０  順序回路ＨＤＬ
７０  順序回路ＨＤＬの演算順序
８０  演算順序判定結果
９１  順序回路ネットリスト
９２  等価性判定結果
１００  半導体ＬＳＩ設計装置
１０１  制御回路設計部
１０２  アプリケーション仕様
１１０  演算部
１１１  組合せ回路設計部
１１２  演算順序付加部
１１３  組合せ回路−順序回路変換部
１１４  演算実行順序抽出部
１１５  演算順序判定部
１１６  等価性判定部
１１７  論理合成配置配線部
１１８  論理等価性判定部
１２０  記憶部
１２１  機能ブロックライブラリ
１２２  組合せ回路ＨＤＬ記憶領域
１２３  演算順序記憶領域
１２４  順序回路ＨＤＬ記憶領域
１２５  順序回路の演算順序記憶領域
１２６  演算順序判定結果記憶領域
１２７  順序回路ネットリスト記憶領域
１２８  等価性判定結果記憶領域
１３０  入力部
１４０  表示・出力部
１５０  メディア読取部
１６０  通信部
１７０  ネットワーク
１８１  論理回路シミュレータ
１８２  論理合成装置
１９０  半導体ＬＳＩ製造装置
２００  順序回路
２０１  演算順序記憶部
２０２  演算制御部
２０３  機能ブロック群
２０４  メモリ
２０５  メモリ制御部
２０６  メモリ入力セレクタ
２０７  メモリ出力セレクタ
２０８  入力セレクタ
２０９  出力セレクタ
２１０  演算実行制御部
【図１】
0006663801.tif 000002
【図２】
0006663801.tif 000003
【図３】
0006663801.tif 000004
【図４】
0006663801.tif 000005
【図５】
0006663801.tif 000006
【図６】
0006663801.tif 000007
【図７】
0006663801.tif 000008
【図８】
0006663801.tif 000009
【図９】
0006663801.tif 000010