JP2012155649A - 半導体集積回路及び半導体集積回路のバス制御方法 - Google Patents
半導体集積回路及び半導体集積回路のバス制御方法 Download PDFInfo
- Publication number
- JP2012155649A JP2012155649A JP2011016223A JP2011016223A JP2012155649A JP 2012155649 A JP2012155649 A JP 2012155649A JP 2011016223 A JP2011016223 A JP 2011016223A JP 2011016223 A JP2011016223 A JP 2011016223A JP 2012155649 A JP2012155649 A JP 2012155649A
- Authority
- JP
- Japan
- Prior art keywords
- signal
- boundary scan
- terminal
- memory controller
- circuit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】ROMエミュレータによるプログラムのデバッグでは、専用のコネクタをCPUが実装された基板に設ける必要ある。このコネクタを追加することにより、配線抵抗が上昇し、メモリのアクセスタイミングを悪化させる。そこで、メモリ間のアクセスタイミングに影響を与えずに、プログラムのデバッグを実現する半導体集積回路を提供する。
【解決手段】半導体集積回路は、メモリに対するアクセスを制御するメモリコントローラと、メモリコントローラの端子と外部端子の間に配置されるバウンダリスキャン回路と、バウンダリスキャン回路の動作モードを決定するモード信号の出力が可能なJTAGインターフェイスと、プログラムのデバッグ時に、モード信号に基づいて、メモリコントローラのリードアクセスを許可する制御信号を、バウンダリスキャン回路を介して、メモリコントローラに発行するタイミング制御回路と、を備える。
【選択図】図1
【解決手段】半導体集積回路は、メモリに対するアクセスを制御するメモリコントローラと、メモリコントローラの端子と外部端子の間に配置されるバウンダリスキャン回路と、バウンダリスキャン回路の動作モードを決定するモード信号の出力が可能なJTAGインターフェイスと、プログラムのデバッグ時に、モード信号に基づいて、メモリコントローラのリードアクセスを許可する制御信号を、バウンダリスキャン回路を介して、メモリコントローラに発行するタイミング制御回路と、を備える。
【選択図】図1
Description
本発明は、半導体集積回路と半導体集積回路のバス制御方法に関する。特に、プログラムのデバッグ機能を備えた半導体集積回路に関する。
組み込み機器に使用する回路は、CPU(Central Processing Unit)として動作する半導体集積回路を備えている。CPUに実行させるプログラムのデバッグには、デバッグのターゲットとなるCPUのソケットにコネクタを挿入し、CPUの機能をコンピュータからエミュレートする方法が存在する。他にも、デバッグのターゲットとなるCPUをそのまま利用し、外部に設けられたメモリ(通常動作時に使用するメモリとは異なるメモリ)上にプログラムをダウンロードしてデバッグを行なうROMエミュレータを使用する方法が存在する。
非特許文献1にROMを内蔵したROMエミュレータが開示されている。ROMエミュレータを用いたプログラムのデバッグでは、JTAG(Joint Test Action Group)に準拠した手順でCPUとコンピュータが通信し、ROMエミュレータが備えるメモリにアクセスする方法が採用されることが多い。JTAGを用いたデバッグを行なう際には、半導体集積回路の外部端子とCPU間でやり取りされるデータの取得及び設定が必要であり、半導体集積回路(CPU)はバウンダリスキャン回路を備えていることが必要になる。非特許文献2には、バウンダリスキャン回路の構成が開示されている。
さらに、特許文献1において、データ書き換えとバウンダリスキャンテストのハードウェアを共用にすることで、基板面積を縮小し、異なる種類の不揮発性メモリの書き換えを行なう半導体装置が開示されている。特許文献1で開示された技術では、バウンダリスキャン回路をプログラム書き換え用のプログラムの一次保存メモリとして使用している。
また、特許文献2において、コンピュータと拡張ユニット間で授受される複数の信号のうち、所定の信号群をシリアルデータに変換した後に受け渡すと共に、動作速度に直接影響を及ぼす特定の信号を直接受け渡すインターフェイスが開示されている。
コンピューテックス、"ROMエミュレータ(ROMiCEminiREM16)"、[online]、[平成23年1月12日検索]、インターネット〈URL:http://www.computex.co.jp/products/romicemini/rem.htm〉
DEBSOL、"バウンダリスキャン講座"、[online]、[平成23年1月12日検索]、インターネット〈URL:http://www.debsol.com/AboutBS01.html〉
以下の分析は、本発明の観点からなされたものである。
上述のように、ROMエミュレータによるデバッグは、CPUが本来使用するメモリとは別のメモリにプログラムをダウンロードして行なわれる。しかし、近年のCPUの動作クロックの高速化は著しく、CPUの動作クロックが高速化すると、CPUとROMエミュレータ間を接続するコネクタの影響が無視できなくなる。
図2は、ROMエミュレータを使用したCPUのデバッグシステムの一例を示す図である。図2に示すデバッグシステムについての詳細は後述する。図2に示すデバッグシステムでは、CPU10の本来の動作に必要なプログラムはROM20に格納されており、デバッグの対象となるプログラムはROMエミュレータ2が内蔵するメモリにダウンロードする。プログラムのデバッグ時に、ROM20に格納されたプログラムは使用せず、ROMエミュレータ2が内蔵するメモリにダウンロードしたプログラムを使用する。そのため、デバッグ時には、CPU10と、ROM20及びROMエミュレータ2との接続を切り替えるためのコネクタ40が必要となる。
CPU10が実装された基板上に、デバッグ時に限り使用するコネクタ40を追加すると、コネクタ自身が持つ抵抗成分やコネクタを配設することに伴う配線抵抗が上昇し、信号の遅延及び反射を引き起こす。その結果、CPU10からメモリ(ROM20又はROMエミュレータ2が内蔵するメモリ)にアクセスする際のタイミングに対して悪影響を与える。即ち、コネクタ40とコネクタ40を配設するために必要な配線パターンが存在することにより、配線抵抗は上昇し、デバッグ時だけではなく、デバッグ時以外の動作(通常動作)においても、信号の遅延及び反射が発生してしまう。
その結果、CPU10からメモリにアクセスする際にウェイトを挿入するなどの処置が必要であり、CPU10のメモリアクセススピードに関する制約事項となっている。
以上のとおり、従来技術には、解決すべき問題点が存在する。
本発明の一側面において、メモリに対するアクセスタイミングに影響を与えることなく、プログラムのデバッグを実現する半導体集積回路及び半導体集積回路のバス制御方法が、望まれる。
本発明の第1の視点によれば、プログラムの実行が可能な半導体集積回路であって、メモリに対するアクセスを制御するメモリコントローラと、前記メモリコントローラの端子と外部端子の間に配置されるバウンダリスキャン回路と、外部から与えられるJTAG信号に基づき、前記バウンダリスキャン回路の動作モードを決定するモード信号の出力が可能なJTAGインターフェイスと、プログラムのデバッグ時に、前記モード信号に基づいて、前記メモリコントローラのリードアクセスを許可する制御信号を、前記バウンダリスキャン回路に対して出力するタイミング制御回路と、を備え、前記バウンダリスキャン回路は、前記制御信号に基づき、前記メモリコントローラのリードアクセスを許可する半導体集積回路が提供される。
本発明の第2の視点によれば、メモリに対するアクセスを制御するメモリコントローラと、前記メモリコントローラの端子と外部端子の間に配置されるバウンダリスキャン回路と、外部から与えられるJTAG信号に基づき、前記バウンダリスキャン回路の動作モードを決定するモード信号の出力が可能なJTAGインターフェイスと、を備え、プログラムの実行が可能な半導体集積回路のバス制御方法であって、プログラムのデバッグ時に、前記バウンダリスキャン回路にデータを設定する工程と、前記モード信号に基づいて、前記メモリコントローラのリード動作を1サイクルの期間許可し、前記メモリコントローラに前記データを読み込ませるデータアップデート工程と、前記データアップデート工程後、前記メモリコントローラのリードサイクルを禁止する工程と、を含む半導体集積回路のバス制御方法が提供される。
本発明の各視点によれば、メモリに対するアクセスタイミングに影響を与えることなく、プログラムのデバッグを実現する半導体集積回路及び半導体集積回路のバス制御方法が、提供される。
初めに、図1を用いて実施形態の概要について説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
上述のように、ROMエミュレータを使用するためには、デバッグ時に限り使用するコネクタが必要になる。すると、コネクタが存在しない場合と比較して、CPUを含む基板の配線抵抗が上昇してしまう。その結果、メモリのデータにアクセスするために必要なアドレス信号やデータ信号において、遅延や反射が起きてしまう。そのため、デバッグ時に限らず、通常動作時においても、CPUからメモリにアクセスする際のタイミングを調整することが必要になる。即ち、CPUのメモリアクセススピードに関する制約事項となる。
そこで、図1に示す半導体集積回路を提供する。図1に示す半導体集積回路は、メモリに対するアクセスを制御するメモリコントローラと、メモリコントローラの端子と外部端子の間に配置されるバウンダリスキャン回路と、外部から与えられるJTAG信号に基づき、バウンダリスキャン回路の動作モードを決定するモード信号の出力が可能なJTAGインターフェイスと、プログラムのデバッグ時に、モード信号に基づいて、メモリコントローラのリードアクセスを許可する制御信号を、バウンダリスキャン回路に対して出力するタイミング制御回路と、を備えている。
プログラムのデバッグ時は、バウンダリスキャン回路を介してCPUからメモリに対するアクセス情報をコンピュータに取り込み、コンピュータ上でエミュレーションした結果をバウンダリスキャン回路からメモリコントローラに設定する。その際に、メモリコントローラのリードアクセスを制限しなければ、コンピュータ上でエミュレーションを実行する前にデータの取得動作(データのフェッチ)が発生してしまう。そこで、デバッグ時におけるメモリコントローラのメモリに対するアクセスを制限し、コンピュータ上でエミュレーションしたデータが設定可能となった後に、メモリコントローラにおけるリードアクセスを許可することとした。即ち、デバッグ時にはメモリコントローラは常時、ウェイト状態とする。そして、コンピュータによるエミュレーション結果が準備できた後に、エミュレーション結果をバウンダリスキャン回路に設定する。その後、エミュレーション結果をメモリコントローラに読み込ませる指示がJTAGインターフェイスから発行され、JTAGインターフェイスはモード信号としてタイミング制御回路に出力する。タイミング制御回路では、モード信号からメモリコントローラに対してリードサイクルを許可する制御信号を発行し、制御信号を受け付けたバウンダリスキャン回路はメモリコントローラのリードアクセスを許可する。
その結果、図1に示す半導体集積回路に実行させるプログラムのデバッグの際は、デバッグの対象となっているプログラムをコンピュータ上に記憶することが可能となり、ROMエミュレータ等のデバッグには不可欠であったコネクタを削除することが可能になる。デバッグ時に限り必要となるコネクタが存在することで発生していた信号の遅延や反射を抑制することが可能になり、デバッグ機能の実現を目的としたメモリアクセスのタイミング調整は不要となる。そのため、CPUのメモリアクセススピードに関する制約を解消することができる。
次に、図2に示すROMエミュレータを使用したCPUのデバッグシステムについて説明する。図2に示すデバッグシステムは、評価ボード1と、ROMエミュレータ2と、JTAGマスタ3と、PC(Personal Computer)4から構成されている。評価ボード1は、CPU10と、ROM20と、CS制御器30と、コネクタ40から構成されている。
CPU10は、中央演算装置(CPU)として動作する半導体集積回路である。CPU10は、CPU10に接続されているメモリに対するアクセスを制御するメモリコントローラ(以下、MEMCと呼ぶ)101と、JTAGに準拠した通信信号のインターフェイスとなるJTAG−IF102を備えている。CPU10のMEMC101と、ROM20又はROMエミュレータ2が内蔵するメモリはコネクタ40を介して接続されている。
ROM20には、CPU10に実行させるプログラムが格納されている。但し、ROM20には、デバッグ時にはターゲットとなるプログラムは格納されていない。
CS制御器30は、CPU10にROM20に格納したプログラムを実行させるときは、CPU10が供給するCS(Chip Select)信号をROM20に供給し、デバッグ時にはROMエミュレータ2にCS信号を供給する。従って、デバッグ時にはCPU10はコネクタ40を経由して、ROMエミュレータ2が内蔵するメモリにアクセスする。
コネクタ40は、CPU10とROM20を接続するバスに設けられており、さらにCPU10とROMエミュレータ2を接続する。上述のように、ROMエミュレータ2が内蔵するメモリにデバッグのターゲットとなるプログラムをダウンロードする。なお、ROMエミュレータ2が内蔵するメモリの書き換え(プログラムのダウンロード)はPC4から行なう。また、CPU10はJTAGマスタ3を介することで、JTAGに準拠した手順でPC4と通信する。
図2に示すデバッグシステムでは、デバッグのターゲットとなるプログラムをROMエミュレータ2が内蔵するメモリにダウンロードし、CPU10におけるプログラムの実行・停止などの制御はJTAGマスタ3を介してPC4から行なう。その際に、CPU10とROMエミュレータ2が内蔵するメモリ間でやり取りされるデータの取得や、CPU10に対して任意のデータが設定できることが必要になる。そのため、CPU10にはバウンダリスキャン回路が内蔵されている。
次に、バウンダリスキャン回路について説明する。図3は、非特許文献2で開示されているバウンダリスキャン回路を備える半導体集積回路5の一構成例を示す図である。
図3に示す半導体集積回路5は、内部論理回路50と、バウンダリスキャンレジスタ51乃至58と、TAP(Test Access Port)コントローラ59から構成されている。バウンダリスキャンレジスタ51乃至58とTAPコントローラ59によって、バウンダリスキャン回路を構成している。
図3に示すバウンダリスキャン回路は、半導体集積回路5の外部端子と内部論理回路50の間でやり取りされるデータの取得及び任意なデータの設定を可能にするためのものである。半導体集積回路5には、外部端子と内部論理回路50の間にバウンダリスキャンレジスタ51乃至58が設けられている。なお、バウンダリスキャンレジスタ51乃至58は、それぞれ直列に接続されており、各バウンダリスキャンレジスタが保持するデータを順次、次段のバウンダリスキャンレジスタに出力可能となっている(シフトレジスタを構成している)。
TAPコントローラ59がバウンダリスキャンレジスタ51乃至58の制御を行なう。例えば、各バウンダリスキャンレジスタでのデータの取り込みや、取り込んだデータを次段のバウンダリスキャンレジスタにシフトアウトする動作をTAPコントローラ59が制御する。
続いて、バウンダリスキャンレジスタについて説明する。図4は、非特許文献2において開示されたバウンダリスキャンレジスタの一構成例である。図4に示すバウンダリスキャンレジスタは、双方向のデータの入出力が可能であり、マルチプレクサ60乃至64と、フリップフロップ65及び66と、バッファ67により構成されている。なお、マルチプレクサ60乃至64に記したH及びLは、入力切り替え信号がHレベルの際に選択される入力端と、Lレベルの際に選択される入力端を示すものである(以下の説明においても同様とする)。
図2に示す構成を持つデバッグシステムでは、ROMエミュレータが内蔵するメモリにデバッグのターゲットとなるプログラムをダウンロードする。そのため、プログラムのデバッグを行なうためには、CPU10とROMエミュレータ2を接続するためのコネクタ40が必要となる。さらに、CPU10が出力するCS信号を切り替えるためのCS制御器30も必要である。
これらのデバッグ時に限り必要なコネクタ40やCS制御器30を追加することにより、CPU10と、ROM20又はROMエミュレータ2が内蔵するメモリまでの配線抵抗が上昇する。その結果、メモリにアクセスする際に用いるアドレス信号やデータ信号が遅延、反射するといった問題が起こる。この信号の遅延及び反射は、通常動作時(デバッグ時以外)においても発生する。そのため、CPU10からメモリにアクセスする際にはウェイトを挿入するなどの処置が必要であり、CPU10のメモリアクセススピードが低下する要因となる。
[第1の実施形態]
次に、本発明の第1の実施形態について、図面を用いてより詳細に説明する。図5は、本実施形態に係る半導体集積回路(CPU)を含むデバッグシステムの一構成例を示す図である。図5において、図2と同一の構成要素には、同一の符号を表し、その説明を省略する。
次に、本発明の第1の実施形態について、図面を用いてより詳細に説明する。図5は、本実施形態に係る半導体集積回路(CPU)を含むデバッグシステムの一構成例を示す図である。図5において、図2と同一の構成要素には、同一の符号を表し、その説明を省略する。
図5に示すデバッグシステムは、評価ボード7と、JTAGマスタ3と、PC4から
構成されている。PC4には、デバッグのターゲットとなるプログラムが格納されている。評価ボード7は、CPU70とROM20から構成されている。
構成されている。PC4には、デバッグのターゲットとなるプログラムが格納されている。評価ボード7は、CPU70とROM20から構成されている。
CPU70は、MEMC101と、JTAG−IF102と、タイミング制御回路103を備え、中央演算装置として動作する半導体集積回路である。図2に示すデバッグシステムと図5に示すデバッグシステムとを比較すると、評価ボード7にはCS制御器30及びコネクタ40は存在しないことが分かる。
図6は、CPU70の内部構成の一例を示す図である。図6に示すCPU70は、MEMC101と、JTAG−IF102と、タイミング制御回路103と、バウンダリスキャンレジスタ104乃至106から構成されている。MEMC101は、バウンダリスキャンレジスタ106を介してCPU70のアドレス/コマンド端子と接続されている。同様に、MEMC101はバウンダリスキャンレジスタ105を介してデータ端子、バウンダリスキャンレジスタ104を介してウェイト端子と、それぞれ接続されている。なお、CPU70のアドレス/コマンド端子、データ端子、ウェイト端子は、それぞれROM20のアドレス端子、データ端子、ウェイト端子と接続されている。
また、ROM20がウェイト端子をウェイト状態にしている間は、MEMCからROM20に対してメモリアクセスは行なわれない。なお、図5に示すデバッグシステムでは、デバッグ時のウェイト端子の状態を基板上に設けたスイッチなどを使用して常にLレベルに設定する。
タイミング制御回路103は、MEMC101から基準クロックとなるCPU_CLKを受け付け、JTAG−IF102からSelectA信号を受け付ける。SelectA信号は上述のモード信号に相当する。タイミング制御回路103は、SelectB信号をバウンダリスキャンレジスタ104乃至106に出力する。SelectB信号は上述の制御信号に相当する。
JTAG−IF102は、バウンダリスキャンレジスタ104にScan_In1信号を出力し、バウンダリスキャンレジスタ104乃至106に対してShift信号を出力する。また、JTAG−IF102から、バウンダリスキャンレジスタ104乃至106に対してクロック(JTAG_CLK)を出力する。
なお、バウンダリスキャンレジスタ104乃至106に入力するScan_In信号は、Scan_In1、Scan_In2、Scan_In3と表記する。同様に、バウンダリスキャンレジスタ104乃至106から出力するScan_Out信号は、Scan_Out1、Scan_Out2、Scan_Out3と表記する。
次に、バウンダリスキャンレジスタ104乃至106の構成について説明する。なお、バウンダリスキャンレジスタ104乃至106の構成は同一のため、バウンダリスキャンレジスタ104に限り説明を行なう。図7は、バウンダリスキャンレジスタ104の内部構成の一例を示す図である。
バウンダリスキャンレジスタ104は、マルチプレクサ1041及び1042と、フリップフロップ1043から構成される。CPU70のウェイト端子は、マルチプレクサ1041の入力端子に接続され、フリップフロップ1043の出力端子はマルチプレクサ1041の他の入力端子に接続される。マルチプレクサ1041の出力端子は、MEMC101の入力端子及びマルチプレクサ1042の入力端子に接続される。マルチプレクサ1041の出力する信号は、SelectB信号に基づいて定まる。マルチプレクサ1042には、マルチプレクサ1041の出力に加えてScan_In1信号が入力される。また、マルチプレクサ1042の出力する信号は、Shift信号に基づいて定まる。マルチプレクサ1042の出力端子はフリップフロップ1043の入力端子に接続される。フリップフロップ1043の出力端子は、マルチプレクサ1041の入力端子と接続されると共に、バウンダリスキャンレジスタ104のScan_Out1信号として、次段のフリップフロップ105に出力される。
続いて、タイミング制御回路103の詳細な構成について説明する。図8は、タイミング制御回路103の内部構成の一例を示す図である。
タイミング制御回路103は、フリップフロップ1031乃至1033と、AND回路1034から構成されている。JTAG−IF102が出力するSelectA信号をフリップフロップ1031のデータ入力端子で受け付ける。フリップフロップ1031の出力端子は、フリップフロップ1032のデータ入力端子及びAND回路1034の入力端子に接続される。さらに、AND回路1034の他の入力端子はフリップフロップ1032の反転出力端子と接続される。AND回路1034の出力端子はフリップフロップ1033のデータ入力端子に接続される。フリップフロップ1033の出力端子から、SelectB信号を出力する。なお、フリップフロップ1031乃至1033のクロック端子には、MEMC101が供給するCPU_CLKが入力される。
図9は、メモリアクセスの1サイクルがCPU_CLKの1周期に等しいとした場合のタイミング制御回路103の動作を示す図である。図9の縦軸には、CPU_CLK、SelectA信号、フリップフロップ1031の出力、フリップフロップ1032の反転出力、AND回路1034の出力、SelectB信号を示す。
時刻T0〜T2の期間に入力されるSelectA信号はLレベルであるので、フリップフロップ1031の出力及びAND回路1034の出力はLレベルとなる。フリップフロップ1032の反転出力はHレベルとなる。その後、時刻T2とT3の期間において、SelectA信号がHレベルに変化したものとする。その結果、時刻T3において、フリップフロップ1031の出力はHレベルとなる。同時に、AND回路1034の出力もHレベルとなる。すると、フリップフロップ1032の出力は1クロック遅延して反転されるので、時刻T4においてLレベルとなる。フリップフロップ1032の反転出力を受け付けたAND回路1034の出力は、時刻T4においてLレベルとなる。
このように、AND回路1034の出力は時刻T3とT4の期間に限りHレベルを出力する。そして、フリップフロップ1033はAND回路1034の出力をCPU_CLKに同期させ、SelectB信号として1クロック遅延させて出力する。
一方、時刻T7とT8の期間においてSelectA信号がLレベルに遷移したとすると、フリップフロップ1031の出力はLレベルとなる。フリップフロップ1031の出力がLレベルとなると、フリップフロップ1032の反転出力は時刻T9においてHレベルとなる。時刻T9における各信号の状態は時刻T0の状態と同じであり、時刻T9以降は上述の動作を繰り返す。
次に、本実施系形態に係るCPU70を含むデバッグシステムの動作について説明する。図10は、CPU70を含むデバッグシステムによってデバッグを行なう際の動作の概略を示す図である。
ステップS01では、CPU70の内部からMEMC101に対してアドレスを指定したデータの取り込み指示が出力される。その指示を受けたMEMC101は、指定されたアドレス信号をバウンダリスキャンレジスタ106に対して出力する。
ステップS02では、バウンダリスキャンレジスタ104乃至106で保持しているデータをPC4に取り込む。本ステップでは、各バウンダリスキャンレジスタで保持したデータを次段のバウンダリスキャンレジスタに順次送り、PC4において最終段のバウンダリスキャンレジスタ(バウンダリスキャンレジスタ106)から出力されるデータを順次取り込む。ここで、バウンダリスキャンレジスタ104乃至106でデータの取り込みを行なう動作をバウンダリスキャンレジスタのキャプチャーモードと呼び、各バウンダリスキャンレジスタで保持したデータを次段のバウンダリスキャンレジスタに順次送る動作をバウンダリスキャンレジスタのスキャンシフトモードと呼ぶ。
ステップS03では、PC4において、取り込んだアドレス信号を基にROMデータのエミュレートを行なう。さらに、エミュレート結果を返答データとして生成する。
ステップS04では、ステップS03で生成した返答データをバウンダリスキャンレジスタ104乃至106に設定する。
ステップS05では、バウンダリスキャンレジスタ104乃至106に設定した返答データをMEMC101に読み込ませる。ここで、バウンダリスキャンレジスタに設定したデータをMEMCに読み込ませる動作をバウンダリスキャンレジスタのアップデートモードと呼ぶ。
ステップS05が終了すると、ステップS01に遷移し、プログラムのデバッグを継続する。
続いて、図10の各ステップにおけるCPU70の動作について説明する。図11は、CPU70の各信号の動作を示すタイミングチャートである。図11の縦軸には、CPU_CLK、SelectA信号、SelectB信号、ウェイト信号(ウェイト端子の状態)、マルチプレクサ1041の出力、Shift信号、Scan_In1信号、マルチプレクサ1042の出力、フリップフロップ1043の出力、Scan_Out1信号を示す。
時刻T0〜T2の期間は、上述のキャプチャーモードに相当する。時刻T0〜T2の期間においては、JTAG−IF102が出力するSelectA信号がLレベルであるため、タイミング制御回路103が出力するSelectB信号もLレベルである。すると、マルチプレクサ1041はウェイト端子の状態を出力し、ウェイト端子の状態はLレベルであるので、マルチプレクサ1041の出力はLレベルとなる。バウンダリスキャンレジスタ104の出力としてLレベルを受け取ったMEMC101では、CPU70の外部端子であるウェイト端子がLレベルであると解釈し、メモリに対するアクセスを行なわない(中断する)。また、Shift信号がLレベルであれば、マルチプレクサ1042はマルチプレクサ1041の出力(Lレベル)を選択し、フリップフロップ1043に出力する。フリップフロップ1043では、入力された信号(Lレベル)をScan_Out1信号として次段のバウンダリスキャンレジスタ105に出力する。このようにして、バウンダリスキャンレジスタ104で保持するウェイト信号の値を次段のバウンダリスキャンレジスタ105及びMEMC101に対して出力する。
図12は、キャプチャーモード時のバウンダリスキャンレジスタ104の信号フローを示した図である。図12において、点線がキャプチャーモード時に選択されている信号の経路である。図12からも明らかなように、バウンダリスキャンレジスタ104ではウェイト信号をMEMC101に伝えると共に、フリップフロップ1043で保持した情報を次段のバウンダリスキャンレジスタ105に出力する。
次に、スキャンシフトモードについて説明する。図11の時刻T2〜T3の期間は、上述のスキャンシフトモードに相当する。スキャンシフトモードでは、CPU70の外部から入力される信号をMEMC101に伝えながら、前段のバウンダリスキャンレジスタが出力するデータを次段のバウンダリスキャンレジスタに伝える(シフトする)。時刻T2〜T3の期間においても、SelectB信号はLレベルであるのでウェイト信号はMEMC101に伝えられる。しかし、スキャンシフトモードでは、マルチプレクサ1042が受け付けるShift信号がHレベルとなるので、Scan_In1信号が選択されて後段のフリップフロップ1043に出力する。そして、フリップフロップ1043では、JTAG−IF102が供給するJTAG_CLKに同期してScan_Out1信号として、Scan_In1信号を出力する。このように、バウンダリスキャンレジスタ104乃至106が取り込んだデータを次段のバウンダリスキャンレジスタに出力することで、最終的にPC4において、MEMC101が出力するアドレス信号やCPU70のデータ端子やウェイト端子の状態(信号)を取り込むことができる。
図13は、図12と同様、スキャンシフトモード時のバウンダリスキャンレジスタ104の信号フローを示したものである。
次に、アップデートモードについて説明する。図11の時刻T10〜T12の期間は、上述のアップデートモードに相当する。アップデートモードでは、バウンダリスキャンレジスタ104乃至106で形成するバウンダリスキャン回路に設定されたデータ(返答データ)をMEMC101に読み込ませる。アップデートモードでは、Shift信号はHレベルであり、マルチプレクサ1042の出力はScan_In1信号が選択されて出力される。すると、Scan_In1信号にHレベルが設定されている場合には、フリップフロップ1043を介してマルチプレクサ1041にHレベルが出力される。
一方、タイミング制御回路103では、時刻T10とT11の期間にSelectA信号がLレベルからHレベルに変化しているため、この変化に基づいてSelectB信号が時刻T11とT12の期間に限りHレベルとなる。マルチプレクサ1041では、時刻T11とT12の期間に限り、フリップフロップ1043の出力を選択して出力する。この場合には、Scan_In1信号にHレベルが設定されているため、MEMC101では、Scan_In1信号のHレベルを1クロックの期間受け付ける。
バウンダリスキャンレジスタ104の出力(マルチプレクサ1041の出力)は、MEMC101においてはウェイト信号と解釈され、ウェイト信号がHレベルに変化したと認識される。その結果、MEMC101ではウェイトが解除されメモリアクセス(データの取り込み)が実行される。従って、JTAG−IF102が、PC4でエミュレーションしたデータ(返答データ)を時刻T11までにバウンダリスキャンレジスタ104乃至106に設定することで、返答データをMEMC101に読み込ませることが可能になる。
さらに、タイミング制御回路103が出力するSelectB信号は時刻T12ではLレベルとなるのでマルチプレクサ1041の出力はウェイト端子の状態を出力することになる。ウェイト端子の状態はLレベルであるので、MEMC101によるメモリアクセスは再び中断される。以上の動作で、図10におけるステップS05まで終了したことになる。その後は、ステップS01に戻り次のエミュレーションが実行される。具体的には、時刻T14において、JTAG−IF102からSelectA信号としてLレベルが出力され、時刻T21までの間にPC4にデータが取り込まれる。その後、時刻T21とT22の間にSelectA信号をHレベルとすることで、SelectB信号が1サイクル間に限りHレベルとなり、MEMC101にデータを読み取らせることが可能になる。
図14は、図12と同様、アップデートモード時のバウンダリスキャンレジスタ104の信号フローを示したものである。
以上のように、バウンダリスキャン回路を内蔵する半導体集積回路において、タイミング制御回路103を設け、メモリコントローラ(MEMC101)に供給するウェイト信号を適宜、制御することでプログラムのデバッグを行なうことができる。ウェイト信号を適切に制御しなければ、MEMC101はメモリに対してアクセス可能と解釈するためバウンダリスキャンレジスタによるアップデートモードが終了すると即座にデータのフェッチを始めてしまう。
図11のタイミングを例に取ると、時刻T12で再びウェイト信号をLレベルとしてMEMC101に出力しなければ、MEMCではメモリに対してアクセス可能と判断し、次々とデータのフェッチを始めてしまう。しかし、デバッグ時にはPC4においてプログラムのエミュレーションをしなければならず、時刻T12の後、即座にデータの用意はできない。そこで、MEMC101に対するウェイト信号はLレベルを基本として、必要に応じてタイミング制御回路103によって制御する。
ROMエミュレータによるデバッグでは、専用のコネクタが必要であったが、本実施形態に係る半導体集積回路を含むデバッグシステムであれば専用のコネクタは必要ない。ROMエミュレータを使ったデバッグ方法では、コネクタ等の追加配線の影響で信号が遅延してしまい、追加配線の遅延を考慮しなければ、データを正しく読み出すことができないという問題が発生していた。この問題を解決するためには、メモリにアクセスするタイミングを変更(余分なウェイトを挿入など)するなどの対処が必要であった。
しかし、本実施形態に係る半導体集積回路を含むデバッグシステムにおいては、バウンダリスキャンレジスタを経由して、直接データを読み取り、その読み取ったデータからMEMC101に返答するデータを作成し、MEMC101に読み込ませるという動作をさせるため、メモリのアクセスタイミングを調整する必要はないという効果を有する。
また、プログラムのデバッグ時に限り必要であったコネクタ等が不要であり、本実施形態に係る半導体集積回路を備えた製品のコストダウンを実現できる。
[第2の実施形態]
続いて、第2の実施形態について図面を参照して詳細に説明する。
続いて、第2の実施形態について図面を参照して詳細に説明する。
本実施形態に係る半導体集積回路(CPU)は、リードアクセスサイクル中であることを示す信号の出力が可能なMEMC101aを備えているものとする。リードアクセスサイクル中であることを示す信号(アクセス通知信号)をRDZ信号と定め、RDZ信号がLレベルであればMEMC101aがリードサイクル中であることを示すものとする。
図15は、本実施形態に係るCPU70aが備えるタイミング制御回路103aの一構成例を示す図である。図15に示すタイミング制御回路103aは、AND回路1035とインバータ1036から構成されている。
MEMC101aが出力するRDZ信号をインバータ1036に入力し、インバータ1036の出力端子をAND回路1035の入力端子に接続する。また、JTAG−IF102が出力するSelectA信号をAND回路1035の他の入力端子により受け付ける。なお、第1の実施形態に係るCPU70と本実施形態に係るCPU70aの相違点は、MEMC101aとタイミング制御回路103aであり、他の説明は省略する。
図16は、タイミング制御回路103aの動作を示す図である。図16の縦軸には、CPU_CLK、MEMC101aの出力するRDZ信号、SelectA信号、インバータ1036の出力、SelectB信号を示す。図16のRDZ信号は、時刻T1にLレベルに変化し、時刻T9とT10の期間内でHレベルに変化している。この間はMEMC101aによるリードサイクルが継続していることを意味する。そして、JTAG−IF102の出力するSelectA信号が時刻T3でHレベルと変化している。すると、AND回路1035にはインバータ1036の出力するHレベルとSelectA信号のHレベルが入力されることになるため、SelectB信号は時刻T3でHレベルに変化する。その後、RDZ信号がHレベルに変化(リードアクセスサイクルが終了)すると同時にSelectB信号はLレベルに変化する。
このように、SelectB信号はMEMC101aの1回のリードアクセス中に限りHレベルとなる。即ち、JTAG−IF102から各バウンダリスキャンレジスタで保持するデータをMEMC101aに取り込ませることを目的としてSelectA信号がHレベルに設定され、かつ、MEMC101aのリードアクセスサイクルが継続している期間(RDZ信号がLレベルの期間)に限りSelectB信号がHレベルに設定される。その結果、バウンダリスキャンレジスタによるアップデートモードが実現できる。タイミング制御回路103aが生成するSelectB信号以降の動作は、第1の実施形態に係るCPU70の動作と同様のため省略する。
以上のように、MEMC101aがRDZ信号の出力が可能であれば、タイミング制御回路103aを簡易な構成とすることができる。
なお、上記の特許文献等の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。例えば、第1及び第2の実施形態では、バウンダリスキャンレジスタは片方向タイプのスキャン回路として説明したが、図4に示すような双方向タイプを採用することも可能である。
1、7 評価ボード
2 ROMエミュレータ
3 JTAGマスタ
4 PC
5 半導体集積回路
10、70、70a CPU
20 ROM
30 CS制御器
40 コネクタ
50 内部論理回路
51〜58、104〜106 バウンダリスキャンレジスタ
59 TAPコントローラ
60〜64、1041、1042 マルチプレクサ
65、66、1043、1031〜1033 フリップフロップ
67 バッファ
101、101a メモリコントローラ
102 JTAG−IF
103、103a タイミング制御回路
1034、1035 AND回路
1036 インバータ
2 ROMエミュレータ
3 JTAGマスタ
4 PC
5 半導体集積回路
10、70、70a CPU
20 ROM
30 CS制御器
40 コネクタ
50 内部論理回路
51〜58、104〜106 バウンダリスキャンレジスタ
59 TAPコントローラ
60〜64、1041、1042 マルチプレクサ
65、66、1043、1031〜1033 フリップフロップ
67 バッファ
101、101a メモリコントローラ
102 JTAG−IF
103、103a タイミング制御回路
1034、1035 AND回路
1036 インバータ
Claims (9)
- プログラムの実行が可能な半導体集積回路であって、
メモリに対するアクセスを制御するメモリコントローラと、
前記メモリコントローラの端子と外部端子の間に配置されるバウンダリスキャン回路と、
外部から与えられるJTAG信号に基づき、前記バウンダリスキャン回路の動作モードを決定するモード信号の出力が可能なJTAGインターフェイスと、
プログラムのデバッグ時に、前記モード信号に基づいて、前記メモリコントローラのリードアクセスを許可する制御信号を、前記バウンダリスキャン回路に対して出力するタイミング制御回路と、
を備え、
前記バウンダリスキャン回路は、前記制御信号に基づき、前記メモリコントローラのリードアクセスを許可することを特徴とする半導体集積回路。 - 前記タイミング制御回路は、前記制御信号により前記メモリコントローラに対して、1サイクルのリードアクセスを許可する請求項1の半導体集積回路。
- 前記バウンダリスキャン回路は、前記メモリが出力するウェイト信号を受け付けるウェイト端子と前記メモリコントローラとの間に配置される第1のバウンダリスキャンレジスタを含み、
前記第1のバウンダリスキャンレジスタは、前記タイミング制御回路が前記制御信号を出力する期間は、前記ウェイト信号を遮断し、前記JTAGインターフェイスから前記メモリコントローラのリードサイクルを有効とする信号を受け付ける請求項1又は2の半導体集積回路。 - 前記バウンダリスキャン回路は、さらに、前記メモリのアドレス端子と前記メモリコントローラとの間に接続される第2のバウンダリスキャンレジスタと、
前記メモリのデータ端子と前記メモリコントローラとの間に接続される第3のバウンダリスキャンレジスタと、を含み、
前記JTAGインターフェイスは、前記バウンダリスキャン回路がスキャンシフトしたデバッグに関する情報を受け付ける請求項3の半導体集積回路。 - 前記第1乃至第3のバウンダリスキャンレジスタは、
第1の入力端子と第2の入力端子を備える第1のマルチプレクサと、
第3の入力端子と第4の入力端子を備える第1のマルチプレクサと、
前記JTAGインターフェイスが供給するクロックに同期するフリップフロップと、
を含み、
前記第1のマルチプレクサは、前記第1の入力端子と前記外部端子が接続されると共に、前記第2の入力端子と前記フリップフロップの出力端子が接続され、前記制御信号に基づいて前記第1の入力端子及び第2の入力端子の切り替えを行い、
前記第2のマルチプレクサは、前記第3の入力端子と前記第1のマルチプレクサの出力端子とが接続されると共に、前記第4の入力端子と前記JTAGインターフェイスがスキャンイン信号を出力する端子と接続され、前記JTAGインターフェイスの出力するShift信号に基づいて前記第3の入力端子及び第4の入力端子の切り替えを行い、
前記フリップフロップの入力端子は前記第2のマルチプレクサの出力端子と接続されている請求項1乃至4いずれか一に記載の半導体集積回路。 - 前記タイミング制御回路は、
データ端子から前記モード信号を受け付ける第2のフリップフロップと、
前記第2のフリップフロップの出力端子とデータ端子が接続されている第3のフリップフロップと、
前記第2のフリップフリップの出力端子及び前記第3のフリップフロップの反転出力端子が、それぞれ、第1の入力端子及び第2の入力端子に接続されている第1のAND回路と、
前記第1のAND回路の出力端子がデータ端子に接続され、出力端子から前記制御信号を出力する第4のフリップフロップと、
を備える請求項1乃至5いずれか一に記載の半導体集積回路。 - さらに、前記メモリコントローラは、前記メモリに対するアクセス中か否かを通知するアクセス通知信号の出力が可能であり、
前記タイミング制御回路は、前記モード信号及び前記アクセス通知信号に基づいて前記制御信号を出力する請求項1乃至5いずれか一に記載の半導体集積回路。 - 前記タイミング制御回路は、
前記アクセス通知信号を反転するインバータと、
前記インバータの出力と、前記モード信号との論理積により前記制御信号を出力する第2のAND回路と、
を備える請求項7の半導体集積回路。 - メモリに対するアクセスを制御するメモリコントローラと、
前記メモリコントローラの端子と外部端子の間に配置されるバウンダリスキャン回路と、
外部から与えられるJTAG信号に基づき、前記バウンダリスキャン回路の動作モードを決定するモード信号の出力が可能なJTAGインターフェイスと、
を備え、プログラムの実行が可能な半導体集積回路のバス制御方法であって、
プログラムのデバッグ時に、
前記バウンダリスキャン回路にデータを設定する工程と、
前記モード信号に基づいて、前記メモリコントローラのリード動作を1サイクルの期間許可し、前記メモリコントローラに前記データを読み込ませるデータアップデート工程と、
前記データアップデート工程後、前記メモリコントローラのリードサイクルを禁止する工程と、
を含むことを特徴とする半導体集積回路のバス制御方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2011016223A JP2012155649A (ja) | 2011-01-28 | 2011-01-28 | 半導体集積回路及び半導体集積回路のバス制御方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2011016223A JP2012155649A (ja) | 2011-01-28 | 2011-01-28 | 半導体集積回路及び半導体集積回路のバス制御方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2012155649A true JP2012155649A (ja) | 2012-08-16 |
Family
ID=46837286
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2011016223A Withdrawn JP2012155649A (ja) | 2011-01-28 | 2011-01-28 | 半導体集積回路及び半導体集積回路のバス制御方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2012155649A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2020177467A (ja) * | 2019-04-18 | 2020-10-29 | キヤノン株式会社 | 情報処理装置、情報処理装置の制御方法およびプログラム |
-
2011
- 2011-01-28 JP JP2011016223A patent/JP2012155649A/ja not_active Withdrawn
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2020177467A (ja) * | 2019-04-18 | 2020-10-29 | キヤノン株式会社 | 情報処理装置、情報処理装置の制御方法およびプログラム |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3174617B2 (ja) | Jtagを用いた高速集積回路試験 | |
| JP4529063B2 (ja) | システムシミュレータ、シミュレーション方法及びシミュレーションプログラム | |
| US8170828B2 (en) | Test method using memory programmed with tests and protocol to communicate between device under test and tester | |
| US7979745B2 (en) | On-chip debug emulator, debugging method, and microcomputer | |
| US6584590B1 (en) | JTAG port-sharing device | |
| KR20030060990A (ko) | 테스트 액세스 포트의 데이터 동기화 방법 및 장치 | |
| CN113270137B (zh) | 一种基于fpga嵌入式软核的ddr2测试方法 | |
| CN104407882B (zh) | 一种板卡装置 | |
| CN109783340A (zh) | SoC的测试代码烧写方法、IP测试方法及装置 | |
| JP7202225B2 (ja) | 半導体装置及びデバッグシステム | |
| JP2002323995A (ja) | トレース回路 | |
| CN101785066B (zh) | 可编程诊断存储器模块及测试方法 | |
| JPS61253555A (ja) | トランザクシヨン・アナライザ | |
| US11042500B1 (en) | Systems and methods for high-speed data transfer over a communication interface | |
| JP2001201543A (ja) | スキャン・パス構築用プログラムを記録した記録媒体とスキャン・パスの構築方法及びこのスキャン・パスを組み込んだ演算処理システム | |
| US20060179373A1 (en) | Device and method for JTAG test | |
| US5515530A (en) | Method and apparatus for asynchronous, bi-directional communication between first and second logic elements having a fixed priority arbitrator | |
| KR100297551B1 (ko) | 멀티 기능 모듈을 지원하는 하드웨어/소프트웨어 코-에뮬레이터를 위한 장치 및 방법 | |
| US7395197B2 (en) | Verification method and system for logic circuit | |
| JP2010032503A (ja) | Jtagテスト・データ・レジスタを用いる非同期通信装置 | |
| JP2012155649A (ja) | 半導体集積回路及び半導体集積回路のバス制御方法 | |
| JP2001184212A (ja) | トレース制御回路 | |
| CN119602758A (zh) | 一种基于Chiplet互联方向的低延时跨异步方法及电路 | |
| CN100524537C (zh) | 存储器测试电路和方法 | |
| US20060212768A1 (en) | Verification circuitry for master-slave system |
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: 20140401 |