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. | |||
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 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]" device_unlock # Close device 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. |