FPGAの部屋 Gowin EDA
FC2ブログ

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

FPGAの部屋

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

Gowin Analyzer Osciloscope で hdmi プロジェクトの信号を確認する3

Gowin Analyzer Osciloscope で hdmi プロジェクトの信号を確認する2”の続き。

Gowin FPGA Designer の Gowin Analyzer Osciloscope を使用して、hdmi プロジェクトの信号を確認してみようということで、前回は、Capture Option の設定を行って、論理合成、Place & Route を行って、レポートを確認した。今回は、Gowin Analyzer Osciloscope を起動して、FPGA をコンフィギュレーションし、波形を確認した。

前回のコンパイルで、Gowion Analyzer Oscilloscope のFPGA プログラミング用ファイルの ao_0.fs が生成されている。
Tang_Primer_25K_222_240302.png

スーパーユーザー・モードでコマンドラインから Gowion Analyzer Oscilloscope を起動した。(使用しているパソコンの OS は Ubutnu 22.04)
sudo /media/masaaki/Ubuntu_Disk/Gowin/IDE/bin/gao_analyzer -family GW5A -device GW5A-25A -dir /media/masaaki/Ubuntu_Disk/Gowin/TangPrimer-25K-example/hdmi/svo/src -gao /media/masaaki/Ubuntu_Disk/Gowin/TangPrimer-25K-example/hdmi/svo/src/hdmi.rao -fs /media/masaaki/Ubuntu_Disk/Gowin/TangPrimer-25K-example/hdmi/svo/impl/pnr/ao_0.fs

スーパーユーザー・モードの Gowion Analyzer Oscilloscope が起動した。
Tang_Primer_25K_223_240302.png

Cable を Gowin USB Cable (FT2CH) に変更し、Programmer の Enable Programmer にチェックを入れた。Program/Configure ボタンをクリックして、FPGA にプログラムをダウンロードして、成功した。
Tang_Primer_25K_224_240302.png

Match Units の M0 をダブルクリックした。
Tang_Primer_25K_225_240302.png

Match Unit Config ダイアログが開いた。
右側の Balue の信号の値を vdma_tuser[0::0] のみ 1 として、他のすべての信号を X に設定した。
Counter の Count を 1 に設定した。
OK ボタンをクリックした。
Tang_Primer_25K_226_240302.png

Trigger Position を 100 に設定した。
Start ボタンをクリックすると Gowion Analyzer Oscilloscope のキャプチャが開始した。
Tang_Primer_25K_227_240302.png

sv0_hdmi_inst_0/vdam_tuser[0] でトリガがかかった。
video_enc_tuser[0] (start of frame) も 1 になったのが見えている。
video_enc_tuser[3] (blank) が 1 になっていて、その間に、video_enc_tuser[1] (hsync) が 1 になっているのも見える。
Tang_Primer_25K_228_240302.png

sv0_hdmi_inst_0/vdam_tuser[0] が 1 になった部分を拡大した。
Tang_Primer_25K_229_240302.png

画像フレームの hsync の部分を見てみると、vdma_tready が 0 に落ちているのが分かる。
これは、svo_tcard.v の画像を生成する機能を止めておくためだと思う。これで同期を取っているということが分かった。
Tang_Primer_25K_230_240302.png

なお、現在の FPGA チップの温度を放射温度計で測定したところ約 40 度C だった。測定するたびに温度が変動したので、FPGA チップが小さいこともあり、精度は出ていない気がするが。
  1. 2024年03月02日 21:01 |
  2. Gowin EDA
  3. | トラックバック:0
  4. | コメント:0

Gowin FPGA Designer の Gowin Analyzer Osciloscope を試す3

Gowin FPGA Designer の Gowin Analyzer Osciloscope を試す2”の続き。

Gowin FPGA Designer の Gowin Analyzer Osciloscope を試してみよう、ということで前回は、Capture Option の設定を行って、スーバーユーザー・モードで Gowion Analyzer Oscilloscope を起動して、波形を観測できた。今回は、Gowin Analyzer Osciloscope 使用時のリソース使用量、増えたネット、タイミングを見ていこう。

Gowin FPGA Designer の Process タブをクリックし、Process ウインドウを表示した。
Place & Route -> Place & Route Report を表示した。
Resource -> Resource Usage Summary を表示した。
Tang_Primer_25K_139_240214.png

Logic は 550 個使用して、その内訳は LUT が 504 個、ALU が 46 個、ROM16 が 0 個だそうだ。
CLS を 476 個、BSRAM を SDPX9B として 2 個使用している。

