特許第6054688号(P6054688)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ NECプラットフォームズ株式会社の特許一覧

特許6054688プログラマブルアレイ制御回路およびプログラマブルアレイ制御方法
<>
  • 特許6054688-プログラマブルアレイ制御回路およびプログラマブルアレイ制御方法 図000002
  • 特許6054688-プログラマブルアレイ制御回路およびプログラマブルアレイ制御方法 図000003
  • 特許6054688-プログラマブルアレイ制御回路およびプログラマブルアレイ制御方法 図000004
  • 特許6054688-プログラマブルアレイ制御回路およびプログラマブルアレイ制御方法 図000005
  • 特許6054688-プログラマブルアレイ制御回路およびプログラマブルアレイ制御方法 図000006
  • 特許6054688-プログラマブルアレイ制御回路およびプログラマブルアレイ制御方法 図000007
  • 特許6054688-プログラマブルアレイ制御回路およびプログラマブルアレイ制御方法 図000008
  • 特許6054688-プログラマブルアレイ制御回路およびプログラマブルアレイ制御方法 図000009
  • 特許6054688-プログラマブルアレイ制御回路およびプログラマブルアレイ制御方法 図000010
  • 特許6054688-プログラマブルアレイ制御回路およびプログラマブルアレイ制御方法 図000011
  • 特許6054688-プログラマブルアレイ制御回路およびプログラマブルアレイ制御方法 図000012
  • 特許6054688-プログラマブルアレイ制御回路およびプログラマブルアレイ制御方法 図000013
  • 特許6054688-プログラマブルアレイ制御回路およびプログラマブルアレイ制御方法 図000014
  • 特許6054688-プログラマブルアレイ制御回路およびプログラマブルアレイ制御方法 図000015
  • 特許6054688-プログラマブルアレイ制御回路およびプログラマブルアレイ制御方法 図000016
  • 特許6054688-プログラマブルアレイ制御回路およびプログラマブルアレイ制御方法 図000017
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6054688
(24)【登録日】2016年12月9日
(45)【発行日】2016年12月27日
(54)【発明の名称】プログラマブルアレイ制御回路およびプログラマブルアレイ制御方法
(51)【国際特許分類】
   H03K 19/173 20060101AFI20161219BHJP
【FI】
   H03K19/173 101
