(57)【要約】【課題】配置配線をやり直す可能性を低減することができるプログラマブルゲートアレイおよびプログラマブルゲートアレイのプログラミング方法を提供する。【解決手段】論理素子１１を電源電位を供給するＶCC１２と接地電位を供給するＧＮＤ１３とに接続させる接続素子１４を備え、論理素子１１と接続素子１４との間に、論理素子１１と接続素子１４とを接続可能な配線領域１５が設けられ、配線領域１５と接続素子１４とを接続する専用ライン１６が設けられていることを特徴とする。【選択図】図８
2012099760.tif 000002
【特許請求の範囲】
【請求項１】
論理素子を電源電位を供給するＶCCと接地電位を供給するＧＮＤとに接続させる接続素子を備えた
ことを特徴とするプログラマブルゲートアレイ。
【請求項２】
論理素子と接続素子との間に、論理素子と接続素子とを接続可能な配線領域が設けられている
請求項１に記載のプログラマブルゲートアレイ。
【請求項３】
配線領域と接続素子とを接続する専用ラインが設けられている
請求項２に記載のプログラマブルゲートアレイ。
【請求項４】
論理素子を電源電位を供給するＶCCと接地電位を供給するＧＮＤとに接続させる接続素子を備えたプログラマブルゲートアレイのプログラミング方法であって、
配置配線が完了した後に、接続素子が論理素子をＶCCおよびＧＮＤのいずれかに接続するかを決定する設定情報を含むプログラムデータを生成し、前記プログラムデータによって前記プログラマブルゲートアレイをプログラミングする
ことを特徴とするプログラマブルゲートアレイのプログラミング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルゲートアレイおよびプログラマブルゲートアレイのプログラミング方法に関する。
【背景技術】
【０００２】
プロセス技術の発達による高集積化やハードマクロ搭載によるＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）の高機能化により、ＦＰＧＡの設計工程におけるインプリメント（論理合成および配置配線）時間が増加している。また、ＦＰＧＡはリソース使用率が高くなると動作周波数などの性能を上げることが難しく、目標とする性能に達するまでインプリメントを繰り返し実行することが要求される場合がある。
【０００３】
また、インプリメント後にハードウェア記述を変更した場合に、再度インプリメントをやり直さなければならない。例えば、インプリメント後に信号の値を変更する場合には、配置配線をやり直さなければならない。また、配置配線をやり直した場合には、ＦＰＧＡの性能が変化する可能性があるので、実機における再評価をしなければならない。
【０００４】
ＦＰＧＡの設計にかかる開発工数を削減するための方法として、既存のＦＰＧＡ回路をハードマクロセルとしてライブラリに登録しておき、ライブラリに登録されたハードマクロセルを再利用することによって、配置配線に要する時間を削減するＦＰＧＡ回路設計方法が提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平６−２３２２５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載されたＦＰＧＡ回路設計方法は、データベースに登録されたハードマクロセルを再利用するときは、ハードマクロセル内の配置配線が不要になるのでインプリメント時間の短縮を図ることが可能である。しかし、インプリメント後に設計変更が発生した場合は、配置配線をする必要があるのでインプリメントを再度実施しなければならない。そのため、インプリメント後の設計変更に対する開発工数を削減することは難しい。
【０００７】
そこで、本発明は、配置配線をやり直す可能性を低減することができるプログラマブルゲートアレイおよびプログラマブルゲートアレイのプログラミング方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明によるプログラマブルゲートアレイは、論理素子を電源電位を供給するＶCCと接地電位を供給するＧＮＤとに接続させる接続素子を備えたことを特徴とする。
【０００９】
本発明によるプログラマブルゲートアレイのプログラミング方法は、論理素子を電源電位を供給するＶCCと接地電位を供給するＧＮＤとに接続させる接続素子を備えたプログラマブルゲートアレイのプログラミング方法であって、配置配線が完了した後に、接続素子が論理素子をＶCCおよびＧＮＤのいずれかに接続するかを決定する設定情報を含むプログラムデータを生成し、プログラムデータによってプログラマブルゲートアレイをプログラミングすることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、ハードウェア記述の変更やインプリメントの再実施をすることなく、事前登録した信号の固定値を変更することが可能となる。その結果、配線設計をやり直す可能性を低減することができる。
【図面の簡単な説明】
【００１１】
【図１】ＦＰＧＡの設計工程の一例を示すフローチャートである。
【図２】本発明のプログラマブルゲートアレイの第一の実施形態を示すブロック図である。
【図３】ハードブロックを使用した回路の一例を示す説明図である。
【図４】本発明の第１の実施形態の動作を示すフローチャートである。
【図５】ハードブロック１４０の配置の一例を示す説明図である。
【図６】ハードブロック１４０の配置の一例を示す説明図である。
【図７】ＶCC１４１とＧＮＤ１４２とを共有する回路の一例を示す説明図である。
【図８】本発明の主要部を示すブロック図である。
【発明を実施するための形態】
【００１２】
実施形態１．
以下、本発明の第１の実施形態を図面を参照して説明する。
【００１３】
図１は、ＦＰＧＡの設計工程の一例を示すフローチャートである。図１に示すように、ＦＰＧＡの設計工程は、回路設計（ステップＳ１０１）と、論理合成（ステップＳ１０２）と、配置配線（ステップＳ１０３）と、ビットストリームデータ生成（ステップＳ１０４）と、プログラミング（ステップＳ１０５）との工程からなる。
【００１４】
回路設計は、ＶＨＤＬ（Ｖｅｒｙ  ｈｉｇｈ  ｓｐｅｅｄ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ  Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）やＶｅｒｉｌｏＧ―ＨＤＬなどのハードウェア記述言語を使用してＦＰＧＡの回路のデザインを作成する工程である。
【００１５】
論理合成は、ステップＳ１０１の回路設計において作成された回路のデザインを論理回路に変換して、論理回路をＦＰＧＡが有するリソースに当てはめる工程である。リソースとは、ＦＰＧＡを構成する部品であり、論理ロジックや配線リソースなどがある。
【００１６】
配置配線は、ステップＳ１０２の論理合成において論理回路を当てはめたリソースをＦＰＧＡのどの場所に配置し、それらをどのように配線するかを決定する工程である。
【００１７】
ビットストリームデータ生成は、ステップＳ１０３の配置配線の結果を、ＦＰＧＡにロード可能なプログラムデータ（ビットストリームデータ）へと変換する工程である。
【００１８】
プログラミングは、ステップＳ１０４で生成されたビットストリームデータを記憶メモリに対して書き込みをする工程である。記憶メモリは、ＦＰＧＡの外部に設置された不揮発性メモリである。
【００１９】
ＦＰＧＡは、不揮発性メモリにＳ１０５で書き込まれたビットストリームデータに基づいて、所望の回路を構成する。
【００２０】
なお、ステップＳ１０１からステップＳ１０５の工程は、ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を備えたデザインツールを使用して行われる。デザインツールのユーザは、ステップＳ１０１で作成した回路のデザインをデザインツールに入力し、ステップＳ１０２からステップＳ１０５までの工程をデザインツールのＧＵＩを操作してデザインツールに実行させる。
【００２１】
図２は、本発明によるプログラマブルゲートアレイの第一の実施形態を示すブロック図である。
【００２２】
図２に示すように、本発明によるプログラマブルゲートアレイ１００は、ＬＯＧＩＣ―Ａ１１１、ＬＯＧＩＣ―Ｂ１１２、配線リソース１２０、コンフィグレーション部１３０とハードブロック１４０とを備える。また、プログラマブルゲートアレイ１００は、外部に設置された記憶メモリ２００に接続されている。
【００２３】
ハードブロック１４０は、ＶCC１４１と、ＧＮＤ１４２と、ＳＷ（スイッチ）１４３と、Ｇ―ＬＩＮＥ１４４とを備える。
【００２４】
ＶCC１４１は、電源電位を供給する電源ラインである。
【００２５】
ＧＮＤ１４２は、接地電位を供給するグランドラインである。
【００２６】
ＳＷ１４３は、ＶCC１４１およびＧＮＤ１４２につながる配線の接続と、Ｇ―ＬＩＮＥ１４４につながる配線の接続とを制御するプログラム可能なスイッチ群である。
【００２７】
Ｇ―ＬＩＮＥ１４４は、固定信号線である。物理的に固定された信号線であり、配線リソース上に配線された信号と１対１で接続される。
【００２８】
ＬＯＧＩＣ―Ａ１１１およびＬＯＧＩＣ―Ｂ１１２は、論理回路である。例えば、ＦＰＧＡに装備されるルックアップテーブルやフリップフロップなどの論理ロジックや、演算器やメモリなどのハードマクロである。
【００２９】
配線リソース１２０は、信号の配線領域であり、プログラマブルゲートアレイ１００上に縦方向および横方向に配置されている。配線リソース１２０の縦横が交わる交差点は、プログラム可能なスイッチ群によって構成される。各交差点のプログラム可能なスイッチ群がプログラムされることによって、信号の配線が決まる。
【００３０】
コンフィグレーション部１３０は、記憶メモリ２００に記憶されているビットストリームデータに基づいて、プログラマブルゲートアレイ１００を所望の回路に構成させる。
【００３１】
記憶メモリ２００は、フラッシュメモリなどの不揮発性メモリである。
【００３２】
次に、図４を参照して本実施形態の動作について説明する。ここでは、図３に示す回路を生成する場合を例にする。
【００３３】
図３は、ハードブロック１４０の各構成要素を使用した回路の一例を示す説明図である。図３に示すように、配線リソース１２０上にＳＩＧ―Ａ１２１およびＳＩＧ―Ｂ１２２の２つの信号線が配線されている。ＳＩＧ―Ａ１２１は、図３に示された例では、ＬＯＧＩＣ―Ａ１１１の入力信号として使用される。
【００３４】
図４は、本発明の第１の実施形態の動作を示すフローチャートである。
【００３５】
ユーザは、ＦＰＧＡのデザインツールを使用して、事前にＧ―ＬＩＮＥ１４４と接続する信号を登録する（ステップＳ４０１）。具体的には、回路設計時のハードウェア記述において、任意の予約語を使用してデザインツールにＧ―ＬＩＮＥ１４４と接続する信号を登録する。例えば、予約語を「Ｇ―ＬＩＮＥ＜＝」と設定した場合は、「Ｇ―ＬＩＮＥ＜＝ＳＩＧ―Ａ」のように記述してデザインツールに入力すれば、ＳＩＧ―Ａ１２１がＧ―ＬＩＮＥ１４４に接続する信号として設定される。
【００３６】
なお、ＬＯＧＩＣ―Ａ１１１とＳＩＧ―Ａ１２１、ＬＯＧＩＣ―Ａ１１１とＳＩＧ―Ｂ１２２、およびＬＯＧＩＣ―Ｂ１１２とＳＩＧ―Ｂ１２２の接続については、既存のハードウェア記述言語に従って記述し、デザインツールに入力する。
【００３７】
論理合成において、ハードブロック１４０の各構成要素が専用リソースに、ＬＯＧＩＣ―Ａ１１１とＬＯＧＩＣ―Ｂ１１２が論理ロジックに、ＳＩＧ―Ａ１２１とＳＩＧ―Ｂ１２２が配線リソースに当てはめられる（ステップＳ４０２）。専用リソースは、ハードブロックの各構成要素専用のリソースであり、予め配置が固定されているリソースである。
【００３８】
次に、配置配線において、ハードブロック１４０の各構成要素、ＬＯＧＩＣ―Ａ１１１およびＬＯＧＩＣ―Ｂ１１２の配置と、ＳＩＧ―Ａ１２１とＳＩＧ―Ｂ１２２の配線が行われる（ステップＳ４０３）。ＬＯＧＩＣ―Ａ１１１およびＬＯＧＩＣ―Ｂ１１２の配置と、ＳＩＧ―Ｂ１２２の配線は、予めユーザによって指定された性能を満たすように試行を繰り返しながら行われる。
【００３９】
ステップＳ４０３の後、Ｇ―ＬＩＮＥ１４４と接続する信号として登録されたＳＩＧ―Ａ１２１の配線が行われる（ステップＳ４０４）。ＳＩＧ―Ａ１２１の配線がステップＳ４０３の後に行われる理由は、Ｇ―ＬＩＮＥ１４４を使用する信号は固定値を前提としているため、ＦＰＧＡの性能には影響しないからである。なお、ＳＩＧ―Ａ１２１は、ＳＩＧ―Ｂ１２２の配線で使用されなかった配線リソースを使用してＧ―ＬＩＮＥ１４４と接続される。つまり、Ｇ―ＬＩＮＥ１４４を使用する信号は、ステップＳ４０３において使用されなかった配線リソースを使用してＧ―ＬＩＮＥ１４４と接続される。
【００４０】
ステップＳ４０４の後、ユーザは、デザインツールのＧＵＩを介してＳＩＧ―Ａ１２１の値を設定する（ステップＳ４０５）。なお、コマンドラインのオプションの引数でデザインツールにＳＩＧ―Ａ１２１の値を設定しても構わない。
【００４１】
デザインツールは、ステップＳ４０３およびステップＳ４０４の配置配線の結果に基づいてビットストリームデータを生成する（ステップＳ４０６）。このとき、ステップＳ４０５で設定されたＳＩＧ―Ａ１２１の値をＳＷ１４３のプログラム可能なスイッチ群の設定情報としてビットストリームデータに保存する。
【００４２】
ステップＳ４０６の後、デザインツールは、記憶メモリ２００にビットストリームデータを記憶する（ステップＳ４０７）。
【００４３】
なお、ＳＷ１４３のプログラム可能なスイッチ群は、ビットストリームデータに保存された設定情報が‘１’である場合は、Ｇ―ＬＩＮＥ１４４とＶCC１４１とを接続するようにプログラムされ、設定情報が‘０’である場合は、Ｇ―ＬＩＮＥ１４４とＧＮＤ１４２とを接続するようにプログラムされるようにしておけばよい。
【００４４】
以上に説明したように、本実施形態のプログラマブルゲートアレイ１００は、図３に示されたように、論理素子からなるＬＯＧＩＣ―Ａ１１１を、接続素子（ＳＷ１４３）を介してＶCCまたはＧＮＤに接続可能な構造を有しているので、ＳＩＧ―Ａ１２１の値をビットストリームデータの生成時に設定できる。すなわち、インプリメント後にＳＩＧ―Ａ１２１の値を変更することができる。その結果、インプリメント後にＧ―ＬＩＮＥ１４４を使用する信号に設計変更が生じた場合にインプリメントの再実施をする必要がないので、インプリメント時間を省くことができるとともに、インプリメントによるデグレードの危険を回避することができ、設計変更にかかる開発工数を削減することが可能となる。
【００４５】
なお、本実施形態では、ハードブロックを１組しか使用していないが、図５に示すように、プログラマブルゲートアレイ１００に複数のハードブロックを配置してもよい。そのような構成によれば、ＳＩＧ―Ａ１２１のようにインプリメントを再実施することなく値の変更ができる信号を、複数ビットから構成される情報に適用できる。例えば、バージョンレジスタや通信データ内の送信元アドレスや受信元アドレスなどの情報に適用すれば、それらの情報をインプリメントを実施せずに変更することができる。
【００４６】
また、図５に示す例ではプログラマブルゲートアレイ１００の上下左右端にハードブロック１４０が配置されているが、ハードブロックはプログラマブルゲートアレイ１００の任意の位置に配置されていてもよい。例えば、図６に示すように、プログラマブルゲートアレイ１００の中心に配置されていてもよい。
【００４７】
また、複数のハードブロック間で、電源ラインとグランドラインを共有してもよい。そのような構成によれば、ハードウェアのリソースを減らすことができる。図７に示す例では、ＳＷ１４３ａおよびＧ―ＬＩＮＥ１４４ａを有するハードブロック１４０ａと、ＳＷ１４３ｂおよびＧ―ＬＩＮＥ１４４ｂを有するハードブロック１４０ｂとが、ＶCC１４１とＧＮＤ１４２を共有している。
【００４８】
また、本実施形態では、プログラマブルゲートアレイ１００としてＦＰＧＡを想定したが、プログラマブルゲートアレイ１００は、ＣＰＬＤ（Ｃｏｍｐｌｅｘ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）であってもよい。
【００４９】
図８は、本発明によるプログラマブルゲートアレイの主要部を示すブロック図である。図８に示すように、論理素子１１（実施形態では、ＬＯＧＩＣ―Ａ１１１およびＬＯＧＩＣ―Ｂ１１２で実現される。）を電源電位を供給するＶCC１２（実施形態では、ＶCC１４１で実現される。）と接地電位を供給するＧＮＤ１３（実施形態では、ＧＮＤ１４２で実現される。）とに接続させる接続素子１４（実施形態では、ＳＷ１４３で実現される。）を備えたことを特徴とする。
【００５０】
上記の実施形態には、以下のようなプログラマブルゲートアレイも開示されている。
【００５１】
論理素子１１と接続素子１４との間に、論理素子１１と接続素子１４とを接続可能な配線領域１５（実施形態では、配線リソース１２０で実現される。）が設けられているプログラマブルゲートアレイ。
【００５２】
配線領域１５と接続素子１４とを接続する専用ライン１６（実施形態では、Ｇ―ＬＩＮＥ１４４で実現される。）が設けられているプログラマブルゲートアレイ。
【符号の説明】
【００５３】
１０、１００  プログラマブルゲートアレイ
１１  論理素子
１２、１４１  ＶCC
１３、１４２  ＧＮＤ
１４  接続素子
１５  配線領域
１６  専用ライン
１１１  ＬＯＧＩＣ−Ａ
１１２  ＬＯＧＩＣ−Ｂ
１２０  配線リソース
１３０  コンフィグレーション部
１４０  ハードブロック
１４３  ＳＷ
１４４  Ｇ−ＬＩＮＥ
２００  記憶メモリ
【図１】
2012099760.tif 000003
【図２】
2012099760.tif 000004
【図３】
2012099760.tif 000005
【図４】
2012099760.tif 000006
【図５】
2012099760.tif 000007
【図６】
2012099760.tif 000008
【図７】
2012099760.tif 000009
【図８】
2012099760.tif 000010