This repository has been archived by the owner on Oct 2, 2020. It is now read-only.
SoC PolarFire: Add library for 5 PolarFire SoC parts #2843
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Add the following parts in SoC_PolarFire.lib:
MPFS250T-FCVG484
MPFS250T-FCSG536
MPFS250T-FCVG784
MPFS250T-FCG1152
MPFS460T-FCG1152
Folks,
Some may be aware of Microchip's new RISC-V based SoC FPGAs:
https://www.microsemi.com/product-directory/soc-fpgas/5498-polarfire-soc-fpga#overview
Anyway I wanted to get a KiCad library and didn't see anything readily available, so I ended up playing with the tools in kicad-library-utils, and I'm reasonably happy with the result. For each part there is a released Excel spreadsheet in the Packing section of the link below:
https://www.microsemi.com/product-directory/soc-fpgas/5498-polarfire-soc-fpga#resources
Basically using a python script each part is built using the spreadsheets for name references and for the pad location. The ordering and how to break up the units is based both on the symbol in the dev kit schematic[1] and KLC[2]. Here is a listing of the biggest differences from the symbol in the reference schematic:
I put this as an RFC because I know there are a couple of issues and wanted some feedback on other items.
*Packages: Right now none of the parts have packages. This is because there is some python issue with my footprint wizard, and I can't seem to figure out how to use SymbolGenerator.py to set the package anyway.
*Library name: I put it in as a unique library SoC_PolarFire.lib which is very convenient for generating the file. Other name would be fine too.
*NC Pins: if the part had NC pins (not all do) I ended up creating a separate unit and put them all in as non-stacked but invisible. That seemed to satisfy checklib.py, but I'm not sure what is most desired here?
Power pin location: When running checklib.py it complains that "Positive power pins should be placed at top of symbol". This would create a very strange power unit where it's very short and wide with tons of pins on top and a single one on the bottom?
*Power unit: as mentioned above I wasn't completely sure if I did the pin stacking correctly.
I know this is a lot to take in, let me know if there is anything else I can do.
thanks,
Paul
[1] https://www.microsemi.com/document-portal/doc_download/1244587-polarfire-soc-icicle-kit-schematics
[2] https://kicad-pcb.org/libraries/klc/