Merge branch 'master' of steve-icarus@icarus.com:git/verilog
This commit is contained in:
commit
76039cf595
2
BUGS.txt
2
BUGS.txt
|
|
@ -72,7 +72,7 @@ reporting problems with. However, if you clearly explain what is right
|
|||
and wrong about the generated netlist, I will probably be able to fix
|
||||
the problem. It may take a few iterations.
|
||||
|
||||
In this case, if possible include not only the sample verilog program,
|
||||
In this case, if possible include not only the sample Verilog program,
|
||||
but the generated netlist file(s) and a clear indication of what went
|
||||
wrong. If it is not clear to me, I will ask for clarification.
|
||||
|
||||
|
|
|
|||
|
|
@ -41,8 +41,6 @@ libdir = @libdir@
|
|||
includedir = @includedir@
|
||||
mandir = @mandir@
|
||||
|
||||
libdir64 = @libdir64@
|
||||
|
||||
dllib=@DLLIB@
|
||||
|
||||
CC = @CC@
|
||||
|
|
@ -147,8 +145,6 @@ iverilog-vpi: iverilog-vpi.sh
|
|||
-e 's;@IVCXX@;$(CXX);' \
|
||||
-e 's;@IVCFLAGS@;$(CXXFLAGS);' \
|
||||
-e 's;@INCLUDEDIR@;@includedir@;' \
|
||||
-e 's;@LIBDIR64@;@libdir64@;' \
|
||||
-e 's;@VPIDIR1@;@vpidir1@;' -e 's;@VPIDIR2@;@vpidir2@;' \
|
||||
-e 's;@LIBDIR@;@libdir@;' $< > $@
|
||||
chmod +x $@
|
||||
endif
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ bindir = @bindir@
|
|||
libdir = @libdir@
|
||||
includedir = $(prefix)/include
|
||||
|
||||
vpidir = @libdir@/ivl/@vpidir1@
|
||||
vpidir = @libdir@/ivl
|
||||
|
||||
CC = @CC@
|
||||
INSTALL = @INSTALL@
|
||||
|
|
@ -48,14 +48,6 @@ SHARED = @shared@
|
|||
|
||||
all:
|
||||
|
||||
ifeq (@enable_vvp32@,yes)
|
||||
vpidir32 = $(libdir)/ivl/@vpidir2@
|
||||
ALL32 = all32
|
||||
INSTALL32 = install32
|
||||
UNINSTALL32 = uninstall32
|
||||
include $(srcdir)/enable_vvp32.mk
|
||||
endif
|
||||
|
||||
all: dep cadpli.vpl $(ALL32)
|
||||
|
||||
# No specific check operations.
|
||||
|
|
@ -97,8 +89,4 @@ uninstall: $(UNINSTALL32)
|
|||
|
||||
uninstall32:
|
||||
|
||||
ifeq (@enable_vvp32@,yes)
|
||||
include $(srcdir)/enable_vvp32.mk
|
||||
endif
|
||||
|
||||
-include $(patsubst %.o, dep/%.d, $O)
|
||||
|
|
|
|||
|
|
@ -12,10 +12,6 @@ AX_WIN32
|
|||
|
||||
AC_PROG_INSTALL
|
||||
|
||||
# vvp32 is by default disabled
|
||||
#enable_vvp32=no
|
||||
AC_SUBST(enable_vvp32)
|
||||
|
||||
AC_CHECK_HEADERS(malloc.h)
|
||||
|
||||
AC_CHECK_SIZEOF(unsigned long long)
|
||||
|
|
@ -62,15 +58,4 @@ AX_C_UNDERSCORES_TRAILING
|
|||
|
||||
AX_CPP_IDENT
|
||||
|
||||
# where to put vpi subdirectories
|
||||
AC_MSG_CHECKING(for VPI subdirectories)
|
||||
if test x${vpidir1} = x
|
||||
then
|
||||
vpidir1="."
|
||||
fi
|
||||
|
||||
AC_SUBST(vpidir1)
|
||||
AC_SUBST(vpidir2)
|
||||
AC_MSG_RESULT(${vpidir1} ${vpidir2})
|
||||
|
||||
AC_OUTPUT(Makefile)
|
||||
|
|
|
|||
|
|
@ -1,39 +0,0 @@
|
|||
#
|
||||
# This source code is free software; you can redistribute it
|
||||
# and/or modify it in source code form under the terms of the GNU
|
||||
# Library 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 Library General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Library 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
|
||||
#
|
||||
#ident "$Id: enable_vvp32.mk,v 1.1 2003/10/09 01:07:20 steve Exp $"
|
||||
#
|
||||
|
||||
all32: bin32 bin32/cadpli.vpl
|
||||
|
||||
bin32:
|
||||
mkdir bin32
|
||||
|
||||
bin32/%.o: %.c
|
||||
$(CC) -m32 -Wall -I$(srcdir) -I$(srcdir)/.. $(CPPFLAGS) $(CFLAGS) -MD -c $< -o $@
|
||||
|
||||
bin32/cadpli.vpl: $(addprefix bin32/,$O) ../vvp/bin32/libvpi.a ../libveriuser/bin32/libveriuser.o
|
||||
$(CC) $(SHARED) -m32 -o $@ $(addprefix bin32/,$O) ../libveriuser/bin32/libveriuser.o ../vvp/bin32/libvpi.a
|
||||
|
||||
install32: all32 $(vpidir32)/cadpli.vpl
|
||||
|
||||
$(vpidir32)/cadpli.vpl: bin32/cadpli.vpl
|
||||
$(INSTALL_PROGRAM) bin32/cadpli.vpl $(vpidir32)/cadpli.vpl
|
||||
|
||||
uninstall32:
|
||||
rm -f $(vpidir32)/cadpli.vpl
|
||||
26
configure.in
26
configure.in
|
|
@ -42,11 +42,6 @@ AC_SUBST(EXEEXT)
|
|||
# Combined check for Microsoft-related bogosities; sets WIN32 if found
|
||||
AX_WIN32
|
||||
|
||||
# vvp32 is by default disabled
|
||||
#enable_vvp32=no
|
||||
AC_SUBST(enable_vvp32)
|
||||
|
||||
|
||||
AC_LANG_CPLUSPLUS
|
||||
|
||||
AC_CHECK_HEADERS(getopt.h malloc.h inttypes.h libiberty.h iosfwd sys/wait.h)
|
||||
|
|
@ -123,27 +118,6 @@ AX_C_UNDERSCORES_TRAILING
|
|||
|
||||
AX_CPP_IDENT
|
||||
|
||||
# If not otherwise specified, set the libdir64 variable
|
||||
# to the same as libdir.
|
||||
AC_MSG_CHECKING(for libdir64 path)
|
||||
if test x${libdir64} = x
|
||||
then
|
||||
libdir64="${libdir}"
|
||||
fi
|
||||
AC_SUBST(libdir64)
|
||||
AC_MSG_RESULT(${libdir64})
|
||||
|
||||
# where to put vpi subdirectories
|
||||
AC_MSG_CHECKING(for VPI subdirectories)
|
||||
if test x${vpidir1} = x
|
||||
then
|
||||
vpidir1="."
|
||||
fi
|
||||
|
||||
AC_SUBST(vpidir1)
|
||||
AC_SUBST(vpidir2)
|
||||
AC_MSG_RESULT(${vpidir1} ${vpidir2})
|
||||
|
||||
# XXX disable tgt-fpga for the moment
|
||||
AC_CONFIG_SUBDIRS(vvp vpi tgt-stub tgt-null tgt-vvp libveriuser cadpli)
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
* iverilog -tpal -ppart=generic-22v10-plcc -opal_reg.jed pal_reg.v
|
||||
*
|
||||
* The output file name (passed through the -o<file> switch) can be
|
||||
* any file you desire. If the compilation and fittin all succeed, the
|
||||
* any file you desire. If the compilation and fitting all succeed, the
|
||||
* output file will be a JEDEC file that you can take to your favorite
|
||||
* PROM programmer to program the part.
|
||||
*
|
||||
|
|
@ -45,7 +45,7 @@
|
|||
*
|
||||
* The output drivers are controlled by a single active low output
|
||||
* enable. I used bufif0 devices in this example, but the exact same
|
||||
* thing can be achived with a continuous assignment like so:
|
||||
* thing can be achieved with a continuous assignment like so:
|
||||
*
|
||||
* assign out = oe? 8'hzz : Q;
|
||||
*
|
||||
|
|
@ -76,7 +76,7 @@ endmodule
|
|||
* a PLCC package.
|
||||
*
|
||||
* Note that this module has no logic in it. It is a convention I use
|
||||
* that I put all the functionality in a seperate module (seen above)
|
||||
* that I put all the functionality in a separate module (seen above)
|
||||
* and isolate the Icarus Verilog specific $attribute madness into a
|
||||
* top-level module. The advantage of this style is that the entire
|
||||
* module can be `ifdef'ed out when doing simulation and you don't
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@
|
|||
*
|
||||
* The $dumpvars task tells the simulation what variables to write to
|
||||
* the VCD output. The first parameter is how far to descend while
|
||||
* scanning a scope, and the remaining paramters are signals or scope
|
||||
* scanning a scope, and the remaining parameters are signals or scope
|
||||
* names to include in the dump. If a scope name is given, all the
|
||||
* signals within the scope are dumped. If a wire or register name is
|
||||
* given, that signal is included.
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
*/
|
||||
|
||||
/*
|
||||
* This module is a synthesizeable square-root function. It is also a
|
||||
* This module is a synthesizable square-root function. It is also a
|
||||
* detailed example of how to target Xilinx Virtex parts using
|
||||
* Icarus Verilog. In fact, for no particular reason other than to
|
||||
* be excessively specific, I will step through the process of
|
||||
|
|
@ -30,7 +30,7 @@
|
|||
* In addition to Icarus Verilog, you will need implementation
|
||||
* software from Xilinx. As of this writing, this example was tested
|
||||
* with Foundation 4.2i, but it should work the same with ISE and
|
||||
* Webpack software.
|
||||
* WebPACK software.
|
||||
*
|
||||
* This example source contains all the Verilog needed to do
|
||||
* everything described below. We use conditional compilation to
|
||||
|
|
@ -55,7 +55,7 @@
|
|||
* "PASSED" and finishes the simulation.
|
||||
*
|
||||
* When you take a close look at the "main" module below, you will see
|
||||
* that it uses Verilog constructs that are not synthesizeable. This
|
||||
* that it uses Verilog constructs that are not synthesizable. This
|
||||
* is fine, as we will never try to synthesize it.
|
||||
*
|
||||
* LIBRARY PARTS
|
||||
|
|
@ -78,7 +78,7 @@
|
|||
* Without any preprocessor directives, the only module is the sqrt32
|
||||
* module, so sqrt32 is compiled as the root. The ports of the module
|
||||
* are automatically made into ports of the sqrt32.edf netlist, and
|
||||
* the contents of the sqrt32 module are connected approprately.
|
||||
* the contents of the sqrt32 module are connected appropriately.
|
||||
*
|
||||
* COMPLETE CHIP DESIGNS
|
||||
*
|
||||
|
|
|
|||
|
|
@ -26,20 +26,9 @@ CFLAGS="@PIC@ @IVCFLAGS@ -I@INCLUDEDIR@"
|
|||
|
||||
# These are used for linking...
|
||||
LD=$CC
|
||||
LDFLAGS32="@SHARED@ -L@LIBDIR@"
|
||||
LDFLAGS64="@SHARED@ -L@LIBDIR64@"
|
||||
LDFLAGS="$LDFLAGS64"
|
||||
LDFLAGS="@SHARED@ -L@LIBDIR@"
|
||||
LDLIBS="-lveriuser -lvpi"
|
||||
|
||||
INSTDIR64="@VPIDIR1@"
|
||||
INSTDIR32="@VPIDIR2@"
|
||||
if test x$INSTDIR32 = x
|
||||
then
|
||||
INSTDIR32=$INSTDIR64
|
||||
fi
|
||||
|
||||
INSTDIR="$INSTDIR64"
|
||||
|
||||
CCSRC=
|
||||
CXSRC=
|
||||
OBJ=
|
||||
|
|
@ -96,11 +85,6 @@ do
|
|||
-D*) DEFS="$DEFS $parm"
|
||||
;;
|
||||
|
||||
-m32) LDFLAGS="-m32 $LDFLAGS32"
|
||||
CFLAGS="-m32 $CFLAGS"
|
||||
INSTDIR="$INSTDIR32"
|
||||
;;
|
||||
|
||||
--cflags)
|
||||
echo "$CFLAGS"
|
||||
exit;
|
||||
|
|
@ -117,7 +101,7 @@ do
|
|||
;;
|
||||
|
||||
--install-dir)
|
||||
echo "@LIBDIR@/ivl/$INSTDIR"
|
||||
echo "@LIBDIR@/ivl"
|
||||
exit
|
||||
;;
|
||||
esac
|
||||
|
|
|
|||
|
|
@ -30,7 +30,6 @@ VPATH = $(srcdir)
|
|||
|
||||
bindir = @bindir@
|
||||
libdir = @libdir@
|
||||
libdir64 = @libdir64@
|
||||
includedir = $(prefix)/include
|
||||
|
||||
CC = @CC@
|
||||
|
|
@ -58,12 +57,6 @@ getlongp.o getp.o getsimtime.o io_print.o math.o mc_scan_plusargs.o \
|
|||
nodeinfo.o nump.o putlongp.o putp.o spname.o typep.o workarea.o \
|
||||
veriusertfs.o priv.o $A
|
||||
|
||||
ifeq (@enable_vvp32@,yes)
|
||||
ALL32 = all32
|
||||
INSTALL32 = install32
|
||||
UNINSTALL32 = uninstall32
|
||||
endif
|
||||
|
||||
all: dep libveriuser.a $(ALL32)
|
||||
|
||||
check: all
|
||||
|
|
@ -93,40 +86,15 @@ clean:
|
|||
distclean: clean
|
||||
rm -f Makefile config.status config.log config.cache config.h
|
||||
|
||||
install:: all installdirs $(libdir64)/libveriuser.a $(INSTALL32)
|
||||
install:: all installdirs $(libdir)/libveriuser.a $(INSTALL32)
|
||||
|
||||
$(libdir64)/libveriuser.a: ./libveriuser.a
|
||||
$(INSTALL_DATA) ./libveriuser.a $(libdir64)/libveriuser.a
|
||||
$(libdir)/libveriuser.a: ./libveriuser.a
|
||||
$(INSTALL_DATA) ./libveriuser.a $(libdir)/libveriuser.a
|
||||
|
||||
installdirs: mkinstalldirs
|
||||
$(srcdir)/mkinstalldirs $(includedir) $(libdir64)
|
||||
$(srcdir)/mkinstalldirs $(includedir) $(libdir)
|
||||
|
||||
uninstall::
|
||||
rm -f $(libdir64)/libveriuser.a
|
||||
|
||||
ifeq (@enable_vvp32@,yes)
|
||||
all32: bin32 bin32/libveriuser.a
|
||||
|
||||
bin32:
|
||||
mkdir bin32
|
||||
|
||||
bin32/%.o: %.c
|
||||
$(CC) -m32 $(CPPFLAGS) $(CFLAGS) -MD -c $< -o $@
|
||||
|
||||
bin32/libveriuser.o: $(addprefix bin32/,$O)
|
||||
$(LD) -melf_i386 -r -o $@ $(addprefix bin32/,$O)
|
||||
|
||||
bin32/libveriuser.a: bin32/libveriuser.o
|
||||
rm -f $@
|
||||
ar cvq $@ bin32/libveriuser.o
|
||||
$(RANLIB) $@
|
||||
|
||||
install32: $(libdir)/libveriuser.a
|
||||
|
||||
$(libdir)/libveriuser.a: bin32/libveriuser.a
|
||||
$(INSTALL_DATA) bin32/libveriuser.a $(libdir)/libveriuser.a
|
||||
|
||||
-include $(patsubst bin32/%.o, bin32/%.d, $(addprefix bin32/,$O))
|
||||
endif
|
||||
rm -f $(libdir)/libveriuser.a
|
||||
|
||||
-include $(patsubst %.o, dep/%.d, $O)
|
||||
|
|
|
|||
|
|
@ -10,10 +10,6 @@ AC_PROG_RANLIB
|
|||
AC_EXEEXT
|
||||
AX_CPP_IDENT
|
||||
|
||||
# vvp32 is by default disabled
|
||||
#enable_vvp32=no
|
||||
AC_SUBST(enable_vvp32)
|
||||
|
||||
AC_CHECK_HEADERS(malloc.h)
|
||||
|
||||
AC_CHECK_SIZEOF(unsigned long long)
|
||||
|
|
@ -29,14 +25,4 @@ AX_C_PICFLAG
|
|||
AC_SUBST(EXEEXT)
|
||||
AC_SUBST(EXTRALIBS)
|
||||
|
||||
# If not otherwise specified, set the libdir64 variable
|
||||
# to the same as libdir.
|
||||
AC_MSG_CHECKING(for libdir64 path)
|
||||
if test x${libdir64} = x
|
||||
then
|
||||
libdir64="${libdir}"
|
||||
fi
|
||||
AC_SUBST(libdir64)
|
||||
AC_MSG_RESULT(${libdir64})
|
||||
|
||||
AC_OUTPUT(Makefile)
|
||||
|
|
|
|||
|
|
@ -91,7 +91,7 @@ commands below.
|
|||
The obvious step 2, then, is install the mingw compilers. These can be
|
||||
found at the web page <http://www.mingw.org>. The Mingw-5.x.x package
|
||||
is a convenient remote installer. Download this program and run
|
||||
it. The installer will ask wich components you want to install. You
|
||||
it. The installer will ask which components you want to install. You
|
||||
need only the base C compiler and the C++ compiler. (You may install
|
||||
other languages if you wish.)
|
||||
|
||||
|
|
@ -150,7 +150,7 @@ You will need these gnuwin32 packages to compile Icarus Verilog:
|
|||
I suggest creating a common directory for holding all your gnuwin32
|
||||
packages. I use C:\gnuwin32. The download page at the gnuwin32 site
|
||||
has a "setup" link for each of these packages. Click the setup to
|
||||
download the installer for each of the desired programes, then execute
|
||||
download the installer for each of the desired programs, then execute
|
||||
the downloaded .exe files to invoke the installer. Install into the
|
||||
c:\gunwin32 directory.
|
||||
|
||||
|
|
|
|||
|
|
@ -105,7 +105,7 @@ void NetPDelay::nex_output(NexusSet&out)
|
|||
|
||||
/*
|
||||
* For the purposes of synthesis, system task calls have no output at
|
||||
* all. This is OK because most system tasks are not synthesizeable in
|
||||
* all. This is OK because most system tasks are not synthesizable in
|
||||
* the first place.
|
||||
*/
|
||||
void NetSTask::nex_output(NexusSet&out)
|
||||
|
|
|
|||
24
verilog.spec
24
verilog.spec
|
|
@ -12,16 +12,6 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-20070812-%{release}-root
|
|||
|
||||
BuildRequires: gcc-c++, zlib-devel, bison, flex, gperf, readline-devel
|
||||
|
||||
%ifarch x86_64
|
||||
BuildRequires: bzip2-32bit, glibc-devel-32bit, glibc-32bit, zlib-devel-32bit
|
||||
BuildRequires: termcap-32bit, readline-32bit, readline-devel-32bit
|
||||
|
||||
%if 0%{?suse_version} == 1020
|
||||
BuildRequires: gcc-32bit, libstdc++41-devel-32bit
|
||||
%endif
|
||||
|
||||
%endif
|
||||
|
||||
# This provides tag allows me to use a more specific name for things
|
||||
# that actually depend on me, Icarus Verilog.
|
||||
Provides: iverilog
|
||||
|
|
@ -35,11 +25,7 @@ to the IEEE-1364 standard.
|
|||
%setup -n verilog-20070812
|
||||
|
||||
%build
|
||||
%ifarch x86_64
|
||||
./configure --prefix=/usr --mandir='$(prefix)/share/man' libdir64='$(prefix)/lib64' vpidir1=vpi64 vpidir2=. --enable-vvp32
|
||||
%else
|
||||
./configure --prefix=/usr --mandir='$(prefix)/share/man'
|
||||
%endif
|
||||
make CXXFLAGS=-O
|
||||
|
||||
%install
|
||||
|
|
@ -77,13 +63,6 @@ rm -rf $RPM_BUILD_ROOT
|
|||
#%attr(-,root,root) /usr/lib/ivl/fpga-s.conf
|
||||
#%attr(-,root,root) /usr/lib/ivl/xnf.conf
|
||||
#%attr(-,root,root) /usr/lib/ivl/xnf-s.conf
|
||||
%ifarch x86_64
|
||||
%attr(-,root,root) /usr/bin/vvp32
|
||||
%attr(-,root,root) /usr/lib/ivl/vpi64/system.vpi
|
||||
%attr(-,root,root) /usr/lib/ivl/vpi64/cadpli.vpl
|
||||
%attr(-,root,root) /usr/lib64/libvpi.a
|
||||
%attr(-,root,root) /usr/lib64/libveriuser.a
|
||||
%endif
|
||||
%attr(-,root,root) /usr/lib/ivl/system.sft
|
||||
%attr(-,root,root) /usr/lib/ivl/system.vpi
|
||||
%attr(-,root,root) /usr/lib/ivl/cadpli.vpl
|
||||
|
|
@ -98,3 +77,6 @@ rm -rf $RPM_BUILD_ROOT
|
|||
%changelog -n verilog
|
||||
* Sun Feb 28 2007 - steve@icarus.com
|
||||
- Added formatting suitable for openSUSE packaging.
|
||||
|
||||
* Fri Jan 25 2008 - steve@icarus.com
|
||||
- Removed vvp32 support for x86_64 build.
|
||||
|
|
|
|||
|
|
@ -290,7 +290,7 @@ uint64_t verinum::as_ulong64() const
|
|||
*
|
||||
* If the value is undefined, return 0.
|
||||
*
|
||||
* This function presumes that the native format is 2s compliment
|
||||
* This function presumes that the native format is 2s complement
|
||||
* (pretty safe these days) and masks/sets bits accordingly. If the
|
||||
* value is too large for the native form, it truncates the high bits.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ bindir = @bindir@
|
|||
libdir = @libdir@
|
||||
includedir = $(prefix)/include
|
||||
|
||||
vpidir = $(libdir)/ivl/@vpidir1@
|
||||
vpidir = $(libdir)/ivl
|
||||
|
||||
CC = @CC@
|
||||
INSTALL = @INSTALL@
|
||||
|
|
@ -46,13 +46,6 @@ CPPFLAGS = @ident_support@ -I. -I$(srcdir)/.. -I$(srcdir) -I.. @file64_support@
|
|||
CFLAGS = -Wall @CFLAGS@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
|
||||
ifeq (@enable_vvp32@,yes)
|
||||
vpidir32 = $(libdir)/ivl/@vpidir2@
|
||||
ALL32 = all32
|
||||
INSTALL32 = install32
|
||||
UNINSTALL32 = uninistall32
|
||||
endif
|
||||
|
||||
all: dep system.vpi $(ALL32)
|
||||
|
||||
dep:
|
||||
|
|
@ -95,28 +88,6 @@ sdf_lexor.c: sdf_lexor.lex
|
|||
sdf_parse.c sdf_parse.h: $(srcdir)/sdf_parse.y
|
||||
$(YACC) --verbose -d -p sdf -o sdf_parse.c $(srcdir)/sdf_parse.y
|
||||
|
||||
ifeq (@enable_vvp32@,yes)
|
||||
|
||||
all32: bin32 bin32/system.vpi
|
||||
|
||||
bin32:
|
||||
mkdir bin32
|
||||
|
||||
bin32/%.o: %.c
|
||||
$(CC) -m32 $(CPPFLAGS) $(CFLAGS) -MD -c $< -o $@
|
||||
|
||||
bin32/system.vpi: $(addprefix bin32/,$O)
|
||||
$(CC) -m32 @shared@ -o $@ $(addprefix bin32/,$O) -L../vvp/bin32 $(LDFLAGS) -lvpi $(SYSTEM_VPI_LDFLAGS)
|
||||
|
||||
install32: all32 $(vpidir32)/system.vpi
|
||||
|
||||
$(vpidir32)/system.vpi: bin32/system.vpi
|
||||
$(INSTALL_PROGRAM) bin32/system.vpi $(vpidir32)/system.vpi
|
||||
|
||||
uninstall32:
|
||||
rm -f $(vpidir32)/system.vpi
|
||||
endif
|
||||
|
||||
clean:
|
||||
rm -rf *.o sys_readmem_lex.c dep system.vpi bin32
|
||||
rm -f sdf_lexor.c sdf_parse.c sdf_parse.output sdf_parse.h
|
||||
|
|
@ -126,7 +97,7 @@ distclean: clean
|
|||
|
||||
check: all
|
||||
|
||||
install: all installdirs $(vpidir)/system.vpi $(libdir)/ivl/system.sft $(INSTALL32)
|
||||
install: all installdirs $(vpidir)/system.vpi $(libdir)/ivl/system.sft
|
||||
|
||||
$(vpidir)/system.vpi: ./system.vpi
|
||||
$(INSTALL_PROGRAM) ./system.vpi $(vpidir)/system.vpi
|
||||
|
|
@ -137,7 +108,7 @@ $(libdir)/ivl/system.sft: system.sft
|
|||
installdirs: ../mkinstalldirs
|
||||
$(srcdir)/../mkinstalldirs $(vpidir)
|
||||
|
||||
uninstall: $(UNINSTALL32)
|
||||
uninstall:
|
||||
rm -f $(vpidir)/system.vpi
|
||||
rm -f $(libdir)/ivl/system.sft
|
||||
|
||||
|
|
|
|||
|
|
@ -31,11 +31,6 @@ AX_WIN32
|
|||
|
||||
AX_CPP_IDENT
|
||||
|
||||
# vvp32 is by default disabled
|
||||
#enable_vvp32=no
|
||||
AC_SUBST(enable_vvp32)
|
||||
|
||||
|
||||
AC_CHECK_HEADERS(malloc.h inttypes.h)
|
||||
|
||||
AC_CHECK_LIB(z, gzwrite)
|
||||
|
|
@ -99,25 +94,4 @@ AX_LD_SHAREDLIB_OPTS
|
|||
|
||||
AX_CPP_IDENT
|
||||
|
||||
# If not otherwise specified, set the libdir64 variable
|
||||
# to the same as libdir.
|
||||
AC_MSG_CHECKING(for libdir64 path)
|
||||
if test x${libdir64} = x
|
||||
then
|
||||
libdir64="${libdir}"
|
||||
fi
|
||||
AC_SUBST(libdir64)
|
||||
AC_MSG_RESULT(${libdir64})
|
||||
|
||||
# where to put vpi subdirectories
|
||||
AC_MSG_CHECKING(for VPI subdirectories)
|
||||
if test x${vpidir1} = x
|
||||
then
|
||||
vpidir1="."
|
||||
fi
|
||||
|
||||
AC_SUBST(vpidir1)
|
||||
AC_SUBST(vpidir2)
|
||||
AC_MSG_RESULT(${vpidir1} ${vpidir2})
|
||||
|
||||
AC_OUTPUT(Makefile)
|
||||
|
|
|
|||
|
|
@ -33,8 +33,6 @@ libdir = @libdir@
|
|||
mandir = @mandir@
|
||||
includedir = @includedir@
|
||||
|
||||
libdir64 = @libdir64@
|
||||
|
||||
CC = @CC@
|
||||
HOSTCC = @CC@
|
||||
CXX = @CXX@
|
||||
|
|
@ -58,13 +56,7 @@ ifneq (x@vpidir2@,x)
|
|||
MDIR2 = -DMODULE_DIR2=\"$(libdir)/ivl/@vpidir2@\"
|
||||
endif
|
||||
|
||||
ifeq (@enable_vvp32@,yes)
|
||||
ALL32 = all32
|
||||
INSTALL32 = install32
|
||||
UNINSTALL32 = uninstall32
|
||||
endif
|
||||
|
||||
all: dep vvp@EXEEXT@ libvpi.a $(ALL32)
|
||||
all: dep vvp@EXEEXT@ libvpi.a
|
||||
|
||||
clean:
|
||||
rm -f *.o *~ parse.cc parse.cc.output parse.h lexor.cc tables.cc
|
||||
|
|
@ -125,33 +117,6 @@ tables.cc: $(srcdir)/draw_tt.c
|
|||
./draw_tt > tables.cc
|
||||
rm draw_tt@EXEEXT@
|
||||
|
||||
ifeq (@enable_vvp32@,yes)
|
||||
|
||||
all32: bin32 vvp32
|
||||
|
||||
bin32:
|
||||
mkdir bin32
|
||||
|
||||
bin32/%.o: %.cc
|
||||
$(CXX) -m32 -DSIZEOF_UNSIGNED_LONG=4 $(CPPFLAGS) $(MDIR2) $(CXXFLAGS) -MD -c $< -o $@
|
||||
|
||||
bin32/%.o: %.c
|
||||
$(CC) -m32 $(CPPFLAGS) $(MDIR2) $(CFLAGS) -MD -c $< -o $@
|
||||
|
||||
bin32/lexor.o: lexor.cc parse.h
|
||||
|
||||
vvp32: $(addprefix bin32/,$O) bin32/libvpi.a
|
||||
$(CXX) -m32 $(LDFLAGS) -o vvp32 $(addprefix bin32/,$O) $(LIBS) $(dllib)
|
||||
|
||||
bin32/libvpi.a: libvpi.c
|
||||
$(CC) -m32 $(CPPFLAGS) $(CFLAGS) -o bin32/libvpi.o -c $(srcdir)/libvpi.c
|
||||
rm -f bin32/libvpi.a
|
||||
ar cqv bin32/libvpi.a bin32/libvpi.o
|
||||
$(RANLIB) bin32/libvpi.a
|
||||
|
||||
-include $(patsubst bin32/%.o, bin32/%.d, $(addprefix bin32/,$O))
|
||||
endif
|
||||
|
||||
lexor.o: lexor.cc parse.h
|
||||
|
||||
parse.o: parse.cc
|
||||
|
|
@ -183,13 +148,13 @@ Makefile: Makefile.in config.status
|
|||
./config.status
|
||||
|
||||
|
||||
install: all installdirs $(bindir)/vvp@EXEEXT@ $(libdir64)/libvpi.a $(INSTALL_DOC) $(INSTALL32)
|
||||
install: all installdirs $(bindir)/vvp@EXEEXT@ $(libdir)/libvpi.a $(INSTALL_DOC)
|
||||
|
||||
$(bindir)/vvp@EXEEXT@: ./vvp@EXEEXT@
|
||||
$(INSTALL_PROGRAM) ./vvp@EXEEXT@ $(bindir)/vvp@EXEEXT@
|
||||
|
||||
$(libdir64)/libvpi.a : ./libvpi.a
|
||||
$(INSTALL_DATA) libvpi.a $(libdir64)/libvpi.a
|
||||
$(libdir)/libvpi.a : ./libvpi.a
|
||||
$(INSTALL_DATA) libvpi.a $(libdir)/libvpi.a
|
||||
|
||||
$(mandir)/man1/vvp.1: $(srcdir)/vvp.man
|
||||
$(INSTALL_DATA) $(srcdir)/vvp.man $(mandir)/man1/vvp.1
|
||||
|
|
@ -198,26 +163,12 @@ $(prefix)/vvp.pdf: vvp.pdf
|
|||
$(INSTALL_DATA) vvp.pdf $(prefix)/vvp.pdf
|
||||
|
||||
installdirs: $(srcdir)/mkinstalldirs
|
||||
$(srcdir)/mkinstalldirs $(bindir) $(libdir) $(libdir64) $(INSTALL_DOCDIR)
|
||||
$(srcdir)/mkinstalldirs $(bindir) $(libdir) $(libdir) $(INSTALL_DOCDIR)
|
||||
|
||||
|
||||
ifeq (@enable_vvp32@,yes)
|
||||
install32: all32 $(libdir)/libvpi.a $(bindir)/vvp32
|
||||
|
||||
$(libdir)/libvpi.a: bin32/libvpi.a
|
||||
$(INSTALL_DATA) bin32/libvpi.a $(libdir)/libvpi.a
|
||||
|
||||
$(bindir)/vvp32: ./vvp32
|
||||
$(INSTALL_PROGRAM) ./vvp32 $(bindir)/vvp32
|
||||
|
||||
uninstall32:
|
||||
rm -f $(libdir)/libvpi.a
|
||||
rm -f $(bindir)/vvp32
|
||||
endif
|
||||
|
||||
uninstall: $(UNINSTALL32)
|
||||
rm -f $(bindir)/vvp@EXEEXT@
|
||||
rm -f $(libdir64)/libvpi.a
|
||||
rm -f $(libdir)/libvpi.a
|
||||
rm -f $(mandir)/man1/vvp.1 $(prefix)/vvp.pdf
|
||||
|
||||
-include $(patsubst %.o, dep/%.d, $O)
|
||||
|
|
|
|||
|
|
@ -140,8 +140,8 @@ The value, then, is appropriate for the data type. For example:
|
|||
P_123 .param/str "hello", "Hello, World.";
|
||||
|
||||
The boolean and logic values can also be signed or not. If signed, the
|
||||
value is preceeded by a '+' character. (Note that the value is 2s
|
||||
compliment, so the '+' says only that it is signed, not positive.)
|
||||
value is preceded by a '+' character. (Note that the value is 2s
|
||||
complement, so the '+' says only that it is signed, not positive.)
|
||||
|
||||
FUNCTOR STATEMENTS:
|
||||
|
||||
|
|
@ -333,8 +333,8 @@ that arrive through them, while .net nodes reduce strength values to
|
|||
4-value logic. The .net8 nodes should only be used when strength
|
||||
information really is possible.
|
||||
|
||||
The <label> is required and is used to locate the net object that is
|
||||
vrepresents. This label does not map to a functor, so only references
|
||||
The <label> is required and is used to locate the net object that it
|
||||
represents. This label does not map to a functor, so only references
|
||||
that know they want to access .nets are able to locate the symbol. In
|
||||
particular, this includes behavioral %load and %wait instructions. The
|
||||
references to net and reg objects are done through the .net label
|
||||
|
|
@ -373,7 +373,7 @@ activates the delay.
|
|||
ARRAY INDEX STATEMENTS:
|
||||
|
||||
Variables can be collected into arrays. The words of the array are
|
||||
declared seperately, this statement collects them together:
|
||||
declared separately, this statement collects them together:
|
||||
|
||||
<label> .array "name", <last> <first> ;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
DEBUG AIDS FOR VVP
|
||||
|
||||
Debuging vvp can be fiendishly difficult, so there are some built in
|
||||
Debugging vvp can be fiendishly difficult, so there are some built in
|
||||
debugging aids. These are enabled by setting the environment variable
|
||||
VVP_DEBUG to the path to an output file. Then, various detailed debug
|
||||
tools can be enabled as described below.
|
||||
|
|
|
|||
2
xnf.txt
2
xnf.txt
|
|
@ -18,7 +18,7 @@ command (man verilog) and the -X switch:
|
|||
% iverilog -fpart=4010e -fncf=prog.ncf -txnf prog.v
|
||||
|
||||
This generates from the prog.v Verilog source file the prog.xnf output
|
||||
and the prog.ncf netlist constraints file. The verilog program
|
||||
and the prog.ncf netlist constraints file. The Verilog program
|
||||
arranges to call the preprocessor and the ivl compiler with all the
|
||||
correct switches for generating XNF.
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue