JP2013250955A - ハードウェア機器 - Google Patents

ハードウェア機器 Download PDF

Info

Publication number
JP2013250955A
JP2013250955A JP2012127526A JP2012127526A JP2013250955A JP 2013250955 A JP2013250955 A JP 2013250955A JP 2012127526 A JP2012127526 A JP 2012127526A JP 2012127526 A JP2012127526 A JP 2012127526A JP 2013250955 A JP2013250955 A JP 2013250955A
Authority
JP
Japan
Prior art keywords
data
register
information processing
bus controller
programmable
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.)
Pending
Application number
JP2012127526A
Other languages
English (en)
Inventor
Hiromi Oshima
広美 大島
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.)
Advantest Corp
Original Assignee
Advantest 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 Advantest Corp filed Critical Advantest Corp
Priority to JP2012127526A priority Critical patent/JP2013250955A/ja
Publication of JP2013250955A publication Critical patent/JP2013250955A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Information Transfer Systems (AREA)

Abstract

【課題】コンフィギュレーションデータの更新時間を短縮する。
【解決手段】FPGA902は、(i)バスコントローラ906を介して、情報処理装置1008からのデータを受信する内部インタフェース部920と、(ii)バウンダリスキャンレジスタR1と、(iii)所定形式の制御ファイルF1にもとづき、バウンダリスキャンレジスタR1のうち不揮発性メモリ904に接続される複数の入出力ピンに対応するレジスタ群912の値を制御するレジスタアクセス回路924と、を有する。所定形式の制御ファイルF1は、情報処理装置1008からバスコントローラ906へ、複数ワードを含む所定データ量を単位として伝送される。プログラマブル領域930には、所定データ量より大きい記憶領域を有し、当該記憶領域に制御ファイルF1を所定データ量ごとに格納し、順次、レジスタアクセス回路924に受け渡すデータバッファ部924が形成される。
【選択図】図2

Description

