Source code for jitxexamples.jumpstart_kits.js1_stackup_components.versal_fpga.main
"""Buildable smoke designs for the VP1002 reference solution.
Two deliberately minimal ``SampleDesign``s:
* ``VersalFPGADesign`` — the bare component. One schematic page per
generated ``BoxSymbol`` (one per bank / GT quad / rail chunk), which is
how a ~1369-ball part stays reviewable. No routes, no substrate tuning:
the point is that the component instantiates, maps every ball, and
translates.
* ``VersalFPGACircuitDesign`` — the :class:`~.circuit.XCVP1002Circuit`
wrapper (power rails, ground domains, GTM quad bundles) as consumed by a
board design. Its boundary ports are left unconnected on purpose; the
wrapper's internal nets are the design under test.
Build (runtime required)::
jitx build jitxexamples.jumpstart_kits.js1_stackup_components.\\
versal_fpga.main.VersalFPGADesign
"""
from jitx import Circuit
from jitx.circuit import SchematicGroup
from jitx.container import inline
from jitx.sample import SampleDesign
from .circuit import XCVP1002Circuit
from .xcvp1002 import XCVP1002
[docs]
class VersalFPGADesign(SampleDesign):
"""Bare XCVP1002 with one schematic page per symbol box."""
@inline
class circuit(Circuit):
fpga = XCVP1002()
def __init__(self):
self.pages = [SchematicGroup(sym) for sym in self.fpga.symbols]
[docs]
class VersalFPGACircuitDesign(SampleDesign):
"""The power/GTM circuit wrapper, instantiated as a board would."""
@inline
class circuit(Circuit):
fpga_circuit = XCVP1002Circuit()