JP6663801B2 - 半導体lsi設計装置および設計方法 - Google Patents

半導体lsi設計装置および設計方法 Download PDF

Info

Publication number
JP6663801B2
JP6663801B2 JP2016118531A JP2016118531A JP6663801B2 JP 6663801 B2 JP6663801 B2 JP 6663801B2 JP 2016118531 A JP2016118531 A JP 2016118531A JP 2016118531 A JP2016118531 A JP 2016118531A JP 6663801 B2 JP6663801 B2 JP 6663801B2
Authority
JP
Japan
Prior art keywords
circuit
operation order
input
functional block
combinational circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016118531A
Other languages
English (en)
Other versions
JP2017224128A (ja
Inventor
巧 上薗
巧 上薗
鳥羽 忠信
忠信 鳥羽
雄介 菅野
雄介 菅野
雅裕 白石
雅裕 白石
英雄 原田
英雄 原田
悟史 西川
悟史 西川
徹 本谷
徹 本谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2016118531A priority Critical patent/JP6663801B2/ja
Priority to CN201710224087.4A priority patent/CN107526861B/zh
Priority to EP17174833.8A priority patent/EP3258401A1/en
Priority to US15/622,805 priority patent/US10339242B2/en
Publication of JP2017224128A publication Critical patent/JP2017224128A/ja
Application granted granted Critical
Publication of JP6663801B2 publication Critical patent/JP6663801B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/343Logical level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/20Configuration CAD, e.g. designing by assembling or positioning modules selected from libraries of predesigned modules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2115/00Details relating to the type of the circuit
    • G06F2115/06Structured ASICs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2115/00Details relating to the type of the circuit
    • G06F2115/08Intellectual property [IP] blocks or IP cores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本発明は、高い安全性を求められる制御装置に用いる半導体LSI設計装置および設計方法に関する。
原子力プラントにおいて、安全保護系システムは、放射線計測装置、その他各種センサからの入力に基づき、原子炉緊急停止、放射性物質の漏えいを防止する各種バルブの遮断などの制御を行うために設けられている。
従来、制御装置にはマイクロコンピュータが用いられてきたが、機器の多重化による冗長系に同一のソフトウェアを用いた場合には、このソフトウェアの欠陥により機器の多重化の機能が損なわれる可能性がある。また、宇宙線などの放射線が記憶装置のメモリセルに照射されると、電荷が失われデータが書き換わってしまうソフトエラーと呼ばれ現象が発生して偶発的な異常動作が起こる可能性もある。さらに、ソフトウェアの書き換え防止など耐タンパー性が求められ始めている。
そのため、高い安全性を求められる原子力発電所などの制御装置では、セキュリティの向上を目的にプロセッサレスなハードワイヤード方式が求められている。
背景技術として、特許第4371856号公報(特許文献1)がある。この特許には、「ASICおよびFPGAから選択されるハードウェアに実装したディジタルロジックを用いて構築された原子炉の安全保護計装システムにおいて、入力の全てのロジックパターンに対する出力のロジックパターンが実装前段階においてあらかじめ検証された機能ユニットと、前記検証済みの機能ユニットを組み合わせて構成した機能モジュールの少なくとも一方を用いてディジタルロジック部分が構成され、前記機能モジュールは、前記検証済みの機能ユニットと同一のロジック構成を有する機能ユニットのみで構成されたことを特徴とする安全保護計装システム。」と記載されている。
特許第4371856号公報
原子力発電所の制御装置でのセキュリティの向上を目的に、プロセッサレスなハードワイヤード方式への要求に応えるため、特許文献1では、信頼性の高いディジタル信号処理装置で構成される安全保護計装システムおよびその取扱方法について記載されている。しかし、ASICやFPGAに実装する際の使用リソース数の削減は考慮されていない。
例えば、高安全制御装置を構成するため、FPGAはソフトエラー耐性の高いFlash型のFPGAを用いることが考えられるが、Flash型のFPGAは一般にSRAM型のFPGAと比較して搭載可能な論理規模が小さい課題がある。
また、もう1つの例として、低コスト化を目的に、安価なFPGAを採用する場合には、1つのFPGAに搭載可能な論理規模が小さい。そのため、制御論理を1つのFPGAに実装できず複数チップにまたがることとなり、論理の複雑化や検証コストの増大などが課題となる。
よって、FPGAなどのデバイスの使用リソース数は、高安全制御装置の実現に重要な要素の1つである。
そこで、本発明では、制御装置の論理実装に必要なリソースの削減技術を提供することを目的とする。
上記課題を解決するために本発明の半導体LSI設計装置を、アプリケーション仕様から機能ブロックライブラリで定義される機能ブロックを組み合わせて構成した組合せ回路を生成する手段と、入力ピンに接続されている機能ブロックの演算が終了した後に演算を開始する条件で、組合せ回路内の各機能ブロックの演算順序を付加する手段と、前記組合せ回路を機能ブロックを時分割で複数回使用する順序回路へ変換する手段と、前記順序回路の実行時の演算順序を抽出する手段と、前記組合せ回路に付加した演算順序と、前記抽出した演算順序との一致を判定する手段とを備えて構成する。
また、上記課題を解決するために本発明の半導体LSI設計装置を、アプリケーション仕様から機能ブロックライブラリで定義される機能ブロックを組み合わせて構成した組合せ回路を生成する手段と、入力ピンに接続されている機能ブロックの演算が終了した後に演算を開始する条件で、組合せ回路内の各機能ブロックの演算順序を付加する手段と、前記組合せ回路を機能ブロックを時分割で複数回使用する順序回路へ変換する手段と、前記組合せ回路と前記順序回路の等価性を判定する手段とを備えて構成する。
また、本発明の他の特徴として、前記半導体LSI設計装置において、前記組合せ回路を機能ブロックを時分割で複数回使用する順序回路へ変換する手段は、前記組合せ回路を、前記機能ブロックの演算順序を付加する手段が生成した演算順序を記憶する演算順序記憶部と、少なくとも前記組合せ回路内に使用されている機能ブロックを種類別に1つずつ並列に接続した機能ブロック群と、入力データ、機能ブロックによる演算結果を逐次記憶するメモリと、前記メモリに記憶されるデータを、前記機能ブロックへの入力として読み出すメモリ制御部と、前記読み出されたデータを前記機能ブロック群への入力として選別する入力セレクタと、前記機能ブロック群の演算結果を選択して前記メモリへ格納する出力セレクタと、及び前記演算順序に従い、前記メモリ制御部、前記入力セレクタ、及び前記出力セレクタを制御する演算実行制御部とを有する順序回路へ変換する手段であるように構成する。
また、上記課題を解決するために本発明の半導体LSI設計方法を、アプリケーション仕様から機能ブロックライブラリで定義される機能ブロックを組み合わせて構成した組合せ回路を生成する工程と、入力ピンに接続されている機能ブロックの演算が終了した後に演算を開始する条件で、組合せ回路内の各機能ブロックの演算順序を付加する工程と、前記組合せ回路を機能ブロックを時分割で複数回使用する順序回路へ変換する工程と、前記順序回路の実行時の演算順序を抽出する工程と、前記組合せ回路に付加した演算順序と、前記抽出した演算実行順序との一致を判定する工程とを有するように構成する。
本発明によれば、制御装置の論理実装に必要なリソースを削減できる。
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
本発明の第1の実施形態に係る半導体LSI設計装置の構成図の例である。 本発明の第1の実施形態に係る制御回路設計部における処理のフローチャートの例である。 本発明の第1の実施形態に係る組合せ回路設計部が出力した組合せ回路HDLのブロック図の例である。 本発明の第1の実施形態に係る演算順序付加部のフローチャートの例である。 本発明の第1の実施形態に係る演算順序付加部が生成した演算順序情報テーブルの例である。 本発明の第1の実施形態に係る組合せ回路−順序回路変換部で生成する順序回路の例である。 本発明の第2の実施形態に係る制御回路設計部における処理のフローチャートの例である。 本発明の第3の実施形態に係る半導体LSI設計装置の構成図の例である。 本発明の第3の実施形態に係る制御回路設計部における処理のフローチャートの例である。
以下、実施例を図面を用いて説明する。
図1は、本実施例の半導体LSI設計装置100の構成図の例である。
半導体LSI設計装置100は、汎用の計算機上に構成することができて、そのハードウェア構成は、CPU(Central Processing Unit)、RAM(Random Access Memory)などにより構成される演算部110、ROM(Read Only Memory)、HDD(Hard Disk Drive)、フラッシュメモリなどを用いたSSD(Solid State Drive)などにより構成される記憶部120、キーボードやマウス等の入力デバイスより構成される入力部130、CRTディスプレイ、LCD(Liquid Crystal Display)、有機ELディスプレイなどの表示装置、各種出力装置などにより構成される表示・出力部140、CD−ROM、USBメモリなどの可搬性を有する可搬型記憶媒体の情報を読み出すメディア読取部150、NIC(Network Interface Card)などにより構成される通信部160、などを備える。
通信部160は、ネットワーク170を介して外部の論理回路シミュレータ181、論理合成装置182、および半導体LSI製造装置190と接続されている。
演算部110は、記憶部120に記憶されている制御回路設計プログラム(図示せず)をRAMへロードしてCPUで実行することにより以下の各機能部を有する制御回路設計部101を実現する。制御回路設計部101は、制御回路設計者(ユーザ)にユーザインタフェースを提供して制御回路設計者(ユーザ)による機能ブロックの組合せ回路10の設計を支援する組合せ回路設計部111と、前記組合せ回路設計部111が出力する組合せ回路HDL10内の各機能ブロックの演算順序情報50を抽出して出力する演算順序付加部112と、前記演算順序情報50の通りに機能ブロック演算を実行する順序回路に変換し、順序回路HDL60を出力する組合せ回路−順序回路変換部113と、前記順序回路HDL60の演算順序70を抽出する演算実行順序抽出部114と、前記演算順序付加部112が出力した演算順序情報50と前記演算実行順序抽出部114が出力した順序回路HDL60の演算順序70とが等しいことを判定して、演算順序判定結果80を出力する演算順序判定部115から構成される。
記憶部120は、複数アプリケーションの制御回路で共通に使用する各種機能ブロックを登録した機能ブロックライブラリ121を有する。機能ブロックは、論理演算、四則演算、積分演算などであり、回路規模は多様であるが、機能ブロックに対する全入力パターンに対する出力パターンが、設計仕様から期待される予測値のパターンと全て一致していることを確認することが可能なロジック規模である。各機能ブロックは予め、プロパティ検証やダイナミック検証などで検証されて登録された検証済みHDLライブラリである。
記憶部120は更に、前記組合せ回路設計部111が出力する組合せ回路HDL10を記憶する組合せ回路HDL記憶領域122と、前記演算順序付加部112が出力する演算順序情報50を記憶する演算順序記憶領域123と、前記組合せ回路−順序回路変換部113が出力する順序回路HDL60を記憶する順序回路HDL記憶領域124と、前記演算実行順序抽出部114が出力する順序回路HDL60の演算順序70を記憶する順序回路の演算順序記憶領域125と、前記演算順序判定部115が出力する演算順序判定結果80を記憶する演算順序判定結果記憶領域126とを有する。
図2は、制御回路設計部101における処理のフローチャートを示す。
組合せ回路設計部111は、表示・出力部140にユーザインタフェースを提示して、制御回路設計者(ユーザ)がこれから設計を行う制御回路を、アプリケーション仕様102に基づいて、ハードウェア記述言語形式で、または機能ブロックを表わす図形を配置する入力形式などにより、入力部130より入力する情報を受け付けて、組合せ回路を生成する。組合せ回路設計部111は、機能ブロックライブラリ121に登録されている機能ブロックのメニューを提示して、制御回路設計者(ユーザ)は、メニュー内の機能ブロックを自由に配置して、配置された各機能ブロック間を配線して、入出力ピンを付加して、アプリケーション仕様102を実現する組合せ回路の設計を行う。組合せ回路設計部111は、HDL形式の組合せ回路HDL10を出力して、組合せ回路HDL記憶領域122に記憶する。
図3は、組合せ回路設計部111が出力した組合せ回路HDL10のブロック図の例である。図3の例では、4つの機能ブロック(21〜24)を並べて配置し、入力ピン(31〜34)と出力ピン(35〜36)を配置し、機能ブロック21〜24間、および機能ブロックと入出力ピンの間を配線(W01〜W10)で結線し、4入力2出力のアプリケーションを実現している。
図2に示す演算順序付加部112は、組合せ回路設計部111で作成した組合せ回路HDL10において、次に示す制約条件を基に、各機能ブロックに演算順序を付与する。制約条件は、「ある機能ブロックXの演算順序は、機能ブロックXの入力ピンに接続されている全ての機能ブロックの演算順序より後方である」という条件である。
図4は、演算順序付加部112の処理の例をフローチャートで示したものである。図4のフローチャートに基づく動作は下記の通りである。
ステップS101:組合せ回路設計部111で作成した組合せ回路HDL10を読み込む。
ステップS102:組合せ回路HDL10内の配置済み機能ブロック情報を収集し、データCとする。例えば、C={“ブロックA”,“ブロックB”,“ブロックC”,“ブロックB”}のような集合。
ステップS103:付与する演算順序を表す変数orderを1に初期化する。
ステップS104:演算順序を付与するデータC内の機能ブロックを指し示す変数iを1に初期化する。
ステップS105:前記変数iが指し示す機能ブロックの演算順序を付与可能か判定する。なお、変数iが指し示す機能ブロックに演算順序が付与されておらず、かつ、該機能ブロックの入力ピンに接続されている全ての機能ブロックに演算順序が付与されている時に、演算順序を付与可能と判定する。
ステップS106:変数iに1を加え、次の機能ブロックへ処理を移す。
ステップS107:変数iが指し示す機能ブロックに演算順序を付与する。付与する値は、前記変数orderとする。
ステップS108:変数orderに1を加え、付与する演算順序を変更する。
ステップS109:全ての機能ブロックに演算順序を付与したか判定するため、変数orderとCの要素数を比較する。例えば、orderがCの要素数より小さいとき、演算順序未付与の機能ブロックが存在する。
ステップS110:付与した演算順序を図5に示す演算順序情報50テーブル形式に作成して、出力する。演算順序情報テーブルのブロックID欄50aは機能ブロックを指し示す変数iの値であり、演算順序欄50bは付与した演算順序であり、ブロック種類欄50cは機能ブロックライブラリに登録された機能ブロックを識別する種類のデータであり、接続情報の入力欄50dは該当機能ブロックの入力ピンに接続する配線を識別する符号データであり、接続情報の出力欄50eは該当機能ブロックの出力ピンに接続する配線を識別する符号データをそれぞれ格納する。図5の演算順序情報テーブルは、図3に示す組合せ回路HDL10の例を格納している。演算順序付加部112は、演算順序情報50を演算順序記憶領域123に記憶する。
なお、図4のフローチャートは演算順序付加部112の実現方法の一例であり、例えば、設計者が演算順序を付加するなどしても良い。
図2に示す組合せ回路−順序回路変換部113は、組合せ回路設計部111が出力した組合せ回路HDL10と、演算順序付加部112が出力した演算順序情報50とを入力して、及び機能ブロックライブラリ121を参照して、順序回路HDL60を作成する。組合せ回路HDLを、順序回路HDLに変換する形式を図6に示す。
図6は、組合せ回路−順序回路変換部113が出力する順序回路HDL60の構成例(200)である。組合せ回路−順序回路変換部113では、演算順序付加部112で付加した演算順序50に従い各機能ブロックの演算を実行する順序回路を生成する。生成する順序回路200は、演算順序記憶部201と、演算制御部202と、機能ブロック群203で構成される。
演算順序記憶部201には、図5に示す演算順序情報50のうち、演算順序欄50b、ブロック種類欄50c、接続情報の入力欄50d、及び接続情報の出力欄50eの各データを格納する。
演算制御部202は、例えば、メモリ204と、メモリ制御部205と、メモリ入力セレクタ206と、メモリ出力セレクタ207と、入力セレクタ208と、出力セレクタ209と、演算実行制御部210から構成される。
機能ブロック群203は、組合せ回路HDL10内に使用されている機能ブロックを対象として、種類別に1つずつ並列に入力セレクタ208と、出力セレクタ209に接続して構成する。
演算制御部202と機能ブロックは予め検証しておく。
本順序回路200の動作は下記の通りである。
動作1:入力データ(In1〜In4)は、メモリ入力セレクタ206により、1データが選択され、メモリ制御部205が制御するメモリ204に配線(接続)情報を付加して格納される。
動作2:演算実行制御部210は、演算順序に従い、演算順序記憶部201に格納されている次に実行するブロック種類、接続情報(入力、出力)を取得する。
動作3:メモリ制御部205がメモリ204を制御し、メモリ204から入力データを接続情報に従いリードする。リードデータは、入力セレクタ208を通り、順番にFFに格納される。入力セレクタ208は、演算実行制御部210が制御する。
動作4:機能ブロック群203で各機能ブロックの演算が実行される。
動作5:演算実行した機能ブロックの各出力を出力セレクタ209が順番に選択し、メモリ204に接続情報を付加して順番に格納する。出力セレクタ209は演算実行制御部210に制御される。
動作6:演算順序記憶部201に格納されている全てのデータに対して、動作2から動作5までを実行する。
動作7:メモリ204に格納されているデータのうち、演算結果データを順番にリードし、メモリ出力セレクタ207が各出力ポートに出力する。
なお、図6は順序回路HDL60で表される回路の一例であり、例えば、入力データを直接FFに書き込み、メモリ204を持たない構成としても良い。
また、機能ブロック群203には、機能ブロックライブラリ121に含まれる全ての種類の機能ブロックを搭載しても良いし、演算順序情報50を参照し、使用する機能ブロックのみを搭載してもよい。
組合せ回路−順序回路変換部113は、作成した順序回路HDL60を順序回路HDL記憶領域124に格納する。
図2に示す演算実行順序抽出部114は、組合せ回路−順序回路変換部113が出力した順序回路HDL60を解析し、機能ブロック群203の各機能ブロックが演算実行される順番を取得する。順序回路HDL60の解析方法としては、例えば、HDLシミュレーションを実行することが考えられる。図6の例では、順序回路200のHDLシミュレーションを実行し、どの機能ブロックの出力信号が出力セレクタ209で選択されたかを確認し、機能ブロックの演算実行順序を取得する。出力セレクタの選択は、演算実行制御部210から出力セレクタへの制御信号により制御されるため、演算実行制御部の出力信号を監視し、演算実行順序を取得しても良い。
演算実行順序抽出部114の処理は、図1に示す例では、外部計算機に実装されている公知の論理回路シミュレータ181を使用して計算することでもよいし、または論理回路シミュレータが半導体LSI設計装置100に実装されていて、それを使用することでもよい。演算実行順序抽出部114が解析して出力した順序回路HDL60の演算順序70は、順序回路の演算順序記憶領域125に記憶される。
図2に示す演算順序判定部115は、演算実行順序抽出部114が解析した順序回路HDL60の演算順序70と、演算順序付加部112が生成した演算順序情報50とが等しいことを判定し、演算順序判定結果80として出力し、演算順序判定結果記憶領域126に記憶する。演算順序判定結果80が「等しい」場合、組合せ回路−順序回路変換が正しく実行されたと判断する。これは、図6の回路構成要素において、演算制御部202と機能ブロック群203は検証済みであるため、未検証の回路構成要素は演算順序記憶部201のみであることから、順序回路HDL60の演算順序70が正しければ、演算実行順序を格納している演算順序記憶部201は正しく動作していると見なせるからである。
なお、演算順序判定結果80が「等しくない」場合は、演算順序付加部112で作成した演算順序情報50を演算順序記憶部201へ記憶する処理を先ず疑うことになる。
順序回路HDL記憶領域124に記憶された順序回路HDL60は、演算順序判定結果80が「等しい」と判定された場合に、論理合成装置182に送られて論理合成と配置配線処理が行われ、順序回路ネットリストが作成される。この順序回路ネットリストは、半導体LSI製造装置190などへ送られて、ASICまたはFPGAへ実装される。
なお、公知の論理回路シミュレータ、論理合成ツールを半導体LSI設計装置100に実装する構成も考えられる。その場合には、一連の設計処理を演算部110において実行することになる。
以上に説明する通り、本実施例によれば、同種類の機能ブロックを複数実行する組合せ回路を、同種類の機能ブロックは1つの機能ブロックを複数回時分割で使用する順序回路へ変換することで、回路使用リソースを削減できる。例えば、50種類の機能ブロックを組合せ、合計10,000回機能ブロックを使用するアプリケーションの場合、組合せ回路では機能ブロックを10,000個配置するが、順序回路では機能ブロックを50個のみ配置する。そのため、機能ブロックの実装に用いる回路リソースは50/10000=1/200となる。複雑なアナログ計算を実現する機能ブロックが使われるアプリケーション、例えば核計装などでは、機能ブロックの使用リソースが支配的であるため、全体の回路使用リソースの削減効果は大きくなり、演算順序記憶部と演算制御部の使用リソースを加味しても、全体の回路使用リソースを1/100程度に削減することができると考えられる。これにより、高安全制御装置の論理を少ない回路リソースで実現できる。
図7は、第2の実施例を示す。図2と同じ構成要素には同じ符号を付してあり、構成、動作が同じであるので、説明を省略する。本実施例は、順序回路HDL60の正当性を検証するために、付与した演算順序50と順序回路での演算実行順序70とを比較する代わりに、組合せ回路HDL10と順序回路HDL60の等価性を判定するものである。図7を参照して、実施例1から変更がある構成要素についてのみ、以下に説明する。
等価性判定部116は、組合せ回路設計部111が出力する組合せ回路HDL10と組合せ回路−順序回路変換部113が出力する順序回路HDL60の等価性を判定し、判定結果を等価性判定結果90として出力する。等価性判定結果90が「等価」である場合、組合せ回路−順序回路変換が正しく実行されたと判定できる。等価性の判定方法としては、例えば、組合せ回路HDL10で表される組合せ回路と順序回路HDL60で表される順序回路に同一の入力信号を与え、一定時間後の各回路の出力信号を比較するという方法がある。図3と図6を例に取ると、各回路のIn1〜In4に同一の入力信号を与え、一定時間後の各回路のOut1同士とOut2同士を比較する。全ての入力パターンに対して、比較結果が一致していれば、等価であると判定する。
このように変更することにより、順序回路HDL60と組合せ回路HDL10の演算結果が一致することを検証できるため、順序回路HDL60の正当性検証をより確度高く実行できる。これにより、高安全制御装置の論理を少ない回路リソースで実現できる。
図9は、第3の実施例を示す。図2と同じ構成要素には同じ符号を付してあり、構成、動作が同じであるので、説明を省略する。論理合成配置配線部117は、順序回路HDL60を読み込み、ASICまたはFPGAへ実装するための論理合成と配置配線を行い、順序回路ネットリスト91を出力する。論理等価性判定部118は、順序回路HDL60と順序回路ネットリスト91の論理等価性を判定する。論理等価性の判定方法は、等価性判定部116と同様の方法とする。
このように変更することにより、回路使用リソースの少ない順序回路をASICまたはFPGAへ実装可能となる。順序回路の正当性は、演算順序判定部115と論理等価性判定部118により、判定することができる。これにより、高安全制御装置の論理を少ない回路リソースで実現し、ASICまたはFPGAへ実装することが可能となる。
第3の実施例の半導体LSI設計装置100の構成図の例を図8に示す。論理合成配置配線部117の処理は、順序回路HDL記憶領域124に記憶されている順序回路HDL60を、外部計算機に実装されている公知の論理合成ツール182へ送って、論理合成処理を委託して、処理結果の順序回路ネットリスト91を受け取り、順序回路ネットリスト記憶領域127へ記憶する。または、論理合成ツールを半導体LSI設計装置100に実装しておき、演算部110において論理合成配置配線処理を実行する構成であってもよい。
順序回路ネットリスト記憶領域127に記憶された順序回路ネットリスト91は、等価性判定結果92、および演算順序判定結果80が共に「等しい」と判定された場合に、半導体LSI製造装置190などへ送られて、ASICまたはFPGAへ実装される。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
10 組合せ回路HDL
50 演算順序情報
60 順序回路HDL
70 順序回路HDLの演算順序
80 演算順序判定結果
91 順序回路ネットリスト
92 等価性判定結果
100 半導体LSI設計装置
101 制御回路設計部
102 アプリケーション仕様
110 演算部
111 組合せ回路設計部
112 演算順序付加部
113 組合せ回路−順序回路変換部
114 演算実行順序抽出部
115 演算順序判定部
116 等価性判定部
117 論理合成配置配線部
118 論理等価性判定部
120 記憶部
121 機能ブロックライブラリ
122 組合せ回路HDL記憶領域
123 演算順序記憶領域
124 順序回路HDL記憶領域
125 順序回路の演算順序記憶領域
126 演算順序判定結果記憶領域
127 順序回路ネットリスト記憶領域
128 等価性判定結果記憶領域
130 入力部
140 表示・出力部
150 メディア読取部
160 通信部
170 ネットワーク
181 論理回路シミュレータ
182 論理合成装置
190 半導体LSI製造装置
200 順序回路
201 演算順序記憶部
202 演算制御部
203 機能ブロック群
204 メモリ
205 メモリ制御部
206 メモリ入力セレクタ
207 メモリ出力セレクタ
208 入力セレクタ
209 出力セレクタ
210 演算実行制御部

Claims (5)

  1. アプリケーション仕様から機能ブロックライブラリで定義される機能ブロックを組み合わせて構成した組合せ回路を生成する手段と、
    入力ピンに接続されている機能ブロックの演算が終了した後に演算を開始する条件で、組合せ回路内の各機能ブロックの演算順序を付加する手段と、
    前記組合せ回路を、
    (1)前記機能ブロックの演算順序を付加する手段が生成した演算順序を記憶する演算順序記憶部と、
    (2)少なくとも前記組合せ回路内に使用されている機能ブロックを種類別に1つずつ並列に接続した機能ブロック群と、
    (3)入力データ、機能ブロックによる演算結果を逐次記憶する共通のメモリと、
    (4)前記メモリに記憶されるデータを、前記機能ブロックへの入力として読み出すメモリ制御部と、
    (5)前記読み出されたデータを前記機能ブロック群への入力として選別する入力セレクタと、
    (6)前記機能ブロック群の演算結果を選択して前記メモリへ格納する出力セレクタと、及び
    (7)前記演算順序に従い、前記メモリ制御部、前記入力セレクタ、及び前記出力セレクタを制御して、前記機能ブロック群の各機能ブロックを実行する演算実行制御部とを有する順序回路へ変換する手段と、
    前記順序回路の実行時の演算順序を抽出する手段と、
    前記組合せ回路に付加した演算順序と、前記抽出した演算順序との一致を判定する手段を備えたことを特徴とする半導体LSI設計装置。
  2. アプリケーション仕様から機能ブロックライブラリで定義される機能ブロックを組み合わせて構成した組合せ回路を生成する手段と、
    入力ピンに接続されている機能ブロックの演算が終了した後に演算を開始する条件で、組合せ回路内の各機能ブロックの演算順序を付加する手段と、
    前記組合せ回路を、
    (1)前記機能ブロックの演算順序を付加する手段が生成した演算順序を記憶する演算順序記憶部と、
    (2)少なくとも前記組合せ回路内に使用されている機能ブロックを種類別に1つずつ並列に接続した機能ブロック群と、
    (3)入力データ、機能ブロックによる演算結果を逐次記憶する共通のメモリと、
    (4)前記メモリに記憶されるデータを、前記機能ブロックへの入力として読み出すメモリ制御部と、
    (5)前記読み出されたデータを前記機能ブロック群への入力として選別する入力セレクタと、
    (6)前記機能ブロック群の演算結果を選択して前記メモリへ格納する出力セレクタと、及び
    (7)前記演算順序に従い、前記メモリ制御部、前記入力セレクタ、及び前記出力セレクタを制御して、前記機能ブロック群の各機能ブロックを実行する演算実行制御部とを有する順序回路へ変換する手段と、
    前記組合せ回路と前記順序回路の等価性を判定する手段を備えたことを特徴とする半導体LSI設計装置。
  3. 前記組合せ回路と前記順序回路の等価性を判定する手段は、
    前記組合せ回路と前記順序回路へ同一の入力信号を与え、一定時間後の各回路の出力信号を比較し、全ての入力パターンに対して比較結果が一致していれば等価であると判定する手段であることを特徴とする請求項2に記載の半導体LSI設計装置。
  4. アプリケーション仕様から機能ブロックライブラリで定義される機能ブロックを組み合わせて構成した組合せ回路を生成する工程と、
    入力ピンに接続されている機能ブロックの演算が終了した後に演算を開始する条件で、組合せ回路内の各機能ブロックの演算順序を付加する工程と、
    前記組合せ回路を、
    (1)前記機能ブロックの演算順序を付加する手段が生成した演算順序を記憶する演算順序記憶部と、
    (2)少なくとも前記組合せ回路内に使用されている機能ブロックを種類別に1つずつ並列に接続した機能ブロック群と、
    (3)入力データ、機能ブロックによる演算結果を逐次記憶する共通のメモリと、
    (4)前記メモリに記憶されるデータを、前記機能ブロックへの入力として読み出すメモリ制御部と、
    (5)前記読み出されたデータを前記機能ブロック群への入力として選別する入力セレクタと、
    (6)前記機能ブロック群の演算結果を選択して前記メモリへ格納する出力セレクタと、及び
    (7)前記演算順序に従い、前記メモリ制御部、前記入力セレクタ、及び前記出力セレクタを制御して、前記機能ブロック群の各機能ブロックを実行する演算実行制御部とを有する順序回路へ変換する工程と、
    前記順序回路の実行時の演算順序を抽出する工程と、
    前記組合せ回路に付加した演算順序と、前記抽出した演算実行順序との一致を判定する工程とを有することを特徴とする半導体LSI設計方法。
  5. 前記順序回路の実行時の演算順序を抽出する工程と、
    前記組合せ回路に付加した演算順序と、前記抽出した演算実行順序との一致を判定する工程に代えて、
    前記組合せ回路と前記順序回路の等価性を判定する工程を有することを特徴とする請求項4に記載の半導体LSI設計方法。
JP2016118531A 2016-06-15 2016-06-15 半導体lsi設計装置および設計方法 Active JP6663801B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2016118531A JP6663801B2 (ja) 2016-06-15 2016-06-15 半導体lsi設計装置および設計方法
CN201710224087.4A CN107526861B (zh) 2016-06-15 2017-04-07 半导体lsi设计装置以及设计方法
EP17174833.8A EP3258401A1 (en) 2016-06-15 2017-06-07 Semiconductor lsi design device and design method
US15/622,805 US10339242B2 (en) 2016-06-15 2017-06-14 Semiconductor LSI design device and design method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016118531A JP6663801B2 (ja) 2016-06-15 2016-06-15 半導体lsi設計装置および設計方法

Publications (2)

Publication Number Publication Date
JP2017224128A JP2017224128A (ja) 2017-12-21
JP6663801B2 true JP6663801B2 (ja) 2020-03-13

Family

ID=59067493

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016118531A Active JP6663801B2 (ja) 2016-06-15 2016-06-15 半導体lsi設計装置および設計方法

Country Status (4)

Country Link
US (1) US10339242B2 (ja)
EP (1) EP3258401A1 (ja)
JP (1) JP6663801B2 (ja)
CN (1) CN107526861B (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7045921B2 (ja) * 2018-04-27 2022-04-01 株式会社日立製作所 半導体lsi設計装置および設計方法
JP7249303B2 (ja) * 2020-03-23 2023-03-30 株式会社東芝 演算装置及び演算方法
CN111931450B (zh) * 2020-08-11 2024-09-20 上海华力微电子有限公司 一种集成电路数字后端设计的方法和系统
US20240184965A1 (en) * 2021-04-28 2024-06-06 Nippon Telegraph And Telephone Corporation Calculation resource control device and control method

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2968741B2 (ja) * 1996-12-25 1999-11-02 日本電気アイシーマイコンシステム株式会社 半導体集積回路装置の配置方法
JPH11259545A (ja) * 1998-03-11 1999-09-24 Toshiba Corp 半導体集積回路の動作合成方法及びその処理システム
US6163876A (en) * 1998-11-06 2000-12-19 Nec Usa, Inc. Method for verification of RTL generated from scheduled behavior in a high-level synthesis flow
JP4029959B2 (ja) * 2001-08-31 2008-01-09 シャープ株式会社 演算器アロケーション設計装置および演算器アロケーション設計方法
JP2004310568A (ja) * 2003-04-09 2004-11-04 Matsushita Electric Ind Co Ltd シミュレータ装置、シミュレーション方法および性能解析方法
US7076753B2 (en) * 2003-12-18 2006-07-11 Synopsys, Inc. Method and apparatus for solving sequential constraints
JP4371856B2 (ja) 2004-03-04 2009-11-25 株式会社東芝 安全保護計装システムおよびその取扱方法
JP4208751B2 (ja) * 2004-03-09 2009-01-14 三洋電機株式会社 データフローグラフ処理装置。
EP1793331A4 (en) * 2004-09-21 2010-09-08 Panasonic Corp MEMORY CARD WITH SEMICONDUCTOR
TW200617703A (en) * 2004-11-30 2006-06-01 Tokyo Electron Ltd Dynamically reconfigurable processor
JP4568143B2 (ja) * 2005-02-28 2010-10-27 株式会社東芝 安全系装置の検証方法およびその検証方法で検証された安全系装置
US7284218B1 (en) * 2005-03-18 2007-10-16 Calypto Design Systems, Inc. Method and system for inplace symbolic simulation over multiple cycles of a multi-clock domain design
JP2007087215A (ja) * 2005-09-22 2007-04-05 Hitachi Ltd ハードウェアモデルの変換処理に用いられるデータ構造、コンピュータプログラム、方法、及びシステム
JP4500249B2 (ja) * 2005-11-08 2010-07-14 富士通セミコンダクター株式会社 半導体集積回路の設計の方法および設計装置
JP4784368B2 (ja) * 2006-03-29 2011-10-05 日本電気株式会社 等価性検証システム、動作合成装置、方法、及び、プログラム
US7610567B2 (en) * 2006-04-27 2009-10-27 Achronix Semiconductor Corporation Systems and methods for performing automated conversion of representations of synchronous circuit designs to and from representations of asynchronous circuit designs
JP5001190B2 (ja) * 2008-02-14 2012-08-15 パシフィック・デザイン株式会社 Lsi設計検証システム、lsi設計検証方法およびそのプログラム
US8352505B1 (en) * 2008-04-16 2013-01-08 The Mathworks, Inc. Identification of resource sharing patterns through isomorphic subtree enumeration
JP2010257003A (ja) * 2009-04-21 2010-11-11 Sharp Corp 論理等価性検証システム、論理等価性検証方法、半導体集積回路の製造方法、制御プログラムおよび可読記憶媒体
KR101802945B1 (ko) * 2011-06-27 2017-12-29 삼성전자주식회사 논리 장치 및 이를 포함하는 반도체 패키지
JP5944358B2 (ja) * 2013-09-10 2016-07-05 株式会社東芝 半導体集積回路の検証装置、半導体集積回路の検証方法、及び、プログラム

Also Published As

Publication number Publication date
EP3258401A1 (en) 2017-12-20
CN107526861A (zh) 2017-12-29
CN107526861B (zh) 2020-11-17
JP2017224128A (ja) 2017-12-21
US10339242B2 (en) 2019-07-02
US20170364610A1 (en) 2017-12-21

Similar Documents

Publication Publication Date Title
JP6663801B2 (ja) 半導体lsi設計装置および設計方法
JP2006244073A (ja) 半導体設計装置
JP6995451B2 (ja) 回路適正化装置及び回路適正化方法
US9424005B1 (en) Templatized component
JP4492803B2 (ja) 動作合成装置及びプログラム
US20110137631A1 (en) Simulation method, system and program product
CN114239453A (zh) 仿真验证平台构建方法、仿真验证方法、装置及设备
US20230097314A1 (en) Verification of hardware design for component that evaluates an algebraic expression using decomposition and recombination
US10747920B2 (en) Semiconductor LSI design device and design method
US9824173B1 (en) Software development-based compilation flow for hardware implementation
JP5830955B2 (ja) 検証装置、検証方法及び検証プログラム
TWI488063B (zh) 最佳化並驗證第一電路的設備,方法及電腦可讀取儲存媒體
McNelles et al. Failure mode taxonomy for assessing the reliability of Field Programmable Gate Array based Instrumentation and Control systems
Portillo et al. RERTL: finite state transducer logic recovery at register transfer level
US20170098026A1 (en) Control block size reduction through ip migration in an integrated circuit device
JP4899927B2 (ja) テストパターン自動生成方法およびテストパターン自動生成プログラム
Azarpeyvand et al. CIVA: Custom instruction vulnerability analysis framework
JP2008234080A (ja) 半導体集積回路設計支援装置、半導体集積回路設計支援方法、半導体集積回路設計支援プログラム、半導体集積回路、半導体集積回路の製造方法
JP7274063B2 (ja) テストケース生成装置、テストケース生成方法及びテストケース生成プログラム
JP6854994B1 (ja) 動作確認支援装置、動作確認支援方法及び動作確認支援プログラム
JP5321624B2 (ja) 論理回路検証装置、論理回路検証方法およびプログラム
JP2016014950A (ja) 回路設計支援装置及び回路設計支援方法及びプログラム
JP5077010B2 (ja) システムlsiの電力見積方法及びそれに使用する設計済みブロックの電力ライブラリの生成方法。
JP2009245148A (ja) 再構成可能な論理デバイスのデバッグ装置、デバッグ方法及びデバッグプログラム
JP2016139203A (ja) 設計情報作成方法、設計情報作成装置及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180809

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190611

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190723

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190918

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200204

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200217

R150 Certificate of patent or registration of utility model

Ref document number: 6663801

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150