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

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

FPGAの部屋

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

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”を行った。

Ubuntu 22.04 の Efinity を使用する。
Efinity の環境を整えて、ファイルをコピーしよう。

1.0 Prepare the Tutorial Files
Ubuntu 22.04 のターミナルで efinity/2023.2 に移動した。
cd /media/masaaki/Ubuntu_Disk/Efinity/efinity/2023.2

以下のコマンドを実行した。
source bin/setup.sh
cd project
mkdir tutorial
cp -r helloworld/ tutorial/
cd tutorial/helloworld

Efinity_28_L240325.png

2.0 Create Your Proje
ターミナルに efinity & と入力し、 Efinity 2023.2 を起動した。
Efinity Software の File メニューから Create Project... を選択lした。

Create New Project ダイアログが表示された。
Name に helloworld と入力した。
Location のフォルダ・アイコンをクリックし、/media/masaaki/Ubuntu_Disk/Efinity/efinity/2023.2/project/tutorial/helloworld を選択した。
Description に”My helloworld example project.”と入力した。
Family はデフォルトで Trion だった。
Device もデフォルトで T8F81 だった。
Efinity_29_L240325.png

Design タブをクリックした。
Top Module/Entity に helloworld を入力した。
Default Version: の下の 3 個並んだ左端のボタンの Import Design and constraint files ボタンをクリックした。

Import Directory Files ダイアログが表示された。
/media/masaaki/Ubuntu_Disk/Efinity/efinity/2023.2/project/tutorial ディレクトリに行って、helloworld ディレクトリを選択した。
File To Import で ALL Files ラジオボタンを選択していることを確認した。
Choose ボタンをクリックした。

helloworld_tb.v テストベンチ・ファイルを選択し、Default Version: の下の 3 個並んだ右端のボタンの Delete selected design file ボタンをクリックして削除した。
helloworld_tb.v テストベンチ・ファイルが削除された。
OK ボタンをクリックした。
Efinity_30_L240325.png

Efinity に helloworld プロジェクトが作成された。
Efinity_31_L240325.png

3.0 Run the Flow
3.1 RTL Simulation
次に Icarus Verilog を使用して、RTL シミュレーションを行う。
helloworld_tb.v に VCD ファイルに出力する記述があることを確認した。

以下のコマンドを実行した。
efx_run.py helloworld.xml --flow rtlsim
成功した。
Efinity_32_L240325.png

左端のウインドウの Result タブをクリックして選択した。
Simulation を展開して、helloworld.rtl.simlog をダブルクリックした。
RTL シミュレーション結果の helloworld.rtl.simlog が右端のウインドウに表示された。
Efinity_33_L240325.png

コマンドプロンプトから、次のコマンドを起動して、GTKWave を起動した。
gtkwave outflow/helloworld.vcd

GTKWave GUI が表示された。
sim/dut の信号をすべて追加した。
Efinity_34_L240325.png

3.2 Synthesize the Design
Toggle automated flow ボタンをクリックして、automated flow をオフにした。
注:下に示すキャプチャ画面はすでに automated flow をオフにしてある。
Efinity_39_L240325.png

Synthesize ボタンをクリックして、論理合成を行った。
注:下に示すキャプチャ画面はすでに論理合成を行った後である。
Efinity_40_L240325.png

論理合成が終了した。

左端のウインドウの Result タブをクリックして選択した。
Synthesis を展開すると、生成されたネットリスト・ファイルの helloworld.map.v や論理合成のリポート・ファイルの helloworld.map.rpt、helloworld.map.out と helloworld.res.csv ファイルが入っていた。
helloworld.map.rpt を開くと論理合成結果が表示された。
Efinity_35_L240325.png

3.3 Perform Post-Map Simulation
論理合成後のシミュレーションを行う。

ターミナルで以下のコマンドを入力した。
efx_run.py helloworld.xml --flow mapsim
成功した。Windows 11 ではエラーだったが、Ubuntu 22.04 では成功した。
Efinity_36_L240325.png

Result タブの Simulation -> helloworld.map.simlog が生成された。
helloworld.map.simlog を表示した。
Efinity_37_L240325.png

コマンドプロンプトから、次のコマンドを起動して、GTKWave を起動した。
gtkwave outflow/helloworld.vcd

GTKWave GUI が表示された。
sim/dut の信号をすべて追加した。
counter 信号もバラバラに展開されている。
Efinity_38_L240325.png
  1. 2024年03月25日 06:35 |
  2. Efinity IDE
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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