mirror of
https://github.com/steveicarus/iverilog.git
synced 2026-09-03 16:29:25 +02:00
By adding ivtest to the iverilog source tree, it is easier to keep the regression test synchronized with the source that is being tested. This should be especially helpful for PRs that add a new feature, and have a matching ivtest PR with the regression test for that feature.
79 lines
1.8 KiB
C
79 lines
1.8 KiB
C
/*
|
|
* Copyright (c) Tony Bybell 1999-2000.
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version 2
|
|
* of the License, or (at your option) any later version.
|
|
*/
|
|
|
|
#ifndef VCD_ANALYZER_H
|
|
#define VCD_ANALYZER_H
|
|
|
|
#include <gtk/gtk.h>
|
|
#include <stdlib.h>
|
|
#include "alloca.h"
|
|
#include "debug.h"
|
|
|
|
|
|
typedef struct Node *nptr;
|
|
typedef struct HistEnt *hptr;
|
|
typedef struct Bits *bptr;
|
|
typedef struct VectorEnt *vptr;
|
|
typedef struct BitVector *bvptr;
|
|
|
|
typedef unsigned long Ulong;
|
|
typedef unsigned int Uint;
|
|
|
|
|
|
typedef struct HistEnt
|
|
{
|
|
hptr next; /* next transition in history */
|
|
TimeType time; /* time of transition */
|
|
unsigned char flags; /* so far only set on glitch/real condition */
|
|
|
|
union
|
|
{
|
|
unsigned char val; /* value: "0XZ1"[val] */
|
|
char *vector; /* pointer to a whole vector */
|
|
} v;
|
|
|
|
} HistEnt;
|
|
|
|
enum HistEntFlagBits
|
|
{ HIST_GLITCH_B, HIST_REAL_B, HIST_STRING_B
|
|
};
|
|
|
|
#define HIST_GLITCH (1<<HIST_GLITCH_B)
|
|
#define HIST_REAL (1<<HIST_REAL_B)
|
|
|
|
#ifndef STRICT_VCD_ONLY
|
|
#define HIST_STRING (1<<HIST_STRING_B)
|
|
#else
|
|
#define HIST_STRING 0 /* for gcc -O2 optimization */
|
|
#endif
|
|
|
|
|
|
#define MAX_HISTENT_TIME (~( (ULLDescriptor(-1)) << (sizeof(TimeType) * 8 - 1)))
|
|
|
|
|
|
typedef struct ExtNode
|
|
{
|
|
int msi, lsi;
|
|
} ExtNode;
|
|
|
|
struct Node
|
|
{
|
|
char *nname; /* ascii name of node */
|
|
ExtNode *ext; /* extension to node for vectors */
|
|
HistEnt head; /* first entry in transition history */
|
|
hptr curr; /* ptr. to current history entry */
|
|
|
|
hptr *harray; /* fill this in when we make a trace.. contains */
|
|
/* a ptr to an array of histents for bsearching */
|
|
int numhist; /* number of elements in the harray */
|
|
};
|
|
|
|
|
|
#endif
|