Gowin Analyzer Osciloscope を入れていないときは、Logic は 49 個使用して、その内訳は LUT が 18 個、ALU が 31 個、ROM16 が 0 個だった。CLS は 28 個だった。
Tang_Primer_25K_97_240208.png

blink プロジェクトで Gowin Analyzer Osciloscope を入れたときは Logic が 500 個程度増えるようだ。

なお、CLS は Configurable Logic Section の略だそうだ。日本語では、コンフィギャラブル論理セクション。
CLS については、”GW5AT シリーズ FPGA 製品 データシート DS981-1.0J, 2024-02-02”に書いてある。
GW5AT シリーズ FPGA 製品 データシート DS981-1.0J, 2024-02-02”の 19 ページの”2.2 コンフィギャラブル機能ユニット”を引用する。
CFU(Configurable Function Unit) の中に CLS が入っているそうだ。
Tang_Primer_25K_143_240214.png

BSRAM プリミティブの SDPX9B に関しては、”Gowin BSRAM & SSRAM ユーザーガイド UG285-1.3.6J, 2023-05-25”に記述があった。
Gowin BSRAM & SSRAM ユーザーガイド UG285-1.3.6J, 2023-05-25”の 32 ページの”表 3-7 SDPB/SDPX9B データ幅とアドレス深さの対応関係”を引用する。
Tang_Primer_25K_144_240214.png

Gowin Analyzer Osciloscope では、1024 状態をキャプチャできるので、2 の 10 乗ということで、データ幅が 18 ビットで、アドレス深さが 10 ビットになっているのだと思う。

SDPX9B のポート図が”Gowin BSRAM & SSRAM ユーザーガイド UG285-1.3.6J, 2023-05-25”の 33 ページの”図 3-11 SDPB/SDPX9B のポート図”に載っていたので、引用する。
Tang_Primer_25K_145_240214.png

次に、タイミングの結果を見ていこう。
Place & Route -> Timing Analyzer Report をクリックした。
Timing Summaries -> Clock Summary などを表示した。
Max Frequency Summay を見ると、clk の Actual Fmax は 218.866 MHz となっていて、Gowin Analyzer Osciloscope の 181.911 MHz よりも性能が良くなっている。
更に、たぶん Gowin Analyzer Osciloscope で使用するクロックの tck_pad_i が追加されている。tck_pad_i のタイミング制約は 20 MHz だが、Actual Fmax は 92.028 MHz だった。
Tang_Primer_25K_140_240214.png

Gowin Analyzer Osciloscope を入れていないときのClock Summary などを示す。
Tang_Primer_25K_98_240208.png

Gowin Analyzer Osciloscope で使用している Primitive や Net は PloorPlanner で見ることができるようだ。
PloorPlanner を起動して、Gowin Analyzer Osciloscope で使用している Primitives の一部を確認した。
Tang_Primer_25K_141_240214.png

Gowin Analyzer Osciloscope で使用している Nets の一部を確認した。
Tang_Primer_25K_142_240214.png
  1. 2024年02月14日 05:12 |
  2. Gowin EDA
  3. | トラックバック:0
  4. | コメント:0

Gowin FPGA Designer の Gowin Analyzer Osciloscope を試す2

Gowin FPGA Designer の Gowin Analyzer Osciloscope を試す1”の続き。

Gowin FPGA Designer の Gowin Analyzer Osciloscope を試してみよう、ということで前回は、GAO Config File の blink.rao ファイルを作成し、Trigger Option のセットアップを行った。今回は、Capture Option の設定を行って、スーバーユーザー・モードで Gowion Analyzer Oscilloscope を起動して、波形を観測できた。

Gowin FPGA Designer で blink.rao を編集中に Capture Option タブをクリックした。
Sample Clock -> Clock の ... ボタンをクリックした。
Tang_Primer_25K_126_240213.png

Search Nets ダイアログが表示された。
Name に clk と入力し、Search ボタンをクリックした。
clk が表示されたので、選択して、OK ボタンをクリックした。
Tang_Primer_25K_127_240213.png

Trigger Position を 512 に設定し、Capture Signals の Add From Tigger ボタンをクリックした。
Tang_Primer_25K_128_240213.png

Add From Tigger ダイアログが表示された。
Trigger Port 0 にチェックを入れて、OK ボタンをクリックした。
Tang_Primer_25K_129_240213.png

