Hackster の FPGAdventures: Microchip PolarFire SoC Icicle Kit で Libero SoC を使用してロジックを構築する

これまでの FPGAdventures では、FPGA 自体以外のほとんどすべてを試し、Microchip の Icicle Kit の中心にある PolarFire SoC の汎用処理部分を使用して、完全に機能するデバイスからすべてを実行する方法を調べてきました。プラットフォームの巧妙な非対称マルチプロセッシング (AMP) 機能のおかげで、ベアメタル コードへの Linux ディストリビューション — 両方を同時に実行できます。

今回は、キットの真髄に迫ります。Microchip の統合開発環境 (IDE) であり、FPGA 製品用のツールチェーンである Libero SoC を使用して、基本的な論理回路を作成し、合成し、ボードに展開します。 .

ハングリー、ハングリー プログラム

Libero SoC について最初に理解すべきことは、無料のライセンスを登録し、古いライセンス検証サーバーをワークステーションに展開するために必要な手順を踏んだ後、Microchip のシステム要件が推奨からかけ離れているということです。要件: 会社から 16 GB の RAM が必要であると言われたら、少なくとも 16 GB の RAM が利用可能であることを確認する必要があります。 より少ないコードでソフトウェアを実行することは可能であり、すべてがうまくいっていると誤解する可能性がありますが、合成段階でプロジェクトがエラーなしで失敗することがわかります。 配置配線ツールはシステム RAM を使い果たし、最も単純な設計であってもメモリ不足キラーに陥り、プロセスを失敗させる方法で終了しますが、問題を指摘する対応するエラーはありません。

十分な機能を備えたワークステーションを手元に用意したら、非常に忙しいユーザー インターフェイスの詳細を学び始める必要があります。 寒い時期からこのすべてに取り組んでいるメーカーにとって良いニュースは、Microchip が ステップバイステップガイドでは、最初のプロジェクトの開始からビットストリームの合成、FPGA へのフラッシュまでのプロセスを順を追って説明しています。 これは非常にオンレールのチュートリアルですが、少し雑然とした Libero SoC インターフェースの基本を学び始めるには十分です。 残念ながら、実際には PolarFire SoC Icicle Kit に直接適用することはできません。 代わりに、同社の以前の PolarFire Splash Kit 用に作成されました。

プロセスの大部分では、それは問題ではありません。 新しいプロジェクトの開始は、Microchip の開発キットまたはベア FPGA 製品のいずれでも同じですが、環境を正しく設定するには、PolarFire SoC の多数のバリアントのどれを使用しているかを把握する必要があります。 ただし、プロセスの核心部分に到達し、実際のハードルに遭遇するものを設計し始めた場合にのみ、PolarFire SoC のピン番号と機能は以前の PolarFire と一致しません。その結果、PolarFire スプラッシュ キットのチュートリアルの手順を PolarFire SoC Icicle Kit に直接適用することはできません。

ピンを選ぶ

このバーを簡単に修正する方法はありません。提案されたピン番号を、PolarFire SoC Icicle Kit で利用可能で実用的なものに交換することです。 そのためには、PolarFire SoC の回路図を取得し、ピン番号を掘り下げて、設計に適用できる入力と出力を特定し、実際に何かを実行させる必要があります。 Libero SoC には便利なデフォルト マッピングがなく、たとえばドロップダウン リストから「LED1」を選択できます。 これは、任意のプロジェクトのステップ 1 である必要があります。Icicle Kit を使用しているときに、一般的なピンのチート シートを手元に置いておくと便利です。

同社のチュートリアルでは説明されていませんが、別のアプローチがあります。 PolarFire SoC アイシクル キットのリファレンス デザイン、不特定のオープンソース ライセンスの下で Microchip から GitHub に公開されています。 これにより、Libero SoC にロードしてゲートウェアを生成できるスクリプトが提供されます。同社は、工場から FPGA に既にロードされているものと「同じまたは拡張された機能」を備えていると説明しています。ストック機能を完全に置き換えるのではなく、拡張または強化したい場合は、チュートリアルを参照してください。

スクリプトを Libero SoC にロードすることは、ステップバイステップのチュートリアルから逸脱していますが、2 つのアプローチを 1 つに結合することは可能です。 Microchip 社の Leonardo DiCarlo 氏は、リファレンス プロジェクトについて次のように説明しています。 「プロジェクトを生成する必要さえありません。そこで使用されているものと同じ制約を参照用に使用できます。 [file] ICICLE.pdc には、スイッチ ボタン、LED などのテストに使用される通常のものがあります。 そのファイルを直接インポートできます。 使用した出力ポートの名前がそこで使用されているものと一致していることを確認する必要があります。そうでない場合は、名前を変更するだけです。」

スマートなデザインのための SmartDesign

FPGA 開発作業用のエンタープライズ レベルのツールに期待されるかもしれませんが、Libero SoC は新規参入者 (メーカーを含む) にとって最も歓迎されるソフトウェアではありません。 マイクロチップ社のガイドはここまで説明しますが、自信を持てるようになるまでには長い時間を費やす必要があることは間違いありません。マイクロコントローラのようなすぐにアクセスできるプラットフォームから FPGA に移行する場合は特にそうです。

投資する価値はあります。Microchip の SmartDesign は、できるだけ早く立ち直るための鍵です。 従来、FPGA 用のゲートウェアは、ハードウェア記述言語 (HDL) を使用して手作業で作成されていました。これは、Raspberry Pi RP2040 用の MicroPython または Arduino 用の C/C++ を作成するのと同様のテキストベースのアプローチです。 SmartDesign は Scratch に近いものですが、FPGA の場合: ハードウェア設計は回路図として画面上にスケッチでき、Libero SoC によって自動的に HDL コードに変換され、そこからゲートウェアに変換されます。

