[WIP] New auto-generated symbols for Xilinx Spartan/Artix/Kintex-7 and Zynq-7000 FPGAs
Created by: ObKo
Intro
This pull request is part of reworking Xilinx FPGA symbols and footprints:
https://github.com/KiCad/kicad-footprints/issues/1560 https://github.com/KiCad/kicad-library-utils/pull/293 https://github.com/pointhi/kicad-footprint-generator/pull/345
Xilinx has CSV files describing FPGA pinout (https://www.xilinx.com/support/package-pinout-files.html). This PR is result of script generating symbols from those files, similar to current STM32 generator.
Some background:
- Xilinx FPGA pins are divided into banks
- Each bank can be powered separately (from 1.2V to 3.3V)
- Most of pins are general purpose and bidirectional
- There are some dedicated pins (like reset, JTAG, config clk, etc). All of them are placed into bank 0
- Each FPGA has at least 3 power rails - VCCINT, VCCAUX, VCCBRAM each comes from several pins.
- There is always huge amount of GND pins.
- Total number of I/O pins >100
Scripts generates multi-unit kicad symbol, each KiCAD unit = FPGA Bank
Example
Here you can see generated symbol for Spartan-7 FPGA:
Bank 0 is on top and contains all dedicated pins and common power rails. Other two units - Bank 14 and Bank 34 with 50 I/O and power.
Part of Artix-7 symbol:
Here you can see bank with GTP transceivers
Zynq-7000 symbol with memory bank:
Current progress:
-
CSV parsing and pin extraction -
Pin grouping by banks and function -
Symbol generation and pin layout -
Electrical types -
VCC* and GND pin stacking -
Footprint generation - should be synced to current PRs in KiCAD libraries: https://github.com/KiCad/kicad-footprints/issues/1560 -
Spartan-7 -
Artix-7 -
Zynq-7000 -
Kintex-7 -
Virtex-7
Library checking scripts generates S3.1 errors for some symbols because script checks symbol origin using pins regardless of unit it belongs to
Related issues
If those PRs will be merged they will fix following issues:
-
Provide a URL to a datasheet for the symbol(s) you are contributing -
An example screenshot image is very helpful -
Ensure that the associated footprints match the official footprint library - A new fitting footprint must be submitted if the library does not yet contain one.
-
If there are matching footprint PRs, provide link(s) as appropriate -
Check the output of the Travis automated check scripts - fix any errors as required -
Give a reason behind any intentional library convention rule violation.