本発明は、ハードウェア機器に関する。
近年、さまざまな電子機器、産業機器、計測機器(以下、ハードウェア機器と総称する)に、FPGA(Field Programmable Gate Array)をはじめとするプログラマブルデバイスが利用される。FPGAは、EEPROM(Electrically Erasable Programmable Read-Only Memory)やフラッシュメモリなどの不揮発性メモリに格納されたコンフィギュレーションデータに応じて、内部の回路構成がプログラム可能となっている。
通常、FPGAのプログラミングは、以下の手順でなされる。まずハードウェア機器の設計者は、ハードウェア記述言語(HDL)を用いてFPGAの動作を定義する。そしてHDLで記述された設計情報を、ネットリストと呼ばれる回路情報に変換する。そしてFPGAのベンダーが供給する設計ツールを用いて、ネットリストを、FPGAがアクセス可能な形式であるバイナリファイルに変換し、不揮発性メモリに書き込む。このバイナリファイルが、コンフィギュレーションデータである。
図1は、従来のFPGAを含むハードウェア機器の構成を示すブロック図である。ハードウェア機器900rは、FPGA902と、不揮発性メモリ904とを備える。
FPGA902は、データ線や制御線(単に制御線という)903を介して不揮発性メモリ904と接続される。FPGA902は、不揮発性メモリ904に格納されたコンフィギュレーションデータに応じて、その内部構成がプログラム可能である。FPGA902は、JTAG規格に準拠しており、バウンダリスキャンレジスタR1、インストラクションレジスタR2、TAP(Test Access Port)コントローラ910を有する。
バウンダリスキャンレジスタR1は直列に接続された複数のレジスタを含み、各レジスタは、FPGA902のI/Oピンごとに設けられる。FPGA902のI/Oピンのいくつかは、制御線903を介して不揮発性メモリ904と接続されている。
テストアクセスポート(TAP)は、TDI端子、TCK端子、TMS端子、およびTDO端子を含む。JTAGコントローラ1000は、専用のダウンロードケーブル1002を介してFPGA902のTAPと接続される。JTAGコントローラ1000は、TDI端子を経由してバウンダリスキャンレジスタR1にデータを送り込む。そして、バウンダリスキャンレジスタR1のうち、信号線903に対応するレジスタ912の値を制御することにより、不揮発性メモリ904に対するアクセスを制御する。具体的には、レジスタ912にライト命令を書き込むと、不揮発性メモリ904に値が書き込まれ、レジスタ912にリード命令を書き込むと、不揮発性メモリ904から値が読み出される。TAPコントローラ910は、TMS端子に入力された信号に応じて状態遷移するステートマシンであり、TAPコントローラ910によって、シフトレジスタR1、R2の状態が制御される。
JTAGコントローラ1000の動作は、制御ファイルにより制御される。制御ファイルは、レジスタ912に書き込むべきデータを記述する。JTAGコントローラ1000は、制御ファイルを参照し、制御ファイルに記述されるライト命令、リード命令を順にレジスタ912に格納する。かくして不揮発性メモリ904には、制御ファイルに応じたコンフィギュレーションデータが書き込まれる。
ハードウェア機器の出荷後に、バグフィックスや、機能の追加、変更を目的として、ハードウェア機器の手にユーザによって、不揮発性メモリにコンフィギュレーションデータを書き込みさせたい状況が想定される。
しかしながら、ユーザに専用のJTAGコントローラ1000および専用のダウンロードケーブル1002の購入を強いることは現実的に困難である。したがって出荷後において、専用のJTAGコントローラ1000および専用のダウンロードケーブル1002を用いて、コンフィギュレーションデータの変更、更新を行うことはむずかしい。かかる事情から、ハードウェア機器は、汎用的な情報処理端末および汎用的なバスの組み合わせで、コンフィギュレーションデータを変更、更新することが望ましい。
本発明者は、USB(Universal Serial Bus)などの汎用バスを用いた、製品出荷後のコンフィギュレーションデータの書き込みについて検討した結果、以下の課題を認識するに至った。
上述のように、コンフィギュレーションデータを記述する制御データの実体は、レジスタ912に書き込まれる、リード命令、ライト命令、その他命令の組み合わせであり、各命令は適切な順序で実行されなければならない。ライト命令とリード命令が混在する命令群は、情報処理装置からハードウェア機器に対して一括送信することはできず、命令単位での送受信が必要となる。
USBは、1つのパケットのデータ容量が大きいほど伝送速度は高くなるが、小さなパケットを繰り返し送受信する場合、ハンドシェイクの回数が増えるため、伝送速度が低下する。かかる理由から、汎用的な情報処理装置と汎用的なバスの組み合わせで、JTAGを制御して不揮発性メモリにコンフィギュレーションデータを書き込むには、非常に長い時間を要する。
なおここで説明した課題を当業者の一般的な技術認識ととらえてはならず、これらは本発明者らが独自に検討したものである。
本発明は係る課題に鑑みてされたものであり、そのある態様の例示的な目的のひとつは、プログラマブルデバイスを搭載するハードウェア機器におけるコンフィギュレーションデータの更新時間の短縮にある。
本発明のある態様は、ハードウェア機器に関する。ハードウェア機器は、情報処理装置との間で外部バスを介してデータを双方向に送受信可能なバスコントローラと、コンフィギュレーションデータを格納する不揮発性メモリと、プログラマブルデバイスと、を備える。プログラマブルデバイスは、(i)内部バスを介してバスコントローラと接続され、バスコントローラを介して、情報処理装置からのデータを受信する内部インタフェース部と、(ii)バウンダリスキャンレジスタと、(iii)所定形式のファイルにもとづき、バウンダリスキャンレジスタのうち不揮発性メモリと接続される複数の入出力ピンに対応するレジスタ群の値を制御するレジスタアクセス回路と、(iv)不揮発性メモリに格納されたコンフィギュレーションデータに応じて回路構成がプログラム可能なプログラマブル領域と、を有するプログラマブルデバイスと、を備える。所定形式のファイルは、情報処理装置からバスコントローラへ、複数ワードを含む所定データ量を単位として伝送され、プログラマブル領域には、所定データ量より大きい記憶領域を有し、当該記憶領域に所定形式のファイルを所定データ量ごとに格納し、順次、レジスタアクセス回路に受け渡すデータバッファ部が形成される。
この態様によると、バウンダリスキャンレジスタのうち、不揮発性メモリの入出力ピンに対応するレジスタ群の値を制御するレジスタアクセス回路を設け、このレジスタアクセス回路を制御するための制御ファイルを、情報処理装置からある程度まとまったデータ単位で伝送し、データバッファ部にバッファリングしてレジスタアクセス回路に引き渡すことにより、情報処理装置とハードウェア機器の間のデータ伝送を効率化でき、コンフィギュレーションデータの更新時間を短縮できる。
バスコントローラは、USB(Universal Serial Bus)に準拠していてもよい。
なお、以上の構成要素を任意に組み合わせたもの、あるいは本発明の表現を、方法、装置などの間で変換したものもまた、本発明の態様として有効である。
本発明のある態様によれば、FPGAを搭載するハードウェア機器におけるコンフィギュレーションデータの更新時間を短縮できる。
従来のFPGAを含むハードウェア機器の構成を示すブロック図である。 実施の形態に係るハードウェア機器の構成を示す回路図である。 図2のハードウェア機器の動作を示す波形図である。 第1の変形例に係るハードウェア機器の一部を示す回路図である。
以下、本発明を好適な実施の形態をもとに図面を参照しながら説明する。各図面に示される同一または同等の構成要素、部材、処理には、同一の符号を付するものとし、適宜重複した説明は省略する。また、実施の形態は、発明を限定するものではなく例示であって、実施の形態に記述されるすべての特徴やその組み合わせは、必ずしも発明の本質的なものであるとは限らない。
図2は、実施の形態に係るハードウェア機器の構成を示す回路図である。ハードウェア機器900は、FPGA902、不揮発性メモリ904、バスコントローラ906、を備える。
ハードウェア機器900は、電子機器、産業機器、計測機器、などであり、その内部にコンフィギュレーションデータに応じてその機能、処理内容がプログラム可能なプログラマブルデバイスであるFPGA902を有する。
ハードウェア機器900は、汎用的な外部バス1006、たとえばUSBなどを介して情報処理装置1008と接続される。コンフィギュレーションデータに関するファイル(以下、制御ファイルF1という)は、一旦、情報処理装置1008の記憶装置に格納され、外部バス1006を介してハードウェア機器900に伝送される。そして制御ファイルF1に応じて不揮発性メモリ904が書き換えられ、FPGA902ひいてはハードウェア機器900全体の機能が変更される。
バスコントローラ906は、情報処理装置1008との間で外部バス1006を介してデータを双方向に送受信可能に構成される。
不揮発性メモリ904は、フラッシュメモリやEEPROMなどであり、コンフィギュレーションデータを格納する。
FPGA902は、内部インタフェース部920、データバッファ部922、レジスタアクセス回路924、を備える。
内部インタフェース部920は、内部バス926を介してバスコントローラ906と接続される。内部インタフェース部920は、バスコントローラ906を介して、情報処理装置1008からのデータを受信する。
FPGA902は、JTAG規格に準拠しており、バウンダリスキャンレジスタR1、インストラクションレジスタR2、TAP(Test Access Port)コントローラ910を有する。
バウンダリスキャンレジスタR1は直列に接続された複数のレジスタを含み、各レジスタは、FPGA902のI/Oピンごとに設けられる。FPGA902のI/Oピンのいくつかは、制御線903を介して不揮発性メモリ904と接続されている。
テストアクセスポート(TAP)は、TDI端子、TCK端子、TMS端子、およびTDO端子を含む。TAPコントローラ910は、外部からTDI端子に入力されたデータを、バウンダリスキャンレジスタR1、インストラクションレジスタR2に送り込む。TAPコントローラ910は、TMS端子に入力された信号に応じて状態遷移するステートマシンであり、TAPコントローラ910によって、シフトレジスタR1、R2の状態が制御される。
レジスタアクセス回路924は、所定形式のファイルにもとづき、少なくともバウンダリスキャンレジスタR1のうち不揮発性メモリ904に接続される複数の入出力ピンに対応するレジスタ群912の値を制御可能に構成される。
内部インタフェース部920、データバッファ部922、レジスタアクセス回路924のうち、少なくともデータバッファ部922は、不揮発性メモリ904に格納されたコンフィギュレーションデータに応じて、回路構成がプログラム可能なプログラマブル領域930に構成される。つまり、データバッファ部922に関する回路情報は、コンフィギュレーションデータに含まれている。
内部インタフェース部920、レジスタアクセス回路924は、コンフィギュレーションデータにもとづいてプログラマブル領域930内に構成されてもよいし、コンフィギュレーションデータに無関係に、FPGA902に標準で提供される回路ブロックであってもよい。
レジスタアクセス回路924が参照する所定形式の制御ファイルF1は、情報処理装置1008からバスコントローラ906へ、所定データ量を単位として伝送される。所定データ量は、複数ワードを含み、データバッファ部922のバッファ領域が許容する範囲でなるべく大きくすることが好ましく、たとえば64Byte、128Byteあるいは256Byteとしてもよい。制御ファイルF1の形式は、特に限定されず、レジスタアクセス回路924が解釈できる形式であればよい。
プログラマブル領域930に形成されるデータバッファ部922は、所定データ量より大きい記憶領域を有する。プログラマブル領域930は、当該記憶領域に制御ファイルF1を所定データ量ごとに格納し、順次、レジスタアクセス回路924に受け渡す。データバッファ部922は、FIFO(First In First Out)回路で構成することができる。
レジスタアクセス回路924は、データバッファ部922から順次受け渡される制御ファイルF1のセグメントにもとづき、レジスタ群912の値を制御することにより、不揮発性メモリ904にコンフィギュレーションデータを書き込む。
以上がハードウェア機器900の構成である。続いてその動作を説明する。
図3は、図2のハードウェア機器900の動作を示す波形図である。上段は、外部バス1006を介した制御ファイルF1の伝送の様子を、下段はレジスタアクセス回路924によるレジスタ群912の値の制御の様子を示す。
情報処理装置1008は、制御ファイルF1を、所定データ量を単位として複数のセグメントF1_1、F1_2、・・・に分割し、セグメントごとに、外部バス1006を介して送信する。上述のように1つのデータパケットは、複数ワード(Nワード)を含んでいる。
セグメントF1_iを受信したデータバッファ部922は、それをバッファリングし、レジスタアクセス回路924に受け渡す。レジスタアクセス回路924は、データバッファ部922にバッファリングされたセグメントF1_iを参照し、それに含まれる複数の制御命令を順に実行し、レジスタ群912の値を制御する。たとえばひとつの制御命令が1ワードで構成される場合、NワードのセグメントにはN個の命令が含まれることになる。図3の下段では、ポジティブエッジのタイミングで、レジスタ群912の値が変化し、不揮発性メモリ904へのデータ書き込み、データ読み出しが制御される。
以上がハードウェア機器900の動作である。
このハードウェア機器900によれば、制御ファイルF1は、複数ワード単位で情報処理装置1008からハードウェア機器900に伝送される。したがって、1ワード単位でのデータ伝送を行う場合に比べて、ハンドシェイクの回数を低減できる。その結果、不揮発性メモリ904内のコンフィギュレーションデータの更新時間を大幅に短くできる。
以上、本発明について、いくつかの実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。以下、こうした変形例について説明する。
(第1の変形例)
図2のレジスタアクセス回路924は、不揮発性メモリ904が接続される入出力ピンに対応するレジスタ群912の値を直接制御するものであったが、本発明はそれには限定されない。
図4は、第1の変形例に係るハードウェア機器900aの一部を示す回路図である。レジスタアクセス回路924は、図1のJTAGコントローラ1000と同等の機能を有する回路ブロックであり、データバッファ部922に格納される制御ファイルF1のセグメントを参照し、そのデータを、バウンダリスキャンレジスタR1に流し込むとともに、インストラクションレジスタR2、TAPコントローラ910の状態を制御する。
この変形例によっても、制御ファイルF1をある程度大きなデータパケットとして送信できるため、コンフィギュレーションデータの更新時間を大幅に短縮できる。
実施の形態にもとづき本発明を説明したが、実施の形態は、本発明の原理、応用を示しているにすぎず、実施の形態には、請求の範囲に規定された本発明の思想を逸脱しない範囲において、多くの変形例や配置の変更が認められる。
900…ハードウェア機器、902…FPGA、903…制御線、…、904…不揮発性メモリ、906…バスコントローラ、R1…バウンダリスキャンレジスタ、R2…インストラクションレジスタ、910…TAPコントローラ、912…レジスタ群、920…内部インタフェース部、922…データバッファ部、924…レジスタアクセス回路、930…プログラマブル領域、1006…外部バス、1008…情報処理装置。

