m-labs / nmigen

A refreshed Python toolbox for building complex digital hardware. See https://gitlab.com/nmigen/nmigen
https://nmigen.org
Other
646 stars 55 forks source link

Support Platforms that include an existing design and expose interface to that design as Resource #308

Open smunaut opened 4 years ago

smunaut commented 4 years ago

The typical use case I have for this are boards where the USB function is provided using soft core. But having the user deal with that is often annoying when all they want is data in/out.

So typically I would like to have a platform that exposes for instances "uart_tx" and "uart_rx" or "in_data / in_valid / in_ready" as Resources just like if they were physical pins, but in fact they're just internal connections to a module that's always included when using that Platform.

In this particular case this module is written in Verilog and includes the SoC and USB core that handles all the USB and DFU etc ... and just provide an easy data pipe in/out.