さらに良いことに、Microchip は、Libero SoC にロードして、基本的なブール論理ゲートからメモリや入出力デバイスに至るまで、ゲートウェア設計のビルディング ブロックとして使用できるコンポーネントの健全なライブラリを提供します。 ライブラリは自由に検索できますが、部品には「DFN1C0」などの名前が付けられることが多く、これはおそらく初心者には少し斜めになり、選択したオブジェクトを SmartDesign キャンバスにドラッグするだけで、回路図シンボルに変わります。

はいそして

機能をテストするために、Microchip のチュートリアルのガイダンスに従い、おそらく最も単純なコンポーネントを選択しました。ブール AND ゲートは、両方の入力が高い場合にのみ、単一の出力を高くします。 設計への追加はドラッグ アンド ドロップの簡単なケースですが、入力と出力の配線には少し時間がかかります。

シンプルな AND ゲートの設計では、2 つの入力 (ハードウェアでテストするときにできるだけ簡単にするための押しボタン スイッチ) と 1 つの出力が必要です。 回路図またはサンプル プロジェクト ファイルを調べると、ピン V14 が LED1 に接続されていることがわかり、出力が得られます。 V19 と U18 はそれぞれ押しボタン スイッチに接続され、基本的な FPGA デザインと対話するために必要な 2 つの入力を提供します。 外部ボタンを配線したい場合は、他のピンを Raspberry Pi スタイルの汎用入出力 (GPIO) ヘッダーまたは mikroBUS ソケットに接続しますが、この目的では、オンボードの押しボタン スイッチが正常に機能します。

パーツの仮想脚が配線されたら、その接続を「最上位」に「プロモート」するなど、あまり目立たない手順がいくつか必要になりますが、HDL の作成はワンクリック プロセスです。 この時点では、Libero SoC のメモリ要件は問題ではありませんでしたが、プロセスの次のステップである合成では、ソフトウェアが RAM を消費し始めます。 デザイン フローで[合成]オプションをダブルクリックすると、作成したものを FPGA にロード可能なゲートウェアに変換するプロセスが開始され、Synplify Pro と呼ばれる外部ツールが呼び出されます。このライセンスは、すべての PolarFire SoC Icicle Kit で利用可能な無料の Libero SoC ライセンスに含まれています。ユーザー。 配置配線を含む HDL の「コンパイル」を処理するのはこれです。FPGA は、コンポーネントのフットプリントを PCB に配置し、それらを回路トレースにリンクすることに相当します。

AND ゲートのような単純な設計の場合、これはかなり迅速なプロセスですが、設計の複雑さが増すにつれて、合成に必要な時間とメモリも増加します。 設計が複雑になりすぎると、FPGA のリソースが不足し、マイクロコントローラーのメモリやプログラム ストレージが不足するのとまったく同じように、規模を縮小するか、より仕様の高いチップを選択する必要があります。 PolarFire SoC ファミリで。

ステップをスキップする

合成が完了すると、ゲートウェアを FPGA に展開できますが、推奨されません。 代わりに、FPGA 設計は最初にシミュレーションを実行する必要があります。これは、Microchip のドキュメントがすぐに戻ってくるところです。 同社の PolarFire スプラッシュ キット チュートリアルは、PolarFire SoC の互換性に必要な変更を禁止するためにこれまでフォローしてきましたが、このステップを完全にスキップしています。 必要なものはすべてLibero SoCにありますが、それを見つけるのは非常に簡単ですが、実際に使用できるようになるには多くの学習が必要です.

シミュレーションをスキップすると、Icicle Kit のボタンを押して、結果として LED をオン/オフできるというメリットへの迅速なルートが提供されます。選択したピンと、そのピンからつららキットの押しボタン スイッチと LED を使用しますが、より複雑なプロジェクトを設計するときには役に立ちません。

メーカー向けメイキング

ここで、PolarFire SoC Icicle Kit が産業界や学界だけでなく、メーカー コミュニティで広く採用されることを期待する Microchip の期待が裏切られる可能性があります。 その初心者向けのドキュメントは、光沢のある新しい PolarFire SoC Icicle Kit ではなく、古い開発ボード向けに書かれており、間違いなく設計フローの最も複雑で最も重要な部分の前に読者を放棄します。 同社の新しいターゲット ユーザーにより適した新しい素材がなければ、多くのメーカーは、加算器よりも複雑なものを構築する前に、より親しみやすいもののためにプラットフォームを放棄する可能性があります。

そうであれば、それは残念なことです。PolarFire SoC のパワーと柔軟性は、FPGA とアプリケーション クラスの汎用処理を 1 つのデバイスに組み合わせることができるため、非常に優れています。 興味深い創造物には多くの可能性があり、Microchip が障壁を打破する方法を見つけることができれば、メーカー コミュニティが Icicle Kit とそれを駆動する PolarFire SoC チップの両方でできることにほとんど制限はありません。

次回は、コミュニティが PolarFire SoC ですでに行っていることのいくつかを見て、プラットフォームの将来の計画について Microchip と話し合う予定です。

PolarFire SoC Icicle Kit の詳細情報が利用可能です マイクロチップ社のウェブサイトでnd を見つけることができます Avnet の製品ページで元気です。

シリーズ全体を読む:

Leave a Comment

Your email address will not be published. Required fields are marked *