Claims (2)

  1. 情報処理装置との間で外部バスを介してデータを双方向に送受信可能なバスコントローラと、
    コンフィギュレーションデータを格納する不揮発性メモリと、
    (i)内部バスを介して前記バスコントローラと接続され、前記バスコントローラを介して、前記情報処理装置からのデータを受信する内部インタフェース部と、(ii)バウンダリスキャンレジスタと、(iii)所定形式のファイルにもとづき、前記バウンダリスキャンレジスタのうち前記不揮発性メモリに接続される複数の入出力ピンに対応するレジスタ群の値を制御するレジスタアクセス回路と、(iv)前記不揮発性メモリに格納された前記コンフィギュレーションデータに応じて回路構成がプログラム可能なプログラマブル領域と、を有するプログラマブルデバイスと、
    を備え、
    前記所定形式のファイルは、前記情報処理装置から前記バスコントローラへ、複数ワードを含む所定データ量を単位として伝送され、
    前記プログラマブル領域には、前記所定データ量より大きい記憶領域を有し、当該記憶領域に前記所定形式のファイルを前記所定データ量ごとに格納し、順次、前記レジスタアクセス回路に受け渡すデータバッファ部が形成されることを特徴とするハードウェア機器。
  2. 前記バスコントローラは、USB(Universal Serial Bus)に準拠していることを特徴とする請求項1に記載のハードウェア機器。
