hwt.serializer.systemC package

SystemC serializer serializes HDL objects to systemC code.

class hwt.serializer.systemC.SystemCSerializer[source]

Bases: hwt.serializer.serializer_config.DummySerializerConfig

TO_CONSTRAINTS

alias of hwt.serializer.xdc.serializer.XdcSerializer

TO_HDL

alias of hdlConvertorAst.to.systemc._main.ToSystemc

TO_HDL_AST

alias of hwt.serializer.systemC.serializer.ToHdlAstSystemC

fileExtension = '.cpp'

Submodules

hwt.serializer.systemC.expr module

class hwt.serializer.systemC.expr.ToHdlAstSystemC_expr[source]

Bases: hwt.serializer.generic.value.ToHdlAst_Value

as_hdl_BitsVal(val)[source]
as_hdl_HArrayVal(val)[source]
as_hdl_HEnumVal(val: hwt.hdl.types.enumVal.HEnumVal)[source]
as_hdl_Operator(op: hwt.hdl.operator.Operator)[source]
as_hdl_SignalItem(si: hwt.hdl.variables.SignalItem, declaration=False)[source]
as_hdl_Value(v)[source]
Parameters:
  • dst – is signal connected with value
  • val – value object, can be instance of Signal or HValue
as_hdl_operand(operand: Union[hwt.synthesizer.rtlLevel.rtlSignal.RtlSignal, hwt.hdl.value.HValue], i: int, operator: hwt.hdl.operator.Operator)[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>}
static_cast = <HdlValueId static_cast>

hwt.serializer.systemC.serializer module

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

Bases: hwt.serializer.systemC.expr.ToHdlAstSystemC_expr, hwt.serializer.systemC.type.ToHdlAstSystemC_type, hwt.serializer.systemC.statements.ToHdlAstSystemC_statements, hwt.serializer.generic.to_hdl_ast.ToHdlAst

Serialized used to convert HWT design to SystemC code

__init__(name_scope: Optional[hdlConvertorAst.translate.common.name_scope.NameScope] = None)[source]

Initialize self. See help(type(self)) for accurate signature.

_keywords_dict = {'SC_BIN': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'SC_CTHREAD': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'SC_CTOR': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'SC_DEC': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'SC_HEX': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'SC_METHOD': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'SC_MODULE': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'SC_OCT': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'SC_THREAD': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'alignas': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'alignof': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'and': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'and_eq': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'asm': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'atomic_cancel': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'atomic_commit': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'atomic_noexcept': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'auto': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'bitand': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'bitor': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'bool': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'break': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'case': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'catch': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'char': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'char16_t': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'char32_t': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'class': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'compl': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'concept': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'const': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'const_cast': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'constexpr': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'continue': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'decltype': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'default': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'delete': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'do': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'double': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'dynamic_cast': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'else': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'enum': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'explicit': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'export': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'extern': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'false': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'float': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'for': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'friend': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'goto': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'if': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'import': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'inline': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'int': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'long': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'module': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'mutable': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'namespace': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'new': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'noexcept': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'not': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'not_eq': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'notify': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'nullptr': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'operator': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'or': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'or_eq': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'private': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'protected': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'public': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'register': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'reinterpret_cast': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'requires': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'return': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'sc_bigint': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'sc_biguint': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'sc_bit': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'sc_bv': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'sc_create_vcd_trace_file': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'sc_event': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'sc_fixed': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'sc_in': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'sc_inout': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'sc_inout_clk': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'sc_inout_resolve': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'sc_inout_rv': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'sc_int': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'sc_logic': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'sc_lv': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'sc_module': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'sc_out': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'sc_out_clk': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'sc_out_resolved': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'sc_out_rv': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'sc_signal': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'sc_signal_resolved': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'sc_signal_rv': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'sc_trace': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'sc_trace_file': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'sensitive': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'short': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'signed': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'sizeof': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'static': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'static_assert': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'static_cast': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'std': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'struct': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'switch': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'synchronized': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'template': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'this': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'thread_local': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'throw': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'true': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'try': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'typedef': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'typeid': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'typename': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'union': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'unsigned': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'using': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'virtual': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'void': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'volatile': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'wchar_t': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'while': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'xor': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>, 'xor_eq': <hdlConvertorAst.translate.common.name_scope.LanguageKeyword object>}
as_hdl_HdlCompInst(o: hdlConvertorAst.hdlAst._structural.HdlCompInst) → hdlConvertorAst.hdlAst._structural.HdlCompInst[source]
as_hdl_HdlModuleDec(o: hdlConvertorAst.hdlAst._structural.HdlModuleDec)[source]
as_hdl_HdlPortItem(o: hwt.hdl.portItem.HdlPortItem)[source]
sc_in = <HdlValueId sc_in>
sc_in_clk = <HdlValueId sc_in_clk>
sc_inout = <HdlValueId sc_inout>
sc_inout_clk = <HdlValueId sc_inout_clk>
sc_out = <HdlValueId sc_out>
sc_out_clk = <HdlValueId sc_out_clk>

hwt.serializer.systemC.statements module

class hwt.serializer.systemC.statements.ToHdlAstSystemC_statements[source]

Bases: object

_as_hdl_HdlAssignmentContainer(dst, typeOfDst, src)[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]

Same as parent as_hdl_SwitchContainer but add “break” to all cases

can_pop_process_wrap(statements, hasToBeVhdlProcess)[source]
has_to_be_process(proc: hdlConvertorAst.hdlAst._bases.iHdlStatement)[source]
sensitivityListItem(item, anyIsEventDependent)[source]

hwt.serializer.systemC.type module

class hwt.serializer.systemC.type.ToHdlAstSystemC_type[source]

Bases: object

STRING
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_enum(typ: hwt.hdl.types.enum.HEnum, declaration=False)[source]
as_hdl_HdlType_float(typ: hwt.hdl.types.float.HFloat, declaration=False)[source]
as_hdl_HdlType_str(typ, declaration=False)[source]
does_type_requires_extra_def(t, other_types)[source]
sc_bigint = <HdlValueId sc_bigint>
sc_biguint = <HdlValueId sc_biguint>
sc_int = <HdlValueId sc_int>
sc_signal = <HdlValueId sc_signal>
sc_uint = <HdlValueId sc_uint>

hwt.serializer.systemC.utils module

hwt.serializer.systemC.utils.systemCTypeOfSig(s)[source]

Check if is register or wire