Creating a Script
- Updated2024-07-17
- 5 minute(s) read
Creating a script from the Device Activity tracker can help simplify the interaction with the DUT by creating high level register operations using the script.
- Click Start to initiate communication with the hardware. Perform the desired sequence of actions in the Reg Map tab of the large panel. These actions are logged and displayed in the Device Activity section of the large panel to the right.
- If you are using digital pattern instruments and Measurement Plug-Ins with the Semiconductor Device Control Add-On, click Manual Layout on the InstrumentStudio Home screen to start the required Measurement Plug-Ins processes for sharing NI digital sessions.
- Once all actions are complete, click Scripts to open the Scripts tab of the large panel.
- In the Device Activity section of the large panel, select one or more transactions to group into a script. Click Create Script.
- Enter a name for the script in the pop-up window, and click Save Script. The script is added to the list of available scripts.
Editing a Script
The Scripts tab of the large panel displays the list of scripts available in the configured script folder. Clicking on a script displays the file in a read-only script viewer window to the right.
-
From the Available Scripts list, select the file you want to edit
and click the Edit icon to the right.
The script opens in your default text editing application.
- Edit the script using the appropriate syntax. Save and close the script when you are finished editing it.
- Click the Refresh button in the script manager view to load the change into the Semiconductor Device Control Add-On
Script Command Syntax
Script commands in .sdcscript files must be formatted with a certain syntax in order to be readable by the Semiconductor Device Control Add-On.
Script Syntax Guidelines
Use the following guidelines to format the commands in the script.
- A script can contain any number of supported commands, but NI recommends limiting the commands in a single script to a maximum of 100.
- Commands can be either single-line or multi-line commands, which are delimited by an end-of-line character.
- Nested commands are not supported.
- dEVM <interfaceProtocolMapping> is a multi-line command and must be followed by subcommands on following lines beginning with a tab.
- You can use empty lines to improve user readability.
- Comments are indicated by a // at the beginning of a line. These lines are skipped from execution.
Command | Description | Example |
---|---|---|
readdio <pinName> | Reads the corresponding DIO pin name. | readdio Vdd_IO_LB |
writedio <pinName> <value> | Writes the corresponding DIO pin with the pin value, where the valid values are High, Low, or Term. | writedio Vdd_IO_LB High |
readfield <uniqueID> | Reads the corresponding field, where <uniqueID> is formatted as <IPBlock>-<registerGroup>-<field>. | readfield LPS22HH-Control_Register-ODR |
writefield <uniqueID> <value> | Writes the corresponding field with the appropriate value, where <uniqueID> is formatted as <IPBlock>-<registerGroup>-<register> and the value is formatted in decimals. | writefield LPS22HH-Control_Register-ODR 3 |
readreg <uniqueID> | Reads the corresponding register, where <uniqueID> is formatted as <IPBlock>-<registerGroup>-<register>. | readreg LPS22HH-Control_Register-IF_CTRL |
writereg <uniqueID> <value> | Writes the corresponding register with the appropriate value, where <uniqueID> is formatted as <IPBlock>-<registerGroup>-<register> and the value is formatted in decimals. | writereg LPS22HH-Control_Register-IF_CTRL 40 |
wait <time> | Waits for the specified amount of time. Measured in milliseconds. | wait 2000 |
dEVM <interfaceProtocolMapping> | Begins a dEVM measurement, where <interfaceProtocolMapping> is formatted as <interfaceName>-<protocolName>, where <interfaceName>-<protocolName> must match the interface and protocol names, respectively, on the Conf I/F tab. This command must be followed by one or more subcommands. | dEVM-Interface-dEVM RFFE |
The dEVM <interfaceProtocolMapping> command is followed by several mandatory and optional subcommands that control how the dEVM measurement is performed. Subcommands must be separated by a new line character and a tab character.
The following table outlines the list of subcommands.
Command | Mandatory or Optional | Description | Example |
---|---|---|---|
on writereg <uniqueID> <value> | Mandatory | Indicates which registers to write to in order to turn on the DUT, where <uniqueID> is formatted as <deviceName>-<registerGroup>. <deviceName>-<registerGroup> must match the device name and register group, respectively, on the Reg Map tab. | on writereg LPS22HH-Control_Register-ODR 3 |
off writereg <uniqueID> <value> | Mandatory | Indicates which registers to write to in order to turn off the DUT, where <uniqueID> is formatted as <deviceName>-<registerGroup>. <deviceName>-<registerGroup> must match the device name and register group, respectively, on the Reg Map tab. | off writereg LPS22HH-Control_Register-ODR 3 |
repeat <number> | Mandatory | Indicates the number of times the dEVM cycle repeats, where <number> has valid values of t1, t2, t3, or inf. | repeat 100 |
t1(us) <number> | Optional | Indicates the time delay after the on-command is sent to the DUT in order to ensure the DUT is turned on during the measurements, where <number> is measured in milliseconds. | t1(us) 200 |
tRF(us) <number> | Optional | Indicates the time during which the RF stimulus signal is applied from the vector signal generator, and measurements are made by the vector signal analyzer, where <number> is measured in milliseconds. | tRF(us) 400 |
t2(us) <number> | Optional | Indicates the time delay between when the RF measurements end and the DUT is turned off, where <number> is measured in milliseconds. | t2(us) 200 |
t3(us) <number> | Optional | Indicates the time delay after the off-command sequence is sent in order to ensure that the DUT is turned off, where <number> is measured in milliseconds. | t3(us) 300 |
skipburst | Optional | Indicates whether to skip the pattern burst after the dEVM pattern is generated and loaded. | skipburst |
Executing a Script
You can execute a script in the Semiconductor Device Control Add-On or using the API in the automation environment.
- Begin communication with the hardware by clicking Start at the top of the large or small front panel.
-
Locate the script you would like to run.
Scripts can be accessed from the following locations:
- The Scripts tab of the large front panel
- The DIO/Script view in the large front panel, accessed from the Reg Map tab
- The DIO/Script view in the small front panel, accessed from the Reg Map tab
-
Click Run to begin running the script.
The Run button changes to display a Stop button. Click the Stop button to terminate the script.
- View the actions performed by the script in the Device Activity window.