JP2007520795A - テンプレートを利用したドメイン固有の再構成可能な論理 - Google Patents
テンプレートを利用したドメイン固有の再構成可能な論理 Download PDFInfo
- Publication number
- JP2007520795A JP2007520795A JP2006544636A JP2006544636A JP2007520795A JP 2007520795 A JP2007520795 A JP 2007520795A JP 2006544636 A JP2006544636 A JP 2006544636A JP 2006544636 A JP2006544636 A JP 2006544636A JP 2007520795 A JP2007520795 A JP 2007520795A
- Authority
- JP
- Japan
- Prior art keywords
- logical
- block
- port
- input
- output
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/1733—Controllable logic circuits
- H03K19/1735—Controllable logic circuits by wiring, e.g. uncommitted logic arrays
- H03K19/1736—Controllable logic circuits by wiring, e.g. uncommitted logic arrays in which the wiring can be modified
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Logic Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
再構成可能な論理コアのアーキテクチャを創成する方法が開示される。このアーキテクチャは、種々の目的に合わせて展開でき、その具体化は、エリア、性能及び電力の面で費用効果がよい。本発明は、テンプレートを用いるとかかるアーキテクチャを記述できるという知見を利用している。この場合、このアーキテクチャをテンプレートのインスタンスとして容易に創成できる。テンプレートは、再構成可能論理コアの論理コンポーネント、経路指定コンポーネント及びインタフェースコンポーネントを定めるモデルである。例えば、論理コンポーネントは、階層的順序で並んだ論理素子、処理素子、論理ブロック、論理タイル、及びアレイであるのがよい。経路指定コンポーネントは、論理コンポーネント相互間の相互接続手段となる経路指定軌道を含む経路指定チャネルから成るのがよい。インタフェースコンポーネントは、入力ポート及び出力ポートから成るのがよい。モデルは、多くのパラメータによって構成され、これらパラメータの値は、アプリケーションドメインに一致する。
Description
本発明は、再構成可能な論理コアのアーキテクチャを集積回路上に創成する方法に関し、アーキテクチャは、論理コンポーネント、経路指定(ルーティング)コンポーネント及びインタフェースコンポーネントを有する。本発明は又、かかる方法により創成されたアーキテクチャを有する再構成可能な論理コアに関する。
半導体技術について絶えず続けられているスケール縮小は、ウルトラスケール集積化を可能にした。したがって、消費者用途向けの多量の今日のICは、システムオンチップ(system-on-chip)という概念に従って具体化されている。システムオンチップ(SoC)では、システムコンポーネント(例えば、プログラマブルコア、メモリ、コプロセッサ、周辺装置)は、同一シリコン片上に集積化されている。オンチップ集積化により、システムの性能が向上すると共にそのコストが低くなる。
従来、SoCコンポーネントは、専用(ハードワイヤード)コアかプログラマブル(汎用又はDSP)コアかのいずれかとして具体化されている。専用コアは、高性能であることを特徴とし、機能性は典型的には、1つの特定の機能に制限され、これに対し、プログラマブルコアは、性能が比較的低いが、機能性を恣意的(任意)に変更できるという特徴をもつ。劇的に増大するICマスクセット費用に鑑みて、台頭しつつある用途における性能に対する費用の観点の重要性の高まり及び専用コア及びプログラマブルコアだけを用いてSoCを設計する消費者電子マーケットの競合的性格は、十分に実行可能である解決策をもはやもたらしていない。
これらの理由で、再構成可能な論理は、今日では、専用コア及びプログラマブルコアの魅力的な代替手段と見なされている。第1に、再構成可能論理は、デバイスの作製後にかかるデバイスの機能性を変更することができる。第2に、再構成可能論理は、性能とプログラマブルプロセッサの要する費用との間にバランスのとれたトレードオフの関係を提供する。その結果、再構成可能論理をSoCに埋め込むことにより、ICのコストのかかる再設計の実施回数を減少させることができると共に最終製品の寿命が延びる。
再構成可能論理デバイスの典型的な例は、FPGA(書替え可能(フィールドプログラマブル)ゲートアレイ)である。FPGAは、基本論理機能及び基本算術機能をビットレベルで実行するようプログラム可能なコンピュータ処理素子のアレイである。コンピュータ処理素子は、これ又プログラム可能な相互接続ネットワークにより包囲されている。相互接続ネットワークは、コンピュータ処理素子相互間の通信を可能にする。アレイの外縁部のところに配置されたプログラム可能入力/出力素子は、他のシステム資源とのインタフェースとして役立つ。
再構成可能な論理デバイスのプログラム可能な性質は、一方においては、これらのアプリケーションスペースが広いので有益であるが、専用論理利用デバイス(ASIC)と比較して、これらの領域、性能及び電力消費量のオーバーヘッドが生じる理由でもある。オーバーヘッドは、かかるデバイス中に存在する多量のスイッチ、コンフィギュレーションメモリセル及び相互接続ワイヤにより生じる。それ故、スイッチ、コンフィギュレーションメモリセル及び相互接続ワイヤの数をかかるコンポーネントにとって必要なレベルに対してバランスを取る必要がある。
種々のアプリケーション又は適用分野及びかくして種々のシステム要件に鑑みて、SoC上に集積可能に取り付けられる埋め込み型FPGA(eFPGA)コアは、種々の寸法形状で入手できなければならない。これは、通常幾つかのあらかじめ定められた寸法で製造され、システム全体の具体化を標的にするスタンドアロン型FPGAとは対照的である。種々の寸法形状の次に、eFPGAコアは、領域、性能及び電力の面でも費用効果がよくなくてはならず、これらは、比較的短時間で実現可能でなければならない。これらの特徴は、コストに敏感な消費者用途にとって高品質SoCを設計する上で必要不可欠である。今日の再構成可能論理コアの汎用アーキテクチャは、これら要件を満たすようになっていない。
本発明の目的は、種々の目的に合わせて展開でき、その具体化が領域、性能及び電力の面で費用効果のよい再構成可能論理コアのアーキテクチャを創成する方法を提供することにある。この目的は、請求項1の特徴事項記載部分により特徴付けられる方法を提供することにより達成される。
本発明は、テンプレートを用いるとかかるアーキテクチャを記述できるという知見を利用している。この場合、このアーキテクチャをテンプレートのインスタンスとして容易に創成できる。テンプレートは、再構成可能論理コアの論理コンポーネント、経路指定コンポーネント及びインタフェースコンポーネントを定めるモデルである。例えば、論理コンポーネントは、階層的順序で並んだ論理素子、処理素子、論理ブロック、論理タイル、及びアレイであるのがよい。経路指定コンポーネントは、論理コンポーネント相互間の相互接続手段となる経路指定軌道を含む経路指定チャネルから成るのがよい。インタフェースコンポーネントは、入力ポート及び出力ポートから成るのがよい。モデルは、多くのパラメータによって構成され、これらパラメータの値は、アプリケーションドメインに一致する。
例えば、アプリケーションドメインは、データ経路指向機能性、ランダム論理指向機能性又はメモリ指向機能性を含む場合がある。各アプリケーションドメインは、コンポーネントの或る特定のアーキテクチャを必要とする。例えば、データ経路指向論理素子は、或る特定の数の主要入力ポート、補助入力ポート、キャリー入力ポート、少なくとも1つの算術出力ポート、ブール出力ポート及びキャリー出力ポートを有するアーキテクチャを備えなければならない。これら入力ポート及び出力ポートの個数は、テンプレートのパラメータである。テンプレートの全てのパラメータについて適当な値を選択することにより、テンプレートにより創成されるアーキテクチャは、特定のアプリケーションドメインに合わせて微調整できる。その場合、再構成可能論理コア中の例えば多量のスイッチ及び相互接続ワイヤにより生じるオーバーヘッドを著しく減少させることができ、しかも、再構成可能論理コアは、特定のアプリケーションドメイン内で複数の機能を実行するのに十分な融通性を依然として有する。
本発明の技術的思想は、テンプレート利用ドメイン固有再構成可能論理と呼ばれる。この技術的思想の主要な特徴は、次の通りである。
−再構成可能論理アーキテクチャが、汎用目的ではなく、アプリケーションドメイン固有であること。
−の由来の元である再構成可能論理アーキテクチャの汎用テンプレートからドメイン固有インスタンスを導き出せるということ。
−モジュール化設計思想、特にモジュール化アーキテクチャにより、最小数の種々のタイプのタイルを用いて可変寸法再構成可能論理コアを作製できること。
−の由来の元である再構成可能論理アーキテクチャの汎用テンプレートからドメイン固有インスタンスを導き出せるということ。
−モジュール化設計思想、特にモジュール化アーキテクチャにより、最小数の種々のタイプのタイルを用いて可変寸法再構成可能論理コアを作製できること。
広いアプリケーション領域を保証するため、伝統的なFPGA(及びeFPGA)は、汎用的に作られ、それにより、これらのコストオーバーヘッドが増大する。しかしながら、SoCは代表的には、可能な限り全てのアプリケーションドメインではなく特定のアプリケーションドメインを標的としている。アプリケーションドメイン又はアプリケーションの1つのクラスに属するアプリケーションが、ほぼ同じ特性及び機能を共有しているので、かかるドメインについて再構成可能論理アーキテクチャを最適化することが可能である。このように、コストオーバーヘッドの著しい減少を達成することができる。本発明のテンプレートは、以下の他の利点を有する。
−テンプレートは、ドメイン固有再構成可能論理コア、例えば埋め込み型FPGAの迅速且つ融通性のある作製を可能にする。
−汎用アーキテクチャモデルを用い、そのパラメータの恣意的な変更を可能にすることにより、多くの種々のアーキテクチャインスタンスを作製することができる。これにより、従来型(マニュアル)方法を用いて創成できるレベルよりも非常に大きな集合をなす潜在的に興味ある解決策で実験による体系的なアーキテクチャスペース検査が可能になる。
−種々の再構成可能論理コア(テンプレートインスタンス)の大きな集合に関するVLSI具体化プロセスの複雑さは、例えばネットリスト又はレイアウトの形態をしたこれらのアーキテクチャの仕様を汎用アーキテクチャテンプレートから自動的に創成できれば、かなり軽減できる。
−マッピング(CAD)ツール(例えば、テクノロジーマッピング、配置経路指定)の必要性のためにアーキテクチャをモデル化するためにパラメータ決定可能アーキテクチャテンプレートも又、使用される場合、かかるツールは、再標的可能に作ることができ、これは、これらツールを種々のプラットホーム上で展開できるということを意味する。
−汎用アーキテクチャモデルを用い、そのパラメータの恣意的な変更を可能にすることにより、多くの種々のアーキテクチャインスタンスを作製することができる。これにより、従来型(マニュアル)方法を用いて創成できるレベルよりも非常に大きな集合をなす潜在的に興味ある解決策で実験による体系的なアーキテクチャスペース検査が可能になる。
−種々の再構成可能論理コア(テンプレートインスタンス)の大きな集合に関するVLSI具体化プロセスの複雑さは、例えばネットリスト又はレイアウトの形態をしたこれらのアーキテクチャの仕様を汎用アーキテクチャテンプレートから自動的に創成できれば、かなり軽減できる。
−マッピング(CAD)ツール(例えば、テクノロジーマッピング、配置経路指定)の必要性のためにアーキテクチャをモデル化するためにパラメータ決定可能アーキテクチャテンプレートも又、使用される場合、かかるツールは、再標的可能に作ることができ、これは、これらツールを種々のプラットホーム上で展開できるということを意味する。
再構成可能論理をそれ自体アプリケーションドメインに合わせて調節するという考え方が知られていることは注目される。再構成可能論理を汎用性が低くなるように構築した場合の利点は、過去に認識されており、種々のアプリケーションドメイン固有再構成可能論理アーキテクチャが、大抵の場合DSPタイプのアプリケーションについて学会で提案された。また、粗粒度再構成可能コンピュータ処理アーキテクチャ(粗粒度再構成可能コンピュータ処理アーキテクチャは、古典的なFPGAとしてビットレベルに代わりワードレベルで再構成可能である)の導入は、或る特定のアプリケーション領域におけるコスト軽減の考え方によって推進された。かかるアーキテクチャの例としては、ヒューレットパッカード社のRAAアーキテクチャ及びPACTからのXPPプロセッサが挙げられる。アプリケーションドメイン固有再構成可能コンピュータ処理の更に別の考え方は、ワシントン大学におけるトーテム(Totem)プロジェクトの一部として提案された(コンプトン(Compton)及びホウク(Hauck)共著,「(Totem: Custom Reconfigurable Array Generation)」,Proceedings of IEEE Symposium on FPGAs for Custom Computing Machines:(特注のコンピュータ処理機械のためのFPGAに関するIEEEシンポジウムの議事録)」,2001年4月)。この場合、あらかじめ定められたアーキテクチャテンプレート及び1組の前もって知られているアルゴリズムを用いることにより粗粒度カスタム再構成可能論理アーキテクチャの自動的創成を可能にするソフトウェアパッケージが開発された。融通性の相当な減少により、トーテムアーキテクチャは、FPGAのコストよりもASICのコストに近いコストレベルを達成することができる。
また、パラメータ決定可能な再構成可能論理アーキテクチャの技術的思想が過去に用いられたことも注目される。ベッツ(Betz)他著,「Architecture and CAD for Deep-Submicron FPGAs」クルヴァー・アカデミック・パブリッシャーズ( Kluwer Academic Publishers),1999年では、融通性のあるCADツールセットの目的でFPGAアーキテクチャの種々の変性型をモデル化するためにパラメータ決定可能記述が用いられる。VPR(汎用性のある配置及び経路指定)と呼ばれる配置及び経路指定ツールを含むかかるツールセット並びにT−VPack(VPR用のタイミング駆動パッキング)と呼ばれるパッキング(クラスタ化)ツールは、LUTを利用したFPGAアーキテクチャを標的とするマッピングフローの一部として使用できる。ベッツにより用いられたアーキテクチャモデルは、或る程度の制約をもたらし、このために、比較的単純なFPGA構造をモデル化できるに過ぎない。ベッツのアーキテクチャモデルの詳細は、高レベル記述からのアーキテクチャ創成プロセスの自動化を特に強調した状態で、ベッツ等によって書かれた参考文献に記載されている。
しかしながら、以下の特徴は、本発明の技術的思想を既に知られている技術的思想とは著しく異なるものにしている。
最初に、単一アプリケーションドメインに向けて最適化されているに過ぎない学会からのアプリケーション指向アーキテクチャとは異なり、本発明の技術的思想は、種々のアプリケーションドメインの要件を考慮に入れることにより完全なアプローチを用いている。第2に、本発明の技術的思想は、カーネル(核)を処理する同様なタイプを互いに異なるアプリケーションドメイン間で共有できるということを前提としている。これは、類似性に基づいてアプリケーションクラスとして分類できる或る特定のアプリケーションドメインの場合、必要なアーキテクチャのタイプは1つだけであることを意味している。これは、非常に多種多様な趣の再構成可能論理アーキテクチャのサポートを経済的に正当化できない場合が多いので本質的である。第3に、本発明は、例えばトーテムプロジェクトで提案されたアーキテクチャにより提供されるレベルよりも非常に高いレベルの融通性を目的としており、トーテムアーキテクチャは、限定された組をなす非常に明確に定義されたカーネルのみに向けて最適化されている。一方、これにより、コストにおけるマイナス面が増大し、他方、リスクは低くなる。というのは、マップされたカーネルは、依然として更新でき又は再構成可能アーキテクチャをシリコン中に具体化した後は新しいものに置き換え可能だからである。
また、再構成可能アーキテクチャのベッツのモデルは、本発明の再構成可能論理アーキテクチャのテンプレートとは著しく異なっている。第1に、ベッツのモデルの主目的は、マッピングツール用の経路指定アーキテクチャの創成における融通性を達成することにある。その結果、かかるモデルにおける論理ブロックに関する情報は、ツールの適正な機能発揮に必要不可欠である非常に少ないパラメータに縮小されている。原理的には、経路指定アーキテクチャのみを創成することができ、他方、論理ブロックは、特定の細分性のブラックボックスとしてモデル化される。これとは対照的に、本発明のテンプレートは、再構成可能論理デバイスの完全なアーキテクチャ、即ち、全ての機能ブロック(論理及び入力/出力ブロック)及び関連経路指定資源を定める。さらに、本発明のテンプレートは、マッピングCADフローと物理的設計フロー(例えば、レイアウト作製)の両方に利用できる。第2に、ベッツのモデルは、従来型汎用FPGAアーキテクチャを目的としている。これは、単純なk−inputLUTをかかるアーキテクチャの基本論理素子として見なし、LUTは、互いにクラスタ化でき、それにより一層粗い論理ブロックが形成される。これは、アプリケーションドメイン指向アーキテクチャのモデル化向けの本発明のテンプレートとは対照的である。かくして、テンプレートパラメータの値は、標的アプリケーションドメインで決まる。さらに、本発明者のモデルにおける基本論理素子は、T−VPack及びVPRで想定されている単純k−LUT素子よりも非常に複雑な場合がある。第3に、ベッツのアーキテクチャモデルは、4つのレベルの階層に基づいており、これに対し、本発明者のアーキテクチャテンプレートは、5つのレベルを特徴としており、本発明者のモデルにおける階層の追加のレベルは、機能的に異なる再構成可能論理構造の曖昧さのない記述を可能にする。
もう1つの注意点として、既に知られている方式に関し上述の差だけが本発明の技術的思想を特に有利なものにするわけではない。もう1つの重要な独特の特徴は、再構成可能論理アーキテクチャのアプリケーションドメイン固有化の技術的思想と汎用アーキテクチャテンプレートからのこれらの自動創成(派生)の技術的思想の組合せにある。この組合せは、当業者には理解されるように包括的な方法論を定める。
米国特許第6,476,636号明細書は、特定の商用eFPGA(アクテル・コーポレイション(Actel Corporation))のアーキテクチャを開示していることが注目される。完全なデバイスは、タイルから組み立てられ、これらタイルは、厳密に定義される。この特許文献は、経路指定アーキテクチャの非対称性の問題に取り組んでいない。
最後に、米国特許第6,301,696号明細書は、所謂「硬化された」FPGAを作製する方法論を開示していることが注目される。「硬化」という用語は、金属接続を備えたプログラムドFPGAのオン状態スイッチをバイパスすることを意味し、これにより、性能の向上が得られる。しかしながら、最終FPGAのシリコン領域は、古典的なFPGAと同一である。「テンプレート」という用語は、中立(非構成)FPGAデバイスを説明するために用いられている。
本発明の方法の実施形態は、請求項2に記載されている。この実施形態では、テンプレートは、アレイを有し、このアレイは、複数個の論理タイルを有し、論理タイルの数は、第1のパラメータである。別の実施形態が請求項3に記載されており、アレイのアスペクト比は、第2のパラメータである。
請求項4は、本発明のテンプレートの別の実施形態を記載している。この実施形態では、テンプレートは、
−第1の論理タイルに結合されている少なくとも1つの単純入力/出力タイルと、
−第2の論理タイルに結合されている経路指定機能性を備えた少なくとも1つの入力/出力タイルと、
−少なくとも2つの入力/出力タイルに結合されているコーナ経路指定タイルとを更に有する。
−第1の論理タイルに結合されている少なくとも1つの単純入力/出力タイルと、
−第2の論理タイルに結合されている経路指定機能性を備えた少なくとも1つの入力/出力タイルと、
−少なくとも2つの入力/出力タイルに結合されているコーナ経路指定タイルとを更に有する。
請求項5は、本発明の論理タイルの実施形態を記載している。この実施形態では、論理タイルのうち少なくとも1つは、
−複数個の論理ブロックポートを有する論理ブロックと、
−経路指定資源とを有し、該経路指定資源は、
−複数個の経路指定トラックと、
−論理ブロックポートを隣りの論理タイルに結合するよう構成された論理ポートと、
−経路指定トラックを隣りの論理タイルに結合するよう構成された経路指定ポートと、
−論理ブロックと隣りの論理タイルとの直接接続を可能にする直接ポートとを有する。
−複数個の論理ブロックポートを有する論理ブロックと、
−経路指定資源とを有し、該経路指定資源は、
−複数個の経路指定トラックと、
−論理ブロックポートを隣りの論理タイルに結合するよう構成された論理ポートと、
−経路指定トラックを隣りの論理タイルに結合するよう構成された経路指定ポートと、
−論理ブロックと隣りの論理タイルとの直接接続を可能にする直接ポートとを有する。
請求項6は、本発明の論理ブロックの実施形態を記載している。この実施形態では、論理ブロックポートは、第1の主要な入力ポートを有し、論理ブロックは更に、
−複数個の処理クラスタを有し、該処理クラスタの数は、第3のパラメータであり、処理クラスタのうちの少なくとも1つは、複数個の直列接続された処理素子を有し、該処理素子の数は、第4のパラメータであり、処理クラスタは、複数個の第1補助入力ポート、第1のキャリー入力ポート及び第1のキャリー出力ポートを更に有し、
−第1の入力選択ブロックにより出された制御信号により制御されるよう構成された第1のマルチプレクサブロックを有し、該第1のマルチプレクサブロックは、処理素子により出された第1の中間信号の中からの選択を行うよう構成され、
−第1の中間信号の選択を受け取って論理ブロックの出力信号の数を決定するよう構成された出力選択ブロックを有し、該出力選択ブロックは更に、出力信号を発生させ、該出力信号を論理ブロックの出力ポートに送るよう構成されており、
−出力信号を重ね合わすよう構成されたフリップフロップブロックを有する、請求項5記載の方法。
−複数個の処理クラスタを有し、該処理クラスタの数は、第3のパラメータであり、処理クラスタのうちの少なくとも1つは、複数個の直列接続された処理素子を有し、該処理素子の数は、第4のパラメータであり、処理クラスタは、複数個の第1補助入力ポート、第1のキャリー入力ポート及び第1のキャリー出力ポートを更に有し、
−第1の入力選択ブロックにより出された制御信号により制御されるよう構成された第1のマルチプレクサブロックを有し、該第1のマルチプレクサブロックは、処理素子により出された第1の中間信号の中からの選択を行うよう構成され、
−第1の中間信号の選択を受け取って論理ブロックの出力信号の数を決定するよう構成された出力選択ブロックを有し、該出力選択ブロックは更に、出力信号を発生させ、該出力信号を論理ブロックの出力ポートに送るよう構成されており、
−出力信号を重ね合わすよう構成されたフリップフロップブロックを有する、請求項5記載の方法。
請求項7は、本発明の論理ブロックの実施形態を記載しており、この実施形態では、第1の入力選択ブロックは、第1の主要入力ポートを処理素子に設けられた第2の主要入力ポートに結合したり、入力信号を選択するよう構成され、第1の入力選択ブロックは更に、フィードバックループが実現されるよう論理ブロックの出力信号を入力信号として受け取るよう構成されている。
請求項8は、本発明の処理素子の実施形態を記載している。この実施形態では、処理素子のうち少なくとも1つは、
−複数個の直列接続された論理素子を有し、該論理素子の個数は、第5のパラメータであり、
−第2の主要入力ポートを有し、
−複数個の第2の補助入力ポートを有し、該第2の補助入力ポートは、論理素子に設けられた第3の補助入力ポートに結合され、
−第2のキャリー入力ポートを有し、該第2のキャリー入力ポートは、直列接続された論理素子のうち最初の素子に設けられた第3のキャリー入力ポートに結合され、
−第2のキャリー出力ポートを有し、該第2のキャリー出力ポートは、直列接続された論理素子のうち最後の論理素子に設けられた第3のキャリー出力ポートに結合され、
−複数個の第1の算術出力ポートを有し、
−第1のブール出力ポートを有し、
−第2の入力選択ブロックを有し、該第2の入力選択ブロックは、第2の主要入力ポートを論理素子に設けられた第3の主要入力ポートに結合したり、入力信号を選択するよう構成され、
−第2のマルチプレクサブロックを有し、該第2のマルチプレクサブロックは、第2の入力選択ブロックにより出された制御信号により制御されるよう構成されており、第2のマルチプレクサブロックは、論理素子に設けられた第2のブール出力ポートから来る信号を選択するよう構成され、第2のマルチプレクサブロックは更に、第1のブール出力ポートのための出力信号を生じさせるよう構成され、
論理素子に設けられた第2の算術出力ポートは、第1の算術出力ポートに結合されている。
−複数個の直列接続された論理素子を有し、該論理素子の個数は、第5のパラメータであり、
−第2の主要入力ポートを有し、
−複数個の第2の補助入力ポートを有し、該第2の補助入力ポートは、論理素子に設けられた第3の補助入力ポートに結合され、
−第2のキャリー入力ポートを有し、該第2のキャリー入力ポートは、直列接続された論理素子のうち最初の素子に設けられた第3のキャリー入力ポートに結合され、
−第2のキャリー出力ポートを有し、該第2のキャリー出力ポートは、直列接続された論理素子のうち最後の論理素子に設けられた第3のキャリー出力ポートに結合され、
−複数個の第1の算術出力ポートを有し、
−第1のブール出力ポートを有し、
−第2の入力選択ブロックを有し、該第2の入力選択ブロックは、第2の主要入力ポートを論理素子に設けられた第3の主要入力ポートに結合したり、入力信号を選択するよう構成され、
−第2のマルチプレクサブロックを有し、該第2のマルチプレクサブロックは、第2の入力選択ブロックにより出された制御信号により制御されるよう構成されており、第2のマルチプレクサブロックは、論理素子に設けられた第2のブール出力ポートから来る信号を選択するよう構成され、第2のマルチプレクサブロックは更に、第1のブール出力ポートのための出力信号を生じさせるよう構成され、
論理素子に設けられた第2の算術出力ポートは、第1の算術出力ポートに結合されている。
請求項9は、本発明の論理素子の実施形態を記載している。この実施形態では、論理素子のうちの少なくとも1つは、
−複数個の第3の主要入力ポートを有し、該第3の主要入力ポートの個数は、第6のパラメータであり、
−第3のキャリー入力ポート又は別のキャリー入力ポートを有し、
−第3のキャリー出力ポート又は別のキャリー出力ポートを有し、
−第2のブール出力ポートのうちの1つを有し、
−複数個の第2の算術出力ポートを有し、該第2の算術出力ポートの個数は、第7のパラメータである。
−複数個の第3の主要入力ポートを有し、該第3の主要入力ポートの個数は、第6のパラメータであり、
−第3のキャリー入力ポート又は別のキャリー入力ポートを有し、
−第3のキャリー出力ポート又は別のキャリー出力ポートを有し、
−第2のブール出力ポートのうちの1つを有し、
−複数個の第2の算術出力ポートを有し、該第2の算術出力ポートの個数は、第7のパラメータである。
請求項10は、本発明の方法により創成されたアーキテクチャを有する再構成可能論理コアを記載している。本発明の方法は、かかる再構成可能論理コア用のアーキテクチャを創成する上で特に有利である。これらアーキテクチャは、自動的に創成できる。
図面を参照して本発明を詳細に説明する。
本発明のアーキテクチャテンプレートは、限定された数の基本ビルディングブロック(タイルと呼ばれる)を用いてアプリケーションドメイン指向の再構成可能な(スタンドアロン型FPGA又は埋め込み型FPGAの)論理コアの任意タイプの完全アーキテクチャを創成する手法を規定する。創成されたアーキテクチャは、均質且つ階層的であると見なされる。以下に説明するアーキテクチャテンプレートの好ましい実施形態では、階層のレベル(地位が上がる順番)は、次のモジュール、即ち、論理素子、処理素子、論理ブロック、論理タイル及び再構成可能な論理コアのアレイを定める。
図1は、本発明のテンプレートのビルディングブロックとして使用できる論理素子LEを示している。論理素子LEは、再構成可能な論理アーキテクチャの基本ルックアップテーブルを利用した(LUT利用)機能コンポーネントである。論理素子のタイプTYPEは、アプリケーションドメイン(アプリケーションクラス)のタイプで決まる。論理素子LEは、主要入力ポートの集合P={pi:0<i≦|P|}、補助入力ポートの集合S={si:0<i≦|S|}及びキャリー入力ポートciを有する。この論理素子は、算術出力ポートの集合A={ai:0<i≦|A|}、ブール出力ポートb及びキャリー出力ポートcoを更に有する。論理素子LEのポートの個数及びその機能性は、論理素子のタイプTYPEで決まる。タイプTYPEは、再構成論理コアが使用される対象としてのアプリケーションドメインで決まる。
ドメイン固有論理素子の3つの例が、図2に示されている。
論理素子のポートの個数及び機能性は、それぞれ、図3及び図4に与えられている。この機能性は、論理素子で具体化できる基本ブール機能、算術機能及びメモリ機能の細分性として記述される。この意味では、細分性は、最大ブール機能の入力ベクトルのビット数、算術機能の単一オペランドのビット数及びメモリのデータ入力のビット数として定義される。
図5は、最高le|N|(これを含む)までの複数個の論理素子le1,le2を有する本発明の処理素子を示している。処理素子は、直列接続された論理素子の集合N={lei:0<i≦|N|}を有する。|N|は、処理素子で具体化できる換算固有ブール機能の最大細分性(入力ベクトルのビット数の面で)を定める。処理素子は、主要入力ポートの集合X={xi:0<i≦|X|}、補助入力ポートの集合S={si:0<i≦|S|}及びキャリー入力ポートciを有する。この処理素子は、出力ポートの集合Y={yi:0<i≦|Y|}、ブール出力ポートz及びキャリー出力ポートcoを更に有する。
処理素子の入力ポートxiは、入力選択ブロックを介して|N|個の連続した論理素子の主要入力ポートpiに接続されている。1組のマルチプレクサから成る入力選択ブロックが、処理素子の機能モードに応じて、論理素子の主要入力ポートpiは、処理素子の主要入力ポートxiから正確な信号の組を常時受け取るようにする。処理素子の主要入力ポートの個数|X|は、処理素子で具体化できる最大ブール機能、算術機能又はメモリ機能(どれかがより大きい)の1ビット入力の累積個数に等しい。処理素子の|S|個の補助入力ポートsiは、全ての論理素子の補助入力ポートsiに直接接続されている。これとは対照的に、論理素子のキャリー入力ポートci及びキャリー出力ポートcoは、互いに連鎖されている。これが意味することは、最初のものを除き全ての論理素子のキャリー入力ポートciが、先の論理素子のキャリー出力ポートcoに接続されているということである。処理素子の最初の論理素子、即ち、le0のキャリー入力ポートciは、処理素子のキャリー入力ポートciに接続され、これと同様に、処理素子の最後の論理素子、即ちle|N|のキャリー出力ポートcoは、処理素子のキャリー出力ポートcoに接続されている。論理素子の算術出力ポートaiは、処理素子の|Y|出力ポートyiに直接接続されている。論理素子のブール出力ポートbは、2:1マルチプレクサのlog|N|レベルネットワークから成るマルチプレクサブロックで多重化される。マルチプレクサは、入力選択ブロックにより出される制御信号の集合U={ui:0<i≦|U|}によって制御される。このブロックでは最終の2:1マルチプレクサの出力であるマルチプレクサブロックの出力は、先の処理素子のブール出力zに接続されている。
処理素子の入力ポート及び出力ポートの個数は、その基本コンポーネントとして用いられる論理素子のタイプTYPEに応じた状態で、図6に与えられている。図7は、種々のタイプTYPEの論理素子が組み込まれた処理素子の機能性を記載している。
図8は、最高pe|M|(これを含む)までの処理素子pe1,pe2のクラスタを有する論理ブロックを示している。論理ブロックは、処理素子の集合M={pei:0<i≦|M|}を有し、これらは、直列接続された処理素子の|K|平行クラスタの状態で整然と並べられている。一クラスタ中の処理素子の個数は、例えば、或る特定のアプリケーションで用いられる語長で決まる。各クラスタは、独立した集合又は組をなす補助入力ポートti及び独立したキャリー入力ポートcii及びキャリー出力ポートcoiで特徴付けられる。論理ブロックの出力信号を重ね合わせるのがよく、このことは、これら出力信号をクロック信号で同期させることができるということを意味している。また、出力信号を論理ブロックの入力に送ることができ、それによりより複雑な論理機能又はフィードバックループを備えた機能の実現が可能になる。入力ピン、例えば補助入力ポートti及びキャリー入力ポートciiは、これらが排他的に用いられるので、場合によっては共有することができ又はマージすることができるということが注目される。
この論理ブロックは、主要入力ポートの集合I={ii:0<i≦|I|}及び論理ブロックの出力ポート集合O={oi:0<i≦|O|}のポートに接続された|O|フィードバックポートを有している。論理ブロックは、補助入力ポートの集合T={ti:0<i≦|T|∧|T|=|S|・|K|}を更に有している。集合Tの第1の|S|入力、即ち、ti,…,t|S|は、処理素子の第1のクラスタに属し、集合Tの第2の|S|入力、即ち、t|S|+1,…,t2・|S|は、処理素子の第2のクラスタに属する。以下同様である。論理ブロックは、|K|キャリー入力ポートcii及び|K|キャリー出力ポートcoiを更に有し、ここで、“i”は、0<i≦|K|であるようなクラスタ指数である。
|I|主要入力及び|O|フィードバック入力は、1組のマルチプレクサを有する入力選択ブロックに送られる。論理ブロックの入力選択ブロックは、2つの目的に役立つ。第1に、論理ブロックの主要入力ポートの個数が、全てのクラスタの処理素子の主要入力ポートの個数よりも少ない場合、即ち、もし|I|<|M|・|X|であれば、入力選択ブロックは、論理ブロックの主要入力と処理素子の主要入力との間の完全接続性を実現する。完全接続性により、具体化に要する費用を軽減させた状態で所要レベルの(経路指定)融通性(これは、ランダム論理機能にとって必要不可欠である)が保証される。これは、論理ブロックの入力ポートの個数の減少により、経路指定資源ハードウェアの量が減少するからである。処理素子の主要入力ポートの個数|X|が処理素子の実行できる最大ブール(ランダム論理)機能の入力ベクトルのビット数kによって定められる(即ち、|X|=k)であるアーキテクチャの場合、次の実験式、即ち、|I|=|X|/2・(|M|+1)を用いて、処理素子の主要入力の個数|X|と|M|処理素子を有する論理ブロックの主要入力の個数|I|との関係を定めることができる。
第2に、入力選択ブロックは、論理ブロックのフィードバック(出力)ポートの集合Oからの信号が処理素子の入力として選択される場合、フィードバックの実現を可能にする。目標アプリケーションドメインに応じて、論理ブロックの入力選択ブロックは、1対1フィードバック接続方式か全フィードバック接続方式かのいずれかを備えた状態で設計されるのがよい。1対1フィードバック接続方式は、データ経路支配アーキテクチャにとって代表的であり、逐次算術モジュール、例えばカウンタ、インクレメンタ及びデクリメンタの実現を可能にし、この場合、アーギュメントのうちの1つは、重ね合わせ信号を受け取る。この理由で、1対1フィードバック接続方式は、論理ブロックの|O|出力ポートを全ての処理素子の|M|・|X|主要入力ポートに接続して、算術出力のi番目のビットと関連した論理ブロックの出力ポートoiが第1算術アーギュメントのi番目のビットと関連している処理素子の主要入力に接続されるようになっている。
これとは対照的に、全フィードバック接続方式は、論理ブロックの全ての|O|出力ポートを処理素子の全ての|M|・|X|主要入力ポートに接続する。この種の接続方式は、ランダム論理指向アーキテクチャにとって代表的であり、これにより、複雑なブール機能(この場合、フィードバック信号は、重ね合わされない)又は別のタイプの有限状態機械(この場合、フィードバック信号は、重ね合わされる)の実現が可能になる。1対1フィードバック接続方式及び全フィードバック接続方式を備えた入力選択ブロックが、それぞれ、図9a及び図9bに示されている。
図8では、入力選択ブロックの出力は、連続した処理素子の集合Xの主要入力ポートに接続されている。論理ブロックの集合Tの第1の|S|補助入力ポートは、第1のクラスタの全ての処理素子の集合Sの補助入力ポートに接続されている。これとは対照的に、論理ブロックのi番目のキャリー入力ポートciiは、2:1マルチプレクサを介して、i番目のクラスタの第1の処理素子だけのキャリー入力ポートciに接続されている。そのクラスタの残りの処理素子のキャリー入力ポートとキャリー出力ポートは、直列接続されている。i番目のクラスタ内の最後の処理素子のキャリー出力ポートcoは、論理ブロックのi番目のキャリー出力ポートcoiに接続されている。クラスタの直列接続を可能にするため、i番目のクラスタ(最初のクラスタを除く)の第1の処理素子のキャリー入力ポートのところの2:1マルチプレクサにより、論理ブロックのキャリー入力ポートciiからの信号か、i番目のクラスタのキャリー出力ポートcoからの信号かを選ぶことができる。
i番目のクラスタに属する処理素子の|S|補助入力ポートは、論理ブロックの補助入力ポートのi番目の集合、即ち、ポートt(i−1)・|S|+1,…,ti・|S|から信号を受け取る。さらに、i番目のクラスタの第1の処理素子のキャリー入力ポートは、論理ブロックのi番目のキャリー入力ポートciiから信号を受け取る。i番目のクラスタの残りの処理素子のキャリー入力ポートとキャリー出力ポートは直列接続されている。i番目のクラスタ内の最後の処理素子のキャリー出力ポートcoは、論理ブロックのi番目のキャリー出力ポートcoiに接続されている。
論理ブロックのマルチプレクサブロックは、入力選択ステージに起因する集合W={wi:0<i≦|W|}からの制御信号によって制御される2:1マルチプレクサのlog|M|ステージネットワークである。第1のステージのマルチプレクサは、連続した対をなす処理素子のブール出力ポートzからの信号の中から選ぶ。第2のステージの各マルチプレクサは、第1のステージの連続したマルチプレクサの出力からの1対の信号の中から選び、第3のステージの各マルチプレクサは、第2のステージの連続したマルチプレクサの出力からの1対の信号の中から選ぶ。以下同様である。全てのステージのマルチプレクサの出力信号は、マルチプレクサブロックの出力ポートに差し向けられる。これは、最後の(即ち、最後のステージの)マルチプレクサだけの出力信号がマルチプレクサブロックの出力ポートに差し向けられる処理素子のマルチプレクサブロックとは対照的である。
マルチプレクサブロックの出力ポートからの信号及び全ての処理素子の最初の|Y|出力ポートからの信号は、出力選択ブロックの入力に結合される。出力選択ブロックは、論理ブロックの出力信号の最終個数並びにこれら信号が見えるポートの最終個数を定めるマルチプレクサネットワークである。マルチプレクサブロックの全ての出力信号及び処理素子の全ての最初の|Y|信号は、論理ブロック出力として選択できると見なされる。出力選択ブロックからの信号は、フリップフロップブロックに差し向けられる。フリップフロップブロックにより、論理ブロックの出力ならばどれでも重ね合わせることができる。重ね合わされていても重ね合わされていなくても、フリップフロップブロックの出力信号は、論理ブロックの|O|出力ポートに差し向けられる。
図10は、論理素子のタイプTYPEで決まる論理ブロックの主要入力ポート及び出力ポートの個数を示している。図11は、論理素子のタイプTYPEで決まる、論理ブロックで具体化できる最大ブール機能、算術機能及びメモリ機能の細分性を示している。
図12は、本発明の論理ブロックLBを有する論理タイルを示している。この論理タイルは、再構成可能な論理アーキテクチャの主ビルディングブロックである。この論理タイルは、論理ブロックLB及び論理ブロックLBの経路指定資源を有する。経路指定資源は、水平及び垂直経路指定チャネル中の経路指定トラックの個数、これらの区分化(セグメンテーション)及び論理ブロックのポート(ピン)への経路指定トラックの接続の仕方を定めている。経路指定資源は、経路指定ワイヤセグメントを互いにリンクさせるプログラマブルスイッチのタイプを更に定めている。
論理タイルは、次の3つの互いに異なるタイプのポート、即ち、論理ポートLL(左)、LR(右)、LT(上)、LB(下)と、経路指定ポートRHL(水平左)、RHR(水平右)、RVT(垂直方向上)、RVB(垂直方向下)と、直接ポートDi(入力)及びDO(出力)とを有する。論理ポートは、論理ブロックのポートを隣接のタイルの経路指定トラックに接続するために用いられ、経路指定ポートは、論理タイル中の経路指定トラックの終端部であり、隣接のタイルの経路指定チャネルへの接続のために用いられ、直接ポートは、隣接の論理タイルへの直接的な接続、即ち、プログラマブルスイッチを通らない接続を可能にする。
図12のLは、論理ブロックLBの全ての論理ブロックポートの集合を示し、この集合は、主要入力ポートIの集合、補助入力ポートTの集合及びキャリー入力ポートCiの集合並びに出力ポートOの集合及びキャリー出力ポートCOの集合を含み、即ち、L=I∪T∪Ci∪O∪COである。
論理ブロックLBの集合L中の論理ブロックポートは、論理タイルの集合LL,LTのポートに接続されている。集合LL中のポートは、左隣りの論理タイルの集合LRのポートを介して左側の隣接の論理タイルの経路指定トラックに接続され、集合LTのポートは、上隣りの論理タイルの集合LBのポートを介して上側の隣接の論理タイルの経路指定トラックに接続されている。論理ブロックLBの集合L中のポートも又、論理タイル内の経路指定トラックに接続されている。論理タイルの経路指定トラックへの集合L中の論理ブロックポートの接続は、所謂接続ブロックで実現される。
接続ブロックの接続性は、連結性行列を用いて記述される。接続性マトリックスの行は、経路指定ポート組の元であり、列は、論理ブロックポートの組の元である。連結性行列は、値“0”及び値“1”で満たされる。マトリックス中の(i,j)位置のところの値“1”は、接続がi番目の経路指定トラックとj番目の論理ブロックポートとの間に存在することを意味し、値“0”は、接続が存在しないことを意味している。論理タイルの接続ブロック及びかくしてこれらの対応の連結性行列は、以下のように関数αT,αB,αL,αRによって記述される。
−αT:(RHL×LB)→{0,1};
−αB:(RHL×L)→{0,1};
−αL:(RVT×LR)→{0,1};
−αR:(RVT×L)→{0,1}
−αB:(RHL×L)→{0,1};
−αL:(RVT×LR)→{0,1};
−αR:(RVT×L)→{0,1}
これら行列も又、テンプレートのパラメータであると考えることができるということが注目される。行列の中身は、アルゴリズムを用いて自動的に生成できる。
直接接続ブロックにおける接続性、即ち、論理ブロックポートと論理タイルの直接ポートとの間の接続性は、同様な仕方で定義される。この場合、連結性行列の列は、直接ポート組Di又はDOの元によりアドレス指定され、列は、論理ブロックポート組Lの元によってアドレス指定される。入力のための直接接続ブロックは、関数βiによって記述され、出力に関する直接接続ブロックは、関数βOによって記述される。入力に関する直接接続ブロックの連結性行列の最後の|O|+|CO|列は、値“0”で満たされ(論理ブロックの出力ポートへの接続が行われない)、出力に関する直接接続ブロックの連結性行列の最初の|I|+|T|+|Ci|列は、値“0”で満たされている(論理ブロックの入力ポートへの接続が行われない)。直接ポートに関する連結性行列の充填を記述する接続性関数βi,βOは次のように定義される。
−βi:(Di×L)→{0,1};
−βO:(DO×L)→{0,1}
−βO:(DO×L)→{0,1}
経路指定トラックの全く同一の組に接続される(論理タイルの論理ポートを介して)と共にそれぞれ論理タイルの直接入力ポート及び直接出力ポートの同一の組に接続される論理ブロックの入力ポート及び出力ポートを単一のポートにのみ減少させることができる。
図13aには、論理ブロックの選択されたポート、直接ポート及び水平経路指定チャネルの経路指定トラック相互間の接続性の一例が、示されている。図13bは、これに対応した連結性行列を示し、図13cは、接続ブロックの考えられる具体化例を示している。
経路指定トラックの区分化(長さ)(即ち、経路指定トラックがプログラマブルスイッチにより分離される前にまたがる論理ブロックの個数)、スイッチブロックアーキテクチャ(即ち、水平及び垂直経路指定チャネル中の経路指定トラックの相互接続方法)及びプログラマブルスイッチのタイプは、関数λ:(RHL×RVT)→{0,ωi}であるように関数λによって定められる。関数λは、スイッチング行列を記述している。スイッチング行列の行は、経路指定ポート組RHLからの元であり、列は、経路指定ポート組RVTからの元である。スイッチング行列は、値“0”で又は組Ωからの元ωiで埋められ、Ω={ωi:ωi∈N\{0}∧1≦i<|Ω|}であるようになっており、Nは、自然数の集合である。集合Ωは、スイッチング点タイプの集合である。
スイッチング点タイプは、セグメント接続パターン及び経路指定トラックセグメント相互間の接続を生じさせるのに用いられるプログラマブルスイッチのタイプで定められる。セグメント接続パターンは、経路指定トラックセグメントをこれに対応した水平及び垂直経路セグメントに接続する方法を定める。プログラマブルスイッチは、スイッチング点における1対の経路指定トラックセグメント相互間の単一の接続の具体化例を定める。かくして、集合Ωのサイズは、セグメント接続パターンとプログラマブルスイッチタイプの組合せの数で決定され、その集合の元ωiにはそれに応じて番号が付けられている。例えば、2つの互いに異なるタイプのセグメント接続パターン(例えば、図14aでは「互いに素」及び「半分」)及び3つのタイプのプログラマブルスイッチ(例えば、図14bではパストランジスタスイッチ、デュアルパスゲートスイッチ及び双方向バッファ付きスイッチ)に関し、6つの互いに異なるスイッチング点ω1,…,ω6が可能である。互いに交差した2つの経路設定トラックが接続を有していない場合、値“0”をスイッチング行列の対応の位置に入れる。
論理タイル中の水平及び垂直トラックは、所謂ワイヤツイスタで終端している。ワイヤツイスタにより、各論理タイルの経路指定資源を同一に作ることができる。その結果、たった1つの論理タイルタイプで非常に多くの互いに異なる論理コアではなく、再構成可能な論理コアを創成するのに十分である。経路指定アーキテクチャが2つ以上の論理ブロックLBをまたいでいる経路指定セグメント(即ち、「長さ1」よりも長い長さを備えた経路指定セグメント)を有する場合にワイヤツイスタが必要である。その場合、2つ以上の論理ブロックLBをまたぐ等しい長さのセグメントを撚り合わせなければならない(図15b参照)。さらに、所与の長さのトラックの総数は常時、そのトラック長さの倍数でなければならない。例えば、長さ4の経路指定トラックの許容可能な個数は、4、8、12、16等である。水平及び垂直経路指定チャネル中のワイヤの撚りは、それぞれ関数θH及び関数θVで定められ、次の通りである。
−θH:(RHL×RHR)→{0,1};
−θV:(RVT×RVB)→{0,1}
−θV:(RVT×RVB)→{0,1}
関数θH,θVは、水平及び垂直ツイスト行列を定める。行列の行は、論理タイルの左及び上に位置する経路指定ポート組の元、即ち、それぞれRHL,RVTである。これら行列の列は、論理タイルの右及び下に位置する経路指定ポート組の元、即ち、それぞれRHR,RVBである。行列は、値“0”及び値“1”で満たされる。値“1”は、接続がこれら接続ポートと関連している経路指定トラック相互間に存在することを意味する。値“0”は、接続が存在しないことを意味する。典型的には、水平ツイスト行列と垂直ツイスト行列は、互いに同一である。
図15は、長さ1ワイヤセグメントを備えた3つのトラック及び長さ4ワイヤセグメントを備えた8つのトラックから成る経路指定チャネルを備えた経路指定アーキテクチャの一例を示している。図15aは、アーキテクチャを概念的な仕方で示している。注目されることとして、長さ1ワイヤセグメントは、接続スイッチタイプ1(例えば、「互いに素な」セグメント接続パターン及びパストランジスタ利用スイッチ)を使用し、これに対し、長さ4ワイヤセグメントは、接続スイッチタイプ2(例えば、「互いに素な」セグメント接続パターン及びバッファを利用したスイッチ)を用いている。図15bでは、かかるアーキテクチャの具体化例が示されている。長さ1よりも長い長さのワイヤセグメントは、長さを法とする(modulo-length)方式に従って撚り合わされている。最後に、図15cは、論理タイルのスイッチング行列を記載しており、この場合、値“1”及び“2”は、2つの互いに異なるタイプのスイッチング点を意味している。ツイスト行列(水平及び垂直)は、論理タイル中の経路指定トラックの撚り機構を記述している。
図16は、本発明の論理タイルLTを有するアレイを示している。本発明の再構成可能論理アーキテクチャの最も上のレベルは、論理タイルLTのアレイである。このアレイ中に含まれる論理タイルLTの数及びこのアレイのアスペクト比は、テンプレートのパラメータである。論理タイルLTは、二重の機能を有する補助タイルCRT,IORT,IOTにより囲まれている。まず最初に、これら論理タイルは、再構成可能論理ファブリックと同一シリコン片上に埋め込まれた他のシステム資源との間のインタフェースとして働く。第2に、これら論理タイルは、経路指定アーキテクチャを完成させる。後者は、アレイのエッジ上の論理タイルLTの経路指定資源により作られる外部経路指定チャネルがアレイの下側及び右側にのみ存在しているので必要である。したがって、経路指定IORTを備えた入力/出力タイルは、アレイの左側及び上側に置かれる。単純な入力/出力タイルIOTは、アレイの右側及び下側に置かれる。加うるに、外部経路指定チャネルを閉じるコーナ経路指定タイルCRTは、アレイの左上隅に置かれる。図16のボールド体で示されたリングは、このようにして作られた結果としての経路指定チャネルを示している。
論理タイルLTは、これらの経路指定ポートを介して隣接している。これは、水平左組RHLのポートが隣りの論理タイルの水平右組RHRのポートに接続されていることを意味している。これと同様に、垂直上組RVTのポートは、隣りの論理タイルの垂直方向下組RVBのポートに接続されている。左及び上における隣りの論理タイルの経路指定トラックへの接続は、それぞれ、ポートLL−LR及びLT−LBの組からの対をなすポートを介して具体化される。
経路指定CRT、IORTを備えた補助タイル及び単純補助タイルIOTのアーキテクチャの例が、図17及び図18に示されている。補助タイルCRT,IORT,IOTの素子は、論理タイルLTの素子のデフィニションに類似して定められる。経路指定IORTを備えた上入力/出力タイルは、図17aに示されており、これは、2組の入力/出力ポートFT,GB及び3組の経路指定ポート、即ち、RHL,RHR,RVBを有している。組FTのポートは、システム資源に接続され、組GBのポートは、アレイの上に位置する論理タイルLTの組LTのポートと経路指定IORTの無い上の入力/出力タイルの経路指定資源の接続を可能にする。組RHL,RHRの経路指定ポートは、それぞれ隣りのIORTタイルの組RHR,RHLのポートに接続されている。組RVBのポートは、アレイの上に位置する論理タイルLTの組RVTのポートに接続されている。組Eは、このタイルの直接入力及び出力ポートの組であり、これは、論理タイルLTの組Di,DOの直接入力及び直接出力ポートにそれぞれ接続されている。図17aの連結性行列γT,γB,δTは次のように定義される。
−γT:(RHL×GB)→{0,1};
−γB:(RHL×FT)→{0,1};
−δT:(E×FT)→{0,1}
−γB:(RHL×FT)→{0,1};
−δT:(E×FT)→{0,1}
図17bに示す経路指定IORTを備えた左入力/出力タイルは、経路指定IORTを備えた上入力/出力タイルと同一の素子を有している。しかしながら、これら素子の位置は、経路指定IORTを備えた上入力/出力タイルの素子の位置と鏡像関係にある。経路指定IORTを備えた左入力/出力タイルは、2組の入力/出力ポートFL,GR、3組の経路指定ポート、即ち、RVB,RVT,RHR及び1組の直接ポートEを有する。組FLのポートは、システム資源に接続され、組GRのポートは、アレイの左端に位置する論理タイルLTの組LTのポートと経路指定IORTのある左の入力/出力タイルの経路指定資源の接続を可能にする。組RVB,RVTの経路指定ポートは、それぞれ隣りのIORTタイルの組RVT,RVBのポートに接続されている。組RHRのポートは、アレイの左端に位置する論理タイルLTの組RHLのポートに接続されている。図17bの連結性行列γL,γR,δLは次のように定義される。
−γL:(RVT×GR)→{0,1};
−γR:(RVT×FL)→{0,1};
−δL:(E×FL)→{0,1}
−γR:(RVT×FL)→{0,1};
−δL:(E×FL)→{0,1}
図17cに示すコーナ経路指定タイルCRTは、2組の経路指定ポート、即ち、RVB,RHRを有する。組RVBのポートは、経路指定IORTを備えた最も上の左入力/出力タイルの組RVTのポートに接続されている。組RHRのポートは、経路指定IORTを備えた最も左の上入力/出力タイルの組RHLのポートに接続されている。
図18aに示す右入力/出力タイルIOTは、2組の入力/出力ポートFR,GL及び1組の直接ポートEを有する。組FRのポートは、システム資源に接続され、組GLのポートは、論理タイルポートの組LRを介してアレイの右端の論理タイルLTの経路指定資源に接続されている。直接接続のための連結性行列δRは、δR:(E×FR)→{0,1}として定義される。
図18bに示す下入力/出力タイルIOTは、右入力/出力タイルIOTとほぼ同じ役割を果たすが、これは、再構成可能論理コアの下に置かれている。下入力/出力タイルIOTは、2組の入力/出力ポートFB,GT及び1組の直接ポートEを有する。組FBのポートは、システム資源に接続され、組GTのポートは、システム資源に接続され、組GTのポートは、論理タイルポートの組LBを介してアレイの下端の論理タイルLTの経路指定資源に接続されている。直接接続のための連結性行列δBは、δB:(E×FB)→{0,1}として定義される。
各タイルの連結性行列λは、同一に定義されることが注目される。アレイの縁のところの論理タイル及び経路指定を備えた入力/出力タイル中のスイッチブロックの正確な機能は、再構成可能論理コアの構成メモリの適正なプログラミングにより保証される。これは例えば、右下論理タイルのプログラマブルスイッチがこのタイルの下及び右への経路指定接続が可能ではないようにプログラムされることを意味する。
図19は、データ経路指向FPGA論理ブロックのアーキテクチャインスタンスの一例を示している。論理ブロック構造は、次のようにテンプレートパラメータを設定する上述のテンプレートに由来している。
−論理素子レベル:TYPE=データ−経路,|P|=2,|S|=3,|A|=1;
−処理素子レベル:|N|=4,|X|=8,|S|=3,|Y|=4;
−論理ブロックレベル:|M|=1,|K|=1,|I|=8,|O|=4
−処理素子レベル:|N|=4,|X|=8,|S|=3,|Y|=4;
−論理ブロックレベル:|M|=1,|K|=1,|I|=8,|O|=4
このタイプの論理ブロックは、データ経路機能(最大4ビットまで)及びランダム論理機能(最大4入力まで)の両方を実行する。
本発明の保護範囲は、本明細書に記載した実施形態には限定されないことが注記される。本発明の保護範囲は特許請求の範囲に記載された参照符号によっても限定されない。原文における「comprising」という用語は、特許請求の範囲で言及された構成要素以外の構成要素を排除するわけではない。原文において構成要素の前に位置する単語(冠詞)“a(n)”は、かかる構成要素が複数であることを排除しない。本発明の要部を構成する手段は、専用ハードウェアの形態又はプログラムド汎用プロセッサの形態のいずれでも具体化できる。本発明は、新規な特徴の各々又は特徴の組合せにある。
Claims (10)
- 集積回路上に再構成可能論理コアのアーキテクチャを創成する方法であって、前記アーキテクチャが、論理コンポーネント、経路指定コンポーネント及びインタフェースコンポーネントを有する方法において、前記アーキテクチャは、テンプレートから導き出され、前記テンプレートは、複数個のパラメータにより構成されたモデルであり、前記モデルは、前記論理コンポーネント、前記経路指定コンポーネント及び前記インタフェースコンポーネントを規定し、前記パラメータは、値を有し、該値は、アプリケーションドメインに一致している、方法。
- 前記テンプレートは、アレイを有し、該アレイは、複数個の論理タイルを含み、論理タイルの個数は、第1のパラメータであることを特徴とする、請求項1記載の方法。
- 前記アレイのアスペクト比は、第2のパラメータであることを特徴とする、請求項2記載の方法。
- 前記テンプレートは、
−第1の論理タイルに結合されている少なくとも1つの単純入力/出力タイルと、
−第2の論理タイルに結合されている経路指定機能性を備えた少なくとも1つの入力/出力タイルと、
−少なくとも2つの入力/出力タイルに結合されているコーナ経路指定タイルとを更に有することを特徴とする、請求項3記載の方法。 - 前記論理タイルのうち少なくとも1つは、
−複数個の論理ブロックポートを有する論理ブロックと、
−経路指定資源とを有し、該経路指定資源は、
−複数個の経路指定トラックと、
−前記論理ブロックポートを隣りの論理タイルに結合するよう構成された論理ポートと、
−前記経路指定トラックを隣りの論理タイルに結合するよう構成された経路指定ポートと、
−前記論理ブロックと隣りの論理タイルとの直接接続を可能にする直接ポートとを有することを特徴とする、請求項4記載の方法。 - 前記論理ブロックポートは、第1の主要な入力ポートを有し、前記論理ブロックは更に、
−複数個の処理クラスタを有し、該処理クラスタの数は、第3のパラメータであり、前記処理クラスタのうちの少なくとも1つは、複数個の直列接続された処理素子を有し、該処理素子の数は、第4のパラメータであり、前記処理クラスタは、複数個の第1補助入力ポート、第1のキャリー入力ポート及び第1のキャリー出力ポートを更に有し、
−第1の入力選択ブロックにより出された制御信号により制御されるよう構成された第1のマルチプレクサブロックを有し、該第1のマルチプレクサブロックは、前記処理素子により出された第1の中間信号の中からの選択を行うよう構成され、
−前記第1の中間信号の選択を受け取って論理ブロックの出力信号の数を決定するよう構成された出力選択ブロックを有し、該出力選択ブロックは更に、出力信号を発生させ、該出力信号を前記論理ブロックの出力ポートに送るよう構成されており、
−前記出力信号を重ね合わすよう構成されたフリップフロップブロックを有することを特徴とする、請求項5記載の方法。 - 前記第1の入力選択ブロックは、前記第1の主要入力ポートを前記処理素子に設けられた第2の主要入力ポートに結合したり、入力信号を選択するよう構成され、前記第1の入力選択ブロックは更に、フィードバックループが実現されるよう前記論理ブロックの出力信号を入力信号として受け取るよう構成されていることを特徴とする、請求項6記載の方法。
- 処理素子のうち少なくとも1つは、
−複数個の直列接続された論理素子を有し、該論理素子の個数は、第5のパラメータであり、
−第2の主要入力ポートを有し、
−複数個の第2の補助入力ポートを有し、該第2の補助入力ポートは、前記論理素子に設けられた第3の補助入力ポートに結合され、
−第2のキャリー入力ポートを有し、該第2のキャリー入力ポートは、前記直列接続された論理素子のうち最初の素子に設けられた第3のキャリー入力ポートに結合され、
−第2のキャリー出力ポートを有し、該第2のキャリー出力ポートは、前記直列接続された論理素子のうち最後の論理素子に設けられた第3のキャリー出力ポートに結合され、
−複数個の第1の算術出力ポートを有し、
−第1のブール出力ポートを有し、
−第2の入力選択ブロックを有し、該第2の入力選択ブロックは、第2の主要入力ポートを前記論理素子に設けられた第3の主要入力ポートに結合したり、入力信号を選択するよう構成され、
−第2のマルチプレクサブロックを有し、該第2のマルチプレクサブロックは、前記第2の入力選択ブロックにより出された制御信号により制御されるよう構成されており、第2のマルチプレクサブロックは、前記論理素子に設けられた第2のブール出力ポートから来る信号を選択するよう構成され、第2のマルチプレクサブロックは更に、第1のブール出力ポートのための出力信号を生じさせるよう構成され、
前記論理素子に設けられた第2の算術出力ポートは、第1の算術出力ポートに結合されていることを特徴とする、請求項6記載の方法。 - 前記論理素子のうちの少なくとも1つは、
−複数個の第3の主要入力ポートを有し、該第3の主要入力ポートの個数は、第6のパラメータであり、
−第3のキャリー入力ポート又は別のキャリー入力ポートを有し、
−第3のキャリー出力ポート又は別のキャリー出力ポートを有し、
−前記第2のブール出力ポートのうちの1つを有し、
−複数個の前記第2の算術出力ポートを有し、該第2の算術出力ポートの個数は、第7のパラメータであることを特徴とする、請求項8記載の方法。 - 請求項1〜9のうちいずれか一に記載の方法により創成されたアーキテクチャを有する再構成可能論理コア。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP03104791 | 2003-12-18 | ||
PCT/IB2004/052684 WO2005062212A1 (en) | 2003-12-18 | 2004-12-07 | Template-based domain-specific reconfigurable logic |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007520795A true JP2007520795A (ja) | 2007-07-26 |
Family
ID=34707261
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006544636A Pending JP2007520795A (ja) | 2003-12-18 | 2004-12-07 | テンプレートを利用したドメイン固有の再構成可能な論理 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20080288909A1 (ja) |
EP (1) | EP1697867A1 (ja) |
JP (1) | JP2007520795A (ja) |
CN (1) | CN1894692A (ja) |
WO (1) | WO2005062212A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4971998B2 (ja) * | 2006-07-27 | 2012-07-11 | パナソニック株式会社 | 半導体集積回路、プログラム変換装置及びマッピング装置 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7739647B2 (en) * | 2006-09-12 | 2010-06-15 | Infosys Technologies Ltd. | Methods and system for configurable domain specific abstract core |
US7788623B1 (en) * | 2007-11-29 | 2010-08-31 | Lattice Semiconductor Corporation | Composite wire indexing for programmable logic devices |
US8381152B2 (en) * | 2008-06-05 | 2013-02-19 | Cadence Design Systems, Inc. | Method and system for model-based design and layout of an integrated circuit |
JP5163332B2 (ja) * | 2008-07-15 | 2013-03-13 | 富士通セミコンダクター株式会社 | 設計プログラム、設計装置、および設計方法 |
US8136075B1 (en) * | 2008-11-07 | 2012-03-13 | Xilinx, Inc. | Multilevel shared database for routing |
FR2951868B1 (fr) * | 2009-10-28 | 2012-04-06 | Kalray | Briques de construction d'un reseau sur puce |
CN102411655A (zh) * | 2011-08-31 | 2012-04-11 | 深圳市国微电子股份有限公司 | 一种现场可编程门阵列内部互联线的方法 |
US9465904B2 (en) * | 2014-03-31 | 2016-10-11 | Texas Instruments Incorporated | Device pin mux configuration solving and code generation via Boolean satisfiability |
US20170046466A1 (en) | 2015-08-10 | 2017-02-16 | International Business Machines Corporation | Logic structure aware circuit routing |
CN105259444A (zh) * | 2015-11-02 | 2016-01-20 | 湖北航天技术研究院计量测试技术研究所 | Fpga器件测试模型建立方法 |
CN106156402A (zh) * | 2016-06-15 | 2016-11-23 | 深圳市紫光同创电子有限公司 | Fpga逻辑块阵列的版图布局方法及版图布局 |
US10007746B1 (en) * | 2016-10-13 | 2018-06-26 | Cadence Design Systems, Inc. | Method and system for generalized next-state-directed constrained random simulation |
CN109145389B (zh) * | 2018-07-25 | 2020-11-06 | 清华大学 | 集成电路模型复用方法及装置 |
WO2020224763A1 (en) * | 2019-05-07 | 2020-11-12 | Silicon Mobility Sas | Spatial segregation of flexible logic hardware |
CN112558515B (zh) * | 2020-11-27 | 2023-11-17 | 成都中科合迅科技有限公司 | 一种功能可动态重组的模拟电子系统 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5212652A (en) * | 1989-08-15 | 1993-05-18 | Advanced Micro Devices, Inc. | Programmable gate array with improved interconnect structure |
US6230307B1 (en) * | 1998-01-26 | 2001-05-08 | Xilinx, Inc. | System and method for programming the hardware of field programmable gate arrays (FPGAs) and related reconfiguration resources as if they were software by creating hardware objects |
US6204686B1 (en) * | 1998-12-16 | 2001-03-20 | Vantis Corporation | Methods for configuring FPGA's having variable grain blocks and shared logic for providing symmetric routing of result output to differently-directed and tristateable interconnect resources |
US6301696B1 (en) * | 1999-03-30 | 2001-10-09 | Actel Corporation | Final design method of a programmable logic device that is based on an initial design that consists of a partial underlying physical template |
US6631510B1 (en) * | 1999-10-29 | 2003-10-07 | Altera Toronto Co. | Automatic generation of programmable logic device architectures |
US6476636B1 (en) * | 2000-09-02 | 2002-11-05 | Actel Corporation | Tileable field-programmable gate array architecture |
US6530070B2 (en) * | 2001-03-29 | 2003-03-04 | Xilinx, Inc. | Method of constraining non-uniform layouts using a uniform coordinate system |
US6792588B2 (en) * | 2001-04-02 | 2004-09-14 | Intel Corporation | Faster scalable floorplan which enables easier data control flow |
US6763512B2 (en) * | 2001-04-06 | 2004-07-13 | Sun Microsystems, Inc. | Detailed method for routing connections using tile expansion techniques and associated methods for designing and manufacturing VLSI circuits |
US7073158B2 (en) * | 2002-05-17 | 2006-07-04 | Pixel Velocity, Inc. | Automated system for designing and developing field programmable gate arrays |
US6870395B2 (en) * | 2003-03-18 | 2005-03-22 | Lattice Semiconductor Corporation | Programmable logic devices with integrated standard-cell logic blocks |
US7007264B1 (en) * | 2003-05-02 | 2006-02-28 | Xilinx, Inc. | System and method for dynamic reconfigurable computing using automated translation |
US7194720B1 (en) * | 2003-07-11 | 2007-03-20 | Altera Corporation | Method and apparatus for implementing soft constraints in tools used for designing systems on programmable logic devices |
US7284226B1 (en) * | 2004-10-01 | 2007-10-16 | Xilinx, Inc. | Methods and structures of providing modular integrated circuits |
-
2004
- 2004-12-07 WO PCT/IB2004/052684 patent/WO2005062212A1/en not_active Application Discontinuation
- 2004-12-07 EP EP04801479A patent/EP1697867A1/en not_active Withdrawn
- 2004-12-07 US US10/596,448 patent/US20080288909A1/en not_active Abandoned
- 2004-12-07 CN CNA2004800376885A patent/CN1894692A/zh active Pending
- 2004-12-07 JP JP2006544636A patent/JP2007520795A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4971998B2 (ja) * | 2006-07-27 | 2012-07-11 | パナソニック株式会社 | 半導体集積回路、プログラム変換装置及びマッピング装置 |
Also Published As
Publication number | Publication date |
---|---|
US20080288909A1 (en) | 2008-11-20 |
EP1697867A1 (en) | 2006-09-06 |
CN1894692A (zh) | 2007-01-10 |
WO2005062212A1 (en) | 2005-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Boutros et al. | FPGA architecture: Principles and progression | |
Trimberger | Three ages of fpgas: a retrospective on the first thirty years of fpga technology: this paper reflects on how moore's law has driven the design of fpgas through three epochs: the age of invention, the age of expansion, and the age of accumulation | |
Trimberger | Field-programmable gate array technology | |
US6731133B1 (en) | Routing structures for a tileable field-programmable gate array architecture | |
JP2007520795A (ja) | テンプレートを利用したドメイン固有の再構成可能な論理 | |
US9183344B2 (en) | Timing operations in an IC with configurable circuits | |
US7165230B2 (en) | Switch methodology for mask-programmable logic devices | |
JPH08510885A (ja) | ダイナミックロジックコアに動的に相互接続するフィールドプログラマブル・ロジックデバイス | |
KR100334001B1 (ko) | 반도체 집적회로의 설계방법 및 자동설계장치 | |
CN104969208A (zh) | 可配置的嵌入式存储器系统 | |
US10855285B2 (en) | Field programmable transistor arrays | |
US7800404B2 (en) | Field programmable application specific integrated circuit with programmable logic array and method of designing and programming the programmable logic array | |
Salcic et al. | Digital systems design and prototyping: using field programmable logic and hardware description languages | |
US20060087342A1 (en) | Interconnect structure and method in programmable devices | |
CN103828239B (zh) | 集成电路 | |
Mo et al. | PLA-based regular structures and their synthesis | |
US7100142B2 (en) | Method and apparatus for creating a mask-programmable architecture from standard cells | |
US8225245B2 (en) | Method of implementing physically realizable and power-efficient clock gating in microprocessor circuits | |
KR20070097051A (ko) | 동적으로 재구성 가능한 프로세서 | |
US7260804B1 (en) | Method for circuit block routing based on switching activity | |
US11362662B2 (en) | Field programmable transistor arrays | |
US7757193B2 (en) | Structure cluster and method in programmable logic circuit | |
JP4451629B2 (ja) | 半導体集積回路のレイアウト装置および方法ならびこれらを使用して製造された半導体装置 | |
Gore | OpenFPGA-Physical: A Scalable Framework for Physical Design of Tileable Field Programmable Gate Array Architectures | |
Boutros et al. | Field-Programmable Gate Array Architecture |