From 9d146eae16499ea656de969ec26315521e5cd0e2 Mon Sep 17 00:00:00 2001 From: Ibrahim Burak Yorulmaz Date: Sun, 20 Jul 2025 02:22:02 +0200 Subject: [PATCH] Fix VPI signal range order (#6189) (#6200) --- docs/CONTRIBUTORS | 1 + src/V3EmitCSyms.cpp | 4 ++-- test_regress/t/t_vpi_var.cpp | 18 ++++++++++++++++++ 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/docs/CONTRIBUTORS b/docs/CONTRIBUTORS index f82a13199..dceab099e 100644 --- a/docs/CONTRIBUTORS +++ b/docs/CONTRIBUTORS @@ -84,6 +84,7 @@ Huang Rui Huanghuang Zhou HungMingWu HyungKi Jeong +Ibrahim Burak Yorulmaz Igor Zaworski Ilya Barkov Iru Cai diff --git a/src/V3EmitCSyms.cpp b/src/V3EmitCSyms.cpp index a07b431c6..c81020b64 100644 --- a/src/V3EmitCSyms.cpp +++ b/src/V3EmitCSyms.cpp @@ -964,9 +964,9 @@ void EmitCSyms::emitSymImp() { } else { if (basicp->isRanged()) { bounds += " ,"; - bounds += cvtToStr(basicp->hi()); + bounds += cvtToStr(basicp->left()); bounds += ","; - bounds += cvtToStr(basicp->lo()); + bounds += cvtToStr(basicp->right()); pdim++; } break; // AstBasicDType - nothing below, 1 diff --git a/test_regress/t/t_vpi_var.cpp b/test_regress/t/t_vpi_var.cpp index 2cb16563f..3a04f6831 100644 --- a/test_regress/t/t_vpi_var.cpp +++ b/test_regress/t/t_vpi_var.cpp @@ -360,6 +360,24 @@ int _mon_check_var() { p = vpi_get_str(vpiType, vh10); CHECK_RESULT_CSTR(p, "vpiConstant"); } + TestVpiHandle vh6 = vpi_handle_by_index(vh5, 2); + CHECK_RESULT_NZ(vh6); + { + TestVpiHandle vh10 = vpi_handle(vpiLeftRange, vh6); + CHECK_RESULT_NZ(vh10); + vpi_get_value(vh10, &tmpValue); + CHECK_RESULT(tmpValue.value.integer, 0); + p = vpi_get_str(vpiType, vh10); + CHECK_RESULT_CSTR(p, "vpiConstant"); + } + { + TestVpiHandle vh10 = vpi_handle(vpiRightRange, vh6); + CHECK_RESULT_NZ(vh10); + vpi_get_value(vh10, &tmpValue); + CHECK_RESULT(tmpValue.value.integer, 61); + p = vpi_get_str(vpiType, vh10); + CHECK_RESULT_CSTR(p, "vpiConstant"); + } // C++ keyword collision {