interface ftdi ftdi_vid_pid 0x0403 0x6014 ftdi_channel 0 ftdi_layout_init 0x00e8 0x60eb reset_config none #openocd missing support, added to local cfg file set CHIP XCAU25P if { [info exists CHIPNAME] } { set _CHIPNAME $CHIPNAME } else { set _CHIPNAME xcu } # The cvarious chips in the Ultrascale family have different IR length. # Set $CHIP before including this file to determine the device. array set _XCU_DATA { XCAU25P {0x04A64093 6} } if { ![info exists CHIP] } { error "set CHIP to one of "[concat [array names _XCU_DATA]] } if { ![llength [array names _XCU_DATA $CHIP]] } { error "unknown CHIP: "$CHIP } set _EXPID [lindex $_XCU_DATA($CHIP) 0] set _IRLEN [lindex $_XCU_DATA($CHIP) 1] # the 4 top bits (28:31) are the die stepping/revisions. ignore it. jtag newtap $_CHIPNAME tap -irlen $_IRLEN -ignore-version -expected-id $_EXPID pld device virtex2 $_CHIPNAME.tap 1 set XCU_JSHUTDOWN 0x0d set XCU_JPROGRAM 0x0b set XCU_JSTART 0x0c set XCU_BYPASS 0x3f proc xcu_program {tap} { global XCU_JSHUTDOWN XCU_JPROGRAM XCU_JSTART XCU_BYPASS irscan $tap $XCU_JSHUTDOWN irscan $tap $XCU_JPROGRAM runtest 60000 #JSTART prevents this from working... #irscan $tap $XCU_JSTART runtest 2000 irscan $tap $XCU_BYPASS runtest 2000 } source [find cpld/jtagspi.cfg] adapter_khz 25000 proc fpga_program {} { global _CHIPNAME xc7_program $_CHIPNAME.tap }