JP2012127526A 2012-06-04 2012-06-04 ハードウェア機器 Pending JP2013250955A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012127526A JP2013250955A (ja) 2012-06-04 2012-06-04 ハードウェア機器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012127526A JP2013250955A (ja) 2012-06-04 2012-06-04 ハードウェア機器

Publications (1)

Publication Number Publication Date
JP2013250955A true JP2013250955A (ja) 2013-12-12

Family

ID=49849519

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012127526A Pending JP2013250955A (ja) 2012-06-04 2012-06-04 ハードウェア機器

Country Status (1)

Country Link
JP (1) JP2013250955A (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002208886A (ja) * 2001-01-10 2002-07-26 Kenwood Corp 携帯端末装置、記憶データ更新方法及びファームウェア更新方法
JP2010004139A (ja) * 2008-06-18 2010-01-07 Toshiba Tec Corp プログラマブル論理回路
JP2010011255A (ja) * 2008-06-30 2010-01-14 Nec Electronics Corp 無線通信装置及びそのパケット転送方法
JP2010177897A (ja) * 2009-01-28 2010-08-12 Yokogawa Electric Corp Fpgaのコンフィギュレーション回路

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002208886A (ja) * 2001-01-10 2002-07-26 Kenwood Corp 携帯端末装置、記憶データ更新方法及びファームウェア更新方法
JP2010004139A (ja) * 2008-06-18 2010-01-07 Toshiba Tec Corp プログラマブル論理回路
JP2010011255A (ja) * 2008-06-30 2010-01-14 Nec Electronics Corp 無線通信装置及びそのパケット転送方法
JP2010177897A (ja) * 2009-01-28 2010-08-12 Yokogawa Electric Corp Fpgaのコンフィギュレーション回路

Similar Documents

Publication Publication Date Title
JP6557220B2 (ja) プログラム可能なインタフェースベースの検証及びデバッグ
US7610528B2 (en) Configuring flash memory
US7552370B2 (en) Application specific distributed test engine architecture system and method
KR101825244B1 (ko) 전속 병렬 dut 테스트용 솔루션
CN105224345B (zh) 一种可编程逻辑器件远程更新系统及其方法
US7804724B2 (en) Method and apparatus for boundary scan programming of memory devices
US7685380B1 (en) Method for using configuration memory for data storage and read operations
CN104951334B (zh) FPGA双片QSPI flash的程序加载方法
US6243842B1 (en) Method and apparatus for operating on a memory unit via a JTAG port
US9032344B2 (en) Verification module apparatus for debugging software and timing of an embedded processor design that exceeds the capacity of a single FPGA
US10289093B1 (en) Runtime adaptive generator circuit
CN103792487B (zh) 一种测试fpga的装置与方法
CN107451025B (zh) 控制存储芯片的测试方法及系统
US8732526B1 (en) Single-wire data interface for programming, debugging and testing a programmable element
US7313730B1 (en) Configuration logic for embedded software
CN113325300B (zh) 控制器可接入的测试接入端口控件
CN103455419B (zh) 现场可编程门阵列平台及其调试方法
US9817065B2 (en) Test mode circuit and semiconductor device including the same
US9640280B1 (en) Power domain aware insertion methods and designs for testing and repairing memory
US8972806B2 (en) Self-test design for serializer / deserializer testing
US20070245040A1 (en) Data storing
US20110239047A1 (en) Circuit operation verification system and verification environment creation method
WO2015193707A1 (en) Sleek serial interface for a wrapper boundary register (device and method)
JP2013250955A (ja) ハードウェア機器
US11360713B2 (en) Semiconductor device and debug system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140317

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141209

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150407