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

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

FPGAの部屋

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

新しいお仕事を探しています、ご紹介ください。

2024 年 3 月 31 日で、40年間勤務してきた職場から 65 歳で定年退職します。
2024 年 4 月からの新しいお仕事を探しています。もし良さそうな FPGA のお仕事がありそうでしたらご紹介ください。よろしくお願いいたします。
なにか良い情報がありましたら、この記事のコメントで”非公開コメント”で”管理者にだけ表示を許可する”のチェックボックスにチェックを入れてお知らせください。よろしくお願いいたします。

(2024年2月17日13:30)
皆さん、いろいろとありがとうございます。
1件、オファーをいただきました。ありがとうございます。他のお仕事も募集しております。よろしくお願いします。

(2024年3月3日 11:00)
4月からの新しいお仕事が決まりました。皆様、ご心配いただいて、ありがとうございました。
  1. 2024年02月16日 03:52 |
  2. 日記
  3. | トラックバック:0
  4. | コメント:1

Tang Primer 25K の PMOD-LED モジュールを使って L チカする2

Tang Primer 25K の PMOD-LED モジュールを使って L チカする1”の続き。

PMOD LED モジュールを使って L チカしてみようということで、前回は、GOWIN FPGA Designer で Tang Primer 25K 用の blink2 プロジェクトを作成し、blink2.sv ファイルを追加した。論理合成 を行って、ネットを RTL Design Viewer で確認した。今回は、配置制約とタイミング制約を作成し、Place & Route を行った。

GOWIN FPGA Designer で FloorPlanner ボタンをクリックした。

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

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

Tang Primer 25K Dock の PMOD のピン番号と信号名対応表を作成した”の”Tang Primer 25K DockのPMODの信号名とピン番号表”に従って、ピンの配置を行った。
Tang_Primer_25K_154_240215.png

Save Contraints to /media/masaaki/Ubuntu_Disk/Gowin/HDL/blink2/src/blink2.cst ボタンをクリックして、blink2.cst にセーブした。
GOWIN FPGA Designer に戻ると、blink2.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 15 20:47:45 2024

