@Override public void propagate(InstanceState state) { MemState myState = getState(state); BitWidth dataBits = state.getAttributeValue(DATA_ATTR); Value addrValue = state.getPort(ADDR); boolean chipSelect = state.getPort(CS) != Value.FALSE; if (!chipSelect) { myState.setCurrent(-1); state.setPort(DATA, Value.createUnknown(dataBits), DELAY); return; } int addr = addrValue.toIntValue(); if (!addrValue.isFullyDefined() || addr < 0) return; if (addr != myState.getCurrent()) { myState.setCurrent(addr); myState.scrollToShow(addr); } int val = myState.getContents().get(addr); state.setPort(DATA, Value.createKnown(dataBits, val), DELAY); }