Forum Discussion
Altera_Forum
Honored Contributor
8 years agoI struggled finding info on this topic and on STAPL anywhere on the web. I created a STAPL program that works for me on Cyclone IV and wanted to share.
NOTE "CREATOR" "Manually Created";
NOTE "DATE" "12 Feb 2018";
NOTE "STAPL_VERSION" "JESD71";
NOTE "ALG_VERSION" "1";
NOTE "DEVICE" "EP4CE22";
NOTE "CHECKSUM" "UNSPECIFIED";
NOTE "IDCODE" "00000000";
NOTE "USERCODE" "UNSPECIFIED";
NOTE "TARGET" "UNSPECIFIED";
NOTE "STACK_DEPTH" "4";
NOTE "MAX_FREQ" "1000000";
ACTION SIM_CRAM_ERROR =
DO_CRC_REG_WRITE,
PRINT_CAPTURE_RESULT;
ACTION SIM_CRAM_ERROR_AND_RESET =
DO_CRC_REG_WRITE,
PRINT_CAPTURE_RESULT,
DO_CRC_REG_RESTORE;
DATA globalVariables;
BOOLEAN originalRegisterValue =$FFFFFFFF;
BOOLEAN instCode_CHANGE_EDREG = $015;
ENDDATA;
PROCEDURE DO_CRC_REG_WRITE USES globalVariables;
Print "Writing 0xFFFFFFFF to 32-bit CRC storage register.";
DRSTOP IDLE;
IRSTOP IDLE;
STATE RESET;
IRSCAN 10, instCode_CHANGE_EDREG;
DRSCAN 32, originalRegisterValue, CAPTURE originalRegisterValue;
STATE IDLE;
ENDPROC;
PROCEDURE DO_CRC_REG_RESTORE USES globalVariables;
Print "Restoring original value to 32-bit CRC storage register after 1 sec wait.";
WAIT 1000000 USEC;
DRSTOP IDLE;
IRSTOP IDLE;
STATE RESET;
IRSCAN 10, $015;
DRSCAN 32, originalRegisterValue, CAPTURE originalRegisterValue;
STATE IDLE;
ENDPROC;
PROCEDURE PRINT_CAPTURE_RESULT USES globalVariables;
Print "Original value = ",
originalRegisterValue,
originalRegisterValue,
originalRegisterValue,
originalRegisterValue,
originalRegisterValue,
originalRegisterValue,
originalRegisterValue,
originalRegisterValue,
originalRegisterValue,
originalRegisterValue,
originalRegisterValue,
originalRegisterValue,
originalRegisterValue,
originalRegisterValue,
originalRegisterValue,
originalRegisterValue,
originalRegisterValue,
originalRegisterValue,
originalRegisterValue,
originalRegisterValue,
originalRegisterValue,
originalRegisterValue,
originalRegisterValue,
originalRegisterValue,
originalRegisterValue,
originalRegisterValue,
originalRegisterValue,
originalRegisterValue,
originalRegisterValue,
originalRegisterValue,
originalRegisterValue,
originalRegisterValue;
ENDPROC;
'END OF FILE