他の質問から判断すると、あなたはザイリンクスの男です。したがって、ザイリンクスチップのデータシートを入手して、機能説明の章に進むことを強くお勧めします。私が使用しているSpartan 3チップについては、42ページの楽しい読書です。IOB、CLB、スライス、LUT、ブロックRAM、乗算器、デジタルクロックマネージャー、クロックネットワーク、インターコネクト、およびいくつかの非常に基本的な構成情報など、FPGA内のコンポーネントを正確に詳述します。「コンパイルされたHDL」がどのようなものかを知りたい場合は、この情報を理解する必要があります。
FPGAのアーキテクチャに慣れたら、このプロセスを理解できます。まず、HDLデザインが合成エンジンを介して実行され、HDLが基本的にRTLになります。次に、マッパーは合成の結果を処理し、FPGAアーキテクチャの利用可能な部分に「マッピング」します。次に、ルーターは配置配線(PAR)を実行し、これらの部品がどこに行き、どのように接続するかを計算します。最後に、PARからの結果がBITファイルに変換されます。通常、このBITファイルは何らかの方法で変換され、フラッシュチップにロードできるため、電源投入時にFPGAを自動的にプログラムできます。
このビットファイルには、FPGAプログラム全体が記述されています。たとえば、Spartan 3のCLBはスライスで構成されており、スライスはLUTで構成されています。LUTは16アドレス1ビットSRAMのみです。したがって、BITファイルには、SRAMの各アドレスに送られるデータが正確に含まれます。BITファイルに含まれるもう1つのことは、LUTの各入力が接続マトリックスにどのように配線されるかです。BITファイルには、ブロックRAM内の初期値も含まれます。各スライスの各フリップフロップのセットピンとリセットピンに接続されているものについて説明します。キャリーチェーンの接続方法について説明します。各IOB(LVTTL、LVCMOS、LVDSなど)のロジックインターフェイスについて説明します。統合されたプルアップ抵抗またはプルダウン抵抗について説明します。基本的に、すべて。
ザイリンクスの場合、コンフィギュレーションが開始されると(つまり、PROG_Bがアサートされると)FPGAのメモリがクリアされます。メモリがクリアされると、INIT_BがHighになり、フェーズが完了したことを示します。次に、JTAGまたはフラッシュチップインターフェイスを介して、BITファイルがロードされます。プログラムがロードされると、グローバルセット/リセット(GSR)がパルス化され、すべてのフリップフロップが初期状態にリセットされます。次に、DONEピンがHighになり、構成が完了したことを示します。ちょうど1クロックサイクル後、グローバルトライステート信号(GTS)がリリースされ、出力を駆動できるようになります。ちょうど1クロックサイクル後、グローバルライトイネーブル(GWE)がリリースされ、フリップフロップが入力に応じて状態の変化を開始できるようになります。この最終構成プロセスでも、BITファイルで設定されているフラグに応じて、わずかに並べ替えることができます。
編集:
また、FPGAプログラムが永続的ではない理由は、ロジックファブリックが揮発性メモリ(SRAMなど)で構成されているためであることも付け加える必要があります。そのため、FPGAの電源が切れると、プログラムは忘れられます。FPGAプログラムの不揮発性ストレージとして、たとえばフラッシュチップが必要な理由は、デバイスの電源を入れるたびにロードできるようにするためです。