GW5A Boards

class torii_boards.gowin.gw5a.TangPrimer25kDockPlatform(*args, toolchain: str = 'Apicula', programmer: str = 'openFPGALoader', programmer_target: str = 'SRAM', programmer_verify_flash: bool = True, **kwargs)

Board support for the Sipeed Tang Primer 25K Dock, described here: https://wiki.sipeed.com/hardware/en/tang/tang-primer-25k/primer-25k.html

Referenced: * https://cdn.gowinsemi.com.cn/DS1103E.pdf * https://github.com/YosysHQ/apicula/blob/master/apycula/chipdb.py * https://github.com/YosysHQ/apicula/blob/master/examples/gw5a/primer25k.cst

property part

Selects the correct board identifier depending on the selected toolchain.

The C1/I0 timing detail on the GW5A-LV25MG121N is not being interpreted correctly in Apicula but works fine in the Gowin toolchain. Using the ‘ES’ (Engineering Sample) variant of the board in place of ‘C1/I0’ for the time being (as advised by xiwang in the #yosys-apicula IRC channel) appears to work fine, but not in the Gowin toolchain.

Having the part value be dynamic enables either toolchain to be used seamlessly while awaiting full support for the C1/I0 configuration in Apicula.

class GowinProgrammerOp(value)

Enumeration of relevant operations for the Gowin programmer_cli tool

toolchain_prepare(fragment, name, **kwargs)

Convert the fragment and constraints recorded in this Platform into a BuildPlan.

toolchain_program(products, name, **kwargs)

Extract bitstream for fragment name from products and download it to a target.