Gateware Library#
The Squishy gateware library is broken into three main parts. The first is the
squishy.gateware.core
module, this contains all of the core infra for
Squishy. Next is the squishy.gateware.platform
module, this contains
the torii platform definitions for various bits of Squishy hardware.
Finally there is the squishy.gateware.scsi
module, this is where all
of the SCSI machinery is for use in torii HDL projects.
- class squishy.gateware.SquishyPlatform(*args, **kwargs)#
Squishy Base Platform
This is a base platform for Squishy hardware designs. It is built to abstract away a chunk of the things that would be constantly repeated for new Squishy platforms and variants.
- The primary things that are here are as follows:
usb_vid
- The USB Vendor IDusb_pid_app
- The USB PID for the main gatewareusb_pid_boot
- This USB PID for the bootloaderusb_mfr
- The USB Manufacturer stringusb_prod
- The USB PID to string mappingscsi_vid
- The default SCSI Vendor ID
- The things that the platforms are expected to provide are as follows:
revision
- The platform revisionclock_domain_generator
- The Torii Elaboratable PLL/Clock Domain generator for this Squishy platformpll_config
- The PLL configuration for theclock_domain_generator
Platforms are also still required to inherit from the appropriate
torii.vendor.platform
in order to properly be used.- abstract property clock_domain_generator: Elaboratable#
The Torii Elaboratable that is the PLL/Clock Domain generator for this Squishy platform