+ am2900.setHighLevelState("muir_2.q", jzMI.toBitVector());
+ if (!machineDefinition.strict)
+ {
+ setRegistersToZero(machineDefinition.getUnsortedRegisters());
+ setRegisterGroupToZero(machineDefinition.getRegisterGroups());
+ // TODO reset latches?
+ }
+ }
+
+ private void setRegistersToZero(List<Register> registers)
+ {
+ for (Register r : registers)
+ if (r != muInstrRegister.instance)// don't reset; sometimes causes a glitch
+ setRegister(r, BitVector.of(Bit.ZERO, r.getWidth()));
+ }
+
+ private void setRegisterGroupToZero(List<RegisterGroup> registerGroups)
+ {
+ for (RegisterGroup rg : registerGroups)
+ {
+ setRegistersToZero(rg.getRegisters());
+ setRegisterGroupToZero(rg.getSubGroups());
+ }