Ejemplo n.º 1
0
        public GeneratorDialog(My_Variable variable, GeneratorType genType)
        {
            InitializeComponent();
            this.GenSettings = ModellingType.GetGeneratorSettings(variable.Signal.Type);
            switch (genType)
            {
            case GeneratorType.Constant:
                TabControlGenerator.SelectedItem = TabItemConstantGenerator;
                break;

            case GeneratorType.Clock:
                TabControlGenerator.SelectedItem = TabItemClockGenerator;
                break;

            case GeneratorType.Counter:
                TabControlGenerator.SelectedItem = TabItemCounterGenerator;
                break;

            case GeneratorType.DiscretteRandom:
                TabControlGenerator.SelectedItem = TabItemRandomGeneratorDiscrette;
                break;

            case GeneratorType.ContinousRandom:
                TabControlGenerator.SelectedItem = TabItemRandomGeneratorContinuous;
                break;

            default:
                break;
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Функция, которая возвращает класс, отвечающий за отображение
        /// </summary>
        /// <param name="Variable"></param>
        /// <param name="ScaleManager"></param>
        /// <returns></returns>
        public static SignalViewBase GetSignalViewer(My_Variable Variable, ScaleManager ScaleManager)
        {
            ModellingType type = Variable.Signal.Type;

            if (type.Type is IntegerType)
            {
                return(new INTEGER_View(Variable.Signal.Dump as SimpleSignalDump, ScaleManager));
            }
            if (type.Type is RealType)
            {
                return(new Real_View(Variable.Signal.Dump as SimpleSignalDump, ScaleManager));
            }
            if (type.Type == VHDL.builtin.StdLogic1164.STD_ULOGIC)
            {
                return(new STD_LOGIC_View(Variable.Signal.Dump as SimpleSignalDump, ScaleManager));
            }
            if (type.Type == VHDL.builtin.StdLogic1164.STD_ULOGIC_VECTOR)
            {
                return(new STD_LOGIC_VECTOR_View(Variable.Signal.Dump as SignalScopeDump, ScaleManager));
            }
            if (type.Type == VHDL.builtin.StdLogic1164.STD_LOGIC_VECTOR)
            {
                return(new STD_LOGIC_VECTOR_View(Variable.Signal.Dump as SignalScopeDump, ScaleManager));
            }
            if (type.Type is RecordType)
            {
                return(new CompositeDataTypeView(Variable.Signal.Dump as SignalScopeDump, ScaleManager));
            }
            if (type.Type is ArrayType)
            {
                return(new CompositeDataTypeView(Variable.Signal.Dump as SignalScopeDump, ScaleManager));
            }
            return(null);
        }
Ejemplo n.º 3
0
 public Signal(ModellingType type, VHDL.Object.Signal parsedVariable)
 {
     this.parsedVariable = parsedVariable;
     this.name           = parsedVariable.Identifier;
     this.type           = type;
     dump = new SimpleSignalDump(parsedVariable.Identifier, type);
     InitChildrens();
     InitValue();
 }
Ejemplo n.º 4
0
 /// <summary>
 /// Конструктор
 /// </summary>
 /// <param name="type"></param>
 public RecordValue(ModellingType type, IList <AbstractValue> _value)
     : base(type)
 {
     if (type.Type is VHDL.type.RecordType)
     {
         CreateRecordValue(type.Type as VHDL.type.RecordType, _value);
     }
     else
     {
         throw new Exception("Invalid type");
     }
 }
Ejemplo n.º 5
0
 public Signal(ModellingType type, VHDL.Object.Signal parsedVariable, List <AbstractSignalDump> dumps)
 {
     this.parsedVariable = parsedVariable;
     this.name           = parsedVariable.Identifier;
     this.type           = type;
     if ((type.Type is VHDL.type.RecordType) || (type.Type is VHDL.type.ArrayType))
     {
         dump = new SignalScopeDump(parsedVariable.Identifier, type, dumps);
     }
     InitChildrens();
     InitValue();
 }
 public NewSortedDictionaryScopeIterator(SignalScopeDump dump)
 {
     this.Dump = dump;
     this.Type = dump.Type;
     iterators = new List <IValueIterator>();
     foreach (AbstractSignalDump d in dump.Dumps)
     {
         IValueIterator i = d.Iterator;
         i.Reset();
         iterators.Add(i);
     }
 }
Ejemplo n.º 7
0
 /// <summary>
 /// Создание объекта составного типа с набора его элементов
 /// </summary>
 /// <param name="type"></param>
 /// <param name="_values"></param>
 /// <returns></returns>
 public static CompositeValue CreateCompositeValue(ModellingType type, IList <AbstractValue> _values)
 {
     if (type.Type is VHDL.type.ArrayType)
     {
         if (type.Type == VHDL.builtin.StdLogic1164.STD_LOGIC_VECTOR)
         {
             return(new STD_LOGIC_VECTOR_VALUE(_values));
         }
         if (type.Type == VHDL.builtin.StdLogic1164.STD_ULOGIC_VECTOR)
         {
             return(new STD_ULOGIC_VECTOR_VALUE(_values));
         }
         if (type.Type == VHDL.builtin.Standard.BIT_VECTOR)
         {
             return(new BIT_VECTOR_VALUE(_values));
         }
         return(new ArrayValue(type, _values));
     }
     if (type.Type is VHDL.type.RecordType)
     {
         return(new RecordValue(type, _values));
     }
     throw new ArgumentException("Invalid Argument", "type");
 }
Ejemplo n.º 8
0
 public static Signal CreateSignal(ModellingType type, string identifier)
 {
     return(new Signal(type, new VHDL.Object.Signal(identifier, type.Type)));
 }
Ejemplo n.º 9
0
 public SignalScopeDump(string name, ModellingType type, List <AbstractSignalDump> dumps)
     : base(name, type)
 {
     this.dumps = dumps;
 }
Ejemplo n.º 10
0
 public AbstractSignalDump(string name, ModellingType type)
 {
     this.type = type;
     this.name = name;
 }
Ejemplo n.º 11
0
 /// <summary>
 /// Конструктор
 /// </summary>
 /// <param name="type"></param>
 public CompositeValue(ModellingType type)
     : base(type)
 {
 }
Ejemplo n.º 12
0
 /// <summary>
 /// Конструктор
 /// </summary>
 /// <param name="type"></param>
 public ArrayValue(VHDL.type.UnconstrainedArray type, ResolvedDiscreteRange range)
     : base(ModellingType.CreateModellingType(type, new ResolvedDiscreteRange[] { range }))
 {
     _values = CreateDictionary(range);
 }
Ejemplo n.º 13
0
 /// <summary>
 /// Конструктор
 /// </summary>
 /// <param name="type"></param>
 public ArrayValue(VHDL.type.UnconstrainedArray type, IList <AbstractValue> _value)
     : base(ModellingType.CreateModellingType(type, new ResolvedDiscreteRange[] { ResolvedDiscreteRange.FormIntegerIndexes(_value.Count) }))
 {
     _values = CreateDictionary(_value);
 }
Ejemplo n.º 14
0
 public RealAbstractValueConvertor(ModellingType modellingType)
     : base(modellingType)
 {
 }
Ejemplo n.º 15
0
 public IntegerAbstractValueConvertor(ModellingType modellingType)
     : base(modellingType)
 {
 }
Ejemplo n.º 16
0
 public AbstractValueConvertor(ModellingType modellingType)
 {
     this.modellingType = modellingType;
 }
Ejemplo n.º 17
0
 public STD_LOGIC_AbstractValueConvertor(ModellingType modellingType)
     : base(modellingType)
 {
 }
Ejemplo n.º 18
0
 public EnumerationAbstractValueConvertor(ModellingType modellingType)
     : base(modellingType)
 {
 }
Ejemplo n.º 19
0
 /// <summary>
 /// Конструктор
 /// </summary>
 /// <param name="name"></param>
 public SimpleSignalDump(string name, ModellingType type)
     : base(name, type)
 {
 }
Ejemplo n.º 20
0
 public static Signal CreateSignal(ModellingType type, string identifier, List <AbstractSignalDump> dumps)
 {
     return(new Signal(type, new VHDL.Object.Signal(identifier, type.Type), dumps));
 }
Ejemplo n.º 21
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);
        }
