示例#1
0
        private static SortedList <UInt64, TimeStampInfo> FormBitGeneratedData(BaseGenerator generator, UInt64 StartTime, UInt64 EndTime, ModellingType modellingType)
        {
            SortedList <UInt64, TimeStampInfo> res = new SortedList <UInt64, TimeStampInfo>();

            if (generator is IGeneratorDataFill <bool> )
            {
                SortedList <UInt64, bool> valuesForInsert = (generator as IGeneratorDataFill <bool>).InsertValues(StartTime, EndTime);
                foreach (var el in valuesForInsert)
                {
                    TimeStampInfo inf = new TimeStampInfo(new BIT_VALUE(el.Value ? VHDL.builtin.Standard.BIT_1 : VHDL.builtin.Standard.BIT_0));
                    res.Add(el.Key, inf);
                }
                return(res);
            }

            if (generator is IGeneratorDataFill <object> )
            {
                SortedList <UInt64, object> valuesForInsert = (generator as IGeneratorDataFill <object>).InsertValues(StartTime, EndTime);
                foreach (var el in valuesForInsert)
                {
                    if (el.Value is string)
                    {
                        TimeStampInfo inf = new TimeStampInfo(new BIT_VALUE((el.Value as string == "1") ? VHDL.builtin.Standard.BIT_1 : VHDL.builtin.Standard.BIT_0));
                        res.Add(el.Key, inf);
                    }
                    if (el.Value is EnumerationLiteral)
                    {
                        TimeStampInfo inf = new TimeStampInfo(new BIT_VALUE(el.Value as EnumerationLiteral));
                        res.Add(el.Key, inf);
                    }
                }
                return(res);
            }
            return(res);
        }
示例#2
0
        public static SortedList <UInt64, TimeStampInfo> FormGeneratedData(BaseGenerator generator, UInt64 StartTime, UInt64 EndTime, ModellingType modellingType)
        {
            SortedList <UInt64, TimeStampInfo> res = new SortedList <UInt64, TimeStampInfo>();

            if (modellingType.Type is IntegerType)
            {
                return(FormIntegerGeneratedData(generator, StartTime, EndTime, modellingType));
            }
            if (modellingType.Type is RealType)
            {
                return(FormRealGeneratedData(generator, StartTime, EndTime, modellingType));
            }
            if ((modellingType.Type == VHDL.builtin.StdLogic1164.STD_ULOGIC) && (modellingType.Constraints.Count != 0))
            {
                return(FormSTD_LOGICGeneratedData(generator, StartTime, EndTime, modellingType));
            }
            if (modellingType.Type == VHDL.builtin.StdLogic1164.STD_ULOGIC)
            {
                return(FormSTD_ULOGICGeneratedData(generator, StartTime, EndTime, modellingType));
            }
            if (modellingType.Type == VHDL.builtin.Standard.BIT)
            {
                return(FormBitGeneratedData(generator, StartTime, EndTime, modellingType));
            }
            if (modellingType.Type is EnumerationType)
            {
                return(FormEnumerationGeneratedData(generator, StartTime, EndTime, modellingType));
            }
            if (modellingType.Type == VHDL.builtin.StdLogic1164.STD_LOGIC_VECTOR)
            {
                return(FormSTD_LOGIC_VECTORGeneratedData(generator, StartTime, EndTime, modellingType));
            }
            if (modellingType.Type == VHDL.builtin.StdLogic1164.STD_ULOGIC_VECTOR)
            {
                return(FormSTD_ULOGIC_VECTORGeneratedData(generator, StartTime, EndTime, modellingType));
            }
            if (modellingType.Type == VHDL.builtin.Standard.BIT_VECTOR)
            {
                return(FormBIT_VECTORGeneratedData(generator, StartTime, EndTime, modellingType));
            }
            return(res);
        }
