You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
193 lines
4.2 KiB
193 lines
4.2 KiB
//Info: Sample template for programming XILINX XC18V01 PROMS
|
|
//Info: Created with output from Impact
|
|
|
|
--LITERAL START
|
|
TRST OFF;
|
|
ENDIR IDLE;
|
|
ENDDR IDLE;
|
|
STATE RESET;
|
|
STATE IDLE;
|
|
TIR 0 ;
|
|
HIR 0 ;
|
|
TDR 0 ;
|
|
HDR 0 ;
|
|
TIR 0 ;
|
|
HIR 0 ;
|
|
HDR 0 ;
|
|
TDR 0 ;
|
|
//Loading device with 'idcode' instruction.
|
|
SIR 8 TDI (fe) SMASK (ff) ;
|
|
SDR 32 TDI (00000000) SMASK (ffffffff) TDO ($ID$) MASK ($IDMASK$) ;
|
|
//Loading device with 'conld' instruction.
|
|
SIR 8 TDI (f0) ;
|
|
RUNTEST 110000 TCK;
|
|
//Check for Read/Write Protect.
|
|
SIR 8 TDI (ff) TDO (01) MASK (03) ;
|
|
TIR 0 ;
|
|
HIR 0 ;
|
|
TDR 0 ;
|
|
HDR 0 ;
|
|
TIR 0 ;
|
|
HIR 0 ;
|
|
TDR 0 ;
|
|
HDR 0 ;
|
|
STATE RESET;
|
|
// Loading devices with 'ispen' or 'bypass' instruction.
|
|
SIR 8 TDI (e8) ;
|
|
SDR 6 TDI (34) SMASK (3f) ;
|
|
// Loading device with 'faddr' instruction.
|
|
SIR 8 TDI (eb) ;
|
|
SDR 16 TDI (0001) SMASK (ffff) ;
|
|
RUNTEST 1 TCK;
|
|
RUNTEST 1 TCK;
|
|
// Loading device with 'ferase' instruction.
|
|
SIR 8 TDI (ec) ;
|
|
RUNTEST 1 TCK;
|
|
RUNTEST 15000000 TCK;
|
|
// Loading devices with 'conld' or 'bypass' instruction.
|
|
SIR 8 TDI (f0) ;
|
|
RUNTEST 110000 TCK;
|
|
STATE RESET;
|
|
// Loading devices with 'ispen' or 'bypass' instruction.
|
|
SIR 8 TDI (e8) ;
|
|
SDR 6 TDI (34) SMASK (3f) ;
|
|
--END
|
|
|
|
$ADDRESS(0x0000)$
|
|
$STEP(0x0020)$
|
|
|
|
|
|
--REPEAT START
|
|
// Loading device with a 'fdata0' instruction.
|
|
SIR 8 TDI (ed) ;
|
|
SDR $BSIZE$ TDI ($DATA_INV(BSIZEB)$) SMASK ($FILL(0xFF,BSIZEB)$) ;
|
|
ENDIR IDLE;
|
|
RUNTEST 1 TCK;
|
|
RUNTEST 1 TCK;
|
|
// Loading device with a 'faddr' instruction.
|
|
SIR 8 TDI (eb) ;
|
|
SDR 16 TDI ($ADDRESS$) SMASK (ffff) ;
|
|
RUNTEST 1 TCK;
|
|
RUNTEST 1 TCK;
|
|
// Loading device with a 'fpgm' instruction.
|
|
ENDIR IRPAUSE;
|
|
SIR 8 TDI (ea) ;
|
|
RUNTEST 1 TCK;
|
|
RUNTEST 14000 TCK;
|
|
--END
|
|
|
|
--LITERAL START
|
|
// Loading device with a 'faddr' instruction.
|
|
SIR 8 TDI (eb) ;
|
|
SDR 16 TDI (0001) ;
|
|
ENDIR IDLE;
|
|
RUNTEST 1 TCK;
|
|
// Loading device with 'serase' instruction.
|
|
SIR 8 TDI (0a) ;
|
|
RUNTEST 37000 TCK;
|
|
// Loading devices with 'conld' or 'bypass' instruction.
|
|
SIR 8 TDI (f0) ;
|
|
RUNTEST 110000 TCK;
|
|
TIR 0 ;
|
|
HIR 0 ;
|
|
HDR 0 ;
|
|
TDR 0 ;
|
|
//Loading device with 'ispen' instruction.
|
|
SIR 8 TDI (e8) ;
|
|
SDR 6 TDI (34) SMASK (3f) ;
|
|
//Loading device with 'conld' instruction.
|
|
SIR 8 TDI (f0) ;
|
|
RUNTEST 110000 TCK;
|
|
//Loading device with 'ispen' instruction.
|
|
SIR 8 TDI (e8) ;
|
|
SDR 6 TDI (34) ;
|
|
--END
|
|
|
|
$REWIND$
|
|
$ADDRESS(0x0000)$
|
|
$STEP(0x0040)$
|
|
|
|
--REPEAT START
|
|
// Loading device with a 'faddr' instruction.
|
|
SIR 8 TDI (eb) ;
|
|
SDR 16 TDI ($ADDRESS$) SMASK (ffff) ;
|
|
RUNTEST 1 TCK;
|
|
RUNTEST 1 TCK;
|
|
// Loading device with a 'fvfy0' instruction.
|
|
SIR 8 TDI (ef) ;
|
|
RUNTEST 1 TCK;
|
|
RUNTEST 50 TCK;
|
|
SDR $BSIZE2$ TDI ($FILL(0x00,BSIZEB2)$) SMASK ($FILL(0xFF,BSIZEB2)$) TDO ($DATA_INV(BSIZEB2)$) MASK ($FILL(0xFF,BSIZEB2)$) ;
|
|
--END
|
|
|
|
|
|
--REPEAT UNTIL MSIZE
|
|
// Loading device with a 'faddr' instruction.
|
|
SIR 8 TDI (eb) ;
|
|
SDR 16 TDI ($ADDRESS$) SMASK (ffff) ;
|
|
RUNTEST 1 TCK;
|
|
RUNTEST 1 TCK;
|
|
// Loading device with a 'fvfy0' instruction.
|
|
SIR 8 TDI (ef) ;
|
|
RUNTEST 1 TCK;
|
|
RUNTEST 50 TCK;
|
|
SDR $BSIZE2$ TDI ($FILL(0xFF,BSIZEB2)$) SMASK ($FILL(0xFF,BSIZEB2)$) TDO ($FILL(0xFF,BSIZEB2)$) MASK ($FILL(0xFF,BSIZEB2)$) ;
|
|
--END
|
|
|
|
--LITERAL START
|
|
//Loading device with 'conld' instruction.
|
|
SIR 8 TDI (f0) ;
|
|
RUNTEST 110000 TCK;
|
|
//Loading device with 'ispen' instruction.
|
|
SIR 8 TDI (e8) ;
|
|
SDR 6 TDI (34) SMASK (3f) ;
|
|
//Loading device with 'ispen' instruction.
|
|
SIR 8 TDI (e8) ;
|
|
SDR 6 TDI (34) ;
|
|
// Loading device with a 'faddr' instruction.
|
|
SIR 8 TDI (eb) TDO (00) MASK (00) ;
|
|
SDR 16 TDI (4000) SMASK (ffff) ;
|
|
RUNTEST 1 TCK;
|
|
RUNTEST 1 TCK;
|
|
// Loading device with a 'fdata3' instruction.
|
|
SIR 8 TDI (f3) TDO (00) ;
|
|
SDR 6 TDI (1f) SMASK (3f) TDO (00) MASK (00) ;
|
|
// Loading device with a 'fpgm' instruction.
|
|
SIR 8 TDI (ea) TDO (00) ;
|
|
RUNTEST 1 TCK;
|
|
RUNTEST 14000 TCK;
|
|
// Loading device with a 'fvfy3' instruction.
|
|
SIR 8 TDI (e2) TDO (00) ;
|
|
RUNTEST 1 TCK;
|
|
RUNTEST 50 TCK;
|
|
SDR 6 TDI (1f) TDO (1f) ;
|
|
//Loading device with 'conld' instruction.
|
|
SIR 8 TDI (f0) ;
|
|
RUNTEST 110000 TCK;
|
|
//Loading device with 'ispen' instruction.
|
|
SIR 8 TDI (e8) ;
|
|
SDR 6 TDI (34) ;
|
|
//Loading device with 'conld' instruction.
|
|
SIR 8 TDI (f0) ;
|
|
RUNTEST 110000 TCK;
|
|
// Loading device with a 'config' instruction.
|
|
SIR 8 TDI (ee) TDO (00) ;
|
|
RUNTEST 50 TCK;
|
|
//Loading device with 'bypass' instruction.
|
|
SIR 8 TDI (ff) ;
|
|
TIR 0 ;
|
|
HIR 0 ;
|
|
HDR 0 ;
|
|
TDR 0 ;
|
|
TIR 0 ;
|
|
HIR 0 ;
|
|
HDR 0 ;
|
|
TDR 0 ;
|
|
TIR 0 ;
|
|
HIR 0 ;
|
|
TDR 0 ;
|
|
HDR 0 ;
|
|
SIR 8 TDI (ff) ;
|
|
SDR 1 TDI (00) SMASK (01) ;
|
|
--END
|