Table of Contents
FPGA の設計のボオラン・アルゲブラ: 包括的なガイド
フィールドプログラム可能なゲート配列(FPGA)は、通信、航空宇宙、自動車、データセンター、および埋め込まれたアプリケーションで使用される近代的なデジタルシステムにおけるコーナーストーンコンポーネントです。 それらの決定機能は再構成性です。 エンジニアは、任意のデジタル回路を実装するために製造後のデバイスのロジックブロックと相互接続をプログラムすることができます。 この機能の心臓部は、のボロランアルゲブラ、および基本的構造の最適化、および構造の最適化、および構造の最適化、および構造の最適化、および構造の最適化、および構造の最適化、および構造の最適化、および構造の最適化、および構造の最適化を設計します。
ボオラン・アルゲブラの本質
Boolean algebra は、バイナリ変数 (true/false、1/0) および論理操作を扱うアルゲブラのブランチです。デジタルロジックでは、これらの操作は、基本ゲート: AND、OR、NOT、NAND、NOR、NOR、XOR、およびXNOR に対応しています。全ての組み合わせ回路は、Boolean 関数として表現でき、全てのシーケンシャル回路は、状態要素とボオランの等量を組み合わせて記述できます。
基本的な操作と真理テーブル
3つの基本操作は、
- [AND(・)]:すべての入力が1の場合のみ出力されます。
- OR (+)]: 少なくとも1つの入力が1の場合の出力は1です。
- [NOT (、')[:出力は入力の補完です。
真実のテーブルは、すべての入力の組み合わせのための出力を簡潔に示します。例えば、二入力とゲートは、真実のテーブルを持っています: 00→0、01→0、10→0、11→1。ボリアンのアルゲブラは、法律(計算、同化、分布、デモーガン、アイデンティティ、補完など)を提供し、式を書き換え、簡素化することができます。これらの法律は、FPGAの設計における論理最適化の仕組みです。
ボオラン・アルゲブラがFPGAの論理のブロックを形づける方法
現代のFPGAは[]から構築可能なロジックブロック(CLB)またはの論理要素(LEs)から構成され、それぞれ1つ以上]]の検索テーブル(LUT)])を含む。 LUTは、その入力のボリアン関数(通常4〜6個の入力テーブルをSRAMの合計で制御する)を完全に実行できます。 これらのセルは、これらのロールのボーロールの処理を完全に制御します。
論理機能のフォーミュラ
設計は通常、Verilog や VHDL などのハードウェア記述言語(HDL)で表現された機能仕様から始まります。 合成中に、コンパイラは HDL 説明からボランの式を抽出します。 例えば、ブロックや同時割り当ては、ボオラン式のセットになります。 algebraic ルールを使用してこれらの式を操作する機能は、効率的な実装への最初のステップです。
最小化技術
高レベルコードからの生ボロリアン式は頻繁に冗長です。最小化は、製品条件の数やリテラルの数を減らし、必要なLUTの数を直接減らし、速度を改善します。主な技術は次のとおりです。
- [ 鎮痛剤[:[]]X +(X・Y)=X(吸収)または[]X + X'・Y = X + Y(冗長)。
- []Karnaugh maps:隣接する変数をグループ化することで最大6変数の機能を簡素化するためのグラフィカルな方法。
- [Quine–McCluskey アルゴリズム[:プライムインプリケートを見つけ、最小限のカバーを選択するためのコンピュータ実装に適したタブラ方式。
- []エスプレッソのヒューリスティック・ロジック・マイスター:ほとんどの合成ツールで使用される業界標準のアルゴリズム。
これらの方法は、Boolean algebraの直接アプリケーションで、ハードウェアリソースを最小限に抑えます。
実用例:2対1の多重交換装置の設計
具体的な例を通り抜けましょう。2〜1のマルチプレクサは、選択線に基づいて2つのデータ入力の1つを選択します。出力のボレアン式[]]Yは、次のとおりです。
[Y = (S'・A) + (S・B)[
ここで [S]は、選択信号[]]と]Bは、データ入力です。 この式は、既に総称して生成物(SOP)の形で行われます。 FPGAでは、これはLUTで直接実装されます。 仮定して、我々は唯一のNANDゲート(ユニバーサル・ミューズメント)を使用してそれを実装したいとします。 正規表現は、我々は、我々は、正規表現として、我々は、正規表現を記述することができます:
[Y = (S'・A)\(S・B)']\
これは、NANDゲート(製品用語の2つ、補完のNANDとして表現されたOR関数の1つ、NANDから作ることができるSのインバータ)の4つのNANDゲートを必要とします。 この変換は、Booleanのアルゲブラがターゲットアーキテクチャに一致するように設計者を有効にする方法を示しています。
LUT実装の使用
4入力LUTを搭載したFPGAは、この機能を容易に処理できます。 LUTの真理テーブルは次のようになります。
| S | A | B | Y |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 0 |
| 0 | 1 | 0 | 1 |
| 0 | 1 | 1 | 1 |
| 1 | 0 | 0 | 0 |
| 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 0 |
| 1 | 1 | 1 | 1 |
各 LUT エントリは、設定 SRAM に保存されます。合成ツールは、この真理テーブルに Boolean の式を自動的にマップします。ただし、より大きな設計では、ツールは Boolean の最適化を実行して、 LUT カウントを削減し、フィッティングを改善します。
FPGAシンシスにおける高度なボレアン最適化
シンプルなミニマライゼーションを超えて、現代の合成ツールは、技術マッピング中にボオランの変換のシリーズを適用します。これらには、
工場化と分解
複雑なボオラン式は、LUTの入力幅に収まるより小さなサブ・エクスプレッションに要因が付けられます。例えば、関数]F = A + B·C + D·E]はF = A + (BとC) + (DとE)に分解されるかもしれません。各製品は、LUTを1つのLUTで実装できる場合は、LUTを交換します。
ノードとファンアウトの最適化
ボオラン表現の品質は信号遅延に影響を及ぼします。ボオラン・アルゲブラは、論理を再構築し、重要な経路の遅延を最小限に抑えるのに役立ちます。例えば、 AND ゲートの深いツリーは、O(log n)から O(log n)まで深さを減らすために、アソチャティビティを使用してバランスの取れたツリーに再構成することができますが、より優れた遅延特性で。
連続的ブール最適化
有限状態のマシン(FSM)では、状態のエンコーディングと次のステートロジックは、ブール関数として表現されます。これらの関数を最小化することで、論理領域とパワーを両方減らすことができます。ボリアン・アルゲブラ(例えば、ボリアン・キューブの州のアダアクシビリティを使用して)を使用して、状態の割り当てなどのテクニックは、より単純な組み合わせロジックにつながります。
FPGA の設計のブールの Algebra を適用することの利点
実用的な利点は重要な設計メトリクスに直接影響を与えます:
- リソース使用]: フィール・ラウトとレジスタは、同じデバイスにより多くの機能に合うように、より小さな領域、コストを削減し、機能を追加します。
- [Performance]: 減らされた論理の深さはより短い伝搬の遅れに、より高い操作周波数を可能にします。
- パワー消費量]:ゲートのカウントを下げ、スイッチングのアクティビティを削減する、ダイナミックな電力を削減する。 小さな領域も静的漏れを低減します。
- []信頼性]:最小限のロジックは、設計規則違反(例えば、時間の問題を保持)の確率を低下させ、検証を簡素化します。
- []デザインポータビリティ:ボオラン最適化は、特定のFPGAファブリックに依存しない設計を行い、ベンダーファミリー間の移行を緩和します。
エンジニアが基本を超えてボオラン・アルゲブラを理解する時間に投資する理由は、これらの利点です。
ボオランレベルデザインのためのツールと言語
ボオラン・アルゲブラは現代的な流れで暗黙的ですが、エンジニアは大幅な設計のための手動ミニマライゼーションを通常実行しません。代わりに、彼らは頼っています:
- HDL合成ツール:Synopsys Synplify、Xilinx Vivado、Intel Quartus、およびオープンソースのYosysは、コアステップとしてBooleanの最適化を実行します。
- 論理ミニマライゼーションツール:エスプレッソ(スタンドアロン)とABC(ベルケリー)は、高度な2レベルとマルチレベルのミニマライゼーションを提供します。
- []ハードウェアの説明言語:VerilogとVHDLは、デザイナーがBooleanの式を直接(例、代入文)表現したり、より高いレベルのコンストラス(ケース、 if-else)を使用して、合成装置がボオランの形式に変換できるようにします。
- [:元検証]:ブーリアン満足度(SAT)のソルバーと同等性チェックツールは、元的および最適化されたボオラン関数が同一であることを証明します。
ボーリアン・アルゲブラの根本的な理解は、デザイナーが合成に優しいHDLコードを書くのを助けます。例えば、[]]を直接書くと、より動詞の説明を最適化するためにツールに依存する代わりにXORが指定されます。
未来の方向:ボオラン・アルゲブラは機械学習に会います
より速く、より面積効率の高い論理のための探求は続きます。研究者は、補強学習を使用して分解のステップの最良の順序を適用するために、ボオランの最適化を導くために機械学習方法を検討しています。ボオランのアルゲブラは、すべての最適化が測定される地面の真実を残します。FPGAsは、より微細な結晶構造(例えば、])のCGRAハイブリッドと、特殊な複合ブロック(AI)に進化するので、AIは、基本的な部分を欠かせません。
コンテンツ
ボオラン・アルゲブラは抽象的な数学的好奇心ではありません。FPGAの設計を駆動するエンジンです。最も単純なLUTから最も複雑なデータパスまで、あらゆるカスタムロジックブロックは、ボオラン式が変形、最小限、ハードウェアにマッピングされたマニフェストです。 ボオラン・アルゲブラのマスターは、単純化法、カルナフマップ、アルゴリズムのミニマライゼーションを含む、あらゆるカスタムロジック・ブロックは、Booleanのエンジンが、高度な技術や技術を習得する技術が、高度な技術が、高度な技術が重要かつ効率的に構築されるため、高度な技術が不可欠です。
更に読むには、Wikipedia[]のBoolean algebraをで、]のKarnaughのマップ]を、]]の[FLT:]]のクイン–McCluskeyアルゴリズムを理解し、インテル・カルタスの論理最適化文書]を実践的な例のツールに置き換えます。