| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | # -*- tcl -*-# List all available programming hardwares, and select the USBBlaster.# (Note: this example assumes only one USBBlaster connected.)puts "Programming Hardwares:"foreach hardware_name [get_hardware_names] {        puts $hardware_name        if { [string match "USB-Blaster*" $hardware_name] } {                set usbblaster_name $hardware_name        }}puts "\nSelect JTAG chain connected to $usbblaster_name.\n";# List all devices on the chain, and select the first device on the chain.puts "\nDevices on the JTAG chain:"foreach device_name [get_device_names -hardware_name $usbblaster_name] {        puts $device_name        if { [string match "@1*" $device_name] } {                set test_device $device_name        }}puts "\nSelect device: $test_device.\n";# Virtual JTAG commandsset vjtag_index 0proc vdr {length {value ""}} {    upvar vjtag_index ix    set opad [string repeat 0 [expr ($length+3)/4 - [string length $value]]]    return [device_virtual_dr_shift -instance_index $ix \		-show_equivalent_device_ir_dr_shift \		-value_in_hex -length $length -dr_value "$opad$value"]}proc vir {cmd} {    upvar vjtag_index ix    return [device_virtual_ir_shift -instance_index $ix \		-show_equivalent_device_ir_dr_shift \		-ir_value $cmd -no_captured_ir_value]}# Device JTAG commandsproc ddr {length {value ""}} {    set opad [string repeat 0 [expr ($length+3)/4 - [string length $value]]]    return [device_dr_shift -value_in_hex -length $length \		-dr_value "$opad$value"]}proc dir {cmd} {    return [device_ir_shift -ir_value $cmd -no_captured_ir_value]}# Open device open_device -hardware_name $usbblaster_name -device_name $test_device# Lock devicedevice_lock -timeout 100000
 |