Example #1
0
        public VCD_Variable(Signal var, string identifier)
        {
            this.base_variable = var;
            this.identifier    = identifier;
            this.reference     = var.Name;
            this._iterator     = new NewSortedDictionaryIterator <VHDLBaseValue>(var.Dump);
            _iterator.Reset();
            //Определяем тип переменной
            Type type = var.Type;

            size = 1;
            if (type == typeof(VHDLRuntime.Values.BuiltIn.BIT))
            {
                var_type = VCDVariableType.Reg;
            }
            if (type == typeof(VHDLIntegerValue))
            {
                var_type   = VCDVariableType.Integer;
                size       = 32;
                startIndex = 31;
                endIndex   = 0;
            }
            if (type == typeof(VHDLFloatingPointValue))
            {
                var_type = VCDVariableType.Real;
            }
        }
Example #2
0
        public VCD_Variable(Signal var, string identifier)
        {
            this.base_variable = var;
            this.identifier    = identifier;
            this.reference     = var.Name;
            this._iterator     = var.Dump.Iterator;
            _iterator.Reset();
            //Определяем тип переменной
            string type = var.Type.Name;

            _iterator = var.Dump.Iterator;
            size      = 1;
            switch (type.ToUpper())
            {
            case "BIT":
            case "STD_ULOGIC":
            case "STD_LOGIC":
                var_type = VCDVariableType.Reg;
                break;

            case "BIT_VECTOR":
            case "STD_ULOGIC_VECTOR":
            case "STD_LOGIC_VECTOR":
                ResolvedDiscreteRange range = var.Type.Dimension[0];
                startIndex = range.From;
                endIndex   = range.To;
                size       = (UInt32)(Math.Abs(endIndex - startIndex) + 1);
                var_type   = VCDVariableType.Reg;
                break;

            case "INTEGER":
                var_type   = VCDVariableType.Integer;
                size       = 32;
                startIndex = 31;
                endIndex   = 0;
                break;

            case "REAL":
                var_type = VCDVariableType.Real;
                break;

            default:
                break;
            }
        }