nand2mario / nestang

NESTang is an FPGA Nintendo Entertainment System implemented with Sipeed Tang Primer 25K, Nano 20K and Primer 20K boards
https://nand2mario.github.io/nestang
GNU General Public License v3.0
326 stars 36 forks source link

Can't synthesis the project. #56

Closed radiance28 closed 3 months ago

radiance28 commented 3 months ago

After the command "gw_sh.exe primer25k.tcl" at the bottom of the console screen: <Error while executing "run all" (file "build.tcl" line 55)>. The same error occurs if you try to synthesize from GowinIDE. How to fix it? I'm using Windows10

fjpolo commented 3 months ago

A few Qs:

radiance28 commented 3 months ago
  1. Branch - Master
  2. GoWIN IDE v.1.9.9 with registered license
  3. log_GW_SH.txt

image

When I try to synthesize from GoWIN IDE:

nes.log

image

fjpolo commented 3 months ago

Error EX3937 is telling you that NESGamepad module is not found. By some reason NESGamepad.v wasn't added to the project (yours?general?) And that's why it's not compiling

Try adding it from src/NESGamepad/NESGamepad.v to the project

I'll check the branch to see if I can also reproduce it :)

Edit: NESGamepad.v was never added to nestang_primer25k.gprj, only to nestang_nano20k.gprj and that's why it's not compiling for you

radiance28 commented 3 months ago

So what should I do about it? I just downloaded the source code and wanted to compile it (I didn’t change anything in it) under primer25k

fjpolo commented 3 months ago

Until this PR is merged, nestang_primer25k in master is broken. You can use this repo and branch: fjpolo/TangPrimer25k_fixNESGamepad, but you won't be able to use OEM joysticks.

NESGamepad was only developed and tested for NESTang Nano 20k, and not implemented nor tested for NESTang Primer 25k. The issue you were having is because Nano20k and Primer25k have different project configurations but share source code. So, nestang_top.sv was trying to instantiate NESGamepad, a module unknown to nestang_primer25k because it wasn't included in nestang_primer25k.gprj. The solution would have been to add NESGamepad.v to nestang_primer25.gprj and all related signals to nestang.cst, but since NESGamepad for the Primer25kwasn't implemented or tested for it, I decided to leave it out of Primer25k since I don't have the board to do it.

nand2mario commented 3 months ago

57 is merged. Thanks.

radiance28 commented 3 months ago

The project is now being synthesized, thank you!