Add support to dump the two-state variables.

Add support to dump the two-state variables (bit, byte, short, int and
long) using the fst, lxt, lxt2 and vcd dumpers.
This commit is contained in:
Cary R 2011-09-06 09:23:42 -07:00 committed by Stephen Williams
parent dd9962c221
commit 8383188292
5 changed files with 46 additions and 0 deletions

View File

@ -503,11 +503,16 @@ static void scan_item(unsigned depth, vpiHandle item, int skip)
item_type = vpi_get(vpiType, item); item_type = vpi_get(vpiType, item);
switch (item_type) { switch (item_type) {
case vpiNamedEvent: type = FST_VT_VCD_EVENT; break; case vpiNamedEvent: type = FST_VT_VCD_EVENT; break;
case vpiIntVar:
case vpiIntegerVar: type = FST_VT_VCD_INTEGER; break; case vpiIntegerVar: type = FST_VT_VCD_INTEGER; break;
case vpiParameter: type = FST_VT_VCD_PARAMETER; break; case vpiParameter: type = FST_VT_VCD_PARAMETER; break;
/* Icarus converts realtime to real. */ /* Icarus converts realtime to real. */
case vpiRealVar: type = FST_VT_VCD_REAL; break; case vpiRealVar: type = FST_VT_VCD_REAL; break;
case vpiMemoryWord: case vpiMemoryWord:
case vpiBitVar:
case vpiByteVar:
case vpiShortIntVar:
case vpiLongIntVar:
case vpiReg: type = FST_VT_VCD_REG; break; case vpiReg: type = FST_VT_VCD_REG; break;
/* Icarus converts a time to a plain register. */ /* Icarus converts a time to a plain register. */
case vpiTimeVar: type = FST_VT_VCD_TIME; break; case vpiTimeVar: type = FST_VT_VCD_TIME; break;
@ -572,6 +577,11 @@ static void scan_item(unsigned depth, vpiHandle item, int skip)
case vpiNamedEvent: case vpiNamedEvent:
case vpiIntegerVar: case vpiIntegerVar:
case vpiBitVar:
case vpiByteVar:
case vpiShortIntVar:
case vpiIntVar:
case vpiLongIntVar:
case vpiRealVar: case vpiRealVar:
case vpiMemoryWord: case vpiMemoryWord:
case vpiReg: case vpiReg:
@ -791,6 +801,11 @@ static PLI_INT32 sys_dumpvars_calltf(ICARUS_VPI_CONST PLI_BYTE8*name)
* been included. */ * been included. */
switch (item_type) { switch (item_type) {
case vpiIntegerVar: case vpiIntegerVar:
case vpiBitVar:
case vpiByteVar:
case vpiShortIntVar:
case vpiIntVar:
case vpiLongIntVar:
case vpiMemoryWord: case vpiMemoryWord:
case vpiNamedEvent: case vpiNamedEvent:
case vpiNet: case vpiNet:

View File

@ -557,6 +557,11 @@ static void scan_item(unsigned depth, vpiHandle item, int skip)
item = vpi_handle_by_index(array, idx); item = vpi_handle_by_index(array, idx);
} }
case vpiIntegerVar: case vpiIntegerVar:
case vpiBitVar:
case vpiByteVar:
case vpiShortIntVar:
case vpiIntVar:
case vpiLongIntVar:
case vpiTimeVar: case vpiTimeVar:
case vpiReg: type = "reg"; } case vpiReg: type = "reg"; }

View File

@ -620,6 +620,11 @@ static void scan_item(unsigned depth, vpiHandle item, int skip)
item = vpi_handle_by_index(array, idx); item = vpi_handle_by_index(array, idx);
} }
case vpiIntegerVar: case vpiIntegerVar:
case vpiBitVar:
case vpiByteVar:
case vpiShortIntVar:
case vpiIntVar:
case vpiLongIntVar:
case vpiTimeVar: case vpiTimeVar:
case vpiReg: type = "reg"; } case vpiReg: type = "reg"; }

View File

@ -532,11 +532,16 @@ static void scan_item(unsigned depth, vpiHandle item, int skip)
item_type = vpi_get(vpiType, item); item_type = vpi_get(vpiType, item);
switch (item_type) { switch (item_type) {
case vpiNamedEvent: type = "event"; break; case vpiNamedEvent: type = "event"; break;
case vpiIntVar:
case vpiIntegerVar: type = "integer"; break; case vpiIntegerVar: type = "integer"; break;
case vpiParameter: type = "parameter"; break; case vpiParameter: type = "parameter"; break;
/* Icarus converts realtime to real. */ /* Icarus converts realtime to real. */
case vpiRealVar: type = "real"; break; case vpiRealVar: type = "real"; break;
case vpiMemoryWord: case vpiMemoryWord:
case vpiBitVar:
case vpiByteVar:
case vpiShortIntVar:
case vpiLongIntVar:
case vpiReg: type = "reg"; break; case vpiReg: type = "reg"; break;
/* Icarus converts a time to a plain register. */ /* Icarus converts a time to a plain register. */
case vpiTimeVar: type = "time"; break; case vpiTimeVar: type = "time"; break;
@ -601,12 +606,18 @@ static void scan_item(unsigned depth, vpiHandle item, int skip)
case vpiNamedEvent: case vpiNamedEvent:
case vpiIntegerVar: case vpiIntegerVar:
case vpiBitVar:
case vpiByteVar:
case vpiShortIntVar:
case vpiIntVar:
case vpiLongIntVar:
case vpiRealVar: case vpiRealVar:
case vpiMemoryWord: case vpiMemoryWord:
case vpiReg: case vpiReg:
case vpiTimeVar: case vpiTimeVar:
case vpiNet: case vpiNet:
/* If we are skipping all signal or this is in an automatic /* If we are skipping all signal or this is in an automatic
* scope then just return. */ * scope then just return. */
if (skip || vpi_get(vpiAutomatic, item)) return; if (skip || vpi_get(vpiAutomatic, item)) return;
@ -787,6 +798,11 @@ static PLI_INT32 sys_dumpvars_calltf(ICARUS_VPI_CONST PLI_BYTE8*name)
* been included. */ * been included. */
switch (item_type) { switch (item_type) {
case vpiIntegerVar: case vpiIntegerVar:
case vpiBitVar:
case vpiByteVar:
case vpiShortIntVar:
case vpiIntVar:
case vpiLongIntVar:
case vpiMemoryWord: case vpiMemoryWord:
case vpiNamedEvent: case vpiNamedEvent:
case vpiNet: case vpiNet:

View File

@ -189,6 +189,11 @@ PLI_INT32 sys_dumpvars_compiletf(ICARUS_VPI_CONST PLI_BYTE8 *name)
case vpiNet: case vpiNet:
case vpiReg: case vpiReg:
case vpiIntegerVar: case vpiIntegerVar:
case vpiBitVar:
case vpiByteVar:
case vpiShortIntVar:
case vpiIntVar:
case vpiLongIntVar:
case vpiTimeVar: case vpiTimeVar:
case vpiRealVar: case vpiRealVar:
case vpiNamedEvent: case vpiNamedEvent: