Support `longint` typespec Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
diff --git a/systemverilog-plugin/UhdmAst.cc b/systemverilog-plugin/UhdmAst.cc index 9ed5156..62f7d67 100644 --- a/systemverilog-plugin/UhdmAst.cc +++ b/systemverilog-plugin/UhdmAst.cc
@@ -3427,6 +3427,16 @@ current_node->is_signed = true; } +void UhdmAst::process_longint_typespec() +{ + std::vector<AST::AstNode *> packed_ranges; // comes before wire name + std::vector<AST::AstNode *> unpacked_ranges; // comes after wire name + current_node = make_ast_node(AST::AST_WIRE); + packed_ranges.push_back(make_range(63, 0)); + add_multirange_wire(current_node, packed_ranges, unpacked_ranges); + current_node->is_signed = true; +} + void UhdmAst::process_byte_typespec() { std::vector<AST::AstNode *> packed_ranges; // comes before wire name @@ -3616,6 +3626,7 @@ case vpiUnionVar: case vpiEnumVar: case vpiShortIntVar: + case vpiLongIntVar: case vpiIntVar: case vpiIntegerVar: break; @@ -4098,6 +4109,9 @@ case vpiShortIntTypespec: process_shortint_typespec(); break; + case vpiLongIntTypespec: + process_longint_typespec(); + break; case vpiTimeTypespec: process_time_typespec(); break;
diff --git a/systemverilog-plugin/UhdmAst.h b/systemverilog-plugin/UhdmAst.h index cc84979..af0b808 100644 --- a/systemverilog-plugin/UhdmAst.h +++ b/systemverilog-plugin/UhdmAst.h
@@ -127,6 +127,7 @@ void process_logic_typespec(); void process_int_typespec(); void process_shortint_typespec(); + void process_longint_typespec(); void process_time_typespec(); void process_bit_typespec(); void process_string_var();