Device_lock, Usage, Options – Altera Quartus II Scripting User Manual
Page 280: Description, Example, Device_lock –150

3–150
Chapter 3: Tcl Packages & Commands
jtag
Quartus II Scripting Reference Manual
© July 2013
Altera Corporation
device_lock
Usage
device_lock -timeout
Options
-timeout
device.
Description
Obtain an exclusive JTAG communication to the device for the subsequent IR and DR shift operations.
The device must be locked before any instruction and/or data register shift operation.
This should be used as little time as possible as it denies the access of other applications to this chain. The
command, unlock, should be called as soon as possible to allow other applications to access the device.
Example
# 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";
# 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
# Close device
close_device