From d16d29c59116c0509bd6955c211c53b16dd8c9cf Mon Sep 17 00:00:00 2001 From: steve Date: Sat, 2 Dec 2000 02:40:56 +0000 Subject: [PATCH] Support for %s in $display (PR#62) --- vpi/sys_display.c | 11 ++++++++++- vvm/vpi_const.c | 20 +++++++++++++++++++- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/vpi/sys_display.c b/vpi/sys_display.c index c96328c36..71e4e37c1 100644 --- a/vpi/sys_display.c +++ b/vpi/sys_display.c @@ -17,7 +17,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #if !defined(WINNT) && !defined(macintosh) -#ident "$Id: sys_display.c,v 1.20 2000/11/04 05:49:22 steve Exp $" +#ident "$Id: sys_display.c,v 1.21 2000/12/02 02:40:56 steve Exp $" #endif # include "vpi_user.h" @@ -120,6 +120,12 @@ static int format_str(vpiHandle scope, unsigned int mcd, value.format = vpiOctStrVal; cp += 1; break; + case 's': + case 'S': + do_num = 1; + value.format = vpiStringVal; + cp += 1; + break; case 't': case 'T': do_num = 1; @@ -594,6 +600,9 @@ void sys_display_register() /* * $Log: sys_display.c,v $ + * Revision 1.21 2000/12/02 02:40:56 steve + * Support for %s in $display (PR#62) + * * Revision 1.20 2000/11/04 05:49:22 steve * Integrate parameter count changes (PR#34) * diff --git a/vvm/vpi_const.c b/vvm/vpi_const.c index eb8a9dceb..e1aad999d 100644 --- a/vvm/vpi_const.c +++ b/vvm/vpi_const.c @@ -17,7 +17,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #if !defined(WINNT) && !defined(macintosh) -#ident "$Id: vpi_const.c,v 1.13 2000/09/23 16:34:47 steve Exp $" +#ident "$Id: vpi_const.c,v 1.14 2000/12/02 02:40:56 steve Exp $" #endif # include "vpi_priv.h" @@ -239,6 +239,21 @@ void vpip_bits_get_value(const vpip_bit_t*bits, unsigned nbits, s_vpi_value*vp) vp->value.integer = val; break; + case vpiStringVal: + assert(nbits%8 == 0); + for (idx = nbits ; idx >= 8 ; idx -= 8) { + char tmp = 0; + unsigned bdx; + for (bdx = 8 ; bdx > 0 ; bdx -= 1) { + tmp <<= 1; + if (B_IS1(bits[idx-8+bdx-1])) + tmp |= 1; + } + *cp++ = tmp; + } + *cp++ = 0; + break; + case vpiVectorVal: vp->value.vector = vect; for (idx = 0 ; idx < nbits ; idx += 1) { @@ -424,6 +439,9 @@ vpiHandle vpip_make_number_const(struct __vpiNumberConst*ref, /* * $Log: vpi_const.c,v $ + * Revision 1.14 2000/12/02 02:40:56 steve + * Support for %s in $display (PR#62) + * * Revision 1.13 2000/09/23 16:34:47 steve * Handle unknowns in decimal strings. *