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

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

FPGAの部屋

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

Tang Primer 25K の SDRAM モジュールを使ってみる2

Tang Primer 25K の SDRAM モジュールを使ってみる1”の続き。

Tang Primer 25K の SDRAM モジュールを使ってみたいということで、前回は、TangPrimer-25K-example/LicheeTang25k_SDRAM/sdram/sdram.gprj を GOWIN FPGA Designer で開いて、論理合成を行ったが、エラーになった。エラーの原因は SystemVerilog に対応していなかったことだったので、GOWIN FPGA Designer の設定を修正後、論理合成が成功した。今回は、Place & Route を行ったがエラーになった。エラー内容を修正後、Place & Route が成功した。リソース使用量とタイミング成約を確認したところ、タイミング成約違反があった。

Run Place & Routte ボタンをクリックして、Place & Route を行った。
エラーが出てしまった。エラーの内容は

ERROR (CM2024) : GW5A-25A-MBGA121N SSPI regular_io must be set true.

だった。
Tang_Primer_25K_239_240303.png

このエラーの解消には、Dual-Purpose Pin の設定が必要だ。
GOWIN FPGA Designer の Project メニューから Configuration を選択する。
Configuration ダイアログが開いた。
Place & Route -> Dual-Purpose Pin をクリックし、Use SSPI as regular IO にチェックを入れた。
Tang_Primer_25K_240_240303.png

再度、Run Place & Routte ボタンをクリックして、Place & Route を行った。
今回もエラーだった。内容は、

ERROR (PR2028) : The constrained location is useless in current package
ERROR (PR2017) : 'sdram_dq[12]' cannot be placed according to constraint, for the location is a dedicated pin (I2C)
ERROR (PR2028) : The constrained location is useless in current package
ERROR (PR2017) : 'clk_50M' cannot be placed according to constraint, for the location is a dedicated pin (CPU/SSPI)

ということで、I2C ピンと CPU ピンも Dual-Purpose Pin の設定が必要なようだ。
Tang_Primer_25K_241_240303.png

GOWIN FPGA Designer の Project メニューから Configuration を選択する。
Configuration ダイアログが開いた。
Place & Route -> Dual-Purpose Pin をクリックした。
Use I2C as regular IO と Use CPU as regular IO にチェックを入れた。
Tang_Primer_25K_242_240303.png

再度、Run Place & Routte ボタンをクリックして、Place & Route を行った。
今度は成功した。
Tang_Primer_25K_243_240303.png

ログを示す。

Reading netlist file: "/media/masaaki/Ubuntu_Disk/Gowin/TangPrimer-25K-example/LicheeTang25k_SDRAM/sdram/impl/gwsynthesis/sdram.vg"
Parsing netlist file "/media/masaaki/Ubuntu_Disk/Gowin/TangPrimer-25K-example/LicheeTang25k_SDRAM/sdram/impl/gwsynthesis/sdram.vg" completed
Processing netlist completed
Reading constraint file: "/media/masaaki/Ubuntu_Disk/Gowin/TangPrimer-25K-example/LicheeTang25k_SDRAM/sdram/src/sdram.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/TangPrimer-25K-example/LicheeTang25k_SDRAM/sdram/impl/pnr/sdram.pin.html" completed
Generate file "/media/masaaki/Ubuntu_Disk/Gowin/TangPrimer-25K-example/LicheeTang25k_SDRAM/sdram/impl/pnr/sdram.rpt.html" completed
Generate file "/media/masaaki/Ubuntu_Disk/Gowin/TangPrimer-25K-example/LicheeTang25k_SDRAM/sdram/impl/pnr/sdram.rpt.txt" completed
Generate file "/media/masaaki/Ubuntu_Disk/Gowin/TangPrimer-25K-example/LicheeTang25k_SDRAM/sdram/impl/pnr/sdram.tr.html" completed
Sun Mar  3 21:18:25 2024


GOWIN FPGA Designer の Process タブをクリックし、Process ウインドウを表示した。
Place & Route -> Place & Route Report を表示した。
Resource -> Resource Usage Summary を表示した。
Logic は 934 個使用した。800 個の LUT と 134 個の ALU, 9 SDPB の BSRAM を使用している。
Tang_Primer_25K_244_240303.png

Place & Route -> Timing Analyzer Report をクリックした。
Timing Summaries -> Clock Summary などを表示した。
Max Frequency Summay を見ると、clk133m の Actual Fmax は 126.565 MHz だった。タイミング制約エラーが出ている。
Tang_Primer_25K_245_240303.png

Setup Paths Table にエラーがある。これは、clk133m がタイミング制約を満たさないことと関連がありそうだ。
Tang_Primer_25K_246_240303.png
  1. 2024年03月04日 05:20 |
  2. Tang_Primer_25K
  3. | トラックバック:0
  4. | コメント:0