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

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

FPGAの部屋

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

Tang Primer 25K で Lチカする4(GOWIN FPGA Designer で Synthesis、Place & Route をするがエラー)

Tang Primer 25K で Lチカする3(GOWIN FPGA Designer でプロジェクトを作成する1)”の続き。

Tang Primer 25K で Lチカしてみようということで、前回は、GOWIN FPGA Designer で blink プロジェクトを作成しようとしたところ、ディレクトリを作成できないというエラーになった。どうやら、作成するディレクトリとプロジェクト名が同じだとエラーになるのかもしれない?他のディレクトリに blink プロジェクトを作成した。blink.sv ファイルを blink プロジェクトに追加した。今回は、Synthesis を行って、FloorPlanner で配置制約を作成した。また、Timing Constraints Editor でタイミング制約を作成し、Place & Route を行ったところ、エラーになった。

Run Synthesis ボタンをクリックし、論理合成を行った。
Tang_Primer_25K_82_240208.png

ログを示す。

GowinSynthesis start
Running parser ...
Analyzing Verilog file '/media/masaaki/Ubuntu_Disk/Gowin/HDL/blink/src/blink.sv'
WARN  (EX3628) : Redeclaration of ANSI port 'clk' is not allowed("/media/masaaki/Ubuntu_Disk/Gowin/HDL/blink/src/blink.sv":10)
WARN  (EX3628) : Redeclaration of ANSI port 'led' is not allowed("/media/masaaki/Ubuntu_Disk/Gowin/HDL/blink/src/blink.sv":11)
Compiling module 'blink'("/media/masaaki/Ubuntu_Disk/Gowin/HDL/blink/src/blink.sv":4)
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


FloorPlanner ボタンをクリックした。
Tang_Primer_25K_83_240208.png

Constraint File ダイアログが表示された。
CST file (*.cst) を作成するとのことだ。
OK ボタンをクリックした。
Tang_Primer_25K_84_240208.png

FloorPlanner が起動した。
Package View タブをクリックした。
Tang_Primer_25K_85_240208.png

左の Netlist ウインドウの blink -> Ports (2) を展開して、clk を E2 にドラック&ドロップする。
Tang_Primer_25K_86_240208.png

同様に led も E8 にドラック&ドロップした。
Tang_Primer_25K_87_240208.png

Save Contraints to /media/masaaki/Ubuntu_Disk/Gowin/HDL/blink/src/blink.cst ボタンをクリックして、blink.cst にセーブした。
GOWIN FPGA Designer に戻ると、blink.cst ファイルが生成されていた。

//Copyright (C)2014-2023 Gowin Semiconductor Corporation.
//All rights reserved. 
//File Title: Physical Constraints file
//GOWIN Version: 1.9.9 Beta-4 Education
//Part Number: GW5A-LV25MG121NC1/I0
//Device: GW5A-25
//Device Version: A
//Created Time: Thu 02 08 04:10:09 2024

IO_LOC "led" E8;
IO_PORT "led" PULL_MODE=NONE DRIVE=8 BANK_VCCIO=3.3;
IO_LOC "clk" E2;
IO_PORT "clk" PULL_MODE=NONE DRIVE=OFF BANK_VCCIO=3.3;


Tang_Primer_25K_88_240208.png

次に、Timing Constraints Editor ボタンをクリックし、タイミング制約を作成する。

Constraint File ダイアログが表示された。
SDC file (*.sdc) を作成するとのことだ。
OK ボタンをクリックした。
Tang_Primer_25K_89_240208.png

Gowin Timing Constraints Editor が開いた。
Netlist Tree ウインドウの blink -> Ports (2) -> clk を右クリックし、右クリックメニューから Add Clock を選択した。
Tang_Primer_25K_90_240208.png

Create Clock ダイアログが開いた。
Clock name に clk を入力し、Waveform の Period を 20 ns に、Rising を 0 ns、Falling を 10 ns に設定した。
OK ボタンをクリックした。
Tang_Primer_25K_91_240208.png

clk タイミング制約が追加された。
Save ボタンをクリックして、セーブした。
Tang_Primer_25K_92_240208.png

GOWIN FPGA Designer に戻ると、blink.sdc ファイルが生成されていた。

//Copyright (C)2014-2024 GOWIN Semiconductor Corporation.
//All rights reserved.
//File Title: Timing Constraints file
//GOWIN Version: 1.9.9 Beta-4 Education
//Created Time: 2024-02-08 04:16:47
create_clock -name clk -period 20 -waveform {0 10} [get_ports {clk}]


Tang_Primer_25K_93_240208.png

Run Place & Route ボタンをクリックし、Place & Route を行った。
エラーが発生した。
ログを示す。

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......
ERROR  (PR2028) : The constrained location is useless in current package
ERROR  (PR2017) : 'led' cannot be placed according to constraint, for the location is a dedicated pin (READY)
ERROR  (PR2028) : The constrained location is useless in current package
ERROR  (PR2017) : 'clk' cannot be placed according to constraint, for the location is a dedicated pin (CPU/SSPI)
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
Thu Feb  8 04:18:35 2024


Tang_Primer_25K_94_240208.png
  1. 2024年02月08日 04:55 |
  2. Tang_Primer_25K
  3. | トラックバック:0
  4. | コメント:0