Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gowin vendor definitions don't support the GW1NR-LV9QN88PC6/I5 (tang nano 9k) but apicula does #953

Closed
jeremyherbert opened this issue Nov 15, 2023 · 5 comments
Labels

Comments

@jeremyherbert
Copy link

According to this line in apicula, the Tang Nano 9k has the device GW1NR-LV9QN88PC6/I5 and family GW1N-9C. However, when using these values with the Gowin vendor support in Amaranth, the following error is emitted from parse_part:

ValueError: Series extracted from supplied part name does not match supplied family series

The apicula readme also has this note at the bottom:

"C devices require passing the --family flag as well as --device to Nextpnr, and stating the family in place of device when passing -d to gowin_pack because the C isn't part of the device ID but only present in the date code."

@jeremyherbert
Copy link
Author

Also same issue with GW2AR-LV18QN88C8/I7 and GW2A-18C for the tang nano 20k. Also see YosysHQ/apicula#206

@whitequark
Copy link
Member

cc @bl0x who contributed Gowin support--I do not understand how the part numbering works to be honest

@whitequark whitequark added the bug label Nov 21, 2023
@bl0x
Copy link
Contributor

bl0x commented Jul 20, 2024

@jeremyherbert The family given in the Apicula Makefile (GW1N-9C) is not the Gowin device family that the device GW1NR-LV9QN88PC6/I5 belongs to.

The correct family name is GW1NR-9C, as stated in the device_info.csv file distributed with the Gowin IDE.

Nextpnr generates chipdb files only for family GW1N, but the same file seems to work also with the GW1NR family. This is what is also mentioned in YosysHQ/apicula#206.

When using Amaranth, the correct family name needs to be specified. This is automatically the case when using the platform definitions from the amaranth-boards repository, so e.g. for the tang nano 9k:

   part          = "GW1NR-LV9QN88PC6/I5"                                      
   family        = "GW1NR-9C"

(Taken from tang_nano_9k.py#L14)

When using amaranth_boards, the error mentioned above does not appear and the build succeeds with both the gowin and the apicula toolchains.

The requirement from the apicula readme is automatically satisfied by the gowin toolchain build process in amaranth.

I hope this is a bit clearer now, but if any questions remain, please ask!

@whitequark whitequark added question and removed bug labels Jul 21, 2024
@whitequark
Copy link
Member

Thanks @bl0x for the clear explanation! Gowin part names are something else...

@jeremyherbert
Copy link
Author

Thank you for following up on this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Development

No branches or pull requests

3 participants