litex-buildenv
litex-buildenv copied to clipboard
Get a multiboot configuration working on a Series 7 device
class Platform(XilinxPlatform):
def __init__(self, toolchain="vivado", programmer="vivado", device="xc7a35t", build_multiboot=True):
XilinxPlatform.__init__(self, "{}-fgg484-2".format(device), _io, toolchain=toolchain)
self.sysid = 0x4b01
self.toolchain.bitstream_commands = [
"set_property BITSTREAM.GENERAL.COMPRESS True [current_design]",
"set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design]",
"set_property BITSTREAM.CONFIG.EXTMASTERCCLK_EN div-1 [current_design]"
]
self.toolchain.additional_commands = [
# build single bitstream (no multiboot)
"write_cfgmem -force -format bin -interface spix4 -size 16 -loadbit \"up 0x0 \
{build_name}.bit\" -file {build_name}.bin",
]
if build_multiboot:
self.toolchain.additional_commands += [
# build operational bistream (multiboot)
"set_property BITSTREAM.CONFIG.TIMER_CFG 0x0001FBD0 [current_design]",
"set_property BITSTREAM.CONFIG.CONFIGFALLBACK Enable [current_design]",
"write_bitstream -force {build_name}_operational.bit ",
"write_cfgmem -force -format bin -interface spix4 -size 16 -loadbit \"up 0x0 \
{build_name}_operational.bit\" -file {build_name}_operational.bin",
# build fallback bistream (Multiboot)
"set_property BITSTREAM.CONFIG.NEXT_CONFIG_ADDR 0x00400000 [current_design]",
"write_bitstream -force {build_name}_fallback.bit ",
"write_cfgmem -force -format bin -interface spix4 -size 16 -loadbit \"up 0x0 \
{build_name}_fallback.bit\" -file {build_name}_fallback.bin",
]
def create_programmer(self):
return VivadoProgrammer()