FPGA 最初のステップ

画像

私の専門的な活動のため、マイクロコントローラーとFPGAのプログラミングと密接に連携する必要があります。 しかし、MKをマスターすることが主婦であっても多かれ少なかれ、FPGAではいくつかの困難が生じる可能性があります。 私が伝えたいのは、落とし穴とそれらを上から見ることです。



ステップ0.知人


FPGA 導入での最初の衝撃は 、デバッグボードに付属のソフトウェアのインストールから始まりました。 デスクトップ上のショートカット、理解できないプログラム、そして互いに異なるインターフェースを備えた-「今後の作業は興味深い」と思いました。 たくさんの英語の不明瞭なマニュアル、わかりにくい用語、最も単純なチュートリアルやユーザーガイドの欠如...それにもかかわらず、 半年も経たないうちに、厄介な道で試行錯誤を繰り返した後、私は経験を威勢よく共有することができます。 すぐに予約します。Spartan3A DSP 1800AチップとザイリンクスISE / EDK開発環境を備えたデバッグボードについて説明します。



ステップ1.うなずき


もちろん、 ハローワールドハードウェアプログラマーにとっては、LEDの点滅を意味します。 結局、切望されている2つの単語を端末に送信するためには、まだ成長する必要があります。 この場合、ハードウェア記述の言語(VerilogとVHDLの甘いカップル)を使用する必要があります。 それらに、プリミティブ論理要素上に回路を構築する機能を追加できます。 私はすぐにコンピューター技術の研究所コースを思い出します:トリガー、レジスター、論理要素、カウンター、マルチプレクサー。 しかし、特にそれがハブと私の前で説明されていたので、私たちはあまり先に進みません。 Verilog / VHDL言語はアセンブラーと比較しても些細なものではありません。そのため、理解するには完全に異なるアプローチが必要です。



ステップ2.さらに難しい場合は?


ハードウェア記述言語は経験の浅いユーザーを怖がらせることができるという特質にもかかわらず、大きなプラスがあります:FPGAに非常に高速なデバイスを実装でき、DSPモジュールはデジタル信号処理の大きな可能性を開きます。 これに、既に実装されたモジュール(IPコア)を備えた既製のライブラリを追加すると、可能性はますます重要になります。 しかし、軟膏にもハエがありました-面倒さ、または彼らが言うように、あなたはボトルなしでそれを理解することはできません。



最初の2つのステップを実装するには、ISE(別名Project Navigator)+ ISim(シミュレーション)+ Impact(FPGAファームウェア)が適しています。



ステップ3.古き良きマイクロコントローラー




時々、まあ、私は本当に楽しいものが欲しいだけです... SoC(System-on-Chip)-システムオンチップについて覚えておいてください。 私たちの場合、これはプロセッサ、バス、メモリ、周辺機器の束です。 同様のシステムを自分で作成してみることができます(ステップ2を参照)。インターネットで見つかったIPコアをねじ込むことができます。 しかし、なぜ車輪を再発明するのでしょうか? ザイリンクスオフィスの優秀な人材は、すでにPicoBlazeおよびMicroBlazeソフトウェアプロセッサを開発しています。 1つは8ビットプロセッサです。これは道徳的に時代遅れであり、SoCに長い間実装されておらず、オープンソースです。 2つ目のMicroBlazeには、32ビット、RISCアーキテクチャなどの見込みがあります。

メモリはFPGAに接続された外部メモリとして使用でき、内部にはFPGA内に直接実装できます。 通常、2番目は、1番目で見つかった命令とデータをキャッシュするためによく使用されます。 さらに、複数のプロセッサを搭載し、プロセス間通信に特別な通信モジュールを使用するシステムが非常に広く使用されています。

大量に使用できるすべての種類の周辺機器の巨大な山があります-すべてはFPGAリソースによってのみ制限されます。 さらに、周辺モジュールPLBを備えた交換バスに「自作」モジュールを追加できますが、それは正しく機能する場合に限ります。

この段階では、Embedded Development Kit(EDK)のXilinx Project Stuido(XPS)が最も重要なツールです。概して、SoCが配置された完成したFPGAハードウェアコンフィギュレーションファイルを取得できる出力です。



ステップ4.では、始めましょう


さて、同じMicroBlazeのプログラムを書くことについて。 ザイリンクスソフトウェアスイートには、C / C ++プログラムを作成できるソフトウェア開発キット(SDK)があります。 はい、あなたは正しいと聞きました、C ++は本当に腺にとってまれですが、私たちの場合はそうではありません。 ちなみに、EclipseベースのSDKがあります。そのため、コンテンツアシスト、人間のリファクタリング、おいしいパンがたくさんあります。 アセンブラーを忘れないでください:acmeへの挿入は非常に便利です。

コンパイラとして、ソフトウェアプロセッサのニーズに合わせて調整されたGCCが使用されます。RTOSは、POSIX互換の表現名XilKernelで使用できます。 つまり、人がUNIXベースのシステムのミューテックス、スレッド、セマフォに精通していない場合、XilKernelを理解することは難しくありません。



ステップ5.履歴書の代わりに


FPGAは、膨大な数の問題を解決できる強力で柔軟なツールです。 ただし、顕微鏡で釘を打つことは避けてください。同じマイクロコントローラーで、安価で手頃な方法(Cortex M3、こんにちは!)で多くの問題を完全に解決できます。

Verilog、VHDL、Behavioral、Implementation-これらおよび他の多くの言葉は、FPGAを長時間使用することで頭がおかしくなり、開発を怖がらせることができますが、時代遅れのパウダーを1ダースの古代のMKに1つのエレガントなチップに置き換えて、大きな道徳的な満足を得ることができます!



All Articles