示例#3
0
        private static SortedList <UInt64, TimeStampInfo> FormRealGeneratedData(BaseGenerator generator, UInt64 StartTime, UInt64 EndTime, ModellingType modellingType)
        {
            SortedList <UInt64, TimeStampInfo> res = new SortedList <UInt64, TimeStampInfo>();

            if (generator is IGeneratorDataFill <Int64> )
            {
                SortedList <UInt64, Int64> valuesForInsert = (generator as IGeneratorDataFill <Int64>).InsertValues(StartTime, EndTime);
                foreach (var el in valuesForInsert)
                {
                    TimeStampInfo inf = new TimeStampInfo(new RealValue(VHDL.builtin.Standard.REAL, Convert.ToDouble(el.Value)));
                    res.Add(el.Key, inf);
                }
                return(res);
            }
            if (generator is IGeneratorDataFill <bool[]> )
            {
                SortedList <UInt64, bool[]> valuesForInsert = (generator as IGeneratorDataFill <bool[]>).InsertValues(StartTime, EndTime);
                foreach (var el in valuesForInsert)
                {
                    TimeStampInfo inf = new TimeStampInfo(new RealValue(VHDL.builtin.Standard.REAL, DataContainer.ValueDump.DataConvertorUtils.ToInt(el.Value)));
                    res.Add(el.Key, inf);
                }
                return(res);
            }
            if (generator is IGeneratorDataFill <Double> )
            {
                SortedList <UInt64, Double> valuesForInsert = (generator as IGeneratorDataFill <Double>).InsertValues(StartTime, EndTime);
                foreach (var el in valuesForInsert)
                {
                    TimeStampInfo inf = new TimeStampInfo(new RealValue(VHDL.builtin.Standard.REAL, Convert.ToDouble(el.Value)));
                    res.Add(el.Key, inf);
                }
                return(res);
            }

            return(res);
        }
示例#4
0
        private static SortedList <UInt64, TimeStampInfo> FormBIT_VECTORGeneratedData(BaseGenerator generator, UInt64 StartTime, UInt64 EndTime, ModellingType modellingType)
        {
            SortedList <UInt64, TimeStampInfo> res = new SortedList <UInt64, TimeStampInfo>();
            int size = modellingType.SizeOf;

            if (generator is IGeneratorDataFill <Int64> )
            {
                SortedList <UInt64, Int64> valuesForInsert = (generator as IGeneratorDataFill <Int64>).InsertValues(StartTime, EndTime);
                foreach (var el in valuesForInsert)
                {
                    TimeStampInfo inf = new TimeStampInfo(BIT_VECTOR_VALUE.CreateBIT_VECTOR_VALUE(el.Value, size));
                    res.Add(el.Key, inf);
                }
                return(res);
            }
            if (generator is IGeneratorDataFill <bool[]> )
            {
                SortedList <UInt64, bool[]> valuesForInsert = (generator as IGeneratorDataFill <bool[]>).InsertValues(StartTime, EndTime);
                foreach (var el in valuesForInsert)
                {
                    TimeStampInfo inf = new TimeStampInfo(BIT_VECTOR_VALUE.CreateBIT_VECTOR_VALUE(el.Value));
                    res.Add(el.Key, inf);
                }
                return(res);
            }
            if (generator is IGeneratorDataFill <Double> )
            {
                SortedList <UInt64, Double> valuesForInsert = (generator as IGeneratorDataFill <Double>).InsertValues(StartTime, EndTime);
                foreach (var el in valuesForInsert)
                {
                    TimeStampInfo inf = new TimeStampInfo(BIT_VECTOR_VALUE.CreateBIT_VECTOR_VALUE((Int64)el.Value, size));
                    res.Add(el.Key, inf);
                }
                return(res);
            }

            return(res);
        }
示例#5
0
        private static SortedList <UInt64, TimeStampInfo> FormEnumerationGeneratedData(BaseGenerator generator, UInt64 StartTime, UInt64 EndTime, ModellingType modellingType)
        {
            SortedList <UInt64, TimeStampInfo> res = new SortedList <UInt64, TimeStampInfo>();

            if (generator is IGeneratorDataFill <object> )
            {
                SortedList <UInt64, object> valuesForInsert = (generator as IGeneratorDataFill <object>).InsertValues(StartTime, EndTime);
                foreach (var el in valuesForInsert)
                {
                    TimeStampInfo inf = new TimeStampInfo(new EnumerationValue(modellingType.Type as VHDL.type.EnumerationType, el.Value as EnumerationLiteral));
                    res.Add(el.Key, inf);
                }
                return(res);
            }
            return(res);
        }