BYU Home page BRIGHAM YOUNG UNIVERSITY
Department Title
Navigation Menu


SEU Simulator Operation Instructions

Overview
The SEU (single event upset) Simulator developed at BYU is used to test for the sensitivity and persistance of configuration bits in a FPGA .bit stream. The Simulator requires two copies of a design mapped to different ports based on the processing element on which it will run. A .bit stream for the third processing element, which acts as the controller circuit, is also required.

Preparation
  1. Create a circuit design to test using this documentation. This process will yield two Placed and Routed .ncd files. BYU will need to fix the xp1.ncd file (by removing half-latches).
  2. Create two .bit files from the two .ncd files. One for xp1 and the other for xp2
  3. Obtain a copy of the xp0 .bit file which will act as the controller circuit.
Standard Program Invocation Commands
  • To run the SEU simulator, at the command line type:
    • seusim -x0 < bitfile > -x1 < bitfile > -x2 < bitfile >
  • To have the results output to an ascii text file:
    • seusim -x0 < bitfile > -x1 < bitfile > -x2 < bitfile > -o < outputFileName >
  • To run a persistance test and have the persistance results output to an ascii text file:
    • seusim -x0 < bitfile > -x1 < bitfile > -x2 < bitfile > -o < outputFileName > -p < t > < z > < persistanceOutputFileName >
Command Line Arguments
  • Mandatory Command Line Arguments
  • -x0 < bitfile > Load < bitfile > into x0
    -x1 < bitfile > Load < bitfile > into x1
    -x2 < bitfile > Load < bitfile > into x2
  • Optional Advanced Command Line Arguments
  • -i, -iterations < num > | all | a Set the number of seu insertions to perform (default is all bits without select-map bits)
    -f, -freq < frequency > Specify frequency (default 10.0MHz)
    -fr, -freerunning Set freerunning clock (default)
    -s, -stepped < steps > Set stepped clock to clocks per iteration
    -seq, -sequential Perform sequential seu insertion (default)
    -rand < seed > Perform random seu insertion using < seed >
    -fixedrand < seed > Perform random seu insertion using < seed > . This gaurantees that the entire bitstream space will be exercised
    -w, -wait < time > Set the time to wait between corrupting a bit and repairing it (ms)
    -v, -version Display the version number
    -verbose < iterations > Print a msg every < iterations > iterations
    -o, -output < output file > Set the file to which results are written
    -nofile, -nf Only print the header output info to the file
    -newbits < num > < file > Every < num > bits the number of new error bits found in the last < num > bits will be displayed
    -bitoffsets < output file > Set the file to write the bitoffsets of the corrupted bits
    -p < t > < z > < file > Performs persistance analysis on the design. After a bit is repaired, the circuit is stepped < t > cycles if in stepped mode, or freerun for < t > us if in freerun mode. The design is then checked to see if an error has occured within a window of < z > cycles. Output is writte to < file >
    -pbitoffsets < output file > Set the file to write the bitoffsets of the persistant bits
    -record < num > < file > Keeps a record of the last < num > bits corrupted. Upon completion of the simulation, the bitoffsets of these bits are written to < file >
    -playback < file > Performs seu insertion in the order specified by the bitoffsets in < file >
    -quitonlockup < num > Causes the program to terminate < num > iterations after the current cycle if a lockup condition is detected
    -numcorruptions Records the number of corruptions between output errors. This information is recorded at the beginning of the output file, in the commented section
    -noselectmapbits Does not check for messing up selectMAP bits
    -readback < file > Perform a readback every cycle, and record the number of errors found in readback for each bit upset, if the number of errors is greater than that expected
    -mem2debug, -m2d Prints PE2 on-board memory contents to output file specified by -o
    -accplayback < infile > < outfile > Performs playback using the indicated accelerator result file for a guide. Writes the results to < outfile >
    -dotiming < time > Used only with -accplayback. Forces the playback to be done with the same delays between upsets as indicated in the accelerator result file < time > is the first time stamp
    -drive0 Drive a '0' logic value on the handshake line to be used as a constant for half-latch mitigation
    -drive1 Drive a '0' logic value on the handshake line to be used as a constant for half-latch mitigation (default)
    -flush < min > Flush the output results every < min > minutes
Related Links