When running the simulation test bench for the JTAG Player in XAPP424, the simulation passes, but when using an actual ACE file that I have generated for the simulation, it fails at the first TDO Check operation.
Xilinx JTAG programming operations contain JTAG TDO Check operations, such as an IDCODE Check. The SVF file created by iMPACT for an actual JTAG chain will be expecting an IDCODE from the device being targeted, and will check for the correct IDCODE before continuing. The actual JTAG chain is not modeled in the simulation testbench. The testbench provided with XAPP424 assumes no other devices in the JTAG chain, and its test vectors simulate a value that will align correctly with the TDO Expected value in the same vector.
You can work around this issue by modifying your SVF file created in iMPACT. Typically, you will see a few instructions in an SVF file for TDO Checks at the beginning and end of the file. You will need to search through the SVF file and modify the lines containing these instructions using one of the following methods:
If you want to run through the TDO Check lines without checking its functionality, you can mask off all the bits in the check by changing the MASK to all zeros. An example line in an SVF file would be:
Orignal Line - SDR 32 TDI (00000000) SMASK (ffffffff) TDO (f1718093) MASK (0fffffff) ;
Modified Line: SDR 32 TDI (00000000) SMASK (00000000) TDO (f1718093) MASK (00000000)
If you want to simulate the actual functionality of the TDO Check algorithm, you can modify the line in your SVF file by copying the TDO (value) to the TDI (value) as follows:
Original Line: - SDR 32 TDI (00000000) SMASK (ffffffff) TDO (f1718093) MASK (0fffffff) ;
Modified Line - SDR 32 TDI (f1718093) SMASK (ffffffff) TDO (f1718093) MASK (0fffffff) ;
In the Test Bench provided in the appnote, you will now be sending the TDO Expected Value through TDI and back into TDO so it will match.
After changing your SVF, run SVF2ACE again to make a new ACE file for you simulation.
NOTE: This is for Simulation Only. In your actual design, you should NOT modify your SVF file in this manner.