cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
869 Views
Registered: ‎05-29-2019

Bit file generation vivado versus ise

We have a old heritage design that was moved to vivado from ise 14.7  The bit file works on the board.  The mcs file generation from 14.7 with promgen compares exactly to an mcs file generated via write_cfgmem; however the mcs file loaded on the proms doesn't work with the vivado generated bit file. 

write_cfgmem -force -format mcs -interface BPIx16 -size 128 -loadbit "up 0x00 ${DESIGN}.bit" ${DESIGN}_sw.mcs

cd $(BUILD_DIR);\promgen -bpi_dc parallel -data_width 16 -w -p mcs -c FF -o .$(TOP_LEVEL_DESIGN_INSTANCE)_sw.mcs -x xcf128x -u 0x00 .$(TOP_LEVEL_DESIGN_INSTANCE).bit \

What switches am I missing for the bit file generation which would cause this issue?

Vivado settings:

set_property CONFIG_MODE BPI16 [current_design]
set_property CFGBVS GND [current_design]
set_property CONFIG_VOLTAGE 1.8 [current_design]

set_property BITSTREAM.GENERAL.COMPRESS TRUE [get_designs]
set_property BITSTREAM.CONFIG.CONFIGRATE 40 [get_designs]
set_property BITSTREAM.CONFIG.BPI_SYNC_MODE Type1 [get_designs]
set_property BITSTREAM.CONFIG.USERID 0x09091411 [get_designs]
set_property BITSTREAM.GENERAL.CRC Disable [get_designs]
set_property BITSTREAM.CONFIG.EXTMASTERCCLK_EN Div-1 [get_designs]
set_property BITSTREAM.CONFIG.CONFIGFALLBACK Disable [get_designs]
set_property BITSTREAM.GENERAL.CRC Disable [get_designs]

 

ISE Settings

-g Binary:no
-g Compress
-g CRC:Disable
-g ConfigRate:40
-g CclkPin:PullUp
-g M0Pin:PullUp
-g M1Pin:PullUp
-g M2Pin:PullUp
-g ProgPin:PullUp
-g InitPin:Pullup
-g TckPin:PullUp
-g TdiPin:PullUp
-g TdoPin:PullUp
-g TmsPin:PullUp
-g Disable_JTAG:No
-g UnusedPin:PullDown
-g UserID:0x09091411
-g ExtMasterCclk_en:div-1
-g ConfigFallback:Disable
-g BPI_page_size:1
-g BPI_1st_read_cycle:1
-g BPI_sync_mode:Type1
-g SPI_32bit_addr:No
-g SPI_buswidth:1
-g SPI_Fall_Edge:No
-g OverTempPowerDown:Disable
-g USR_ACCESS:None
-g JTAG_XADC:Enable
-g DCIUpdateMode:AsRequired
-g StartUpClk:CClk
-g DONE_cycle:4
-g GTS_cycle:5
-g GWE_cycle:6
-g Match_cycle:Auto
-g Security:None
-g ICAP_select:Auto
-g DonePipe:Yes
-g Encrypt:No

0 Kudos
7 Replies
drjohnsmith
Teacher
Teacher
856 Views
Registered: ‎07-09-2009

whats the FPGA
whats do you mean by does not work ?
<== If this was helpful, please feel free to give Kudos, and close if it answers your question ==>
0 Kudos
854 Views
Registered: ‎05-29-2019

The FPGA is XC7K410T and by does not work I mean the DONE pin does not go true.

Again - the bit file loads, the old heritage mcs file (ise generation) works fine.  MCS generation is the same with promgen and wr_cfgmem.  I am probably missing something obvious.

0 Kudos
drjohnsmith
Teacher
Teacher
840 Views
Registered: ‎07-09-2009

what do you mean by "again -"

Please remember we are here to help cause we want to ,
<== If this was helpful, please feel free to give Kudos, and close if it answers your question ==>
0 Kudos
819 Views
Registered: ‎05-29-2019

Again meant that I was just reiterating the gist of the problem because I know I tend to miss stuff when I type fast.  As evidenced by the fact that I left the FPGA type off of the question.  

0 Kudos
hj
Moderator
Moderator
780 Views
Registered: ‎06-05-2013

Switches seems to be correct! Would be helpful if you can share the configuration registers after trying to boot from flash. Use the below command to get the status register:-
report_property -all [lindex [get_hw_devices] 0]
Also make sure to remove the JTAG cable while booting from BPI flash. Reconnect it back while reading the status registers.
Thanks
Harshit
-------------------------------------------------------------------------------------
For more information please refer to configuration resources https://forums.xilinx.com/t5/FPGA-Configuration/Configuration-Resources/m-p/753763/highlight/true#M5891
-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 Kudos
tpdrjkt
Newbie
Newbie
746 Views
Registered: ‎04-29-2019

Here's the configuration register report after programming the flash:

