Device_ir_shift, Usage, Options – Altera Quartus II Scripting User Manual
Page 278: Description, Example, Device_ir_shift –148

3–148
Chapter 3: Tcl Packages & Commands
jtag
Quartus II Scripting Reference Manual
© July 2013
Altera Corporation
device_ir_shift
Usage
device_ir_shift -ir_value
Options
-ir_value
the instruction register in the JTAG tap controller of the open device
-no_captured_ir_value: Option to not return the captured instruction register value. If
this is specified, this IR scan may be packed together with the subsequent IR or DR scan
until the device is unlocked or a captured value is requested
Description
Writes the specified value into the instruction register of the JTAG tap controller of the open device.
Returns the captured instruction register value. The captured value return can be disabled to improve the
JTAG communication speed by packing multiple IR or DR scans together.
The instruction register length is determined automatically by the Quartus II JTAG server.
The device must be locked first before this operation.
Example
# List all available programming hardware, and select the USB-Blaster.
# (Note: this example assumes only one USB-Blaster is connected.)
puts "Programming Hardware:"
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";
# Open device
open_device -hardware_name $usbblaster_name -device_name $test_device
# Retrieve device id code.
# IDCODE instruction value is 6; The ID code is 32 bits long.
# IR and DR shift should be locked together to ensure that other
# applications
# will not change the instruction register before the id code value is
# shifted
# out while the instruction register is still holding the IDCODE
# instruction.
device_lock -timeout 10000
device_ir_shift -ir_value 6 -no_captured_ir_value
puts "IDCODE: 0x[device_dr_shift -length 32 -value_in_hex]"
device_unlock