JP2008305051A - トレース回路及びトレース回路を含む半導体集積回路 - Google Patents

トレース回路及びトレース回路を含む半導体集積回路 Download PDF

Info

Publication number
JP2008305051A
JP2008305051A JP2007150033A JP2007150033A JP2008305051A JP 2008305051 A JP2008305051 A JP 2008305051A JP 2007150033 A JP2007150033 A JP 2007150033A JP 2007150033 A JP2007150033 A JP 2007150033A JP 2008305051 A JP2008305051 A JP 2008305051A
Authority
JP
Japan
Prior art keywords
circuit
data
value
trace
buffer
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.)
Withdrawn
Application number
JP2007150033A
Other languages
English (en)
Inventor
Shinichiro Niiyama
信一郎 新山
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2007150033A priority Critical patent/JP2008305051A/ja
Publication of JP2008305051A publication Critical patent/JP2008305051A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】同時に複数のレジスタの変化をトレースする。
【解決手段】n個の加算器と、n個の乗算器と、n個の切替回路と、n個のバッファ回路と、複数の記憶域を有する記憶回路と、を含み、i番目の加算器は、1番目の制御線からi番目の制御線の値を加算したi番目の加算値を出力し、i番目の乗算器は、i番目の加算値とi番目の制御線の値とを乗算したi番目の乗算値を出力し、i番目の切替回路は、i番目の乗算値に対応したバッファ回路とi番目のデータ線とを導通状態にし、i番目のバッファ回路は、i番目のデータ線から供給されるデータを保持し、記憶回路の現在の記憶域のアドレスをpとすると、i番目のバッファ回路は、p+i−1のアドレスの記憶域に接続され、n個のバッファ回路に保持されたデータを同時に記憶回路に書き込んだ後、記憶回路の現在の記憶域のアドレスpにn番目の加算器の加算値を加える。
【選択図】図2

Description

