diff --git a/vvp/vpi_memory.cc b/vvp/vpi_memory.cc index 1bb92cd41..8631ddcf0 100644 --- a/vvp/vpi_memory.cc +++ b/vvp/vpi_memory.cc @@ -27,7 +27,7 @@ * Picture Elements, Inc., 777 Panoramic Way, Berkeley, CA 94704. */ #if !defined(WINNT) && !defined(macintosh) -#ident "$Id: vpi_memory.cc,v 1.12 2002/07/03 02:09:38 steve Exp $" +#ident "$Id: vpi_memory.cc,v 1.13 2002/07/03 23:16:27 steve Exp $" #endif # include "vpi_priv.h" @@ -494,7 +494,7 @@ static void memory_word_get_value(vpiHandle ref, s_vpi_value*vp) op->aval = op->bval = 0; for (unsigned idx = 0 ; idx < width ; idx += 1) { - switch (memory_get(rfp->mem->mem, idx)) { + switch (memory_get(rfp->mem->mem, bidx+idx)) { case 0: op->aval &= ~(1 << idx % 32); op->bval &= ~(1 << idx % 32); @@ -504,13 +504,13 @@ static void memory_word_get_value(vpiHandle ref, s_vpi_value*vp) op->bval &= ~(1 << idx % 32); break; case 2: - op->aval &= ~(1 << idx % 32); - op->bval |= (1 << idx % 32); - break; - case 3: op->aval |= (1 << idx % 32); op->bval |= (1 << idx % 32); break; + case 3: + op->aval &= ~(1 << idx % 32); + op->bval |= (1 << idx % 32); + break; } if (!((idx+1) % 32) && (idx+1 < width)) { op++; @@ -583,6 +583,10 @@ vpiHandle vpip_make_memory(vvp_memory_t mem) /* * $Log: vpi_memory.cc,v $ + * Revision 1.13 2002/07/03 23:16:27 steve + * don't pollute name space + * fix vecval for Z/X cases + * * Revision 1.12 2002/07/03 02:09:38 steve * vpiName, vpiFullName support in memory types, * length checks for *_get_str() buffers, diff --git a/vvp/vpi_signal.cc b/vvp/vpi_signal.cc index dac211c32..6556b3687 100644 --- a/vvp/vpi_signal.cc +++ b/vvp/vpi_signal.cc @@ -17,7 +17,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #if !defined(WINNT) -#ident "$Id: vpi_signal.cc,v 1.37 2002/07/03 02:09:38 steve Exp $" +#ident "$Id: vpi_signal.cc,v 1.38 2002/07/03 23:16:27 steve Exp $" #endif /* @@ -146,7 +146,7 @@ static vpiHandle signal_get_handle(int code, vpiHandle ref) } -char *signal_vpiDecStrVal(struct __vpiSignal*rfp, s_vpi_value*vp) +static char *signal_vpiDecStrVal(struct __vpiSignal*rfp, s_vpi_value*vp) { unsigned wid = (rfp->msb >= rfp->lsb) ? (rfp->msb - rfp->lsb + 1) @@ -169,7 +169,7 @@ char *signal_vpiDecStrVal(struct __vpiSignal*rfp, s_vpi_value*vp) } -char *signal_vpiStringVal(struct __vpiSignal*rfp, s_vpi_value*vp) +static char *signal_vpiStringVal(struct __vpiSignal*rfp, s_vpi_value*vp) { unsigned wid = (rfp->msb >= rfp->lsb) ? (rfp->msb - rfp->lsb + 1) @@ -360,11 +360,11 @@ static void signal_get_value(vpiHandle ref, s_vpi_value*vp) op->bval &= ~(1 << obit); break; case 2: - op->aval &= ~(1 << obit); + op->aval |= (1 << obit); op->bval |= (1 << obit); break; case 3: - op->aval |= (1 << obit); + op->aval &= ~(1 << obit); op->bval |= (1 << obit); break; } @@ -674,6 +674,10 @@ vpiHandle vpip_make_net(char*name, int msb, int lsb, bool signed_flag, /* * $Log: vpi_signal.cc,v $ + * Revision 1.38 2002/07/03 23:16:27 steve + * don't pollute name space + * fix vecval for Z/X cases + * * Revision 1.37 2002/07/03 02:09:38 steve * vpiName, vpiFullName support in memory types, * length checks for *_get_str() buffers,