- return reportChain.getOutBits(REPORT_CHAIN+"."+FLAGS_PATH).get(B_FLAG_NDX);
- }
- /** return value of instruction counter. Instruction counter counts
- * the instructions flowing through 1/2 of alternating FIFO.
- * Caution: instruction counter is written by all scans,
- * regardless of readEnable or writeEnable! */
- public long getInstructionCounter() {
- shiftData(true, false);
- BitVector count = dataChain.getOutBits(DATA_CHAIN+"."+INSTRUCTION_COUNTER_PATH);
- int sz = count.getNumBits();
- MarinaTest.fatal(sz!=COUNTER_LENGTH, "wrong number of counter bits: "+sz+
- " expected: "+COUNTER_LENGTH);
- return count.bitReverse().toLong();
- }
- /** return value of data counter. Data counter counts items flowing
- * through drain stage of data proper stopper.
- * Caution: data counter is written by all scans,
- * regardless of readEnable or writeEnable! */
- public long getDataCounter() {
- shiftData(true, false);
- BitVector count = dataChain.getOutBits(DATA_CHAIN+"."+DATA_COUNTER_PATH);
- int sz = count.getNumBits();
- MarinaTest.fatal(sz!=COUNTER_LENGTH, "wrong number of counter bits: "+sz+
- " expected: "+COUNTER_LENGTH);
- return count.bitReverse().toLong();
- }
- /** Fill the "North" Fifo ring */
- public void fillNorthProperStopper() {
- BitVector data = new BitVector(37, "empty");
- BitVector addr = new BitVector(14, "empty");
- for(int i=0; i<data.getNumBits(); i++) data.set(i, false);
- for(int i=0; i<addr.getNumBits(); i++) addr.set(i, false);
- fillNorthProperStopper(new MarinaPacket(data, false, addr));
- }
- /** Fill the "North" Fifo ring */
- public void fillNorthProperStopper(MarinaPacket mp) {
- prln("inserting into north: " + mp);
- this.data.fill(mp.toSingleBitVector());
- }
- /** Enable the transmission of instructions from the instruction
- * ring test structure to the EPI FIFO. */
- public void enableInstructionSend(boolean b) {
- BitVector bv = controlChain.getInBits(CONTROL_CHAIN+"."+INSTR_RING_CONTROL_PATH);
- bv.set(INSTRUCTION_SEND_NDX, b);
- controlChain.setInBits(CONTROL_CHAIN+"."+INSTR_RING_CONTROL_PATH, bv);
- shiftControl(false, true);
- }
- /** Enable the recirculation of instructions within the South FIFO */
- public void enableInstructionRecirculate(boolean b) {
- BitVector bv = controlChain.getInBits(CONTROL_CHAIN+"."+INSTR_RING_CONTROL_PATH);
- bv.set(INSTRUCTION_RECIRCULATE_NDX, b);
- controlChain.setInBits(CONTROL_CHAIN+"."+INSTR_RING_CONTROL_PATH, bv);
- shiftControl(false, true);