FC2カウンター FPGAの部屋 2024年02月13日
fc2ブログ

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

FPGAの部屋

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

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