From 1674d692b76cabc3071e73d8441449084909f1e8 Mon Sep 17 00:00:00 2001 From: steve Date: Wed, 29 Dec 2004 23:45:13 +0000 Subject: [PATCH] Add the part concatenation node (.concat). Add a vvp_event_anyedge class to handle the special case of .event statements of edge type. This also frees the posedge/negedge types to handle all 4 inputs. Implement table functor recv_vec4 method to receive and process vectors. --- vvp/Makefile.in | 4 +-- vvp/README.txt | 22 ++++++++++++- vvp/compile.h | 65 +++++++++++++------------------------ vvp/event.cc | 85 ++++++++++++++++++++++++++++++++++++++++--------- vvp/event.h | 33 +++++++++++++++++-- vvp/lexor.lex | 13 +++++++- vvp/logic.cc | 64 +++++++++++++++++++++++++++++++++++-- vvp/logic.h | 32 ++++++++++++++++++- vvp/parse.y | 17 +++++++++- vvp/vvp_net.h | 26 +++++++++++++-- 10 files changed, 289 insertions(+), 72 deletions(-) diff --git a/vvp/Makefile.in b/vvp/Makefile.in index aa75191de..856a4fd5f 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.62 2004/12/11 02:31:29 steve Exp $" +#ident "$Id: Makefile.in,v 1.63 2004/12/29 23:45:13 steve Exp $" # # SHELL = /bin/sh @@ -81,7 +81,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 \ vpip_to_dec.o vpip_format.o vvp_vpi.o -O = main.o parse.o parse_misc.o lexor.o arith.o bufif.o compile.o \ +O = main.o parse.o parse_misc.o lexor.o arith.o bufif.o compile.o concat.o \ functor.o fvectors.o npmos.o part.o resolv.o stop.o symbols.o ufunc.o \ codes.o \ vthread.o schedule.o statistics.o tables.o udp.o vvp_net.o memory.o \ diff --git a/vvp/README.txt b/vvp/README.txt index 6fb1711c9..fa0423219 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.49 2004/12/18 18:52:44 steve Exp $ + * $Id: README.txt,v 1.50 2004/12/29 23:45:13 steve Exp $ */ VVP SIMULATION ENGINE @@ -450,6 +450,26 @@ bit number, and a width. Normally, those bits are constant values. The input is typically a .reg or .net, but can be any vector node in the netlist. +PART CONCATENATION STATEMENTS: + +The opposite of the part select statement is the part concatenation +statement. The .concat statment is a functor node that takes at input +vector values and produces a single vector output that is the +concatenation of all the inputs. + +