From 52c7108782213fa60d0eec97a18d28b881290603 Mon Sep 17 00:00:00 2001 From: steve Date: Tue, 20 Mar 2001 06:16:23 +0000 Subject: [PATCH] Add support for variable vectors. --- vvp/Makefile.in | 4 +- vvp/README.txt | 43 ++++++++++---- vvp/codes.cc | 8 ++- vvp/codes.h | 6 +- vvp/compile.cc | 58 +++++++++++------- vvp/compile.h | 16 +++-- vvp/functor.cc | 21 ++++++- vvp/functor.h | 10 +++- vvp/main.cc | 6 +- vvp/opcodes.txt | 5 ++ vvp/parse.y | 57 ++++++++++++------ vvp/parse_misc.cc | 16 +++-- vvp/parse_misc.h | 20 +++++-- vvp/pointers.h | 14 ++++- vvp/vpi.txt | 17 +++++- vvp/vpi_priv.h | 24 +++++++- vvp/vpi_signal.cc | 147 ++++++++++++++++++++++++++++++++++++++++++++++ vvp/vthread.cc | 11 +++- 18 files changed, 402 insertions(+), 81 deletions(-) create mode 100644 vvp/vpi_signal.cc diff --git a/vvp/Makefile.in b/vvp/Makefile.in index f84b57c72..f591e50cd 100644 --- a/vvp/Makefile.in +++ b/vvp/Makefile.in @@ -16,7 +16,7 @@ # 59 Temple Place - Suite 330 # Boston, MA 02111-1307, USA # -#ident "$Id: Makefile.in,v 1.7 2001/03/19 04:37:59 steve Exp $" +#ident "$Id: Makefile.in,v 1.8 2001/03/20 06:16:23 steve Exp $" # # SHELL = /bin/sh @@ -55,7 +55,7 @@ distclean: clean rm -f config.h Makefile config.cache config.log config.status V = vpi_modules.o vpi_const.o vpi_iter.o vpi_mcd.o vpi_priv.o \ -vpi_scope.o vpi_tasks.o +vpi_scope.o vpi_signal.o vpi_tasks.o O = main.o parse.o parse_misc.o lexor.o compile.o functor.o symbols.o \ codes.o vthread.o schedule.o tables.o $V diff --git a/vvp/README.txt b/vvp/README.txt index 8c34fa128..c03015605 100644 --- a/vvp/README.txt +++ b/vvp/README.txt @@ -1,7 +1,7 @@ /* * Copyright (c) 2001 Stephen Williams (steve@icarus.com) * - * $Id: README.txt,v 1.4 2001/03/14 19:26:15 steve Exp $ + * $Id: README.txt,v 1.5 2001/03/20 06:16:23 steve Exp $ */ VVP SIMULATION ENGINE @@ -52,7 +52,13 @@ keyword. Symbols are references to labels. It is not necessary for a label to be declared before its use in a symbol, but it must be declared -eventually. +eventually. When symbols refer to functors, the symbol represents the +vvp_ipoint_t pointer to the output. (Inputs cannot, and need not, be +references symbolically.) + +If the functor is part of a vector, then the symbol is the +vvp_ipoint_t for the first functor. The [] operator can then be used +to reference a functor other then the first in the vector. FUNCTOR STATEMENTS: @@ -81,20 +87,30 @@ combining up to four inputs down to one output. VARIABLE STATEMENTS: -A variable is a bit that can be written by behavioral code (so has no -structural input) and propagates its output to a functor. The general -syntax of a variable is: +A variable is a bit vector that can be written by behavioral code (so +has no structural input) and propagates its output to a functor. The +general syntax of a variable is: -