m2isar.frontends.coredsl2.architecture_model_builder ==================================================== .. py:module:: m2isar.frontends.coredsl2.architecture_model_builder Attributes ---------- .. autoapisummary:: m2isar.frontends.coredsl2.architecture_model_builder.logger Classes ------- .. autoapisummary:: m2isar.frontends.coredsl2.architecture_model_builder.ArchitectureModelBuilder Module Contents --------------- .. py:data:: logger .. py:class:: ArchitectureModelBuilder Bases: :py:obj:`m2isar.frontends.coredsl2.parser_gen.CoreDSL2Visitor` .. autoapi-inheritance-diagram:: m2isar.frontends.coredsl2.architecture_model_builder.ArchitectureModelBuilder :parts: 1 :private-bases: ANTLR visitor to build an M2-ISA-R architecture model of a CoreDSL 2 specification. .. py:attribute:: _constants :type: dict[str, arch.Constant] .. py:attribute:: _instructions :type: dict[str, arch.Instruction] .. py:attribute:: _functions :type: dict[str, arch.Function] .. py:attribute:: _always_blocks :type: dict[str, arch.AlwaysBlock] .. py:attribute:: _instruction_sets :type: dict[str, arch.InstructionSet] .. py:attribute:: _read_types :type: dict[str, str] .. py:attribute:: _memories :type: dict[str, arch.Memory] .. py:attribute:: _memory_aliases :type: dict[str, arch.Memory] .. py:attribute:: _overwritten_instrs :type: list[tuple[arch.Instruction, arch.Instruction]] .. py:attribute:: _instr_classes :type: set[int] .. py:attribute:: _main_reg_file :type: Union[m2isar.metamodel.arch.Memory, None] .. py:method:: visitBit_field(ctx: m2isar.frontends.coredsl2.parser_gen.CoreDSL2Parser.Bit_fieldContext) Generate a bit field (instruction parameter in encoding). .. py:method:: visitBit_value(ctx: m2isar.frontends.coredsl2.parser_gen.CoreDSL2Parser.Bit_valueContext) Generate a fixed encoding part. .. py:method:: visitInstruction_set(ctx: m2isar.frontends.coredsl2.parser_gen.CoreDSL2Parser.Instruction_setContext) Generate a top-level instruction set object. .. py:method:: visitSection_instructions(ctx: m2isar.frontends.coredsl2.parser_gen.CoreDSL2Parser.Section_instructionsContext) .. py:method:: visitCore_def(ctx: m2isar.frontends.coredsl2.parser_gen.CoreDSL2Parser.Core_defContext) Generate a top-level CoreDef object. .. py:method:: visitSection_arch_state(ctx: m2isar.frontends.coredsl2.parser_gen.CoreDSL2Parser.Section_arch_stateContext) Generate "archictectural_state" section of CoreDSL file. .. py:method:: visitAlways_block(ctx: m2isar.frontends.coredsl2.parser_gen.CoreDSL2Parser.Always_blockContext) Generate always block .. py:method:: visitInstruction(ctx: m2isar.frontends.coredsl2.parser_gen.CoreDSL2Parser.InstructionContext) Generate non-behavioral parts of an instruction. .. py:method:: visitFunction_definition(ctx: m2isar.frontends.coredsl2.parser_gen.CoreDSL2Parser.Function_definitionContext) Generate non-behavioral parts of a function. .. py:method:: visitParameter_declaration(ctx: m2isar.frontends.coredsl2.parser_gen.CoreDSL2Parser.Parameter_declarationContext) Generate function argument declaration. .. py:method:: visitInteger_constant(ctx: m2isar.frontends.coredsl2.parser_gen.CoreDSL2Parser.Integer_constantContext) Generate an integer literal. .. py:method:: visitDeclaration(ctx: m2isar.frontends.coredsl2.parser_gen.CoreDSL2Parser.DeclarationContext) Generate a declaration. .. py:method:: visitType_specifier(ctx: m2isar.frontends.coredsl2.parser_gen.CoreDSL2Parser.Type_specifierContext) .. py:method:: visitInteger_type(ctx: m2isar.frontends.coredsl2.parser_gen.CoreDSL2Parser.Integer_typeContext) Generate an integer type specification. .. py:method:: visitVoid_type(ctx: m2isar.frontends.coredsl2.parser_gen.CoreDSL2Parser.Void_typeContext) Generate a void type. .. py:method:: visitBool_type(ctx: m2isar.frontends.coredsl2.parser_gen.CoreDSL2Parser.Bool_typeContext) Generate a bool (alias for unsigned<1>). .. py:method:: visitBinary_expression(ctx: m2isar.frontends.coredsl2.parser_gen.CoreDSL2Parser.Binary_expressionContext) Generate a binary expression. .. py:method:: visitSlice_expression(ctx: m2isar.frontends.coredsl2.parser_gen.CoreDSL2Parser.Slice_expressionContext) .. py:method:: visitPrefix_expression(ctx: m2isar.frontends.coredsl2.parser_gen.CoreDSL2Parser.Prefix_expressionContext) .. py:method:: visitReference_expression(ctx: m2isar.frontends.coredsl2.parser_gen.CoreDSL2Parser.Reference_expressionContext) Generate a referencing expression. .. py:method:: visitStorage_class_specifier(ctx: m2isar.frontends.coredsl2.parser_gen.CoreDSL2Parser.Storage_class_specifierContext) .. py:method:: visitType_qualifier(ctx: m2isar.frontends.coredsl2.parser_gen.CoreDSL2Parser.Type_qualifierContext) .. py:method:: visitInteger_signedness(ctx: m2isar.frontends.coredsl2.parser_gen.CoreDSL2Parser.Integer_signednessContext) .. py:method:: visitInteger_shorthand(ctx: m2isar.frontends.coredsl2.parser_gen.CoreDSL2Parser.Integer_shorthandContext) .. py:method:: visitAssignment_expression(ctx: m2isar.frontends.coredsl2.parser_gen.CoreDSL2Parser.Assignment_expressionContext) Generate an assignment. .. py:method:: visitAttribute(ctx: m2isar.frontends.coredsl2.parser_gen.CoreDSL2Parser.AttributeContext) Generate an attribute. .. py:method:: visitChildren(node) Helper method to return flatter results on tree visits. .. py:method:: aggregateResult(aggregate, nextResult) Aggregate results from multiple children into a list.