device_lock (::quartus::jtag)

The following table displays information for the device_lock Tcl command:

Tcl Package and Version

Belongs to ::quartus::jtag 1.0

Syntax device_lock [-h | -help] [-long_help] -timeout <timeout>
Arguments -h | -help Short help
-long_help Long help with examples and possible return values
-timeout <timeout> The amount of time in millisecond to wait for the access to the device.
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
Example Usage
# 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]"

# Close device
Return Value Code Name Code String Return
TCL_OK 0 INFO: Operation successful
TCL_ERROR 1 ERROR: No device has been opened.
TCL_ERROR 1 ERROR: JTAG communication error is detected. It can be caused by the hardware failure and signal integrity in the JTAG chain. Try to restart.
TCL_ERROR 1 ERROR: A device was locked.
TCL_ERROR 1 ERROR: A device has been locked by another application; exclusive communication cannot be granted within the specified timeout period.