}
/** get value of the state wire preceding the fill stage */
public StateWireState getPrevStateWire() {
+ shiftReport(true, false);
BitVector b = cc.getOutBits(reportPath);
int n = b.getNumBits();
fatal(n!=4, "Bad number of Stopper report bits: "+n);
* The fill wire will be interesting if we doubt that the
* scan chain works. */
public boolean getFillWire() {
+ shiftReport(true, false);
return cc.getOutBits(reportPath).get(1);
}
/** get value of state wire between the fill and drain stages */
- public StateWireState isFillStageFull() {
+ public StateWireState getFillStateWire() {
+ shiftReport(true, false);
return boolToState(cc.getOutBits(reportPath).get(2));
}
/** get value of drain stage stopped wire */
StringBuffer sb = new StringBuffer();
sb.append("Stopper's prev state: ");
sb.append(getPrevStateWire()+"\n");
- sb.append("Stopper's fill stage is full: ");
- sb.append(isFillStageFull()+"\n");
+ sb.append("Stopper's fill stage: ");
+ sb.append(getFillStateWire()+"\n");
sb.append("Stopper's stopped: ");
sb.append(getStopped()+"\n");
return sb.toString();
fatal(n!=(37+1+14), "fill: wrong num bits: "+n);
// make sure fill stage is empty
- shiftReport(true, false);
- StateWireState myState = isFillStageFull();
+ StateWireState myState = getFillStateWire();
fatal(myState!=StateWireState.EMPTY,
"fill: fill stage already full");
stop(); // all zero, block = 0, go = 0
// make sure an item is available
- shiftReport(true, false);
- StateWireState myState=isFillStageFull();
+ StateWireState myState=getFillStateWire();
fatal(myState==StateWireState.EMPTY, "drain: fill stage empty");
shiftData(true, false);
int cnt = 0;
while (true) {
- shiftReport(true, false);
- StateWireState myState=isFillStageFull();
+ StateWireState myState=getFillStateWire();
// debugging
if (traceDrain) prln(getReportString());