CTRL+s キーを押して、blink.rao を セーブした。
Run All ボタンをクリックして、論理合成と Place & Route を行った。
Tang_Primer_25K_130_240213.png

論理合成と Place & Route が終了した。
Tang_Primer_25K_131_240213.png

ログを示す。

GowinSynthesis start
Running parser ...
Analyzing Verilog file '/media/masaaki/Ubuntu_Disk/Gowin/HDL/blink/src/blink.sv'
WARN  (EX3628) : Redeclaration of ANSI port 'led' is not allowed("/media/masaaki/Ubuntu_Disk/Gowin/HDL/blink/src/blink.sv":11)
Analyzing Verilog file '/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/GAO/GW_AO_0/gw_ao_crc32.v'
Analyzing Verilog file '/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/GAO/GW_AO_0/gw_ao_match.v'
Analyzing included file '/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/GAO/GW_AO_0/gw_ao_define.v'("/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/GAO/GW_AO_0/gw_ao_match.v":327)
Back to file '/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/GAO/GW_AO_0/gw_ao_match.v'("/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/GAO/GW_AO_0/gw_ao_match.v":327)
Analyzing Verilog file '/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/GAO/GW_AO_0/gw_ao_mem_ctrl.v'
Analyzing included file '/media/masaaki/Ubuntu_Disk/Gowin/HDL/blink/impl/gwsynthesis/RTL_GAO/ao_0/gw_ao_top_define.v'("/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/GAO/GW_AO_0/gw_ao_mem_ctrl.v":150)
Back to file '/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/GAO/GW_AO_0/gw_ao_mem_ctrl.v'("/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/GAO/GW_AO_0/gw_ao_mem_ctrl.v":150)
Analyzing Verilog file '/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/GAO/GW_AO_0/gw_ao_top.v'
Analyzing included file '/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/GAO/GW_AO_0/gw_ao_define.v'("/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/GAO/GW_AO_0/gw_ao_top.v":2738)
Back to file '/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/GAO/GW_AO_0/gw_ao_top.v'("/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/GAO/GW_AO_0/gw_ao_top.v":2738)
Analyzing included file '/media/masaaki/Ubuntu_Disk/Gowin/HDL/blink/impl/gwsynthesis/RTL_GAO/ao_0/gw_ao_top_define.v'("/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/GAO/GW_AO_0/gw_ao_top.v":2738)
Back to file '/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/GAO/GW_AO_0/gw_ao_top.v'("/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/GAO/GW_AO_0/gw_ao_top.v":2738)
Analyzing included file '/media/masaaki/Ubuntu_Disk/Gowin/HDL/blink/impl/gwsynthesis/RTL_GAO/ao_0/gw_ao_expression.v'("/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/GAO/GW_AO_0/gw_ao_top.v":2738)
Back to file '/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/GAO/GW_AO_0/gw_ao_top.v'("/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/GAO/GW_AO_0/gw_ao_top.v":2738)
Analyzing included file '/media/masaaki/Ubuntu_Disk/Gowin/HDL/blink/impl/gwsynthesis/RTL_GAO/ao_0/gw_ao_parameter.v'("/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/GAO/GW_AO_0/gw_ao_top.v":2738)
Back to file '/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/GAO/GW_AO_0/gw_ao_top.v'("/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/GAO/GW_AO_0/gw_ao_top.v":2738)
Analyzing Verilog file '/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/GAO/GW_CON/gw_con_top.v'
Analyzing included file '/media/masaaki/Ubuntu_Disk/Gowin/HDL/blink/impl/gwsynthesis/RTL_GAO/ao_control/gw_con_top_define.v'("/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/GAO/GW_CON/gw_con_top.v":377)
Back to file '/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/GAO/GW_CON/gw_con_top.v'("/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/GAO/GW_CON/gw_con_top.v":377)
Analyzing included file '/media/masaaki/Ubuntu_Disk/Gowin/HDL/blink/impl/gwsynthesis/RTL_GAO/ao_control/gw_con_parameter.v'("/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/GAO/GW_CON/gw_con_top.v":377)
Back to file '/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/GAO/GW_CON/gw_con_top.v'("/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/GAO/GW_CON/gw_con_top.v":377)
Analyzing Verilog file '/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/gw_jtag.v'
Analyzing Verilog file '/media/masaaki/Ubuntu_Disk/Gowin/HDL/blink/impl/gwsynthesis/RTL_GAO/gw_gao_top.v'
Compiling module 'blink'("/media/masaaki/Ubuntu_Disk/Gowin/HDL/blink/src/blink.sv":4)
Compiling module '**'("/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/GAO/GW_AO_0/gw_ao_crc32.v":0)
Compiling module '**'("/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/GAO/GW_AO_0/gw_ao_match.v":0)
Compiling module '**'("/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/GAO/GW_AO_0/gw_ao_mem_ctrl.v":0)
Extracting RAM for identifier '**'("/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/GAO/GW_AO_0/gw_ao_mem_ctrl.v":0)
Compiling module '**'("/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/GAO/GW_AO_0/gw_ao_top.v":0)
Compiling module '**'("/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/GAO/GW_AO_0/gw_ao_mem_ctrl.v":0)
Extracting RAM for identifier '**'("/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/GAO/GW_AO_0/gw_ao_mem_ctrl.v":0)
Compiling module '**'("/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/GAO/GW_AO_0/gw_ao_match.v":0)
Compiling module '**'("/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/GAO/GW_CON/gw_con_top.v":0)
Compiling module 'GW_JTAG'("/media/masaaki/Ubuntu_Disk/Gowin/IDE/data/ipcores/gw_jtag.v":1)
Compiling module 'gw_gao'("/media/masaaki/Ubuntu_Disk/Gowin/HDL/blink/impl/gwsynthesis/RTL_GAO/gw_gao_top.v":1)
Trying to combine GAO to RTL design
NOTE  (EX0101) : Current top module is "blink"
[5%] Running netlist conversion ...
Running device independent optimization ...
[10%] Optimizing Phase 0 completed
[15%] Optimizing Phase 1 completed
[25%] Optimizing Phase 2 completed
Running inference ...
[30%] Inferring Phase 0 completed
[40%] Inferring Phase 1 completed
[50%] Inferring Phase 2 completed
[55%] Inferring Phase 3 completed
Running technical mapping ...
[60%] Tech-Mapping Phase 0 completed
[65%] Tech-Mapping Phase 1 completed
[75%] Tech-Mapping Phase 2 completed
[80%] Tech-Mapping Phase 3 completed
[90%] Tech-Mapping Phase 4 completed
[95%] Generate netlist file "/media/masaaki/Ubuntu_Disk/Gowin/HDL/blink/impl/gwsynthesis/blink.vg" completed
[100%] Generate report file "/media/masaaki/Ubuntu_Disk/Gowin/HDL/blink/impl/gwsynthesis/blink_syn.rpt.html" completed
GowinSynthesis finish
Reading netlist file: "/media/masaaki/Ubuntu_Disk/Gowin/HDL/blink/impl/gwsynthesis/blink.vg"
Parsing netlist file "/media/masaaki/Ubuntu_Disk/Gowin/HDL/blink/impl/gwsynthesis/blink.vg" completed
Processing netlist completed
Reading constraint file: "/media/masaaki/Ubuntu_Disk/Gowin/HDL/blink/src/blink.cst"
Physical Constraint parsed completed
Running placement......
[10%] Placement Phase 0 completed
[20%] Placement Phase 1 completed
[30%] Placement Phase 2 completed
[50%] Placement Phase 3 completed
Running routing......
[60%] Routing Phase 0 completed
[70%] Routing Phase 1 completed
[80%] Routing Phase 2 completed
[90%] Routing Phase 3 completed
Running timing analysis......
[95%] Timing analysis completed
Placement and routing completed
Bitstream generation in progress......
Bitstream generation completed
Generate file "/media/masaaki/Ubuntu_Disk/Gowin/HDL/blink/impl/pnr/blink.pin.html" completed
Generate file "/media/masaaki/Ubuntu_Disk/Gowin/HDL/blink/impl/pnr/blink.rpt.html" completed
Generate file "/media/masaaki/Ubuntu_Disk/Gowin/HDL/blink/impl/pnr/blink.rpt.txt" completed
Generate file "/media/masaaki/Ubuntu_Disk/Gowin/HDL/blink/impl/pnr/blink.tr.html" completed
Tue Feb 13 03:46:08 2024


