JP4493937B2 - Semiconductor integrated circuit and function verification method of semiconductor integrated circuit - Google Patents

Semiconductor integrated circuit and function verification method of semiconductor integrated circuit Download PDF

Info

Publication number
JP4493937B2
JP4493937B2 JP2003158117A JP2003158117A JP4493937B2 JP 4493937 B2 JP4493937 B2 JP 4493937B2 JP 2003158117 A JP2003158117 A JP 2003158117A JP 2003158117 A JP2003158117 A JP 2003158117A JP 4493937 B2 JP4493937 B2 JP 4493937B2
Authority
JP
Japan
Prior art keywords
function
functional
software
integrated circuit
verification
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.)
Expired - Lifetime
Application number
JP2003158117A
Other languages
Japanese (ja)
Other versions
JP2004361171A (en
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2003158117A priority Critical patent/JP4493937B2/en
Publication of JP2004361171A publication Critical patent/JP2004361171A/en
Application granted granted Critical
Publication of JP4493937B2 publication Critical patent/JP4493937B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Tests Of Electronic Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Semiconductor Integrated Circuits (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、各種の機能を有する機能ハードウェアのロジック(論理)と、内蔵された中央演算処理部(通常、CPU(Central Processing Unit )と略記する)上で動作して各種の機能を実行させるための機能実行ソフトウェアとの協働によって上記各種の機能を実現させるようにした半導体集積回路、および、当該半導体集積回路の各種の機能が正常であるか否かを検証するための機能検証方法に関する。
【0002】
近年、大規模集積回路(以下、LSI(Large Scale Integrated Circuit)と略記する)等の半導体集積回路においては、当該半導体集積回路の微細化および高集積化等のテクノロジーの進歩によって、LSI等のゲートの数や機能の複雑さが増大する共に処理速度の高速化が要求される傾向にある。本発明は、このような傾向に対処するために、高価な試験治具等を用いることなく短時間でLSI等の各種の機能を検証するための一手法について言及するものである。
【0003】
【従来の技術】
一般に、ハードウェア記述言語(以下、HDL(hardware Description Language )と略記する)を用いたLSIの機能検証において、外部のエンジニアリング・ワークステーション/パーソナルコンピュータ(以下、EWS/PCと略記する)上で実行するソフトウェアのシミュレータを利用してシミュレーションを行った場合、LSIのゲートの数の増大、機能の複雑化および処理速度の高速化等によって、シミュレーションの速度が非常に遅くなり、LSIの各種の機能を備えたロジックの検証に膨大な時間を要する。
【0004】
シミュレーションの速度向上を狙って、HDLを用いたLSIの設計データ(例えば、複数のレジスタ間の動作で表す設計のレベルであるRTL(Register Transfer Level ))の一部または全部をエミュレータ上にマッピングしてシミュレーションを実行した場合、このエミュレータの部分の動作速度は許容範囲程度にまで速くなる。しかしながら、LSIのロジックを検証するためのテストパターンやテスト用プログラムを生成するテストベンチ(一般にソフトウェア)のみは、通常、集積回路全体の機能のみを表したビヘイビア記述言語等により構成されており、エミュレータ上に直接マッピングすることができずソフトウェアのシミュレーションによりEWS/PC上で実行させなければならない。
【0005】
それゆえに、エミュレータとEWS/PC間の通信オーバーヘッド、およびテストベンチの処理の負荷により、予測した程のシミュレーションの速度が得られない。特に最近では、複雑な機能を備えたLSIを検証するために、テストベンチに関しても高機能化の必要性が高まっているので、シミュレーションの速度が遅くなるといったような問題が顕著になっている。このため、テストベンチの設計工数も増加しており、上記のようなLSIのロジックの検証が大規模システムのLSI開発のボトルネックになっている。
【0006】
LSIのゲートの数や機能の複雑さの増大は、実機試験においても、テストプログラムの複雑化および長大化や、CPUにより設定されるメモリ空間の巨大化等を招き、試験時間の長大化の問題が顕著になっている。また一方で、LSIのテクノロジーの進歩は、LSIの機能の処理速度の高速化をももたらすようになっている(例えば、1チップで10Gbps(ギガビット/秒)の処理速度)。それゆえに、上記LSIのエンジニアリング・サンプル(通常、ES(Engineering Sample)と略記する)の実機試験を行うために高機能の試験治具または試験器具が必要となり、このエンジニアリング・サンプルを正しく評価するために必要な評価コストの上昇も問題となっている。
【0007】
ここで、従来のLSI等の半導体集積回路の機能検証方法に関する問題点をより明確にするために、添付図面(図5および図6)を参照しながら、これまで行われている代表的な半導体集積回路の機能試験方法を説明する。
【0008】
図5は、一般の被試験用半導体集積回路の実機試験環境を示すブロック図であり、図6は、従来のCPU内蔵型の半導体集積回路の構成を示すブロック図である。
【0009】
ただし、図5のブロック図では、被試験用の半導体集積回路100としてLSIのエンジニアリング・サンプルを使用した場合に、当該LSIの機能ブロック102の機能検証方法を実行するための実機試験環境を簡略化して示す。さらに、図6のブロック図では、後述のようなCPU内蔵型の半導体集積回路の構成を簡略化して示す。
【0010】
図5の実機試験環境において、一般に、機能ブロック102は、大規模のゲートアレイからなるFPGA(Field Programmable Gate Array )等のハードウェアのロジックにより構成されている。このハードウェアのロジックにより、ユーザ等が要求する機能が実行される。また一方で、上記のような機能ブロック102の機能を検証するためのテストパターン等のデータを生成するパターン発生器101が、被試験用のLSIの外部に設けられている。このパターン発生器101は、入力インタフェース部120を介して、被試験用のLSIの入力部(図示していない)からLSI内の機能ブロック102へ各種の信号(テストパターン等のデータを含む)を供給する回路であり、通常、ハードウェアのロジック、CPU、RAM(ランダムアクセス・メモリ)またはROM(読み出し専用メモリ)等のメモリ、およびタイマー等により構成される。
【0011】
また一方で、テスト用プログラムや、上位のCPUからの設定データ等に関しては、パーソナルコンピュータ104からRS−232C等のシリアル通信ポートおよび上位ソフトインタフェース部110を介して被試験用のLSIと通信を行うのが一般的である。被試験用のLSIの実機試験を行うに際しては、通常、被試験用のLSIをリセットしてから、パーソナルコンピュータ104によりLSI内部の設定レジスタ等の設定を行う。その後、パターン発生器101よりデータを供給し、被試験用のLSI内の機能ブロック102にて当該データを処理した後に、出力インタフェース部180を介して、LSIの外部の出力部103に当該データを転送する。出力部103では、当該データの処理結果が解析される。この出力部103は、機能ブロック102の出力信号の波形をモニタしたり、実際の出力信号の値とパターン発生器101から与えられた出力信号の期待値とを比較したりすることによって、LSIの機能の正常性を検証する。
【0012】
近年のLSIは、大規模のゲート(またはゲートアレイ)により構成され機能も複雑化しているために開発費が莫大になり、製品のリメークや複数品種の開発が困難になってきている。このため、近年では、ソフトウェアのプログラムを実行させるためのCPUを内蔵したCPU内蔵型の半導体集積回路の開発がさかんに行われるようになっている。
【0013】
図6のブロック図では、従来のCPU内蔵型の半導体集積回路105として、CPUの機能を有するCPUコア500が内蔵されたCPU内蔵型のLSIの構成を代表して示す。ここでは、ハードウェアのロジックにより構成される機能コア(CPU依存部)200および機能コア(CPU非依存部)300をLSIの内部に設けると共に、ソフトウェア(機能実行ソフトウェア)を機能させるためのCPUコア500をLSIの内部に設けている。さらに、機能コア(CPU依存部)200および機能コア(CPU非依存部)300には、これらの機能コアの動作中に生成される中間変数を一時的に格納する中間変数格納メモリ210、310がそれぞれ設けられている。機能コア(CPU依存部)200は、CPUコア500の動作のタイミングに従って所定の機能を実行する機能ハードウェアであり、機能コア(CPU非依存部)300は、CPUコア500の動作のタイミングに依存しない状態で所定の機能を実行する機能ハードウェアである。ここでは、前述の機能ブロック(図5参照)の機能の一部が、上記の機能コア(CPU依存部)200および機能コア(CPU非依存部)300によって構成されている。
【0014】
図6のCPU内蔵型のLSIにおいて、CPUコア500は、LSIの外部の外部記憶装置800から内蔵メモリ900を介してダウンロードされるソフトウェア(機能実行ソフトウェア)のプログラムを保持しており、このプログラムに従って機能ブロックの機能の一部を実行させるようにしている。換言すれば、これまでハードウェアのロジック(例えば、前述の図5の機能ブロック)のみで処理されていた機能の一部が、CPUコア500によるソフトウェアのプログラム処理を行うことで実行されるようになり、プログラムの改版によってLSIの機能変更(機能エンハンス)や機能追加等にある程度対処することができるようになっている。
【0015】
特に、通信の分野で主信号処理系を構成するCPU内蔵型のLSIにおいては、非常に高い処理速度やデータのリアルタイム処理が要求される場合が多く、ソフトウェアのプログラムによる処理のみではユーザ等が要求する性能を満足させることが非常に困難になっている。それゆえに、ハードウェアとして機能する処理部(例えば、図の機能コア200、300)とソフトウェアを機能させるための処理部(例えば、図のCPUコア500)の両方によりLSIの機能を構成するのが一般的である。
【0016】
さらに、図6においては、前述の図5の場合と同様に、CPU内蔵型のLSI内の機能コア200、300の機能を検証するためのテストパターン等のデータが、入力インタフェース部120を介して、外部入力用の端子からLSI内の機能コア200、300に供給される。ここで、上記のテストパターン等のデータは、ハードウェアとソフトウェアとの間のインタフェースを取るために、ハード/ソフトI/F(インタフェース)用メモリ140等のデータバッファに一旦保持される。このハード/ソフトI/F用メモリ140内のデータは、CPUコア500上で動作するプログラムに従って検証される。
【0017】
CPU内蔵型のLSIの実機試験を行うに際しては、通常、CPUコア500上で動作するプログラムに従って当該LSIをリセットした後、外部入力用の端子からデータを供給し、LSI内の機能コア200、300およびCPUコア500により当該データの検証を行うようになっている。このデータの検証結果は、ソフトウェアとハードウェアとの間のインタフェースを取るために、ソフト/ハードI/F(インタフェース)用メモリ150等のデータバッファに一旦保持される。このソフト/ハードI/F用メモリ150内のデータは、必要に応じて出力インタフェース部180から外部出力用の端子に転送される。さらに、LSIの外部の出力部(図示していない)は、機能コア200、300からの実際の出力信号の値と出力信号の期待値とを比較することによって、LSIの機能の正常性を検証する。このように、図6のCPU内蔵型のLSIでは、ハードウェアとして機能する機能コア200、300とソフトウェアを機能させるCPUコア500の両方によって、LSIの機能変更や機能追加等が容易に行えるような柔軟なシステム開発が可能になる。
【0018】
さらに、CPU内蔵型のLSIの実機試験においては、必要に応じて、上位ソフトインタフェース部110を介して外部のパーソナルコンピュータ(図示していない)と通信を行うことができるようになっている。
【0019】
上記のようなCPU内蔵型の半導体集積回路に類似した構成として、1チップマイクロコンピュータに内蔵されたCPUコアが論理回路群等にテストパターンを入力し、この論理回路群等から得られる出力信号により自己検査を行う構成が、下記の先行技術文献に記載されている。
【0020】
【特許文献1】
特開2001−27958号公報
【0021】
【発明が解決しようとする課題】
上記のとおり、従来のCPU内蔵型のLSI等の半導体集積回路においては、CPUの機能を有するCPUコアをLSIの内部に設け、このCPUコアによるプログラム処理を行うことによって、LSIの機能変更や機能追加等にある程度対処するようにしていた。しかしながら、CPU内蔵型のLSIを使用した場合には、LSIのゲート規模の増大や機能の複雑化や処理速度の高速化によってシミュレーションの速度が非常に低速となり、LSIのロジックの検証に膨大な時間を要するという問題が生じてくる。例えば、動作周波数1GHzのLSIに対して実時間1秒分のシミュレーションを行う場合、CPUのクロックが1GHzのマシーンを使用してソフトウェアによるシミュレータ(シミュレーション速度:100Hz)を動作させると、シミュレーションが終了するまでに約10メガ秒(Msec)=115.7日かかる。
【0022】
これに対し、エミュレータ(シミュレーション速度:1MHz)を使用した場合は、シミュレーションが1000秒で終了する。ただし、この数値は、あくまでもLSI内の全ての回路をエミュレータに載せた場合に達成し得るものである。前述のように、通常は、LSIのロジックを検証するためのテストパターンやテスト用プログラムを生成するテストベンチはビヘイビア記述言語等により構成されており、エミュレータに載せることができるような回路に変換することが困難である。このため、テストベンチのみはソフトウェアのシミュレータにより動作させるようにしている。換言すれば、エミュレータのシミュレーション速度がいくら速くても、全体のシミュレーション速度はソフトウェアのシミュレータにより決定されてしまうので、現実的には数kHzのシミュレーション速度しか出ないことになる。ここで、シミュレーション速度の高速化を図るため、テストベンチをエミュレータに載せようとした場合は、このテストベンチもRTLで記述する必要があり、多大な工数がかかる。
【0023】
さらに、従来のCPU内蔵型のLSI等の半導体集積回路を用いた実機試験においては、高機能の試験治具または試験器具の開発や、外部(例えば、実機に接続されるパーソナルコンピュータ)からのソフトウェアによる制御が必要となるため、実機試験環境が非常に高価なものになり、LSIを正しく評価するための評価コストが上昇するという問題も生じてくる。
【0024】
本発明は上記問題点に鑑みてなされたものであり、高価な試験治具等を用いることなくLSI等の機能検証に要する時間を従来の場合よりも短縮することが可能な半導体集積回路および半導体集積回路の機能検証方法を提供することを目的とするものである。
【0025】
【課題を解決するための手段】
上記問題点を解決するために、本発明は、所定の機能を有する機能ハードウェアと、ソフトウェアのプログラムを実行することにより所定の機能を実現する中央演算処理部(CPU:CPUコアともよばれる)とからなる半導体集積回路において、上記中央演算処理部が生成した上記半導体集積回路の機能検証を行うためのテストデータを格納する第1の記憶部と、上記半導体集積回路の機能検証の結果に関する検証結果データを格納する第2の記憶部とを備える半導体集積回路を提供する。
【0026】
好ましくは、本発明の半導体集積回路は、上記中央演算処理部の動作の状態に基づいて、上記機能ハードウェアを動作させる機能動作クロックを停止させる機能動作クロック停止判断部を備える。
【0027】
さらに、好ましくは、本発明の半導体集積回路は、上記半導体集積回路の機能検証を行うか否かのモードの切替えを示すテストモード選択入力用の端子を備える。
【0028】
また一方で、本発明は、所定の機能を有する機能ハードウェアと、ソフトウェアのプログラムを実行することにより所定の機能を実現する中央演算処理部とからなる半導体集積回路の機能検証方法において、上記中央演算処理部にて所定の機能を実現するための第1のソフトウェアと、上記半導体集積回路の機能を機能検証するための第2のソフトウェアとを、上記中央演算処理部において同居させて動作させ、上記第2のソフトウェアが上記半導体集積回路の機能を機能検証するためのテストデータを生成し、上記テストデータを第1の記憶部に格納し、上記テストデータを用いて、上記機能ハードウェアと上記第1のソフトウェアとを動作させ、上記機能ハードウェアと上記第1のソフトウェアの動作の結果として出力される検証結果データを第2の記憶部に格納する半導体集積回路の機能検証方法を提供する。
【0029】
好ましくは、本発明の半導体集積回路の機能検証方法において、上記第2のソフトウェアは、上記検証結果データを上記第2の記憶部より取り出し、上記検証結果データを解析する。
【0030】
また一方で、本発明は、所定の機能を有する機能ハードウェアと、ソフトウェアのプログラムを実行することにより所定の機能を実現する中央演算処理部とからなる半導体集積回路の機能を検証するプログラムであって、コンピュータに、上記半導体集積回路の機能を機能検証するためのテストデータを生成する手段と、生成された上記テストデータを第1の記憶部に格納する手段と、上記テストデータを用いて、上記機能ハードウェアと上記中央演算処理部を機能させるソフトウェアとを動作させ、上記機能ハードウェアと上記ソフトウェアの動作の結果として出力される検証結果データを第2の記憶部に格納する手段とを機能させるための半導体集積回路の機能検証プログラムを提供する。
【0031】
要約すれば、本発明においては、LSI等の半導体集積回路に内蔵されたCPUコアに、所定の機能を実行させるための第1のソフトウェア(例えば、機能実行ソフトウェア)と上記所定の機能を検証するための第2のソフトウェア(例えば、機能検証ソフトウェアまたはテストベンチソフトウェア)とを予め取り込んで同居させ、ハードウェアのロジック等からなる機能ハードウェアの動作を停止させた状態で、第2のソフトウェアによりLSIの機能検証を行うためのテストパターン等のデータを生成し、機能ハードウェアの動作を開始させた後に、当該データを用いてLSI自身の機能検証を行うようにしているので、高価な試験治具等を用いることなくLSI単体でLSI自身の機能検証を行うことができる。
【0032】
かくして、本発明では、LSI等の半導体集積回路に内蔵されたCPUコアを、機能ハードウェアの動作に加えてテストパターン等のデータの生成や当該データを用いた機能検証に利用することにより、高機能の試験治具等の開発が不要になってLSIの評価コストの上昇が抑えられると共に、外部のパーソナルコンピュータ等による制御が不要になってLSIの機能検証に要する時間を大幅に短縮することが可能になる。
【0033】
【発明の実施の形態】
以下、添付図面(図1〜図4)を参照しながら、本発明の好ましい実施例の構成および動作を説明する。
【0034】
図1は、本発明の一実施例に係る機能自己検証式の半導体集積回路の構成を示すブロック図であり、図2は、図1のCPUコアにて機能実行ソフトウェアと機能検証ソフトウェアとを同居させた状態を示すブロック図である。
【0035】
ただし、図1のブロック図では、本発明の一実施例に係る機能自己検証式の半導体集積回路1として、CPUの機能を有するCPUコア5が内蔵されたCPU内蔵型のLSIの構成を簡略化して示す。なお、これ以降、前述した構成要素と同様のものについては、同一の参照番号を付して表すこととする。
【0036】
図1のCPU内蔵型のLSIでは、ハードウェアのロジックにより構成される機能コア(CPU依存部)2および機能コア(CPU非依存部)3をLSIの内部に設けると共に、ソフトウェアとして機能するCPUコア5をLSIの内部に設けている。上記の機能コア(CPU依存部)2および機能コア(CPU非依存部)3は、それぞれ、前述の図の機能コア(CPU依存部)200および機能コア(CPU非依存部)300にほぼ対応するものである。機能コア(CPU依存部)2および機能コア(CPU非依存部)3には、前述の図の場合と同様に、上記の機能コア2、3の動作中に生成される中間変数を一時的に格納する中間変数格納メモリが設けられている(図1では、中間変数格納メモリを省略する)。機能コア(CPU依存部)2は、CPUコア5の動作のタイミングに従って所定の機能を実行する機能ハードウェアであり、機能コア(CPU非依存部)3は、CPUコア5の動作に依存しない状態で所定の機能を実行する機能ハードウェアである。
【0037】
さらに、図1のCPU内蔵型のLSIにおいて、CPUコア5は、前述の図の従来例の場合と同様に、LSIの外部の外部記憶装置8から内蔵メモリ9を介してダウンロードされる機能実行ソフトウェア(第1のソフトウェア)51のプログラムを保持している。この機能実行ソフトウェア51のプログラムをCPUコア5上で動作させることによって、機能コア2、3にて設定されているLSIの機能が実行される。
【0038】
本発明の一実施例では、図2に示すように、LSIに内蔵されたCPUコア5に、上記の機能実行ソフトウェア51と、LSIの機能を検証するための機能検証ソフトウェアまたはテストベンチソフトウェア(第2のソフトウェア)52とを同居させて動作させ、LSI単体でLSI自身の機能検証を行うことが可能になる構成を提供する。この場合、機能検証ソフトウェア52もまた、LSIの外部の外部記憶装置8から内蔵メモリ9を介してダウンロードされ、CPUコア5に保持されている。好ましくは、外部記憶装置8は、RAMもしくはROM、磁気ディスク装置、光磁気ディスク装置または光ディスク装置等により構成される。また一方で、内蔵メモリ9は、RAMまたはROMにより構成される。なお、この内蔵メモリ9として、CPUコアに内蔵のRAMまたはROMを用いることも可能である。
【0039】
より詳しく説明すると、図1および図2の実施例において、機能検証ソフトウェア52は、機能コア2、3および機能実行ソフトウェア51に入力されるテストパターンやテスト用プログラム等のデータの信号値を生成したり、機能コア2、3から出力されるLSIの機能検証の結果に関するデータの信号値を取り込んでその解析を行ったりする。
【0040】
さらに、図1および図2の実施例においては、機能コア2、3および機能実行ソフトウェア51の動作と機能検証ソフトウェア52の動作とのタイミングを調整するために、機能コア2、3を動作させる機能動作クロックを停止させる機能動作クロック停止判断部4が設けられている。
【0041】
上記の機能検証ソフトウェア52は、機能動作クロック停止判断部4により機能動作クロックを停止させた状態でLSIの機能検証を行うためのテストパターンやテスト用プログラム等のデータを生成する。さらに、機能検証ソフトウェア52は、機能動作クロックを開始させた状態で、当該データを用いて機能コア2、3および機能実行ソフトウェア51を動作させ、LSI自身の機能検証を行う。さらにまた、機能検証ソフトウェア52は、機能動作クロックを再び停止させた状態で、機能ハードウェアおよび機能実行ソフトウェアから出力されるLSIの機能検証の結果に関するデータを取り込んで解析することができる。
【0042】
ここでは、機能動作クロック停止判断部4として半導体スイッチ素子を用い、この半導体スイッチ素子のオン・オフ動作により機能動作クロックを開始または停止させて機能コア2、3の動作を制御している。しかしながら、ソフトウェアのプログラムを利用して機能コア2、3の動作を開始または停止させることも可能である。
【0043】
さらに、図1および図2の実施例においては、機能コア2、3および機能実行ソフトウェア51に入力されるデータの入力元を切替える入力切替部13が設けられている。この入力切替部13では、LSIの外部端子(テストモード選択入力用の端子)から供給される切替制御信号に応じてLSIのモードを切替えることにより、機能コア1、2および機能実行ソフトウェアに入力されるデータの入力元として、LSIの外部または機能検証ソフトウェア52のいずれか一方を選択することが可能である。
【0044】
データの入力元としてLSIの外部が選択された場合、LSIの機能を検証するためのデータが、入力インタフェース部12および入力切替部13を介して、外部入力用の端子から機能コア2、3に供給される。また一方で、データの入力元として機能検証ソフトウェア52が選択された場合、この機能検証ソフトウェア52は、テストデータバッファ6および入力切替部13を介して、自分自身で生成したLSIの機能を検証するためのデータを機能コア2、3に供給する。さらに、入力切替部13にてモードを切替えることにより、任意の時刻にLSIの機能検証を行うことも可能である。
【0045】
ここで、上記のテストデータバッファ(第1の記憶部)6は、機能実行ソフトウェア51および機能検証ソフトウェア52の両方をCPUコア5上で時分割により動作させるために、LSIの機能検証を行うためのデータを一時的に格納する機能を有している。
【0046】
さらに、図1および図2の実施例においては、機能コア2、3および機能実行ソフトウェア51から出力されるデータの出力先を切替える出力切替部17が設けられている。この出力切替部17では、LSIの外部端子(テストモード選択入力用の端子)から供給される切替制御信号に応じてLSIのモードを切替えることにより、機能コア1、2および機能実行ソフトウェアから出力されるデータの出力先として、LSIの外部または機能検証ソフトウェア52のいずれか一方を選択することが可能である。
【0047】
データの出力先としてLSIの外部が選択された場合、LSIの機能検証の結果に関するデータが、出力切替部17および出力インタフェース部18を介して外部出力用の端子に転送される。また一方で、データの出力先として機能検証ソフトウェア52が選択された場合、この機能検証ソフトウェア52は、出力切替部17および検証結果バッファ7を介して、LSIの機能検証の結果に関するデータを取り込んで解析する。
【0048】
ここで、上記の検証結果バッファ(第2の記憶部)7は、機能実行ソフトウェア51および機能検証ソフトウェア52の両方をCPUコア5上で時分割により動作させるために、LSIの機能検証の結果に関するデータを一時的に格納する機能を有している。機能検証ソフトウェア52は、機能動作クロックを再び停止させた状態で、検証結果バッファ(第2の記憶部)7に一旦格納されているLSIの機能検証の結果に関するデータを改めて取り出し詳細な解析を行うことができる。LSIの機能検証の結果に関するデータを解析した結果は、解析結果選択出力用のANDゲート16を介してLSIの外部端子(解析結果出力用の端子)に出力することが可能である。
【0049】
上記のように、図1および図2の実施例では、LSIの外部端子(テストモード選択入力用の端子)から供給される切替制御信号に応じて、機能コア2、3に入力されるデータの入力元、および、機能コア2、3から出力されるデータの出力先を、LSIの外部入力用もしくは外部出力用の端子にするか機能検証ソフトウェア52にするかを選択することが容易に可能である。また一方で、機能検証ソフトウェアによって解析された結果はLSIの外部端子(解析結果出力用の端子)に出力することが容易に可能である。
【0050】
なお、本実施例ではテストモード選択は外部端子から行うものとしているが、LSI内部にテストモード選択用のレジスタを備え、そのレジスタにソフトウェアで値を設定することによりテストモード選択を行う構成とすることも可能である。
【0051】
さらに、図1および図2の実施例においては、LSIの機能を検証するためのテストパターン等のデータを機能コア2、3および機能実行ソフトウェア51に供給する際に、上記テストパターン等のデータは、ハードウェアとソフトウェアとの間のインタフェースを取るために、ハード/ソフトI/F(インタフェース)用メモリ14等のデータバッファに一旦保持される。このハード/ソフトI/F用メモリ14内のデータは、CPUコア5上で動作する機能実行ソフトウェア51により取り出されて検証される。
【0052】
CPU内蔵型のLSIの実機試験を行うに際しては、CPUコア5上で動作する機能検証ソフトウェア52により当該LSIをリセットした後、LSIの機能を検証するためのテストパターン等のデータを供給し、LSI内の機能コア2、3および機能実行ソフトウェア51により当該データの検証を行うようになっている。機能実行ソフトウェア51の検証結果は、ソフトウェアとハードウェアとの間のインタフェースを取るために、ソフト/ハードI/F(インタフェース)用メモリ15等のデータバッファに一旦保持される。このソフト/ハードI/F用メモリ15内のデータは、機能コア2により取り出されて解析される。
【0053】
さらに、CPU内蔵型のLSIの実機試験においては、必要に応じて、上位ソフトインタフェース部11を介して外部のパーソナルコンピュータ(図示していない)と通信を行うことができるようになっている。
【0054】
ついで、本発明の機能検証方法に従って、図1および図2の実施例に係るCPU内蔵型のLSIの機能検証を行う手順を下記の(1)〜(5)に説明する。なお、機能実行ソフトウェア51および機能検証ソフトウェア52は、予め外部記憶装置8からLSI内部にダウンロードされているものとする。
【0055】
(1)テストモード切替
(a)CPU内蔵型のLSIのテストモード選択入力用の端子をアクティブのレベルにし、LSIを機能自己検証可能な状態(テストモード)にする。これによって、データの入力元としてテストデータバッファ6が選択されると共に、データの出力先として検証結果バッファ7が選択される。
【0056】
(2)テストデータのバッファリング
(a)機能コア2、3を動作させるクロックである機能動作クロックを停止させ、機能コア2、3を動作させないようにする。
【0057】
(b)機能検証ソフトウェア(またはテストベンチソフトウェア)52が動作を開始する。
【0058】
(c)機能検証ソフトウェア52が、自分自身で生成したテストデータをテストデータバッファ6に転送する。テストデータとして、例えば1フレーム分等のように、区切りの良い単位量を転送する。
【0059】
(3)LSIの機能動作および機能検証の結果のバッファリング
(a)テストデータをテストデータバッファ6に転送終了後、機能検証ソフトウェア52の動作が停止し、機能動作クロックが再開する。
【0060】
(b)テストデータバッファ6に格納されているテストデータを用いて、機能コア2、3および機能実行ソフトウェア51を動作させる。
【0061】
(c)機能コア2、3および機能実行ソフトウェア51を動作させて得られた結果は、検証結果バッファ7に格納される。
【0062】
(4)機能検証の結果の取り込みおよび解析
(a)テストデータバッファ6に格納されたテストデータ分(例えば1フレーム分)に関して、LSIの機能動作が終了した後、機能動作クロックを停止させ、機能コア2、3を動作させないようにする。
【0063】
(b)機能検証ソフトウェア52が再び動作を開始する。
【0064】
(c)機能検証ソフトウェア52が、検証結果バッファ7から機能検証の結果を取り込む。
【0065】
(d)機能検証ソフトウェア52が、取り込んだ検証結果をもとにデータの解析を行う。データの解析結果の情報(検証結果にエラーが発生している等)は、解析結果出力部からLSIの外部に出力することが可能である。
【0066】
(e)データの解析後、さらに機能検証ソフトウェア52にて機能検証を行う場合は、前述の(2)の(c)に戻る。機能検証を終了する場合は、次の(5)に進む。
【0067】
(5)通常動作モード切替
(a)LSIのテストモード選択入力用の端子をネガティブのレベルにし、LSIの機能自己検証を終了する。これによって、データの入力元として外部入力が選択されると共に、データの出力先として外部出力が選択され、通常動作モードによるLSIの通常動作が可能になる。
【0068】
上記実施例によれば、LSI等の半導体集積回路に内蔵されたCPUコア5に、LSIの機能を実行させるための機能実行ソフトウェア51とLSIの機能を検証するための機能検証ソフトウェア52とを同居させて動作させているので、周辺ハードウェア資源および高価な試験治具等を用いることなくLSI単体でLSI自身の機能検証を行うことができるようになる。それゆえに、従来必要であった周辺ハードウェア資源や試験治具等が不要になり、実機試験に伴う部品コストや製造コストや評価コストを大幅に節減することが可能になる。
【0069】
さらに、上記実施例によれば、LSI単体での実機試験を行うことができるので、外部のパーソナルコンピュータからのテストデータの設定が不要になり、LSI内のCPUと外部のパーソナルコンピュータとの間の通信オーバーヘッドによる試験時間の長大化が節減される。
【0070】
さらに、上記実施例によれば、機能ハードウェアのロジックの検証において、CPU内に取り込まれたテストベンチソフトウェアを含む全ての要素をエミュレータに載せることができるので、エミュレータ上にマッピングされたLSI設計データのみでロジックの検証を行うことが可能になる。これによって、LSIの製造前であっても高速のロジックの検証が可能になり、LSIの開発期間の短縮やLSIの品質向上が図れる。
【0071】
図3は、本発明の半導体集積回路の機能検証を実行する手順を説明するためのフローチャートである。ここでは、図1のCPUコアに同居させている機能実行ソフトウェアおよび機能検証ソフトウェア(またはテストベンチソフトウェア)を動作させて、図1の実施例に係るCPU内蔵型のLSIの機能検証を行うための詳細な手順を説明する。なお、機能実行ソフトウェアおよび機能検証ソフトウェアは、予め外部記憶装置からLSI内部にダウンロードされているものとする。
【0072】
初めに、CPU内蔵型のLSIのテストモード選択入力用の端子をアクティブのレベルにし、LSIを機能自己検証可能な状態(すなわち、テストモード)に設定する(ステップS1)。この状態では、LSIの機能検証を行うためのデータの入力元としてテストデータバッファが選択されると共に、LSIの機能検証の結果に関するデータの出力先として検証結果バッファが選択される。
【0073】
つぎに、機能コアおよび機能実行ソフトウェアの動作と機能検証ソフトウェアの動作とのタイミングを調整するために、機能動作クロックを停止させ、機能コアを動作させないようにする(ステップS2)。このときに、機能検証ソフトウェアが動作を開始する。
【0074】
その後、機能検証ソフトウェアが、自分自身で生成したある単位量のテストデータ(例えば1フレーム分のテストデータ)をテストデータバッファに格納する(ステップS3)。
【0075】
上記のテストデータをテストデータバッファに格納した後、機能検証ソフトウェアの動作が停止し、機能動作クロックが再開する(ステップS4)。
【0076】
さらに、テストデータバッファに格納されているテストデータに基づき、機能コアおよび機能実行ソフトウェアがある単位量分動作する。これらの機能コアおよび機能実行ソフトウェアの動作により得られた結果を検証結果バッファに格納する(ステップS5)。
【0077】
テストデータバッファに格納されたテストデータ分(例えば1フレーム分のテストデータ)に関して、LSIの機能動作が終了した後、機能動作クロックを停止させ、機能コア2、3を動作させないようにする(ステップS6)。このときに、機能検証ソフトウェアが再び動作を開始する。
【0078】
その後、機能検証ソフトウェアが、検証結果バッファから機能検証の結果を取り込む(ステップS7)。さらに、機能検証ソフトウェアが、取り込んだ検証結果に関するデータの解析を行う(ステップS8)。
【0079】
当該データを解析した後、機能検証ソフトウェアにてLSIの機能検証を継続して行いたい場合は(Yes)、前述のステップS3に戻る(ステップS9)。機能検証を終了する場合は(No)、次のステップS10に進む。
【0080】
このステップS10において、LSIのテストモード選択入力用の端子をネガティブのレベルにし、LSI自身によるLSIの機能検証を終了する。これによって、データの入力元として外部入力が選択されると共に、データの出力先として外部出力が選択され、通常のLSI(半導体集積回路)の動作が遂行されるような通常動作モードになる(ステップS11)。
【0081】
図4は、本発明の半導体集積回路の機能検証を実行する際の信号およびデータの流れを説明するためのタイミングチャートである。この場合も、機能実行ソフトウェアおよび機能検証ソフトウェアは、予め外部記憶装置からLSI内部にダウンロードされているものとする。
【0082】
CPU内蔵型のLSIの機能検証を実行する場合、図4の(B)の「テストモード選択入力」に示すように、テストモード選択入力用の端子に供給されるテストモード選択入力信号(すなわち、切替制御信号)をアクティブのレベル(ここでは、“1”のレベル)にし、LSIを機能自己検証可能な状態(テストモード)に設定する。このときに、図4の(A)の「機能動作クロック」に示すように、機能コアの入力部の機能動作クロックを停止させ、機能コアを動作させないようにする。上記のテストモードでは、データの入力元としてテストデータバッファが選択されると共に、データの出力先として検証結果バッファが選択される。
【0083】
さらに、図4の(C)の「外部入力フレームパルス」と図4の(D)の「外部入力データ」に示すように、機能検証ソフトウェアが、自分自身で生成した1フレーム分のテストデータをテストデータバッファに格納する(図4の(I)の「テストデータバッファ格納」参照)。
【0084】
より詳しくいえば、図4の(C)の「外部入力フレームパルス」によってテストデータの単位量(ここでは、1フレーム分)が指定され、この外部入力フレームパルスにより指定された単位量に相当するテストデータ(図4の(D)の「外部入力データ」参照)が、テストデータバッファに転送され格納されることになる。なお、図4の(C)および(D)に記載の "Don't Care" は、LSIがテストモードに設定されている間は、LSIの外部からどのような信号が入ってきた場合でも、LSIの機能検証の動作に影響を及ぼさないことを意味するものである。
【0085】
因みに、CPU内蔵型のLSIが通常動作モードになっている場合、テストモード選択入力用の端子に供給されるテストモード選択入力信号はネガティブのレベル(ここでは、“0”のレベル)になっている。この通常動作モードでは、図4の(D)の「外部入力データ」と図4の(E)の「外部出力データ」から明らかなように、図4の(D)の外部入力データが、そのまま外部出力用の端子から出力される。これに対し、LSIがテストモードに設定されている間は、外部出力データは不定の状態になり、通常のLSIの動作が遂行されない。
【0086】
さらに、図4の(F)の「機能コア入力フレームパルス」と図4の(G)の「機能コア入力データ」に示すように、外部入力フレームパルスに同期した機能コア入力フレームパルスに基づき、テストデータバッファに格納されているテストデータが、機能コア入力データとして機能コアに入力される。
【0087】
上記のテストデータをテストデータバッファに転送して格納した後、機能検証ソフトウェアの動作が停止し、図4の(A)の機能動作クロックが再開する。その後、機能コアに入力されたテストデータを用いて、機能コアおよび機能実行ソフトウェアを動作させる。これらの機能コアおよび機能実行ソフトウェアを動作させて得られた結果は、図4の(H)の「機能コア出力データ」と図4の(J)の「検証結果バッファ格納」に示すように、機能コアから出力されて検証結果バッファに格納される。
【0088】
なお、図4の(G)に記載の "Don't Care" は、LSIがテストモードに設定されている間は、機能コアにどのような信号が入力された場合でも、LSIの機能検証の動作に影響を及ぼさないことを意味するものである。また一方で、図4の(H)から明らかなように、LSIがテストモードに設定されている間は、機能コアから出力される機能コア出力データは不定の状態になっている。
【0089】
さらに、テストデータバッファに格納された1フレーム分のテストデータに関して、LSIの機能動作が終了した後、機能動作クロックを再び停止させ(図4の(A)の「機能動作クロック」参照)、機能コアを動作させないようにする。このときに、機能検証ソフトウェアが再び動作を開始し、図4の(K)の「検証結果解析中」に示すように、検証結果バッファから機能検証の結果を取り込む。さらに、機能検証ソフトウェアが、取り込んだ検証結果をもとにデータの解析を行う。データの解析結果の情報は、解析結果出力部からLSIの外部に出力することが可能である。
【0090】
データの解析後、さらに機能検証ソフトウェアにて機能検証を行う場合は、前述の(C)の「外部入力フレームパルス」によってテストデータの単位量が再び指定され、この外部入力フレームパルスにより指定された単位量に相当するテストデータ(図4の(D)の「外部入力データ」参照)が、テストデータバッファに転送され格納される。
【0091】
機能検証を終了する場合は、テストモード選択入力信号をネガティブのレベルにし(図4の(B)の「テストモード選択入力」参照)、LSIの機能自己検証を終了する。これによって、機能動作クロックが再開し(図4の(A)の「機能動作クロック」参照)、通常動作モードによるLSIの通常動作に戻る。
【0092】
これまで述べた実施例において、LSIに内蔵されたCPUコアにオペレーティングシステム(OS:Operating System)を搭載し、ソフトウェアをマルチタスクで動作させることが可能な場合、機能実行ソフトウェアと機能検証ソフトウェア(またはテストベンチソフトウェア)をそれぞれ別のタスクに割り当てることによって、上記の機能実行ソフトウェアおよび機能検証ソフトウェアを並列で動作させることができる。それゆえに、より短いレイテンシでLSIの機能検証を行うことが可能になる。
【0093】
(付記1) 所定の機能を有する機能ハードウェアと、ソフトウェアのプログラムを実行することにより所定の機能を実現する中央演算処理部とからなる半導体集積回路において、
前記中央演算処理部が生成した前記半導体集積回路の機能検証を行うためのテストデータを格納する第1の記憶部と、
前記半導体集積回路の機能検証の結果に関する検証結果データを格納する第2の記憶部とを備えることを特徴とする半導体集積回路。
【0094】
(付記2) 前記中央演算処理部の動作の状態に基づいて、前記機能ハードウェアを動作させる機能動作クロックを停止させる機能動作クロック停止判断部を備えることを特徴とする付記1記載の半導体集積回路。
【0095】
(付記3) 前記半導体集積回路の機能検証を行うか否かのモードの切替えを示すテストモード選択入力用の端子を備えることを特徴とする付記1または2記載の半導体集積回路。
【0096】
(付記4) 前記検証結果データの解析結果を出力する解析結果出力端子を備えることを特徴とする付記1、2または3記載の半導体集積回路。
【0097】
(付記5) 前記テストモード選択入力の状態に基づいて、前記機能ハードウェアおよび前記中央演算処理部に入力されるデータの入力元として、外部入力または前記第1の記憶部のいずれかを選択する入力切替部を備えることを特徴とする付記3記載の半導体集積回路。
【0098】
(付記6) 前記テストモード選択入力の状態に基づいて、前記機能ハードウェアおよび前記中央演算処理部から出力されるデータの出力元として、外部出力または前記第2の記憶部のいずれかを選択する出力切替部を備えることを特徴とする付記3または5記載の半導体集積回路。
【0099】
(付記7) 所定の機能を有する機能ハードウェアと、ソフトウェアのプログラムを実行することにより所定の機能を実現する中央演算処理部とからなる半導体集積回路の機能検証方法において、
前記中央演算処理部にて所定の機能を実現するための第1のソフトウェアと、前記半導体集積回路の機能を機能検証するための第2のソフトウェアとを、該中央演算処理部において同居させて動作させ、
前記第2のソフトウェアが前記半導体集積回路の機能を機能検証するためのテストデータを生成し、
前記テストデータを第1の記憶部に格納し、
該テストデータを用いて、前記機能ハードウェアと前記第1のソフトウェアとを動作させ、該機能ハードウェアと該第1のソフトウェアの動作の結果として出力される検証結果データを第2の記憶部に格納することを特徴とする半導体集積回路の機能検証方法。
【0100】
(付記8) 前記第2のソフトウェアが、前記検証結果データを前記第2の記憶部より取り出し、該検証結果データを解析することを特徴とする付記7記載の機能検証方法。
【0101】
(付記9) 前記第2のソフトウェアが、前記テストデータを生成するときには前記機能ハードウェアを動作させる機能動作クロックを停止させ、
前記テストデータを用いて、前記機能ハードウェアと前記第1のソフトウェアとを動作させるときには前記機能動作クロックを動作させ、
前記検証結果データを解析するときには、前記機能ハードウェアを動作させる機能動作クロックを停止させることを特徴とする付記7または8記載の機能検証方法。
【0102】
(付記10) 所定の機能を有する機能ハードウェアと、ソフトウェアのプログラムを実行することにより所定の機能を実現する中央演算処理部とからなる半導体集積回路の機能を検証するプログラムであって、コンピュータに、
前記半導体集積回路の機能を機能検証するためのテストデータを生成する手段と、
生成された前記テストデータを第1の記憶部に格納する手段と、
前記テストデータを用いて、前記機能ハードウェアと前記中央演算処理部を機能させるソフトウェアとを動作させ、該機能ハードウェアと該ソフトウェアの動作の結果として出力される検証結果データを第2の記憶部に格納する手段とを機能させるための半導体集積回路の機能検証プログラム。
【0103】
【発明の効果】
以上説明したように、本発明によれば、LSI等の半導体集積回路に内蔵されたCPUに、所定の機能を実行させるための機能実行ソフトウェアと上記所定の機能を検証するための機能検証ソフトウェアとを予め取り込んで同居させ、機能ハードウェアの動作を停止させて、機能検証ソフトウェアによりLSIの機能検証を行うためのテストパターン等のデータを生成し、機能ハードウェアの動作を開始させて、当該データを用いてLSIの機能検証を行うようにしているので、高価な試験治具等を用いることなくLSI単体でLSI自身の機能検証を行うことが可能になる。
【0104】
また一方で、LSI等に内蔵されたCPUを、テストパターン等のデータの生成や当該データを用いた機能検証に利用することにより、高機能の試験治具等の開発が不要になってLSIの評価コストの上昇が抑えられると共に、外部のパーソナルコンピュータ等による制御が不要になってLSIの機能検証に要する時間を大幅に短縮することが可能になる。
【図面の簡単な説明】
【図1】本発明の一実施例に係る機能自己検証式の半導体集積回路の構成を示すブロック図である。
【図2】図1のCPUコアにて機能実行ソフトウェアと機能検証ソフトウェアとを同居させた状態を示すブロック図である。
【図3】本発明の半導体集積回路の機能検証を実行する手順を説明するためのフローチャートである。
【図4】本発明の半導体集積回路の機能検証を実行する際の信号およびデータの流れを説明するためのタイミングチャートである。
【図5】一般の被試験用半導体集積回路の実機試験環境を示すブロック図である。
【図6】従来のCPU内蔵型の半導体集積回路の構成を示すブロック図である。
【符号の説明】
1…半導体集積回路
2…機能コア(CPU依存部)
3…機能コア(CPU非依存部)
4…機能動作クロック停止判断部
5…CPUコア
6…テストデータバッファ
7…検証結果バッファ
8…外部記憶装置
9…内蔵メモリ
11…上位ソフトインタフェース部
12…入力インタフェース部
13…入力切替部
14…ハード/ソフトインタフェース用メモリ
15…ソフト/ハードインタフェース用メモリ
16…ANDゲート
17…出力切替部
18…出力インタフェース部
51…機能実行ソフトウェア
52…機能検証ソフトウェア
100…半導体集積回路
101…パターン発生器
102…機能ブロック
103…出力部
104…パーソナルコンピュータ
105…CPU内蔵型の半導体集積回路
110…上位ソフトインタフェース部
120…入力インタフェース部
140…ハード/ソフトインタフェース用メモリ
150…ソフト/ハードインタフェース用メモリ
180…出力インタフェース部
200…機能コア(CPU依存部)
210…中間変数格納メモリ
300…機能コア(CPU非依存部)
310…中間変数格納メモリ
500…CPUコア
800…外部記憶装置
900…内蔵メモリ
[0001]
BACKGROUND OF THE INVENTION
The present invention operates on a built-in central processing unit (usually abbreviated as a CPU (Central Processing Unit)) and executes various functions by having logic (logic) of functional hardware having various functions. The present invention relates to a semiconductor integrated circuit that realizes the above various functions in cooperation with function execution software, and a function verification method for verifying whether various functions of the semiconductor integrated circuit are normal. .
[0002]
In recent years, in a semiconductor integrated circuit such as a large scale integrated circuit (hereinafter abbreviated as LSI (Large Scale Integrated Circuit)), a gate of the LSI or the like has been developed due to advancement of technology such as miniaturization and high integration of the semiconductor integrated circuit. There is a tendency that the processing speed is required to increase while the number of functions and the complexity of functions increase. In order to cope with such a tendency, the present invention refers to a method for verifying various functions of an LSI or the like in a short time without using an expensive test jig or the like.
[0003]
[Prior art]
In general, in LSI functional verification using a hardware description language (hereinafter abbreviated as HDL (hardware description language)), it is executed on an external engineering workstation / personal computer (hereinafter abbreviated as EWS / PC). When a simulation is performed using a software simulator, the simulation speed becomes very slow due to the increase in the number of LSI gates, the complexity of functions, and the increase in processing speed. It takes an enormous amount of time to verify the logic provided.
[0004]
In order to improve the simulation speed, some or all of LSI design data (for example, RTL (Register Transfer Level), which is the design level expressed by the operation between multiple registers) using HDL is mapped onto the emulator. When the simulation is executed, the operation speed of the emulator portion is increased to an allowable range. However, only a test bench (generally software) that generates a test pattern or test program for verifying the logic of an LSI is usually configured by a behavioral description language or the like that represents only the functions of the entire integrated circuit. It cannot be mapped directly on, and must be executed on the EWS / PC by software simulation.
[0005]
Therefore, the simulation speed as predicted cannot be obtained due to the communication overhead between the emulator and the EWS / PC and the processing load of the test bench. In particular, recently, in order to verify an LSI having a complicated function, there is a growing need for higher functionality with respect to a test bench, and thus problems such as a slower simulation speed have become prominent. For this reason, design man-hours for test benches are increasing, and the verification of LSI logic as described above has become a bottleneck for LSI development of large-scale systems.
[0006]
The increase in the number of LSI gates and the complexity of functions leads to problems such as increasing the complexity and length of the test program and enlarging the memory space set by the CPU even in actual machine testing. Has become prominent. On the other hand, advances in LSI technology have also led to higher processing speeds of LSI functions (for example, processing speed of 10 Gbps (gigabit / second) per chip). Therefore, in order to perform an actual machine test of the above-mentioned LSI engineering sample (usually abbreviated as ES (Engineering Sample)), a highly functional test jig or test tool is required, and this engineering sample is to be evaluated correctly. The increase in evaluation cost required for the project is also a problem.
[0007]
Here, in order to clarify the problems related to the function verification method of a conventional semiconductor integrated circuit such as an LSI, typical semiconductors that have been used so far are described with reference to the accompanying drawings (FIGS. 5 and 6). A function test method of the integrated circuit will be described.
[0008]
FIG. 5 is a block diagram showing an actual machine test environment of a general semiconductor integrated circuit under test, and FIG. 6 is a block diagram showing a configuration of a conventional CPU built-in semiconductor integrated circuit.
[0009]
However, in the block diagram of FIG. 5, when an LSI engineering sample is used as the semiconductor integrated circuit 100 to be tested, the actual machine test environment for executing the function verification method of the function block 102 of the LSI is simplified. Show. Further, in the block diagram of FIG. 6, a configuration of a semiconductor integrated circuit with a built-in CPU as described later is simplified.
[0010]
In the actual machine test environment of FIG. 5, the functional block 102 is generally configured by hardware logic such as an FPGA (Field Programmable Gate Array) composed of a large-scale gate array. The function requested by the user or the like is executed by the hardware logic. On the other hand, a pattern generator 101 that generates data such as a test pattern for verifying the function of the functional block 102 as described above is provided outside the LSI under test. The pattern generator 101 sends various signals (including data such as test patterns) from the input unit (not shown) of the LSI under test to the functional block 102 in the LSI via the input interface unit 120. This is a circuit to be supplied, and is usually composed of hardware logic, a CPU, a memory such as a RAM (Random Access Memory) or a ROM (Read Only Memory), a timer, and the like.
[0011]
On the other hand, with respect to the test program, setting data from the upper CPU, etc., the personal computer 104 communicates with the LSI under test via the serial communication port such as RS-232C and the upper software interface unit 110. It is common. When performing an actual device test of an LSI under test, the personal computer 104 usually sets a setting register or the like inside the LSI after resetting the LSI under test. Thereafter, the data is supplied from the pattern generator 101 and processed by the functional block 102 in the LSI under test, and then the data is sent to the output unit 103 outside the LSI via the output interface unit 180. Forward. In the output unit 103, the processing result of the data is analyzed. This output unit 103 monitors the waveform of the output signal of the functional block 102, or compares the actual output signal value with the expected value of the output signal given from the pattern generator 101, thereby enabling the LSI to Verify the normality of the function.
[0012]
In recent years, LSIs are composed of large-scale gates (or gate arrays) and have complicated functions. Therefore, development costs have become enormous, making it difficult to remake products and develop multiple products. For this reason, in recent years, development of a semiconductor integrated circuit with a built-in CPU including a CPU for executing a software program has been frequently performed.
[0013]
In the block diagram of FIG. 6, as a conventional CPU-embedded semiconductor integrated circuit 105, a configuration of a CPU-embedded LSI having a CPU core 500 having a CPU function is shown as a representative. Here, a function core (CPU-dependent section) 200 and a function core (CPU-independent section) 300 configured by hardware logic are provided inside the LSI, and a CPU core for causing software (function execution software) to function. 500 is provided inside the LSI. Furthermore, the functional core (CPU-dependent unit) 200 and the functional core (CPU-independent unit) 300 have intermediate variable storage memories 210 and 310 that temporarily store intermediate variables generated during the operation of these functional cores. Each is provided. The functional core (CPU-dependent unit) 200 is functional hardware that executes a predetermined function according to the operation timing of the CPU core 500, and the functional core (CPU-independent unit) 300 depends on the operation timing of the CPU core 500. This is functional hardware that executes a predetermined function in a state in which it is not performed. Here, some of the functions of the above-described functional blocks (see FIG. 5) are configured by the functional core (CPU dependent unit) 200 and the functional core (CPU independent unit) 300 described above.
[0014]
In the CPU built-in type LSI of FIG. 6, the CPU core 500 holds a program of software (function execution software) downloaded from the external storage device 800 outside the LSI via the built-in memory 900. A part of the function of the function block is executed. In other words, a part of the functions that have been processed only by the hardware logic (for example, the functional block of FIG. 5 described above) is executed by performing software program processing by the CPU core 500. Thus, it is possible to cope with a certain degree of function change (function enhancement) and function addition of the LSI by revision of the program.
[0015]
In particular, a CPU built-in LSI that constitutes a main signal processing system in the communication field often requires very high processing speed and real-time processing of data, and is required by users only for processing by software programs. It has become very difficult to satisfy the performance. Therefore, a processing unit that functions as hardware (for example, 6 Functional cores 200 and 300) and a processing unit (for example, FIG. 6 In general, the functions of the LSI are constituted by both of the CPU cores 500).
[0016]
Further, in FIG. 6, as in the case of FIG. 5 described above, data such as test patterns for verifying the functions of the functional cores 200 and 300 in the LSI with built-in CPU are input via the input interface unit 120. , And supplied from the external input terminal to the functional cores 200 and 300 in the LSI. Here, the data such as the test pattern is temporarily held in a data buffer such as a hardware / software I / F (interface) memory 140 in order to establish an interface between hardware and software. Data in the hardware / software I / F memory 140 is verified according to a program operating on the CPU core 500.
[0017]
When performing a real machine test of a CPU built-in type LSI, the LSI is usually reset in accordance with a program operating on the CPU core 500, and then data is supplied from an external input terminal, and the functional cores 200 and 300 in the LSI are provided. In addition, the CPU core 500 verifies the data. The data verification result is temporarily held in a data buffer such as a software / hardware I / F (interface) memory 150 in order to establish an interface between software and hardware. Data in the soft / hard I / F memory 150 is transferred from the output interface unit 180 to an external output terminal as necessary. Further, an output unit (not shown) outside the LSI verifies the normality of the LSI function by comparing the actual output signal value from the functional cores 200 and 300 with the expected value of the output signal. To do. As described above, in the CPU built-in type LSI of FIG. 6, it is possible to easily change the function of the LSI, add the function, etc. by both the function cores 200 and 300 functioning as hardware and the CPU core 500 functioning as software. Flexible system development becomes possible.
[0018]
Further, in the actual device test of the LSI with a built-in CPU, it is possible to communicate with an external personal computer (not shown) via the upper software interface unit 110 as necessary.
[0019]
As a configuration similar to the CPU built-in type semiconductor integrated circuit as described above, a CPU core built in a one-chip microcomputer inputs a test pattern to a logic circuit group and the like, and an output signal obtained from the logic circuit group or the like A configuration for performing a self-inspection is described in the following prior art documents.
[0020]
[Patent Document 1]
JP 2001-27958 A
[0021]
[Problems to be solved by the invention]
As described above, in a conventional semiconductor integrated circuit such as an LSI with a built-in CPU, a CPU core having a CPU function is provided inside the LSI, and program processing is performed by the CPU core, thereby changing or changing the functions of the LSI. I was trying to deal with the addition to some extent. However, when an LSI with a built-in CPU is used, the simulation speed becomes very slow due to the increase in the LSI gate scale, the complexity of functions, and the increase in processing speed, and a huge amount of time is required for verification of the LSI logic. Problem arises. For example, when a simulation for 1 second of real time is performed on an LSI with an operating frequency of 1 GHz, the simulation ends when a software simulator (simulation speed: 100 Hz) is operated using a machine whose CPU clock is 1 GHz. It takes about 10 megaseconds (Msec) = 115.7 days.
[0022]
On the other hand, when the emulator (simulation speed: 1 MHz) is used, the simulation is completed in 1000 seconds. However, this numerical value can be achieved only when all the circuits in the LSI are mounted on the emulator. As mentioned above, test benches that generate test patterns and test programs for verifying LSI logic are usually composed of behavioral description languages, etc., and are converted to circuits that can be mounted on an emulator. Is difficult. For this reason, only the test bench is operated by a software simulator. In other words, no matter how fast the simulation speed of the emulator is, the overall simulation speed is determined by the software simulator. Here, in order to increase the simulation speed, if the test bench is to be mounted on the emulator, this test bench must also be described in RTL, which takes a lot of man-hours.
[0023]
Furthermore, in actual machine tests using conventional semiconductor integrated circuits such as LSIs with built-in CPUs, development of high-performance test jigs or test instruments, and software from the outside (for example, a personal computer connected to the actual machine) Therefore, there is a problem that the actual machine test environment becomes very expensive and the evaluation cost for correctly evaluating the LSI increases.
[0024]
The present invention has been made in view of the above problems, and a semiconductor integrated circuit and a semiconductor capable of reducing the time required for functional verification of an LSI or the like without using an expensive test jig or the like as compared with the conventional case. An object of the present invention is to provide a function verification method for an integrated circuit.
[0025]
[Means for Solving the Problems]
In order to solve the above problems, the present invention includes functional hardware having a predetermined function, and a central processing unit (CPU: also called CPU core) that realizes the predetermined function by executing a software program. In the semiconductor integrated circuit comprising: a first storage unit for storing test data for performing functional verification of the semiconductor integrated circuit generated by the central processing unit; and a verification result relating to a result of functional verification of the semiconductor integrated circuit Provided is a semiconductor integrated circuit including a second storage unit for storing data.
[0026]
Preferably, the semiconductor integrated circuit according to the present invention includes a functional operation clock stop determination unit that stops a functional operation clock that operates the functional hardware based on an operation state of the central processing unit.
[0027]
Furthermore, it is preferable that the semiconductor integrated circuit of the present invention includes a test mode selection input terminal that indicates a mode switching as to whether or not to perform functional verification of the semiconductor integrated circuit.
[0028]
On the other hand, the present invention provides a function verification method for a semiconductor integrated circuit comprising functional hardware having a predetermined function and a central processing unit that realizes the predetermined function by executing a software program. First software for realizing a predetermined function in the arithmetic processing unit and second software for functional verification of the function of the semiconductor integrated circuit are operated together in the central processing unit, The second software generates test data for verifying the function of the semiconductor integrated circuit, stores the test data in a first storage unit, and uses the test data to generate the functional hardware and the The first software is operated, and the verification result data output as a result of the operation of the functional hardware and the first software is displayed. It provides a function verification method of a semiconductor integrated circuit for storing data in the second storage unit.
[0029]
Preferably, in the function verification method for a semiconductor integrated circuit according to the present invention, the second software extracts the verification result data from the second storage unit and analyzes the verification result data.
[0030]
On the other hand, the present invention is a program for verifying the function of a semiconductor integrated circuit comprising functional hardware having a predetermined function and a central processing unit that realizes the predetermined function by executing a software program. A means for generating test data for functional verification of the function of the semiconductor integrated circuit, a means for storing the generated test data in a first storage unit, and the test data; The function hardware and software for operating the central processing unit are operated, and the function hardware and means for storing verification result data output as a result of the operation of the software in a second storage unit A function verification program for a semiconductor integrated circuit is provided.
[0031]
In summary, in the present invention, first software (for example, function execution software) for causing a CPU core built in a semiconductor integrated circuit such as an LSI to execute a predetermined function and the predetermined function are verified. Second software (for example, function verification software or test bench software) is preloaded and coexisted, and the operation of the functional hardware composed of hardware logic or the like is stopped, and the second software performs LSI processing. Since data such as test patterns for performing functional verification is generated and the operation of the functional hardware is started, the functional verification of the LSI itself is performed using the data. The function of the LSI itself can be verified by itself without using the above.
[0032]
Thus, in the present invention, a CPU core built in a semiconductor integrated circuit such as an LSI is used for generation of data such as test patterns and functional verification using the data in addition to the operation of functional hardware. Development of functional test jigs is no longer necessary, which can prevent an increase in LSI evaluation costs, and control by an external personal computer is no longer necessary, greatly reducing the time required for LSI functional verification. It becomes possible.
[0033]
DETAILED DESCRIPTION OF THE INVENTION
The configuration and operation of a preferred embodiment of the present invention will be described below with reference to the accompanying drawings (FIGS. 1 to 4).
[0034]
FIG. 1 is a block diagram showing a configuration of a function self-verifying semiconductor integrated circuit according to an embodiment of the present invention. FIG. 2 is a block diagram of the function execution software and the function verification software in the CPU core of FIG. It is a block diagram which shows the state made to do.
[0035]
However, in the block diagram of FIG. 1, the configuration of the LSI with a built-in CPU in which the CPU core 5 having the function of the CPU is built is simplified as the function self-verifying semiconductor integrated circuit 1 according to the embodiment of the present invention. Show. Hereinafter, the same components as those described above are denoted by the same reference numerals.
[0036]
In the CPU built-in LSI of FIG. 1, a functional core (CPU-dependent unit) 2 and a functional core (CPU-independent unit) 3 configured by hardware logic are provided inside the LSI, and the CPU core functions as software. 5 is provided inside the LSI. The functional core (CPU dependent part) 2 and the functional core (CPU non-dependent part) 3 are respectively the above-mentioned figures. 6 The functional core (CPU-dependent portion) 200 and the functional core (CPU-independent portion) 300 substantially correspond. The functional core (CPU-dependent unit) 2 and the functional core (CPU-independent unit) 3 have the above-described diagrams. 6 As in the case of, an intermediate variable storage memory for temporarily storing intermediate variables generated during the operation of the functional cores 2 and 3 is provided (the intermediate variable storage memory is omitted in FIG. 1). . The functional core (CPU-dependent unit) 2 is functional hardware that executes a predetermined function according to the operation timing of the CPU core 5, and the functional core (CPU-independent unit) 3 is not dependent on the operation of the CPU core 5. Functional hardware for executing a predetermined function.
[0037]
Further, in the CPU built-in type LSI of FIG. 6 As in the conventional example, a function execution software (first software) 51 program downloaded from the external storage device 8 outside the LSI via the built-in memory 9 is held. By operating the program of the function execution software 51 on the CPU core 5, the LSI functions set in the function cores 2 and 3 are executed.
[0038]
In one embodiment of the present invention, as shown in FIG. 2, the above-mentioned function execution software 51 and function verification software or test bench software for verifying the function of the LSI (first test software) 2) 52, and a function that allows the LSI itself to be verified by itself. In this case, the function verification software 52 is also downloaded from the external storage device 8 outside the LSI via the built-in memory 9 and held in the CPU core 5. Preferably, the external storage device 8 includes a RAM or ROM, a magnetic disk device, a magneto-optical disk device, an optical disk device, or the like. On the other hand, the built-in memory 9 is composed of RAM or ROM. As the built-in memory 9, it is also possible to use a RAM or ROM built in the CPU core.
[0039]
More specifically, in the embodiment of FIGS. 1 and 2, the function verification software 52 generates signal values of data such as test patterns and test programs input to the function cores 2 and 3 and the function execution software 51. In addition, the signal value of the data related to the function verification result of the LSI output from the functional cores 2 and 3 is taken in and analyzed.
[0040]
Further, in the embodiment of FIGS. 1 and 2, the function for operating the function cores 2 and 3 to adjust the timing of the operation of the function cores 2 and 3 and the function execution software 51 and the operation of the function verification software 52. A functional operation clock stop determination unit 4 that stops the operation clock is provided.
[0041]
The function verification software 52 generates data such as a test pattern and a test program for performing function verification of the LSI in a state where the function operation clock is stopped by the function operation clock stop determination unit 4. Further, the function verification software 52 operates the function cores 2 and 3 and the function execution software 51 using the data in a state where the function operation clock is started, and performs the function verification of the LSI itself. Furthermore, the function verification software 52 can capture and analyze data related to the result of function verification of the LSI output from the function hardware and the function execution software with the function operation clock stopped again.
[0042]
Here, a semiconductor switch element is used as the function operation clock stop determination unit 4, and the operation of the function cores 2 and 3 is controlled by starting or stopping the function operation clock by the on / off operation of the semiconductor switch element. However, the operation of the functional cores 2 and 3 can be started or stopped using a software program.
[0043]
Further, in the embodiment of FIGS. 1 and 2, an input switching unit 13 that switches the input source of data input to the function cores 2 and 3 and the function execution software 51 is provided. The input switching unit 13 is input to the function cores 1 and 2 and the function execution software by switching the LSI mode in accordance with a switching control signal supplied from an external terminal (test mode selection input terminal) of the LSI. Either the outside of the LSI or the function verification software 52 can be selected as the data input source.
[0044]
When the outside of the LSI is selected as the data input source, the data for verifying the function of the LSI is transferred from the external input terminal to the functional cores 2 and 3 via the input interface unit 12 and the input switching unit 13. Supplied. On the other hand, when the function verification software 52 is selected as the data input source, the function verification software 52 verifies the function of the LSI generated by itself via the test data buffer 6 and the input switching unit 13. Data for this is supplied to the functional cores 2 and 3. Furthermore, it is possible to verify the function of the LSI at an arbitrary time by switching the mode with the input switching unit 13.
[0045]
Here, the test data buffer (first storage unit) 6 performs the function verification of the LSI in order to operate both the function execution software 51 and the function verification software 52 on the CPU core 5 by time division. Has a function of temporarily storing the data.
[0046]
Further, in the embodiment of FIGS. 1 and 2, an output switching unit 17 that switches the output destination of data output from the function cores 2 and 3 and the function execution software 51 is provided. The output switching unit 17 outputs from the function cores 1 and 2 and the function execution software by switching the LSI mode according to a switching control signal supplied from an external terminal of the LSI (terminal for test mode selection input). Either the outside of the LSI or the function verification software 52 can be selected as the data output destination.
[0047]
When the outside of the LSI is selected as the data output destination, the data related to the LSI function verification result is transferred to the external output terminal via the output switching unit 17 and the output interface unit 18. On the other hand, when the function verification software 52 is selected as the data output destination, the function verification software 52 takes in data related to the LSI function verification result via the output switching unit 17 and the verification result buffer 7. To analyze.
[0048]
Here, the verification result buffer (second storage unit) 7 relates to the result of the LSI function verification in order to operate both the function execution software 51 and the function verification software 52 on the CPU core 5 by time division. It has a function of temporarily storing data. The function verification software 52 takes out the data regarding the result of the function verification of the LSI once stored in the verification result buffer (second storage unit) 7 in a state where the function operation clock is stopped again, and performs a detailed analysis. be able to. The result of analyzing the data related to the LSI function verification result can be output to an external terminal (analysis result output terminal) of the LSI via the analysis result selection output AND gate 16.
[0049]
As described above, in the embodiment shown in FIGS. 1 and 2, the data input to the functional cores 2 and 3 in accordance with the switching control signal supplied from the external terminal (test mode selection input terminal) of the LSI. It is possible to easily select the input source and the output destination of the data output from the functional cores 2 and 3 to be the external input or external output terminal of the LSI or the function verification software 52. is there. On the other hand, the result analyzed by the function verification software can be easily output to an external terminal of LSI (analysis result output terminal).
[0050]
In this embodiment, the test mode selection is performed from an external terminal. However, a test mode selection register is provided in the LSI, and the test mode selection is performed by setting a value in the register by software. It is also possible.
[0051]
Further, in the embodiment of FIGS. 1 and 2, when data such as a test pattern for verifying the function of the LSI is supplied to the function cores 2 and 3 and the function execution software 51, the data such as the test pattern is In order to establish an interface between hardware and software, the data is temporarily held in a data buffer such as a hardware / software I / F (interface) memory 14. Data in the hardware / software I / F memory 14 is extracted and verified by the function execution software 51 operating on the CPU core 5.
[0052]
When performing an actual machine test of a CPU built-in type LSI, the LSI is reset by the function verification software 52 operating on the CPU core 5, and then data such as a test pattern for verifying the function of the LSI is supplied. The data is verified by the function cores 2 and 3 and the function execution software 51. The verification result of the function execution software 51 is temporarily held in a data buffer such as a software / hardware I / F (interface) memory 15 in order to establish an interface between the software and hardware. The data in the soft / hard I / F memory 15 is taken out by the functional core 2 and analyzed.
[0053]
Further, in the actual device test of the LSI with a built-in CPU, it is possible to communicate with an external personal computer (not shown) via the host software interface unit 11 as necessary.
[0054]
Next, the following (1) to (5) describe the procedure for performing the function verification of the CPU built-in type LSI according to the embodiment of FIGS. 1 and 2 according to the function verification method of the present invention. Note that the function execution software 51 and the function verification software 52 are downloaded in advance from the external storage device 8 into the LSI.
[0055]
(1) Test mode switching
(A) The test mode selection input terminal of the LSI with a built-in CPU is set to an active level, and the LSI is brought into a state where the function can be self-verified (test mode). As a result, the test data buffer 6 is selected as the data input source, and the verification result buffer 7 is selected as the data output destination.
[0056]
(2) Test data buffering
(A) The function operation clock that is a clock for operating the function cores 2 and 3 is stopped, and the function cores 2 and 3 are not operated.
[0057]
(B) The function verification software (or test bench software) 52 starts operation.
[0058]
(C) The function verification software 52 transfers the test data generated by itself to the test data buffer 6. As the test data, for example, a unit amount with good separation is transferred, such as one frame.
[0059]
(3) Buffering of LSI functional operation and function verification results
(A) After transferring the test data to the test data buffer 6, the operation of the function verification software 52 is stopped and the function operation clock is restarted.
[0060]
(B) The function cores 2 and 3 and the function execution software 51 are operated using the test data stored in the test data buffer 6.
[0061]
(C) The result obtained by operating the function cores 2 and 3 and the function execution software 51 is stored in the verification result buffer 7.
[0062]
(4) Capturing and analyzing the results of functional verification
(A) For the test data (for example, one frame) stored in the test data buffer 6, after the functional operation of the LSI is completed, the functional operation clock is stopped so that the functional cores 2 and 3 are not operated.
[0063]
(B) The function verification software 52 starts to operate again.
[0064]
(C) The function verification software 52 fetches the function verification result from the verification result buffer 7.
[0065]
(D) The function verification software 52 analyzes data based on the acquired verification result. Data analysis result information (such as an error in the verification result) can be output from the analysis result output unit to the outside of the LSI.
[0066]
(E) When the function verification software 52 further performs function verification after data analysis, the process returns to (2) (c). When the function verification ends, the process proceeds to the next (5).
[0067]
(5) Normal operation mode switching
(A) The LSI test mode selection input terminal is set to a negative level, and the LSI functional self-verification ends. As a result, the external input is selected as the data input source, and the external output is selected as the data output destination, thereby enabling normal operation of the LSI in the normal operation mode.
[0068]
According to the above embodiment, the function execution software 51 for causing the CPU core 5 built in the semiconductor integrated circuit such as LSI to execute the function of the LSI and the function verification software 52 for verifying the function of the LSI coexist. Therefore, the function of the LSI itself can be verified by itself without using peripheral hardware resources and expensive test jigs. Therefore, peripheral hardware resources, test jigs, and the like, which have been necessary in the past, are no longer necessary, and it is possible to greatly reduce the component cost, manufacturing cost, and evaluation cost associated with the actual machine test.
[0069]
Furthermore, according to the above-described embodiment, an actual machine test can be performed on an LSI alone, so that setting of test data from an external personal computer is not required, and the connection between the CPU in the LSI and the external personal computer is eliminated. Long test time due to communication overhead is saved.
[0070]
Further, according to the above embodiment, in the verification of the function hardware logic, all elements including the test bench software loaded in the CPU can be mounted on the emulator, so that the LSI design data mapped on the emulator It becomes possible to perform logic verification only with this. As a result, high-speed logic verification can be performed even before the LSI is manufactured, and the LSI development period can be shortened and the quality of the LSI can be improved.
[0071]
FIG. 3 is a flowchart for explaining the procedure for executing the function verification of the semiconductor integrated circuit according to the present invention. Here, the function execution software and the function verification software (or test bench software) coexisting with the CPU core of FIG. 1 are operated to verify the function of the LSI with built-in CPU according to the embodiment of FIG. A detailed procedure will be described. Note that the function execution software and the function verification software are downloaded in advance from the external storage device into the LSI.
[0072]
First, the test mode selection input terminal of the LSI with built-in CPU is set to an active level, and the LSI is set to a state in which the function can be self-verified (ie, test mode) (step S1). In this state, a test data buffer is selected as an input source of data for performing LSI function verification, and a verification result buffer is selected as an output destination of data related to the result of LSI function verification.
[0073]
Next, in order to adjust the timing of the operation of the function core and the function execution software and the operation of the function verification software, the function operation clock is stopped so that the function core is not operated (step S2). At this time, the function verification software starts operating.
[0074]
Thereafter, the function verification software stores a unit amount of test data (for example, test data for one frame) generated by itself in the test data buffer (step S3).
[0075]
After the test data is stored in the test data buffer, the operation of the function verification software is stopped and the function operation clock is restarted (step S4).
[0076]
Further, based on the test data stored in the test data buffer, the function core and the function execution software operate for a certain unit amount. The results obtained by the operations of these function cores and function execution software are stored in the verification result buffer (step S5).
[0077]
With respect to test data stored in the test data buffer (for example, test data for one frame), after the functional operation of the LSI is completed, the functional operation clock is stopped so that the functional cores 2 and 3 are not operated (steps). S6). At this time, the function verification software starts to operate again.
[0078]
Thereafter, the function verification software fetches the result of the function verification from the verification result buffer (step S7). Furthermore, the function verification software analyzes data relating to the acquired verification result (step S8).
[0079]
After analyzing the data, if it is desired to continue the function verification of the LSI with the function verification software (Yes), the process returns to the above-described step S3 (step S9). When the function verification ends (No), the process proceeds to the next step S10.
[0080]
In step S10, the LSI test mode selection input terminal is set to a negative level, and the LSI functional verification by the LSI itself is completed. As a result, the external input is selected as the data input source, the external output is selected as the data output destination, and the normal operation mode in which the operation of the normal LSI (semiconductor integrated circuit) is performed (step) S11).
[0081]
FIG. 4 is a timing chart for explaining the flow of signals and data when executing the function verification of the semiconductor integrated circuit according to the present invention. Also in this case, it is assumed that the function execution software and the function verification software have been downloaded from the external storage device into the LSI in advance.
[0082]
When executing the function verification of the CPU built-in type LSI, as shown in “Test mode selection input” in FIG. 4B, a test mode selection input signal (ie, a test mode selection input signal supplied to the terminal for test mode selection input) The switching control signal) is set to an active level (here, “1” level), and the LSI is set to a state in which functional self-verification is possible (test mode). At this time, as shown in “functional operation clock” in FIG. 4A, the functional operation clock of the input part of the functional core is stopped so that the functional core is not operated. In the test mode, the test data buffer is selected as the data input source, and the verification result buffer is selected as the data output destination.
[0083]
Further, as shown in “external input frame pulse” in FIG. 4C and “external input data” in FIG. 4D, the function verification software generates test data for one frame generated by itself. The data is stored in the test data buffer (see “Test data buffer storage” in FIG. 4I).
[0084]
More specifically, a unit amount of test data (here, one frame) is designated by the “external input frame pulse” in FIG. 4C, which corresponds to the unit amount designated by the external input frame pulse. Test data (see “external input data” in FIG. 4D) is transferred to and stored in the test data buffer. Note that “Don't Care” described in (C) and (D) of FIG. 4 does not matter what signal is input from outside the LSI while the LSI is set to the test mode. This means that it does not affect the function verification operation of the LSI.
[0085]
Incidentally, when the CPU built-in LSI is in the normal operation mode, the test mode selection input signal supplied to the test mode selection input terminal is at a negative level (here, “0” level). Yes. In this normal operation mode, as is clear from the “external input data” in FIG. 4D and the “external output data” in FIG. 4E, the external input data in FIG. Output from the external output terminal. On the other hand, while the LSI is set to the test mode, the external output data is in an indefinite state, and normal LSI operation is not performed.
[0086]
Furthermore, as shown in “functional core input frame pulse” in FIG. 4F and “functional core input data” in FIG. 4G, based on the functional core input frame pulse synchronized with the external input frame pulse, Test data stored in the test data buffer is input to the functional core as functional core input data.
[0087]
After the test data is transferred and stored in the test data buffer, the operation of the function verification software is stopped and the function operation clock shown in FIG. 4A is restarted. Thereafter, the function core and the function execution software are operated using the test data input to the function core. The results obtained by operating these functional cores and function execution software are as shown in “functional core output data” in FIG. 4H and “verification result buffer storage” in FIG. Output from the functional core and stored in the verification result buffer.
[0088]
It should be noted that “Don't Care” shown in FIG. 4G is a function verification function of the LSI regardless of what signal is input to the functional core while the LSI is set to the test mode. It means that the operation is not affected. On the other hand, as is apparent from FIG. 4H, while the LSI is set to the test mode, the functional core output data output from the functional core is in an indefinite state.
[0089]
Further, regarding the test data for one frame stored in the test data buffer, after the functional operation of the LSI is completed, the functional operation clock is stopped again (see “functional operation clock” in FIG. 4A). Do not operate the core. At this time, the function verification software starts to operate again, and fetches the result of the function verification from the verification result buffer as shown in “Verification result analysis in progress” in FIG. Furthermore, the function verification software analyzes the data based on the acquired verification results. Data analysis result information can be output from the analysis result output unit to the outside of the LSI.
[0090]
After the data analysis, when the function verification is performed by the function verification software, the unit amount of the test data is again specified by the “external input frame pulse” of (C) described above, and is specified by the external input frame pulse. Test data corresponding to the unit amount (see “external input data” in FIG. 4D) is transferred to and stored in the test data buffer.
[0091]
When the function verification is finished, the test mode selection input signal is set to a negative level (see “test mode selection input” in FIG. 4B), and the function self-verification of the LSI is finished. As a result, the functional operation clock is restarted (see “functional operation clock” in FIG. 4A), and the normal operation mode of the LSI returns to the normal operation mode.
[0092]
In the embodiments described so far, when an operating system (OS) is installed in a CPU core built in an LSI and the software can be operated in multitasking, function execution software and function verification software (or By assigning the test bench software) to different tasks, the function execution software and the function verification software can be operated in parallel. Therefore, it is possible to verify the function of the LSI with a shorter latency.
[0093]
(Supplementary Note 1) In a semiconductor integrated circuit including functional hardware having a predetermined function and a central processing unit that realizes the predetermined function by executing a software program,
A first storage unit for storing test data for performing functional verification of the semiconductor integrated circuit generated by the central processing unit;
A semiconductor integrated circuit, comprising: a second storage unit that stores verification result data relating to a result of functional verification of the semiconductor integrated circuit.
[0094]
(Supplementary note 2) The semiconductor integrated circuit according to supplementary note 1, further comprising: a functional operation clock stop determination unit that stops a functional operation clock that operates the functional hardware based on an operation state of the central processing unit. .
[0095]
(Supplementary note 3) The semiconductor integrated circuit according to Supplementary note 1 or 2, further comprising a terminal for test mode selection input indicating a mode switching as to whether or not to perform functional verification of the semiconductor integrated circuit.
[0096]
(Additional remark 4) The semiconductor integrated circuit of Additional remark 1, 2 or 3 provided with the analysis result output terminal which outputs the analysis result of the said verification result data.
[0097]
(Supplementary Note 5) Based on the state of the test mode selection input, an external input or the first storage unit is selected as an input source of data input to the functional hardware and the central processing unit. The semiconductor integrated circuit according to appendix 3, further comprising an input switching unit.
[0098]
(Supplementary Note 6) Based on the state of the test mode selection input, either an external output or the second storage unit is selected as an output source of data output from the functional hardware and the central processing unit The semiconductor integrated circuit according to appendix 3 or 5, further comprising an output switching unit.
[0099]
(Supplementary note 7) In a function verification method for a semiconductor integrated circuit comprising functional hardware having a predetermined function and a central processing unit that realizes the predetermined function by executing a software program,
A first software for realizing a predetermined function in the central processing unit and a second software for verifying the function of the semiconductor integrated circuit are operated together in the central processing unit. Let
The second software generates test data for verifying the function of the semiconductor integrated circuit;
Storing the test data in a first storage unit;
Using the test data, the functional hardware and the first software are operated, and verification result data output as a result of the operation of the functional hardware and the first software is stored in the second storage unit. A function verification method for a semiconductor integrated circuit, wherein the function is stored.
[0100]
(Supplementary note 8) The function verification method according to supplementary note 7, wherein the second software extracts the verification result data from the second storage unit and analyzes the verification result data.
[0101]
(Supplementary Note 9) When the second software generates the test data, it stops the functional operation clock that operates the functional hardware,
Using the test data, when operating the functional hardware and the first software, operate the functional operation clock,
9. The function verification method according to appendix 7 or 8, wherein when the verification result data is analyzed, a functional operation clock for operating the functional hardware is stopped.
[0102]
(Supplementary Note 10) A program for verifying the function of a semiconductor integrated circuit including functional hardware having a predetermined function and a central processing unit that realizes the predetermined function by executing a software program, ,
Means for generating test data for verifying the function of the semiconductor integrated circuit;
Means for storing the generated test data in a first storage unit;
The test data is used to operate the functional hardware and software for causing the central processing unit to function, and verification result data output as a result of the functional hardware and the operation of the software is stored in the second storage unit. A function verification program for a semiconductor integrated circuit for functioning the means for storing in the semiconductor integrated circuit.
[0103]
【The invention's effect】
As described above, according to the present invention, function execution software for causing a CPU built in a semiconductor integrated circuit such as LSI to execute a predetermined function, and function verification software for verifying the predetermined function, Are stored in advance, the operation of the functional hardware is stopped, data such as a test pattern for verifying the function of the LSI is generated by the function verification software, and the operation of the functional hardware is started. Since the function verification of the LSI is performed using the LSI, the function verification of the LSI itself can be performed by itself without using an expensive test jig or the like.
[0104]
On the other hand, by using the CPU built in the LSI or the like for generation of data such as test patterns and functional verification using the data, development of a high-performance test jig or the like becomes unnecessary, and the LSI An increase in evaluation cost can be suppressed, and control by an external personal computer or the like is not required, so that the time required for verifying the function of the LSI can be greatly shortened.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a function self-verifying semiconductor integrated circuit according to an embodiment of the present invention;
2 is a block diagram showing a state in which function execution software and function verification software coexist in the CPU core of FIG. 1; FIG.
FIG. 3 is a flowchart for explaining a procedure for performing functional verification of the semiconductor integrated circuit according to the present invention;
FIG. 4 is a timing chart for explaining the flow of signals and data when executing function verification of the semiconductor integrated circuit according to the present invention;
FIG. 5 is a block diagram showing an actual machine test environment of a general semiconductor integrated circuit under test.
FIG. 6 is a block diagram showing a configuration of a conventional CPU-embedded semiconductor integrated circuit.
[Explanation of symbols]
1 ... Semiconductor integrated circuit
2. Functional core (CPU dependent part)
3. Functional core (CPU independent part)
4 ... Function operation clock stop judgment part
5 ... CPU core
6 ... Test data buffer
7 ... Verification result buffer
8 ... External storage device
9 ... Built-in memory
11 ... Upper software interface section
12 ... Input interface section
13 ... Input switching part
14 ... Memory for hardware / software interface
15. Memory for software / hardware interface
16 ... AND gate
17 ... Output switching part
18 ... Output interface section
51. Function execution software
52 ... Function verification software
100: Semiconductor integrated circuit
101 ... Pattern generator
102 ... Function block
103: Output unit
104 ... Personal computer
105... CPU built-in type semiconductor integrated circuit
110: upper software interface section
120 ... Input interface section
140: Memory for hardware / software interface
150 ... Memory for software / hardware interface
180 ... Output interface section
200 ... functional core (CPU dependent part)
210 ... Intermediate variable storage memory
300 ... functional core (CPU independent part)
310 ... Intermediate variable storage memory
500 ... CPU core
800 ... External storage device
900 ... Built-in memory

