hdlConvertorAst.to.hwt package

Convert HdlConvertor AST to a HWT component declarations

Submodules

hdlConvertorAst.to.hwt.expr module

class hdlConvertorAst.to.hwt.expr.ToHwtExpr(out_stream)[source]

Bases: hdlConvertorAst.to.basic_hdl_sim_model.expr.ToBasicHdlSimModelExpr

GENERIC_BIN_OPS = {<HdlOpType.AND: 18>: ' & ', <HdlOpType.OR: 19>: ' | ', <HdlOpType.XOR: 22>: ' ^ ', <HdlOpType.EQ: 36>: ' == ', <HdlOpType.NE: 37>: ' != ', <HdlOpType.IS: 38>: ' is ', <HdlOpType.IS_NOT: 39>: ' is not ', <HdlOpType.MUL: 5>: ' * ', <HdlOpType.DIV: 4>: ' // ', <HdlOpType.POW: 8>: ' ** ', <HdlOpType.MOD: 6>: ' % ', <HdlOpType.SLL: 30>: ' << ', <HdlOpType.SRL: 31>: ' >> ', <HdlOpType.ADD: 3>: ' + ', <HdlOpType.SUB: 2>: ' - ', <HdlOpType.LT: 40>: ' < ', <HdlOpType.LE: 41>: ' <= ', <HdlOpType.GT: 42>: ' > ', <HdlOpType.GE: 43>: ' >= ', <HdlOpType.DOT: 55>: '.', <HdlOpType.DOWNTO: 78>: ':'}
OP_PRECEDENCE = {<HdlOpType.EQ: 36>: (11, <ASSOCIATIVITY.L_TO_R: 'L_TO_R'>), <HdlOpType.NE: 37>: (11, <ASSOCIATIVITY.L_TO_R: 'L_TO_R'>), <HdlOpType.GT: 42>: (11, <ASSOCIATIVITY.L_TO_R: 'L_TO_R'>), <HdlOpType.LT: 40>: (11, <ASSOCIATIVITY.L_TO_R: 'L_TO_R'>), <HdlOpType.GE: 43>: (11, <ASSOCIATIVITY.L_TO_R: 'L_TO_R'>), <HdlOpType.LE: 41>: (11, <ASSOCIATIVITY.L_TO_R: 'L_TO_R'>), <HdlOpType.IS: 38>: (11, <ASSOCIATIVITY.L_TO_R: 'L_TO_R'>), <HdlOpType.IS_NOT: 39>: (11, <ASSOCIATIVITY.L_TO_R: 'L_TO_R'>), <HdlOpType.OR: 19>: (10, <ASSOCIATIVITY.L_TO_R: 'L_TO_R'>), <HdlOpType.XOR: 22>: (10, <ASSOCIATIVITY.L_TO_R: 'L_TO_R'>), <HdlOpType.AND: 18>: (9, <ASSOCIATIVITY.L_TO_R: 'L_TO_R'>), <HdlOpType.SLL: 30>: (8, <ASSOCIATIVITY.L_TO_R: 'L_TO_R'>), <HdlOpType.SRL: 31>: (8, <ASSOCIATIVITY.L_TO_R: 'L_TO_R'>), <HdlOpType.ADD: 3>: (7, <ASSOCIATIVITY.L_TO_R: 'L_TO_R'>), <HdlOpType.SUB: 2>: (7, <ASSOCIATIVITY.L_TO_R: 'L_TO_R'>), <HdlOpType.DIV: 4>: (6, <ASSOCIATIVITY.L_TO_R: 'L_TO_R'>), <HdlOpType.MUL: 5>: (6, <ASSOCIATIVITY.L_TO_R: 'L_TO_R'>), <HdlOpType.MOD: 6>: (6, <ASSOCIATIVITY.L_TO_R: 'L_TO_R'>), <HdlOpType.NEG_LOG: 14>: (5, <ASSOCIATIVITY.R_TO_L: 'R_TO_L'>), <HdlOpType.NEG: 15>: (5, <ASSOCIATIVITY.R_TO_L: 'R_TO_L'>), <HdlOpType.MINUS_UNARY: 0>: (5, <ASSOCIATIVITY.R_TO_L: 'R_TO_L'>), <HdlOpType.POW: 8>: (4, <ASSOCIATIVITY.R_TO_L: 'R_TO_L'>), <HdlOpType.INDEX: 50>: (1, <ASSOCIATIVITY.L_TO_R: 'L_TO_R'>), <HdlOpType.RISING: 76>: (1, <ASSOCIATIVITY.L_TO_R: 'L_TO_R'>), <HdlOpType.FALLING: 77>: (1, <ASSOCIATIVITY.L_TO_R: 'L_TO_R'>), <HdlOpType.CALL: 75>: (1, <ASSOCIATIVITY.L_TO_R: 'L_TO_R'>), <HdlOpType.PARAMETRIZATION: 80>: (1, <ASSOCIATIVITY.L_TO_R: 'L_TO_R'>), <HdlOpType.DOT: 55>: (1, <ASSOCIATIVITY.L_TO_R: 'L_TO_R'>), <HdlOpType.DOWNTO: 78>: (1, <ASSOCIATIVITY.L_TO_R: 'L_TO_R'>)}
visit_HdlOp(o)[source]

hdlConvertorAst.to.hwt.keywords module

hdlConvertorAst.to.hwt.stm module

class hdlConvertorAst.to.hwt.stm.ToHwtStm(out_stream)[source]

Bases: hdlConvertorAst.to.hwt.expr.ToHwtExpr

visit_HdlStmAssign(o)[source]
visit_HdlStmBlock(o)[source]
visit_HdlStmBreak(o)[source]
visit_HdlStmCase(o)[source]
visit_HdlStmContinue(o)[source]
visit_HdlStmFor(o)[source]
visit_HdlStmIf(o)[source]
visit_HdlStmNop(o)[source]
visit_HdlStmProcess(o)[source]
visit_HdlStmThrow(o)[source]
visit_HdlStmWait(o)[source]
visit_HdlStmWhile(o)[source]

hdlConvertorAst.to.hwt.utils module

hdlConvertorAst.to.hwt.utils.BitsT(width, is_signed=False, bits_cls_name='Bits')[source]

Create an AST expression of Bits type constructor (reg/std_logic_vector equivalent for hwt)