【請求項の数】4
【全頁数】17
(21)【出願番号】特願2012-211027(P2012-211027)
(22)【出願日】2012年9月25日
(65)【公開番号】特開2014-68132(P2014-68132A)
(43)【公開日】2014年4月17日
【審査請求日】2015年8月24日
(73)【特許権者】
【識別番号】000227205
【氏名又は名称】NECプラットフォームズ株式会社
(74)【代理人】
【識別番号】100109313
【弁理士】
【氏名又は名称】机 昌彦
(74)【代理人】
【識別番号】100124154
【弁理士】
【氏名又は名称】下坂 直樹
(72)【発明者】
【氏名】永井 孝之
【審査官】 ▲高▼橋 義昭
(56)【参考文献】
【文献】 特開平10−209281(JP,A)
【文献】 特開2006−163531(JP,A)
【文献】 米国特許第05303350(US,A)
【文献】 特開2004−048228(JP,A)
【文献】 特開平02−093810(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H03K 19/173
(57)【特許請求の範囲】
【請求項1】
ユーザ回路部にユーザ回路を展開して前記ユーザ回路を動作させるプログラマブルアレイの制御回路であって、
前記ユーザ回路部に前記ユーザ回路の展開が完了した後に、前記ユーザ回路を初期化するリセット信号を発行する、リセット信号制御手段と、
前記リセット信号の出力が完了した後に、前記ユーザ回路のデータラインを駆動するデータライン許可信号を発行する、データライン制御手段と、
前記リセット信号の出力が完了した後に、前記ユーザ回路部のクロックラインを駆動するクロック許可信号を発行する、クロックライン制御手段とを有し、
前記データライン許可信号出力が完了した後に、前記クロックライン制御手段は前記クロック許可信号を発行し、
前記データライン許可信号が発行された後、再び発行されるデータライン許可信号は、前記ユーザ回路部のクロックラインの駆動を停止することを特徴とする、プログラマブルアレイ制御回路。
【請求項2】
外部からプロセッサコマンドを入力するインタフェースをさらに有し、
前記インタフェースは、前記プロセッサコマンドをもとに、前記ユーザ回路を再び初期化する、再リセット信号を発行し、
前記再リセット信号は、前記ユーザ回路のクロックラインの駆動を停止することを特徴とする、請求項1に記載のプログラマブルアレイ制御回路。
【請求項3】
ユーザ回路部を有するプログラマブルアレイの制御方法であって、
前記ユーザ回路部に、ユーザ回路を展開するステップと、
前記ユーザ回路の展開が完了した後に、前記ユーザ回路を初期化するリセット信号を発行するステップと、
前記リセット信号の出力が完了した後に、前記ユーザ回路のデータラインを駆動するデータライン許可信号を発行するステップと、
前記リセット信号の出力が完了した後に、前記ユーザ回路部のクロックラインを駆動するクロック許可信号を発行するステップと、
前記データライン許可信号が発行された後、データライン許可信号が再び発行されたとき、前記ユーザ回路部のクロックラインの駆動を停止するステップとを有し、
前記データライン許可信号出力が完了した後に、前記クロック許可信号を発行することを特徴とする、プログラマブルアレイの制御方法
【請求項4】
外部からプロセッサコマンドを入力するステップと、
前記プロセッサコマンドをもとに、前記ユーザ回路を再び初期化する、再リセット信号を発行するステップと、
前記再リセット信号により、前記ユーザ回路のクロックラインの駆動を停止するステップをさらに有することを特徴とする、請求項3に記載のプログラマブルアレイの制御方法
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラマブルアレイを制御する回路及び方法に関する。
【背景技術】
【0002】
プログラマブルアレイは、設計者の手元で所望の論理回路を構成できる半導体素子の一つである。
【0003】
プログラマブルアレイにおいて、電源投入後、ユーザ回路を動作可能な状態にするには、次の手順が必要であった。すなわち、(1)外部のメモリから内蔵のRAM(Random Access Memory)にユーザ回路の構成情報を読み込ませる。(2)読み込んだユーザ回路の構成情報を展開してRAM上に構成する。(3)外部から供給されたリセット信号によりユーザ回路を初期化する。
【0004】
以上の手順が完了した後、ユーザ回路のレジスタのそれぞれに初期値が設定され、ユーザ回路の動作が開始する。
【0005】
関連技術においては、プログラマブルアレイ上でのユーザ回路の展開(コンフィギュレーション)が終了すると、終了を通知する信号がリセット回路に供給され、リセット回路がコンフィギュレーション終了信号からリセット信号を生成して、ユーザ回路を初期化していた。
【0006】
さらに、ユーザ回路が動作可能な状態になるには、外部から供給されたリセット信号が解除されるまでの時間が必要であった。
【0007】
このようなプログラマブルアレイの構成では、ユーザ回路の初期化処理において、外部のリセット回路の動作を待つ時間が必要であった。
【0008】
このため、コンフィギュレーションが完了してからユーザ回路が動作可能な状態になるまでには長い時間を要するという問題があった。
【0009】
特許文献1は、ユーザ回路を展開するユーザ領域の外に固定領域を設け、固定領域がリセット回路を有する、フィールドプログラマブルゲートアレイ(FPGA)を開示する。固定領域に設けられたリセット回路は、コンフィギュレーション動作の終了を通知する信号に基づいて初期化信号を生成し、ユーザ領域に供給してユーザ回路を初期化する。これにより、FPGAから、外付けのリセット回路への入出力端子を削減することができる。
【0010】
しかしながら、特許文献1が開示するプログラマブルゲートアレイのような、ユーザ領域と固定領域とで動作のタイミングを制御するクロックを共有する構成では、クロックの立ち上がりと、制御信号のエッジとが衝突するおそれがある。
【0011】
すなわち、ユーザ領域を初期化するリセット信号の解除のタイミングと、クロックの立ち上がりが重なると、カウンタの値が不定になるなどの状態が発生する。
【0012】
例えば、フリップフロップにおいて、リセットのリリースとクロックの立ちあがりが衝突すると、フリップフロップの示す値は不定になる。このような状態になると、カウンタは正常な動作をしない。
【0013】
このため、リセット信号が解除する期間を、クロックのエッジ期間から分離するよう制御する必要がある。しかしながら、多数の機能ブロックが集積化したプログラマブルアレイにおいては、それぞれの素子の動作を時間的に分離することは困難である。
【0014】
この課題に対して、特許文献2は、クロックのエッジとリセット解除のエッジが重ならないように、リセットの前後でクロックの動作を止めるような制御をおこなう半導体集積回路を開示する。
【先行技術文献】
【特許文献】
【0015】
【特許文献1】特開平10−209281号公報
【特許文献2】特開2006−163531号公報
【発明の概要】
【発明が解決しようとする課題】
【0016】
特許文献2の開示する半導体集積回路においては、クロックを供給停止してからリセット信号の供給の解除、及びリセットの解除からクロックの供給再開までのそれぞれの時間を、制御クロック数のカウント(例えば128)により計測する。
【0017】
すなわち、特許文献2の開示する半導体集積回路は、位相同期回路の安定を待って、クロックが同期に必要とする十分な長さの期間を、リセットの解除の前後に設けて、その期間中にはクロックの動作を止めるように制御する。これにより、リセット解除とクロックのエッジとの衝突が回避され、リセット解除の安定性が確保される。
【0018】
しかしながら、特許文献2の開示する半導体集積回路は、クロック/リセット制御回路において所定数のクロックをカウンタにより計測する。すなわち、ユーザ回路が動作可能な状態になるまでの時間が、クロック数カウントによる所定の長さにより制限されて短縮できない。従って、これ以上の高速化は困難である。
【0019】
本発明は上述した点に鑑みてなされたもので、短時間でユーザ回路を動作可能な状態にするプログラマブルアレイ制御回路およびプログラマブルアレイ制御方法を提供することを目的とする。
【課題を解決するための手段】
【0020】
上記の目的を達成するため、本発明のプログラマブルアレイ制御回路は、ユーザ回路部にユーザ回路を展開してユーザ回路を動作させるプログラマブルアレイの制御回路であって、ユーザ回路部にユーザ回路の展開が完了した後にユーザ回路を初期化するリセット信号を発行するリセット信号制御手段と、リセット信号の出力が完了したときにユーザ回路部のクロックラインを駆動するクロック許可信号を発行するクロックライン制御手段とを有することを特徴とする。
【0021】
上記の目的を達成するため、本発明のプログラマブルアレイ制御方法は、ユーザ回路部を有するプログラマブルアレイの制御方法であって、ユーザ回路部にユーザ回路を展開するステップと、ユーザ回路の展開が完了した後にユーザ回路を初期化するリセット信号を発行するステップと、リセット信号の出力が完了したときにユーザ回路部のクロックラインを駆動するクロック許可信号を発行するステップとを有することを特徴とする。
【発明の効果】
【0022】
本発明によれば、ユーザ回路構成情報の展開後、短時間でユーザ回路が動作可能になる。
【図面の簡単な説明】
【0023】
図1】本発明の第1の実施形態に係るプログラマブルアレイの構成の一例を示す。
図2】本発明の第1の実施形態に係るプログラマブルアレイの制御方法の手続きの一例を示すフローチャートである。
図3】本発明の第2の実施形態に係るプログラマブルアレイの構成の一例を示す。
図4】本発明の第2の実施形態に係るリセット制御部の構成の一例を示す。
図5】本発明の第2の実施形態に係るプログラマブルアレイの動作の一例を説明するタイミングチャートである。
図6】本発明の第2の実施形態に係るプログラマブルアレイ制御回路の動作の一例を示すタイミングチャートである。
図7】本発明の第2の実施形態に係るプログラマブルアレイ制御回路の動作の一例を示すタイミングチャートである。
図8】本発明の第2の実施形態に係るプログラマブルアレイに含まれるビットカウンタの構成の一例を示す。
図9】関連技術におけるプログラマブルアレイに含まれるビットカウンタの動作の一例を説明するタイミングチャートである。
図10】本発明の第2の実施形態に含まれるプログラマブルアレイに含まれるビットカウンタの動作の一例を説明するタイミングチャートである。
図11】本発明の第1の実施懈怠に係るプログラマブルアレイに含まれるフリップフロップの構成の一例を示す。
図12】関連技術におけるプログラマブルアレイに含まれるフリップフロップの動作の一例を説明するタイミングチャートである。
図13】本発明の第2の実施形態に係るプログラマブルアレイに含まれるフリップフロップの動作の一例を説明するタイミングチャートである。
図14】本発明の第3の実施形態に係るプログラマブルアレイの構成の一例を示す。
図15】本発明の第3の実施形態に係るプログラマブルアレイのインタフェースの構成の例を示す。
図16】本発明の第3の実施形態に係るプログラマブルアレイの動作の一例を説明するタイミングチャートである。
【発明を実施するための形態】
【0024】
発明を実施するための最良の形態について図面を参照して詳細に説明する。ただし、本発明は以下に示す実施形態に限定されない。
[第1の実施形態]
[構成]
図1は、本発明の第1の実施形態に係るプログラマブルアレイの構成の一例を示すブロック図である。
【0025】
図1および図2を参照して、本実施形態に係るプログラマブルアレイの動作について説明する。
【0026】
図1において、プログラマブルアレイは、リセット制御部3およびユーザ回路部4を含み、リセット制御部3は、リセットパルス制御部31、クロックライン制御部33を含む。
【0027】
ユーザ回路部4においてユーザ回路を構築(コンフィギュレーション)する際には、プログラマブルアレイの外部からユーザ回路部4にユーザ回路構成情報が入力される。ユーザ回路部4は、ユーザ回路の展開が完了すると、リセットパルス制御部31に対してリセットを要求する。
【0028】
リセットパルス制御部31は、ユーザ回路部4に対して、リセットパルスを出力する(図2、ステップS101)。リセットパルス制御部31は、リセットパルスの出力が完了すると(図2、ステップS102YES)、クロックライン制御部33にリセットパルス完了を通知して、ユーザ回路部4のクロックラインを駆動するよう要求する。
【0029】
クロックライン制御部33は、ユーザ回路部4に、クロックラインの駆動を許可するクロック許可パルス信号を出力する(図2、ステップS103)。ユーザ回路部4は、クロック許可パルス信号を受信すると、ユーザ回路部4のクロックラインを駆動する(図2、ステップS104)。
【0030】
本実施形態に係るプログラマブルアレイにおけるリセット制御部3は、ユーザ回路4を初期化するリセット信号を出力し、リセット信号の出力が完了すると、ユーザ回路4のクロックラインを駆動する指示をユーザ回路4に発行する。これにより、リセットパルスの解除とクロックのエッジが時間的に分離される。
【0031】
また、特許文献2の開示する半導体集積回路のように、クロックの安定した同期動作のために十分長く設定された所定の時間を、クロックの駆動開始まで待つ必要がなく、リセット信号の出力完了を確認した後、例えば数カウントでクロックの駆動を開始できる。このため、起動が高速で、リセット解除のエッジとクロックの立ち上がりの衝突を回避することによりユーザ回路の状態が安定した、プログラマブルアレイが提供される。
[第2の実施形態]
[構成]
[プログラマブルアレイ]
図3は、本発明の第2の実施形態に係るプログラマブルアレイの構成の一例を示すブロック図である。
【0032】
プログラマブルアレイは、メモリ部1、コンフィギュレーション制御部2、リセット制御部3、及びユーザ回路部4を含む。
【0033】
メモリ部1は、不揮発性のメモリを含み、電源が供給されない状態でも内部のデータを消失すること無く保存できる。メモリ部1は、外部からユーザ回路構成情報aを取り込み、保持する。
【0034】
ユーザ回路部4におけるユーザ回路の構築時には、メモリ部1はコンフィギュレーション制御部2から入力されるコンフィギュレーション開始信号bをトリガとして、ユーザ回路部4に対してユーザ回路構成情報cを出力する。メモリ部1は、ユーザ回路構成情報cの転送完了時に、コンフィギュレーション制御部2に対してデータ転送完了信号dを出力する。
【0035】
コンフィギュレーション制御部2は、電源が投入されてから、プログラマブルアレイに供給される電源電圧が動作可能な電圧値に到達すると、メモリ部1に対して、コンフィギュレーション開始信号bを出力する。コンフィギュレーション制御部2がメモリ部1からのデータ転送完了信号dを入力した後、ユーザ回路部4は、ユーザ回路の展開を完了すると、ユーザ回路展開完了信号iを出力する。コンフィギュレーション制御部2は、このユーザ回路展開完了信号iを入力すると、リセット制御部3に対してリセット制御要求信号eを出力する。
【0036】
リセット制御部3は、コンフィギュレーション制御部2からリセット制御要求信号eを入力すると、ユーザ回路部4に対してリセットパルス信号f、データ許可パルス信号g、クロック許可パルス信号hを出力する。
【0037】
ユーザ回路部4は、メモリ部1から入力されるユーザ回路構成情報cを元にユーザ回路をその内部に展開する。ユーザ回路部4は、ユーザ回路の展開を完了すると、ユーザ回路展開完了信号iをコンフィギュレーション制御部2に対して出力する。ユーザ回路部4はさらに、リセット制御部3から入力されたリセットパルス信号fによりユーザ回路を初期化する。また、ユーザ回路部4は、データ許可パルス信号gの入力によりユーザ回路内のデータラインの駆動を開始し、クロック許可パルス信号hの入力によりクロックラインの駆動を開始する。
[リセット制御部]
図4は、本発明の第2の実施形態に係るリセット制御部の構成の一例を示す。
【0038】
リセット制御部3は、リセットパルス制御部31、データライン制御部32、クロックライン制御部33を含む。
【0039】
リセットパルス制御部31は、コンフィギュレーション制御部2から出力されたリセット制御要求信号eが入力されると、ユーザ回路部4に対して、リセットパルス信号fを出力する。続いて、リセットパルス制御部31は、データライン制御部32に対してリセットパルス出力完了信号3aを出力する。
【0040】
データライン制御部32は、リセットパルス制御31から出力されたリセットパルス出力完了信号3aが入力されると、ユーザ回路部4に、データラインの駆動を許可するデータ許可パルス信号gを出力する。続いて、データライン制御部32は、クロックライン制御部33に対して、データ許可パルス出力完了信号3bを出力する。
【0041】
クロックライン制御部33は、データライン制御部32から出力されたデータ許可パルス出力完了信号3bが入力されると、ユーザ回路部4に、クロックラインの駆動を許可するクロック許可パルス信号hを出力する。
[動作]
次に、図5乃至16のタイミングチャートおよびブロック図を参照して、本実施形態に係るプログラマブルアレイの制御回路の動作について詳細に説明する。
[プログラマブルアレイ]
図5は、図3のブロック図に示される本実施形態に係るプログラマブルアレイにおいて送受信される信号の動作の一例を説明するタイミングチャートである。
【0042】
メモリ部1には、外部からユーザ回路構成情報aが取り込まれ蓄えられている。
【0043】
プログラマブルアレイに電源が投入されて、動作可能な所定の電圧に到達すると、コンフィギュレーション制御部2は、メモリ部1に対してコンフィギュレーション開始信号bを出力する。
【0044】
メモリ部1は、コンフィギュレーション開始信号bが入力されると、内部に蓄えられたユーザ回路構成情報をユーザ回路構成情報cとして、ユーザ回路部4に出力する。メモリ部1は、ユーザ回路構成情報の全てのデータの転送を完了すると、データ転送完了信号dをコンフィギュレーション制御部2に出力する。
【0045】
ユーザ回路部4は、ユーザ回路構成情報を元にユーザ回路を展開し、ユーザ回路の展開が完了すると、コンフィギュレーション制御部2にユーザ回路展開完了信号iを出力する。
【0046】
コンフィギュレーション制御部2は、ユーザ回路展開完了信号iを入力すると、リセット制御部3に対して、リセット制御要求信号eを出力する。
【0047】
リセット制御部3は、コンフィギュレーション制御部2から出力されたリセット制御要求信号eを入力すると、ユーザ回路部4に対して、リセットパルス信号f、データ許可パルス信号g、クロック許可パルス信号hを連続して出力する。
【0048】
なお、それぞれの信号の立ち上がりのタイミングは、クロックサイクルで示されるクロックのタイミングで制御される。
[リセット制御部]
図6は、図4のブロック図に示される本実施形態に係るリセット制御部3において送受信される信号の動作の一例を説明するタイミングチャートである。
【0049】
先ず、コンフィギュレーション制御部2からリセットパルス制御部31に対して、リセット制御要求信号eが出力される。
【0050】
リセットパルス制御部31は、リセット制御要求信号eを入力すると、ユーザ回路部4に対してリセットパルス信号fを出力し、リセットパルスが完了したら、続いてデータライン制御部32に対してリセットパルス出力完了信号3aを出力する。
【0051】
データライン制御部32は、リセットパルス制御部31から出力されたリセットパルス出力完了信号3aを入力すると、データ許可パルス信号gをユーザ回路部4に対して出力し、続いてクロックライン制御部33に対してデータ許可パルス出力完了信号3bを出力する。
【0052】
クロックライン制御部33は、データライン制御部32からのデータ許可パルス出力完了信号3bを入力すると、ユーザ回路部4に対してクロック許可パルス信号hを出力する。
【0053】
なお、それぞれの信号の立ち上がりのタイミングは、クロックサイクルで示されるクロックのタイミングで制御される。
[ユーザ回路部]
図7は、本実施形態に係るユーザ回路部において送受信される信号の、ユーザ回路の初期化からユーザ回路の起動までの動作の一例を説明するタイミングチャートである。
【0054】
通常、ユーザ回路はメモリ上に展開されただけでは、起動時に参照される参照値などが不定である。ユーザ回路の起動時には、この不定状態はリセット処理により初期化される必要がある。
【0055】
ユーザ回路は、リセット制御部3から出力されたリセットパルス信号fの入力により、初期化される。
【0056】
次に、リセット制御部3から出力されたデータ許可パルス信号gの入力により、ユーザ回路部4内のデータラインが、初期状態からユーザ回路が動作するために必要な値へと駆動される。
【0057】
さらに、リセット制御部3から出力されたクロック許可パルス信号hの入力により、ユーザ回路部4内のクロックライン上に、素子の動作のタイミング制御に必要なクロックが駆動される。
【0058】
次に、ユーザ回路部4において展開されるユーザ回路として適用可能な例を挙げて、構成と手順を具体的に説明する。
[ビットカウンタの例]
ユーザ回路部4において展開されるユーザ回路として、4ビットのカウンタが構成される場合の動作の一例を、図8乃至10を参照して説明する。
【0059】
比較のため、図9においては、本発明が適用されない場合の動作の例を示す。
【0060】
図8は、本実施形態に係る4ビットカウンタの構成の一例を示す。
【0061】
リセット制御部3から出力されたリセットパルス信号fは、4ビットカウンタ61のCLR(クリア)入力端子に入力される。
【0062】
また、本発明が適用されない場合は、クロックの駆動制御が行われないため、ユーザ回路部4内には、クロックラインが、ユーザ回路展開後から、4ビットカウンタ61のCLK入力端子に入力されている。
【0063】
図9は、本発明が適用されない場合の、4ビットカウンタ61における信号の動作の一例を示す。
【0064】
図9に示されるように、本発明が適用されないプログラマブルアレイにおいては、リセットパルス信号fの解除タイミングとクロックの立ち上がりエッジのタイミングが衝突しうる。このような衝突時には、ビットカウンタ内部でタイミングエラーが発生する。このとき、リセットパルス信号fにより不定状態から初期状態に変化したカウンタ内部状態は、不定状態へと変化する。すなわち、ビットカウンタ61は、動作の開始時に不定状態となり、正常な“0”からのカウント動作をしない。
【0065】
次に、本発明をプログラマブルアレイに適用した場合に、ユーザ回路部4において展開されるユーザ回路としての4ビットカウンタの動作の一例について、図8および10を参照して説明する。
【0066】
ユーザ回路部4にユーザ回路が展開された後、リセット制御部3からリセットパルス信号fが入力されて、4ビットカウンタ61が初期化される。
【0067】
次に、クロック許可パルス信号hが入力されて、ユーザ回路部4内にクロックの入力が開始する。
【0068】
リセットパルス信号が入力されてユーザ回路の初期化が完了した後に、クロックの動作が開始するので、リセットパルス信号の解除とクロックの立ち上がりのエッジとは時間的に分離される。これにより、図9に例示されるようなタイミングエラーの可能性は排除され、ビットカウンタ61は常に正常なカウント動作を行うことができる。
[フリップフロップの例]
ユーザ回路部4において展開されるユーザ回路として、フリップフロップが構成される場合の動作の一例を、図11乃至13を参照して説明する。
【0069】
比較のため、図12においては、本発明が適用されない場合の動作の例を示す。
【0070】
図11は、本実施形態に係るフリップフロップの構成の一例を示す。
【0071】
リセット制御部3から出力されたリセットパルス信号fは、図11のフリップフロップ91のCLR入力端子に入力される。
【0072】
本発明が適用されない場合、データとクロックの駆動制御が行われないため、ユーザ回路部4内には、クロックラインが、ユーザ回路展開後から、フリップフロップ91のCLK端子に入力されている。また、ユーザ回路展開後から、任意のタイミングでデータが駆動され、D入力端子に入力される。
【0073】
図12は、本発明が適用されない場合の、フリップフロップ91における信号の動作の一例を示す。
【0074】
図12に示されるように、本発明が適用されないプログラマブルアレイにおいては、リセットパルス信号fの解除タイミングとクロックの立ち上がりエッジのタイミングが衝突しうる。さらに、任意のタイミングで入力されるデータのデータラインの変化点とクロックの立ち上がりエッジのタイミングが衝突しうる。このような衝突時には、フリップフロップ内部でタイミングエラーが発生する。このとき、リセットパルス信号fにより不定状態から初期状態に変化したフリップフロップ内部の状態は、それぞれのタイミングで不定状態へと変化する。すなわち、フリップフロップ91は、動作の開始時、及び、データの入力時に不定状態となりうるので、このような状態に変化した場合、フリップフロップは正常な動作をしない。
【0075】
次に、本発明をプログラマブルアレイに適用した場合に、ユーザ回路部4において展開されるユーザ回路としてのフリップフロップの動作の一例について、図11及び13を参照して説明する。
【0076】
ユーザ回路部4にユーザ回路が展開された後、リセット制御部3からリセットパルス信号fが入力されて、フリップフロップ91が初期化される。
【0077】
次に、データの入力に対して、データ許可パルス信号gが入力されて、データラインが駆動され、ユーザ回路部4内データラインが初期状態から駆動された状態に変化する。
【0078】
さらに、クロック許可パルス信号hが入力されて、クロックラインが駆動され、ユーザ回路部4内にクロックの入力が開始する。
【0079】
リセットパルス信号が入力されてユーザ回路の初期化が完了した後に、データ入力があればデータ許可パルス信号を入力してデータラインの状態を変化させ、さらに、クロック許可パルス信号を入力してクロックの動作が開始するので、リセットパルスの解除、データライン駆動によるデータの変化、クロックライン駆動によるクロックエッジの変化はそれぞれ時間的に分離される。これにより、図12に例示されるようなタイミングエラーの可能性は排除され、フリップフロップ91は常に正常に動作する。
【0080】
なお、さらにデータラインの状態の変化に対しては、クロックエッジとデータラインの変化点との衝突を避けるために、ユーザ回路部4内クロックラインを再び停止する必要がある。このため、次回以降のデータ許可パルス信号gは、ユーザ回路部4内データラインの状態を変化させる前に、ユーザ回路部4内クロックラインを停止させる。
【0081】
ユーザ回路部4内クロックラインは、クロック許可パルス信号hが入力されれば、再び動作を開始する。クロックラインは、ユーザ回路部4内データラインの変化が完了してから発行されるクロック許可パルス信号hにより動作が開始するので、データラインの変化点とクロックのエッジとの衝突を避けることができる。
【0082】
本実施形態に係るプログラマブルアレイ制御回路は、メモリ部1に予めユーザ回路構成情報を蓄え、コンフィギュレーション制御部2からの指示によりメモリ部1はユーザ回路構成情報をユーザ回路部4に転送する。ユーザ回路部4においてユーザ回路情報の展開が完了したタイミングでコンフィギュレーション制御部2がリセット制御部3にその旨を伝える。リセット制御部3ではコンフィギュレーション制御部2からの指示によりユーザ回路部4に対して、先ず、ユーザ回路の初期化のためのリセットパルス出力、続いてユーザ回路を動作させるためにデータラインの駆動、最後にクロックラインの駆動を行う。
【0083】
これにより、ユーザ回路部4はプログラマブルアレイ内部で生成されるリセットにより初期化され、ユーザ回路として構成されるフリップフロップやカウンタといった素子もタイミングエラーを発生させずに動作することが可能になる。また、ユーザ回路部4に対する外付けの回路からのリセット信号の供給も不要となり、コンフィギュレーション完了直後からユーザ回路は動作可能な状態になる。
[第3の実施形態]
図14は、本発明の第3の実施形態に係るプログラマブルアレイの構成の一例を示すブロック図である。
【0084】
第3の実施形態に係るプログラマブルアレイは、第2の実施形態に係るプログラマブルアレイに、外部とのデータ入出力のためのインタフェース43をユーザ回路部4に追加して具備したものである。この他の構成は第2の実施形態と同一であるので、説明を省略する。
【0085】
第3の実施形態に係るプログラマブルアレイにおいて、ユーザ回路部4が備えるインタフェース43は、例えば、外部プロセッサから出力されるプロセッサコマンドjを取り込む。
【0086】
図15は、第3の実施形態に係るプログラマブルアレイのユーザ回路部4が有するインタフェース43の構成の一例を示す。
【0087】
インタフェース43は、デコード回路部41とリセットパルス生成部42を含む。
【0088】
デコード回路部41は、外部プロセッサからプロセッサコマンドjを入力し、このプロセッサコマンドjをデコードする。デコードにより得られた信号は、リセットコマンド4aとしてリセットパルス生成部に出力される。
【0089】
リセットパルス生成部42は、デコード回路部41から入力されたリセットコマンド4aをもとに、リセットパルスを生成し、リセットパルス4bとしてユーザ回路内に出力する。
【0090】
このとき、ユーザ回路部4内のクロックラインは、リセットパルス4bの解除とクロックのエッジとの衝突を回避するために、クロックを停止する。リセットパルス生成部は、クロック停止パルス信号4cを出力する。
【0091】
第2の実施形態においては、ユーザ回路構成情報が展開された直後のタイミングでのみユーザ回路に対してリセットが発行されたが、本実施形態にかかるプログラマブルアレイにおいては、ユーザ回路が通常動作中であっても、任意のタイミングで外部プロセッサからリセットが可能である。
【0092】
第3の実施形態においては、インタフェースをユーザ回路が備え、外部から入力されるプロセッサコマンドをデコードしたが、これに限定されない。
【0093】
ユーザ回路内にプロセッサを搭載して、外部からの指示に応じてリセットパルスを生成して、ユーザ回路内に出力してもよい。
【0094】
第3の実施形態に係るプログラマブルアレイによれば、例えば混入したノイズなどの要因により、ユーザ回路が不定状態に変化した場合に、初期状態に戻すために、ユーザ回路部からいったんユーザ回路を除去してユーザ回路を再展開する必要はなく、外部からリセットパルスを発行するよう指示すればよい。これにより、不定状態に変化したユーザ回路を迅速に初期状態に復帰させることができる。
【0095】
図16は、外部からプロセッサコマンドjが入力されたときの、インタフェース43内の信号の動作の一例を示す。
【0096】
外部から入力されたプロセッサコマンドjによりリセットパルス4bが発行され、ユーザ回路が初期化される。このとき、ユーザ回路部4内のクロックは停止し、リセットパルスの解除とクロックエッジとの衝突による不定状態の発生が抑制される。クロック許可パルス信号が再び入力されると、クロックの動作が再開する。
【0097】
本実施形態に係るプログラマブルアレイ制御回路は、ユーザ回路に対するリセット出力、データライン駆動、クロックライン駆動を順次行い、タイミングエラーが発生しない最短のタイミングでユーザ回路を使用可能な状態にする。このため、ユーザ回路構成情報が展開された直後からユーザ回路が動作可能である。
【0098】
また、本実施形態に係るプログラマブルアレイ制御回路は、リセット制御部でリセットを生成しているため、ユーザ回路に対する外付けのリセット制御回路が不要である。
【0099】
さらに、本実施形態に係るプログラマブルアレイ制御回路は、メモリ部を不揮発性のメモリで構成して事前にユーザ回路構成情報を蓄えておくことができるため、電源投入後に直ちにユーザ回路構成情報の転送と展開ができる。
【産業上の利用可能性】
【0100】
本発明は、ユーザの所望のプログラムをメモリ上に展開して動作させるプログラマブルアレイに好適に適用される。電源投入後から短時間で使用を開始するような、リセット信号に対して動作が安定であり、外部リセット制御回路の搭載を要しない、小型で安定な高速のプログラマブルアレイに適用可能である。
【符号の説明】
【0101】
1 メモリ部
2 コンフィギュレーション制御部
3 リセット制御部
4 ユーザ回路部
31 リセットパルス制御部
32 データライン制御部
33 クロックライン制御部
41 デコード回路部
42 リセットパルス生成部
43 インタフェース
61 4ビットカウンタ
91 フリップフロップ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16