本発明は、半導体集積回路が持つレジスタの変化をトレースするトレース回路及びトレース回路を含む半導体集積回路に関するものであり、特に、半導体集積回路のソフトウェアデバッグ(プログラムデバッグ)またはハードウェアデバッグに関する。
従来、CPUまたは所定の処理を実行する専用論理回路を内蔵する半導体集積回路(デバイス)では、デバイスが有するレジスタの状態をトレースすることにより、ソフトウェアデバッグ(プログラムデバッグ)またはハードウェアデバッグを行っている。しかしながら、従来のデバイスは、単一時間に1つのレジスタの状態変化しか記録することができなかった。
この問題を解決するために、例えば特許文献1には、トレース情報を記憶させるためのデバッグ専用バッファをデバイスに内蔵させ、CPUのトレース機能を用いてデバイスに対する制御手順をトレースする方法が記載されている。
特開2000−339190号公報
しかしながら、従来のトレース方法では、ICE(In Circuit Emulator)などの外部装置が必要である上、プログラムトレース機能を追加することによってデバイス制御タイミングがずれるため、デバイス本来の動作タイミングを正確にトレースすることができなかった。
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態又は適用例として実現することが可能である。
[適用例1]
n本(nは2以上の自然数)のデータ線と、前記n本のデータ線の書き込みを制御するn本の制御線と、n個の加算器と、n個の乗算器と、n個の切替回路と、n個のバッファ回路と、複数の記憶域を有する記憶回路と、を含み、i番目(iは1以上n以下のすべての自然数)の前記加算器は、1番目の前記制御線からi番目の前記制御線の値を加算したi番目の加算値を出力し、i番目の前記乗算器は、前記i番目の加算値とi番目の前記制御線の値とを乗算したi番目の乗算値を出力し、i番目の前記切替回路は、前記i番目の乗算値に対応した前記バッファ回路とi番目の前記データ線とを導通状態にし、i番目のバッファ回路は、i番目の前記データ線から供給されるデータを保持し、前記記憶回路の現在の前記記憶域のアドレスをpとすると、i番目の前記バッファ回路は、p+i−1のアドレスの前記記憶域に接続され、前記n個のバッファ回路に保持された前記データを同時に前記記憶回路に書き込んだ後、前記記憶回路の現在の前記記憶域のアドレスpにn番目の前記加算器の加算値を加えることを特徴とするトレース回路。
この構成によれば、同時に複数のレジスタの変化をトレースすることができる。
[適用例2]
上記に記載のトレース回路と、n個のレジスタと、を含み、i番目の前記レジスタは、i番目の前記制御線の値に基づきi番目の前記データ線から供給されるデータを記憶することを特徴とする半導体集積回路。
この構成によれば、ICEなどの外部装置を使わずに、トレース機能による制御タイミングのずれがなく、同時に複数のレジスタの変化をトレースすることができる。
以下、本発明を具体化した実施形態について図面に従って説明する。
(第1実施形態)
<半導体集積回路の構成>
まず、第1実施形態に係る半導体集積回路の構成について、図1を参照して説明する。図1は、第1実施形態に係る半導体集積回路の構成を示すブロック図である。なお、本実施形態では、説明の簡略化のために3個(n=3)のレジスタを含む構成について説明する。
図1に示すように、半導体集積回路1は、外部のCPU101とのデータや信号のやり取りを行うCPUインターフェース102と、内部コントローラ103と、外部コントローラ104と、トレース回路100と、複数のレジスタREG1〜REG3を含むレジスタ群105と、データ線111〜113と、制御線121〜123と、から構成されている。
レジスタREG1は、CPUインターフェース102用のレジスタであり、データ線111と制御線121と接続されている。CPUインターフェース102は、データ線111及び制御線121を介してレジスタREG1にデータ信号D1及び制御信号WE1を送信する。制御信号WE1がHレベルの時に、データ信号D1がレジスタREG1に書き込まれる。
レジスタREG2は、内部コントローラ103用のレジスタであり、データ線112と制御線122と接続されている。内部コントローラ103は、データ線112及び制御線122を介してレジスタREG2にデータ信号D2及び制御信号WE2を送信する。制御信号WE2がHレベルの時に、データ信号D2がレジスタREG2に書き込まれる。
レジスタREG3は、外部コントローラ104用のレジスタであり、データ線113と制御線123と接続されている。外部コントローラ104は、データ線113及び制御線123を介してレジスタREG3にデータ信号D3及び制御信号WE3を送信する。制御信号WE3がHレベルの時に、データ信号D3がレジスタREG3に書き込まれる。
さらに、データ線111〜113及び制御線121〜123は、トレース回路100にも接続されている。トレース回路100は、レジスタREG1〜REG3の少なくとも1つに書き込みが行われる度に、制御信号WE1〜WE3を監視し、書き込みが行われたいずれかのレジスタREG1〜REG3のデータ信号D1〜D3を順次記憶していく。トレース回路100に記憶されたデータを解析することにより、書き込みが行われたレジスタ全てのデータをトレースすることができる。
<トレース回路の構成>
次に、トレース回路の構成について図2を参照して説明する。図2は、トレース回路の構成を示すブロック図である。
図2に示すように、トレース回路100は、3個の加算器AD1〜AD3と、3個の乗算器MP1〜MP3と、3個の切替回路SW1〜SW3と、3個のバッファ回路BUF1〜BUF3と、複数の記憶域を有する記憶回路110と、から構成されている。
1番目の加算器AD1は、1番目の制御信号WE1の値(Hレベルならば1、Lレベルならば0)を加算し、1番目の加算値A1を出力する。1番目の乗算器MP1は、1番目の加算値A1と1番目の制御信号WE1の値を乗算し、1番目の乗算値M1を出力する。1番目の切替回路SW1は、1番目の乗算値M1が1の時、1番目のデータ線111と接続線131とを導通状態にし、1番目の乗算値M1が0の時、1番目のデータ線111と接続線131とを非導通状態にする。
2番目の加算器AD2は、1番目〜2番目の制御信号WE1〜WE2の値を加算し、2番目の加算値A2を出力する。2番目の乗算器MP2は、2番目の加算値A2と2番目の制御信号WE2の値を乗算し、2番目の乗算値M2を出力する。2番目の切替回路SW2は、2番目の乗算値M2が1の時、2番目のデータ線112と接続線131とを導通状態にし、2番目の乗算値M2が2の時、2番目のデータ線112と接続線132とを導通状態にし、2番目の乗算値M2が0の時、2番目のデータ線112と接続線131,132とを非導通状態にする。
3番目の加算器AD3は、1番目〜3番目の制御信号WE1〜WE3の値を加算し、3番目の加算値A3を出力する。3番目の乗算器MP3は、3番目の加算値A3と3番目の制御信号WE3の値を乗算し、3番目の乗算値M3を出力する。3番目の切替回路SW3は、3番目の乗算値M3が1の時、3番目のデータ線113と接続線131とを導通状態にし、3番目の乗算値M3が2の時、3番目のデータ線113と接続線132とを導通状態にし、3番目の乗算値M3が3の時、3番目のデータ線113と接続線133とを導通状態にし、3番目の乗算値M3が0の時、3番目のデータ線113と接続線131〜133とを非導通状態にする。
バッファ回路BUF1は、接続線131と接続され、切替回路SW1〜SW3により導通状態になったデータ線111〜113からのデータ信号D1〜D3を保持する。バッファ回路BUF2は、接続線132と接続され、切替回路SW2〜SW3により導通状態になったデータ線112〜113からのデータ信号D2〜D3を保持する。バッファ回路BUF3は、接続線133と接続され、切替回路SW3により導通状態になったデータ線113からのデータ信号D3を保持する。
バッファ回路BUF1は、記憶回路110の現在のアドレスPに、バッファ回路BUF2は、記憶回路110の現在のアドレスP+1に、バッファ回路BUF3は、記憶回路110の現在のアドレスP+2に、各々同時に保持したデータを出力する。バッファ回路BUF1〜BUF3からデータの出力後、記憶回路110の現在のアドレスPは、3番目の加算器AD3の加算値A3の値だけインクリメントされる。
<切替回路の構成>
次に、切替回路の構成について図3を参照して説明する。図3は、切替回路の構成を示す回路図である。
図3に示すように、切替回路SW1は、AND回路AN11と、インバータIN11と、トランスミッションゲートT11と、から構成されている。AND回路AN11の一方の入力端子には、1番目の乗算値M1の下位ビットM1[1]が入力され、AND回路AN11の他方の入力端子には、1番目の乗算値M1の上位ビットM1[2]がインバータIN11を介して入力されている。また、AND回路AN11の出力端子は、トランスミッションゲートT11の制御端子に接続されている。トランスミッションゲートT11は、データ線111と接続線131の間に接続されている。M1=0の時、トランスミッションゲートT11は、非導通状態となり、M1=1の時、トランスミッションゲートT11は、導通状態となる。
切替回路SW2は、AND回路AN21,AN22と、インバータIN21,IN22と、トランスミッションゲートT21,T22と、から構成されている。AND回路AN21の一方の入力端子には、2番目の乗算値M2の下位ビットM2[1]が入力され、AND回路AN21の他方の入力端子には、2番目の乗算値M2の上位ビットM2[2]がインバータIN21を介して入力されている。また、AND回路AN21の出力端子は、トランスミッションゲートT21の制御端子に接続されている。トランスミッションゲートT21は、データ線112と接続線131の間に接続されている。M2=0の時、トランスミッションゲートT21は、非導通状態となり、M2=1の時、トランスミッションゲートT21は、導通状態となる。AND回路AN22の一方の入力端子には、2番目の乗算値M2の下位ビットM2[1]がインバータIN22を介して入力され、AND回路AN22の他方の入力端子には、2番目の乗算値M2の上位ビットM2[2]が入力されている。また、AND回路AN22の出力端子は、トランスミッションゲートT22の制御端子に接続されている。トランスミッションゲートT22は、データ線112と接続線132の間に接続されている。M2=0,1の時、トランスミッションゲートT22は、非導通状態となり、M2=2の時、トランスミッションゲートT22は、導通状態となる。
切替回路SW3は、AND回路AN31,AN32,AN33と、インバータIN31,IN32と、トランスミッションゲートT31,T32,T33と、から構成されている。AND回路AN31の一方の入力端子には、3番目の乗算値M3の下位ビットM3[1]が入力され、AND回路AN31の他方の入力端子には、3番目の乗算値M3の上位ビットM3[2]がインバータIN31を介して入力されている。また、AND回路AN31の出力端子は、トランスミッションゲートT31の制御端子に接続されている。トランスミッションゲートT31は、データ線113と接続線131の間に接続されている。M3=0の時、トランスミッションゲートT31は、非導通状態となり、M3=1の時、トランスミッションゲートT31は、導通状態となる。AND回路AN32の一方の入力端子には、3番目の乗算値M3の下位ビットM3[1]がインバータIN32を介して入力され、AND回路AN32の他方の入力端子には、3番目の乗算値M3の上位ビットM3[2]が入力されている。また、AND回路AN32の出力端子は、トランスミッションゲートT32の制御端子に接続されている。トランスミッションゲートT32は、データ線113と接続線132の間に接続されている。M3=0,1の時、トランスミッションゲートT32は、非導通状態となり、M3=2の時、トランスミッションゲートT32は、導通状態となる。AND回路AN33の一方の入力端子には、3番目の乗算値M3の下位ビットM3[1]が入力され、AND回路AN33の他方の入力端子には、3番目の乗算値M3の上位ビットM3[2]が入力されている。また、AND回路AN33の出力端子は、トランスミッションゲートT33の制御端子に接続されている。トランスミッションゲートT33は、データ線113と接続線133の間に接続されている。M3=0,1,2の時、トランスミッションゲートT33は、非導通状態となり、M3=3の時、トランスミッションゲートT33は、導通状態となる。
<トレース回路の動作>
次に、トレース回路の動作について図4を参照して説明する。図4は、トレース回路の動作を示すタイミング図である。
期間t1において、制御信号WE1,WE3をHレベル、制御信号WE2をLレベルに設定し、データ信号D1としてデータ信号D1A、データ信号D3としてデータ信号D3Aを送信することにより、レジスタREG1にデータ信号D1Aが、レジスタREG3にデータ信号D3Aが、それぞれ書き込まれる。トレース回路100は、加算器AD1の加算値A1=WE1=1、乗算器MP1の乗算値M1=A1×WE1=1、加算器AD2の加算値A2=WE1+WE2=1、乗算器MP2の乗算値M2=A2×WE2=0、加算器AD3の加算値A3=WE1+WE2+WE3=2、乗算器MP3の乗算値M3=A3×WE3=2、となる。これらの値により、切替回路SW1は、データ線111と接続線131を導通状態にし、バッファ回路BUF1にデータ信号D1Aを書き込み、切替回路SW2は、非導通状態となり、切替回路SW3は、データ線113と接続線132を導通状態にし、バッファ回路BUF2にデータ信号D3Aを書き込む。
次に、期間t2において、バッファ回路BUF1が保持したデータ信号D1Aが記憶回路110の現在のアドレスPに書き込まれ、バッファ回路BUF2が保持したデータ信号D3Aが記憶回路110の現在のアドレスP+1に書き込まれる。その後、記憶回路110の現在のアドレスPに加算器AD3の加算値A3=2が加算され、アドレスP+2が現在のアドレスとなる。
期間t3において、制御信号WE1,WE3をLレベル、制御信号WE2をHレベルに設定し、データ信号D2としてデータ信号D2Bを送信することにより、レジスタREG2にデータ信号D2Bが書き込まれる。トレース回路100は、加算器AD1の加算値A1=WE1=0、乗算器MP1の乗算値M1=A1×WE1=0、加算器AD2の加算値A2=WE1+WE2=1、乗算器MP2の乗算値M2=A2×WE2=1、加算器AD3の加算値A3=WE1+WE2+WE3=1、乗算器MP3の乗算値M3=A3×WE3=0、となる。これらの値により、切替回路SW1,SW3は、非導通状態となり、切替回路SW2は、データ線112と接続線131を導通状態にし、バッファ回路BUF1にデータ信号D2Bを書き込む。
次に、期間t4において、バッファ回路BUF1が保持したデータ信号D2Bが記憶回路110の現在のアドレスP+2に書き込まれる。その後、記憶回路110の現在のアドレスP+2に加算器AD3の加算値A3=1が加算され、アドレスP+3が現在のアドレスとなる。
期間t5において、制御信号WE1,WE2をLレベル、制御信号WE3をHレベルに設定し、データ信号D3としてデータ信号D3Cを送信することにより、レジスタREG3にデータ信号D3Cが書き込まれる。トレース回路100は、加算器AD1の加算値A1=WE1=0、乗算器MP1の乗算値M1=A1×WE1=0、加算器AD2の加算値A2=WE1+WE2=0、乗算器MP2の乗算値M2=A2×WE2=0、加算器AD3の加算値A3=WE1+WE2+WE3=1、乗算器MP3の乗算値M3=A3×WE3=1、となる。これらの値により、切替回路SW1,SW2は、非導通状態となり、切替回路SW3は、データ線113と接続線131を導通状態にし、バッファ回路BUF1にデータ信号D3Cを書き込む。
次に、期間t6において、バッファ回路BUF1が保持したデータ信号D3Cが記憶回路110の現在のアドレスP+3に書き込まれる。その後、記憶回路110の現在のアドレスP+3に加算器AD3の加算値A3=1が加算され、アドレスP+4が現在のアドレスとなる。
以上に述べた前記実施形態によれば、以下の効果が得られる。
本実施形態では、ICEなどの外部装置を使わずに、トレース機能による制御タイミングのずれがなく、同時に複数のレジスタの変化をトレースすることができ、デバッグ効率を向上させることができる。
以上、本発明の実施形態を説明したが、こうした実施の形態に何ら限定されるものではなく、趣旨を逸脱しない範囲内において様々な形態で実施し得ることができる。以下、変形例を挙げて説明する。
(変形例1)半導体集積回路の変形例1について説明する。前記第1実施形態では、制御信号WE1〜WE3をHレベルの時に書き込みを行うように説明したが、反転制御信号を用い、Lレベルの時に書き込みを行うようにもできる。その場合、トレース回路100の制御線121〜123と加算器AD1〜AD3の間にインバータを設ければよい。
(変形例2)半導体集積回路の変形例2について説明する。半導体集積回路1の例として、USBコントローラなどの処理装置のデバッグや、CPU内部で使われる汎用レジスタに対してトレース回路100を実装することにより、CPUのデバッグにも使うことができる。また、SRAM、DRAMなどの記憶デバイスのデバッグにも使うことができる。
第1実施形態に係る半導体集積回路の構成を示すブロック図。 トレース回路の構成を示すブロック図。 切替回路の構成を示す回路図。 トレース回路の動作を示すタイミング図。
符号の説明
1…半導体集積回路、100…トレース回路、101…CPU、102…CPUインターフェース、103…内部コントローラ、104…外部コントローラ、105…レジスタ群、110…記憶回路、111〜113…データ線、121〜123…制御線、131〜133…接続線。

