download.tcl (1290B)
1 # Copyright 2012, Brian Swetland 2 3 # to run: quartus_stp -t download.tcl 4 5 # find programmer and device 6 foreach hardware_name [get_hardware_names] { 7 if { [string match "USB-Blaster*" $hardware_name] } { 8 set usbblaster_name $hardware_name 9 } 10 } 11 puts "Bridge: $usbblaster_name"; 12 foreach device_name [get_device_names -hardware_name $usbblaster_name] { 13 if { [string match "@1*" $device_name] } { 14 set test_device $device_name 15 } 16 } 17 puts "Device: $test_device"; 18 open_device -hardware_name $usbblaster_name -device_name $test_device 19 20 device_lock -timeout 10000 21 22 device_ir_shift -ir_value 6 -no_captured_ir_value 23 puts "IDCODE: 0x[device_dr_shift -length 32 -value_in_hex]" 24 25 proc xmit_vdr { len val } { 26 device_virtual_dr_shift -instance_index 0 -length $len -dr_value $val -value_in_hex -no_captured_dr_value 27 } 28 29 proc xmit_vir { val } { 30 device_virtual_ir_shift -instance_index 0 -ir_value $val -no_captured_ir_value 31 } 32 33 set IR_CTRL 0 34 set IR_ADDR 1 35 set IR_DATA 2 36 37 xmit_vir $IR_CTRL 38 xmit_vdr 32 00000001 39 40 xmit_vir $IR_ADDR 41 xmit_vdr 32 00000000 42 43 xmit_vir $IR_DATA 44 set fp [open "test.hex" r] 45 while { [gets $fp line] > 0 } { 46 set val [lindex [split $line] 0] 47 set val [format "%08x" 0x$val] 48 # puts $val 49 xmit_vdr 32 $val 50 } 51 close $fp 52 53 xmit_vir $IR_CTRL 54 xmit_vdr 32 00000000 55 56 device_unlock 57 close_device