Gowion Analyzer Oscilloscope ボタンをクリックして、Gowion Analyzer Oscilloscope を起動した。
Tang_Primer_25K_132_240213.png

Gowion Analyzer Oscilloscope はユーザー・モードで起動しているので、FPGA のコンフィギュレーションができなかった。
そこで、スーパーユーザー・モードでコマンドラインから Gowion Analyzer Oscilloscope を起動した。(使用しているパソコンの OS は Ubutnu 22.04)
sudo /media/masaaki/Ubuntu_Disk/Gowin/IDE/bin/gao_analyzer -family GW5A -device GW5A-25A -dir /media/masaaki/Ubuntu_Disk/Gowin/HDL/blink/src -gao /media/masaaki/Ubuntu_Disk/Gowin/HDL/blink/src/blink.rao -fs /media/masaaki/Ubuntu_Disk/Gowin/HDL/blink/impl/pnr/ao_0.fs

スーパーユーザー・モードの Gowion Analyzer Oscilloscope が起動した。
Cable を Gowin USB Cable (FT2CH) に変更し、Programmer の Enable Programmer にチェックを入れた。Program/Configure ボタンをクリックして、FPGA にプログラムをダウンロードして、成功した。READY LED が点滅を開始した。
Tang_Primer_25K_133_240213.png