Claims (2)

  1. n本(nは2以上の自然数)のデータ線と、
    前記n本のデータ線の書き込みを制御するn本の制御線と、
    n個の加算器と、
    n個の乗算器と、
    n個の切替回路と、
    n個のバッファ回路と、
    複数の記憶域を有する記憶回路と、
    を含み、
    i番目(iは1以上n以下のすべての自然数)の前記加算器は、1番目の前記制御線からi番目の前記制御線の値を加算したi番目の加算値を出力し、
    i番目の前記乗算器は、前記i番目の加算値とi番目の前記制御線の値とを乗算したi番目の乗算値を出力し、
    i番目の前記切替回路は、前記i番目の乗算値に対応した前記バッファ回路とi番目の前記データ線とを導通状態にし、
    i番目のバッファ回路は、i番目の前記データ線から供給されるデータを保持し、
    前記記憶回路の現在の前記記憶域のアドレスをpとすると、
    i番目の前記バッファ回路は、p+i−1のアドレスの前記記憶域に接続され、
    前記n個のバッファ回路に保持された前記データを同時に前記記憶回路に書き込んだ後、前記記憶回路の現在の前記記憶域のアドレスpにn番目の前記加算器の加算値を加える、
    ことを特徴とするトレース回路。
  2. 請求項1に記載のトレース回路と、
    n個のレジスタと、
    を含み、
    i番目の前記レジスタは、i番目の前記制御線の値に基づきi番目の前記データ線から供給されるデータを記憶する、
    ことを特徴とする半導体集積回路。
