hwt.serializer.vhdl package

VHDL serializer serializes HDL objects to VHDL code.

class hwt.serializer.vhdl.Vhdl2008Serializer[source]

Bases: object

TO_CONSTRAINTS

alias of hwt.serializer.xdc.serializer.XdcSerializer

TO_HDL

alias of hdlConvertorAst.to.vhdl.vhdl2008.ToVhdl2008

TO_HDL_AST

alias of hwt.serializer.vhdl.serializer.ToHdlAstVhdl2008

fileExtension = '.vhd'

Submodules

hwt.serializer.vhdl.ops module

class hwt.serializer.vhdl.ops.ToHdlAstVhdl2008_ops[source]

Bases: object

_as_Bits(val: Union[hwt.synthesizer.rtlLevel.rtlSignal.RtlSignal, hwt.hdl.value.HValue])[source]
_as_Bits_vec(val: Union[hwt.synthesizer.rtlLevel.rtlSignal.RtlSignal, hwt.hdl.value.HValue])[source]
_cast_ops = {<OpDefinition BitsAsSigned>: 'SIGNED', <OpDefinition BitsAsUnsigned>: 'UNSIGNED', <OpDefinition BitsAsVec>: 'STD_LOGIC_VECTOR'}
_tmp_var_for_ternary(val: hwt.synthesizer.rtlLevel.rtlSignal.RtlSignal)[source]

Optionally convert boolean to std_logic_vector

_wrapConcatInTmpVariable(op)[source]
apply_cast(t_name, op)[source]
as_hdl_Operator(op: hwt.hdl.operator.Operator)[source]
as_hdl_operand(operand: Union[hwt.synthesizer.rtlLevel.rtlSignal.RtlSignal, hwt.hdl.value.HValue])[source]
op_transl_dict = {<OpDefinition AND>: <HdlOpType.AND: 18>, <OpDefinition OR>: <HdlOpType.OR: 19>, <OpDefinition XOR>: <HdlOpType.XOR: 22>, <OpDefinition CONCAT>: <HdlOpType.CONCAT: 51>, <OpDefinition DIV>: <HdlOpType.DIV: 4>, <OpDefinition DOWNTO>: <HdlOpType.DOWNTO: 78>, <OpDefinition TO>: <HdlOpType.TO: 79>, <OpDefinition EQ>: <HdlOpType.EQ: 36>, <OpDefinition GT>: <HdlOpType.GT: 42>, <OpDefinition GE>: <HdlOpType.GE: 43>, <OpDefinition LE>: <HdlOpType.LE: 41>, <OpDefinition POW>: <HdlOpType.POW: 8>, <OpDefinition LT>: <HdlOpType.LT: 40>, <OpDefinition SUB>: <HdlOpType.SUB: 2>, <OpDefinition MUL>: <HdlOpType.MUL: 5>, <OpDefinition NE>: <HdlOpType.NE: 37>, <OpDefinition ADD>: <HdlOpType.ADD: 3>, <OpDefinition NOT>: <HdlOpType.NEG: 15>, <OpDefinition MINUS_UNARY>: <HdlOpType.MINUS_UNARY: 0>, <OpDefinition RISING_EDGE>: <HdlOpType.RISING: 76>, <OpDefinition FALLING_EDGE>: <HdlOpType.FALLING: 77>, <OpDefinition INDEX>: <HdlOpType.INDEX: 50>}
hwt.serializer.vhdl.ops.isResultOfTypeConversion(sig)[source]

hwt.serializer.vhdl.serializer module

class hwt.serializer.vhdl.serializer.ToHdlAstVhdl2008(name_scope: Optional[hdlConvertorAst.translate.common.name_scope.NameScope] = None)[source]

Bases: hwt.serializer.vhdl.value.ToHdlAstVhdl2008_Value, hwt.serializer.vhdl.ops.ToHdlAstVhdl2008_ops, hwt.serializer.vhdl.types.ToHdlAstVhdl2008_types, hwt.serializer.vhdl.statements.ToHdlAstVhdl2008_statements, hwt.serializer.generic.to_hdl_ast.ToHdlAst