Ejemplo n.º 22
0
 public GeneratorDialog(My_Variable variable)
 {
     InitializeComponent();
     this.GenSettings = ModellingType.GetGeneratorSettings(variable.Signal.Type);
 }
Ejemplo n.º 23
0
 /// <summary>
 /// Конструктор
 /// </summary>
 /// <param name="type"></param>
 public ArrayValue(ModellingType modellingType, IList <AbstractValue> _value)
     : base(modellingType)
 {
     _values = CreateDictionary(_value, modellingType.Dimension);
 }
Ejemplo n.º 24
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);
        }
Ejemplo n.º 25
0
 /// <summary>
 /// Конструктор
 /// </summary>
 /// <param name="type"></param>
 public ArrayValue(VHDL.type.UnconstrainedArray type, Dictionary <int[], AbstractValue> dictionary)
     : base(ModellingType.CreateModellingType(type, new ResolvedDiscreteRange[] { ResolvedDiscreteRange.FormIntegerIndexes(dictionary.Count) }))
 {
     _values = dictionary;
 }
Ejemplo n.º 26
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);
        }
Ejemplo n.º 27
0
 /// <summary>
 /// Конструктор
 /// </summary>
 /// <param name="type"></param>
 public ArrayValue(ModellingType modellingType)
     : base(modellingType)
 {
     _values = CreateDictionary(modellingType.Dimension);
 }
Ejemplo n.º 28
0
 /// <summary>
 /// Конструктор
 /// </summary>
 /// <param name="name"></param>
 public AbstractSimpleSignalDump(string name, ModellingType type)
     : base(name, type)
 {
     dump = new NewSortedDictionary <AbstractTimeStampInfo <T> >();
 }
Ejemplo n.º 29
0
 /// <summary>
 /// Конструктор
 /// </summary>
 /// <param name="name"></param>
 public AbstractSimpleSignalDump(string name, ModellingType type, AbstractValueConvertor <T> valueCovertor)
     : base(name, type)
 {
     this.valueCovertor = valueCovertor;
     dump = new NewSortedDictionary <AbstractTimeStampInfo <T> >();
 }
Ejemplo n.º 30
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);
        }