Claims (5)

所定の機能を有する機能ハードウェアと、ソフトウェアのプログラムを実行することにより所定の機能を実現する中央演算処理部とからなる半導体集積回路において、
前記中央演算処理部が生成した前記半導体集積回路の機能検証を行うためのテストデータを格納する第1の記憶部と、
前記半導体集積回路の機能検証の結果に関する検証結果データを格納する第2の記憶部と
前記半導体集積回路の機能検証を行うか否かのモードの切替えを示すテストモード選択入力用の端子と、
前記テストモード選択入力の状態に基づいて、前記機能ハードウェアおよび前記中央演算処理部に入力されるデータの入力元として、外部入力または前記第1の記憶部のいずれかを選択する入力切替部と、
前記テストモード選択入力の状態に基づいて、前記機能ハードウェアおよび前記中央演算処理部から出力されるデータの出力先として、外部出力または前記第2の記憶部のいずれかを選択する出力切替部と、
を備えることを特徴とする半導体集積回路。
A function hardware having predetermined functions, a central processing unit for realizing a predetermined function by executing a software program, in a semiconductor integrated circuit consisting of,
A first storage unit for storing test data for performing functional verification of the semiconductor integrated circuit generated by the central processing unit;
A second storage unit for storing verification result data relating to a result of functional verification of the semiconductor integrated circuit ;
A terminal for test mode selection input indicating switching of a mode as to whether to perform functional verification of the semiconductor integrated circuit;
An input switching unit that selects either an external input or the first storage unit as an input source of data input to the functional hardware and the central processing unit based on the state of the test mode selection input; ,
An output switching unit for selecting either an external output or the second storage unit as an output destination of data output from the functional hardware and the central processing unit based on the state of the test mode selection input; ,
A semiconductor integrated circuit comprising:
前記中央演算処理部の動作の状態に基づいて、前記機能ハードウェアを動作させる機能動作クロックを停止させる機能動作クロック停止判断部を備えることを特徴とする請求項1記載の半導体集積回路。  2. The semiconductor integrated circuit according to claim 1, further comprising a functional operation clock stop determination unit that stops a functional operation clock that operates the functional hardware based on an operation state of the central processing unit. 前記機能動作クロック停止判断部は、該機能動作クロックの停止、該テストデータの生成、該機能動作クロックの再開、該テストデータに基づく該機能検証の実行、該機能動作クロックの再停止、該機能検証の結果の解析、という一連の動作が実行されるように該機能動作クロックの開始および停止を制御することを特徴とする、請求項2記載の半導体集積回路。The functional operation clock stop determination unit stops the functional operation clock, generates the test data, restarts the functional operation clock, executes the function verification based on the test data, restarts the functional operation clock, 3. The semiconductor integrated circuit according to claim 2, wherein start and stop of the functional operation clock are controlled so that a series of operations of analysis of a verification result is executed. 所定の機能を有する機能ハードウェアと、ソフトウェアのプログラムを実行することにより所定の機能を実現する中央演算処理部とからなる半導体集積回路の機能検証方法において、
前記半導体集積回路の機能検証を行うか否かのモードの切替えを示すテストモード選択入力の状態に基づいて、前記機能ハードウェアおよび前記中央演算処理部に入力されるデータの入力元として、外部入力または第1の記憶部のいずれかを選択し、かつ、前記機能ハードウェアおよび前記中央演算処理部から出力されるデータの出力先として、外部出力または第2の記憶部のいずれかを選択し、
前記中央演算処理部にて所定の機能を実現するための第1のソフトウェアと、前記半導体集積回路の機能を機能検証するための第2のソフトウェアと、を該中央演算処理部において同居させて動作させ、
前記第2のソフトウェアが前記半導体集積回路の機能を機能検証するためのテストデータを生成し、
前記テストデータを前記第1の記憶部に格納し、
該テストデータを用いて、前記機能ハードウェアと前記第1のソフトウェアとを動作させ、該機能ハードウェアと該第1のソフトウェアの動作の結果として出力される検証結果データを前記第2の記憶部に格納することを特徴とする半導体集積回路の機能検証方法。
A function hardware having predetermined functions, a central processing unit for realizing a predetermined function by executing the software program in the functional verification method of a semiconductor integrated circuit consisting of,
External input as an input source of data input to the functional hardware and the central processing unit based on a state of a test mode selection input indicating switching of a mode whether or not to perform functional verification of the semiconductor integrated circuit Or, select either the first storage unit, and select either the external output or the second storage unit as the output destination of the data output from the functional hardware and the central processing unit,
A first software for realizing a predetermined function by the central processing unit, operated, and a second software for function verification functions of the semiconductor integrated circuit by living in the central processing unit Let
The second software generates test data for verifying the function of the semiconductor integrated circuit;
Storing the test data in the first storage unit,
Using the test data, the functional hardware and operating the said first software, the functions hardware and the verification result data outputted as a result of the operation of the first software second storage unit A method for verifying the function of a semiconductor integrated circuit, comprising: storing in a semiconductor integrated circuit.
前記第2のソフトウェアが、前記検証結果データを前記第2の記憶部より取り出し、該検証結果データを解析することを特徴とする請求項4記載の機能検証方法。  The function verification method according to claim 4, wherein the second software extracts the verification result data from the second storage unit and analyzes the verification result data.
JP2003158117A 2003-06-03 2003-06-03 Semiconductor integrated circuit and function verification method of semiconductor integrated circuit Expired - Lifetime JP4493937B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003158117A JP4493937B2 (en) 2003-06-03 2003-06-03 Semiconductor integrated circuit and function verification method of semiconductor integrated circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003158117A JP4493937B2 (en) 2003-06-03 2003-06-03 Semiconductor integrated circuit and function verification method of semiconductor integrated circuit

