FPGAの部屋

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

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。ご利用ください。 http://marsee101.web.fc2.com/index.html

Tang Primer 25K で PMOD-DVI を使用する5”で SVGA サイズの画像をディスプレイに表示することができた。Gowin FPGA Designer の Gowin Analyzer Osciloscope を使用して、hdmi プロジェクトの信号を確認してみよう。

hdmi プロジェクトの svo_tcard.v で画像を生成し、svo_enc.v で DVI 信号に変換しているようだ。
svo_tcard.v の out_axis_tuser 信号は画像のスタート・ピクセルを示す 1 ビット長(svo_hdmi.v の vdma_tuser)だが、svo_enc.v の out_axis_tuser は 4 ビット長(svo_hdmi.v の video_enc_tuser)だった。

svo_enc.v の tuser の定義を引用する。

// output stream
// tuser[0] ... start of frame
// tuser[1] ... hsync
// tuser[2] ... vsync
// tuser[3] ... blank


svo_hdmi.v の一部を引用する。
4e098ddd.png


さて、Gowin FPGA Designer で Gowin Analyzer Osciloscope の設定を行う。

Gowin FPGA Designer の File メニューから new... を選択した。
New ダイアログが表示された。
Files から GAO Config File を選択して、OK ボタンをクリックした。

New GAO Wizard ダイアログが表示された。
GAO Settings 画面
デフォルトのままで、Next > ボタンをクリックした。

GAO Configure File 画面
Name はデフォルトの hdmi のままとした。
Next > ボタンをクリックした。

Summary 画面
Finish ボタンをクリックした。

src ディレクトリに hdmi.rao ファイルが生成された。
hdmi.rao をダブルクリックして編集した。
7b3d6e4c.png


Trigger Options -> Trigger Ports -> Trigger Port0 をダブルクリックして編集する。
Trigger Port ダイアログが表示された。
+ボタンをクリックした。

Search Nets ダイアログが表示された。
Name に ”vdma_” と入力して、Search ボタンをクリックした。
svo_hdmi_inst0 の信号のみを選択し、OK ボタンをクリックした。

もう一度、Trigger Port ダイアログの + ボタンをクリックした。
Search Nets ダイアログが表示された。
Name に ”video_enc_” と入力して、Search ボタンをクリックした。
svo_hdmi_inst0 の信号のみを選択し、OK ボタンをクリックした。

Trigger Port ダイアログの様子を示す。
OK ボタンをクリックした。
Tang_Primer_25K_206_240228.png

Trigger Options -> Trigger Ports -> Trigger Port0 に選択した信号が追加された。
Match Units で MO をダブルクリックした。
2346d0e5.png


Match Unit Config ダイアログが表示された。
On Trigger Port をクリックし、Trigger Port 0 を選択した。
Value で HEX を選択した。
Counter にチェックを入れて、Width を 3、Count を 7 に設定した。
Continuous にチェックを入れた。
OK ボタンをクリックした。
7c3395f4.png


Expressions の中で右クリックし、右クリックメニューから Add を選択した。
Expression ダイアログが表示された。
M0 ボタンをクリックして、M0 を選択した。
OK ボタンをクリックした。
Tang_Primer_25K_209_240228.png

Expressions に M0 が追加された。
2c722c32.png

EFINIX 社の Xyloni Development Kit この Web サイトで、一昨日注文したところ、昨日届いた。さすが、国内での注文は届くのが早い。

Xyloni Development Kit には、81-ball FBGA package の Efinix® T8F81C2 device が搭載されている。

Xyloni Development Kit は下の紙箱に入っていた。
90928b54.jpg


中身は、USB ケーブルとコネクタ類と基板だった。
4f98a18c.jpg


後ではんだ付けしておこう。

基板はとても小さい。ノギスで測ると 51.46 x 33.52 mm だった。
2ea4885a.jpg


裏には Micro SD カード・スロットがあった。
1afdc6e8.jpg


Xyloni Development Kit のリソース
EFINIX 社の Xyloni Development Kit ページ
Xyloni Development Kit の github ページ
米国 Efinix社製 FPGAスタータキット “Xyloni”入門[RISC-V編] ソースコード完全公開!オープンソース CPUの組み込みからソフトウェア開発まで

Tang Primer 25K で PMOD-DVI を使用する4”の続き。

Tang Primer 25K に PMOD-DVI ボードを挿して、HDMI コネクタ経由でディスプレイに何らかの画像を出したい。ということで、前回は、PLLA プリミティブの出力周波数が高すぎたので、PLLA のパラメータを調整して、200 MHz つまり、SVGA のピクセル・クロックの 5 倍を出力するようにした。また svo/svo_hdmi.v を修正して、800x600 ピクセルの SVGA モードに変更した。Synthesis と Place & Route を行って、前々回のタイミング制約エラーは回避できたが、Recovery Paths Table にエラーが出ていた。今回は、生成されたビットストリームを FPGA にダウンロードしたところ、HDMI 端子に接続されたディスプレイに画像が表示された。

Tang Primer 25K をホスト・パソコンに USB ケーブルで接続した。
PMOD-DVI を J4 に接続し、HDMI ケーブルでディスプレイと接続した。

ホスト・パソコンの OS は Ubuntu 22.04 なので、Programmer をスーバーユーザー権限で起動した。
sudo /media/masaaki/Ubuntu_Disk/Gowin/Programmer/bin/programmer -family GW5A -device GW5A-25A -fs //media/masaaki/Ubuntu_Disk/Gowin/TangPrimer-25K-example/hdmi/svo/impl/pnr/hdmi.fs

Programmer が起動し、USB Debuuger A ケーブルが見つかった。
Save ボタンをクリックした。

Gowin Programmer が起動した。
Programmer の Program/Configure ボタンをクリックした。

Progress Information ダイアログが表示された。
Programming... が進んでいく。

コンフィギュレーションが終了した。
e70d59f2.png


Tang Primer 25K の READY LED と DONE LED が点灯した。
b63a5eb7.jpg


ディスプレイに画像が表示された。多分成功だ。。。
c2b829d5.jpg


SVGA (800 x 600 ピクセル)の画像を表示することができた。

↑このページのトップヘ