PDL: Procedural Description Language
The difference between PDL and ICL is that ICL describes the hardware
structure and connection relationship of the IJTAG network; PDL is for
engineers, who use the PDL language to control the units in ICL.
The following are some commonly used PDL commands:
iProcsForModule: (similar to current_design)
To specify the ICL module referenced by the subsequent iProc commands,
after issuing this command, the iProcs defined subsequently will be
defined in the corresponding ICL module. Before setting this command, no
iProcs can be defined.
iProc: (proc similar to TCL syntax)
For subsequent iCall calls, when the procedure is called using the iCall
command, the variables in the parameter list are replaced with the values
specified in the iCall command. When an iProc is called, the commands
within the iProc are run.
iTopProc:
The iTopProc command is the same as the iProc command, except that it
can only be called for a top-level ICL module. You can only iCall an
iTopProc when the associated ICL module is the current ICL top module,
that is, when it matches the current design. You cannot iCall an iTopProc in
an iProc. However, you can iCall an iProc or an iTopProc in an iTopProc.
Ashwani DFT
iRunLoop:
Used to generate a dummy cycle. For example, if I want to delay 100 tcks, I
use the following command:
iRunLoop 100-tck
iWrite:
Write values to DataRegisters, ScanRegisters, DataOutPorts, DataInPorts,
etc. in ICL, and then iApply will run.
iRead:
Read out DataRegisters, ScanRegisters, DataOutPorts, DataInPorts, etc. in
ICL, and then iApply will run.
iForcePort:
Force a fixed value to the primary input port or inout port. Note that this
command can only be used in iTopProc.
iClock:
Does the path from the source clock to the defined clock pin exist?
iPulseClock:
iPulseLock can be used to restart a sync clock that was previously forced
Ashwani DFT
into a closed state via an iForcePort command and can then only be used
in iTopProc
iCall:
Call the corresponding iProc
iTake:
After iTake is used on an icl unit, the unit cannot be iWrite unless the unit is
iRelease.
iRelease:
iRelease can release the icl unit set by iTake. After release, commands
such as iWrite can act on the unit.
iMerge:
Run the commands in iCall in parallel. If a conflict occurs, they will be
executed serially .
iReset:
The ICL network is in reset state, and the TAP FSM is in RunTestIdle state
iApply:
Execute PDL Command
Ashwani DFT