Commit Graph

246 Commits

Author SHA1 Message Date
Tim Edwards 09b2bb3316 Extended the verilog parser to account for the fact that there can
be whitespace between a wire/register name and its array delimiter.
2018-10-29 15:19:13 -04:00
Tim Edwards 41665036e9 Merge branch 'master' into work 2018-10-02 14:41:40 -04:00
Tim Edwards b4c189a114 Update at Tue Oct 2 14:41:38 EDT 2018 by tim 2018-10-02 14:41:38 -04:00
Tim Edwards 85af816ab8 Removed references to /usr/local/man/man1 and netgen.1, as the netgen.1
man page does not exist.  Running mkdirs on the empty directory causes
problems with "git rm".
2018-10-02 14:40:17 -04:00
Tim Edwards 4ba5425b6a Merge branch 'master' into work 2018-09-26 10:49:06 -04:00
Tim Edwards 83b2084a10 Update at Wed Sep 26 10:49:04 EDT 2018 by tim 2018-09-26 10:49:04 -04:00
Tim Edwards 0de1c232e4 Corrected property matching so that properties are promoted to
type double before sorting (previously, property promotion was
being done after parallel sorting).  Also, modified the verilog
file reading so that parameters and definitions that are numeric
are stored as numeric (not string) properties.
2018-09-26 10:46:55 -04:00
Tim Edwards b8e6f6c030 Merge branch 'master' into work 2018-09-24 15:13:32 -04:00
Tim Edwards a6742bca2e Update at Mon Sep 24 15:13:30 EDT 2018 by tim 2018-09-24 15:13:30 -04:00
Tim Edwards 3a03e769af Substantially improved verilog parsing (although almost certainly not
perfect).  Given the complexities of the verilog language, the simple
strtok() tokenizer used by the SPICE parser is not sufficient.  Wrote
a better tokenizer that can distinguish between whitespace and
functional tokens like parentheses, semicolons, etc., which are tokens
themselves but also token separators.
2018-09-24 15:09:29 -04:00
Tim Edwards 445f732f8b Merge branch 'master' into work 2018-08-08 11:28:45 -04:00
Tim Edwards b911aa7b2e Update at Wed Aug 8 11:28:43 EDT 2018 by tim 2018-08-08 11:28:43 -04:00
Tim Edwards b979d0ad97 Changed the netgen shell script from "sh" to "bash" due to the
presence of one or more bash-isms in the code.  Thanks to Sean
Cross for the patch.
2018-08-08 11:28:04 -04:00
Tim Edwards 86ab771964 Merge branch 'master' into work 2018-08-01 15:44:34 -04:00
Tim Edwards 2d74b3d94b Update at Wed Aug 1 15:44:32 EDT 2018 by tim 2018-08-01 15:44:32 -04:00
Tim Edwards 036e1f0947 Modified the verilog reading code so that it will automatically
determine if a parameter is a floating-point number, integer, or
string, and set the parameter accordingly.  Found an error in the
parameter comparison if the subcircuit definitions don't agree
on the type of parameter. Now all values are promoted to a single
type based on preference order (double, integer, string).  Tested
on a verilog file with a primitive device type defined as a module
with its properties encoded as parameters.  This successfully
matched against the SPICE primitive device.
2018-08-01 15:40:23 -04:00
Tim Edwards 5223011330 Merge branch 'master' into work 2018-06-25 21:26:47 -04:00
Tim Edwards 7bde5125fd Update at Mon Jun 25 21:26:47 EDT 2018 by tim 2018-06-25 21:26:47 -04:00
Tim Edwards dd6145463e Modified the SPICE parser to at least sanely deal with (possibly
CDL syntax) parameters that have values which are multi-word and
space separated (who the hell comes up with these things?).  One
can presumably safely assume that additional pin names are not
intermixed with parameters, so now if a multi-token parameter
value is encountered, the first word is taken as the value and
the remaining words are ignored, generating a warning message.
Since I have no idea what these values are used for, I cannot say
with certainty whether or not this would break LVS, but in the
test case given to me, the parameter had no impact on LVS, but
was apparently an annotation for the layout editor.
2018-06-25 21:21:45 -04:00
Tim Edwards f4ff74783c Merge branch 'master' into work 2018-06-17 15:06:17 -04:00
Tim Edwards f3d850e68e Update at Sun Jun 17 15:06:17 EDT 2018 by tim 2018-06-17 15:06:17 -04:00
Tim Edwards 1c08e5a48d Corrected missing tcl.h includes, which are needed in files that
call FREE(), since the Tcl/Tk version makes that a macro for the
subroutine Tcl_Free().  Thanks to Laurent Charrier for the bug
fix.
2018-06-17 15:05:15 -04:00
Tim Edwards 821145f9c1 Merge branch 'master' into work 2018-06-01 08:47:34 -04:00
Tim Edwards 6eb1efd55a Update at Fri Jun 1 08:47:33 EDT 2018 by tim 2018-06-01 08:47:33 -04:00
Tim Edwards 6d569ca396 Added a missing top-level clean to the Makefile, which is mainly
responsible for removing the log files.  Otherwise the log files
just keep accumulating output forever.
2018-06-01 08:46:52 -04:00
Tim Edwards 7a0bff846f Merge branch 'master' into work 2018-05-28 21:39:13 -04:00
Tim Edwards ced1299351 Update at Mon May 28 21:39:11 EDT 2018 by tim 2018-05-28 21:39:11 -04:00
Tim Edwards f213376bfd Removed "Depend" from the .gitignore file, as compilation depends
on it and fails the first time if it does not exist, requiring
running "make" twice (which is not advertised in the build
instructions).
2018-05-28 21:37:35 -04:00
Tim Edwards 223b197b71 Merge branch 'master' into work 2018-05-23 13:05:17 -04:00
Tim Edwards f0eb14be5e Update at Wed May 23 13:05:15 EDT 2018 by tim 2018-05-23 13:05:15 -04:00
Tim Edwards 534ea839c0 Revised the verilog parser to correctly identify and parse
parameters passed to instances, so that these can match critical
parameters in the SPICE netlist being compared against.
2018-05-23 13:04:31 -04:00
Tim Edwards b721cacb40 Merge branch 'master' into work 2018-05-01 14:08:18 -04:00
Tim Edwards 84f984e7f0 Update at Tue May 1 14:08:16 EDT 2018 by tim 2018-05-01 14:08:16 -04:00
Tim Edwards 25ac57d103 First pass at incorporating the efabless LVS manager GUI into the
netgen distribution.  It sort of works, but not quite there yet.
2018-05-01 14:07:16 -04:00
Tim Edwards 02a77b61f9 Merge branch 'master' into work 2018-04-26 08:01:20 -04:00
Tim Edwards dfd1e59432 Update at Thu Apr 26 08:01:18 EDT 2018 by tim 2018-04-26 08:01:18 -04:00
Tim Edwards f14ebf323f Fixed a script error that caused pins not to be reported in the
Tcl list and JSON formatted outputs.
2018-04-26 08:00:47 -04:00
Tim Edwards 62648c5672 Merge branch 'master' into work 2018-04-25 15:03:18 -04:00
Tim Edwards 7d113beada Update at Wed Apr 25 15:03:16 EDT 2018 by tim 2018-04-25 15:03:16 -04:00
Tim Edwards 1fe341833c Expanded the verilog parsing to include simple handling of ifdef,
ifndef, endif conditional statements.  Pre-define the key "LVS"
for use with netgen.  Also corrected some problems stemming from
the way delimiters are handled and the flexible use of whitespace
in verilog.
2018-04-25 15:00:49 -04:00
Tim Edwards aee4b846e2 Corrected the known issue with pin bus index matching that was in
the last commit and which was expected to be corrected by this
commit.
2018-04-16 17:19:26 -04:00
Tim Edwards 004378be11 Merge branch 'master' into work 2018-04-16 15:43:25 -04:00
Tim Edwards dc42e98ab9 Update at Mon Apr 16 15:43:23 EDT 2018 by tim 2018-04-16 15:43:23 -04:00
Tim Edwards 58d7e17231 Corrected basic problem with verilog instance pins not needing to
be in any specific order since all ports are named.  Also corrected
problem with pin names not using the same string matching function
as used for nets in general (which affects the ability to match
against different bus delimiters).
2018-04-16 15:41:20 -04:00
Tim Edwards de30eeabe8 Merge branch 'master' into work 2018-04-12 17:13:43 -04:00
Tim Edwards feab5023e5 Update at Thu Apr 12 17:13:41 EDT 2018 by tim 2018-04-12 17:13:41 -04:00
Tim Edwards 4d65b0006d Added new handling for verilog structural netlists, and fixed
some problems stemming from comparing a case-sensitive netlist
against a case-insensitive one.  Verilog netlist reading does
not yet have support for macros other than "`include", and it
does not yet have support for bit vectors constructed with
braces ({}).
2018-04-12 17:09:10 -04:00
Tim Edwards eefdb61e14 Merge branch 'master' into work 2018-04-05 10:10:47 -04:00
Tim Edwards 1d1ad3c833 Update at Thu Apr 5 10:10:44 EDT 2018 by tim 2018-04-05 10:10:44 -04:00
Tim Edwards 4166408576 Discovered a subtle error caused by running a setup script that
calls "equate pins".  This could fail because the routine that forces
uniqueness of pins was being called by the "compare" command but
outside of PinMatch.  Fixed by duplicating the call to force uniqueness
of pins inside the "equate" function.  Redundant calls should not
matter as uniqueness is resolved on the first call and subsequent calls
will need no further action.
2018-04-05 10:06:32 -04:00