report_property -all [lindex [get_hw_devices] 0]
Property Type Read-only Value
BSCAN_SWITCH_USER_MASK string false 0001
CLASS string true hw_device
DID string true jsn-DLC10-000018dd618f01-13656093-0
FULL_PROBES.FILE string false
IDCODE string true 00010011011001010110000010010011
IDCODE_HEX string true 13656093
INDEX int true 0
IR_LENGTH int true 6
IS_SYSMON_SUPPORTED bool true 1
MASK string true 00001111111111111111111111111111
MASK_HEX string true 0FFFFFFF
NAME string true xc7k410t_0
PART string true xc7k410t
PARTIAL_PROBES.FILES string* false
PROBES.FILE string false
PROGRAM.DPA_COUNT int false 0
PROGRAM.DPA_MODE string false
PROGRAM.DPA_PROTECT bool false 0
PROGRAM.FILE string false
PROGRAM.HW_BITSTREAM hw_bitstream true
PROGRAM.HW_CFGMEM hw_cfgmem true cfgmem_0
PROGRAM.HW_CFGMEM_BITFILE string true C:/Xilinx/Vivado/2018.3/data/xicom/cfgmem/bitfile/bpi_xc7k410t_pullnone.bit
PROGRAM.HW_CFGMEM_TYPE string true
PROGRAM.IS_AES_PROGRAMMED bool true 0
PROGRAM.IS_RSA_PROGRAMMED bool true 0
PROGRAM.IS_SUPPORTED bool true 1
PROGRAM.OPTIONS string false
PROGRAM.READBACK_FILE string false
REGISTER.BOOT_STATUS string true 00000000000000000000000000000000
REGISTER.BOOT_STATUS.BIT00_0_STATUS_VALID string true 0
REGISTER.BOOT_STATUS.BIT01_0_FALLBACK string true 0
REGISTER.BOOT_STATUS.BIT02_0_INTERNAL_PROG string true 0
REGISTER.BOOT_STATUS.BIT03_0_WATCHDOG_TIMEOUT_ERROR string true 0
REGISTER.BOOT_STATUS.BIT04_0_ID_ERROR string true 0
REGISTER.BOOT_STATUS.BIT05_0_CRC_ERROR string true 0
REGISTER.BOOT_STATUS.BIT06_0_WRAP_ERROR string true 0
REGISTER.BOOT_STATUS.BIT07_0_SECURITY_ERROR string true 0
REGISTER.BOOT_STATUS.BIT08_1_STATUS_VALID string true 0
REGISTER.BOOT_STATUS.BIT09_1_FALLBACK string true 0
REGISTER.BOOT_STATUS.BIT10_1_INTERNAL_PROG string true 0
REGISTER.BOOT_STATUS.BIT11_1_WATCHDOG_TIMEOUT_ERROR string true 0
REGISTER.BOOT_STATUS.BIT12_1_ID_ERROR string true 0
REGISTER.BOOT_STATUS.BIT13_1_CRC_ERROR string true 0
REGISTER.BOOT_STATUS.BIT14_1_WRAP_ERROR string true 0
REGISTER.BOOT_STATUS.BIT15_1_SECURITY_ERROR string true 0
REGISTER.BOOT_STATUS.BIT16_RESERVED string true 0000000000000000
REGISTER.CONFIG_STATUS string true 00000010000000000001101000001100
REGISTER.CONFIG_STATUS.BIT00_CRC_ERROR string true 0
REGISTER.CONFIG_STATUS.BIT01_DECRYPTOR_ENABLE string true 0
REGISTER.CONFIG_STATUS.BIT02_PLL_LOCK_STATUS string true 1
REGISTER.CONFIG_STATUS.BIT03_DCI_MATCH_STATUS string true 1
REGISTER.CONFIG_STATUS.BIT04_END_OF_STARTUP_(EOS)_STATUS string true 0
REGISTER.CONFIG_STATUS.BIT05_GTS_CFG_B_STATUS string true 0
REGISTER.CONFIG_STATUS.BIT06_GWE_STATUS string true 0
REGISTER.CONFIG_STATUS.BIT07_GHIGH_STATUS string true 0
REGISTER.CONFIG_STATUS.BIT08_MODE_PIN_M[0] string true 0
REGISTER.CONFIG_STATUS.BIT09_MODE_PIN_M[1] string true 1
REGISTER.CONFIG_STATUS.BIT10_MODE_PIN_M[2] string true 0
REGISTER.CONFIG_STATUS.BIT11_INIT_B_INTERNAL_SIGNAL_STATUS string true 1
REGISTER.CONFIG_STATUS.BIT12_INIT_B_PIN string true 1
REGISTER.CONFIG_STATUS.BIT13_DONE_INTERNAL_SIGNAL_STATUS string true 0
REGISTER.CONFIG_STATUS.BIT14_DONE_PIN string true 0
REGISTER.CONFIG_STATUS.BIT15_IDCODE_ERROR string true 0
REGISTER.CONFIG_STATUS.BIT16_SECURITY_ERROR string true 0
REGISTER.CONFIG_STATUS.BIT17_SYSTEM_MONITOR_OVER-TEMP_ALARM_STATUS string true 0
REGISTER.CONFIG_STATUS.BIT18_CFG_STARTUP_STATE_MACHINE_PHASE string true 000
REGISTER.CONFIG_STATUS.BIT21_RESERVED string true 0000
REGISTER.CONFIG_STATUS.BIT25_CFG_BUS_WIDTH_DETECTION string true 01
REGISTER.CONFIG_STATUS.BIT27_HMAC_ERROR string true 0
REGISTER.CONFIG_STATUS.BIT28_PUDC_B_PIN string true 0
REGISTER.CONFIG_STATUS.BIT29_BAD_PACKET_ERROR string true 0
REGISTER.CONFIG_STATUS.BIT30_CFGBVS_PIN string true 0
REGISTER.CONFIG_STATUS.BIT31_RESERVED string true 0
REGISTER.COR0 string true 00003fec
REGISTER.COR0.BIT00_GWE_CYCLE string true 100
REGISTER.COR0.BIT03_GTS_CYCLE string true 101
REGISTER.COR0.BIT06_LOCK_CYCLE string true 111
REGISTER.COR0.BIT09_MATCH_CYCLE string true 111
REGISTER.COR0.BIT12_DONE_CYCLE string true 011
REGISTER.COR0.BIT15_SSCLKSRC string true 00
REGISTER.COR0.BIT17_OSCFSEL string true 000000
REGISTER.COR0.BIT23_SINGLE string true 0
REGISTER.COR0.BIT24_DRIVE_DONE string true 0
REGISTER.COR0.BIT25_DONE_PIPE string true 0
REGISTER.COR0.BIT26_RESERVED string true 0
REGISTER.COR0.BIT27_PWRDWN_STAT string true 0
REGISTER.COR0.BIT28_RESERVED string true 0000
REGISTER.COR1.BIT00_BPI_PAGE_SIZE string true 00
REGISTER.COR1.BIT02_BPI_1ST_READ_CYCLE string true 00
REGISTER.COR1.BIT04_RESERVED string true 0000
REGISTER.COR1.BIT08_RBCRC_EN string true 0
REGISTER.COR1.BIT09_RBCRC_NO_PIN string true 0
REGISTER.COR1.BIT10_RESERVED string true 00000
REGISTER.COR1.BIT15_RBCRC_ACTION string true 00
REGISTER.COR1.BIT17_PERSIST_DEASSERT_AT_DESYNC string true 0
REGISTER.COR1.BIT18_RESERVED string true 00000000000000
REGISTER.COR1 string true 00000000
REGISTER.EFUSE.DNA_PORT string true 018844250FEF05C
REGISTER.EFUSE.FUSE_CNTL string true 00C0
REGISTER.EFUSE.FUSE_DNA string true 3A0F7F0A42211827
REGISTER.EFUSE.FUSE_KEY string true 0000000000000000000000000000000000000000000000000000000000000000
REGISTER.EFUSE.FUSE_USER string true 00000000
REGISTER.IR string true 010001
REGISTER.IR.BIT0_ALWAYS_ONE string true 1
REGISTER.IR.BIT1_ALWAYS_ZERO string true 0
REGISTER.IR.BIT2_ISC_DONE string true 0
REGISTER.IR.BIT3_ISC_ENABLED string true 0
REGISTER.IR.BIT4_INIT_COMPLETE string true 1
REGISTER.IR.BIT5_DONE string true 0
REGISTER.TIMER string true 00000000
REGISTER.TIMER.BIT00_TIMER_VALUE string true 000000000000000000000000000000
REGISTER.TIMER.BIT30_TIMER_CFG_MON string true 0
REGISTER.TIMER.BIT31_TIMER_USR_MON string true 0
REGISTER.USERCODE string true ffffffff
REGISTER.USR_ACCESS string true 00000000
REGISTER.WBSTAR string true 00800000
REGISTER.WBSTAR.BIT00_START_ADDR string true 00000100000000000000000000000
REGISTER.WBSTAR.BIT29_RS_TS_B string true 0
REGISTER.WBSTAR.BIT30_RS string true 00
UNKNOWN_DEVICE bool true 0
USER_CHAIN_COUNT string true 4
VARIANT_NAME string true
XSDB_USER_BSCAN string false 1,3

0 Kudos
tpdrjkt
Newbie
Newbie
733 Views
Registered: ‎04-29-2019

This issue has been resolved. The fundamental problem was the incorrect setting of the BITSTREAM.CONFIG.USERID property.

Thanks for all the help.