From fd9f0b3c758f071fa3dfe5b6f69e3d68305797ca Mon Sep 17 00:00:00 2001 From: mole99 Date: Wed, 8 Mar 2023 20:51:44 +0100 Subject: [PATCH] Add divider to header output --- ivtest/gold/sdf_header-vvp-stdout.gold | 7 ++++--- vpi/sdf_parse.y | 27 +++++++++++++++++--------- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/ivtest/gold/sdf_header-vvp-stdout.gold b/ivtest/gold/sdf_header-vvp-stdout.gold index 4e75a32af..0b6de0b8e 100644 --- a/ivtest/gold/sdf_header-vvp-stdout.gold +++ b/ivtest/gold/sdf_header-vvp-stdout.gold @@ -4,7 +4,8 @@ ivltests/sdf_header.sdf:4:SDF INFO: Date: Wed Mar 8 12:34:56 2023 ivltests/sdf_header.sdf:5:SDF INFO: Vendor: No Vendor ivltests/sdf_header.sdf:6:SDF INFO: Program: Human ivltests/sdf_header.sdf:7:SDF INFO: Program Version: 1.0.0 -ivltests/sdf_header.sdf:9:SDF INFO: Voltage : 5.000000 +ivltests/sdf_header.sdf:8:SDF INFO: Divider: "/" +ivltests/sdf_header.sdf:9:SDF INFO: Voltage: 5.000000 ivltests/sdf_header.sdf:10:SDF INFO: Process: best=0.65:nom=1.0:worst=1.8 -ivltests/sdf_header.sdf:11:SDF INFO: Temperature : 25.000000 -ivltests/sdf_header.sdf:12:SDF INFO: Timescale : 1ps +ivltests/sdf_header.sdf:11:SDF INFO: Temperature: 25.000000 +ivltests/sdf_header.sdf:12:SDF INFO: Timescale: 1ps diff --git a/vpi/sdf_parse.y b/vpi/sdf_parse.y index 4b3cf5175..50d4935d2 100644 --- a/vpi/sdf_parse.y +++ b/vpi/sdf_parse.y @@ -155,9 +155,18 @@ program_version ; hierarchy_divider - : '(' K_DIVIDER '.' ')' { sdf_use_hchar = '.'; } - | '(' K_DIVIDER '/' ')' { sdf_use_hchar = '/'; } - | '(' K_DIVIDER HCHAR ')' { /* sdf_use_hchar no-change */; } + : '(' K_DIVIDER '.' ')' + { sdf_use_hchar = '.'; + if (sdf_flag_inform) vpi_printf("%s:%d:SDF INFO: Divider: \"%c\"\n", sdf_parse_path, @1.first_line, sdf_use_hchar); + } + | '(' K_DIVIDER '/' ')' + { sdf_use_hchar = '/'; + if (sdf_flag_inform) vpi_printf("%s:%d:SDF INFO: Divider: \"%c\"\n", sdf_parse_path, @1.first_line, sdf_use_hchar); + } + | '(' K_DIVIDER HCHAR ')' + { /* sdf_use_hchar no-change */ + if (sdf_flag_inform) vpi_printf("%s:%d:SDF INFO: Divider: \"%c\"\n", sdf_parse_path, @1.first_line, sdf_use_hchar); + } ; voltage @@ -166,11 +175,11 @@ voltage if (! $3.defined) { vpi_printf("%s:%d: SDF ERROR: Chosen value not defined.\n", sdf_parse_path, @1.first_line); } - else if (sdf_flag_inform) vpi_printf("%s:%d:SDF INFO: Voltage : %f\n", + else if (sdf_flag_inform) vpi_printf("%s:%d:SDF INFO: Voltage: %f\n", sdf_parse_path, @2.first_line, $3.value); } | '(' K_VOLTAGE signed_real_number ')' - { if (sdf_flag_inform) vpi_printf("%s:%d:SDF INFO: Voltage : %f\n", + { if (sdf_flag_inform) vpi_printf("%s:%d:SDF INFO: Voltage: %f\n", sdf_parse_path, @2.first_line, $3); } ; @@ -189,23 +198,23 @@ temperature if (! $3.defined) { vpi_printf("%s:%d: SDF ERROR: Chosen value not defined.\n", sdf_parse_path, @1.first_line); } - else if (sdf_flag_inform) vpi_printf("%s:%d:SDF INFO: Temperature : %f\n", + else if (sdf_flag_inform) vpi_printf("%s:%d:SDF INFO: Temperature: %f\n", sdf_parse_path, @2.first_line, $3.value); } | '(' K_TEMPERATURE signed_real_number ')' - { if (sdf_flag_inform) vpi_printf("%s:%d:SDF INFO: Temperature : %f\n", + { if (sdf_flag_inform) vpi_printf("%s:%d:SDF INFO: Temperature: %f\n", sdf_parse_path, @2.first_line, $3); } ; time_scale : '(' K_TIMESCALE REAL_NUMBER IDENTIFIER ')' - { if (sdf_flag_inform) vpi_printf("%s:%d:SDF INFO: Timescale : %f%s\n", + { if (sdf_flag_inform) vpi_printf("%s:%d:SDF INFO: Timescale: %f%s\n", sdf_parse_path, @2.first_line, $3, $4); free($4); } | '(' K_TIMESCALE INTEGER IDENTIFIER ')' - { if (sdf_flag_inform) vpi_printf("%s:%d:SDF INFO: Timescale : %lu%s\n", + { if (sdf_flag_inform) vpi_printf("%s:%d:SDF INFO: Timescale: %lu%s\n", sdf_parse_path, @2.first_line, $3, $4); free($4); }