banner

ニュース

Jun 09, 2023

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 Splash Kit のチュートリアルの手順を PolarFire SoC Icicle Kit に直接適用することはできません。

この問題を簡単に解決できる方法はありません。提案されているピン番号を、PolarFire SoC Icicle Kit で利用可能で実際に使用できるピン番号に置き換えることです。 そのためには、PolarFire SoC の回路図を取得し、ピン番号をドリルダウンして、実際に役立つ機能を実現するために設計にどの入力と出力を適用できるかを把握する必要があります。 Libero SoC には、たとえばドロップダウン リストから「LED1」を選択できるような便利なデフォルト マッピングはありません。 したがって、これは、特定のプロジェクトのステップ 1 である必要があります。また、Icicle Kit を使用するときに手元に置いておきたい、一般的なピンの小さなチートシートを作成すると役立つかもしれません。

同社のチュートリアルでは説明されていませんが、別のアプローチもあります。PolarFire SoC Icicle Kit Reference Design は、Microchip によって不特定のオープンソース ライセンスの下で GitHub に公開されています。 これにより、Libero SoC にロードしてゲートウェアを生成できるスクリプトが提供されます。工場出荷時にすでに FPGA にロードされているものと「同じまたは拡張された機能」を備えていると同社は説明しています。これは、学習曲線に沿ってかなり進んだ場合に便利です。ストック機能を完全に置き換えるのではなく、拡張または強化したい場合は、チュートリアルが役立ちます。

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

FPGA 開発作業用のエンタープライズ グレードのツールから予想されるとおり、Libero SoC は、メーカーを含む初心者にとって最も歓迎されるソフトウェアではありません。 Microchip のガイドを読めばここまでは理解できますが、特にマイクロコントローラーのような、よりすぐにアクセスできるプラットフォームから 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 ゲートを選択しました。これは、両方の入力も High の場合にのみ単一の出力を High に送信します。 デザインへの追加はドラッグ アンド ドロップの簡単なケースですが、入力と出力の配線には少し時間がかかります。

シンプルな 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 Splash Kit チュートリアルは、PolarFire SoC 互換性に必要な変更を除いてこれまで私たちがフォローしてきたものですが、このステップを完全にスキップしています。これは非常に複雑なテーマであるため、その点で同社を責めるのは難しいです。 必要なものはすべて Libero SoC にありますが、見つけるのは非常に簡単ですが、実際に使用できるようにするには多くのことを学ぶ必要があります。

シミュレーションをスキップすると、つららキットのボタンを押して、その結果として LED をオン/オフできるという利益への近道が提供されます。これは、実際に、機能する AND ゲートを作成したことを証明し、それが選択したピンと、そのピンからの押しボタン スイッチと Icicle Kit の 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 の詳細については、Microchip Web サイトのほか、Avnet の製品ページでもご覧いただけます。

シリーズ全体を読む:

共有