JP2016045676A - デバッグ回路、デバッガ装置、半導体装置及びデバッグ方法 - Google Patents

デバッグ回路、デバッガ装置、半導体装置及びデバッグ方法 Download PDF

Info

Publication number
JP2016045676A
JP2016045676A JP2014169042A JP2014169042A JP2016045676A JP 2016045676 A JP2016045676 A JP 2016045676A JP 2014169042 A JP2014169042 A JP 2014169042A JP 2014169042 A JP2014169042 A JP 2014169042A JP 2016045676 A JP2016045676 A JP 2016045676A
Authority
JP
Japan
Prior art keywords
circuit
code value
signal
value
debug
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.)
Granted
Application number
JP2014169042A
Other languages
English (en)
Other versions
JP6318976B2 (ja
Inventor
豊 田宮
Yutaka Tamiya
豊 田宮
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 JP2014169042A priority Critical patent/JP6318976B2/ja
Priority to US14/724,052 priority patent/US9857423B2/en
Publication of JP2016045676A publication Critical patent/JP2016045676A/ja
Application granted granted Critical
Publication of JP6318976B2 publication Critical patent/JP6318976B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31705Debugging aspects, e.g. using test circuits for debugging, using dedicated debugging test circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

【課題】デバッグの作業効率を向上する。
【解決手段】記憶部2aは、デバッグ対象回路3における信号のシーケンスに応じて値が変わる符号化方式で算出され、デバッグ対象回路3の停止条件を示す第1の符号値を記憶し、符号値算出部2cは、デバッグ対象回路3の信号が変化するたびに、その信号に基づき上記の符号化方式で第2の符号値を算出し、動作停止部2dは、第1の符号値と第2の符号値とが一致したときにデバッグ対象回路3の動作を停止する。
【選択図】図1

Description

本発明は、デバッグ回路、デバッガ装置、半導体装置及びデバッグ方法に関する。
ハードウェアが正常に動作しているか否かを確認する実機デバッグの手法として、デバッグ対象の回路の実装時に、デバッグ用の回路を挿入してデバッグを行うロジックアナライザ手法がある。
ロジックアナライザ手法において、デバッグ用の回路は、ユーザによって指定されたデバッグ対象の回路の信号の時間変化を監視する。そして、デバッグ用の回路は、信号の値が所定の停止条件と一致したときには、その回路の動作を停止させ、トレースメモリに格納された信号の時間変化を表示装置などに出力する。
特開2005−317023号公報 国際公開第2008/020513号
ところで、ソフトウェアのデバッグではブレークポイントを使用して、プログラムを様々な条件で停止させることができる。しかしながら、ハードウェアのデバッグでは、トレースメモリの容量やデバッグに使える信号線の本数などのハードウェア上の制約により、ユーザが意図した条件やタイミングでハードウェアを停止させることが難しく、効率よくデバッグを行うことは難しい。
発明の一観点によれば、デバッグ対象の回路における信号のシーケンスに応じて値が変わる符号化方式で算出され、前記回路の停止条件を示す第1の符号値を記憶する記憶部と、前記信号が変化するたびに、前記信号に基づき前記符号化方式で第2の符号値を算出する符号値算出部と、前記第1の符号値と前記第2の符号値とが一致したときに前記回路の動作を停止する動作停止部と、を有するデバッグ回路が提供される。
また、発明の一観点によれば、プロセッサを有し、前記プロセッサは、デバッグ対象の回路をモデル化した回路モデルに対するシミュレーションを行い、前記回路における信号のシーケンスに応じて値が変わる符号化方式で、前記回路の停止条件を示す第1の符号値を算出し、前記第1の符号値を出力する、デバッガ装置が提供される。
また、発明の一観点によれば、デバッグ対象となる回路と、前記回路における信号のシーケンスに応じて値が変わる符号化方式で算出され、前記回路の停止条件を示す第1の符号値を記憶する記憶部と、前記信号が変化するたびに、前記信号に基づき前記符号化方式で第2の符号値を算出する符号値算出部と、前記第1の符号値と前記第2の符号値とが一致したときに前記回路の動作を停止する動作停止部と、を備えたデバッグ回路と、を有する半導体装置が提供される。
また、発明の一観点によれば、デバッガ装置が、デバッグ対象の回路をモデル化した回路モデルに対するシミュレーションを行い、前記回路における信号のシーケンスに応じて値が変わる符号化方式で、前記回路の停止条件を示す第1の符号値を算出し、前記第1の符号値を送信し、前記回路を備えた半導体装置は、前記第1の符号値を受信して、前記第1の符号値を記憶部に記憶し、前記回路における前記信号が変化するたびに、前記信号に基づき前記符号化方式で第2の符号値を算出し、前記第1の符号値と前記第2の符号値とが一致したときに前記回路の動作を停止するデバッグ方法が提供される。
開示のデバッグ回路、デバッガ装置、半導体装置及びデバッグ方法によれば、デバッグの作業効率を向上できる。
第1の実施の形態の半導体装置、デバッグ回路及びデバッガ装置の一例を示す図である。 第2の実施の形態の半導体装置及びデバッガ装置を含むデバッグシステムの例を示す図である。 半導体装置の一例を示す図である。 デバッガ装置のハードウェア例を示す図である。 デバッグ方法の一例の流れを示すフローチャートである。 デバッグ対象のユーザ回路の回路モデルの記述例である。 図6に示した回路モデルを機能ブロックで表した図である。 回路モデルの実行結果とCRC値の算出例及び停止条件が成立したか否かを示す図である。 第3の実施の形態の半導体装置の一例を示す図である。 第4の実施の形態の半導体装置の一例を示す図である。
以下、発明を実施するための形態を、図面を参照しつつ説明する。
(第1の実施の形態)
図1は、第1の実施の形態の半導体装置、デバッグ回路及びデバッガ装置の一例を示す図である。
半導体装置1は、デバッグ回路2とハードウェアであるデバッグ対象回路3とを有している。
デバッグ回路2は、所定の停止条件でデバッグ対象回路3の動作を停止する回路であり、記憶部2a,2b、符号値算出部2c、動作停止部2dを有している。
記憶部2aは、デバッグ対象回路3の停止条件を示す符号値(以下符号値Aという)を記憶する。符号値Aは、デバッグ対象回路3に関する信号のシーケンスに応じて値が変わる符号化方式で算出される。信号があるシーケンスのときにデバッグ対象回路3の動作をデバッグ回路2が停止する場合、そのシーケンスが停止条件として符号値Aで示されている。
信号のシーケンスに応じて値が変わる符号化方式(符号化アルゴリズム)として、例えば、CRC(Cyclic Redundancy Check)、ハミング符号、MD(Message Digest Algorithm)5またはSHA(Secure Hash Algorithm)−1などがある。符号値Aは、デバッガ装置4にて算出される。
記憶部2bは、デバッグ回路2内の符号値算出部2cで算出された符号値(以下符号値Bという)を記憶する。
符号値算出部2cは、デバッグ対象回路3に関する信号が変化するたびに、その信号に基づき、符号値Aを算出する際の符号化方式と同じ符号化方式で、符号値Bを算出する。
動作停止部2dは、符号値A,Bが一致したときに、デバッグ対象回路3の動作を停止する。動作停止部2dは、符号値A,Bが一致したとき、例えば、回路停止信号により、デバッグ対象回路3へクロック信号の供給を停止することで、デバッグ対象回路3の動作を停止する。また、動作停止部2dは、デバッグ対象回路3へのデータへの入力またはデバッグ対象回路3からのデータの出力を遮断して、デバッグ対象回路3が停止しているように扱うようにしてもよい。
デバッガ装置4は、半導体装置1と通信してデバッグを行う装置である。デバッガ装置4は、デバッグ対象回路3をモデル化した回路モデルと、デバッグ対象回路3の動作を停止させたい信号のシーケンスの情報を含むデータD1に基づき、符号値Aを算出する(ステップS1)。デバッガ装置4は、例えば、回路シミュレーションにより、データD1に含まれる特定のシーケンスで信号を変化させて、そのたびに、上記の符号化方式で符号値を更新し、シーケンスが終了したときの符号値を符号値Aとする。そして、デバッガ装置4は、その符号値Aを半導体装置1に出力(送信)する(ステップS2)。
以下、半導体装置1とデバッガ装置4を含むデバッグシステムによるデバッグ方法の一例の動作を説明する。
デバッグ対象回路3において、入力データxと出力データyが、例えば、(x1,y1)、(x2,y2)、…、(xi,yi)のシーケンスで変化したときに、デバッグ対象回路3の動作を停止させる場合を例に説明する。
デバッガ装置4は、デバッグ対象回路3の回路モデルに対して回路シミュレーションを行い、上記のシーケンスで信号を変化させたときの符号値Aを計算する。このとき、符号値Aとして、ciが算出されたとする。デバッガ装置4は、そのciを符号値Aとして送信する。半導体装置1のデバッグ回路2では、ciを受けて記憶部2aに記憶する。
デバッグ回路2は、デバッグ対象回路3の信号の変化を検出しており、符号値算出部2cは、図1の例では、入力データxまたは出力データyが変化するたびに、符号値Bを更新する。
例えば、図1のように、デバッグ対象回路3の入力データxと出力データyが、(x1,y1)、(x2,y2)、…、(xi,yi)の順で変化していき、符号値Bが、c1、c2、…、ciの順で変化したとき、符号値Bは符号値Aと一致する。
このとき、動作停止部2dは、デバッグ対象回路3の動作を停止する。
その後は、例えば、デバッガ装置4により、デバッグ対象回路3の各部の信号の様子を調査するなどのデバッグ作業が行われる。
このように、本実施の形態の半導体装置1、デバッグ回路2及びデバッガ装置4では、デバッグ対象回路3の信号のシーケンスで値が変わる符号値で停止条件を予め求め、記憶部2aに記憶しておく。そして、デバッグ回路2は、信号が変化する度求めた符号値との一致時にデバッグ対象回路3を止める。上記のような符号値を用いることで、ハードウェア上の制約があっても、様々な条件でデバッグ対象回路3を停止することが容易になり、デバッグの作業効率が上がる。
また、複雑なシーケンスを停止条件とした場合でも、停止条件は符号値として表現できるので、記憶部2a,2bの容量は小さくてすみ、デバッグ回路2及び半導体装置1の回路面積を小さくできる。
また、停止条件を変更するとき、デバッガ装置4は新たな停止条件を示す符号値を算出し、記憶部2aはその符号値を記憶すればよいため、特に回路の再実装などを行わなくてすむ。
(第2の実施の形態)
図2は、第2の実施の形態の半導体装置及びデバッガ装置を含むデバッグシステムの例を示す図である。
デバッグシステムは、半導体装置10とデバッガ装置20を含み、それらは通信ケーブル30により接続されている。なお、半導体装置10とデバッガ装置20は無線で通信を行ってもよい。
半導体装置10は、例えば、SoC(System on Chip)であり、デバッグ回路11とデバッグ対象となるユーザ回路12を有している。
デバッガ装置20は、例えば、コンピュータであり、作業者40により操作され、通信ケーブル30を介して半導体装置10と通信を行い、デバッグ処理を行う。
(半導体装置)
図3は、半導体装置の一例を示す図である。
半導体装置10は、前述したデバッグ回路11、ユーザ回路12の他、デバッガ装置20から通信ケーブル30を介して送られてくるデータを受信する受信部13を有している。
デバッグ回路11は、レジスタ11a,11b、符号値算出部11c、動作停止部11dを有している。
レジスタ11aは、受信部13で受信したデバッガ装置20から送信された停止条件を示す符号値を記憶する。
レジスタ11bは、符号値算出部11cが算出した符号値を記憶する。また、受信部13で受信したデバッガ装置20から送信された符号値の初期値を記憶する。
符号値算出部11cは、ユーザ回路12に関する信号が変化するたびに、その信号のシーケンスによって値が変わる符号値を、デバッガ装置20で符号値を算出する際の符号化方式と同じ符号化方式で算出する。その符号化方式としては、前述したように、例えば、CRC、ハミング符号、MD5またはSHA−1などがある。
動作停止部11dは、レジスタ11a,11bに記憶されている両符号値が一致したときに、デバッグ対象であるユーザ回路12の動作を停止させる。
(デバッガ装置20)
図4は、デバッガ装置のハードウェア例を示す図である。
デバッガ装置20は、コンピュータであり、プロセッサ21によって装置全体が制御されている。プロセッサ21には、バス29を介してRAM(Random Access Memory)22と複数の周辺機器が接続されている。プロセッサ21は、マルチプロセッサであってもよい。プロセッサ21は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。またプロセッサ21は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
RAM22は、デバッガ装置20の主記憶装置として使用される。RAM22には、プロセッサ21に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM22には、プロセッサ21による処理に必要な各種データが格納される。
バス29に接続されている周辺機器としては、HDD(Hard Disk Drive)23、グラフィック処理装置24、入力インタフェース25、光学ドライブ装置26、機器接続インタフェース27及びネットワークインタフェース28がある。
HDD23は、内蔵したディスクに対して、磁気的にデータの書き込み及び読み出しを行う。HDD23は、デバッガ装置20の補助記憶装置として使用される。HDD23には、OSのプログラム、回路シミュレーションソフトなどのアプリケーションプログラム、及び各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
グラフィック処理装置24には、モニタ24aが接続されている。グラフィック処理装置24は、プロセッサ21からの命令にしたがって、デバッグ結果などの画像をモニタ24aの画面に表示させる。モニタ24aとしては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース25には、キーボード25aとマウス25bとが接続されている。入力インタフェース25は、キーボード25aやマウス25bから送られてくる信号をプロセッサ21に送信する。なお、マウス25bは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置26は、レーザ光などを利用して、光ディスク26aに記録されたデータの読み取りを行う。光ディスク26aは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク26aには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
機器接続インタフェース27は、デバッガ装置20に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース27には、メモリ装置27aやメモリリーダライタ27bを接続することができる。メモリ装置27aは、機器接続インタフェース27との通信機能を搭載した記録媒体である。メモリリーダライタ27bは、メモリカード27cへのデータの書き込み、またはメモリカード27cからのデータの読み出しを行う装置である。メモリカード27cは、カード型の記録媒体である。
また、機器接続インタフェース27は、通信ケーブル30を介して半導体装置10に接続されている。
ネットワークインタフェース28は、ネットワーク28aに接続されている。ネットワークインタフェース28は、ネットワーク28aを介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示したデバッガ装置4も、図3に示したデバッガ装置20と同様のハードウェアにより実現することができる。
デバッガ装置20は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。デバッガ装置20に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、デバッガ装置20に実行させるプログラムをHDD23に格納しておくことができる。プロセッサ21は、HDD23内のプログラムの少なくとも一部をRAM22にロードし、プログラムを実行する。またデバッガ装置20に実行させるプログラムを、光ディスク26a、メモリ装置27a、メモリカード27cなどの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ21からの制御により、HDD23にインストールされた後、実行可能となる。またプロセッサ21が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
(デバッグ方法)
以下、上記の半導体装置10及びデバッガ装置20を用いたデバッグ方法を説明する。
図5は、デバッグ方法の一例の流れを示すフローチャートである。
まず、デバッガ装置20は、ソフトウェアで、デバッグ対象であるユーザ回路12と同様の動作を行う(ユーザ回路12をモデル化した)回路モデルに対して回路シミュレーションを行い、ユーザ回路12の停止条件を示す符号値を算出する(ステップS10)。
図6は、デバッグ対象のユーザ回路の回路モデルの記述例である。
図6では、Verilog HDL(Hardware Description Language)で記述された回路モデルの例が示されている。図6には回路モデルに入力されるクロック信号ckと16ビットの入力データxと、回路モデルから出力される16ビットの出力データy、さらに、回路モデルの内部状態を示す信号として1ビットの信号sが示されている。
出力データyは、信号sの値が0のときには、0となり、信号sの値が1のときには、入力データxに2を乗じた値となる(図6の記述の4行目参照)。
また、クロック信号ckの立ち上がりに同期して、6〜10行目の処理が行われる。6〜10行目には、信号sの値が0のとき、入力データxが、“16’h0010”であるときには、信号sが1に遷移し、信号sの値が1のとき、入力データxが、“16’h0030”であるときには、信号sが0に遷移することが示されている。
また、図6の例では、信号sが0に遷移するタイミングに、ブレークポイントが設定されている。なお、ブレークポイントの設定は、例えば、作業者40によって行われる。
図7は、図6に示した回路モデルを機能ブロックで表した図である。
回路モデル12aは、ステートマシン12a1と関数部12a2を有する。
ステートマシン12a1は、前述のように、入力データxの値と、回路モデル12aの内部状態を示す信号sの値に応じて、信号sを0または1に遷移する。
関数部12a2は、信号sの値に基づき、前述のように、信号sの値が0のときには、出力データyを0とし、信号sの値が1のときには、出力データyを入力データxに2を乗じた値とする。
デバッガ装置20のプロセッサ21は、回路シミュレーション(例えば、RTL(Register Transfer Level)シミュレーション)で、回路モデル12aを実行する。回路シミュレーションは、図6に示したブレークポイントで停止するように設定されている。そして、プロセッサ21は、回路シミュレーション時の入力データxと出力データyの値に基づき、符号値計算処理T1を行う。
以下の説明では、回路モデル12aの入力データxのシーケンスが、“16’h0010”、“16’h0020”、“16’h0030”、“16’h0040”の順番であるものとする。また、デバッガ装置20のプロセッサ21は、符号値計算処理T1として、IEEE(Institute of Electrical and Electronics Engineers)802.3で規定されたCRC32で符号値(CRC値)を計算するものとする。
図8は、回路モデルの実行結果とCRC値の算出例及び停止条件が成立したか否かを示す図である。
初期状態では、信号sの値は0であり、入力データxと出力データyによるCRC値は、“32’h00000000”となっている。このタイミングはブレークポイントでないため、停止条件は不成立となる。
信号sの値が0の状態で、入力データxが“16’h0010”となると、関数部12a2での処理により、出力データyは“16’h0000”となる。このとき、CRC値は更新され、図8の例では、“32’h715d8883”という値になっている。なお、このときも、停止条件は不成立となる。
上記のように入力データxが“16’h0010”となり、クロック信号ckが立ち上がると、ステートマシン12a1での処理により信号sは1となる。信号sが1の状態で、入力データxが“16’h0020”となると、関数部12a2での処理により、出力データyは入力データxの2倍となり、“16’h0040”となる。このとき、CRC値は更新され、“32’h49d20e79”という値になっている。なお、このときも、停止条件は不成立となる。
さらに、信号sが1の状態で、入力データxが“16’h0030”となると、関数部12a2での処理により、出力データyは入力データxの2倍となり、“16’h0060”となる。このとき、CRC値は更新され、“32’h1435d0af”という値になっている。このときは、図6に示したように、信号s=1で入力データxが“16’h0030”という、ブレークポイントが設定されているタイミングに相当する状態であるため、停止条件が成立する。
また、このとき、クロック信号ckが立ち上がると、ステートマシン12a1での処理により信号sは0となる。信号sが0の状態で、入力データxが“16’h0040”となると、関数部12a2での処理により、出力データyは“16’h0000”となる。このとき、CRC値は更新され、“32’h9a3aad89”という値になっている。なお、このとき、停止条件は不成立となる。
以上のようにして、ステップS10の符号値の算出処理が行われるが、デバッガ装置20は、停止条件が成立したときのCRC値、“32’h1435d0af”を、半導体装置10に送信する。
そして、半導体装置10は、デバッガ装置20から送信された符号値を受信部13で受信し、デバッグ回路11のレジスタ11aに設定(記憶)する(ステップS11)。
さらに、デバッガ装置20は、レジスタ11bに設定する初期値“32’h00000000”を、半導体装置10に送信する。
半導体装置10は、デバッガ装置20から送信された初期値を受信部13で受信し、デバッグ回路11のレジスタ11bに設定(記憶)する(ステップS12)。
その後、デバッグ回路11の動作停止部11dは、デバッグ対象のユーザ回路12に動作を開始させる(ステップS13)。例えば、動作停止部11dは、ユーザ回路12へのクロック信号の供給をオンすることで、ユーザ回路12は動作を開始する。
ユーザ回路12の動作開始後、デバッグ回路11の符号値算出部11cは、ユーザ回路12の入力データxまたは出力データyが変化するたびに、符号値を算出し、レジスタ11bに記憶されている符号値を更新する(ステップS14)。
ステップS14の処理で算出される符号値は、デバッガ装置20で算出される符号値と同じ符号化方式で算出される。前述のように、デバッガ装置20が、CRC32で符号値を計算した場合には、デバッグ回路11の符号値算出部11cでも同様にCRC32で符号値を計算する。
レジスタ11bに記憶されている符号値が更新されると、動作停止部11dは、レジスタ11a,11bに記憶されている両符号値が一致するか否かを判定する(ステップS15)。両符号値が異なるときには、ステップS14からの処理が繰り返される。
両符号値が一致したとき、動作停止部11dは、デバッグ対象のユーザ回路12の動作を停止する(ステップS16)。
例えば、デバッガ装置20にて、回路モデル12aの入力データxと出力データyが図8に示したようなシーケンスで遷移したときに算出されたCRC値、“32’h1435d0af”がレジスタ11aに記憶されているものとする。
半導体装置10のユーザ回路12でも入力データxと出力データyが図8に示したようなシーケンスで遷移すると、符号値算出部11cで算出されるCRC値も、“32’h1435d0af”となり、レジスタ11aに記憶されているCRC値と一致する。このとき、動作停止部11dは、ユーザ回路12に供給する回路停止信号を“1”として、ユーザ回路12へのクロック信号の供給をオフするなどして、ユーザ回路12の動作を停止する。
その後、作業者40によるデバッガ装置20の操作によって、半導体装置10のデバッグ対象のユーザ回路12の状態の読み出しが行われる(ステップS17)。ステップS17の処理では、例えば、半導体装置10内の図示しないバウンダリスキャン回路を使うなどして、ユーザ回路12の状態(入力データx、出力データy、内部状態を示す信号sなど)の読み出しなどが行われる。
次に、デバッガ装置20は、読み出したユーザ回路12の状態から、停止条件が本当に成立しているか否かを判定する(ステップS18)。
例えば、デバッガ装置20は、図8に示したような停止条件が成立する入力データx、信号s、出力データyの値と、半導体装置10から読み出された信号とが一致するか否か判定し、一致している場合には、停止条件が成立していると判定する。これにより、デバッグ処理が終了される。一致していない場合には、デバッガ装置20は、半導体装置10のデバッグ回路11にユーザ回路12の動作を再開させる。これにより、ステップS13からの処理が繰り返される。
なお、ステップS18の処理後、作業者40は、デバッガ装置20を操作して、半導体装置10内のユーザ回路12の信号を変更させるようにしてもよい。そして、デバッガ装置20と半導体装置10に、再度、ステップS10からの処理を繰り返させるようにしてもよい。
また、上記の各処理の順序は、特に限定されるわけではなく、レジスタ11bへの初期値の設定などは、ステップS10の処理の前に行ってもよい。
以上のような半導体装置10、デバッグ回路11及びデバッガ装置20によれば、第1の実施の形態の半導体装置1、デバッグ回路2及びデバッガ装置4と同様の効果が得られる。
また、ステップS18の処理のような判定を行うことで、実際は停止条件を満たしていないのに符号値が一致してしまい誤ったタイミングでユーザ回路12を停止したときの信号を、作業者40に提示してしまうことを防止できる。
(第3の実施の形態)
上記では、デバッグ回路11の動作停止部11dは、ユーザ回路12へのクロック信号の供給をオフするなどして、ユーザ回路12の動作を停止すると説明したが、例えば、以下のようにしてユーザ回路12の動作を停止するようにしてもよい。
図9は、第3の実施の形態の半導体装置の一例を示す図である。
図3に示した半導体装置10と同様の要素については同一符号を付し、説明を省略する。
図9に示されている半導体装置10aは、ユーザ回路12の入力側に接続された入力遮断部14と、ユーザ回路12の出力側に接続された出力遮断部15を有している。
入力遮断部14は、動作停止部11dからユーザ回路12の動作を停止する旨の信号(例えば、回路停止信号=1)を受けると、入力データxの値によらず、固定値(例えば、0)を出力する。
出力遮断部15は、動作停止部11dからユーザ回路12の動作を停止する旨の信号(例えば、回路停止信号=1)を受けると、ユーザ回路12からの出力データyの値によらず、固定値(例えば、0)を出力する。
ユーザ回路12がハンドシェーク方式で動作する回路であるときには、入力、または出力の遮断によりユーザ回路12の動作が停止する。このため、図9に示すような入力遮断部14と出力遮断部15で入出力を遮断するだけで、ユーザ回路12の動作を停止することができ、回路量の増加が少なくてすむ。また、第2の実施の形態の半導体装置10及びデバッグ回路11と同様の効果が得られる。
(第4の実施の形態)
図10は、第4の実施の形態の半導体装置の一例を示す図である。
図3に示した半導体装置10と同様の要素については同一符号を付し、説明を省略する。
第4の実施の形態の半導体装置10bにおいて、デバッグ回路50は、複数の停止条件に相当する符号値を記憶するレジスタ11a1,11a2を有している。
レジスタ11a1,11a2に記憶される符号値は、前述したデバッガ装置20によるステップS10(図5参照)の処理にて算出されたものである。例えば、複数のブレークポイントに達するまでの、回路モデル12aの信号の複数のシーケンスに対して、複数の符号値が算出され、それらが、半導体装置10bに送信され、レジスタ11a1,11a2に記憶される。
また、デバッグ回路50は、動作停止部11d1,11d2と、OR回路51を有している。
動作停止部11d1は、レジスタ11a1に記憶される符号値と、レジスタ11bに格納される符号値とを比較して、両符号値が一致したときに、ユーザ回路12の動作を停止する。本実施の形態の半導体装置10bでは、動作停止部11d1は、両符号値が一致したときには、1となる回路停止信号を出力するものとする。
動作停止部11d2は、レジスタ11a2に記憶される符号値と、レジスタ11bに格納される符号値とを比較して、両符号値が一致したときに、ユーザ回路12の動作を停止する。動作停止部11d2についても、両符号値が一致したときには、1となる回路停止信号を出力するものとする。
OR回路51は、動作停止部11d1,11d2から出力される回路停止信号を入力し、そのOR論理をとってユーザ回路12に出力する。OR回路51は、動作停止部11d1,11d2から出力される回路停止信号が一方でも1であるときには、1を出力する。これにより、ユーザ回路12の動作が停止する。
第4の実施の形態の半導体装置10b及びデバッグ回路50によれば、第2の実施の形態の半導体装置10及びデバッグ回路11と同様の効果が得られるとともに、より、複雑な停止条件で、ユーザ回路12を停止することができる。なお、停止条件は複数の入力データxや複数の出力データyではなく、符号値で表されるため、停止条件を複数としても回路量の増加が少なくてすむ。
なお、図10の例では、デバッガ装置20から受信する停止条件を示す符号値の数は2つとしたが、3つ以上としてもよい。その場合は、レジスタと動作停止部をその符号値の数に対応して設ければよい。
また、図10の例では、停止条件を示す符号値の数は2つに対して動作停止部を2つとしたが、動作停止部は1つでもよい。その場合は、2つの停止条件を示す符号値を、レジスタ11bに格納される符号値と逐次的に比較し、いずれかの比較で符号値が一致した時点で回路停止信号を出力すればよい。
なお、第4の実施の形態の半導体装置10bは、第3の実施の形態の半導体装置10aと組み合わせてもよい。その場合、OR回路51の出力端子は、入力遮断部14と出力遮断部15に接続される。
以上、実施の形態に基づき、本発明のデバッグ回路、デバッガ装置、半導体装置及びデバッグ方法の一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
例えば、上記の例では、デバッグ対象の回路の入力データと出力データの両方のシーケンスに基づき、符号値を算出するものとして説明したが、どちらか一方であってもよい。また、デバッグ対象の回路の内部の信号のシーケンスに基づいて符号値を算出するようにしてもよい。
1 半導体装置
2 デバッグ回路
2a,2b 記憶部
2c 符号値算出部
2d 動作停止部
3 デバッグ対象回路
4 デバッガ装置

Claims (9)

  1. デバッグ対象の回路における信号のシーケンスに応じて値が変わる符号化方式で算出され、前記回路の停止条件を示す第1の符号値を記憶する記憶部と、
    前記信号が変化するたびに、前記信号に基づき前記符号化方式で第2の符号値を算出する符号値算出部と、
    前記第1の符号値と前記第2の符号値とが一致したときに前記回路の動作を停止する動作停止部と、
    を有することを特徴とするデバッグ回路。
  2. 前記記憶部は、複数の前記停止条件を示す複数の前記第1の符号値に対応して、複数設けられ、
    1または複数の前記動作停止部において、前記第2の符号値と、複数の前記第1の符号値の何れかが一致したときに前記回路の動作を停止する、ことを特徴とする請求項1に記載のデバッグ回路。
  3. 前記動作停止部は、前記回路への入力データの入力または前記回路からの出力データの出力を遮断することで、前記回路の動作を停止する、ことを特徴とする請求項1または2に記載のデバッグ回路。
  4. 前記第1の符号値及び前記第2の符号値は、CRC、ハミング符号、MD5またはSHA−1で算出されることを特徴とする請求項1乃至3の何れか一項に記載のデバッグ回路。
  5. プロセッサを有し、
    前記プロセッサは、
    デバッグ対象の回路をモデル化した回路モデルに対するシミュレーションを行い、前記回路における信号のシーケンスに応じて値が変わる符号化方式で、前記回路の停止条件を示す第1の符号値を算出し、
    前記第1の符号値を出力する、
    ことを特徴とするデバッガ装置。
  6. デバッグ対象となる回路と、
    前記回路における信号のシーケンスに応じて値が変わる符号化方式で算出され、前記回路の停止条件を示す第1の符号値を記憶する記憶部と、前記信号が変化するたびに、前記信号に基づき前記符号化方式で第2の符号値を算出する符号値算出部と、前記第1の符号値と前記第2の符号値とが一致したときに前記回路の動作を停止する動作停止部と、を備えたデバッグ回路と、
    を有することを特徴とする半導体装置。
  7. 前記動作停止部から、前記回路の動作を停止する旨の信号を受けると、前記回路への入力データの入力または前記回路からの出力データの出力を遮断する遮断部を有することを特徴とする請求項6に記載の半導体装置。
  8. デバッガ装置が、デバッグ対象の回路をモデル化した回路モデルに対するシミュレーションを行い、前記回路における信号のシーケンスに応じて値が変わる符号化方式で、前記回路の停止条件を示す第1の符号値を算出し、前記第1の符号値を送信し、
    前記回路を備えた半導体装置は、前記第1の符号値を受信して、前記第1の符号値を記憶部に記憶し、前記回路における前記信号が変化するたびに、前記信号に基づき前記符号化方式で第2の符号値を算出し、前記第1の符号値と前記第2の符号値とが一致したときに前記回路の動作を停止する、
    ことを特徴とするデバッグ方法。
  9. 前記デバッガ装置は、前記回路の動作停止時に、前記半導体装置から前記回路の状態を読み出し、前記状態が前記停止条件を満たしているか否かを判定する、ことを特徴とする請求項8に記載のデバッグ方法。
JP2014169042A 2014-08-22 2014-08-22 デバッグ回路、デバッガ装置、半導体装置及びデバッグ方法 Active JP6318976B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014169042A JP6318976B2 (ja) 2014-08-22 2014-08-22 デバッグ回路、デバッガ装置、半導体装置及びデバッグ方法
US14/724,052 US9857423B2 (en) 2014-08-22 2015-05-28 Debugging circuit, debugger device, and debugging method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014169042A JP6318976B2 (ja) 2014-08-22 2014-08-22 デバッグ回路、デバッガ装置、半導体装置及びデバッグ方法

Publications (2)

Publication Number Publication Date
JP2016045676A true JP2016045676A (ja) 2016-04-04
JP6318976B2 JP6318976B2 (ja) 2018-05-09

Family

ID=55348135

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014169042A Active JP6318976B2 (ja) 2014-08-22 2014-08-22 デバッグ回路、デバッガ装置、半導体装置及びデバッグ方法

Country Status (2)

Country Link
US (1) US9857423B2 (ja)
JP (1) JP6318976B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10698805B1 (en) * 2017-01-25 2020-06-30 Cadence Design Systems, Inc. Method and system for profiling performance of a system on chip
US10949586B1 (en) * 2020-07-01 2021-03-16 Xilinx, Inc. Post-synthesis insertion of debug cores

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002539523A (ja) * 1999-03-09 2002-11-19 ジェムプリュス プログラムの実行の監視方法
US6922821B1 (en) * 2001-11-15 2005-07-26 Cypress Semiconductor Corp. System and a method for checking lock step consistency between an in circuit emulation and a microcontroller while debugging process is in progress
US20060059404A1 (en) * 2004-09-13 2006-03-16 Cavanna Vicente V Test data pattern for testing a CRC algorithm
WO2008020513A1 (fr) * 2006-08-14 2008-02-21 Nec Corporation débogueur et procédé de débogage
JP2010020767A (ja) * 2008-07-09 2010-01-28 Arm Ltd データ処理装置の監視およびその監視データの集計
JP2012242931A (ja) * 2011-05-17 2012-12-10 Alpine Electronics Inc エミュレータ及びデバッグ方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6389557B1 (en) * 1998-09-16 2002-05-14 Advanced Micro Devices, Inc. Freezing mechanism for debugging
US6785884B1 (en) * 1999-09-29 2004-08-31 Unisys Corporation Symbolic debug interface for register transfer simulator debugger
US8103496B1 (en) * 2000-10-26 2012-01-24 Cypress Semicondutor Corporation Breakpoint control in an in-circuit emulation system
US7076420B1 (en) * 2000-10-26 2006-07-11 Cypress Semiconductor Corp. Emulator chip/board architecture and interface
US6760864B2 (en) * 2001-02-21 2004-07-06 Freescale Semiconductor, Inc. Data processing system with on-chip FIFO for storing debug information and method therefor
US7308608B1 (en) * 2002-05-01 2007-12-11 Cypress Semiconductor Corporation Reconfigurable testing system and method
US7334161B2 (en) 2004-04-30 2008-02-19 Arm Limited Breakpoint logic unit, debug logic and breakpoint method for a data processing apparatus
US7533315B2 (en) * 2006-03-06 2009-05-12 Mediatek Inc. Integrated circuit with scan-based debugging and debugging method thereof
US8065653B1 (en) * 2007-04-25 2011-11-22 Cypress Semiconductor Corporation Configuration of programmable IC design elements
JP5414292B2 (ja) * 2009-01-29 2014-02-12 ルネサスエレクトロニクス株式会社 不良解析装置と方法及びプログラム
US9600398B2 (en) * 2013-10-29 2017-03-21 Synopsys, Inc. Method and apparatus for debugging HDL design code and test program code

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002539523A (ja) * 1999-03-09 2002-11-19 ジェムプリュス プログラムの実行の監視方法
US6922821B1 (en) * 2001-11-15 2005-07-26 Cypress Semiconductor Corp. System and a method for checking lock step consistency between an in circuit emulation and a microcontroller while debugging process is in progress
US20060059404A1 (en) * 2004-09-13 2006-03-16 Cavanna Vicente V Test data pattern for testing a CRC algorithm
WO2008020513A1 (fr) * 2006-08-14 2008-02-21 Nec Corporation débogueur et procédé de débogage
JP2010020767A (ja) * 2008-07-09 2010-01-28 Arm Ltd データ処理装置の監視およびその監視データの集計
JP2012242931A (ja) * 2011-05-17 2012-12-10 Alpine Electronics Inc エミュレータ及びデバッグ方法

Also Published As

Publication number Publication date
US9857423B2 (en) 2018-01-02
US20160054388A1 (en) 2016-02-25
JP6318976B2 (ja) 2018-05-09

Similar Documents

Publication Publication Date Title
US9990458B2 (en) Generic design rule checking (DRC) test case extraction
US10635555B2 (en) Verifying a graph-based coherency verification tool
US8875064B2 (en) Automated design rule checking (DRC) test case generation
JP2011186817A (ja) 論理検証装置及び論理検証方法
US9218273B2 (en) Automatic generation of a resource reconfiguring test
JP6318976B2 (ja) デバッグ回路、デバッガ装置、半導体装置及びデバッグ方法
JPWO2016189642A1 (ja) シミュレーション装置及びシミュレーション方法及びシミュレーションプログラム
US20180150379A1 (en) Method and system of verifying software
US9753084B2 (en) Debug circuit, semiconductor device, and debug method
JP5233355B2 (ja) プロパティ生成システムおよびプロパティ検証システム
JP6458626B2 (ja) デバッグ回路、半導体装置及びデバッグ方法
JP2016186707A (ja) デバッグ回路、半導体装置及びデバッグ方法
JP6667733B2 (ja) シミュレーション装置、シミュレーション方法およびシミュレーションプログラム
CN114546823B (zh) 用于重现逻辑系统设计的调试场景的方法及相关设备
CN115906730A (zh) 验证逻辑系统设计的方法、设备及存储介质
US20100077383A1 (en) Simulation method and storage medium for storing program
JP2013149134A (ja) ソースコードの静的解析装置、システム、方法、及びそのためのプログラム
JP5120103B2 (ja) デバッグ方法およびデバッグプログラム
JP5799589B2 (ja) 検証方法及び検証プログラム
JP5387521B2 (ja) 論理検証シナリオ生成装置、及び、論理検証シナリオ生成プログラム
JP6854994B1 (ja) 動作確認支援装置、動作確認支援方法及び動作確認支援プログラム
US20240241809A1 (en) Methods, electronic devices and storage media for executing assertions
JP6331400B2 (ja) 検証方法、検証装置および検証プログラム
JP5392862B2 (ja) ソフトウェアシミュレーション装置、及びシミュレーション方法
JP5233354B2 (ja) プロパティ検証システム、プロパティ検証方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170511

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180131

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180319

R150 Certificate of patent or registration of utility model

Ref document number: 6318976

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150