IO_LOC "pmod_led[2][7]" J5;
IO_PORT "pmod_led[2][7]" PULL_MODE=NONE DRIVE=8 BANK_VCCIO=3.3;
IO_LOC "pmod_led[2][6]" H5;
IO_PORT "pmod_led[2][6]" PULL_MODE=NONE DRIVE=8 BANK_VCCIO=3.3;
IO_LOC "pmod_led[2][5]" H7;
IO_PORT "pmod_led[2][5]" PULL_MODE=NONE DRIVE=8 BANK_VCCIO=3.3;
IO_LOC "pmod_led[2][4]" H8;
IO_PORT "pmod_led[2][4]" PULL_MODE=NONE DRIVE=8 BANK_VCCIO=3.3;
IO_LOC "pmod_led[2][3]" G8;
IO_PORT "pmod_led[2][3]" PULL_MODE=NONE DRIVE=8 BANK_VCCIO=3.3;
IO_LOC "pmod_led[2][2]" G7;
IO_PORT "pmod_led[2][2]" PULL_MODE=NONE DRIVE=8 BANK_VCCIO=3.3;
IO_LOC "pmod_led[2][1]" G5;
IO_PORT "pmod_led[2][1]" PULL_MODE=NONE DRIVE=8 BANK_VCCIO=3.3;
IO_LOC "pmod_led[2][0]" F5;
IO_PORT "pmod_led[2][0]" PULL_MODE=NONE DRIVE=8 BANK_VCCIO=3.3;
IO_LOC "pmod_led[1][7]" K5;
IO_PORT "pmod_led[1][7]" PULL_MODE=NONE DRIVE=8 BANK_VCCIO=3.3;
IO_LOC "pmod_led[1][6]" L5;
IO_PORT "pmod_led[1][6]" PULL_MODE=NONE DRIVE=8 BANK_VCCIO=3.3;
IO_LOC "pmod_led[1][5]" L11;
IO_PORT "pmod_led[1][5]" PULL_MODE=NONE DRIVE=8 BANK_VCCIO=3.3;
IO_LOC "pmod_led[1][4]" K11;
IO_PORT "pmod_led[1][4]" PULL_MODE=NONE DRIVE=8 BANK_VCCIO=3.3;
IO_LOC "pmod_led[1][3]" E10;
IO_PORT "pmod_led[1][3]" PULL_MODE=NONE DRIVE=8 BANK_VCCIO=3.3;
IO_LOC "pmod_led[1][2]" E11;
IO_PORT "pmod_led[1][2]" PULL_MODE=NONE DRIVE=8 BANK_VCCIO=3.3;
IO_LOC "pmod_led[1][1]" A10;
IO_PORT "pmod_led[1][1]" PULL_MODE=NONE DRIVE=8 BANK_VCCIO=3.3;
IO_LOC "pmod_led[1][0]" A11;
IO_PORT "pmod_led[1][0]" PULL_MODE=NONE DRIVE=8 BANK_VCCIO=3.3;
IO_LOC "pmod_led[0][7]" C10;
IO_PORT "pmod_led[0][7]" PULL_MODE=NONE DRIVE=8 BANK_VCCIO=3.3;
IO_LOC "pmod_led[0][6]" C11;
IO_PORT "pmod_led[0][6]" PULL_MODE=NONE DRIVE=8 BANK_VCCIO=3.3;
IO_LOC "pmod_led[0][5]" B10;
IO_PORT "pmod_led[0][5]" PULL_MODE=NONE DRIVE=8 BANK_VCCIO=3.3;
IO_LOC "pmod_led[0][4]" B11;
IO_PORT "pmod_led[0][4]" PULL_MODE=NONE DRIVE=8 BANK_VCCIO=3.3;
IO_LOC "pmod_led[0][3]" D10;
IO_PORT "pmod_led[0][3]" PULL_MODE=NONE DRIVE=8 BANK_VCCIO=3.3;
IO_LOC "pmod_led[0][2]" D11;
IO_PORT "pmod_led[0][2]" PULL_MODE=NONE DRIVE=8 BANK_VCCIO=3.3;
IO_LOC "pmod_led[0][1]" G10;
IO_PORT "pmod_led[0][1]" PULL_MODE=NONE DRIVE=8 BANK_VCCIO=3.3;
IO_LOC "pmod_led[0][0]" G11;
IO_PORT "pmod_led[0][0]" PULL_MODE=NONE DRIVE=8 BANK_VCCIO=3.3;
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_155_240215.png

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

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

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

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

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

GOWIN FPGA Designer に戻ると、blink2.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-15 20:51:54
create_clock -name clk -period 20 -waveform {0 10} [get_ports {clk}]


Tang_Primer_25K_158_240215.png

GOWIN FPGA Designer で Project メニューから Configuration をクリックした。
Configuration ダイアログが表示された。
エラーのログから READY と CPU だったので、Use READY as regular IO と Use CPU as regular IO にチェックを入れて、OK ボタンをクリックした。
Tang_Primer_25K_159_240215.png

Run Place & Routte ボタンをクリックして、Place & Route を行った。成功した。
Tang_Primer_25K_160_240215.png

ログを示す。

Reading netlist file: "/media/masaaki/Ubuntu_Disk/Gowin/HDL/blink2/impl/gwsynthesis/blink2.vg"
Parsing netlist file "/media/masaaki/Ubuntu_Disk/Gowin/HDL/blink2/impl/gwsynthesis/blink2.vg" completed
Processing netlist completed
Reading constraint file: "/media/masaaki/Ubuntu_Disk/Gowin/HDL/blink2/src/blink2.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/blink2/impl/pnr/blink2.pin.html" completed
Generate file "/media/masaaki/Ubuntu_Disk/Gowin/HDL/blink2/impl/pnr/blink2.rpt.html" completed
Generate file "/media/masaaki/Ubuntu_Disk/Gowin/HDL/blink2/impl/pnr/blink2.rpt.txt" completed
Generate file "/media/masaaki/Ubuntu_Disk/Gowin/HDL/blink2/impl/pnr/blink2.tr.html" completed
Thu Feb 15 20:53:34 2024

  1. 2024年02月16日 03:39 |
  2. Tang_Primer_25K
  3. | トラックバック:0
  4. | コメント:0