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

Resolve unknown ICE40 part numbers ICE40U4K-UWG30 and ICE40U4K-SG48 #545

Open
zapta opened this issue Jan 14, 2025 · 8 comments
Open

Resolve unknown ICE40 part numbers ICE40U4K-UWG30 and ICE40U4K-SG48 #545

zapta opened this issue Jan 14, 2025 · 8 comments

Comments

@zapta
Copy link
Collaborator

zapta commented Jan 14, 2025

These two part numbers in fpga.json are unknown. Resolve them, verify their attributes and verify the match to the odt boards that use the second one (48).

They were added originally in b427656

Boards
https://github.com/Oak-Development-Technologies/IcyBlue
https://github.com/Oak-Development-Technologies/RPGA-Feather

fpgas.json:

  "ice40-u4k-uwg30": {
    "part_num": "ICE40U4K-UWG30",    
    "arch": "ice40",
    "type": "u4k",
    "size": "4k",
    "pack": "uwg30"
  },
  "ice40-u4k-sg48": {
    "part_num": "ICE40U4K-SG48",     
    "arch": "ice40",
    "type": "u4k",
    "size": "4k",
    "pack": "sg48"
  }

boards.json:

  "odt-icyblue-feather": {
    "legacy_name": "ODT_IcyBlue_Feather",
    "description": "ODT_IcyBlue_Feather",
    "fpga": "ice40-u4k-sg48",
    "programmer": {
      "type": "icesprog"
    },
    "usb": {
      "vid": "0403",
      "pid": "6014"
    }
  },
  "odt-rpga-feather": {
    "legacy_name": "ODT_RPGA_Feather",
    "description": "ODT_RPGA_Feather",
    "fpga": "ice40-u4k-sg48",
    "programmer": {
      "type": "mcu"
    }
  },
@zapta
Copy link
Collaborator Author

zapta commented Jan 14, 2025

Hello @skerr92, do you know what are the part numbers of the two fpgas that were added in the commit below

b427656

We are in the process of matching apio fpga definitions to actual datasheet and digikey manufacturer part numbers.

@skerr92
Copy link
Contributor

skerr92 commented Jan 14, 2025

These match up to the ICE5LP4K parts. Same family as the ICE40UP5K (SG48 packages are pin compatible). I was following the naming that ICE Storm uses for their CLI tools.

@zapta
Copy link
Collaborator Author

zapta commented Jan 14, 2025

Can you identify them in the attached ordering information (extracted from the datasheet)? For example, I don't see any with 30 pins.

iCE40 Ultra Family Data Sheet.pdf

@zapta
Copy link
Collaborator Author

zapta commented Jan 14, 2025

The 48 pin fpga seems to be ICE5LP4K-SG48I and this is confirmed by the IcyBlue schematic:

https://github.com/Oak-Development-Technologies/IcyBlue/blob/main/Images/IcyBlue%20Schematic.png

The 30 pin fpga seems to not exist, and since it's not used by any board, safe to delete.

Does this make sense?

@skerr92
Copy link
Contributor

skerr92 commented Jan 15, 2025

30 pin should have been 20 pin (there was a CWG20 variant) but it would now be a 36 pin variant SWG36. I'm not certain that exists in Ice Storm yet though.

@zapta
Copy link
Collaborator Author

zapta commented Jan 15, 2025

Thanks Seth. I will fix it.

BTW, is there an authoritative list of the FPGA part numbers that are supported by the open source tools and the pnr options for each one of them?

See a more detailed questions at the bottom here:
YosysHQ/icestorm@42be8d5

@skerr92
Copy link
Contributor

skerr92 commented Jan 15, 2025

I tend to lean on what's in this list here: https://github.com/YosysHQ/icestorm/blob/master/icefuzz/icecube.sh

@zapta
Copy link
Collaborator Author

zapta commented Jan 15, 2025

Thanks @skerr92!

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

No branches or pull requests

2 participants