FC2カウンター FPGAの部屋 Ubuntu 22.04 の Efinity で helloworld チュートリアルをやってみる2
fc2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

Ubuntu 22.04 の Efinity で helloworld チュートリアルをやってみる2

Ubuntu 22.04 の Efinity で helloworld チュートリアルをやってみる1”の続き。

Efinity® Trion® Tutorial UG-EFN-TUTORIAL-v7.0 August 2022”を参照して、Ubuntu 22.04 のパソコンで Efinity の helloworld チュートリアルをやってみようということで、前回は、”1.0 Prepare the Tutorial Files”、”2.0 Create Your Proje”、”3.0 Run the Flow”の”3.1 RTL Simulation”、”3.2 Synthesize the Design”、”3.3 Perform Post-Map Simulation”を行った。今回は、残りのすべてをやってみよう。ただ、Windows 11 で一度やっているので、無駄は省くことにする。

3.4 Build the Device Interface
Efinity® Trion® Tutorial UG-EFN-TUTORIAL-v7.0 August 2022”の”3.4 Build the Device Interface”を読んで、まとめてみた。
Efinix Trion® FPGA は、HDL で記述されたロジック、メモリ、乗算器の周りに GPIO ピン、PLL、発振器などのブロックが存在する。Efinity® Interface Designer を使用して、周辺部分を構築する。このセクションでは、インターフェイス デザイナーを使用して helloworld インターフェイスを表示し、欠落している GPIO リソースを追加するそうだ。

Open Interface Designer ボタンをクリックした。
Efinity_41_L240325.png

Efinity Interface Designer - helloworld ウインドウが開いた。
左のウインドウの Design:T8F81 をすべて展開した。
Efinity_42_L240325.png

led[3] の Package Planner を用いた確認と、生成された制約の確認、Place ボタンをクリックして、配置を行って、led[4] の制約が抜けているまでの確認事項は飛ばす。詳しくは、”Windows 11 の Efinity で helloworld チュートリアルをやってみる3”を参照のこと。

led[4] ポートの制約から再開する。
Open Interface Designer ボタンをクリックし、 Interface Designer を起動した。
Design:T8F81 -> GPIO(6) を右クリックし、右クリックメニューから Create Block を選択した。

Design:T8F81 -> GPIO(7) に gpio_int7: が生成された。

Block Editor の Instance Name に led[4] と入力して、Enter キーを押した。(Enter キーを押さないとちゃんと入力されないようだ)
Mode を output に変更して(プルダウンメニューで選択した)、Enter キーを押した。
Save ボタンでセーブした。
Efinity_43_L240325.png

Interface Designer の Design メニューから Show/Hide GPIO Resource Assigner を選択した。
GPIO : Instance View が表示された。
led[4] の Package Pins のプルダウンメニューから B3 を選択して、Enter キーを押した。(チュートリアルでは、Resource を指定するようになっているが、通常はピン番号を指定することから、ピン番号で指定できるかどうか?を確認した)
Efinity_45_L240325.png

led[4] の Package PinsB3 を指定できた。
Efinity_46_L240325.png

Save ボタンでセーブしてから、Generate Efinity Constraint Files ボタンをクリックした。
Efinity_47_L240325.png

Interface Designer の様子を示す。
Efinity_48_L240325.png

Interface Designer を閉じた。

3.5 Perform Place & Route
Toggle Automated Flow ボタンをクリックして、Automated Flow に変更した。
Efinity でダッシュボードの Place ボタンをクリックし、配置配線とビット・ファイルの生成を実行した。
Result タブの Pacement -> helloworld.place.rpt ファイルを確認した。
Logic Elements は 56 個使用していて、LUTs/Adder は 55 個、Registers は 18 個使用している。
Efinity_51_L240325.png

Result タブの Routing -> helloworld.timing.rpt ファイを表示した。
クロックの解析結果は制約が 33.333 MHz のところ、17.528 ns、57.052 MHz だった。
ポートの出力遅延、入力遅延も問題ないようだ。
Efinity_51_L240325.png

4.0 Review Results
4.1 Review Place and Route Results in the Floorplan Editor
省略。”Windows 11 の Efinity で helloworld チュートリアルをやってみる4”を参照のこと。

4.2 Use the Timing Browser
4.3 Use the Tcl Command Console

省略。”Windows 11 の Efinity で helloworld チュートリアルをやってみる5”を参照のこと。

5.0 Configure the FPGA
Efinity の Tools メニューから Open Programmer を選択した。

Efinity Programmer が起動した。
USB Target に AVR USB HID DEMO が表示されていた。
Select Image File ボタンをクリックした。
Efinity_52_L240325.png

Open Image File ダイアログが表示された。
/media/masaaki/Ubuntu_Disk/Efinity/efinity/2023.2/project/tutorial/helloworld/outflow/helloworld.hex ファイルを選択して、”開く”ボタンをクリックした。
Efinity_53_L240325.png

Efinity Programmer の Image の Bitstream File に /media/masaaki/Ubuntu_Disk/Efinity/efinity/2023.2/project/tutorial/helloworld/outflow/helloworld.hex ファイルが入力された。
Programming Mode の SPI Active の隣の Start Program ボタンをクリックした。
FLash メモリ を消去して、helloworld.hex を Flash メモリに書き込んだ。

月 3月 25 24 15:26:46 - Erasing entire flash...
月 3月 25 24 15:27:07 - ... finished erasing flash
月 3月 25 24 15:27:07 - Writing '/media/masaaki/Ubuntu_Disk/Efinity/efinity/2023.2/project/tutorial/helloworld/outflow/helloworld.hex' to flash memory...
月 3月 25 24 15:27:10 - ... finished active programming


Efinity_54_L240325.png

プログラムの結果、LED スイープしている。
SW3 を押している間はスイープが逆方向になった。
S|W2 を押している間は LED が全消灯した。
Efinity_55_L240325.jpg
Efinity_56_L240325.jpg
  1. 2024年03月25日 17:06 |
  2. Efinity IDE
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/6227-bbb76a6d
この記事にトラックバックする(FC2ブログユーザー)