public SignalDeclarationNode(string signal, ArrayTypeDefinitionNode arrayType = null, string arrayTypeName = null, int bits = ProtoCore.VHDL.Constants.Numeric.SignalBitCount) { SignalName = signal; BitCount = bits; ArrayType = arrayType; ArrayTypeName = arrayTypeName; }
public static List <ProtoCore.VHDL.AST.SignalDeclarationNode> GenerateSignalsDeclarationList(ProtoCore.DSASM.SymbolTable symbolTable) { List <ProtoCore.VHDL.AST.SignalDeclarationNode> signalDeclList = new List <ProtoCore.VHDL.AST.SignalDeclarationNode>(); foreach (KeyValuePair <int, ProtoCore.DSASM.SymbolNode> kvp in symbolTable.symbolList) { ProtoCore.DSASM.SymbolNode symbol = kvp.Value; ProtoCore.VHDL.AST.ArrayTypeDefinitionNode arrayType = null; if (symbol.size > 1) { arrayType = new AST.ArrayTypeDefinitionNode(new List <int>(symbol.size)); } ProtoCore.VHDL.AST.SignalDeclarationNode signalDecl = new ProtoCore.VHDL.AST.SignalDeclarationNode(symbol, arrayType); signalDeclList.Add(signalDecl); } return(signalDeclList); }
public SignalDeclarationNode(ProtoCore.DSASM.SymbolNode symbol, ArrayTypeDefinitionNode arrayType = null, string arrayTypeName = null, int bits = ProtoCore.VHDL.Constants.Numeric.SignalBitCount) { DSSymbol = symbol; SignalName = DSSymbol.name; BitCount = ProtoCore.VHDL.Constants.Numeric.SignalBitCount; ArrayTypeName = arrayTypeName; int elements = DSSymbol.size; ArrayType = arrayType; if (DSSymbol.staticType.UID == (int)ProtoCore.PrimitiveType.kTypeBool) { BitCount = 1; } else { // Handle other data type size here BitCount = ProtoCore.VHDL.Constants.Numeric.SignalBitCount; } }