Start ボタンをクリックすると Gowion Analyzer Oscilloscope のキャプチャが開始した。
Tang_Primer_25K_138_240213.png

波形が表示された。
Tang_Primer_25K_134_240213.png

Zoom Fit ボタンをクリックして、全体を表示した。
led が 1 から 0 に変化しているのが見えた。
Tang_Primer_25K_135_240213.png

led が 1 から 0 に変化している辺りを拡大した。
count が 16 進数で見にくいので、10 進数に変更する。
count を右クリックし、右クリックメニューから Format -> Unsigned Decmal を選択した。
Tang_Primer_25K_136_240213.png

count が 12499999 から 0 に変わるときに led も 1 から 0 になっているのが分かる。
Tang_Primer_25K_137_240213.png
  1. 2024年02月13日 05:05 |
  2. Gowin EDA
  3. | トラックバック:0
  4. | コメント:0

Gowin FPGA Designer の Gowin Analyzer Osciloscope を試す1

Gowin FPGA Designer の Gowin Analyzer Osciloscope を試してみよう。

Tang-NanoでAnalyzer Oscilloscopeを使ってみる”を参考にさせていただいた。

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

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

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

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

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

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

Search Nets ダイアログが表示された。
Name に count と入力して、Search ボタンをクリックした。
下のウインドウに count[31:0] が表示された。
count[31:0] を選択し、OK ボタンをクリックした。
Tang_Primer_25K_120_240211.png

count[31:0] が追加された Trigger Port ダイアログに戻った。
もう位置、+ボタンをクリックした。
Tang_Primer_25K_121_240211.png

もう一度、Search Nets ダイアログが表示された。
Name に led と入力して、Search ボタンをクリックした。
下のウインドウに led が表示された。
led を選択し、OK ボタンをクリックした。
Tang_Primer_25K_122_240211.png

Trigger Port ダイアログの count[31:0] の下に led が追加された。
OK ボタンをクリックした。
Tang_Primer_25K_123_240211.png

Trigger Options -> Trigger Ports -> Trigger Port0 に count[31:0] と led が追加された。
Match Units で MO をダブルクリックした。
Tang_Primer_25K_124_240211.png

Match Unit Config ダイアログが表示された。
On Trigger Port をクリックし、Trigger Port 0 を選択した。
Value で HEX を選択した。
後はデフォルトで OK ボタンをクリックした。
Tang_Primer_25K_125_240211.png

Expressions の中で右クリックし、右クリックメニューから Add を選択した。
Tang_Primer_25K_126_240211.png

Expression ダイアログが表示された。
M0 ボタンをクリックして、M0 を選択した。
OK ボタンをクリックした。
Tang_Primer_25K_127_240211.png

Expressions に M0 が追加された。
Tang_Primer_25K_128_240211.png
  1. 2024年02月12日 04:34 |
  2. Gowin EDA
  3. | トラックバック:0
  4. | コメント:0

Gowin FPGA Designer の RTL Design Viewer を試す

Tang Primer 25K で Lチカする6(GOWIN Programmer で L チカ)”の続きなのだが、趣向を変えて Gowin FPGA Designer の RTL Design Viewer を試してみよう。

Gowin FPGA Designer の Tools メニューから Schematic Viewer -> RTL Design Viewer を選択した。
Tang_Primer_25K_107_240211.png

RTL Design Viewer が起動した。
Nets と Primitives, Ports などが見られるようだ。
Tang_Primer_25K_108_240211.png