Publications (2)

Publication Number Publication Date
JP2004361171A JP2004361171A (en) 2004-12-24
JP4493937B2 true JP4493937B2 (en) 2010-06-30

Family

ID=34051635

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003158117A Expired - Lifetime JP4493937B2 (en) 2003-06-03 2003-06-03 Semiconductor integrated circuit and function verification method of semiconductor integrated circuit

Country Status (1)

Country Link
JP (1) JP4493937B2 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2053514A1 (en) 2006-08-03 2009-04-29 Panasonic Corporation Peripheral device, integrated circuit for peripheral device and method for analyzing failure of peripheral device
JP5251086B2 (en) * 2007-11-27 2013-07-31 株式会社リコー Semiconductor integrated circuit verification apparatus, method, and program
US8063654B2 (en) * 2009-07-17 2011-11-22 Xilinx, Inc. Apparatus and method for testing of stacked die structure
JP5565024B2 (en) * 2010-03-25 2014-08-06 株式会社デンソー System in package
KR102166663B1 (en) * 2014-02-14 2020-10-19 삼성전자주식회사 Test system for soc and test method thereof
KR20220133510A (en) * 2021-03-25 2022-10-05 삼성전자주식회사 Electronic device and customized temperature compensation mehtod

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0455778A (en) * 1990-06-26 1992-02-24 Toshiba Corp Testing method for semiconductor device

