+ MicroInstructionDefinition muiDef = getDefinition().getMicroInstructionMemoryDefinition().getMicroInstructionDefinition();
+ ParameterClassification[] paramClassifications = muiDef.getParameterClassifications();
+ MicroInstructionParameter[] defaultParams = muiDef.createDefaultInstruction().getParameters();
+ defaultParams[19] = paramClassifications[19].parse("JZ");
+ MicroInstruction jzMI = MicroInstruction.create(defaultParams);
+ 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()));
+ }