public void SetOutputs(StallControlTestOutput expected) { var members = RTLReflectionTools.RecursiveMembers(expected.GetType()); foreach (var m in members) { var signalValue = m.GetValue(expected); if (!signalAsserts.ContainsKey(m.Name)) { signalAsserts[m.Name] = new List <SignalAssert>(); } var at = offset + (currentClock) * clockDuration + 1000; switch (signalValue) { case bool v: signalAsserts[m.Name].Add(new SignalAssert() { value = new RTLBitArray(v), at = at }); break; case byte b: signalAsserts[m.Name].Add(new SignalAssert() { value = new RTLBitArray(b), at = at }); break; } } }
public void setInputs(StallControlTestPipelineModuleInputs inputs) { var members = RTLReflectionTools.RecursiveMembers(inputs.GetType()); foreach (var m in members) { var signalValue = (bool)m.GetValue(inputs); if (!signalsValues.ContainsKey(m.Name)) { signalsValues[m.Name] = new List <SignalValue>() { new SignalValue() { value = signalValue, duration = offset } }; } else { var list = signalsValues[m.Name]; var lastValue = list.Last(); if (lastValue.value != signalValue) { list.Add(new SignalValue() { value = signalValue, duration = clockDuration }); } else { lastValue.duration += clockDuration; } } } }