Also Published As

Publication number Publication date
JP2004361171A (en) 2004-12-24

Similar Documents

Publication Publication Date Title
US6968514B2 (en) Block based design methodology with programmable components
JP4994393B2 (en) System and method for generating multiple models at different levels of abstraction from a single master model
US7584456B1 (en) Method and apparatus for debugging embedded systems having read only memory
TW594513B (en) Apparatus and method for in-circuit emulation using high-level programming language
KR20000029237A (en) Semiconductor integrated circuit evaluation system
EP1145159A3 (en) Block based design methodology
WO2014130097A1 (en) Software debugging of synthesized hardware
EP1286167B1 (en) Apparatus and method for processor power measurement in a digital signal processor using trace data and simulation techniques
US7437282B2 (en) Method and apparatus to provide alternative stimulus to signals internal to a model actively running on a logic simulation hardware emulator
WO2017058457A1 (en) Interactive multi-step physical synthesis
US7665067B2 (en) Method and system for automatically creating tests
EP2541448B1 (en) Method and system for partial reconfiguration simulation
JP4493937B2 (en) Semiconductor integrated circuit and function verification method of semiconductor integrated circuit
Lafaye et al. Model driven early exploration of IMA execution platform
EP1129483A1 (en) Dram cell system and method for producing same
US20040230934A1 (en) System and method for emulating systems with multiple field programmable gate arrays
US20200371843A1 (en) Framework for application driven exploration and optimization of hardware engines
US6493841B1 (en) Method and apparatus for determining expected values during circuit design verification
Mavroidis et al. Accelerating emulation and providing full chip observability and controllability
CN115688643A (en) Method, apparatus and storage medium for simulating logic system design
Banerjee et al. Design aware scheduling of dynamic testbench controlled design element accesses in FPGA-based HW/SW co-simulation systems for fast functional verification
US9608871B1 (en) Intellectual property cores with traffic scenario data
CN117829042A (en) Managing high performance analog representations of simulation systems
Lee et al. Interface synthesis between software chip model and target board
Namvar Gharehshiran High Level Synthesis Evaluation of Tools and Methodology

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060525

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100216

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: 20100330

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100407

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130416

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140416

Year of fee payment: 4