[go: up one dir, main page]

JP2008192150A - 直接メモリ・アクセスを使用してプログラマブル論理装置を初期化するための方法、集積回路、システム及びコンピュータ・プログラム - Google Patents

直接メモリ・アクセスを使用してプログラマブル論理装置を初期化するための方法、集積回路、システム及びコンピュータ・プログラム Download PDF

Info

Publication number
JP2008192150A
JP2008192150A JP2008019564A JP2008019564A JP2008192150A JP 2008192150 A JP2008192150 A JP 2008192150A JP 2008019564 A JP2008019564 A JP 2008019564A JP 2008019564 A JP2008019564 A JP 2008019564A JP 2008192150 A JP2008192150 A JP 2008192150A
Authority
JP
Japan
Prior art keywords
pld
programming
data
interface
dma
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
JP2008019564A
Other languages
English (en)
Other versions
JP5102644B2 (ja
Inventor
Andrew R Ranck
アンドルー・アール・ランク
Thomas D Needham
トマス・ディー・ニーダム
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2008192150A publication Critical patent/JP2008192150A/ja
Application granted granted Critical
Publication of JP5102644B2 publication Critical patent/JP5102644B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/17758Structural details of configuration resources for speeding up configuration or reconfiguration

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Stored Programmes (AREA)
  • Logic Circuits (AREA)
  • Microcomputers (AREA)

Abstract

【課題】直接メモリアクセス(DMA)を使用してプログラム可能論理装置(PLD)を初期化するための方法、システム及びコンピュータ・プログラムを提供する。
【解決手段】本方法は、PLDをプログラミング・モードへ構成するように前記PLDの制御線を操作するステップと、DMA制御からPLDプログラミング・データをDMA速度で受信するステップと、前記PLDプログラミング・データをデータ・バッファに書き込むステップと、前記データ・バッファから前記PLDプログラミング・データを読み取るステップと、前記PLDプログラミング・データをPLDプログラミング速度で前記PLD上のプログラミング・ポートへ送信するステップとを含む。
【選択図】 図7

Description

本発明は、プログラマブル論理装置を初期化することに係り、さらに詳細に説明すれば、直接メモリ・アクセスを使用してプログラマブル論理装置を初期化するための方法、システム及びコンピュータ・プログラムに係る。
多数のコンピュータ/電子システムは、アプリケーションに特有の機能を実行するように構成されたプログラマブル論理装置(PLD)を使用する。PLDは、プログラマブル論理アレイ(PLA)、プログラマブル・アレイ論理(PAL)、汎用論理アレイ(GAL)、複合プログラマブル論理装置(CPLD)、フィールド・プログラマブル・ゲート・アレイ(FPGA)等の、広範囲のプログラマブル論理装置を含む。多くのPLD技術は、FPGAのように、フィールド(現場)でプログラム可能であり、またかかる装置は、それらの電源が入れられる都度プログラミングを必要とする。各省電力/電力サイクルで再プログラミングを必要とするPLDは、一般に「揮発性」PLDと呼ばれ、電力が供給される間のプログラム化装置の構成について静的ランダムアクセス記憶装置(SRAM)に依存する。また、揮発性PLDは、周期的なリフレッシュを必要とするか、又はソフト・エラーが生じる場合には、再プログラミングを必要とする。ソフト・エラーは、電磁気干渉(EMI)、宇宙線、アルファ粒子、熱中性子、雑音等の環境効果によって引き起こされる。
揮発性PLDを含むシステムは、「再構成可能コンピューティング」と呼ばれる、頻繁な再プログラミングをサポートするように設計されることが多い。再構成可能コンピューティングを使用するシステムでは、PLDをプログラムするのに必要な時間が、システム性能及び総合的な応答性にとって重要な要因となる。かかるシステムでは、システム初期化の部分としてロードしなければならない複数のPLDプログラムが存在し、その結果、システム初期化時間が長くなる。
PLDは、JTAG(Joint TestAction Group)準拠のインタフェースを有するボード・レベル又はコンポーネント・レベルのローダのような、特別のテスト機器を使用することなく、フィールドでプログラムすることができる。一般には、PLD上のJTAGポートへのアクセスは、製造又はテスト施設に制限される。「フィールド・プログラミング」は、特別のテスト機器へのアクセスが制限されているか又は不可能である、顧客施設又は製造業者の外部にある場所の閉じたシステムにおけるプログラミングを含むことがある。また、特別のテスト機器なしで利用可能なプログラミング技法は、製造又はテスト施設でも実施されることがある。
フィールドでPLDをプログラムする1つの方法では、PLDは、シリアル型の電気的消去再書き込み可能な読み取り専用メモリ(EEPROM)又はフラッシュ・メモリ装置から、その構成(configuration)を自動的にロードする。各PLDは、同じシステム・ボード上の個別コンポーネントとして、当該PLDに直接的に結合された専用のシリアルEEPROMを有することがある。このプログラミング方法は、「アクティブ・シリアル」プログラミング又はローディングと呼ばれる。アクティブ・シリアル・プログラミングの利点は、或るPLDプログラムを目標とするPLDと誤って組み合わせる危険を最小化するために、各PLD用の特定のプログラムを分離することができるということにある。しかし、シリアル・プログラミングの速度が遅い場合、特にビット・レートが関連するプログラミング・クロック速度に比べて低い場合(例えば、1クロック・サイクル当たり1ビット)、アクティブ・シリアル・プログラミングは遅くなる。アクティブ・シリアル・プログラミングを利用するPLDは、当該PLDがリセットから解除される場合は常に、そのPLDプログラムのロードを開始し、そのため、システムのリセット設計が複雑になる。すなわち、このPLDプログラムがロードされる場合は常に、他のシステム・コンポーネントがリセットされるように意図されないことがあるからである。アクティブ・シリアル・プログラミングに係る他の多くの問題には、シリアルEEPROM内にあるPLDプログラムのバージョン管理、特にPLDプログラムの正しい/最新バージョンを更新及び確認する際のバージョン管理の問題がある。シリアルEEPROMは、ソケットに挿入されたシリアルEEPROMコンポーネント用のボードの再加工(rework)又は物理的な部品交換を必要とする、フィールド再プログラミングをサポートしないことがある。また、シリアルEEPROM内のエラー又は障害は、これを検出し且つ分離するのが困難であることが多く、その結果、システム障害モードの数が増大する。シリアルEEPROMの使用に係る追加の不利益には、コスト、ボード領域、電力消費、熱、重量及び製造プロセスの陳腐化等の問題がある。
フィールドでPLDをプログラムする他の方法は、プロセッサによってアクティブに制御される外部プログラミングを通して行われる。PLDプログラミングは、データ・バスの書き込みを通して主プロセッサによって行われ、またPLD制御信号は、プロセッサ上で稼働中のソフトウェア・プログラムによって操作されることがある。一般に、プロセッサは、PLDプログラミング・データを読み取り、当該データをPLDに至るデータ・バス上に一度に1バイトずつ書き込むとともに、PLDがプログラミング情報として当該データを受理するように適切な制御信号を操作する。この方法は、柔軟性を提供するが、特にPLDプログラミング・ファイルが大きい場合、PLDのプログラミングは、相当な期間にわたってプロセッサの帯域幅を消費する。PLDをアクティブにプログラムしている間、プロセッサは、使用中状態にあり、他のシステム初期化タスクを実行するのを待機しなければならず、その結果、システム全体を初期化するための遅延時間が拡大することになる。システム内に異なるPLDプログラムを有する複数のPLDがあれば、その問題はさらに悪化する。というのは、プロセッサの資源がPLDのプログラミングに専用されている間は、プロセッサが他のタスクを実行することができないからである。
先端技術の開発に応じてPLDプログラミング・ファイルのサイズが継続的に増大しているので、プロセッサがアクティブなPLDプログラミングを行うことに関する要請は継続的に増加し、その結果、システム初期化時間もより長くなるであろう。さらに、PLDプログラミング・ファイルがより大きくなると、シリアルEEPROMに必要とされる記憶容量に影響を与えることになり、その結果、より大きなコンポーネント、より長いプログラミング時間及びより高いシステム・コストに帰着するであろう。従って、当分野では、プロセッサによる直接的なアクティブ制御、すなわちアクティブ・シリアル・プログラミングに依存することなく、PLDのプログラミングを行うための方法が要請されている。
本発明の第1の側面に従って、直接メモリ・アクセス(DMA)を使用してプログラマブル論理装置(PLD)を初期化するための方法が提供される。この方法は、前記PLDをプログラミング・モードへ構成するように前記PLDの制御線を操作するステップと、DMA制御からPLDプログラミング・データをDMA速度で受信するステップと、前記PLDプログラミング・データをデータ・バッファに書き込むステップと、前記データ・バッファから前記PLDプログラミング・データを読み取るステップと、前記PLDプログラミング・データをPLDプログラミング速度で前記PLD上のプログラミング・ポートへ送信するステップとを含む。
本発明の第2の側面に従って、PLDに結合され、DMAを使用して前記PLDを初期化するための集積回路(IC)が提供される。このICは、入出力(I/O)インタフェース及びPLDインタフェースを含む。前記I/Oインタフェースは、前記IC及び前記PLDの間の信号フォーマットを変換する。前記PLDインタフェースは、構成兼ステータス・レジスタ、データ・バッファ及びペーシング論理を含む。前記構成兼ステータス・レジスタは、前記PLDを前記I/Oインタフェースを介してプログラミング・モードへ構成するように前記PLDの制御線を操作する。前記データ・バッファは、DMA制御からDMA速度で受信されるPLDプログラミング・データを一時的に保持する。前記ペーシング制御は、前記PLDプログラミング・データを前記I/Oインタフェースを介してPLD上のプログラミング・ポートへPLDプログラミング速度で送信する速度を制御する。
本発明の第3の側面に従って、PLDを初期化するための方法が提供される。この方法は、前記PLDをプログラミング・モードへ構成するように前記PLDの制御線を操作するステップと、DMA制御及びプロセッサのうち少なくとも1つからPLDプログラミング・データのソースを選択するステップと、前記選択されたソースから前記PLDプログラミング・データを受信するステップと、前記PLDプログラミング・データを前記PLD上のプログラミング・ポートへ送信するステップとを含む。
本発明の第4の側面に従って、DMAを使用してPLDを初期化するためのシステムが提供される。このシステムは、前記PLD及びICを含む。前記PLDは、アセンブリ上に設けられており、制御線を有するプログラミング・ポートを含む。前記ICは、前記アセンブリ上に設けられており、前記PLDの前記プログラミング・ポートに結合される。前記ICは、前記IC及び前記PLDの間の信号フォーマットを変換するためのI/Oインタフェース及びPLDインタフェースを含む。前記PLDインタフェースは、構成兼ステータス・レジスタ、データ・バッファ及びペーシング論理を含む。前記構成兼ステータス・レジスタは、前記I/Oインタフェースを介して前記PLDの前記プログラミング・ポートの前記制御線を操作する。前記データ・バッファは、DMA制御からDMA速度で受信されるPLDプログラミング・データを一時的に保持する。前記ペーシング制御は、前記PLDプログラミング・データを前記I/Oインタフェースを介して前記PLD上の前記プログラミング・ポートへPLDプログラミング速度で送信する速度を制御する。
本発明の第5の側面に従って、DMAを使用してPLDを初期化するための方法をサポートするコンピュータ・プログラムが提供される。前記方法は、前記PLDをプログラミング・モードへ構成するように前記PLDの制御線を操作するステップと、DMA制御からPLDプログラミング・データをDMA速度で受信するステップと、前記PLDプログラミング・データをPLDプログラミング速度で前記PLD上のプログラミング・ポートへ送信するステップとを含む。
実施形態は、直接メモリ・アクセス(DMA)を使用してプログラマブル論理装置(PLD)を初期化する。すなわち、システム内のDMA制御を少量の追加論理とともに使用することにより、フィールドでプログラム可能なPLDをプログラム(初期化/ロード)する。プロセッサ上で稼働中のソフトウェアは、DMA制御及び関連する論理を通して、PLDプログラミング・シーケンスを開始する。DMA制御及び関連する論理を使用することにより、プロセッサがPLDプログラミング・プロセス中にアクティブ制御を提供することに拘束されないことが保証される。その結果、プロセッサは、PLDがプログラムされている間に、これと並列に他のシステム初期化動作(例えば、組み込みテスト、既知の状態へのメモリの初期設定等)を実行することができる。すなわち、プロセッサは、かかる初期化タスクを順次に実行する必要はない。システム初期化の並列実行は、システム初期化時間を減少させるとともに、応答性を向上させることができる。プロセッサ上で稼働中のソフトウェアは、PLDプログラミング・プロセスの開始時期を制御するだけでなく、PLDプログラミング・データのソースをも決定することができ、そのため、静的プログラミング/ローダ・アプローチ(例えば、直接的なシリアルEEPROMプログラミング)を使用して得られる柔軟性よりも大きな柔軟性を提供する。
以下、図面を参照して説明する。図1は、DMAを使用してPLDを初期化するための、本発明に従ったシステム100を示す。システム100内のアセンブリ102は、カード、ボード、モジュール又はより大きなシステム内のサブシステムとすることができる。アセンブリ102は、バス108を介してLD106に結合される集積回路(IC)104を含む。IC 104は、PLD 106をプログラミング・モードへ構成し、PLD 106をプログラムし、PLD106のステータスをモニタすることができる。図1には、1つのPLD 106だけが示されているが、複数(1〜N)のPLDをIC104に結合することができる。PLD 106は、プログラマブル論理アレイ(PLA)、プログラマブル・アレイ論理(PAL)、汎用論理アレイ(GAL)、複合プログラマブル論理装置(CPLD)、フィールド・プログラマブル・ゲート・アレイ(FPGA)等の、当分野で公知の任意のプログラマブル論理装置とすることができる。PLD106は、揮発性PLDであり、その各パワーオン・サイクルごとにPLDプログラム構成コード(PLDプログラミング・データ)で初期化される。また、PLD106は、リセット時又は更新済みのPLDプログラミング・データが利用可能である場合のような、他の時点で再プログラムすることができる。PLD106は、プログラミング・ポート107を通してプログラムされる。また、プログラミング・ポート107は、データ、制御、ステータス及びクロック信号接続を含む。バス108は、IC104及びPLD 106の間の通信をサポートする並列バスとすることができる。バス108は、バッファ、プルアップ又はプルダウン抵抗、種々のバス・フォーマット及び複数のPLD(1,..,N)106をサポートする1つ以上のマルチプレクサのような、当分野で公知の種々のハードウェア要素を含む。バス108は、アドレス、データ、制御、ステータス、割り込み及びクロック線として編成することができる。代替実施形態では、並列のPLDプログラミングをサポートし且つ障害の発生時に高度の分離機能を提供するために、IC104及び複数のPLD 106の間に複数のバス108が並列に存在する。
IC 104は、ネットワーク/バス112を通して、不揮発性メモリ(NVM)110に接続される。NVM110は、PLD 106用のプログラミング及び構成データを格納する。NVM 110は、EEPROM、フラッシュ・メモリ、ハード・ディスク・ドライブ又は不揮発性ランダム・アクセス・メモリ(NVRAM)のような、オン/オフ・パワーサイクルを通してデータを保存することができる、当分野で公知の任意の不揮発性メモリとすることができる。実施形態では、NVM110は、アセンブリ102から遠隔に設けられる。NVM 110をアセンブリ102の外部に設けると、アセンブリ上の追加コンポーネントとしてPLDに対しローカルのシリアルEEPROMを含むシステムと比較して、アセンブリ102の総コスト、サイズ、電力消費及び重量を減少させることができる。さらに、NVM110を複数のアセンブリ102用の共有資源とすると、システム100内の各アセンブリ102に対する個別の更新を必要とすることなく、共有資源であるNVM110だけを更新すればよい。また、アセンブリ102の外部にNVM 110を設けると、アセンブリ102の部品陳腐化の危険(すなわち、シリアルEEPROMのようなコンポーネントの可用性の減少又は非可用性に起因する製造上/購買上の問題)が減少する。また、アセンブリ102の外部にNVM110を設けると、ボードの再加工及びスクラップも減少させることができる。ネットワーク/バス112は、当分野で公知の任意のネットワーク又はバス・アーキテクチャとすることができる。例えば、ネットワーク/バス112は、PCIバス、PCIエクスプレス・バス、高速シリアル・バス又は所有権を主張できるバス・フォーマットとすることができる。代替実施形態では、ネットワーク/バス112は、イントラネット、エクストラネット又はインターネット若しくはその組み合わせのようなインターネットワークであり、無線又は有線ネットワークとして実装される。
IC 104は、システム・オン・チップ(SOC)であり、プロセッサ114、PLDインタフェース(I/F)論理116、入出力(I/O)インタフェース120、DMA制御124及びI/Oインタフェース126を含む。IC104は、特定用途向け集積回路(ASIC)又はPLDのような、当分野で公知の任意の集積回路とすることができる。プロセッサ114は、埋め込み型マイクロプロセッサ、マイクロコントローラ、状態マシン、デジタル信号プロセッサ(DSP)又は論理装置のような、当分野で公知の命令を実行可能な任意の処理回路とすることができる。さらに、プロセッサ114は、IC104内の複数の処理要素へ分散化又は区分化することができる(例えば、マルチコア処理)。プロセッサ114は、実行可能な命令を格納するための読み取り可能な記憶媒体を含むことができる。プロセッサ114は、バス118を通して、DMA制御124及びPLDI/F 116に結合される。バス118は、レジスタ・アクセスのような非DMAデータのためのパスを提供することにより、DMA制御124及びPLDI/F 116が、DMA転送を妨害せずに、プロセッサ114のレジスタ・マップ内に現われることを可能にする。バス118は、アドレス、データ、制御、ステータス、割り込み及びクロック線を含むことができる。代替実施形態では、バス118はシリアル・バスである。また、IC104内の他の論理又はメモリ(図示せず)を、バス118に結合することができる。
PLD I/F 116は、バス122を通して、I/Oインタフェース120に結合される。バス122は、並列又は直列構成において、アドレス、データ、制御、ステータス、割り込み及びクロック線を含むことができる。I/Oインタフェース120は、バス122及びバス108の間の信号調整及び電気的バッファリングを提供する。例えば、バス122及びバス108は、異なる電圧レベル(例えば1.5ボルト、1.8ボルト、2.5ボルト、3.3ボルト等)で動作することがあるが、その場合、I/Oインタフェース120は、IC 104及びPLD 106の間の信号フォーマット(例えば、シングル・エンド、ディファレンシャル、電圧標準)及び電圧レベルを変換する。
DMA制御124は、バス128を通して、PLD I/F 116に結合される。バス128は、DMA制御124及びPLD I/F 116の間でデータを引き渡すための独立のパスを提供する。実施形態では、バス128は、IC104のメモリ・マップド要素へのアクセスを提供することにより、バス128を制御(マスタ)することができる要素によるアドレス可能バスのアクセスをサポートする。バス128が、主としてデータを引き渡すために使用されるのに対し、バス118は、主として構成及びステータスのために使用される。このようにバス128及び118の機能を分離すると、DMA制御124は、バス118を拘束することなく、最大の帯域幅でデータをPLDI/F 116に引き渡すことができる。従って、一旦プロセッサ114がDMA転送を開始すると、プロセッサ114は、他のタスクを継続的に実行するとともに、DMA制御124とのバス競合の問題なしに、バス118に継続的にアクセスすることができる。このようにPLDプログラミング・データをアクティブにロードするという負担をプロセッサ114から取り除くことにより、プロセッサ114は、システム初期化プロセス中に他のシステム初期化タスクをより早く実行することができる。従って、総合的なシステム初期化時間を短縮することが可能となり、その結果、リセット後のシステム応答性を向上させることができる。プロセッサ114は、オプションのバス129を通して、バス128にアクセスする。オプションのバス129は、プロセッサ114及びDMA制御124の間の代替パスを提供することにより、プロセッサ114がバス128に接続されたメモリ・マップド要素にアクセスすることを可能にする。また、IC104を有する他の論理又はメモリ(図示せず)をDMAバス128に結合すれば、DMA制御124又はプロセッサ114を通して行われる、読み取り又は書き込みのための代替的なソース又は宛先を提供することができる。DMA制御124は、プロセッサ114によって構成可能である。このため、プロセッサ114は、DMAソース・アドレス、DMA宛先アドレス、転送ワード・カウント、トリガ・イベント(例えば、プロセッサ割り込み)のような特徴を制御することができる。プロセッサ114は、バス118を通して、DMA制御124のステータスを構成し且つこれを読み取ることができる。プロセッサ114は、エラー条件が検出されるとき、DMA制御124を停止させる。
DMA制御124は、バス140を通して、I/Oインタフェース126に接続される。バス140は、並列又は直列構成において、アドレス、データ、制御、ステータス、割り込み及びクロック線を含むことができる。I/Oインタフェース126は、バス140及びネットワーク/バス112の間の信号調整及び電気的バッファリングを提供する。I/Oインタフェース126は、PCI、イーサネット(登録商標)、集積回路間(IIC)バス、ユニバーサル・シリアル・バス(USB)、IEEE1394(ファイアワイア)、制御エリア・ネットワーク・バス(CAN)、所有権を主張できるネットワーク又はバス・フォーマット及び当分野で公知の他のネットワーク又はバスの規格のような、ネットワーク/バス112をサポートするためのアプリケーションに特有のドライバ及び論理を含むことができる。一旦プロセッサ114がDMA制御124を構成し且つこれに起動するように指令すれば、DMA制御124は、ネットワーク/バス112、I/Oインタフェース126及びバス140を通して、NVM110からのPLDプログラミング・データを獲得する。その後、DMA制御124は、獲得したPLDプログラミング・データを、DMAバス128を通して、PLDI/F 116に引き渡す。
PLD I/F 116は、構成兼ステータス・レジスタ130、データ・バッファ132及びペーシング論理134を含む。また、PLD I/F 116は、バス・セレクタ136、メモリ・マップ制御138及びマルチプレクサ142を含む。構成兼ステータス・レジスタ130は、レジスタ・マップ又はプロセッサ114のメモリ・マップ内で単一のレジスタとして現われるか、又は複数(1〜Y)のレジスタの間で分配されることがある。構成兼ステータス・レジスタ130は、PLD106の1つ以上の制御及びステータス線にマップされる。また、構成兼ステータス・レジスタ130は、PLD 106のプログラミング・ポート107へのアクセスを提供する。例えば、共通のアドレス復号器を使用することにより、構成兼ステータス・レジスタ130を通して、PLD106にコマンドを書き込んだり、PLD 106のステータスを読み取ることができる。構成兼ステータス・レジスタ130は、PLD106に書き込まれたコマンドをPLD 106のステータスとは別個に読み返すことができるように、個々にアドレス可能な要素を含む。プロセッサ114上で稼働中のソフトウェアは、構成兼ステータス・レジスタ130に対する書き込み及び読み取り動作を行うことにより、プログラミング・サイクルを開始し且つ成功裏のプログラミング完了を検査するように、PLD106の制御線を操作する。PLD 106の制御線及びステータス線の数がIC 104のレジスタ幅よりも大きい場合には、PLD I/F 116内に複数(1〜Y)の構成兼ステータス・レジスタ130が存在することがある。また、複数の構成兼ステータス・レジスタ130は、複数のPLD106の個々のプログラミングをサポートするのに利用することができる。
構成兼ステータス・レジスタ130の内容及び機能は、PLD 106の製造元及び製品ファミリに依存する。例えば、PLD 106がアルテラ社の「Stratix II」デバイスである場合、構成(PLDプログラミング)サイクルを開始するために「nCONFIG」信号が出力される。PLD 106のようなPLDのための完全なパワーオン・シーケンスを操作するために1つ以上の構成兼ステータス・レジスタ130を使用すると、新しいハードウェア又はハードウェア修正の必要なしに、広範囲のPLD装置について動作するためのモジュール性を提供することができる。また、構成兼ステータス・レジスタ130は、ペーシング論理134のタイミングを構成するような、PLDI/F 116に対し内部的な他の構成セッティングを提供することができる。
データ・バッファ132は、DMA制御124から受信されたデータのための一時的な保持位置である。データ・バッファ132にデータが書き込まれるレートは、データ・バッファ132からデータが読み取られるレートと異なることがある。データ・バッファ132は、RAM、FIFO又は1つ以上のレジスタを含むことができる。ペーシング論理134は、I/Oインタフェース120、バス122及び108を通してPLD106に送信されるデータのレート及びフォーマットを制御する。ペーシング論理134は、プロセッサ114上で稼働中のソフトウェアのコマンドを通して構成されるか、又はDMA制御124を通して書き込まれる。代替実施形態では、ペーシング論理134は、ファームウェアの形態で構成される。ペーシング論理134は、データ・バッファ132から読み取られるデータ及びPLD106への出力のためにI/Oインタフェース120に書き込まれるデータの、タイミング、バイト順(例えば、ビッグ・エンディアン対リトル・エンディアン)及びデータ・ワード幅を制御することができる。ペーシング論理134は、データ・バッファ132からのデータを選択するようにマルチプレクサ142を制御する。
幾つかのPLDファミリが、圧縮化又は暗号化データによるプログラミングをサポートするため、1バイト当たり複数のクロック・サイクルを必要とするのに対し、他のPLDファミリは、1クロック・サイクル当たり1バイトのプログラミングをサポートする。ペーシング論理134及びデータ・バッファ132の組み合わせは、広範囲のPLD106のプログラミング要件に対応することができる。実施形態では、データ・バッファ132は、DMA制御124からDMA速度でバースト状のPLDプログラミング・データ(例えば、16バイト)を受信し、そしてペーシング論理134は、PLD106によってサポートされるプログラミング・タイミング(例えば、1クロック・サイクル当たり1バイト)を使用して、PLDプログラミング・データを読み取り且つこれをPLDプログラミング速度でPLD106上のプログラミング・ポート107に送信する。IC 104及びPLD 106は、異なるクロック又は異なる速度(例えば、ステップ・ダウン又はステップ・アップしたクロック速度)で動作することができる。ペーシング論理134は、PLD106に送信されるPLDプログラミング・データのタイミング・シーケンスを確立し且つこれを調整するために、カウンタ、位相ロック・ループ(PLL)又は当分野で公知の他の技術を利用する。ペーシング論理134は、プログラミング・シーケンスをモニタし且つこれを調整するために、プロセッサ114の介在を必要とすることなく、利用可能なプログラミング帯域幅を最大化する。また、PLDI/F 116内のバイト順サポートは、ビッグ・エンディアン及びリトル・エンディアン・アドレシング/順序方式の両方を含む、種々のシステム構成を使用可能にする。さらに、バス幅はPLDプログラミング・ポート及びDMA制御124の間で変わることがあるので、PLDI/F 116は、種々の構成(例えば、32ビットのDMAデータ及び8ビットのPLDプログラミング・ポート)をサポートすることができる。メモリ・マップ制御138は、アドレシング・サポート、バイト順及びバス幅変換を提供する。また、メモリ・マップ制御138は、バス128へのアクセスを調停することができる。
構成兼ステータス・レジスタ130、データ・バッファ132及びペーシング論理134のようなPLDI/F 116の諸要素は、プロセッサ114及びDMA制御124にアクセス可能である。バス・セレクタ136は、構成兼ステータス・レジスタ130にアクセスするように、バス118又は128の何れか一方をイネーブルすることができる。かかる複数のアクセス・パスをサポートすると、システム100の性能を最適化するとともに、バックアップ又は代替パスを通して障害耐性を向上させるように、強化された柔軟性及び構成可能性を提供することができる。バス・セレクタ136、バス128及び118を使用すると、PLD106のプログラミングをサポートする多くのオプションが存在する。例えば、プロセッサ114又はDMA制御124の何れか一方は、PLD106をプログラミング・モードへ構成するために、構成兼ステータス・レジスタ130内に或る値をセットすることができる。PLD 106のPLDプログラミング・ポート107は、データ・バッファ132及びマルチプレクサ142を通して、又は構成兼ステータス・レジスタ130を通してアクセス可能である。従って、プロセッサ114又はDMA制御124は、データ・バッファ132及びマルチプレクサ142を通して、又は構成兼ステータス・レジスタ130を通して、PLDプログラミング・データをPLD106に送信することができる。PLD 106をプログラムするために複数の経路を提供することが望ましいが、実施形態では、IC104内で使用される資源の量を減少させるために、バス・セレクタ136及びオプションのバス129が取り除かれる。データ・バッファ132が単一の要素であるか、又はバス122に結合される場合には、マルチプレクサ142もIC104から取り除くことができる。バス・セレクタ136及びメモリ・マップ制御138は、PLD I/F 116の内部にあるように図示されているが、これらの要素は、PLD I/F 116の外部にあってもよい。
PLD 106がPLDプログラミング(初期設定)モードにある場合、PLD106のPLDプログラミング・ポート107へのデータ書き込みアクセスが利用可能である。PLD 106がPLDプログラミング・モードになければ、PLD 106上のプログラミング・ポート107へのアクセスは、メモリ・マップ制御138を通して阻止する(例えば、メモリ・マップを通して、プロセッサ114及びDMA制御124からアクセス不能又は隔離する)ことができる。このようにすると、プログラムされたPLD106が不注意によって破損されなくなるから、システムの総合的な信頼性及び可用性を改良することができる。PLDプログラミング・モードは、構成兼ステータス・レジスタ130を読み取ることによって、決定することができる。また、構成兼ステータス・レジスタ130は、PLDプログラミング中にエラー条件が生じる状況を指示することができる。
IC 104及びアセンブリ102は、図1に図示されていないが、当分野で公知の他の要素を含む。例えば、アセンブリ102は、1つ以上のクロック、電源、電圧変換器、雑音抑制/フィルタリング要素、減結合コンデンサ、電力及び接地接続、ヒートシンク及び個別部品を含む、他のインタフェース及び回路を含むことができる。IC104は、先入れ先出し(FIFO)バッファ、ランダムアクセス・メモリ(RAM)ブロック、読み取り専用メモリ(ROM)、電圧レール、クロック、PLL、レジスタ、アナログ・ディジタル(A/D)変換器、デジタル/アナログ(DAC)変換器、I/Oピン・ドライバ等の、図1に図示されていない他の論理ブロック及び要素を含むことができる。
要約すると、図1のシステム100は、DMAを使用してPLD 106を初期化する。システム100のアセンブリ102上に設けられたPLD 106は、制御線を有するプログラミング・ポート107を含む。また、システム100のアセンブリ102上に設けられたIC104は、PLD 106のプログラミング・ポート107に結合される。IC 104は、IC 104及びPLD 106の間の信号フォーマットを変換するためのI/Oインタフェース120を含む。また、IC104は、PLDインタフェース116を含み、このPLDインタフェース116は、構成兼ステータス・レジスタ130、データ・バッファ132及びペーシング論理134を含む。構成兼ステータス・レジスタ130は、I/Oインタフェース120を介して、PLD106のプログラミング・ポート107の制御線を操作する。データ・バッファ132は、DMA制御124からDMA速度で受信されるPLDプログラミング・データを一時的に保持する。ペーシング論理134は、I/Oインタフェース120を介して、PLDプログラミング・データをPLD106上のプログラミング・ポート107に送信する速度をPLDプログラミング速度で制御することができる。
次に、図2を参照して、DMAを使用してPLDを初期化するように実装することができるアセンブリ200について説明する。アセンブリ200は、カード、ボード、モジュール又はより大きなシステム内のサブシステムとすることができる。図1のアセンブリ102と同様に、図2のアセンブリ200は、バス108を通してPLD106のプログラミング・ポート107に結合される集積回路(IC)204を含む。IC 204は、PLD 106をプログラミング・モードへ構成し、PLD 106をプログラムし、PLD 106のステータスをモニタすることができる。図2には、1つのPLD106だけが示されているが、複数(1〜N)のPLDをIC 204に結合することができる。IC204は、プロセッサ114、PLDインタフェース(I/F)116、入出力(I/O)インタフェース120、DMA制御224及びNVM210を含む、システム・オン・チップ(SOC)である。IC 204は、ASIC又はPLDのような、当分野で公知の任意の集積回路とすることができる。図1のアセンブリ102の要素と同じ参照番号を付した図2のアセンブリ200の要素は、図1のアセンブリ102に関連して説明したものと実質的に同様の特徴及び利点を提供する。幾つかのICは、NVM210のような内部的な不揮発性メモリを含むことができるので、図2のIC 204は、かかるICの記憶能力を利用することにより、図1のNVM110のような遠隔の記憶要素を設ける必要性を排除している。
図2に示すように、DMA制御224は、バス240を通して、NVM 210内に格納済みのPLDプログラミング・データに直接アクセスする。バス240は、並列又は直列構成において、アドレス、データ、制御、割り込み及びクロック線を含むことができる。DMA制御224は、PLDプログラミング・データに直接アクセスすることができる点を除くと、図1のDMA制御124と同様の態様で動作する。電圧標準図2のDMA制御224は、外部のネットワーク/バス112への接続を取り除くことによって、図1のDMA制御124と比較して、PLDプログラミング・データへのより速いアクセスを提供する。NVM210のサイズがIC 204の内部的要素として制約されることがあるために、PLD 106には、より速いプログラミング速度及びより小さなPLDプログラミング・ファイルをサポートするアセンブリ200の方が好ましいことがある。
次に、図3を参照して、DMAを使用してPLDを初期化するように実装することができるシステム300について説明する。図1のシステム100と同様に、システム300は、バス108を通してPLD106のプログラミング・ポート107に結合される集積回路(IC)304を含む。IC 304は、PLD 106をプログラミング・モードへ構成し、PLD 106をプログラムし、PLD 106のステータスをモニタすることができる。図3には、1つのPLD106だけが示されているが、複数(1〜N)のPLDをIC 304に結合することができる。IC304は、ASIC又はPLDのような、当分野で公知の任意の集積回路とすることができる。図3のIC 304は、図1のIC 104と比較して、減少された要素及び機能性を含む。図1のシステム100の要素と同じ参照番号を付した図3のシステム300の要素は、図1のシステム100に関連して説明したものと実質的に同様の特徴及び利点を提供する。IC304は、I/Oインタフェース120、326及び336に結合されるPLDインタフェース116を含む。また、システム300は、バス338を通してI/Oインタフェース336に結合されるプロセッサ314を含む。さらに、システム300は、バス340を通してI/Oインタフェース326に結合されるDMA制御324を含む。DMA制御324は、バス312を通して、NVM110に結合される。バス312、338及び340は、図1の同様のバスに関連して説明したように、当分野で公知の任意のバス・フォーマットを利用する。バス312、338及び340は、並列又は直列構成において、アドレス、データ、制御、ステータス、割り込み及びクロック線を含むことができる。バス340は、バス調停を通して、DMA及び非DMAデータの両方をサポートする。代替実施形態では、バス340は、DMA及び非DMAデータのための独立パスを含む。同様に、バス338は、IC304へのメモリ・マップド及びレジスタ・マップド・アクセスのための並列構造を含むことができ、或いはこれに代えて、バス338上でバス調停方式を使用することができる。
プロセッサ314は、マイクロプロセッサ、マイクロコントローラ、状態マシン、デジタル信号プロセッサ(DSP)又は論理装置のような、当分野で公知の命令を実行可能な任意の処理回路とすることができる。プロセッサ314は、実行可能な命令を格納するための読み取り可能な記憶媒体を含むことができる。プロセッサ314は、IC304と同じアセンブリ上又はサブシステム上に設けられる。代替実施形態では、プロセッサ314は、IC 304に関して遠隔のアセンブリ上又はサブシステム上に設けられる。同様に、DMA制御324は、これをIC 304と同じアセンブリ上又はサブシステム上に設けるか、又はIC 304に関して遠隔のアセンブリ上又はサブシステム上に設けることができる。NVM110は、IC 304に関して遠隔(例えば、別個のアセンブリ上又はサブシステム上)に設けられる。
IC 304内のバス318は、PLDI/F 116、I/Oインタフェース326及びI/Oインタフェース336の間の非DMAデータのためのパスを提供する。バス318は、並列又は直列構成において、アドレス、データ、制御、ステータス、割り込み及びクロック線を含むことができる。バス318は、I/Oインタフェース336を通して、PLDI/F 116へのプロセッサ314のための読み取り/書き込みアクセスを提供するとともに、I/Oインタフェース326及びバス340をさらに通して、DMA制御324へのプロセッサ314のための読み取り/書き込みアクセスを提供する。DMA制御324及びPLDI/F 116は、プロセッサ314のレジスタ・マップ又はメモリ・マップ内に直接現われることができる。IC304内のバス328は、PLD I/F 116及びI/Oインタフェース326の間のメモリ・マップド・アクセス用のパスを提供する。バス328は、並列又は直列構成において、アドレス、データ、制御、ステータス、割り込み及びクロック線を含むことができる。プロセッサ314は、オプションのバス329を通して、バス328にアクセスする。オプションのバス329は、プロセッサ314及びDMA制御324の間の代替パスを提供することにより、プロセッサ314がバス328に接続されたメモリ・マップド要素にアクセスすることを可能にする。バス328が、主としてデータを引き渡すために使用されるのに対し、バス318は、主として構成及びステータスのために使用される。I/Oインタフェース326及び336は、図1のI/Oインタフェース120に関連して説明したものと同様のバス間変換の機能を実行する。I/Oインタフェース326は、内部バス318、328及びバス340の間のバス調停を行うことができる。同様に、I/Oインタフェース336は、内部バス318、329及びバス338の間のバス調停を行うことができる。
図3のIC 304が好ましいのは、プロセッサ314及びDMA制御324のような既存のプロセッサ及びDMA制御を有するシステムにおいて、DMAを使用してPLDを初期化するために安価なIC実装が望まれる場合である。図3のIC304は、図1のIC 104及び図2のIC 204と比較すると、装置がより簡単になっているためにコストをより低くすることができる。
次に、図4を参照して、DMAを使用してPLDを初期化するように実装することができるシステム400について説明する。図1のシステム100と同様に、システム400は、アセンブリ402を含み、このアセンブリ402は、バス108を通してPLD106のプログラミング・ポート107に結合される集積回路(IC)404を含む。IC 404は、PLD 106をプログラミング・モードへ構成し、PLD 106をプログラムし、PLD 106のステータスをモニタすることができる。アセンブリ402は、カード、ボード、モジュール又はより大きなシステム内のサブシステムとすることができる。図4には、1つのPLD106だけが示されているが、複数(1〜N)のPLDをIC 404に結合することができる。IC404は、ASIC又はPLDのような、当分野で公知の任意の集積回路とすることができる。さらに、アセンブリ402は、(図3のシステム300と同様に)I/Oインタフェース336及びバス338を通してIC404に結合されるプロセッサ314を含む。図1〜図3のシステム100〜300の要素と同じ参照番号を付した図4のシステム400の要素は、図1〜図3のシステム100〜300に関連して説明したものと実質的に同様の特徴及び利点を提供する。IC404は、バス418を通してI/Oインタフェース336及びDMA制御124に結合されるPLDインタフェース116を含む。図1のIC104と同様に、IC 404は、バス122を通してPLD I/F 116に結合されるI/Oインタフェース120と、バス140を通してDMA制御124に結合されるI/Oインタフェース126と、PLDI/F 116をDMA制御124に対し結合するバス428と、プロセッサ314がバス428にアクセスすることができるように、I/Oインタフェース336をバス428に対し結合するオプションのバス429とを含む。さらに、システム400は、アセンブリ402の外部に設けられ、ネットワーク/バス112を通してIC404のI/Oインタフェース126に結合されるNVM 110を含む。
IC 404のバス418は、PLDI/F 116、DMA制御124及びI/Oインタフェース336の間のレジスタ・アクセス用のパスを提供する。バス418は、並列又は直列構成において、アドレス、データ、制御、ステータス、割り込み及びクロック線を含むことができる。バス418は、I/Oインタフェース336を通して、PLDI/F 116及びDMA制御124へのプロセッサ314のための読み取り/書き込みアクセスを提供する。DMA制御124及びPLDI/F 116は、プロセッサ314のメモリ又はレジスタ・マップ内に直接現われることができる。図4のバス428は、図1のバス128と実質的に同様の特徴及び利点を提供する。バス428が、主としてデータを引き渡すために使用されるのに対し、バス418は、主として構成及びステータスのために使用される。
システム400が好ましいのは、図4のIC 404のようなICが、埋め込み型プロセッサを含んでおらず、しかもプロセッサが、アセンブリ402のプロセッサ314のような共通のアセンブリ上のICに接続される場合である。プロセッサ314は、アセンブリ402上の複数のIC404をサポートする。
次に、図5を参照して、DMAを使用してPLDを初期化するように実装することができるシステム500について説明する。図3のシステム300と同様に、システム500は、バス108を通してPLD106のプログラミング・ポート107に結合される集積回路(IC)504を含む。IC 504は、PLD 106をプログラミング・モードへ構成し、PLD 106をプログラムし、PLD 106のステータスをモニタすることができる。さらに、システム500は、I/Oインタフェース336及びバス338を通してIC504に結合されるプロセッサ314を含む。プロセッサ314は、IC 504に対するデータの読み取り及び書き込みのようなタスクを実行することができる。図5には、1つのPLD106だけが示されているが、複数(1〜N)のPLDをIC 504に結合することができる。IC504は、ASIC又はPLDのような、当分野で公知の任意の集積回路とすることができる。IC 504は、図2に示すIC 204のプロセッサ114がプロセッサ314としてIC 504に外部に移動されている点を除けば、図2のIC 204と同様のものである。図1〜図4のシステム又はアセンブリ100〜400の要素と同じ参照番号を付した図5のシステム500の要素は、図1〜図4のシステム又はアセンブリ100〜400に関連して説明したものと実質的に同様の特徴及び利点を提供する。システム500が好ましいのは、図5のIC504のようなICが、NVM 210のようなNVMを含むが、プロセッサ314のようなプロセッサを含まない場合である。
次に、図6を参照して、DMAを使用してPLDを初期化するように実装することができるシステム600について説明する。システム600に含まれる複数(1〜M)のアセンブリは、バス338及び340を通して、プロセッサ314及びDMA制御324にそれぞれ結合される。複数(1〜M)のアセンブリは、カード、ボード、モジュール、サブシステム又はそれらの任意の組み合わせとすることができる。図6には、代表的な2つのアセンブリ602及び604(アセンブリ1及びM)だけが示されており、可変数の中間アセンブリ(アセンブリ2〜M−1)は示されていない。各アセンブリ602−604は、図3のシステム300に関連して説明したように、バス108を通してPLD106に結合される集積回路(IC)304を含む。各アセンブリ602−604は、異なる数(1〜N)のPLD 106を含むことができる。
DMA制御324は、バス312を通してNVM110に結合され、またバス606を通してプロセッサ314に結合される。図3のシステム300の要素と同じ参照番号を付したシステム600の要素は、図3のシステム300に関連して説明したものと実質的に同様の特徴及び利点を提供する。バス606は、並列又は直列構成において、アドレス、データ、制御、ステータス、割り込み及びクロック線を含むことができる。DMA制御324及びプロセッサ314は、マイクロコントローラ、DSP又はPLDのような共通の装置内に設けられる。システム600が好ましいのは、複数のPLD106が複数のアセンブリにわたって分散され、しかも各アセンブリがプロセッサ314のような独立のプロセッサを含まない場合である。
次に、図7を参照して、DMAを使用してPLDを初期化するためのプロセス700について説明する。プロセス700は、DMA制御を使用してPLDの初期化を制御することにより、プロセッサのスループットを向上させるとともに、ボード領域を減少させることができる。プロセス700は、図1〜図6のシステム及びアセンブリ100〜600に適用することができるが、説明の便宜上、図1のシステム100に関連してプロセス700を説明する。ブロック702では、PLD106をプログラミング・モードへ構成するように、PLD 106の制御線が操作される。プロセッサ114は、バス118を通してPLDI/F 116の構成兼ステータス・レジスタ130にコマンドを書き込むことにより、バス108のPLD制御線の操作を開始する。また、プロセッサ114は、タイミング、バイト順及びデータ・ワード幅のような特徴を含む、PLD106との互換性のためにPLD I/F 116を構成することができる。代替実施形態では、DMA制御124は、バス108及びバス・セレクタ136を通して、PLDI/F 116の構成兼ステータス・レジスタ130へコマンドを書き込むことにより、バス108のPLD制御線の操作を開始する。
ブロック704では、NVM 110からPLDプログラミング・データを読み取るように、DMA制御124が構成される。プロセッサ114は、バス118を通して、DMA制御124の構成を指令する。プロセッサ114は、DMA制御124内のソース・アドレス、宛先アドレス、ワード・カウント及び他の構成セッティングを選択することができる。
ブロック706では、プロセッサ114は、DMA制御124を起動することにより、NVM110からPLDプログラミング・データを読み取る。DMA制御124は、プロセッサ114によってプログラムされたDMA制御124の構成に基づいて、NVM110内に格納済みのPLDプログラミング・データに対する要求をネットワーク/バス112上に置く。NVM 110からDMA制御124において受信されたPLDプログラミング・データは、バス128を通してPLD I/F 116に引き渡される。
ブロック708では、PLDプログラミング・データが、DMA制御からDMA速度で受信される。PLDI/F 116によって、種々のDMAデータ・バス幅、フォーマット及び速度がサポートされる。ブロック710では、PLDプログラミング・データが、データ・バッファ132に書き込まれる。データ・バッファ132への書き込みは、DMA制御124又はメモリ・マップ制御138によって制御することができる。データ・バッファ132は、FIFO、RAM又はレジスタ・ベースのバッファである。データ・バッファ132のサイズは、PLDプログラミング・データ・ファイルの全体を保持するか、又はDMA速度及びPLDプログラミング速度の間の速度差を吸収可能なサイズを有するデータのブロックを保持するのに十分な大きさとすることができる。代替実施形態では、PLDプログラミング・データは、構成兼ステータス・レジスタ130に書き込まれる。構成兼ステータス・レジスタ130は、PLDプログラミング・データをPLDプログラミング速度でPLD106上のプログラミング・ポート107に送信するための代替パスを提供することができる。PLDプログラミング・データは、DMA制御124又はプロセッサ114によって、データ・バッファ132又は構成兼ステータス・レジスタ130に書き込むことができる。
ブロック712では、データ・バッファ132からPLDプログラミング・データが読み取られる。実施形態では、ビッグ・エンディアン又はリトル・エンディアン・フォーマットの何れかをサポートするために、データ・バッファ132から読み取られるデータのバイト順を変更することができる。メモリ・マップ制御138は、データ・バッファ132内にある値のバイト順及びアドレシングを制御することができる。データ・バッファ132からデータを読み取るプロセスは、データ・バッファ132内のPLDプログラミング・データのシーケンスを維持するために、データ・バッファ132内の内部ポインタを調整することができる。データ・バッファ132からPLDプログラミング・データが読み取られる場合、データ・バッファ132に書き込まれるPLDプログラミング・データのデータ・ワード幅が修正される。かかるデータ・ワード幅の修正を行うことにより、異なるバス幅(例えば、8ビット、16ビット、24ビット、32ビット、64ビット等)に関連して種々のDMA制御124及びPLDプログラミング・ポート107をサポートすることができる。ペーシング論理134は、データ・バッファ132内の異なる位置にアクセスするために、マルチプレクサ142への入力を切り替える。ペーシング論理134は、PLDプログラミング速度で読み取るためにデータ・バッファ132の位置を選択することができる。実施形態では、DMA速度は、PLDプログラミング速度とは異なる。代替実施形態では、DMA速度は、PLDプログラミング速度と同じである。DMA速度がPLDプログラミング速度と同じか又はPLDプログラミング速度より遅い場合、PLDプログラミング・データは、蓄積なしにデータ・バッファ132を通過するか、又は構成兼ステータス・レジスタ130を通過することができる。
ブロック714では、PLDプログラミング・データが、PLDプログラミング速度でPLD106上のプログラミング・ポート107に送信される。PLD 106のプログラミング・ポート107は、バス108を通してIC104に接続される。伝送速度は、ペーシング論理134によって管理される。
ブロック716では、PLD 106がPLDプログラミング・データで成功裏にプログラミングされたことを確認するために、PLD106のステータスが読み取られる。PLD 106のステータスは、構成兼ステータス・レジスタ130を通して、プロセッサ114によって読み取ることができる。実施形態では、PLD106のステータスは、エラー又はPLDプログラミングの完了を検査するために周期的に読み取られる。代替実施形態では、プロセッサ114は、1つ以上の割り込み信号を通して、エラー又はPLDプログラミングの完了を通知される。
ブロック718では、PLD 106がプログラミング・モードにない場合、PLD106上のプログラミング・ポート107へのアクセスが阻止される。PLD 106がプログラミング・モードにない場合、プロセッサ114及びDMA制御124の一方又は両方に対してアクセスを拒否することができる。PLD106上のプログラミング・ポート107へのアクセスは、メモリ・マップ制御138によって阻止することができる。メモリ・マップ制御138は、構成兼ステータス・レジスタ130を通して、PLDプログラミング・モードのステータスを決定することができる。実施形態では、メモリ・マップ制御138は、ペーシング論理134を通して、構成兼ステータス・レジスタ130にアクセスする。代替実施形態では、メモリ・マップ制御138は、バス・セレクタ136を通して、構成兼ステータス・レジスタ130にアクセスする。
実施形態では、ブロック708〜714が、パイプライン式又はストリーム式に並列に実行されるのに対し、ブロック702〜706及び716〜718は、順次に実行される。パイプライン式又はストリーム式のアプローチを使用すると、利用可能な帯域幅をさらに大きくすることができ、その結果、PLD106をPLDプログラミング・データでプログラムするのに必要な総時間をさらに減少させることができる。プロセス700中の任意の時点で、プロセッサ114は、エラー、システム資源に対するより高い優先順位の要求又はユーザ要求のような種々の理由で、PLDプログラミング・シーケンスを休止又は終了することができる。エラー条件の発生時には、プロセッサ114は、プロセス700を繰り返すように試みることができる。代替的に、プロセッサ114は、訂正処置を取ることができるように、外部資源に対しメッセージを送信するか、信号をアサートするか、又はエラー条件を通知することができる。
実施形態の技術的な効果及び利点は、DMA制御を使用してPLDを初期化することを含む。DMA制御は、NVMからPLDI/FへのPLDプログラミング・データをストリーム化し、PLDがプログラムされている間に、他のタスクを実行するようにシステム・プロセッサを解放する。実施形態では、PLDが設けられているアセンブリ又はサブシステムの外部に、NVMを設けることができる。NVMを遠隔の位置に移動させると、アセンブリ又はサブシステムのコスト、重量、電力消費、ボード領域、熱を減少させることができるばかりか、他の利点も得ることができる。利用可能な又は組み込みシステム資源を使用すると、PLDをプログラムするためにシリアルEEPROM装置を使用するという代表的な従来技術に関連するボード領域の不利益や追加コストを排除することができる。DMA制御及び関連する論理を使用することを通して、PLDプログラミング・データを、並行プログラミング・パスを介して、速やかにロードすることができる。さらに、実施形態は、DMA制御及びPLDの間のタイミング、バイト順及びデータ・ワード幅を適合させる際の柔軟性を提供する。PLDプログラミング・プロセスを開始するプロセッサに対し、PLD制御及びステータス情報を利用可能にすると、プロセッサは、転送の成功、エラー条件及びPLDプログラミング・シーケンスの開始又は停止についてモニタすることができる。さらに、DMA制御に障害が生じる場合には、PLDI/F内の構成兼ステータス・レジスタは、PLDプログラミング・データをPLDにロードするための代替パスを提供することができる。
前述のように、本発明の実施形態は、コンピュータで実装されるプロセス及びこれらのプロセスを実行するための装置として具体化することができる。また、本発明の実施形態は、フレキシブル・ディスク、CD−ROM、ハード・ドライブ等のコンピュータ可読記憶媒体に記録されたコンピュータ・プログラムとして、或いは電気的なケーブル、光ファイバ、電磁放射等の伝送媒体を介して伝送されるコンピュータ・プログラムとして、具体化することができる。かかるコンピュータ・プログラムがコンピュータにロードされ且つ実行される場合、このコンピュータは、本発明を実施するための装置になる。汎用のマイクロプロセッサ上で実装される場合、かかるコンピュータ・プログラムのセグメントは、特定の論理回路を作成するように当該マイクロプロセッサを構成する。
本発明は代表的実施形態を参照して説明されたが、本発明の範囲から逸脱することなく、種々の変更を行ったり、実施形態の特定の要素の代わりにその均等手段を使用することができる。また、本発明の本質的な範囲から逸脱することなく、特定の状況又は材料に適合するように本発明の概念に変更を施すことができる。従って、本発明は、本明細書において最良の実施形態として記載された特定の実施形態に限定されるものではなく、各請求項の範囲に属する全ての実施形態を包含するものである。
直接メモリ・アクセス(DMA)を使用してプログラマブル論理装置(PLD)を初期化するための、本発明に従ったシステムのブロック図である。 DMAを使用してPLDを初期化するための、本発明に従ったアセンブリのブロック図である。 DMAを使用してPLDを初期化するための、本発明に従ったシステムのブロック図である。 DMAを使用してPLDを初期化するための、本発明に従ったシステムのブロック図である。 DMAを使用してPLDを初期化するための、本発明に従ったシステムのブロック図である。 DMAを使用してPLDを初期化するための、本発明に従った複数のアセンブリを備えたシステムのブロック図である。 DMAを使用してPLDを初期化するための、本発明に従ったプロセスを示すフローチャートである。

Claims (30)

  1. 直接メモリ・アクセス(DMA)を使用してプログラマブル論理装置(PLD)を初期化するための方法であって、
    前記PLDをプログラミング・モードへ構成するように前記PLDの制御線を操作するステップと、
    DMA制御からPLDプログラミング・データをDMA速度で受信するステップと、
    前記PLDプログラミング・データをデータ・バッファに書き込むステップと、
    前記データ・バッファから前記PLDプログラミング・データを読み取るステップと、
    前記PLDプログラミング・データをPLDプログラミング速度で前記PLD上のプログラミング・ポートへ送信するステップとを含む、方法。
  2. 不揮発性メモリ装置(NVM)から前記PLDプログラミング・データを読み取るように前記DMA制御を構成するステップと、
    プロセッサを使用して前記DMA制御を起動することにより、前記NVMから前記PLDプログラミング・データを読み取るステップとをさらに含む、請求項1記載の方法。
  3. プロセッサ及び前記DMA制御のうち少なくとも1つを使用して前記PLDの前記制御線の操作を開始することにより、前記PLDを構成兼ステータス・レジスタを介して前記プログラミング・モードへ構成するステップとをさらに含む、請求項1記載の方法。
  4. 前記PLDプログラミング・データを構成兼ステータス・レジスタを介して前記PLD上のプログラミング・ポートへ送信するための代替パスを提供するステップと、
    前記PLDプログラミング・データを前記構成兼ステータス・レジスタに書き込むステップとをさらに含む、請求項1記載の方法。
  5. 前記データ・バッファから前記PLDプログラミング・データが読み取られる場合、前記データ・バッファに書き込まれる前記PLDプログラミング・データのデータ・ワード幅が修正される、請求項1記載の方法。
  6. 前記データ・バッファから前記PLDプログラミング・データが読み取られる場合、前記データ・バッファに書き込まれる前記PLDプログラミング・データのバイト順が修正される、請求項1記載の方法。
  7. 前記PLDが前記PLDプログラミング・データで成功裏にプログラミングされたことを確認するために、前記PLDのステータスを読み取るステップをさらに含む、請求項1記載の方法。
  8. 前記PLDが前記プログラミング・モードにない場合、前記PLD上の前記プログラミング・ポートへのアクセスを阻止するステップをさらに含む、請求項1記載の方法。
  9. プログラマブル論理装置(PLD)に結合され、直接メモリ・アクセス(DMA)を使用して前記PLDを初期化するための集積回路(IC)であって、
    前記IC及び前記PLDの間の信号フォーマットを変換するI/Oインタフェースと、
    PLDインタフェースとを備え、
    前記PLDインタフェースが、
    前記PLDを前記I/Oインタフェースを介してプログラミング・モードへ構成するように、前記PLDの制御線を操作する構成兼ステータス・レジスタと、
    DMA制御からDMA速度で受信されるPLDプログラミング・データを一時的に保持するためのデータ・バッファと、
    前記PLDプログラミング・データを前記I/Oインタフェースを介して前記PLD上のプログラミング・ポートへPLDプログラミング速度で送信する速度を制御するペーシング論理とを含む、IC。
  10. 前記DMA制御が、前記PLDインタフェースに結合される、請求項9記載のIC。
  11. 前記DMA制御が、前記PLDプログラミング・データを格納する不揮発性メモリ装置(NVM)に結合される、請求項10記載のIC。
  12. 前記NVMをさらに備える、請求項11記載のIC。
  13. 前記PLDインタフェース及び前記DMA制御に結合されるプロセッサをさらに備え、
    前記プロセッサが、
    前記PLDを前記I/Oインタフェースを介して前記プログラミング・モードへ構成するように前記PLDの制御線を操作するために利用される値を、前記PLDインタフェースの前記構成兼ステータス・レジスタに書き込み、
    前記PLDプログラミング・データを前記NVMから読み取るように前記DMA制御を構成し、
    前記DMA制御を起動することにより、前記NVMからの前記PLDプログラミング・データの読み取りを開始させ、
    前記PLDが前記PLDプログラミング・データで成功裏にプログラミングされたことを確認するために、前記PLDインタフェースの前記構成兼ステータス・レジスタを読み取ることを実行する、請求項11記載のIC。
  14. 前記データ・バッファから前記PLDプログラミング・データが読み取られる場合、前記PLDインタフェースが、前記データ・バッファに書き込まれる前記PLDプログラミング・データのデータ・ワード幅及びバイト順のうち少なくとも1つを修正する、請求項9記載のIC。
  15. 前記PLDが前記プログラミング・モードにない場合、前記PLD上の前記プログラミング・ポートへのアクセスが阻止される、請求項9記載のIC。
  16. 前記PLDインタフェースが、プロセッサ及び前記DMA制御のために前記構成兼ステータス・レジスタへのアクセスを提供するバス・セレクタをさらに含み、
    前記構成兼ステータス・レジスタが、前記PLDプログラミング・データを前記I/Oインタフェースを介して前記PLD上の前記プログラミング・ポートへ送信する、請求項9記載のIC。
  17. プログラマブル論理装置(PLD)を初期化するための方法であって、
    前記PLDをプログラミング・モードへ構成するように前記PLDの制御線を操作するステップと、
    DMA制御及びプロセッサのうち少なくとも1つからPLDプログラミング・データのソースを選択するステップと、
    前記選択されたソースから前記PLDプログラミング・データを受信するステップと、
    前記PLDプログラミング・データを前記PLD上のプログラミング・ポートへ送信するステップとを含む、方法。
  18. 前記操作するステップが、前記DMA制御及び前記プロセッサのうち少なくとも1つによって指令される、請求項17記載の方法。
  19. 前記選択されたソースからの前記PLDプログラミング・データが、データ・バッファ及び構成兼ステータス・レジスタのうち少なくとも1つによって受信される、請求項17記載の方法。
  20. 不揮発性メモリ装置(NVM)から前記PLDプログラミング・データを読み取るように前記DMA制御を構成するステップと、
    前記プロセッサを使用して前記DMA制御を起動することにより、前記NVMから前記PLDプログラミング・データを読み取るステップとをさらに含む、請求項17記載の方法。
  21. 前記PLDプログラミング・データをデータ・バッファに書き込むステップと、
    前記データ・バッファから前記PLDプログラミング・データを読み取るステップとをさらに含む、請求項20記載の方法。
  22. 前記PLDが前記プログラミング・モードにない場合、前記PLD上の前記プログラミング・ポートへのアクセスを阻止するステップをさらに含む、請求項17記載の方法。
  23. 直接メモリ・アクセス(DMA)を使用してプログラマブル論理装置(PLD)を初期化するためのシステムであって、
    前記PLDが、アセンブリ上に設けられ且つ制御線を有するプログラミング・ポートを含み、
    前記アセンブリ上に設けられ且つ前記PLDの前記プログラミング・ポートに結合される集積回路(IC)を備え、
    前記ICが、
    前記IC及び前記PLDの間の信号フォーマットを変換する入出力(I/O)インタフェースと、
    PLDインタフェースとを含み、
    前記PLDインタフェースが、
    前記I/Oインタフェースを介して前記PLDの前記プログラミング・ポートの前記制御線を操作する構成兼ステータス・レジスタと、
    DMA制御からDMA速度で受信されるPLDプログラミング・データを一時的に保持するためのデータ・バッファと、
    前記PLDプログラミング・データを前記I/Oインタフェースを介して前記PLD上の前記プログラミング・ポートへ送信する速度を制御するペーシング論理とを含む、システム。
  24. 前記DMA制御が、前記PLDインタフェースに結合される、請求項23記載のシステム。
  25. 前記DMA制御が、前記PLDプログラミング・データを格納する不揮発性メモリ装置に結合される、請求項24記載のシステム。
  26. 前記NVMが、前記アセンブリの外部に設けられる、請求項25記載のシステム。
  27. 前記PLDインタフェース及び前記DMA制御に結合されるプロセッサをさらに備え、
    前記プロセッサが、
    前記PLDを前記I/Oインタフェースを介してプログラミング・モードへ構成するように前記PLDの制御線を操作するために利用される値を、前記PLDインタフェースの前記構成兼ステータス・レジスタに書き込み、
    前記PLDプログラミング・データを前記NVMから読み取るように前記DMA制御を構成し、
    前記DMA制御を起動することにより、前記NVMからの前記PLDプログラミング・データの読み取りを開始させ、
    前記PLDが前記PLDプログラミング・データで成功裏にプログラミングされたことを確認するために、前記PLDインタフェースの前記構成兼ステータス・レジスタを読み取ることを実行する、請求項25記載のシステム。
  28. 前記データ・バッファから前記PLDプログラミング・データが読み取られる場合、前記PLDインタフェースが、前記データ・バッファに書き込まれる前記PLDプログラミング・データのデータ・ワード幅及びバイト順のうち少なくとも1つを修正し、
    前記PLDがプログラミング・モードにない場合、前記PLD上のプログラミング・ポートへのアクセスが阻止される、請求項23記載のシステム。
  29. 複数のアセンブリをさらに備え、
    前記複数のアセンブリが、当該複数のアセンブリの各々の上にある各ICの前記PLDインタフェースを通して、前記DMA制御に結合され、
    前記DMA制御が前記複数のアセンブリの外部に設けられる、請求項24記載のシステム。
  30. 請求項1ないし請求項8及び請求項17ないし請求項22の何れか1項に記載の方法の各ステップをコンピュータに実行させるためのコンピュータ・プログラム。
JP2008019564A 2007-02-01 2008-01-30 直接メモリ・アクセスを使用してプログラマブル論理装置を初期化するための方法、集積回路、システム及びコンピュータ・プログラム Expired - Fee Related JP5102644B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/670,017 US8407658B2 (en) 2007-02-01 2007-02-01 Methods, systems, and computer program products for using direct memory access to initialize a programmable logic device
US11/670017 2007-02-01

Publications (2)

Publication Number Publication Date
JP2008192150A true JP2008192150A (ja) 2008-08-21
JP5102644B2 JP5102644B2 (ja) 2012-12-19

Family

ID=39675618

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008019564A Expired - Fee Related JP5102644B2 (ja) 2007-02-01 2008-01-30 直接メモリ・アクセスを使用してプログラマブル論理装置を初期化するための方法、集積回路、システム及びコンピュータ・プログラム

Country Status (3)

Country Link
US (3) US8407658B2 (ja)
JP (1) JP5102644B2 (ja)
CN (1) CN101236504B (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013025437A (ja) * 2011-07-19 2013-02-04 Hitachi Cable Ltd Fpgaシステム及び電子機器
JP2015142359A (ja) * 2014-01-30 2015-08-03 コニカミノルタ株式会社 プログラム可能な論理回路デバイスを備えた電子装置
JP2017111530A (ja) * 2015-12-15 2017-06-22 住友電気工業株式会社 光送受信器及びマイクロコントローラ
US12305624B2 (en) 2021-04-02 2025-05-20 Ice Thermal Harvesting, Llc Modular mobile heat generation unit for generation of geothermal power in organic rankine cycle operations
US12312981B2 (en) 2021-04-02 2025-05-27 Ice Thermal Harvesting, Llc Systems and methods utilizing gas temperature as a power source
US12385474B2 (en) 2021-04-02 2025-08-12 Ice Thermal Harvesting, Llc Systems for generating geothermal power in an organic Rankine cycle operation during hydrocarbon production based on working fluid temperature

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6724220B1 (en) 2000-10-26 2004-04-20 Cyress Semiconductor Corporation Programmable microcontroller architecture (mixed analog/digital)
US8176296B2 (en) 2000-10-26 2012-05-08 Cypress Semiconductor Corporation Programmable microcontroller architecture
US8149048B1 (en) 2000-10-26 2012-04-03 Cypress Semiconductor Corporation Apparatus and method for programmable power management in a programmable analog circuit block
US7765095B1 (en) 2000-10-26 2010-07-27 Cypress Semiconductor Corporation Conditional branching in an in-circuit emulation system
US8160864B1 (en) 2000-10-26 2012-04-17 Cypress Semiconductor Corporation In-circuit emulator and pod synchronized boot
US8103496B1 (en) 2000-10-26 2012-01-24 Cypress Semicondutor Corporation Breakpoint control in an in-circuit emulation system
US7406674B1 (en) 2001-10-24 2008-07-29 Cypress Semiconductor Corporation Method and apparatus for generating microcontroller configuration information
US8078970B1 (en) 2001-11-09 2011-12-13 Cypress Semiconductor Corporation Graphical user interface with user-selectable list-box
US8042093B1 (en) 2001-11-15 2011-10-18 Cypress Semiconductor Corporation System providing automatic source code generation for personalization and parameterization of user modules
US7770113B1 (en) 2001-11-19 2010-08-03 Cypress Semiconductor Corporation System and method for dynamically generating a configuration datasheet
US7774190B1 (en) 2001-11-19 2010-08-10 Cypress Semiconductor Corporation Sleep and stall in an in-circuit emulation system
US7844437B1 (en) 2001-11-19 2010-11-30 Cypress Semiconductor Corporation System and method for performing next placements and pruning of disallowed placements for programming an integrated circuit
US6971004B1 (en) 2001-11-19 2005-11-29 Cypress Semiconductor Corp. System and method of dynamically reconfiguring a programmable integrated circuit
US8069405B1 (en) 2001-11-19 2011-11-29 Cypress Semiconductor Corporation User interface for efficiently browsing an electronic document using data-driven tabs
US8103497B1 (en) 2002-03-28 2012-01-24 Cypress Semiconductor Corporation External interface for event architecture
US7308608B1 (en) 2002-05-01 2007-12-11 Cypress Semiconductor Corporation Reconfigurable testing system and method
US7761845B1 (en) 2002-09-09 2010-07-20 Cypress Semiconductor Corporation Method for parameterizing a user module
US7295049B1 (en) 2004-03-25 2007-11-13 Cypress Semiconductor Corporation Method and circuit for rapid alignment of signals
US8069436B2 (en) 2004-08-13 2011-11-29 Cypress Semiconductor Corporation Providing hardware independence to automate code generation of processing device firmware
US7332976B1 (en) 2005-02-04 2008-02-19 Cypress Semiconductor Corporation Poly-phase frequency synthesis oscillator
US7400183B1 (en) 2005-05-05 2008-07-15 Cypress Semiconductor Corporation Voltage controlled oscillator delay cell and method
US8085067B1 (en) 2005-12-21 2011-12-27 Cypress Semiconductor Corporation Differential-to-single ended signal converter circuit and method
US8067948B2 (en) 2006-03-27 2011-11-29 Cypress Semiconductor Corporation Input/output multiplexer bus
US8407658B2 (en) * 2007-02-01 2013-03-26 International Business Machines Corporation Methods, systems, and computer program products for using direct memory access to initialize a programmable logic device
US8130025B2 (en) 2007-04-17 2012-03-06 Cypress Semiconductor Corporation Numerical band gap
US8026739B2 (en) 2007-04-17 2011-09-27 Cypress Semiconductor Corporation System level interconnect with programmable switching
US7737724B2 (en) * 2007-04-17 2010-06-15 Cypress Semiconductor Corporation Universal digital block interconnection and channel routing
US8092083B2 (en) 2007-04-17 2012-01-10 Cypress Semiconductor Corporation Temperature sensor with digital bandgap
US8516025B2 (en) 2007-04-17 2013-08-20 Cypress Semiconductor Corporation Clock driven dynamic datapath chaining
US7710146B1 (en) * 2007-04-17 2010-05-04 General Dynamics Advanced Information Systems, Inc. Hierarchical FPGA configuration
US9564902B2 (en) 2007-04-17 2017-02-07 Cypress Semiconductor Corporation Dynamically configurable and re-configurable data path
US8040266B2 (en) 2007-04-17 2011-10-18 Cypress Semiconductor Corporation Programmable sigma-delta analog-to-digital converter
US8266575B1 (en) 2007-04-25 2012-09-11 Cypress Semiconductor Corporation Systems and methods for dynamically reconfiguring a programmable system on a chip
US8065653B1 (en) 2007-04-25 2011-11-22 Cypress Semiconductor Corporation Configuration of programmable IC design elements
US9720805B1 (en) 2007-04-25 2017-08-01 Cypress Semiconductor Corporation System and method for controlling a target device
US8049569B1 (en) 2007-09-05 2011-11-01 Cypress Semiconductor Corporation Circuit and method for improving the accuracy of a crystal-less oscillator having dual-frequency modes
US8908870B2 (en) 2007-11-01 2014-12-09 Infineon Technologies Ag Method and system for transferring information to a device
US8627079B2 (en) 2007-11-01 2014-01-07 Infineon Technologies Ag Method and system for controlling a device
US9448964B2 (en) 2009-05-04 2016-09-20 Cypress Semiconductor Corporation Autonomous control in a programmable system
US8589600B2 (en) * 2009-12-14 2013-11-19 Maxeler Technologies, Ltd. Method of transferring data with offsets
US8789065B2 (en) 2012-06-08 2014-07-22 Throughputer, Inc. System and method for input data load adaptive parallel processing
US9448847B2 (en) 2011-07-15 2016-09-20 Throughputer, Inc. Concurrent program execution optimization
US9645738B2 (en) 2012-08-09 2017-05-09 Spectra Logic Corporation Direct memory access of remote data
US9218133B2 (en) 2012-08-17 2015-12-22 Spectra Logic, Corp Data deduplication in a removable storage device
CN102968316A (zh) * 2012-11-02 2013-03-13 杭州迪普科技有限公司 一种网络设备及配置文件的加载方法
CN103500149A (zh) * 2013-09-29 2014-01-08 华为技术有限公司 直接内存访问控制器和直接内存访问控制方法
CN105706053A (zh) * 2013-11-06 2016-06-22 英派尔科技开发有限公司 通过在数据中心处的协处理器的制图进行恶意攻击防止
WO2016015998A1 (en) * 2014-07-28 2016-02-04 Koninklijke Philips N.V. Lighting control and status queries
CN106934187B (zh) * 2017-05-11 2021-05-28 郑州云海信息技术有限公司 一种提高芯片fpga原型验证效率的调试方法及系统
US10725520B2 (en) * 2017-06-23 2020-07-28 Hewlett Packard Enterprise Development Lp Determining a power capping signal using direct memory access
CN107315449B (zh) * 2017-06-29 2022-01-11 华为技术有限公司 计算机设备、读取时间的方法和写入时间的方法
CN107608334B (zh) * 2017-09-07 2024-09-20 国营芜湖机械厂 一种某机型数字通信部件内控制板便携式检测装置
CN111414129B (zh) * 2019-01-07 2023-05-05 阿里巴巴集团控股有限公司 基于云的fpga控制数据的配置系统和方法以及电子设备
CN112685344B (zh) * 2020-12-30 2024-05-14 合肥市芯海电子科技有限公司 Dma编程电路及基于dma编程电路的编程方法
CN114328326B (zh) * 2021-12-28 2022-08-26 湖南航天经济发展有限公司 总线矩阵端口可配置的微控制器及其内部数据传输方法
CN114461552B (zh) * 2022-01-26 2024-01-30 北京经纬恒润科技股份有限公司 一种数据存储方法及装置
EP4407390A1 (en) * 2023-01-26 2024-07-31 Gwenaël Joseph Marie Godde Electronic circuit
US12416952B2 (en) * 2023-07-28 2025-09-16 Hewlett Packard Enterprise Development Lp Programming power controllers via logic device

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04199228A (ja) * 1990-11-26 1992-07-20 Toshiba Corp 半導体集積回路装置
JPH0668320A (ja) * 1992-08-14 1994-03-11 Ricoh Co Ltd 電子装置
JP2000322375A (ja) * 1999-05-14 2000-11-24 Sharp Corp Dma制御付fifo、並びに、それを用いたdma転送システム及び方法
JP2003229760A (ja) * 2002-02-01 2003-08-15 Hitachi High-Technologies Corp 装置コントローラ
JP2003281077A (ja) * 2002-03-25 2003-10-03 Hitachi Ltd 半導体集積回路装置
JP2005244247A (ja) * 2005-03-22 2005-09-08 Renesas Technology Corp 半導体装置
JP2005258996A (ja) * 2004-03-15 2005-09-22 Meidensha Corp Fpgaのリモートメンテナンス方式

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5752035A (en) * 1995-04-05 1998-05-12 Xilinx, Inc. Method for compiling and executing programs for reprogrammable instruction set accelerator
US6198751B1 (en) * 1997-11-19 2001-03-06 Cabletron Systems, Inc. Multi-protocol packet translator
US6560665B1 (en) * 1999-05-14 2003-05-06 Xilinx Inc. Embedding firmware for a microprocessor with configuration data for a field programmable gate array
US6204687B1 (en) * 1999-08-13 2001-03-20 Xilinx, Inc. Method and structure for configuring FPGAS
US6496971B1 (en) * 2000-02-07 2002-12-17 Xilinx, Inc. Supporting multiple FPGA configuration modes using dedicated on-chip processor
US6738962B1 (en) * 2000-06-12 2004-05-18 Altera Corporation Configuration and/or reconfiguration of integrated circuit devices that include programmable logic and microprocessor circuitry
US20020100029A1 (en) * 2000-07-20 2002-07-25 Matt Bowen System, method and article of manufacture for compiling and invoking C functions in hardware
US20030033450A1 (en) * 2000-07-20 2003-02-13 John Appleby-Alis System, method, and article of manufacture for remote updating of hardware
US7076595B1 (en) * 2001-05-18 2006-07-11 Xilinx, Inc. Programmable logic device including programmable interface core and central processing unit
US6810514B1 (en) * 2002-07-03 2004-10-26 Xilinx, Inc. Controller arrangement for partial reconfiguration of a programmable logic device
US6907595B2 (en) * 2002-12-13 2005-06-14 Xilinx, Inc. Partial reconfiguration of a programmable logic device using an on-chip processor
US7236525B2 (en) * 2003-05-22 2007-06-26 Lsi Corporation Reconfigurable computing based multi-standard video codec
JP4174798B2 (ja) 2003-07-25 2008-11-05 シャープ株式会社 表示装置
US20050093572A1 (en) * 2003-11-03 2005-05-05 Macronix International Co., Ltd. In-circuit configuration architecture with configuration on initialization function for embedded configurable logic array
US7274212B1 (en) * 2004-11-04 2007-09-25 Altera Corporation Methods and apparatus for control and configuration of programmable logic device
US7370310B1 (en) * 2005-08-08 2008-05-06 Xilinx, Inc. Static address mapping
US8407658B2 (en) * 2007-02-01 2013-03-26 International Business Machines Corporation Methods, systems, and computer program products for using direct memory access to initialize a programmable logic device

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04199228A (ja) * 1990-11-26 1992-07-20 Toshiba Corp 半導体集積回路装置
JPH0668320A (ja) * 1992-08-14 1994-03-11 Ricoh Co Ltd 電子装置
JP2000322375A (ja) * 1999-05-14 2000-11-24 Sharp Corp Dma制御付fifo、並びに、それを用いたdma転送システム及び方法
JP2003229760A (ja) * 2002-02-01 2003-08-15 Hitachi High-Technologies Corp 装置コントローラ
JP2003281077A (ja) * 2002-03-25 2003-10-03 Hitachi Ltd 半導体集積回路装置
JP2005258996A (ja) * 2004-03-15 2005-09-22 Meidensha Corp Fpgaのリモートメンテナンス方式
JP2005244247A (ja) * 2005-03-22 2005-09-08 Renesas Technology Corp 半導体装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013025437A (ja) * 2011-07-19 2013-02-04 Hitachi Cable Ltd Fpgaシステム及び電子機器
JP2015142359A (ja) * 2014-01-30 2015-08-03 コニカミノルタ株式会社 プログラム可能な論理回路デバイスを備えた電子装置
JP2017111530A (ja) * 2015-12-15 2017-06-22 住友電気工業株式会社 光送受信器及びマイクロコントローラ
US12305624B2 (en) 2021-04-02 2025-05-20 Ice Thermal Harvesting, Llc Modular mobile heat generation unit for generation of geothermal power in organic rankine cycle operations
US12312981B2 (en) 2021-04-02 2025-05-27 Ice Thermal Harvesting, Llc Systems and methods utilizing gas temperature as a power source
US12385474B2 (en) 2021-04-02 2025-08-12 Ice Thermal Harvesting, Llc Systems for generating geothermal power in an organic Rankine cycle operation during hydrocarbon production based on working fluid temperature

Also Published As

Publication number Publication date
US8495545B2 (en) 2013-07-23
CN101236504A (zh) 2008-08-06
US20080186052A1 (en) 2008-08-07
US20120278510A1 (en) 2012-11-01
US8407658B2 (en) 2013-03-26
US20120278522A1 (en) 2012-11-01
JP5102644B2 (ja) 2012-12-19
US8589834B2 (en) 2013-11-19
CN101236504B (zh) 2011-09-07

Similar Documents

Publication Publication Date Title
JP5102644B2 (ja) 直接メモリ・アクセスを使用してプログラマブル論理装置を初期化するための方法、集積回路、システム及びコンピュータ・プログラム
JP7247213B2 (ja) デバッグコントローラ回路
US6732263B1 (en) Configuring both a programmable logic device and its embedded logic with a single serialized configuration bit stream
CN113167831B (zh) 在已部署的汽车平台上执行自测的测试系统
CN103477296B (zh) 用于从bios prom配置可编程逻辑器件的装置
CN106471483B (zh) 设置、捕获、处理及扫描模块及其操作方法、包括模块的装置及混合信号总线
US10002103B2 (en) Low-pin microcontroller device with multiple independent microcontrollers
US10002102B2 (en) Low-pin microcontroller device with multiple independent microcontrollers
US20090125659A1 (en) Inter-Integrated Circuit (12C) Slave with Read/Write Access to Random Access Memory
KR20190106675A (ko) 집적 단일 fpga 및 ssd 컨트롤러
JP2010501915A (ja) メモリ用モジュールコマンド構造およびメモリシステム
US10185563B2 (en) Control module for multiple mixed-signal resources management
US9367488B1 (en) System on a chip (SoC) RHBD structured ASIC
US7500021B2 (en) Operation mode control circuit, microcomputer including the same, and control system using the microcomputer
US10983936B2 (en) Programmable arbitrary sequence direct memory access controller for configuring multiple core independent peripherals
CHANDER KSHATRIYA COLLEGE OF ENGINEERING

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100922

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120626

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120703

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120820

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

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

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

Free format text: PAYMENT UNTIL: 20151005

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees