From 286cb5a2b9dd4ab3bf95d6b1bdf3030846ea4daa Mon Sep 17 00:00:00 2001 From: mole99 Date: Wed, 8 Mar 2023 17:04:16 +0100 Subject: [PATCH] SDF: add more header output --- vpi/sdf_parse.y | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/vpi/sdf_parse.y b/vpi/sdf_parse.y index c735a06c6..4b3cf5175 100644 --- a/vpi/sdf_parse.y +++ b/vpi/sdf_parse.y @@ -108,8 +108,10 @@ sdf_header_item sdfversion : '(' K_SDFVERSION QSTRING ')' - { free($3); - } + { if (sdf_flag_inform) vpi_printf("%s:%d:SDF INFO: Version: %s\n", + sdf_parse_path, @2.first_line, $3); + free($3); + } ; design_name @@ -160,7 +162,17 @@ hierarchy_divider voltage : '(' K_VOLTAGE rtriple ')' + { /* The value must be defined. */ + 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", + 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", + sdf_parse_path, @2.first_line, $3); + } ; process @@ -173,17 +185,27 @@ process temperature : '(' K_TEMPERATURE rtriple ')' + { /* The value must be defined. */ + 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", + 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", + 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); }