Variables:name_scope – name scope used to generate a unique names for tmp variables (all object should be registered in namescope before serialization)
ASSERT = <HdlValueId assert>
DEFAULT_IMPORTS = [{'__class__': 'HdlLibrary', 'name': {'__class__': 'str', 'val': 'IEEE'}} , {'__class__': 'HdlImport', 'path': {'__class__': 'list', 'items': ['IEEE', 'std_logic_1164', {'__class__': 'HdlAll'}]}} , {'__class__': 'HdlImport', 'path': {'__class__': 'list', 'items': ['IEEE', 'numeric_std', {'__class__': 'HdlAll'}]}} ]
FAILURE = <HdlValueId failure>
_as_hdl_HdlModuleDef_param_asserts(new_m: hdlConvertorAst.hdlAst._structural.HdlModuleDec) → List[hdlConvertorAst.hdlAst._bases.iHdlStatement][source]
static _find_HdlCompInst(o)[source]
_keywords_dict = {'abs': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'access': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'across': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'after': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'alias': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'all': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'and': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'architecture': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'array': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'assert': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'attribute': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'begin': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'block': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'body': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'break': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'bugger': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'bus': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'case': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'component': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'configuration': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'constant': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'disconnect': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'downto': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'else': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'elsif': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'end': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'entity': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'exit': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'file': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'for': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'function': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'generate': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'generic': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'group': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'guarded': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'if': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'impure': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'in': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'inertial': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'inout': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'is': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'label': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'library': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'limit': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'linkage': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'literal': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'loop': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'map': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'mod': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'nand': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'nature': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'new': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'next': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'noise': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'nor': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'not': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'null': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'of': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'on': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'open': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'or': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'others': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'out': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'package': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'port': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'postponed': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'procedural': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'procedure': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'process': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'pure': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'quantity': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'range': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'record': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'reference': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'register': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'reject': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'rem': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'report': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'return': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'reverse_range': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'rol': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'ror': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'select': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'severity': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'shared': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'signal': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'sla': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'sll': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'spectrum': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'sra': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'srl': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'subnature': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'subtype': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'terminal': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'then': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'through': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'to': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'tolerance': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'transport': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'type': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'unaffected': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'units': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'until': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'use': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'variable': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'wait': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'when': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'while': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'with': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'xnor': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'xor': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>}
_static_assert_false(msg: str)[source]
_static_assert_symbol_eq(symbol_name: str, v)[source]
as_hdl_HdlModuleDef(o: hdlConvertorAst.hdlAst._structural.HdlModuleDef)[source]

Translate hwt types and expressions to HDL AST and add explicit components

as_hdl_HldComponent(o: hdlConvertorAst.hdlAst._structural.HdlCompInst)[source]
classmethod getBaseNameScope()[source]

Get root of name space

class hwt.serializer.vhdl.serializer.VhdlNameScope(parent, name, ignorecase, debug=False)[source]

Bases: hdlConvertorAst.translate.common.name_scope.NameScope

RE_MANY_UNDERSCORES = re.compile('(_{2,})')
checked_name(suggested_name, actualObj)[source]

Get a non occupied name in current scope if name is occupied or name ends with _ the new name is generated.

Returns:str

hwt.serializer.vhdl.statements module

class hwt.serializer.vhdl.statements.ToHdlAstVhdl2008_statements[source]

Bases: object

static _expandBitsOperandType(v)[source]
as_hdl_HdlAssignmentContainer(a: hwt.hdl.statements.assignmentContainer.HdlAssignmentContainer)[source]
as_hdl_SwitchContainer(sw: hwt.hdl.statements.switchContainer.SwitchContainer) → hdlConvertorAst.hdlAst._statements.HdlStmCase[source]
can_pop_process_wrap(stms, hasToBeVhdlProcess)[source]
has_to_be_process(proc: hwt.hdl.statements.codeBlockContainer.HdlStmCodeBlockContainer)[source]

hwt.serializer.vhdl.types module

class hwt.serializer.vhdl.types.ToHdlAstVhdl2008_types[source]

Bases: object

BOOLEAN = <HdlValueId BOOLEAN>
INTEGER = <HdlValueId INTEGER>
SIGNED = <HdlValueId SIGNED>
STD_LOGIC = <HdlValueId STD_LOGIC>
STD_LOGIC_VECTOR = <HdlValueId STD_LOGIC_VECTOR>
STRING = <HdlValueId STRING>
UNSIGNED = <HdlValueId UNSIGNED>
as_hdl_HdlType_array(typ: hwt.hdl.types.array.HArray, declaration=False)[source]
as_hdl_HdlType_bits(typ: hwt.hdl.types.bits.Bits, declaration=False)[source]
as_hdl_HdlType_float(typ: hwt.hdl.types.float.HFloat, declaration=False)[source]
as_hdl_HdlType_str(typ, declaration=False)[source]

hwt.serializer.vhdl.value module

class hwt.serializer.vhdl.value.ToHdlAstVhdl2008_Value[source]

Bases: hwt.serializer.generic.value.ToHdlAst_Value

FALSE = <HdlValueId FALSE>
TRUE = <HdlValueId TRUE>
as_hdl_BitString(v, width: int, force_vector: bool, vld_mask: int, signed)[source]
as_hdl_BitsVal(val: hwt.hdl.types.bitsVal.BitsVal)[source]
as_hdl_BoolVal(val: hwt.hdl.types.bitsVal.BitsVal)[source]
as_hdl_HArrayVal(val)[source]
as_hdl_HEnumVal(val: hwt.hdl.types.enumVal.HEnumVal)[source]
as_hdl_HSliceVal(val: hwt.hdl.types.sliceVal.HSliceVal)[source]
as_hdl_cond(c, forceBool)[source]
sensitivityListItem(item, anyIsEventDependnt)[source]