Remove the obsolete functor delete functions.
This commit is contained in:
parent
155eb70d65
commit
f45fd155c4
|
|
@ -16,7 +16,7 @@
|
||||||
# 59 Temple Place - Suite 330
|
# 59 Temple Place - Suite 330
|
||||||
# Boston, MA 02111-1307, USA
|
# Boston, MA 02111-1307, USA
|
||||||
#
|
#
|
||||||
#ident "$Id: Makefile.in,v 1.47 2003/03/08 20:59:23 steve Exp $"
|
#ident "$Id: Makefile.in,v 1.48 2003/03/13 04:36:57 steve Exp $"
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
SHELL = /bin/sh
|
SHELL = /bin/sh
|
||||||
|
|
@ -68,7 +68,7 @@ vpi_priv.o vpi_scope.o vpi_real.o vpi_signal.o vpi_tasks.o vpi_time.o \
|
||||||
vpi_memory.o vpi_vthr_vector.o vpip_bin.o vpip_hex.o vpip_oct.o \
|
vpi_memory.o vpi_vthr_vector.o vpip_bin.o vpip_hex.o vpip_oct.o \
|
||||||
vpip_to_dec.o vvp_vpi.o
|
vpip_to_dec.o vvp_vpi.o
|
||||||
|
|
||||||
O = main.o parse.o parse_misc.o lexor.o arith.o bufif.o compile.o debug.o \
|
O = main.o parse.o parse_misc.o lexor.o arith.o bufif.o compile.o \
|
||||||
functor.o fvectors.o npmos.o resolv.o stop.o symbols.o ufunc.o codes.o \
|
functor.o fvectors.o npmos.o resolv.o stop.o symbols.o ufunc.o codes.o \
|
||||||
vthread.o schedule.o statistics.o tables.o udp.o memory.o force.o event.o \
|
vthread.o schedule.o statistics.o tables.o udp.o memory.o force.o event.o \
|
||||||
logic.o delay.o words.o $V
|
logic.o delay.o words.o $V
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||||
*/
|
*/
|
||||||
#ifdef HAVE_CVS_IDENT
|
#ifdef HAVE_CVS_IDENT
|
||||||
#ident "$Id: compile.cc,v 1.156 2003/03/10 23:37:07 steve Exp $"
|
#ident "$Id: compile.cc,v 1.157 2003/03/13 04:36:57 steve Exp $"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
# include "arith.h"
|
# include "arith.h"
|
||||||
|
|
@ -710,14 +710,8 @@ void const_functor_s::set(vvp_ipoint_t p, bool, unsigned val, unsigned)
|
||||||
fprintf(stderr, "internal error: Set value to const_functor 0x%x\n", p);
|
fprintf(stderr, "internal error: Set value to const_functor 0x%x\n", p);
|
||||||
fprintf(stderr, " : Value is %u, trying to set %u\n",
|
fprintf(stderr, " : Value is %u, trying to set %u\n",
|
||||||
oval, val);
|
oval, val);
|
||||||
|
|
||||||
#if defined(WITH_DEBUG)
|
|
||||||
debug_print(p);
|
|
||||||
breakpoint();
|
|
||||||
#else
|
|
||||||
fprintf(stderr, " : I'm driving functor 0x%x\n", out);
|
fprintf(stderr, " : I'm driving functor 0x%x\n", out);
|
||||||
assert(0);
|
assert(0);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1533,6 +1527,9 @@ void compile_param_string(char*label, char*name, char*str, char*value)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* $Log: compile.cc,v $
|
* $Log: compile.cc,v $
|
||||||
|
* Revision 1.157 2003/03/13 04:36:57 steve
|
||||||
|
* Remove the obsolete functor delete functions.
|
||||||
|
*
|
||||||
* Revision 1.156 2003/03/10 23:37:07 steve
|
* Revision 1.156 2003/03/10 23:37:07 steve
|
||||||
* Direct support for string parameters.
|
* Direct support for string parameters.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||||
*/
|
*/
|
||||||
#if !defined(WINNT)
|
#if !defined(WINNT)
|
||||||
#ident "$Id: config.h.in,v 1.11 2002/05/24 00:43:16 steve Exp $"
|
#ident "$Id: config.h.in,v 1.12 2003/03/13 04:36:57 steve Exp $"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
# define SIZEOF_UNSIGNED_LONG_LONG 0
|
# define SIZEOF_UNSIGNED_LONG_LONG 0
|
||||||
|
|
@ -36,8 +36,6 @@
|
||||||
# undef HAVE_MALLOC_H
|
# undef HAVE_MALLOC_H
|
||||||
# undef HAVE_LIBREADLINE
|
# undef HAVE_LIBREADLINE
|
||||||
|
|
||||||
# undef ENABLE_VVP_DEBUG
|
|
||||||
|
|
||||||
#ifndef MODULE_DIR
|
#ifndef MODULE_DIR
|
||||||
# define MODULE_DIR "."
|
# define MODULE_DIR "."
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -56,10 +54,6 @@ typedef unsigned long vvp_time64_t;
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(HAVE_LIBREADLINE) && defined(ENABLE_VVP_DEBUG)
|
|
||||||
# define WITH_DEBUG 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* getrusage, /proc/self/statm */
|
/* getrusage, /proc/self/statm */
|
||||||
|
|
||||||
# undef HAVE_SYS_RESOURCE_H
|
# undef HAVE_SYS_RESOURCE_H
|
||||||
|
|
@ -85,6 +79,9 @@ typedef unsigned long vvp_time64_t;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* $Log: config.h.in,v $
|
* $Log: config.h.in,v $
|
||||||
|
* Revision 1.12 2003/03/13 04:36:57 steve
|
||||||
|
* Remove the obsolete functor delete functions.
|
||||||
|
*
|
||||||
* Revision 1.11 2002/05/24 00:43:16 steve
|
* Revision 1.11 2002/05/24 00:43:16 steve
|
||||||
* Define SIZEOF_UNSIGNED_LONG_LONG
|
* Define SIZEOF_UNSIGNED_LONG_LONG
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -29,9 +29,6 @@ fi
|
||||||
|
|
||||||
AC_PROG_INSTALL
|
AC_PROG_INSTALL
|
||||||
|
|
||||||
AC_ARG_ENABLE(vvp-debug, vvp-debug -- interactive debugger for VVP runtime.,
|
|
||||||
AC_DEFINE(ENABLE_VVP_DEBUG))
|
|
||||||
|
|
||||||
AC_CHECK_HEADERS(getopt.h malloc.h)
|
AC_CHECK_HEADERS(getopt.h malloc.h)
|
||||||
|
|
||||||
AC_CHECK_SIZEOF(unsigned long long)
|
AC_CHECK_SIZEOF(unsigned long long)
|
||||||
|
|
|
||||||
198
vvp/debug.cc
198
vvp/debug.cc
|
|
@ -1,198 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2001 Stephen Williams (steve@icarus.com)
|
|
||||||
*
|
|
||||||
* This source code is free software; you can redistribute it
|
|
||||||
* and/or modify it in source code form 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.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
|
||||||
*/
|
|
||||||
#ifdef HAVE_CVS_IDENT
|
|
||||||
#ident "$Id: debug.cc,v 1.11 2003/02/09 23:33:26 steve Exp $"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This file provides a simple command line debugger for the vvp
|
|
||||||
* runtime. It is a means to interact with the user running the
|
|
||||||
* simulation.
|
|
||||||
*/
|
|
||||||
|
|
||||||
# include "config.h"
|
|
||||||
|
|
||||||
#if defined(WITH_DEBUG)
|
|
||||||
|
|
||||||
# include "debug.h"
|
|
||||||
# include "functor.h"
|
|
||||||
# include "schedule.h"
|
|
||||||
# include <stdio.h>
|
|
||||||
# include <readline/readline.h>
|
|
||||||
# include <readline/history.h>
|
|
||||||
# include <string.h>
|
|
||||||
# include <stdlib.h>
|
|
||||||
#ifdef HAVE_MALLOC_H
|
|
||||||
# include <malloc.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
static bool interact_flag = false;
|
|
||||||
|
|
||||||
static void cmd_lookup(unsigned argc, char*argv[])
|
|
||||||
{
|
|
||||||
printf(" **** not implemented...\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
static void cmd_fbreak(unsigned argc, char*argv[])
|
|
||||||
{
|
|
||||||
for (unsigned idx = 1 ; idx < argc ; idx += 1) {
|
|
||||||
vvp_ipoint_t fnc = strtoul(argv[idx],0,0);
|
|
||||||
functor_t fp = functor_index(fnc);
|
|
||||||
|
|
||||||
if (fp == 0) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
fp->break_flag = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static const char bitval_tab[4] = { '0', '1', 'x', 'z' };
|
|
||||||
static const char*strength_tab[8] = {
|
|
||||||
"hiz", "small",
|
|
||||||
"medium", "weak",
|
|
||||||
"large", "pull",
|
|
||||||
"strong", "supply" };
|
|
||||||
|
|
||||||
static void cmd_functor(unsigned argc, char*argv[])
|
|
||||||
{
|
|
||||||
for (unsigned idx = 1 ; idx < argc ; idx += 1) {
|
|
||||||
vvp_ipoint_t fnc = strtoul(argv[idx],0,0);
|
|
||||||
functor_t fp = functor_index(fnc);
|
|
||||||
|
|
||||||
if (fp == 0) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
fp->debug_print(fnc);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void cmd_go(unsigned, char*[])
|
|
||||||
{
|
|
||||||
interact_flag = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void cmd_time(unsigned, char*[])
|
|
||||||
{
|
|
||||||
unsigned long ticks = schedule_simtime();
|
|
||||||
printf("%lu ticks\n", ticks);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void cmd_unknown(unsigned argc, char*argv[])
|
|
||||||
{
|
|
||||||
printf("Unknown command: %s\n", argv[0]);
|
|
||||||
}
|
|
||||||
|
|
||||||
struct {
|
|
||||||
const char*name; void (*proc)(unsigned argc, char*argv[]);
|
|
||||||
} cmd_table[] = {
|
|
||||||
{ "fbreak", &cmd_fbreak},
|
|
||||||
{ "func", &cmd_functor},
|
|
||||||
{ "go", &cmd_go},
|
|
||||||
{ "lookup", &cmd_lookup},
|
|
||||||
{ "time", &cmd_time},
|
|
||||||
{ 0, &cmd_unknown}
|
|
||||||
};
|
|
||||||
|
|
||||||
void breakpoint(void)
|
|
||||||
{
|
|
||||||
printf("** VVP Interactive Debugger **\n");
|
|
||||||
printf("Current simulation time is %lu ticks.\n", schedule_simtime());
|
|
||||||
|
|
||||||
interact_flag = true;
|
|
||||||
while (interact_flag) {
|
|
||||||
char*input = readline("> ");
|
|
||||||
if (input == 0)
|
|
||||||
break;
|
|
||||||
|
|
||||||
unsigned argc = 0;
|
|
||||||
char**argv = new char*[strlen(input)/2];
|
|
||||||
|
|
||||||
for (char*cp = input+strspn(input, " ")
|
|
||||||
; *cp; cp += strspn(cp, " ")) {
|
|
||||||
argv[argc] = cp;
|
|
||||||
|
|
||||||
cp += strcspn(cp, " ");
|
|
||||||
if (*cp)
|
|
||||||
*cp++ = 0;
|
|
||||||
|
|
||||||
argc += 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (argc > 0) {
|
|
||||||
unsigned idx;
|
|
||||||
for (idx = 0 ; cmd_table[idx].name ; idx += 1)
|
|
||||||
if (strcmp(cmd_table[idx].name, argv[0]) == 0)
|
|
||||||
break;
|
|
||||||
|
|
||||||
cmd_table[idx].proc (argc, argv);
|
|
||||||
}
|
|
||||||
|
|
||||||
delete[] argv;
|
|
||||||
free(input);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
/*
|
|
||||||
* $Log: debug.cc,v $
|
|
||||||
* Revision 1.11 2003/02/09 23:33:26 steve
|
|
||||||
* Spelling fixes.
|
|
||||||
*
|
|
||||||
* Revision 1.10 2002/08/12 01:35:08 steve
|
|
||||||
* conditional ident string using autoconfig.
|
|
||||||
*
|
|
||||||
* Revision 1.9 2002/07/05 04:40:59 steve
|
|
||||||
* Symbol table uses more efficient key string allocator,
|
|
||||||
* and remove all the symbol tables after compile is done.
|
|
||||||
*
|
|
||||||
* Revision 1.8 2001/12/18 05:32:11 steve
|
|
||||||
* Improved functor debug dumps.
|
|
||||||
*
|
|
||||||
* Revision 1.7 2001/09/15 18:27:05 steve
|
|
||||||
* Make configure detect malloc.h
|
|
||||||
*
|
|
||||||
* Revision 1.6 2001/08/09 22:25:30 steve
|
|
||||||
* Include functor address in debug functor print.
|
|
||||||
*
|
|
||||||
* Revision 1.5 2001/07/19 02:20:55 steve
|
|
||||||
* EOF is the same as resume.
|
|
||||||
*
|
|
||||||
* Revision 1.4 2001/05/31 04:12:43 steve
|
|
||||||
* Make the bufif0 and bufif1 gates strength aware,
|
|
||||||
* and accurately propagate strengths of outputs.
|
|
||||||
*
|
|
||||||
* Revision 1.3 2001/05/30 03:02:35 steve
|
|
||||||
* Propagate strength-values instead of drive strengths.
|
|
||||||
*
|
|
||||||
* Revision 1.2 2001/05/08 23:32:26 steve
|
|
||||||
* Add to the debugger the ability to view and
|
|
||||||
* break on functors.
|
|
||||||
*
|
|
||||||
* Add strengths to functors at compile time,
|
|
||||||
* and Make functors pass their strengths as they
|
|
||||||
* propagate their output.
|
|
||||||
*
|
|
||||||
* Revision 1.1 2001/05/05 23:55:46 steve
|
|
||||||
* Add the beginnings of an interactive debugger.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
36
vvp/debug.h
36
vvp/debug.h
|
|
@ -1,36 +0,0 @@
|
||||||
#ifndef __debug_H
|
|
||||||
#define __debug_H
|
|
||||||
/*
|
|
||||||
* Copyright (c) 2001 Stephen Williams (steve@icarus.com)
|
|
||||||
*
|
|
||||||
* This source code is free software; you can redistribute it
|
|
||||||
* and/or modify it in source code form 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.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
|
||||||
*/
|
|
||||||
#ifdef HAVE_CVS_IDENT
|
|
||||||
#ident "$Id: debug.h,v 1.2 2002/08/12 01:35:08 steve Exp $"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
extern void breakpoint(void);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* $Log: debug.h,v $
|
|
||||||
* Revision 1.2 2002/08/12 01:35:08 steve
|
|
||||||
* conditional ident string using autoconfig.
|
|
||||||
*
|
|
||||||
* Revision 1.1 2001/05/05 23:55:46 steve
|
|
||||||
* Add the beginnings of an interactive debugger.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
#endif
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
|
|
||||||
INTERACTIVE ASSEMBLY DEBUGGER
|
|
||||||
|
|
||||||
The VVP runtime includes an interactive runtime debugger that allows
|
|
||||||
the expert user to trace the actions of the VVP simulation. It is
|
|
||||||
entered just before simulation starts if the user uses the -d flag to
|
|
||||||
the vvp command, and it is also entered when an interesting breakpoint
|
|
||||||
is triggered. The -d flag is useful for giving the user a chance to
|
|
||||||
set breakpoints.
|
|
||||||
|
|
||||||
DEBUGGER COMMANDS
|
|
||||||
|
|
||||||
* go
|
|
||||||
|
|
||||||
Resume the simulation. The simulation will continue until the next
|
|
||||||
breakpoint, or until the simulation ends.
|
|
||||||
|
|
||||||
* lookup <symbol>...
|
|
||||||
|
|
||||||
Give a symbol name, and this function will look up that symbol and
|
|
||||||
return the type and address.
|
|
||||||
|
|
||||||
fbreak <address>...
|
|
||||||
|
|
||||||
Set the breakpoint on a given functor address. (Use the lookup
|
|
||||||
function to locate the address.)
|
|
||||||
|
|
@ -17,12 +17,11 @@
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||||
*/
|
*/
|
||||||
#ifdef HAVE_CVS_IDENT
|
#ifdef HAVE_CVS_IDENT
|
||||||
#ident "$Id: functor.cc,v 1.41 2002/08/12 01:35:08 steve Exp $"
|
#ident "$Id: functor.cc,v 1.42 2003/03/13 04:36:57 steve Exp $"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
# include "functor.h"
|
# include "functor.h"
|
||||||
# include "statistics.h"
|
# include "statistics.h"
|
||||||
# include "debug.h"
|
|
||||||
# include <assert.h>
|
# include <assert.h>
|
||||||
# include <string.h>
|
# include <string.h>
|
||||||
# include <stdlib.h>
|
# include <stdlib.h>
|
||||||
|
|
@ -131,9 +130,6 @@ functor_s::functor_s()
|
||||||
ostr = StX;
|
ostr = StX;
|
||||||
cstr = StX;
|
cstr = StX;
|
||||||
inhibit = 0;
|
inhibit = 0;
|
||||||
#if defined(WITH_DEBUG)
|
|
||||||
break_flag = 0;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
functor_s::~functor_s()
|
functor_s::~functor_s()
|
||||||
|
|
@ -155,10 +151,6 @@ void functor_s::propagate(unsigned val, unsigned str, bool push)
|
||||||
idx = idxp->port[ipoint_port(idx)];
|
idx = idxp->port[ipoint_port(idx)];
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(WITH_DEBUG)
|
|
||||||
if (break_flag)
|
|
||||||
breakpoint();
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void functor_s::put_ostr(unsigned val, unsigned str, bool push)
|
void functor_s::put_ostr(unsigned val, unsigned str, bool push)
|
||||||
|
|
@ -227,32 +219,11 @@ void extra_inputs_functor_s::set(vvp_ipoint_t i, bool push,
|
||||||
edge_inputs_functor_s::~edge_inputs_functor_s()
|
edge_inputs_functor_s::~edge_inputs_functor_s()
|
||||||
{}
|
{}
|
||||||
|
|
||||||
#ifdef WITH_DEBUG
|
|
||||||
# include <stdio.h>
|
|
||||||
static const char bitval_tab[4] = { '0', '1', 'x', 'z' };
|
|
||||||
|
|
||||||
void functor_s::debug_print(vvp_ipoint_t fnc)
|
|
||||||
{
|
|
||||||
printf("0x%x: out pointer =", fnc);
|
|
||||||
vvp_ipoint_t cur = out;
|
|
||||||
while (cur) {
|
|
||||||
printf(" 0x%x", cur);
|
|
||||||
functor_t tmp = functor_index(cur);
|
|
||||||
cur = tmp->port[cur&3];
|
|
||||||
}
|
|
||||||
printf("\n");
|
|
||||||
printf("0x%x: input values = %c %c %c %c\n", fnc,
|
|
||||||
bitval_tab[ival&3],
|
|
||||||
bitval_tab[(ival>>2)&3],
|
|
||||||
bitval_tab[(ival>>4)&3],
|
|
||||||
bitval_tab[(ival>>6)&3]);
|
|
||||||
printf("0x%x: out value = %c (%02x)\n", fnc,
|
|
||||||
bitval_tab[get_oval()], get_ostr());
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* $Log: functor.cc,v $
|
* $Log: functor.cc,v $
|
||||||
|
* Revision 1.42 2003/03/13 04:36:57 steve
|
||||||
|
* Remove the obsolete functor delete functions.
|
||||||
|
*
|
||||||
* Revision 1.41 2002/08/12 01:35:08 steve
|
* Revision 1.41 2002/08/12 01:35:08 steve
|
||||||
* conditional ident string using autoconfig.
|
* conditional ident string using autoconfig.
|
||||||
*
|
*
|
||||||
|
|
@ -267,35 +238,5 @@ void functor_s::debug_print(vvp_ipoint_t fnc)
|
||||||
*
|
*
|
||||||
* Revision 1.37 2001/12/18 05:32:11 steve
|
* Revision 1.37 2001/12/18 05:32:11 steve
|
||||||
* Improved functor debug dumps.
|
* Improved functor debug dumps.
|
||||||
*
|
|
||||||
* Revision 1.36 2001/12/14 01:59:28 steve
|
|
||||||
* Better variable names for functor chunks.
|
|
||||||
*
|
|
||||||
* Revision 1.35 2001/12/06 03:31:24 steve
|
|
||||||
* Support functor delays for gates and UDP devices.
|
|
||||||
* (Stephan Boettcher)
|
|
||||||
*
|
|
||||||
* Revision 1.34 2001/11/16 04:22:27 steve
|
|
||||||
* include stdlib.h for portability.
|
|
||||||
*
|
|
||||||
* Revision 1.33 2001/11/10 18:07:11 steve
|
|
||||||
* Runtime support for functor delays. (Stephan Boettcher)
|
|
||||||
*
|
|
||||||
* Revision 1.32 2001/11/06 03:07:22 steve
|
|
||||||
* Code rearrange. (Stephan Boettcher)
|
|
||||||
*
|
|
||||||
* Revision 1.31 2001/11/04 05:03:21 steve
|
|
||||||
* MacOSX 10.1 updates.
|
|
||||||
*
|
|
||||||
* Revision 1.30 2001/11/01 03:00:19 steve
|
|
||||||
* Add force/cassign/release/deassign support. (Stephan Boettcher)
|
|
||||||
*
|
|
||||||
* Revision 1.29 2001/10/31 04:27:46 steve
|
|
||||||
* Rewrite the functor type to have fewer functor modes,
|
|
||||||
* and use objects to manage the different types.
|
|
||||||
* (Stephan Boettcher)
|
|
||||||
*
|
|
||||||
* Revision 1.28 2001/10/27 03:43:56 steve
|
|
||||||
* Propagate functor push, to make assign better.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,14 +19,11 @@
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||||
*/
|
*/
|
||||||
#ifdef HAVE_CVS_IDENT
|
#ifdef HAVE_CVS_IDENT
|
||||||
#ident "$Id: functor.h,v 1.49 2003/02/09 23:33:26 steve Exp $"
|
#ident "$Id: functor.h,v 1.50 2003/03/13 04:36:57 steve Exp $"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
# include "pointers.h"
|
# include "pointers.h"
|
||||||
# include "delay.h"
|
# include "delay.h"
|
||||||
#ifdef ENABLE_VVP_DEBUG
|
|
||||||
# include "debug.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The vvp_ipoint_t is an integral type that is 32bits. The low 2 bits
|
* The vvp_ipoint_t is an integral type that is 32bits. The low 2 bits
|
||||||
|
|
@ -182,13 +179,6 @@ struct functor_s {
|
||||||
unsigned inhibit : 1;
|
unsigned inhibit : 1;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
#if defined(WITH_DEBUG)
|
|
||||||
/* True if this functor triggers a breakpoint. */
|
|
||||||
unsigned break_flag : 1;
|
|
||||||
virtual void debug_print(vvp_ipoint_t fnc);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
public:
|
|
||||||
virtual void set(vvp_ipoint_t ipt, bool push,
|
virtual void set(vvp_ipoint_t ipt, bool push,
|
||||||
unsigned val, unsigned str = 0) = 0;
|
unsigned val, unsigned str = 0) = 0;
|
||||||
|
|
||||||
|
|
@ -266,11 +256,6 @@ void functor_set(vvp_ipoint_t ptr, unsigned val, unsigned str, bool push)
|
||||||
{
|
{
|
||||||
functor_t fp = functor_index(ptr);
|
functor_t fp = functor_index(ptr);
|
||||||
fp->set(ptr, push, val, str);
|
fp->set(ptr, push, val, str);
|
||||||
|
|
||||||
#if defined(WITH_DEBUG)
|
|
||||||
if (fp->break_flag)
|
|
||||||
breakpoint();
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -352,6 +337,9 @@ extern vvp_fvector_t vvp_fvector_continuous_new(unsigned size, vvp_ipoint_t p);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* $Log: functor.h,v $
|
* $Log: functor.h,v $
|
||||||
|
* Revision 1.50 2003/03/13 04:36:57 steve
|
||||||
|
* Remove the obsolete functor delete functions.
|
||||||
|
*
|
||||||
* Revision 1.49 2003/02/09 23:33:26 steve
|
* Revision 1.49 2003/02/09 23:33:26 steve
|
||||||
* Spelling fixes.
|
* Spelling fixes.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
17
vvp/main.cc
17
vvp/main.cc
|
|
@ -17,11 +17,10 @@
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||||
*/
|
*/
|
||||||
#ifdef HAVE_CVS_IDENT
|
#ifdef HAVE_CVS_IDENT
|
||||||
#ident "$Id: main.cc,v 1.34 2003/02/07 02:45:05 steve Exp $"
|
#ident "$Id: main.cc,v 1.35 2003/03/13 04:36:57 steve Exp $"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
# include "config.h"
|
# include "config.h"
|
||||||
# include "debug.h"
|
|
||||||
# include "parse_misc.h"
|
# include "parse_misc.h"
|
||||||
# include "compile.h"
|
# include "compile.h"
|
||||||
# include "schedule.h"
|
# include "schedule.h"
|
||||||
|
|
@ -123,7 +122,6 @@ int main(int argc, char*argv[])
|
||||||
int opt;
|
int opt;
|
||||||
unsigned flag_errors = 0;
|
unsigned flag_errors = 0;
|
||||||
const char*design_path = 0;
|
const char*design_path = 0;
|
||||||
bool debug_flag = false;
|
|
||||||
struct rusage cycles[3];
|
struct rusage cycles[3];
|
||||||
const char *logfile_name = 0x0;
|
const char *logfile_name = 0x0;
|
||||||
FILE *logfile = 0x0;
|
FILE *logfile = 0x0;
|
||||||
|
|
@ -144,16 +142,10 @@ int main(int argc, char*argv[])
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
while ((opt = getopt(argc, argv, "+dhl:M:m:v")) != EOF) switch (opt) {
|
while ((opt = getopt(argc, argv, "+dhl:M:m:v")) != EOF) switch (opt) {
|
||||||
case 'd':
|
|
||||||
debug_flag = true;
|
|
||||||
break;
|
|
||||||
case 'h':
|
case 'h':
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"Usage: vvp [options] input-file [+plusargs...]\n"
|
"Usage: vvp [options] input-file [+plusargs...]\n"
|
||||||
"Options:\n"
|
"Options:\n"
|
||||||
#if defined(WITH_DEBUG)
|
|
||||||
" -d Enter the debugger.\n"
|
|
||||||
#endif
|
|
||||||
" -h Print this help message.\n"
|
" -h Print this help message.\n"
|
||||||
" -l file Logfile, '-' for <stderr>\n"
|
" -l file Logfile, '-' for <stderr>\n"
|
||||||
" -M path VPI module directory\n"
|
" -M path VPI module directory\n"
|
||||||
|
|
@ -267,10 +259,6 @@ int main(int argc, char*argv[])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(WITH_DEBUG)
|
|
||||||
if (debug_flag)
|
|
||||||
breakpoint();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
schedule_simulate();
|
schedule_simulate();
|
||||||
|
|
||||||
|
|
@ -297,6 +285,9 @@ int main(int argc, char*argv[])
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* $Log: main.cc,v $
|
* $Log: main.cc,v $
|
||||||
|
* Revision 1.35 2003/03/13 04:36:57 steve
|
||||||
|
* Remove the obsolete functor delete functions.
|
||||||
|
*
|
||||||
* Revision 1.34 2003/02/07 02:45:05 steve
|
* Revision 1.34 2003/02/07 02:45:05 steve
|
||||||
* Mke getopt ignore options after the file name.
|
* Mke getopt ignore options after the file name.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||||
*/
|
*/
|
||||||
#ifdef HAVE_CVS_IDENT
|
#ifdef HAVE_CVS_IDENT
|
||||||
#ident "$Id: resolv.cc,v 1.16 2003/02/09 23:33:26 steve Exp $"
|
#ident "$Id: resolv.cc,v 1.17 2003/03/13 04:36:57 steve Exp $"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
# include "resolv.h"
|
# include "resolv.h"
|
||||||
|
|
@ -188,22 +188,12 @@ void resolv_functor_s::set(vvp_ipoint_t i, bool push, unsigned, unsigned str)
|
||||||
put_ostr(val, sval, false);
|
put_ostr(val, sval, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef WITH_DEBUG
|
|
||||||
# include <stdio.h>
|
|
||||||
|
|
||||||
static const char bitval_tab[4] = { '0', '1', 'x', 'z' };
|
|
||||||
void resolv_functor_s::debug_print(vvp_ipoint_t fnc)
|
|
||||||
{
|
|
||||||
printf("0x%x: Resolver tied to %02x\n", fnc, hiz_);
|
|
||||||
printf("0x%x: input strengths = %02x %02x %02x %02x\n", fnc,
|
|
||||||
istr[0], istr[1], istr[2], istr[3]);
|
|
||||||
functor_s::debug_print(fnc);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* $Log: resolv.cc,v $
|
* $Log: resolv.cc,v $
|
||||||
|
* Revision 1.17 2003/03/13 04:36:57 steve
|
||||||
|
* Remove the obsolete functor delete functions.
|
||||||
|
*
|
||||||
* Revision 1.16 2003/02/09 23:33:26 steve
|
* Revision 1.16 2003/02/09 23:33:26 steve
|
||||||
* Spelling fixes.
|
* Spelling fixes.
|
||||||
*
|
*
|
||||||
|
|
@ -223,40 +213,5 @@ void resolv_functor_s::debug_print(vvp_ipoint_t fnc)
|
||||||
*
|
*
|
||||||
* Revision 1.11 2001/12/15 02:11:51 steve
|
* Revision 1.11 2001/12/15 02:11:51 steve
|
||||||
* Give tri0 and tri1 their proper strengths.
|
* Give tri0 and tri1 their proper strengths.
|
||||||
*
|
|
||||||
* Revision 1.10 2001/12/15 01:54:39 steve
|
|
||||||
* Support tri0 and tri1 resolvers.
|
|
||||||
*
|
|
||||||
* Revision 1.9 2001/12/06 03:31:25 steve
|
|
||||||
* Support functor delays for gates and UDP devices.
|
|
||||||
* (Stephan Boettcher)
|
|
||||||
*
|
|
||||||
* Revision 1.8 2001/11/07 03:34:42 steve
|
|
||||||
* Use functor pointers where vvp_ipoint_t is unneeded.
|
|
||||||
*
|
|
||||||
* Revision 1.7 2001/10/31 04:27:47 steve
|
|
||||||
* Rewrite the functor type to have fewer functor modes,
|
|
||||||
* and use objects to manage the different types.
|
|
||||||
* (Stephan Boettcher)
|
|
||||||
*
|
|
||||||
* Revision 1.6 2001/10/14 01:45:11 steve
|
|
||||||
* Propogate strength-only changes from resolver.
|
|
||||||
*
|
|
||||||
* Revision 1.5 2001/07/21 02:34:39 steve
|
|
||||||
* Fix blending of ambiguous pairs.
|
|
||||||
*
|
|
||||||
* Revision 1.4 2001/05/31 04:12:43 steve
|
|
||||||
* Make the bufif0 and bufif1 gates strength aware,
|
|
||||||
* and accurately propagate strengths of outputs.
|
|
||||||
*
|
|
||||||
* Revision 1.3 2001/05/30 03:02:35 steve
|
|
||||||
* Propagate strength-values instead of drive strengths.
|
|
||||||
*
|
|
||||||
* Revision 1.2 2001/05/12 20:38:06 steve
|
|
||||||
* A resolver that understands some simple strengths.
|
|
||||||
*
|
|
||||||
* Revision 1.1 2001/05/09 02:53:53 steve
|
|
||||||
* Implement the .resolv syntax.
|
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||||
*/
|
*/
|
||||||
#ifdef HAVE_CVS_IDENT
|
#ifdef HAVE_CVS_IDENT
|
||||||
#ident "$Id: resolv.h,v 1.7 2002/08/12 01:35:08 steve Exp $"
|
#ident "$Id: resolv.h,v 1.8 2003/03/13 04:36:57 steve Exp $"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
# include "config.h"
|
# include "config.h"
|
||||||
|
|
@ -39,9 +39,6 @@ class resolv_functor_s: public functor_s {
|
||||||
|
|
||||||
virtual void set(vvp_ipoint_t i, bool push, unsigned val, unsigned str);
|
virtual void set(vvp_ipoint_t i, bool push, unsigned val, unsigned str);
|
||||||
|
|
||||||
#ifdef WITH_DEBUG
|
|
||||||
void debug_print(vvp_ipoint_t fnc);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
unsigned char istr[4];
|
unsigned char istr[4];
|
||||||
|
|
@ -50,6 +47,9 @@ class resolv_functor_s: public functor_s {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* $Log: resolv.h,v $
|
* $Log: resolv.h,v $
|
||||||
|
* Revision 1.8 2003/03/13 04:36:57 steve
|
||||||
|
* Remove the obsolete functor delete functions.
|
||||||
|
*
|
||||||
* Revision 1.7 2002/08/12 01:35:08 steve
|
* Revision 1.7 2002/08/12 01:35:08 steve
|
||||||
* conditional ident string using autoconfig.
|
* conditional ident string using autoconfig.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -17,12 +17,11 @@
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||||
*/
|
*/
|
||||||
#ifdef HAVE_CVS_IDENT
|
#ifdef HAVE_CVS_IDENT
|
||||||
#ident "$Id: vthread.cc,v 1.104 2003/02/27 20:36:29 steve Exp $"
|
#ident "$Id: vthread.cc,v 1.105 2003/03/13 04:36:57 steve Exp $"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
# include "vthread.h"
|
# include "vthread.h"
|
||||||
# include "codes.h"
|
# include "codes.h"
|
||||||
# include "debug.h"
|
|
||||||
# include "schedule.h"
|
# include "schedule.h"
|
||||||
# include "functor.h"
|
# include "functor.h"
|
||||||
# include "ufunc.h"
|
# include "ufunc.h"
|
||||||
|
|
@ -586,9 +585,6 @@ bool of_BLEND(vthread_t thr, vvp_code_t cp)
|
||||||
|
|
||||||
bool of_BREAKPOINT(vthread_t thr, vvp_code_t cp)
|
bool of_BREAKPOINT(vthread_t thr, vvp_code_t cp)
|
||||||
{
|
{
|
||||||
#if defined(WITH_DEBUG)
|
|
||||||
breakpoint();
|
|
||||||
#endif
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2679,6 +2675,9 @@ bool of_CALL_UFUNC(vthread_t thr, vvp_code_t cp)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* $Log: vthread.cc,v $
|
* $Log: vthread.cc,v $
|
||||||
|
* Revision 1.105 2003/03/13 04:36:57 steve
|
||||||
|
* Remove the obsolete functor delete functions.
|
||||||
|
*
|
||||||
* Revision 1.104 2003/02/27 20:36:29 steve
|
* Revision 1.104 2003/02/27 20:36:29 steve
|
||||||
* Add the cvt/vr instruction.
|
* Add the cvt/vr instruction.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue