diff --git a/.vscode/launch.json b/.vscode/launch.json index edbf06c49e..3f13a84951 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -889,6 +889,44 @@ } ] }, + { + "name": "ScratchPad_NoUHDMElab", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/dbuild/bin/surelog", + "args": ["-parse", "tests/ScratchPad.sv", "-d", "inst", "-synth", "-d", "ast", "-d", "uhdm", "-d", "uhdmstats", "-d", "vpi_ids", "-replay", "-nobuiltin"], + "stopAtEntry": false, + "cwd": "${workspaceFolder}", + "environment": [], + "externalConsole": false, + "MIMode": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ] + }, + { + "name": "kmac", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/dbuild/bin/surelog", + "args": ["-parse", "sha3_pkg.sv", "kmac_core.sv", "kmac.sv", "-top", "kmac", "-d", "inst", "-synth", "-d", "ast", "-d", "uhdm", "-d", "uhdmstats", "-d", "vpi_ids", "-elabuhdm", "-nobuiltin"], + "stopAtEntry": false, + "cwd": "/home/alain/os-fpga/Raptor/tests/Testcases/kmac", + "environment": [], + "externalConsole": false, + "MIMode": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ] + }, { "name": "ScratchPad_v", "type": "cppdbg", diff --git a/include/Surelog/DesignCompile/UhdmWriter.h b/include/Surelog/DesignCompile/UhdmWriter.h index 3618aec017..b37b92e0b4 100644 --- a/include/Surelog/DesignCompile/UhdmWriter.h +++ b/include/Surelog/DesignCompile/UhdmWriter.h @@ -84,6 +84,7 @@ class UhdmWriter final { void writeDataTypes(const DesignComponent::DataTypeMap& datatypeMap, UHDM::BaseClass* parent, UHDM::VectorOftypespec* dest_typespecs, UHDM::Serializer& s, bool setParent); + void writeImportedSymbols(DesignComponent* mod, UHDM::Serializer& s, UHDM::VectorOftypespec* typespecs); void writeVariables(const DesignComponent::VariableMap& orig_vars, UHDM::BaseClass* parent, UHDM::VectorOfvariables* dest_vars, UHDM::Serializer& s); diff --git a/src/DesignCompile/UhdmWriter.cpp b/src/DesignCompile/UhdmWriter.cpp index b9abb0bd9e..49401dd735 100644 --- a/src/DesignCompile/UhdmWriter.cpp +++ b/src/DesignCompile/UhdmWriter.cpp @@ -1075,12 +1075,10 @@ void UhdmWriter::writePackage(Package* pack, package* p, Serializer& s, VectorOftypespec* typespecs = s.MakeTypespecVec(); p->Typespecs(typespecs); writeDataTypes(pack->getDataTypeMap(), p, typespecs, s, true); + writeImportedSymbols(pack, s, typespecs); for (auto tp : *typespecs) { tp->Instance(p); } - for (auto item : pack->getImportedSymbols()) { - typespecs->push_back(item); - } // Classes ClassNameClassDefinitionMultiMap& orig_classes = pack->getClassDefinitions(); dest_classes = s.MakeClass_defnVec(); @@ -1194,6 +1192,101 @@ void UhdmWriter::writePackage(Package* pack, package* p, Serializer& s, lateBinding(s, pack, p); } +void UhdmWriter::writeImportedSymbols(DesignComponent* mod, Serializer& s, + VectorOftypespec* typespecs) { + for (auto item : mod->getImportedSymbols()) { + bool append = true; + for (auto tpsiter : *typespecs) { + if (item->VpiName() == tpsiter->VpiName()) { + append = false; + break; + } + } + if (append) { // Prevents multiple definition + typespecs->push_back(item); + } + constant* c = item->Item(); + if (c) { + std::string_view packName = item->VpiName(); + std::string_view typeName = c->VpiDecompile(); + Package* pack = + m_compileDesign->getCompiler()->getDesign()->getPackage(packName); + if (pack) { + const auto& itr = m_componentMap.find(pack); + if (itr != m_componentMap.end()) { + package* p = (package*)itr->second; + typespec* tps = nullptr; + enum_const* cts = nullptr; + if (p->Typespecs()) { + for (auto n : *p->Typespecs()) { + if (n->VpiName() == typeName) { + tps = n; + break; + } + const std::string pname = StrCat(p->VpiName(), "::", typeName); + if (n->VpiName() == pname) { + tps = n; + break; + } + if (n->UhdmType() == uhdmenum_typespec) { + enum_typespec* tpsiter = any_cast(n); + if (tpsiter && tpsiter->Enum_consts()) { + for (auto c : *tpsiter->Enum_consts()) { + if (c->VpiName() == typeName) { + cts = c; + tps = tpsiter; + break; + } + if (pname == c->VpiName()) { + cts = c; + tps = tpsiter; + break; + } + } + } + } + if (cts) break; + } + } + if (cts) { + // Ideally we would want to import only the given symbol, + // But Synlig does not process that properly, so instead we import + // the whole enum + bool append = true; + for (auto tpsiter : *typespecs) { + if (tps->VpiName() == tpsiter->VpiName()) { + append = false; + break; + } + } + if (append) { // Prevents multiple definition + ElaboratorContext elaboratorContext(&s, false, true); + typespec* item = + (typespec*)UHDM::clone_tree(tps, &elaboratorContext); + typespecs->push_back(item); + } + } else if (tps) { + bool append = true; + for (auto tpsiter : *typespecs) { + if (tps->VpiName() == tpsiter->VpiName()) { + append = false; + break; + } + } + if (append) { // Prevents multiple definition + ElaboratorContext elaboratorContext(&s, false, true); + typespec* item = + (typespec*)UHDM::clone_tree(tps, &elaboratorContext); + item->VpiName(typeName); + typespecs->push_back(item); + } + } + } + } + } + } +} + void UhdmWriter::writeModule(ModuleDefinition* mod, module_inst* m, Serializer& s, ModuleMap& moduleMap, ModPortMap& modPortMap, ModuleInstance* instance) { @@ -1240,9 +1333,7 @@ void UhdmWriter::writeModule(ModuleDefinition* mod, module_inst* m, VectorOftypespec* typespecs = s.MakeTypespecVec(); m->Typespecs(typespecs); writeDataTypes(mod->getDataTypeMap(), m, typespecs, s, true); - for (auto item : mod->getImportedSymbols()) { - typespecs->push_back(item); - } + writeImportedSymbols(mod, s, typespecs); // Ports std::vector& orig_ports = mod->getPorts(); VectorOfport* dest_ports = s.MakePortVec(); @@ -1465,9 +1556,7 @@ void UhdmWriter::writeInterface(ModuleDefinition* mod, interface_inst* m, VectorOftypespec* typespecs = s.MakeTypespecVec(); m->Typespecs(typespecs); writeDataTypes(mod->getDataTypeMap(), m, typespecs, s, true); - for (auto item : mod->getImportedSymbols()) { - typespecs->push_back(item); - } + writeImportedSymbols(mod, s, typespecs); // Ports std::vector& orig_ports = mod->getPorts(); VectorOfport* dest_ports = s.MakePortVec(); @@ -1604,9 +1693,7 @@ void UhdmWriter::writeProgram(Program* mod, program* m, Serializer& s, VectorOftypespec* typespecs = s.MakeTypespecVec(); m->Typespecs(typespecs); writeDataTypes(mod->getDataTypeMap(), m, typespecs, s, true); - for (auto item : mod->getImportedSymbols()) { - typespecs->push_back(item); - } + writeImportedSymbols(mod, s, typespecs); // Ports std::vector& orig_ports = mod->getPorts(); VectorOfport* dest_ports = s.MakePortVec(); @@ -1732,9 +1819,7 @@ bool UhdmWriter::writeElabProgram(Serializer& s, ModuleInstance* instance, VectorOftypespec* typespecs = s.MakeTypespecVec(); m->Typespecs(typespecs); writeDataTypes(mod->getDataTypeMap(), m, typespecs, s, false); - for (auto item : mod->getImportedSymbols()) { - typespecs->push_back(item); - } + writeImportedSymbols(mod, s, typespecs); // Assertions if (mod->getAssertions()) { m->Assertions(mod->getAssertions()); @@ -2137,9 +2222,7 @@ bool UhdmWriter::writeElabGenScope(Serializer& s, ModuleInstance* instance, VectorOftypespec* typespecs = s.MakeTypespecVec(); m->Typespecs(typespecs); writeDataTypes(mod->getDataTypeMap(), m, typespecs, s, true); - for (auto item : mod->getImportedSymbols()) { - typespecs->push_back(item); - } + writeImportedSymbols(mod, s, typespecs); // System elab tasks m->Elab_tasks((std::vector*)&mod->getElabSysCalls()); if (m->Elab_tasks()) { @@ -3606,7 +3689,9 @@ void UhdmWriter::lateBinding(Serializer& s, DesignComponent* mod, scope* m) { const any* lhs = p->Lhs(); if (lhs->VpiName() == name) { // Do not bind blindly here, let the uhdmelab do this correctly - // ref->Actual_group((any*)p->Rhs()); + // Unless we are in a package + if (m && m->UhdmType() == uhdmpackage) + ref->Actual_group((any*)p->Rhs()); isParam = true; break; } @@ -3736,6 +3821,18 @@ void UhdmWriter::lateBinding(Serializer& s, DesignComponent* mod, scope* m) { } } + if (!ref->Actual_group()) { + Value* value = mod->getValue(name); + if (value && value->isValid()) { + enum_const* c = s.MakeEnum_const(); + c->VpiName(name); + c->VpiValue(value->uhdmValue()); + c->VpiDecompile(value->decompiledValue()); + c->VpiSize(value->getSize()); + c->VpiParent(ref); + ref->Actual_group(c); + } + } if (!ref->Actual_group()) { if (mod) { if (auto elem = mod->getDesignElement()) { @@ -3813,9 +3910,7 @@ bool UhdmWriter::writeElabModule(Serializer& s, ModuleInstance* instance, VectorOftypespec* typespecs = s.MakeTypespecVec(); m->Typespecs(typespecs); writeDataTypes(mod->getDataTypeMap(), m, typespecs, s, false); - for (auto item : mod->getImportedSymbols()) { - typespecs->push_back(item); - } + writeImportedSymbols(mod, s, typespecs); // System elab tasks m->Elab_tasks((std::vector*)&mod->getElabSysCalls()); if (m->Elab_tasks()) { @@ -3963,9 +4058,7 @@ bool UhdmWriter::writeElabInterface(Serializer& s, ModuleInstance* instance, VectorOftypespec* typespecs = s.MakeTypespecVec(); m->Typespecs(typespecs); writeDataTypes(mod->getDataTypeMap(), m, typespecs, s, false); - for (auto item : mod->getImportedSymbols()) { - typespecs->push_back(item); - } + writeImportedSymbols(mod, s, typespecs); // System elab tasks m->Elab_tasks((std::vector*)&mod->getElabSysCalls()); if (m->Elab_tasks()) { diff --git a/tests/AssignSubs/AssignSubs.log b/tests/AssignSubs/AssignSubs.log index ab5fdc317c..8835ae35cc 100644 --- a/tests/AssignSubs/AssignSubs.log +++ b/tests/AssignSubs/AssignSubs.log @@ -187,7 +187,7 @@ begin 3 bit_select 2 constant 27 design 1 -enum_const 2 +enum_const 3 enum_typespec 2 event_control 2 gen_for 1 @@ -220,7 +220,7 @@ begin 4 bit_select 3 constant 27 design 1 -enum_const 2 +enum_const 3 enum_typespec 2 event_control 3 gen_for 1 diff --git a/tests/BlockingAssignRewrite/BlockingAssignRewrite.log b/tests/BlockingAssignRewrite/BlockingAssignRewrite.log index 698428a979..2f27e890b2 100644 --- a/tests/BlockingAssignRewrite/BlockingAssignRewrite.log +++ b/tests/BlockingAssignRewrite/BlockingAssignRewrite.log @@ -1023,8 +1023,6 @@ ref_obj 106 ref_typespec 95 ref_var 2 === UHDM Object Stats End === -Converting blocking to non-blocking assignment to enable RAM inference for RAM -Converting blocking to non-blocking assignment to enable RAM inference for RAM [INF:UH0708] Writing UHDM DB: ${SURELOG_DIR}/build/regression/BlockingAssignRewrite/slpp_all/surelog.uhdm ... [INF:UH0709] Writing UHDM Html Coverage: ${SURELOG_DIR}/build/regression/BlockingAssignRewrite/slpp_all/checker/surelog.chk.html ... [INF:UH0710] Loading UHDM DB: ${SURELOG_DIR}/build/regression/BlockingAssignRewrite/slpp_all/surelog.uhdm ... diff --git a/tests/EarlgreyPackParam/EarlgreyPackParam.log b/tests/EarlgreyPackParam/EarlgreyPackParam.log index 28c010d6f8..a8070fba16 100644 --- a/tests/EarlgreyPackParam/EarlgreyPackParam.log +++ b/tests/EarlgreyPackParam/EarlgreyPackParam.log @@ -2351,5 +2351,5 @@ design: (work@test) [ NOTE] : 7 ============================== Begin RoundTrip Results ============================== -[roundtrip]: ${SURELOG_DIR}/tests/EarlgreyPackParam/dut.sv | ${SURELOG_DIR}/build/regression/EarlgreyPackParam/roundtrip/dut_000.sv | 27 | 60 | +[roundtrip]: ${SURELOG_DIR}/tests/EarlgreyPackParam/dut.sv | ${SURELOG_DIR}/build/regression/EarlgreyPackParam/roundtrip/dut_000.sv | 28 | 60 | ============================== End RoundTrip Results ============================== diff --git a/tests/EnumConstConcat/EnumConstConcat.log b/tests/EnumConstConcat/EnumConstConcat.log index ed76bec914..5d6450be8d 100644 --- a/tests/EnumConstConcat/EnumConstConcat.log +++ b/tests/EnumConstConcat/EnumConstConcat.log @@ -622,5 +622,5 @@ design: (work@top) [ NOTE] : 5 ============================== Begin RoundTrip Results ============================== -[roundtrip]: ${SURELOG_DIR}/tests/EnumConstConcat/dut.sv | ${SURELOG_DIR}/build/regression/EnumConstConcat/roundtrip/dut_000.sv | 3 | 28 | +[roundtrip]: ${SURELOG_DIR}/tests/EnumConstConcat/dut.sv | ${SURELOG_DIR}/build/regression/EnumConstConcat/roundtrip/dut_000.sv | 4 | 28 | ============================== End RoundTrip Results ============================== diff --git a/tests/LogicArrayParam/LogicArrayParam.log b/tests/LogicArrayParam/LogicArrayParam.log index d0d28a7374..b5b4337426 100644 --- a/tests/LogicArrayParam/LogicArrayParam.log +++ b/tests/LogicArrayParam/LogicArrayParam.log @@ -3964,5 +3964,5 @@ design: (work@alert_handler) [ NOTE] : 5 ============================== Begin RoundTrip Results ============================== -[roundtrip]: ${SURELOG_DIR}/tests/LogicArrayParam/dut.sv | ${SURELOG_DIR}/build/regression/LogicArrayParam/roundtrip/dut_000.sv | 9 | 32 | +[roundtrip]: ${SURELOG_DIR}/tests/LogicArrayParam/dut.sv | ${SURELOG_DIR}/build/regression/LogicArrayParam/roundtrip/dut_000.sv | 10 | 32 | ============================== End RoundTrip Results ============================== diff --git a/tests/MultiConcat/MultiConcat.log b/tests/MultiConcat/MultiConcat.log index a60461b78b..c8f5b8a62f 100644 --- a/tests/MultiConcat/MultiConcat.log +++ b/tests/MultiConcat/MultiConcat.log @@ -7768,5 +7768,5 @@ design: (unnamed) [ NOTE] : 4 ============================== Begin RoundTrip Results ============================== -[roundtrip]: ${SURELOG_DIR}/tests/MultiConcat/dut.sv | ${SURELOG_DIR}/build/regression/MultiConcat/roundtrip/dut_000.sv | 37 | 172 | +[roundtrip]: ${SURELOG_DIR}/tests/MultiConcat/dut.sv | ${SURELOG_DIR}/build/regression/MultiConcat/roundtrip/dut_000.sv | 40 | 172 | ============================== End RoundTrip Results ============================== diff --git a/tests/OneImport/OneImport.log b/tests/OneImport/OneImport.log index 690674beba..b15d0ba6f5 100644 --- a/tests/OneImport/OneImport.log +++ b/tests/OneImport/OneImport.log @@ -491,12 +491,6 @@ design: (work@dut) \_enum_typespec: (my_pkg::opcode_e), line:2:3, endln:5:14 |vpiTypedef: \_import_typespec: (my_pkg), line:12:10, endln:12:19 - |vpiTypedef: - \_import_typespec: (my_pkg), line:13:10, endln:13:26 - |vpiTypedef: - \_import_typespec: (my_pkg), line:13:28, endln:13:47 - |vpiTypedef: - \_import_typespec: (my_pkg), line:13:28, endln:13:47 |vpiDefName:work@dut |vpiNet: \_logic_net: (work@dut.a), line:16:14, endln:16:15 @@ -665,12 +659,6 @@ design: (work@dut) \_enum_typespec: (my_pkg::opcode_e), line:2:3, endln:5:14 |vpiTypedef: \_import_typespec: (my_pkg), line:12:10, endln:12:19 - |vpiTypedef: - \_import_typespec: (my_pkg), line:13:10, endln:13:26 - |vpiTypedef: - \_import_typespec: (my_pkg), line:13:28, endln:13:47 - |vpiTypedef: - \_import_typespec: (my_pkg), line:13:28, endln:13:47 |vpiDefName:work@dut |vpiTop:1 |vpiNet: diff --git a/tests/PackDataType/PackDataType.log b/tests/PackDataType/PackDataType.log index 117f0f4b91..a967af16e3 100644 --- a/tests/PackDataType/PackDataType.log +++ b/tests/PackDataType/PackDataType.log @@ -1895,5 +1895,5 @@ design: (work@kmac_keymgr) ============================== Begin RoundTrip Results ============================== [roundtrip]: ${SURELOG_DIR}/tests/PackDataType/builtin.sv | ${SURELOG_DIR}/build/regression/PackDataType/roundtrip/builtin_000.sv | 0 | 0 | -[roundtrip]: ${SURELOG_DIR}/tests/PackDataType/dut.sv | ${SURELOG_DIR}/build/regression/PackDataType/roundtrip/dut_000.sv | 7 | 24 | +[roundtrip]: ${SURELOG_DIR}/tests/PackDataType/dut.sv | ${SURELOG_DIR}/build/regression/PackDataType/roundtrip/dut_000.sv | 8 | 24 | ============================== End RoundTrip Results ============================== diff --git a/tests/PackStructVar/PackStructVar.log b/tests/PackStructVar/PackStructVar.log index b9bd22f1e9..9d9c4a868d 100644 --- a/tests/PackStructVar/PackStructVar.log +++ b/tests/PackStructVar/PackStructVar.log @@ -2015,5 +2015,5 @@ design: (work@flash_ctrl) [ NOTE] : 5 ============================== Begin RoundTrip Results ============================== -[roundtrip]: ${SURELOG_DIR}/tests/PackStructVar/dut.sv | ${SURELOG_DIR}/build/regression/PackStructVar/roundtrip/dut_000.sv | 7 | 47 | +[roundtrip]: ${SURELOG_DIR}/tests/PackStructVar/dut.sv | ${SURELOG_DIR}/build/regression/PackStructVar/roundtrip/dut_000.sv | 8 | 47 | ============================== End RoundTrip Results ============================== diff --git a/tests/ParamConstPush/ParamConstPush.log b/tests/ParamConstPush/ParamConstPush.log index 9eee8746e3..6ef93adba7 100644 --- a/tests/ParamConstPush/ParamConstPush.log +++ b/tests/ParamConstPush/ParamConstPush.log @@ -770,5 +770,5 @@ design: (work@top) [ NOTE] : 5 ============================== Begin RoundTrip Results ============================== -[roundtrip]: ${SURELOG_DIR}/tests/ParamConstPush/dut.sv | ${SURELOG_DIR}/build/regression/ParamConstPush/roundtrip/dut_000.sv | 2 | 11 | +[roundtrip]: ${SURELOG_DIR}/tests/ParamConstPush/dut.sv | ${SURELOG_DIR}/build/regression/ParamConstPush/roundtrip/dut_000.sv | 3 | 11 | ============================== End RoundTrip Results ============================== diff --git a/tests/ParamOverload3/ParamOverload3.log b/tests/ParamOverload3/ParamOverload3.log index 538d1bc3a7..91c14c6cad 100644 --- a/tests/ParamOverload3/ParamOverload3.log +++ b/tests/ParamOverload3/ParamOverload3.log @@ -3649,5 +3649,5 @@ design: (work@top) ============================== End Linting Results ============================== ============================== Begin RoundTrip Results ============================== -[roundtrip]: ${SURELOG_DIR}/tests/ParamOverload3/dut.sv | ${SURELOG_DIR}/build/regression/ParamOverload3/roundtrip/dut_000.sv | 23 | 64 | +[roundtrip]: ${SURELOG_DIR}/tests/ParamOverload3/dut.sv | ${SURELOG_DIR}/build/regression/ParamOverload3/roundtrip/dut_000.sv | 24 | 64 | ============================== End RoundTrip Results ============================== diff --git a/tests/ParamRef/ParamRef.log b/tests/ParamRef/ParamRef.log index 8849e10c78..0d2ec74c58 100644 --- a/tests/ParamRef/ParamRef.log +++ b/tests/ParamRef/ParamRef.log @@ -927,5 +927,5 @@ design: (work@top_earlgrey) [ NOTE] : 5 ============================== Begin RoundTrip Results ============================== -[roundtrip]: ${SURELOG_DIR}/tests/ParamRef/dut.sv | ${SURELOG_DIR}/build/regression/ParamRef/roundtrip/dut_000.sv | 7 | 27 | +[roundtrip]: ${SURELOG_DIR}/tests/ParamRef/dut.sv | ${SURELOG_DIR}/build/regression/ParamRef/roundtrip/dut_000.sv | 8 | 27 | ============================== End RoundTrip Results ============================== diff --git a/tests/StructVar/StructVar.log b/tests/StructVar/StructVar.log index 33dd80ff48..27e61cf543 100644 --- a/tests/StructVar/StructVar.log +++ b/tests/StructVar/StructVar.log @@ -28,7 +28,7 @@ bit_typespec 5 constant 83 cont_assign 3 design 1 -enum_const 1 +enum_const 3 enum_typespec 1 gen_for 1 gen_scope 4 @@ -67,7 +67,7 @@ bit_typespec 5 constant 83 cont_assign 5 design 1 -enum_const 1 +enum_const 3 enum_typespec 1 gen_for 1 gen_scope 6 @@ -1916,6 +1916,8 @@ design: (work@test) \_operation: , line:62:4, endln:62:37 |vpiName:PMP_MODE_TOR |vpiFullName:work@test.u3.g_pmp_csrs[0].PMP_MODE_TOR + |vpiActual: + \_enum_const: (PMP_MODE_TOR) \_operation: , line:61:24, endln:62:38 |vpiParent: \_cont_assign: , line:61:10, endln:62:38 @@ -2003,6 +2005,8 @@ design: (work@test) \_operation: , line:62:4, endln:62:37 |vpiName:PMP_MODE_TOR |vpiFullName:work@test.u3.g_pmp_csrs[1].PMP_MODE_TOR + |vpiActual: + \_enum_const: (PMP_MODE_TOR) \_operation: , line:61:24, endln:62:38 |vpiParent: \_cont_assign: , line:61:10, endln:62:38 @@ -2087,6 +2091,13 @@ design: (work@test) |vpiGenScope: \_gen_scope: (work@test.u3.g_pmp_csrs[0]), line:59:33, endln:64:5 \_int_typespec: +\_enum_const: (PMP_MODE_TOR) + |vpiParent: + \_ref_obj: (work@test.u3.g_pmp_csrs[0].PMP_MODE_TOR), line:62:25, endln:62:37 + |vpiName:PMP_MODE_TOR + |BIN:01 + |vpiDecompile:2'b01 + |vpiSize:2 \_gen_scope: (work@test.u3.g_pmp_csrs[1]), line:59:33, endln:64:5 |vpiParent: \_gen_scope_array: (work@test.u3.g_pmp_csrs[1]), line:59:33, endln:64:5 @@ -2103,6 +2114,13 @@ design: (work@test) |vpiGenScope: \_gen_scope: (work@test.u3.g_pmp_csrs[1]), line:59:33, endln:64:5 \_int_typespec: +\_enum_const: (PMP_MODE_TOR) + |vpiParent: + \_ref_obj: (work@test.u3.g_pmp_csrs[1].PMP_MODE_TOR), line:62:25, endln:62:37 + |vpiName:PMP_MODE_TOR + |BIN:01 + |vpiDecompile:2'b01 + |vpiSize:2 \_int_typespec: =================== [ FATAL] : 0 diff --git a/third_party/tests/AzadiRTL/AzadiRTL.log b/third_party/tests/AzadiRTL/AzadiRTL.log index 6cb2ff3e0f..ced233a881 100644 --- a/third_party/tests/AzadiRTL/AzadiRTL.log +++ b/third_party/tests/AzadiRTL/AzadiRTL.log @@ -13827,7 +13827,7 @@ constant 274311 cont_assign 7035 delay_control 4 design 1 -enum_const 53131 +enum_const 53149 enum_typespec 16315 enum_var 156 event_control 383 @@ -13853,7 +13853,7 @@ int_var 272 integer_typespec 256 integer_var 20 io_decl 197 -logic_net 10750 +logic_net 10748 logic_typespec 63995 logic_var 4577 long_int_typespec 6 @@ -13908,7 +13908,7 @@ constant 275928 cont_assign 15432 delay_control 8 design 1 -enum_const 53136 +enum_const 53154 enum_typespec 16316 enum_var 184 event_control 1490 @@ -13934,7 +13934,7 @@ int_var 528 integer_typespec 256 integer_var 78 io_decl 485 -logic_net 10750 +logic_net 10748 logic_typespec 63995 logic_var 6546 long_int_typespec 6 diff --git a/third_party/tests/CoresSweRV/CoresSweRV.log b/third_party/tests/CoresSweRV/CoresSweRV.log index 4378993f2f..609889ebfa 100644 --- a/third_party/tests/CoresSweRV/CoresSweRV.log +++ b/third_party/tests/CoresSweRV/CoresSweRV.log @@ -2434,7 +2434,7 @@ delay_control 54 design 1 disable_fork 5 do_while 51 -enum_const 503 +enum_const 1087 enum_typespec 94 enum_var 196 event_control 70 @@ -2540,7 +2540,7 @@ delay_control 170 design 1 disable_fork 15 do_while 146 -enum_const 663 +enum_const 1247 enum_typespec 165 enum_var 1653 event_control 132 diff --git a/third_party/tests/CoresSweRVMP/CoresSweRVMP.log b/third_party/tests/CoresSweRVMP/CoresSweRVMP.log index 2631215223..6baf190014 100644 --- a/third_party/tests/CoresSweRVMP/CoresSweRVMP.log +++ b/third_party/tests/CoresSweRVMP/CoresSweRVMP.log @@ -65,21 +65,21 @@ Running: cd ${SURELOG_DIR}/build/regression/CoresSweRVMP/slpp_all/mp_preprocess; -- Generating done -- Build files have been written to: ${SURELOG_DIR}/build/regression/CoresSweRVMP/slpp_all/mp_preprocess [ 6%] Generating 10_lsu_bus_intf.sv -[ 12%] Generating 11_ifu_bp_ctl.sv -[ 18%] Generating 12_beh_lib.sv +[ 12%] Generating 12_beh_lib.sv +[ 18%] Generating 11_ifu_bp_ctl.sv [ 25%] Generating 13_ifu_mem_ctl.sv [ 31%] Generating 14_mem_lib.sv [ 37%] Generating 15_exu.sv [ 43%] Generating 16_dec_decode_ctl.sv -[ 50%] Generating 2_ahb_to_axi4.sv -[ 56%] Generating 1_lsu_stbuf.sv +[ 50%] Generating 1_lsu_stbuf.sv +[ 56%] Generating 2_ahb_to_axi4.sv [ 62%] Generating 3_rvjtag_tap.sv [ 68%] Generating 4_dec_tlu_ctl.sv [ 75%] Generating 5_lsu_bus_buffer.sv [ 81%] Generating 6_dbg.sv [ 87%] Generating 7_axi4_to_ahb.sv -[ 93%] Generating 8_ifu_aln_ctl.sv -[100%] Generating 9_tb_top.sv +[ 93%] Generating 9_tb_top.sv +[100%] Generating 8_ifu_aln_ctl.sv [100%] Built target Parse Surelog parsing status: 0 [INF:PA0201] Parsing source file "${SURELOG_DIR}/third_party/UVM/1800.2-2017-1.0/src/uvm_pkg.sv". @@ -2509,7 +2509,7 @@ delay_control 54 design 1 disable_fork 5 do_while 51 -enum_const 503 +enum_const 1087 enum_typespec 94 enum_var 196 event_control 70 @@ -2615,7 +2615,7 @@ delay_control 170 design 1 disable_fork 15 do_while 146 -enum_const 663 +enum_const 1247 enum_typespec 165 enum_var 1653 event_control 132 diff --git a/third_party/tests/Earlgrey_0_1/sim-icarus/Earlgrey_0_1.log b/third_party/tests/Earlgrey_0_1/sim-icarus/Earlgrey_0_1.log index c8c9895386..4aa17d6243 100644 --- a/third_party/tests/Earlgrey_0_1/sim-icarus/Earlgrey_0_1.log +++ b/third_party/tests/Earlgrey_0_1/sim-icarus/Earlgrey_0_1.log @@ -6172,7 +6172,7 @@ class_var 3 constant 344035 cont_assign 19794 design 1 -enum_const 2548 +enum_const 3632 enum_typespec 309 enum_var 404 event_control 721 @@ -6247,7 +6247,7 @@ class_var 3 constant 348743 cont_assign 47364 design 1 -enum_const 2553 +enum_const 3637 enum_typespec 310 enum_var 726 event_control 4855 diff --git a/third_party/tests/Earlgrey_Verilator_01_05_21/sim-icarus/Earlgrey_Verilator_01_05_21.log b/third_party/tests/Earlgrey_Verilator_01_05_21/sim-icarus/Earlgrey_Verilator_01_05_21.log index 206b4a86d6..e206b4d428 100644 --- a/third_party/tests/Earlgrey_Verilator_01_05_21/sim-icarus/Earlgrey_Verilator_01_05_21.log +++ b/third_party/tests/Earlgrey_Verilator_01_05_21/sim-icarus/Earlgrey_Verilator_01_05_21.log @@ -14345,7 +14345,7 @@ class_var 3 constant 926727 cont_assign 39267 design 1 -enum_const 31253 +enum_const 32514 enum_typespec 8348 enum_var 1174 event_control 1182 @@ -14373,7 +14373,7 @@ integer_var 8 interface_inst 10 interface_typespec 1 io_decl 433 -logic_net 68737 +logic_net 68734 logic_typespec 228832 logic_var 30672 method_func_call 1 @@ -14430,7 +14430,7 @@ class_var 3 constant 936086 cont_assign 147474 design 1 -enum_const 31258 +enum_const 32519 enum_typespec 8349 enum_var 1925 event_control 15153 @@ -14458,7 +14458,7 @@ integer_var 12 interface_inst 10 interface_typespec 1 io_decl 19631 -logic_net 68737 +logic_net 68734 logic_typespec 228832 logic_var 81286 method_func_call 1 diff --git a/third_party/tests/Earlgrey_Verilator_0_1/sim-verilator/Earlgrey_Verilator_0_1.log b/third_party/tests/Earlgrey_Verilator_0_1/sim-verilator/Earlgrey_Verilator_0_1.log index a8ebeb92f7..7b9c638ecf 100644 --- a/third_party/tests/Earlgrey_Verilator_0_1/sim-verilator/Earlgrey_Verilator_0_1.log +++ b/third_party/tests/Earlgrey_Verilator_0_1/sim-verilator/Earlgrey_Verilator_0_1.log @@ -5827,7 +5827,7 @@ class_var 3 constant 321233 cont_assign 19205 design 1 -enum_const 2446 +enum_const 3532 enum_typespec 258 enum_var 342 event_control 746 @@ -5908,7 +5908,7 @@ class_var 3 constant 325987 cont_assign 43470 design 1 -enum_const 2451 +enum_const 3537 enum_typespec 259 enum_var 520 event_control 4876 diff --git a/third_party/tests/Ibex/Ibex.log b/third_party/tests/Ibex/Ibex.log index 63351a9b25..ec621797ce 100644 --- a/third_party/tests/Ibex/Ibex.log +++ b/third_party/tests/Ibex/Ibex.log @@ -809,7 +809,7 @@ design 1 disable 10 disable_fork 29 do_while 191 -enum_const 18934 +enum_const 18938 enum_typespec 3282 enum_var 1137 event_control 174 diff --git a/third_party/tests/IncompTitan/IncompTitan.log b/third_party/tests/IncompTitan/IncompTitan.log index de9629d9f1..5bd2e2af5d 100644 --- a/third_party/tests/IncompTitan/IncompTitan.log +++ b/third_party/tests/IncompTitan/IncompTitan.log @@ -5340,7 +5340,7 @@ constant 403123 cont_assign 18019 cover 20 design 1 -enum_const 5649 +enum_const 5870 enum_typespec 1474 enum_var 133 event_control 223 diff --git a/third_party/tests/NyuziProcessor/NyuziProcessor.log b/third_party/tests/NyuziProcessor/NyuziProcessor.log index b3de0063d2..e08fe09ecf 100644 --- a/third_party/tests/NyuziProcessor/NyuziProcessor.log +++ b/third_party/tests/NyuziProcessor/NyuziProcessor.log @@ -896,7 +896,7 @@ class_var 3 constant 141204 cont_assign 2227 design 1 -enum_const 13241 +enum_const 13261 enum_typespec 1302 enum_var 38 event_control 277 @@ -976,7 +976,7 @@ class_var 3 constant 143226 cont_assign 5561 design 1 -enum_const 13246 +enum_const 13266 enum_typespec 1303 enum_var 58 event_control 910 diff --git a/third_party/tests/Opentitan/Earlgrey.log b/third_party/tests/Opentitan/Earlgrey.log index af0ebb9d55..a0b225783b 100644 --- a/third_party/tests/Opentitan/Earlgrey.log +++ b/third_party/tests/Opentitan/Earlgrey.log @@ -25178,7 +25178,7 @@ class_var 3 constant 213980 cont_assign 13781 design 1 -enum_const 2016 +enum_const 2037 enum_typespec 206 enum_var 280 event_control 590 @@ -25251,7 +25251,7 @@ class_var 3 constant 217424 cont_assign 30746 design 1 -enum_const 2021 +enum_const 2042 enum_typespec 207 enum_var 432 event_control 3782 diff --git a/third_party/tests/Opentitan/Opentitan.log b/third_party/tests/Opentitan/Opentitan.log index af910a861b..cb340f7b56 100644 --- a/third_party/tests/Opentitan/Opentitan.log +++ b/third_party/tests/Opentitan/Opentitan.log @@ -4199,7 +4199,7 @@ delay_control 53 design 1 disable_fork 5 do_while 51 -enum_const 2392 +enum_const 2413 enum_typespec 281 enum_var 461 event_control 609 @@ -4316,7 +4316,7 @@ delay_control 168 design 1 disable_fork 15 do_while 146 -enum_const 2552 +enum_const 2573 enum_typespec 352 enum_var 2070 event_control 3864