Cary R
a0ef23605a
Update some functions to use inline
2020-08-04 22:11:36 -07:00
Cary R
538a03ba8e
Add templates for queue push
2020-08-04 22:07:02 -07:00
Cary R
f638e9dd5d
Add templates for queue pop
2020-08-04 21:48:47 -07:00
Cary R
84eb70660d
Switch qinsert to use a template
2020-08-04 21:14:17 -07:00
Cary R
d1d6c0f5d2
Start refactoring the queue routines
2020-08-03 23:45:56 -07:00
Cary R
199ed39abe
Report when the array pattern is larger than the maximum queue size
2020-08-02 23:40:35 -07:00
Martin Whitaker
8e4cc8e887
Use GNU make pattern rules to handle multiple file output from bison.
...
With a pattern rule, the recipe will only be executed once, even when
the rule has multiple targets. Using this to handle the output from
bison is included as an example in the GNU make manual.
This fixes the makefiles so that bison-generated header files will be
regenerated if they are deleted.
2020-07-30 16:27:01 +01:00
martinwhitaker
a4c9919e3a
Merge pull request #349 from hzeller/fix-bison-include
...
Bison includes its generated header in *.cc. Generate with correct name.
2020-07-30 15:53:21 +01:00
Cary R
a2ba8a16b1
Add support for inserting into a queue
2020-07-29 23:00:19 -07:00
Henner Zeller
5b699c1be7
Bison includes its generated header in *.cc. Generate with correct name.
...
The current bison (3.7) generates a *.cc file that includes the header
it generated. For parse.cc this would be parse.hh. Right now, we rename
this header to have a common name used in other files, but this results
in a compile error for the parse.cc file:
parse.cc:462:10: fatal error: parse.hh: No such file or directory
462 | #include "parse.hh"
| ^~~~~~~~~~
Fix this by telling bison to output the header file to the correct
filename in the first place so that we don't have to rename it.
(using the --defines instead of -d option).
This looks like a bison specific option not available in Posix yacc;
but looks like we're requiring bison anyway.
Signed-off-by: Henner Zeller <h.zeller@acm.org>
2020-07-29 15:29:08 -07:00
Martin Whitaker
e69549034d
Fix potential buffer overflows (GitHub issue #346 ).
2020-07-28 13:17:57 +01:00
Cary R
fdd902e446
Remove some clang warnings
2020-07-27 21:56:29 -07:00
Cary R
14ade1a9f4
Pass the max size when storing to a queue
2020-07-27 21:24:22 -07:00
Cary R
c969c324ed
Add initial support for using a queue element as an L-value
2020-07-26 14:02:29 -07:00
Cary R
d1b75d9407
Update some queue warning messages and optimize element erase
2020-07-25 15:32:28 -07:00
Cary R
1a4345cce9
Add the ability to delete an element of a queue
2020-07-25 00:49:42 -07:00
Cary R
e94291c88f
Handle negative and undefined queue addresses correctly
2020-07-23 22:49:33 -07:00
Cary R
f0f045f1f9
Add warning messages when popping from an empty queue
2020-07-23 22:04:27 -07:00
Cary R
1b52a4a578
Don't fail when pushing/poping from an empty queue
2020-07-23 19:12:35 -07:00
Cary R
e1870acfac
Return the correct value when a queue or darray references an undefined element
2020-07-22 21:47:37 -07:00
Cary R
5ebd08c7f8
The queue needs to be implemented using a deque
2020-07-21 20:02:11 -07:00
Cary R
2999f351d2
Update queue error/warning messages
2020-07-20 20:34:17 -07:00
Cary R
1b7cd5c237
Add initial support for real queues
2020-07-19 21:34:56 -07:00
Cary R
bf6c4329b9
Add push front for string queues and improve some warning messages
2020-07-19 19:18:59 -07:00
Cary R
6ff07c1074
Enable support for providing a queue maximum index
2020-07-17 01:32:53 -07:00
Cary R
dd80607ceb
Add CA version of the <-> operator
2020-07-09 01:45:43 -07:00
Martin Whitaker
085f466377
Fix GitHub issue #337 - incorrect uninitialised function return value.
2020-06-25 00:31:43 +01:00
martinwhitaker
0b87ecb173
Merge pull request #325 from tpambor/fix-missing-include
...
Add missing include for malloc
2020-06-02 20:56:37 +01:00
Cary R
0fca1bdab0
Add vpiIndex for array words
2020-05-31 14:27:19 -07:00
Cary R
fb237fb006
Update the user visible copyright to be 2020
2020-05-31 13:41:38 -07:00
Cary R
89d3342804
Increase the thread flag count from 256 to 512
2020-05-31 12:39:54 -07:00
Cary R
1fefa8eb1b
Add support for vpi_put_value for vpiBit
2020-05-31 10:49:54 -07:00
Cary R
7eb0efd424
Add basic support for vpiBit
2020-05-31 00:27:15 -07:00
Cary R
19d63f0c96
A VPI by index will only work for a reg or a net
2020-05-18 22:57:18 -07:00
Cary R
0a06ecb203
Update vpi_mcd_close() to return the correct value
2020-05-16 19:19:45 -07:00
Cary R
fc7f0739d3
When a FD is passed to vpi_mcd_(v)print return EOF since this is an error
2020-05-16 19:19:30 -07:00
Tim Pambor
514ddade39
Add missing include for malloc()
2020-05-11 19:00:38 +02:00
Martin Whitaker
cf44f05cd3
Fix GitHub issue #324 - replace __CYGWIN32__ with __CYGWIN__.
...
__CYGWIN32__ is not defined when building with the 64-bit Cygwin
toolchain. According to the Cygwin FAQ, __CYGWIN__ has been defined
since 1998, so this should still work for users on 32-bit systems.
2020-05-10 14:06:53 +01:00
Cary R
cf193b3055
Cleanup vpiClassTypespec when running valgrind
2020-05-09 23:04:37 -07:00
Cary R
58eb202376
Update find_scope and vpi_handle_by_name to work with escaped identifiers
2020-05-02 19:47:56 -07:00
Huang Rui
11001f58d5
Thoroughly fix parallel installation issues
...
In PR #300 , @xdch47 pointed out a stable way to fix parallel
installation problems.
This fix applied the method, thanks!
Signed-off-by: Huang Rui <vowstar@gmail.com>
2020-02-12 22:42:04 +08:00
Huang Rui
0602ef46c6
[17/20]driver/Makefile.in:fix install timestamp check
...
Fix tgt-fpga/Makefile.in vvp/Makefile.in doc
Fix bug: https://bugs.gentoo.org/705412
Fix bug: https://github.com/gentoo/gentoo/pull/14096
Related: https://github.com/steveicarus/iverilog/pull/294
Signed-off-by: Huang Rui <vowstar@gmail.com>
2020-02-12 22:08:40 +08:00
Huang Rui
081fe1c816
[1/20]vvp/Makefile.in:fix install timestamp check
...
Fix bug: https://bugs.gentoo.org/705412
Fix bug: https://github.com/gentoo/gentoo/pull/14096
Related: https://github.com/steveicarus/iverilog/pull/294
Signed-off-by: Huang Rui <vowstar@gmail.com>
2020-02-12 22:08:40 +08:00
Greg Steuck
398d0cb82f
Fix bad bounds check in for loop
2020-02-05 08:05:50 -08:00
Martin Whitaker
b91d5d1a82
vvp: recognise signed logic types when parsing class properties.
2019-12-23 09:48:07 +00:00
Stephen Williams
7f95abc6ab
Make a pass at implementing cbAtEndOfSimTime.
...
In Icarus Verilog, AtEndOfSimTime is practically the same as
cbReadWriteSync, since the latter is after non-blocking events
in Icarus Verilog.
2019-11-25 17:57:10 -08:00
Martin Whitaker
351a4e5f5e
Improve vvp handling of excessively large shift distances.
2019-11-16 12:11:49 +00:00
Martin Whitaker
0a4cae2644
Fix vvp %shift instructions to treat right operand as unsigned.
...
1364-2005 section 5.1.12 says "The right operand is always treated
as an unsigned number".
This fixes GitHub issue #283 .
2019-11-15 21:24:47 +00:00
Martin Whitaker
d1d409fd88
Add version check for VPI routines callback.
2019-10-30 20:16:30 +00:00
Martin Whitaker
9fb952ed72
Use functions instead of macros for VPI routine redirection in Windows.
2019-10-27 09:06:55 +00:00