cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
kloci
Visitor
Visitor
576 Views
Registered: ‎10-15-2012

Write Bitstream Error (xc7a15tftg256-1)

Dear all,

the NEXT_CONIFG_ADDR is set wrongly in the binary file (*.bin) when writing a fallback bitstream of a Artix-7 (xc7a15tftg256-1) with Vivado 2019.2 in combination with Ubuntu Linux 18.04. As a result the fallback functionality fails.

When running the bitstream generation with the same settings and Vivado 2019.2 under Windows 10, the NEXT_CONFIG_ADDR is set correctly in the binary file and the fallback image is working correctly.

We did a simple example by setting the NEXT_CONFIG_ADDR to 0x12345600 (see below). Attached you can find the comparison between the binary files generated under Windows 10 and Ubuntu Linux 18.04. In both cases Vivado 2019.2 is used.

set_property CONFIG_MODE SPIx1 [current_design]
set_property CFGBVS VCCO [current_design]
set_property CONFIG_VOLTAGE 3.3 [current_design]
set_property BITSTREAM.CONFIG.M0PIN Pullup [current_design]

set_property BITSTREAM.CONFIG.M1PIN Pulldown [current_design]
set_property BITSTREAM.CONFIG.M2PIN Pulldown [current_design]
set_property BITSTREAM.CONFIG.EXTMASTERCCLK_EN Disable [current_design]
set_property BITSTREAM.CONFIG.CONFIGRATE 12 [current_design]
set_property BITSTREAM.STARTUP.STARTUPCLK CCLK [current_design]
set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design]
set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 1 [current_design]
set_property BITSTREAM.CONFIG.SPI_32BIT_ADDR Yes [current_design]
set_property BITSTREAM.CONFIG.SPI_FALL_EDGE Yes [current_design]
set_property BITSTREAM.CONFIG.DONEPIN Pullnone [current_design]
set_property BITSTREAM.CONFIG.UNUSEDPIN Pullnone [current_design]
set_property BITSTREAM.CONFIG.USERID 32'h00000000 [current_design]
set_property BITSTREAM.CONFIG.USR_ACCESS 0x0FFFFFFF [current_design]
set_property BITSTREAM.CONFIG.CONFIGFALLBACK Enable [current_design]
set_property BITSTREAM.CONFIG.TIMER_CFG 0x000F0000 [current_design]
set_property BITSTREAM.CONFIG.NEXT_CONFIG_ADDR 0x12345600 [current_design]

write_bitstream -force -bin_file $BitFileName\_fb.bit

Please, can someone check this different behaviour of Vivado 2019.2 under Windows 10 and Linux.

Thank's in advance & Best regards,
Matej

bitstream_example.png
0 Kudos
2 Replies
marode
Participant
Participant
246 Views
Registered: ‎04-27-2009

I can confirm your findings. 

Vivado 2019.2 on Windows and Ubuntu generate different entries of BITSTREAM.CONFIG.NEXT_CONFIG_ADDR in the bitstream. 
The Linux version seems to be off by one byte.

When trying to load the bitstream with the constraint BITSTREAM.CONFIG.NEXT_CONFIG_ADDR 32'h00400000

generated with Vivado 2019.2 on Linux (Ubuntu) the WBSTAR register (read via JTAG) shows 

REGISTER.WBSTAR 00400000 

the bitstream generated with Vivado 2019.2 on Windows 10 shows:

REGISTER.WBSTAR 00004000

which is correct since NEXT_CONFIG_ADDR >> 8 should be written to WBSTAR, if I am not wrong.

Looks like a bug to me. 

 

also see https://forums.xilinx.com/t5/FPGA-Configuration/Artix-7-Multiboot-with-Vivado-2019-1/td-p/1067379

0 Kudos
marode
Participant
Participant
224 Views
Registered: ‎04-27-2009

as a workaround shift the NEXT_CONFIG_ADDR manually:

# Vivado 2019.2 on Windows:
set_property BITSTREAM.CONFIG.NEXT_CONFIG_ADDR 32'h00400000 [current_design]
# Vivado 2019.2 on Linux:
set_property BITSTREAM.CONFIG.NEXT_CONFIG_ADDR 32'h00004000 [current_design]
0 Kudos