JP2007150033A 2007-06-06 2007-06-06 トレース回路及びトレース回路を含む半導体集積回路 Withdrawn JP2008305051A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007150033A JP2008305051A (ja) 2007-06-06 2007-06-06 トレース回路及びトレース回路を含む半導体集積回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007150033A JP2008305051A (ja) 2007-06-06 2007-06-06 トレース回路及びトレース回路を含む半導体集積回路

Publications (1)

Publication Number Publication Date
JP2008305051A true JP2008305051A (ja) 2008-12-18

Family

ID=40233747

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007150033A Withdrawn JP2008305051A (ja) 2007-06-06 2007-06-06 トレース回路及びトレース回路を含む半導体集積回路

Country Status (1)

Country Link
JP (1) JP2008305051A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106547636A (zh) * 2015-09-22 2017-03-29 新唐科技股份有限公司 除错***与方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106547636A (zh) * 2015-09-22 2017-03-29 新唐科技股份有限公司 除错***与方法

Similar Documents

Publication Publication Date Title
CN109741774B (zh) 一种基于fpga片上ram模拟实现ddr3突发的控制器以及方法
CN112929300B (zh) 一种数据处理装置、方法、基站和存储介质
US20190251221A1 (en) Build synthesized soft arrays
JP2008305051A (ja) トレース回路及びトレース回路を含む半導体集積回路
CN109754829B (zh) 用于输出后加强信号的电子电路
JPS6398699A (ja) 電子楽器
US9058436B1 (en) Method and system for reducing the effect of component aging
CN112558921B (zh) 一种实现互相关运算的装置及方法
JP2007010606A (ja) Lsi検査モジュール、lsi検査モジュールの制御方法、lsi検査モジュールとlsi検査装置との通信方法、およびlsi検査方法
JPH1125071A (ja) 複素数乗算器
US9047215B1 (en) Method and system for reducing the effect of component recovery
US5708842A (en) Apparatus for changing coefficients utilized to perform a convolution operation having address generator which uses initial count number and up/down count inputs received from external
JP5277533B2 (ja) デジタル信号処理装置
TWI281619B (en) Data processing structure and method for fast Fourier transformation/inverse fast Fourier transformation
JP4640321B2 (ja) 波形発生回路
EP1746496B1 (en) Modulo arithmetic
JP2009145957A (ja) ステートマシン及びこれを用いた半導体集積回路
JP5267057B2 (ja) デジタル信号処理装置
JP2009301505A (ja) 半導体集積回路の消費電力見積り装置、消費電力見積り方法及びプログラム
JP2006293823A (ja) 半導体装置の動作率推定方法、装置、およびプログラム
JP2022063923A (ja) 演算処理装置、方法及びプログラム
JP5233543B2 (ja) データ処理回路、画像処理装置、及び、データ処理方法
CN116665730A (zh) 延迟参数确定方法及装置、存储介质及电子设备
JP2022106037A (ja) 制御装置、記憶装置、半導体装置、および制御方法
JPH0669759A (ja) 適応信号処理装置

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20100907