Primitives を開いて、couter[0](dff) をクリックすると、counter[0] が表示された。
Tang_Primer_25K_109_240211.png

Zoom Out していくと、couter[0] が他の Primitive にどのように接続されているかが見える。
Tang_Primer_25K_110_240211.png

配線をクリックするとどの Net かがハイライトされるようだ。この場合のネットは n70 だった。
Tang_Primer_25K_111_240211.png

Ports の内の led をクリックした。
Tang_Primer_25K_112_240211.png

Zoom Out していくと led ポートが led という dff 出力なのが分かる。予定通りだ。。。
Tang_Primer_25K_113_240211.png
  1. 2024年02月11日 08:08 |
  2. Gowin EDA
  3. | トラックバック:0
  4. | コメント:0

Gowin EDA のダウンロードとインストール2(Gowin Programmer のドライバをインストール)

Gowin EDA のダウンロードとインストール”の続き。

前回は、GOWIN FPGA Designer と Gowin Programmer をダウンロードして、展開した。今回は、Gowin Programmer のドライバをインストールする。

Gowin Programmer のドライバのインストールの仕方は、Programmer/doc/JPN/SUG502-1.5J_Gowin Programmerユーザーガイド.pdf の 15 ページの”2.5 Linux OS におけるケーブルの権限の構成”に書いてあったので、インストールを行う。
なお、現在使用しているパソコンの OS は Ubuntu 22.04 を使っている。

必要なファイルは、50-programmer_usb.rules, Gowin_USB_Cable_Installer.sh, Makefile だそうだ。
これらのファイルは、Programmer/bin ディレクトリに入っていた。
Tang_Primer_25K_56_240203.png

Programmer/bin ディレクトリに行って、make を行った。
cd /media/masaaki/Ubuntu_Disk/Gowin/Programmer/bin
sudo make

Tang_Primer_25K_57_240203.png

次に、Gowin_USB_Cable_Installer.sh を実行する。
su を実行して行うとマニュアルに書いてあったが、su のパスワードを忘れてしまったので、sudo でやることにした。
sudo chmod +x Gowin_USB_Cable_Installer.sh
sudo ./Gowin_USB_Cable_Installer.sh

Tang_Primer_25K_58_240203.png

GOWIN FPGA Designer の Process タブの Program Device をダブルクリックして、Gowin Programmer を起動した。
Tang_Primer_25K_59_240203.png

Tang_Primer_25K_60_240203.png
  1. 2024年02月03日 04:37 |
  2. Gowin EDA
  3. | トラックバック:0
  4. | コメント:0

Gowin EDA のサンプル・プロジェクトの内の CAN プロジェクトをやってみる4

Gowin EDA のサンプル・プロジェクトの内の CAN プロジェクトをやってみる3”の続き。

前回は、Place & Route のログの Place & Route Report と Timing Analysis Report を確認した。今回は、Place & Route のログの Ports & Pins Report と Power Analysis Report を確認した。

Place & Route のログの Ports & Pins Report を開いた。
Tang_Primer_25K_48_240201.png

Pin Details -> Pinout by Port Name をクリックした。
Port Name とその情報が表になっていた。
Tang_Primer_25K_49_240201.png

Pin Details -> All Package Pins をクリックした。
ピン番号順に信号名が表にしてあった。
Tang_Primer_25K_50_240201.png

Place & Route のログの Power Analysis Report を開いた。
Power Summary の Power Information とThermal Information も見えていた。
総消費電力は 115.234 mW だった。低い。静的消費電力は 91.757 mW で、動的消費電力は 23.467 mW だった。この消費電力見積もりは I/O も含めてこの消費電力なのだろうか?
Tang_Primer_25K_51_240201.png

Power Summary -> Power Configuration Information をクリックした。
Supply Information も見えている。
VCC は 1.000 V で 動的な電流は 16.744 mA だそうだ。
Tang_Primer_25K_52_240201.png

Power Details -> Power By Block Type をクリックした。
IO と PLL の消費電力が案外多い。
Tang_Primer_25K_53_240201.png

Power Details -> Power By Hierarchy をクリックした。
各階層ごとの消費電力が示されている。
Tang_Primer_25K_54_240201.png

Power Details -> Power By Clock Domain をクリックした。
クロックごとの動的消費電力が示されている。
Tang_Primer_25K_55_240201.png
  1. 2024年02月02日 04:40 |
  2. Gowin EDA
  3. | トラックバック:0
  4. | コメント:0
»