(57)【要約】【課題】起動後からユーザ回路動作開始までが短時間で、動作開始時の初期化処理に対して安定な、プログラマブルアレイ制御回路を提供すること。【解決手段】プログラマブルアレイ制御回路は、ユーザ回路部にユーザ回路を展開してユーザ回路を動作させるプログラマブルアレイの制御回路であって、ユーザ回路部にユーザ回路の展開が完了した後にユーザ回路を初期化するリセット信号を発行するリセット信号制御手段と、リセット信号の出力が完了したときにユーザ回路部のクロックラインを駆動するクロック許可信号を発行するクロックライン制御手段とを有することを特徴とする。【選択図】      図１
2014068132.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ回路部にユーザ回路を展開して前記ユーザ回路を動作させるプログラマブルアレイの制御回路であって、
前記ユーザ回路部に前記ユーザ回路の展開が完了した後に、前記ユーザ回路を初期化するリセット信号を発行する、リセット信号制御手段と、
前記リセット信号の出力が完了した後に、前記ユーザ回路部のクロックラインを駆動するクロック許可信号を発行する、クロックライン制御手段を有することを特徴とする、プログラマブルアレイ制御回路。
【請求項２】
前記リセット信号の出力が完了した後に、前記ユーザ回路のデータラインを駆動するデータ許可信号を発行する、データライン制御手段をさらに有し、
前記データ許可信号出力が完了した後に、前記クロックライン制御手段は前記クロック許可信号を発行することを特徴とする、請求項１に記載のプログラマブルアレイ制御回路。
【請求項３】
前記データライン許可信号が発行された後、再び発行されるデータライン許可信号は、前記ユーザ回路部のクロックラインの駆動を停止することを特徴とする、請求項２に記載のプログラマブルアレイ制御回路。
【請求項４】
外部からプロセッサコマンドを入力するインタフェースをさらに有し、
前記インタフェースは、前記プロセッサコマンドをもとに、前記ユーザ回路を再び初期化する、再リセット信号を発行し、
前記再リセット信号は、前記ユーザ回路のクロックラインの駆動を停止することを特徴とする、請求項１乃至３のいずれか記載のプログラマブルアレイ制御回路。
【請求項５】
ユーザ回路部を有するプログラマブルアレイの制御方法であって、
前記ユーザ回路部に、ユーザ回路を展開するステップと、
前記ユーザ回路の展開が完了した後に、前記ユーザ回路を初期化するリセット信号を発行するステップと、
前記リセット信号の出力が完了した後に、前記ユーザ回路部のクロックラインを駆動するクロック許可信号を発行するステップを有することを特徴とする、プログラマブルアレイの制御方法。
【請求項６】
前記リセット信号の出力が完了した後に、前記ユーザ回路のデータラインを駆動するデータ許可信号を発行するステップをさらに有し、
前記データ許可信号出力が完了した後に、前記クロック許可信号を発行することを特徴とする、請求項５に記載のプログラマブルアレイの制御方法。
【請求項７】
前記データライン許可信号が発行された後、データライン許可信号が再び発行されたとき、前記ユーザ回路部のクロックラインの駆動を停止するステップをさらに有することを特徴とする、請求項６に記載のプログラマブルアレイの制御方法。
【請求項８】
外部からプロセッサコマンドを入力するステップと、
前記プロセッサコマンドをもとに、前記ユーザ回路を再び初期化する、再リセット信号を発行するステップと、
前記再リセット信号により、前記ユーザ回路のクロックラインの駆動を停止するステップをさらに有することを特徴とする、請求項５乃至７のいずれか記載のプログラマブルアレイの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルアレイを制御する回路及び方法に関する。
【背景技術】
【０００２】
プログラマブルアレイは、設計者の手元で所望の論理回路を構成できる半導体素子の一つである。
【０００３】
プログラマブルアレイにおいて、電源投入後、ユーザ回路を動作可能な状態にするには、次の手順が必要であった。すなわち、（１）外部のメモリから内蔵のＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）にユーザ回路の構成情報を読み込ませる。（２）読み込んだユーザ回路の構成情報を展開してＲＡＭ上に構成する。（３）外部から供給されたリセット信号によりユーザ回路を初期化する。
【０００４】
以上の手順が完了した後、ユーザ回路のレジスタのそれぞれに初期値が設定され、ユーザ回路の動作が開始する。
【０００５】
関連技術においては、プログラマブルアレイ上でのユーザ回路の展開（コンフィギュレーション）が終了すると、終了を通知する信号がリセット回路に供給され、リセット回路がコンフィギュレーション終了信号からリセット信号を生成して、ユーザ回路を初期化していた。
【０００６】
さらに、ユーザ回路が動作可能な状態になるには、外部から供給されたリセット信号が解除されるまでの時間が必要であった。
【０００７】
このようなプログラマブルアレイの構成では、ユーザ回路の初期化処理において、外部のリセット回路の動作を待つ時間が必要であった。
【０００８】
このため、コンフィギュレーションが完了してからユーザ回路が動作可能な状態になるまでには長い時間を要するという問題があった。
【０００９】
特許文献１は、ユーザ回路を展開するユーザ領域の外に固定領域を設け、固定領域がリセット回路を有する、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）を開示する。固定領域に設けられたリセット回路は、コンフィギュレーション動作の終了を通知する信号に基づいて初期化信号を生成し、ユーザ領域に供給してユーザ回路を初期化する。これにより、ＦＰＧＡから、外付けのリセット回路への入出力端子を削減することができる。
【００１０】
しかしながら、特許文献１が開示するプログラマブルゲートアレイのような、ユーザ領域と固定領域とで動作のタイミングを制御するクロックを共有する構成では、クロックの立ち上がりと、制御信号のエッジとが衝突するおそれがある。
【００１１】
すなわち、ユーザ領域を初期化するリセット信号の解除のタイミングと、クロックの立ち上がりが重なると、カウンタの値が不定になるなどの状態が発生する。
【００１２】
例えば、フリップフロップにおいて、リセットのリリースとクロックの立ちあがりが衝突すると、フリップフロップの示す値は不定になる。このような状態になると、カウンタは正常な動作をしない。
【００１３】
このため、リセット信号が解除する期間を、クロックのエッジ期間から分離するよう制御する必要がある。しかしながら、多数の機能ブロックが集積化したプログラマブルアレイにおいては、それぞれの素子の動作を時間的に分離することは困難である。
【００１４】
この課題に対して、特許文献２は、クロックのエッジとリセット解除のエッジが重ならないように、リセットの前後でクロックの動作を止めるような制御をおこなう半導体集積回路を開示する。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開平１０−２０９２８１号公報
【特許文献２】特開２００６−１６３５３１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
特許文献２の開示する半導体集積回路においては、クロックを供給停止してからリセット信号の供給の解除、及びリセットの解除からクロックの供給再開までのそれぞれの時間を、制御クロック数のカウント（例えば１２８）により計測する。
【００１７】
すなわち、特許文献２の開示する半導体集積回路は、位相同期回路の安定を待って、クロックが同期に必要とする十分な長さの期間を、リセットの解除の前後に設けて、その期間中にはクロックの動作を止めるように制御する。これにより、リセット解除とクロックのエッジとの衝突が回避され、リセット解除の安定性が確保される。
【００１８】
しかしながら、特許文献２の開示する半導体集積回路は、クロック／リセット制御回路において所定数のクロックをカウンタにより計測する。すなわち、ユーザ回路が動作可能な状態になるまでの時間が、クロック数カウントによる所定の長さにより制限されて短縮できない。従って、これ以上の高速化は困難である。
【００１９】
本発明は上述した点に鑑みてなされたもので、短時間でユーザ回路を動作可能な状態にするプログラマブルアレイ制御回路およびプログラマブルアレイ制御方法を提供することを目的とする。
【課題を解決するための手段】
【００２０】
上記の目的を達成するため、本発明のプログラマブルアレイ制御回路は、ユーザ回路部にユーザ回路を展開してユーザ回路を動作させるプログラマブルアレイの制御回路であって、ユーザ回路部にユーザ回路の展開が完了した後にユーザ回路を初期化するリセット信号を発行するリセット信号制御手段と、リセット信号の出力が完了したときにユーザ回路部のクロックラインを駆動するクロック許可信号を発行するクロックライン制御手段とを有することを特徴とする。
【００２１】
上記の目的を達成するため、本発明のプログラマブルアレイ制御方法は、ユーザ回路部を有するプログラマブルアレイの制御方法であって、ユーザ回路部にユーザ回路を展開するステップと、ユーザ回路の展開が完了した後にユーザ回路を初期化するリセット信号を発行するステップと、リセット信号の出力が完了したときにユーザ回路部のクロックラインを駆動するクロック許可信号を発行するステップとを有することを特徴とする。
【発明の効果】
【００２２】
本発明によれば、ユーザ回路構成情報の展開後、短時間でユーザ回路が動作可能になる。
【図面の簡単な説明】
【００２３】
【図１】本発明の第１の実施形態に係るプログラマブルアレイの構成の一例を示す。
【図２】本発明の第１の実施形態に係るプログラマブルアレイの制御方法の手続きの一例を示すフローチャートである。
【図３】本発明の第２の実施形態に係るプログラマブルアレイの構成の一例を示す。
【図４】本発明の第２の実施形態に係るリセット制御部の構成の一例を示す。
【図５】本発明の第２の実施形態に係るプログラマブルアレイの動作の一例を説明するタイミングチャートである。
【図６】本発明の第２の実施形態に係るプログラマブルアレイ制御回路の動作の一例を示すタイミングチャートである。
【図７】本発明の第２の実施形態に係るプログラマブルアレイ制御回路の動作の一例を示すタイミングチャートである。
【図８】本発明の第２の実施形態に係るプログラマブルアレイに含まれるビットカウンタの構成の一例を示す。
【図９】関連技術におけるプログラマブルアレイに含まれるビットカウンタの動作の一例を説明するタイミングチャートである。
【図１０】本発明の第２の実施形態に含まれるプログラマブルアレイに含まれるビットカウンタの動作の一例を説明するタイミングチャートである。
【図１１】本発明の第１の実施懈怠に係るプログラマブルアレイに含まれるフリップフロップの構成の一例を示す。
【図１２】関連技術におけるプログラマブルアレイに含まれるフリップフロップの動作の一例を説明するタイミングチャートである。
【図１３】本発明の第２の実施形態に係るプログラマブルアレイに含まれるフリップフロップの動作の一例を説明するタイミングチャートである。
【図１４】本発明の第３の実施形態に係るプログラマブルアレイの構成の一例を示す。
【図１５】本発明の第３の実施形態に係るプログラマブルアレイのインタフェースの構成の例を示す。
【図１６】本発明の第３の実施形態に係るプログラマブルアレイの動作の一例を説明するタイミングチャートである。
【発明を実施するための形態】
【００２４】
発明を実施するための最良の形態について図面を参照して詳細に説明する。ただし、本発明は以下に示す実施形態に限定されない。
［第１の実施形態］
［構成］
図１は、本発明の第１の実施形態に係るプログラマブルアレイの構成の一例を示すブロック図である。
【００２５】
図１および図２を参照して、本実施形態に係るプログラマブルアレイの動作について説明する。
【００２６】
図１において、プログラマブルアレイは、リセット制御部３およびユーザ回路部４を含み、リセット制御部３は、リセットパルス制御部３１、クロックライン制御部３３を含む。
【００２７】
ユーザ回路部４においてユーザ回路を構築（コンフィギュレーション）する際には、プログラマブルアレイの外部からユーザ回路部４にユーザ回路構成情報が入力される。ユーザ回路部４は、ユーザ回路の展開が完了すると、リセットパルス制御部３１に対してリセットを要求する。
【００２８】
リセットパルス制御部３１は、ユーザ回路部４に対して、リセットパルスを出力する（図２、ステップＳ１０１）。リセットパルス制御部３１は、リセットパルスの出力が完了すると（図２、ステップＳ１０２ＹＥＳ）、クロックライン制御部３３にリセットパルス完了を通知して、ユーザ回路部４のクロックラインを駆動するよう要求する。
【００２９】
クロックライン制御部３３は、ユーザ回路部４に、クロックラインの駆動を許可するクロック許可パルス信号を出力する（図２、ステップＳ１０３）。ユーザ回路部４は、クロック許可パルス信号を受信すると、ユーザ回路部４のクロックラインを駆動する（図２、ステップＳ１０４）。
【００３０】
本実施形態に係るプログラマブルアレイにおけるリセット制御部３は、ユーザ回路４を初期化するリセット信号を出力し、リセット信号の出力が完了すると、ユーザ回路４のクロックラインを駆動する指示をユーザ回路４に発行する。これにより、リセットパルスの解除とクロックのエッジが時間的に分離される。
【００３１】
また、特許文献２の開示する半導体集積回路のように、クロックの安定した同期動作のために十分長く設定された所定の時間を、クロックの駆動開始まで待つ必要がなく、リセット信号の出力完了を確認した後、例えば数カウントでクロックの駆動を開始できる。このため、起動が高速で、リセット解除のエッジとクロックの立ち上がりの衝突を回避することによりユーザ回路の状態が安定した、プログラマブルアレイが提供される。
［第２の実施形態］
［構成］
［プログラマブルアレイ］
図３は、本発明の第２の実施形態に係るプログラマブルアレイの構成の一例を示すブロック図である。
【００３２】
プログラマブルアレイは、メモリ部１、コンフィギュレーション制御部２、リセット制御部３、及びユーザ回路部４を含む。
【００３３】
メモリ部１は、不揮発性のメモリを含み、電源が供給されない状態でも内部のデータを消失すること無く保存できる。メモリ部１は、外部からユーザ回路構成情報ａを取り込み、保持する。
【００３４】
ユーザ回路部４におけるユーザ回路の構築時には、メモリ部１はコンフィギュレーション制御部２から入力されるコンフィギュレーション開始信号ｂをトリガとして、ユーザ回路部４に対してユーザ回路構成情報ｃを出力する。メモリ部１は、ユーザ回路構成情報ｃの転送完了時に、コンフィギュレーション制御部２に対してデータ転送完了信号ｄを出力する。
【００３５】
コンフィギュレーション制御部２は、電源が投入されてから、プログラマブルアレイに供給される電源電圧が動作可能な電圧値に到達すると、メモリ部１に対して、コンフィギュレーション開始信号ｂを出力する。コンフィギュレーション制御部２がメモリ部１からのデータ転送完了信号ｄを入力した後、ユーザ回路部４は、ユーザ回路の展開を完了すると、ユーザ回路展開完了信号iを出力する。コンフィギュレーション制御部２は、このユーザ回路展開完了信号iを入力すると、リセット制御部３に対してリセット制御要求信号ｅを出力する。
【００３６】
リセット制御部３は、コンフィギュレーション制御部２からリセット制御要求信号ｅを入力すると、ユーザ回路部４に対してリセットパルス信号ｆ、データ許可パルス信号ｇ、クロック許可パルス信号ｈを出力する。
【００３７】
ユーザ回路部４は、メモリ部１から入力されるユーザ回路構成情報ｃを元にユーザ回路をその内部に展開する。ユーザ回路部４は、ユーザ回路の展開を完了すると、ユーザ回路展開完了信号iをコンフィギュレーション制御部２に対して出力する。ユーザ回路部４はさらに、リセット制御部３から入力されたリセットパルス信号ｆによりユーザ回路を初期化する。また、ユーザ回路部４は、データ許可パルス信号ｇの入力によりユーザ回路内のデータラインの駆動を開始し、クロック許可パルス信号ｈの入力によりクロックラインの駆動を開始する。
［リセット制御部］
図４は、本発明の第２の実施形態に係るリセット制御部の構成の一例を示す。
【００３８】
リセット制御部３は、リセットパルス制御部３１、データライン制御部３２、クロックライン制御部３３を含む。
【００３９】
リセットパルス制御部３１は、コンフィギュレーション制御部２から出力されたリセット制御要求信号ｅが入力されると、ユーザ回路部４に対して、リセットパルス信号ｆを出力する。続いて、リセットパルス制御部３１は、データライン制御部３２に対してリセットパルス出力完了信号３ａを出力する。
【００４０】
データライン制御部３２は、リセットパルス制御３１から出力されたリセットパルス出力完了信号３ａが入力されると、ユーザ回路部４に、データラインの駆動を許可するデータ許可パルス信号ｇを出力する。続いて、データライン制御部３２は、クロックライン制御部３３に対して、データ許可パルス出力完了信号３ｂを出力する。
【００４１】
クロックライン制御部３３は、データライン制御部３２から出力されたデータ許可パルス出力完了信号３ｂが入力されると、ユーザ回路部４に、クロックラインの駆動を許可するクロック許可パルス信号ｈを出力する。
［動作］
次に、図５乃至１６のタイミングチャートおよびブロック図を参照して、本実施形態に係るプログラマブルアレイの制御回路の動作について詳細に説明する。
［プログラマブルアレイ］
図５は、図３のブロック図に示される本実施形態に係るプログラマブルアレイにおいて送受信される信号の動作の一例を説明するタイミングチャートである。
【００４２】
メモリ部１には、外部からユーザ回路構成情報ａが取り込まれ蓄えられている。
【００４３】
プログラマブルアレイに電源が投入されて、動作可能な所定の電圧に到達すると、コンフィギュレーション制御部２は、メモリ部１に対してコンフィギュレーション開始信号ｂを出力する。
【００４４】
メモリ部１は、コンフィギュレーション開始信号ｂが入力されると、内部に蓄えられたユーザ回路構成情報をユーザ回路構成情報ｃとして、ユーザ回路部４に出力する。メモリ部１は、ユーザ回路構成情報の全てのデータの転送を完了すると、データ転送完了信号ｄをコンフィギュレーション制御部２に出力する。
【００４５】
ユーザ回路部４は、ユーザ回路構成情報を元にユーザ回路を展開し、ユーザ回路の展開が完了すると、コンフィギュレーション制御部２にユーザ回路展開完了信号ｉを出力する。
【００４６】
コンフィギュレーション制御部２は、ユーザ回路展開完了信号iを入力すると、リセット制御部３に対して、リセット制御要求信号ｅを出力する。
【００４７】
リセット制御部３は、コンフィギュレーション制御部２から出力されたリセット制御要求信号ｅを入力すると、ユーザ回路部４に対して、リセットパルス信号ｆ、データ許可パルス信号ｇ、クロック許可パルス信号ｈを連続して出力する。
【００４８】
なお、それぞれの信号の立ち上がりのタイミングは、クロックサイクルで示されるクロックのタイミングで制御される。
［リセット制御部］
図６は、図４のブロック図に示される本実施形態に係るリセット制御部３において送受信される信号の動作の一例を説明するタイミングチャートである。
【００４９】
先ず、コンフィギュレーション制御部２からリセットパルス制御部３１に対して、リセット制御要求信号ｅが出力される。
【００５０】
リセットパルス制御部３１は、リセット制御要求信号ｅを入力すると、ユーザ回路部４に対してリセットパルス信号ｆを出力し、リセットパルスが完了したら、続いてデータライン制御部３２に対してリセットパルス出力完了信号３ａを出力する。
【００５１】
データライン制御部３２は、リセットパルス制御部３１から出力されたリセットパルス出力完了信号３ａを入力すると、データ許可パルス信号ｇをユーザ回路部４に対して出力し、続いてクロックライン制御部３３に対してデータ許可パルス出力完了信号３ｂを出力する。
【００５２】
クロックライン制御部３３は、データライン制御部３２からのデータ許可パルス出力完了信号３ｂを入力すると、ユーザ回路部４に対してクロック許可パルス信号ｈを出力する。
【００５３】
なお、それぞれの信号の立ち上がりのタイミングは、クロックサイクルで示されるクロックのタイミングで制御される。
［ユーザ回路部］
図７は、本実施形態に係るユーザ回路部において送受信される信号の、ユーザ回路の初期化からユーザ回路の起動までの動作の一例を説明するタイミングチャートである。
【００５４】
通常、ユーザ回路はメモリ上に展開されただけでは、起動時に参照される参照値などが不定である。ユーザ回路の起動時には、この不定状態はリセット処理により初期化される必要がある。
【００５５】
ユーザ回路は、リセット制御部３から出力されたリセットパルス信号ｆの入力により、初期化される。
【００５６】
次に、リセット制御部３から出力されたデータ許可パルス信号ｇの入力により、ユーザ回路部４内のデータラインが、初期状態からユーザ回路が動作するために必要な値へと駆動される。
【００５７】
さらに、リセット制御部３から出力されたクロック許可パルス信号ｈの入力により、ユーザ回路部４内のクロックライン上に、素子の動作のタイミング制御に必要なクロックが駆動される。
【００５８】
次に、ユーザ回路部４において展開されるユーザ回路として適用可能な例を挙げて、構成と手順を具体的に説明する。
［ビットカウンタの例］
ユーザ回路部４において展開されるユーザ回路として、４ビットのカウンタが構成される場合の動作の一例を、図８乃至１０を参照して説明する。
【００５９】
比較のため、図９においては、本発明が適用されない場合の動作の例を示す。
【００６０】
図８は、本実施形態に係る４ビットカウンタの構成の一例を示す。
【００６１】
リセット制御部３から出力されたリセットパルス信号ｆは、４ビットカウンタ６１のＣＬＲ（クリア）入力端子に入力される。
【００６２】
また、本発明が適用されない場合は、クロックの駆動制御が行われないため、ユーザ回路部４内には、クロックラインが、ユーザ回路展開後から、４ビットカウンタ６１のＣＬＫ入力端子に入力されている。
【００６３】
図９は、本発明が適用されない場合の、４ビットカウンタ６１における信号の動作の一例を示す。
【００６４】
図９に示されるように、本発明が適用されないプログラマブルアレイにおいては、リセットパルス信号ｆの解除タイミングとクロックの立ち上がりエッジのタイミングが衝突しうる。このような衝突時には、ビットカウンタ内部でタイミングエラーが発生する。このとき、リセットパルス信号ｆにより不定状態から初期状態に変化したカウンタ内部状態は、不定状態へと変化する。すなわち、ビットカウンタ６１は、動作の開始時に不定状態となり、正常な“０”からのカウント動作をしない。
【００６５】
次に、本発明をプログラマブルアレイに適用した場合に、ユーザ回路部４において展開されるユーザ回路としての４ビットカウンタの動作の一例について、図８および１０を参照して説明する。
【００６６】
ユーザ回路部４にユーザ回路が展開された後、リセット制御部３からリセットパルス信号ｆが入力されて、４ビットカウンタ６１が初期化される。
【００６７】
次に、クロック許可パルス信号ｈが入力されて、ユーザ回路部４内にクロックの入力が開始する。
【００６８】
リセットパルス信号が入力されてユーザ回路の初期化が完了した後に、クロックの動作が開始するので、リセットパルス信号の解除とクロックの立ち上がりのエッジとは時間的に分離される。これにより、図９に例示されるようなタイミングエラーの可能性は排除され、ビットカウンタ６１は常に正常なカウント動作を行うことができる。
［フリップフロップの例］
ユーザ回路部４において展開されるユーザ回路として、フリップフロップが構成される場合の動作の一例を、図１１乃至１３を参照して説明する。
【００６９】
比較のため、図１２においては、本発明が適用されない場合の動作の例を示す。
【００７０】
図１１は、本実施形態に係るフリップフロップの構成の一例を示す。
【００７１】
リセット制御部３から出力されたリセットパルス信号ｆは、図１１のフリップフロップ９１のＣＬＲ入力端子に入力される。
【００７２】
本発明が適用されない場合、データとクロックの駆動制御が行われないため、ユーザ回路部４内には、クロックラインが、ユーザ回路展開後から、フリップフロップ９１のＣＬＫ端子に入力されている。また、ユーザ回路展開後から、任意のタイミングでデータが駆動され、Ｄ入力端子に入力される。
【００７３】
図１２は、本発明が適用されない場合の、フリップフロップ９１における信号の動作の一例を示す。
【００７４】
図１２に示されるように、本発明が適用されないプログラマブルアレイにおいては、リセットパルス信号ｆの解除タイミングとクロックの立ち上がりエッジのタイミングが衝突しうる。さらに、任意のタイミングで入力されるデータのデータラインの変化点とクロックの立ち上がりエッジのタイミングが衝突しうる。このような衝突時には、フリップフロップ内部でタイミングエラーが発生する。このとき、リセットパルス信号ｆにより不定状態から初期状態に変化したフリップフロップ内部の状態は、それぞれのタイミングで不定状態へと変化する。すなわち、フリップフロップ９１は、動作の開始時、及び、データの入力時に不定状態となりうるので、このような状態に変化した場合、フリップフロップは正常な動作をしない。
【００７５】
次に、本発明をプログラマブルアレイに適用した場合に、ユーザ回路部４において展開されるユーザ回路としてのフリップフロップの動作の一例について、図１１及び１３を参照して説明する。
【００７６】
ユーザ回路部４にユーザ回路が展開された後、リセット制御部３からリセットパルス信号ｆが入力されて、フリップフロップ９１が初期化される。
【００７７】
次に、データの入力に対して、データ許可パルス信号ｇが入力されて、データラインが駆動され、ユーザ回路部４内データラインが初期状態から駆動された状態に変化する。
【００７８】
さらに、クロック許可パルス信号ｈが入力されて、クロックラインが駆動され、ユーザ回路部４内にクロックの入力が開始する。
【００７９】
リセットパルス信号が入力されてユーザ回路の初期化が完了した後に、データ入力があればデータ許可パルス信号を入力してデータラインの状態を変化させ、さらに、クロック許可パルス信号を入力してクロックの動作が開始するので、リセットパルスの解除、データライン駆動によるデータの変化、クロックライン駆動によるクロックエッジの変化はそれぞれ時間的に分離される。これにより、図１２に例示されるようなタイミングエラーの可能性は排除され、フリップフロップ９１は常に正常に動作する。
【００８０】
なお、さらにデータラインの状態の変化に対しては、クロックエッジとデータラインの変化点との衝突を避けるために、ユーザ回路部４内クロックラインを再び停止する必要がある。このため、次回以降のデータ許可パルス信号ｇは、ユーザ回路部４内データラインの状態を変化させる前に、ユーザ回路部４内クロックラインを停止させる。
【００８１】
ユーザ回路部４内クロックラインは、クロック許可パルス信号ｈが入力されれば、再び動作を開始する。クロックラインは、ユーザ回路部４内データラインの変化が完了してから発行されるクロック許可パルス信号ｈにより動作が開始するので、データラインの変化点とクロックのエッジとの衝突を避けることができる。
【００８２】
本実施形態に係るプログラマブルアレイ制御回路は、メモリ部１に予めユーザ回路構成情報を蓄え、コンフィギュレーション制御部２からの指示によりメモリ部１はユーザ回路構成情報をユーザ回路部４に転送する。ユーザ回路部４においてユーザ回路情報の展開が完了したタイミングでコンフィギュレーション制御部２がリセット制御部３にその旨を伝える。リセット制御部３ではコンフィギュレーション制御部２からの指示によりユーザ回路部４に対して、先ず、ユーザ回路の初期化のためのリセットパルス出力、続いてユーザ回路を動作させるためにデータラインの駆動、最後にクロックラインの駆動を行う。
【００８３】
これにより、ユーザ回路部４はプログラマブルアレイ内部で生成されるリセットにより初期化され、ユーザ回路として構成されるフリップフロップやカウンタといった素子もタイミングエラーを発生させずに動作することが可能になる。また、ユーザ回路部４に対する外付けの回路からのリセット信号の供給も不要となり、コンフィギュレーション完了直後からユーザ回路は動作可能な状態になる。
［第３の実施形態］
図１４は、本発明の第３の実施形態に係るプログラマブルアレイの構成の一例を示すブロック図である。
【００８４】
第３の実施形態に係るプログラマブルアレイは、第２の実施形態に係るプログラマブルアレイに、外部とのデータ入出力のためのインタフェース４３をユーザ回路部４に追加して具備したものである。この他の構成は第２の実施形態と同一であるので、説明を省略する。
【００８５】
第３の実施形態に係るプログラマブルアレイにおいて、ユーザ回路部４が備えるインタフェース４３は、例えば、外部プロセッサから出力されるプロセッサコマンドｊを取り込む。
【００８６】
図１５は、第３の実施形態に係るプログラマブルアレイのユーザ回路部４が有するインタフェース４３の構成の一例を示す。
【００８７】
インタフェース４３は、デコード回路部４１とリセットパルス生成部４２を含む。
【００８８】
デコード回路部４１は、外部プロセッサからプロセッサコマンドｊを入力し、このプロセッサコマンドｊをデコードする。デコードにより得られた信号は、リセットコマンド４ａとしてリセットパルス生成部に出力される。
【００８９】
リセットパルス生成部４２は、デコード回路部４１から入力されたリセットコマンド４ａをもとに、リセットパルスを生成し、リセットパルス４ｂとしてユーザ回路内に出力する。
【００９０】
このとき、ユーザ回路部４内のクロックラインは、リセットパルス４ｂの解除とクロックのエッジとの衝突を回避するために、クロックを停止する。リセットパルス生成部は、クロック停止パルス信号４ｃを出力する。
【００９１】
第２の実施形態においては、ユーザ回路構成情報が展開された直後のタイミングでのみユーザ回路に対してリセットが発行されたが、本実施形態にかかるプログラマブルアレイにおいては、ユーザ回路が通常動作中であっても、任意のタイミングで外部プロセッサからリセットが可能である。
【００９２】
第３の実施形態においては、インタフェースをユーザ回路が備え、外部から入力されるプロセッサコマンドをデコードしたが、これに限定されない。
【００９３】
ユーザ回路内にプロセッサを搭載して、外部からの指示に応じてリセットパルスを生成して、ユーザ回路内に出力してもよい。
【００９４】
第３の実施形態に係るプログラマブルアレイによれば、例えば混入したノイズなどの要因により、ユーザ回路が不定状態に変化した場合に、初期状態に戻すために、ユーザ回路部からいったんユーザ回路を除去してユーザ回路を再展開する必要はなく、外部からリセットパルスを発行するよう指示すればよい。これにより、不定状態に変化したユーザ回路を迅速に初期状態に復帰させることができる。
【００９５】
図１６は、外部からプロセッサコマンドｊが入力されたときの、インタフェース４３内の信号の動作の一例を示す。
【００９６】
外部から入力されたプロセッサコマンドｊによりリセットパルス４ｂが発行され、ユーザ回路が初期化される。このとき、ユーザ回路部４内のクロックは停止し、リセットパルスの解除とクロックエッジとの衝突による不定状態の発生が抑制される。クロック許可パルス信号が再び入力されると、クロックの動作が再開する。
【００９７】
本実施形態に係るプログラマブルアレイ制御回路は、ユーザ回路に対するリセット出力、データライン駆動、クロックライン駆動を順次行い、タイミングエラーが発生しない最短のタイミングでユーザ回路を使用可能な状態にする。このため、ユーザ回路構成情報が展開された直後からユーザ回路が動作可能である。
【００９８】
また、本実施形態に係るプログラマブルアレイ制御回路は、リセット制御部でリセットを生成しているため、ユーザ回路に対する外付けのリセット制御回路が不要である。
【００９９】
さらに、本実施形態に係るプログラマブルアレイ制御回路は、メモリ部を不揮発性のメモリで構成して事前にユーザ回路構成情報を蓄えておくことができるため、電源投入後に直ちにユーザ回路構成情報の転送と展開ができる。
【産業上の利用可能性】
【０１００】
本発明は、ユーザの所望のプログラムをメモリ上に展開して動作させるプログラマブルアレイに好適に適用される。電源投入後から短時間で使用を開始するような、リセット信号に対して動作が安定であり、外部リセット制御回路の搭載を要しない、小型で安定な高速のプログラマブルアレイに適用可能である。
【符号の説明】
【０１０１】
１    メモリ部
２    コンフィギュレーション制御部
３    リセット制御部
４    ユーザ回路部
３１    リセットパルス制御部
３２    データライン制御部
３３    クロックライン制御部
４１    デコード回路部
４２    リセットパルス生成部
４３    インタフェース
６１    ４ビットカウンタ
９１    フリップフロップ
【図１】
2014068132.tif 000003
【図２】
2014068132.tif 000004
【図３】
2014068132.tif 000005
【図４】
2014068132.tif 000006
【図５】
2014068132.tif 000007
【図６】
2014068132.tif 000008
【図７】
2014068132.tif 000009
【図８】
2014068132.tif 000010
【図９】
2014068132.tif 000011
【図１０】
2014068132.tif 000012
【図１１】
2014068132.tif 000013
【図１２】
2014068132.tif 000014
【図１３】
2014068132.tif 000015
【図１４】
2014068132.tif 000016
【図１５】
2014068132.tif 000017
【図１６】
2014068132.tif 000018