Stephen Williams
afa2478801
Merge branch 'master' of ssh://[email protected] /home/u/icarus/steve/git/verilog
2008-06-09 16:58:21 -07:00
Stephen Williams
79feb44f10
Turn of concat output scheduling.
...
We really want lazy processing of concatenation because it has multiple
inputs and lazy processing should (in theory) prevent redundant and
useless propagations through the net.
But enabling it seems to cause many tests in the regression test suite
to fail to compare their results. There are races in many tests that
are interacting badly with this feature. So for now, ifdef it out.
2008-06-09 16:57:51 -07:00
Stephen Williams
c03d76a0d7
Do not do lazy processing of part selects.
...
It doesn't really make any sense to do lazy processing of part selects,
but it is possible to use the part select position to more toroughly
check for changes in output and suppress non-changes. In particular,
we only need to check that the output part actually changes, and by the
way we only need to save those bits for the next go-round.
We do want to make sure that the very first input causes an output,
though, so that time-0 values get propagated.
2008-06-09 16:46:06 -07:00
Stephen Williams
a2dc1e0a29
Add means for &A<> to index using a calculated index.
...
This is not a solution to all the problems, but is a better catch-all
then what is currently there. Allow the index field to be a T<> that
accesses the thread to get the address index.
Note that the lexor.lex currently returns the T<> as a T_SYMBOL, and the
users of T_SYMBOL objects need to interpret the meaning. This is
probably not the best idea, in light of all the other *<> formats that
now exist.
2008-06-08 21:38:35 -07:00
Stephen Williams
6a1235ac28
Rework parameter indexed part select up.
...
Indexed part select reworked to be more compact and more like the
part select.
2008-06-08 19:29:00 -07:00
Stephen Williams
7aebff2a86
Fix up parameter name part select
...
Part select of parameter names is fixed up to be structurally similar
to part select of signals, and also to behave similarly. (Though not
identically, for reason.)
2008-06-08 07:34:45 -07:00
Stephen Williams
b31124983a
Allow part selects to fall off the ends of the selected identifier
...
Part selects to signals are allowed to be off the ends of the signal
itself. The bits that are beyond the vector return X. This may mean
creating constant X bits on one or both ends of the result.
2008-06-06 22:05:17 -07:00
Larry Doolittle
f256dfe16e
Add missing include to vvp_island.cc
...
Add # include <string.h>, needed for compilation with gcc-4.3
2008-06-06 20:48:23 -07:00
Cary R
7c152685dc
Clean up more compiletf routines, etc.
...
This patch cleans up some of the code to use common compiletf
routines where appropriate. It also adds code to print the
number of extra arguments and cleans up the messages a bit.
2008-06-06 20:44:21 -07:00
Stephen Williams
5d86dd0bbd
Merge branch 'verilog-ams'
2008-06-06 20:39:42 -07:00
Cary R
4f97321c75
Add more array word properties.
...
This patch adds more array word properties.
2008-06-06 20:36:55 -07:00
Stephen Williams
d0f303463d
ASSIGN transfer data to scheduler efficiently/permalloc vvp_net_t objects.
...
The vvp_net_t objects are never deleted, so overload the new operator
to do a more space efficient permanent allocation.
The %assign/v instruction copied the vvp_vector4_t object needlessly
on its way to the scheduler. Eliminate that duplication.
2008-06-06 19:50:44 -07:00
Stephen Williams
35fe8fae00
Have vvp_vector8_t avoid allocating tiny scalar arrays.
2008-06-06 16:36:43 -07:00
Stephen Williams
2e95a740da
Rework scheduling of concat, part, buf/not and resolv for efficiency.
...
The concat and resolv functors are best evaluated lazily, because each
evaluation is costly and there is a high probability that an evaluation
will be invalidated when new input comes in.
Also optimization the recv_vec4_pv method of the resolver, which is
commonly used, and adjust the order of handling of vvp_fun_part to
work more efficiently.
2008-06-06 15:31:22 -07:00
Stephen Williams
2f4e5bf5b6
Obvious optimizations of vvp_vector8_t handling.
...
The vvp_vector8_t constructor and destructor involve memory allocation
so it is best to pass these objects by reference as much as possible.
Also rework the resolver functor to only perform resolution after inputs
are in so that it doesn't get needlessly repeated. This eliminates many
resolve function calls, as well as activations throughout the net.
Also have the islands take more care not to perform resolution if the
inputs aren't really different.
2008-06-06 11:12:07 -07:00
Stephen Williams
7e478cdeb8
Merge branch 'master' into verilog-ams
2008-06-05 21:52:12 -07:00
Stephen Williams
2576543bb5
Add support for exclude of a point
...
Parameter value ranges support the exclude of a point as well as
range, so add the syntax to support that case. Internally it is
handled as a degenerate range, but the parse and initial elaboration
need to know about it.
2008-06-05 21:49:49 -07:00
Cary R
e453b347f4
Add missing functions to ivl.def
...
This patch adds ivl_island_flag_set and ivl_island_flag_test
to the ivl.def file. This is needed by both Cygwin and MinGW.
2008-06-05 14:41:49 -07:00
Stephen Williams
f132e09475
Fix default parameter type if localparams are present.
...
localparam declarations were messing up the state of parser variables
so that the default types of following parameters got messed up.
2008-06-05 14:38:56 -07:00
Stephen Williams
2ee976d1c0
Compile problems after merge with verilog-ams
...
The NetPartSelect::BI enumeration value does not exist any more.
2008-06-05 11:06:54 -07:00
Stephen Williams
30570adf31
Merge branch 'master' into verilog-ams
2008-06-05 10:52:58 -07:00
Cary R
1c51ac4ac0
For undefined memory words (size == 0) return an X vector.
...
If a memory word was accessed before it was defined the
code was returning a zero width vector result. Now it
returns an appropriately sized vector of 'x'.
2008-06-05 10:34:18 -07:00
Cary R
17a1358eb6
Remove documentation for memory opcodes.
...
The memory opcodes %assign/mv, %load/mv and %set/mv
were removed by a previous patch. This one removes
the documentation from opcodes.txt. It also removes
the documentation for the .mem* statements for the
same reason.
2008-06-05 10:31:38 -07:00
Stephen Williams
04a7f7054a
Fix problem linking a-side and b-side tran branches.
...
Tran devices linked in series were not getting properly joined up
due to a problem with the add_branch method.
2008-06-04 20:34:04 -07:00
Stephen Williams
e97a1ad610
Try to eliminate excessive processing recursions.
...
After calculating the A side of a tran[if/vp], the B side is usually
fully specified, so make an effort to push the calculated value through.
2008-06-04 16:10:43 -07:00
Stephen Williams
e872310e4b
Optimize recursive branch resolution
...
Recursive branch resolution was scanning every branch end, even though
many branch ends share ports and need not be repeatedly scanned. Handle
marks and flags to cut off recursion where it is not needed so as to
save much run time.
2008-06-04 11:34:26 -07:00
Stephen Williams
95850ac112
Merge branch 'master' into verilog-ams
...
Conflicts:
tgt-vvp/vvp_scope.c
Note that the draw_net_input.c takes in a lot of the codes that used
to be in vvp_scope.c, so some changes may have been lost.
2008-06-03 21:17:57 -07:00
Cary R
d0e154b830
Clean up dump routines and support of MemoryWord dump.
...
This patch cleans up the dump routines and adds file and
line number information for errors. It also adds some of
the missing MemoryWord properties so they can now be
dumped and monitored correctly.
2008-06-03 21:04:22 -07:00
Cary R
4010f6e710
Add $simparam and other fixes.
...
This patch adds $simparam and $simparam$str from Verilog-A.
The analog simulator parameters return 0.0 or N/A. The
vvp_cpu_wordsize system function has been moved into the
$simparam call and is now named CPUWordSize.
This patch also starts the factoring of common code in the
vpi directory. Some routines were renamed.
The priv.c file was renamed to sys_priv.c to match the
include file.
System functions can now have strings put to their output.
2008-06-03 20:56:37 -07:00
Larry Doolittle
d74f2fe38d
Don't duplicate Makefile shell code
...
Smaller, and conceptually easier to keep in sync,
way of handling build machines with and without git.
2008-06-03 20:52:41 -07:00
Stephen Williams
db642e3850
Merge branch 'master' of ssh://[email protected] /~steve-icarus/git/verilog
2008-06-03 20:51:04 -07:00
Larry Doolittle
523dff7ae7
Fix probable precedence bug
...
and at least get rid of a compiler warning
2008-06-03 20:50:36 -07:00
Stephen Williams
db09f2fa7e
More cost effective and reliable island joining algorithm.
...
Rather then join islands while branches are initially created, save the
island creating for the end. This way, the process is actually recursive
and greedy, reliably collecting branches into islands without conflict.
2008-06-03 20:21:39 -07:00
Stephen Williams
c2061e8199
Island ports can accept vector parts.
2008-06-03 17:31:15 -07:00
Stephen Williams
ff9166d4a5
Got sense of tranvp wrong in connections to module ports.
2008-06-03 17:23:01 -07:00
Stephen Williams
73e2b297df
Replace the NetPartSelect:BI with NetTran(VP).
...
Fold the bi-directional part select into the pass switch (tran) support
so that it can be really bi-directional. This involves adding a new
tranvp device that does part select in tran islands, and reworking the
tran island resolution to handle non-identical nodes. This will be needed
for resistive tran devices anyhow.
2008-06-03 11:16:25 -07:00
Stephen Williams
6e5373c87e
Add part select support to vvp_vector8_t
...
Need a convenient way to handle part selects of vvp_vector8_t objects.
2008-06-03 08:52:42 -07:00
Stephen Williams
782bfab29e
Add support for tranif devices in the vvp code generator.
...
The draw_net_input function is modified to account for nexus that is
a port of an island. Draw the ports (and the islands if necessary)
to the island and use the port output for the nexus instead of the
port input. This allows the bi-directional behavior of the port to
interpose itself in the data flow.
In this process of these changes, the draw_net_input function was
reorganized, and all the considerable amount of code for it was
moved to a file of its own. (vvp_scope.c is pretty unruly.)
2008-06-01 21:08:31 -07:00
Stephen Williams
df15a0368c
Collect NetTran devices into islands.
...
NetTran devices must be collected into islands because they are all
a bi-directional mass. This is how vvp will process them and the code
generator will need a head start organizing them.
2008-06-01 19:45:12 -07:00
Stephen Williams
916f300448
Assert some island port constraints.
2008-06-01 19:42:44 -07:00
Stephen Williams
7898f4e402
Account for swithes linked to nexus in ivl_target.h API.
...
Switches can connect to a nexus too, so add the missing nexus support
for that in the ivl_target.h API.
2008-06-01 14:29:27 -07:00
Stephen Williams
6f8bf90dc4
Add basic the .tran device.
...
The .tran device is simply a .tranif0 without the enable. It is
always enabled.
2008-06-01 10:37:41 -07:00
Stephen Williams
052870c0e5
And the vvp_island infrastructure to the vvp runtime.
...
The vvp_island classes are added, as well as support for tranif nodes
that use this concept. The result is a working implementation for
tranif0 and tranif1.
In the process, the symbol table functions were cleaned up and made
into templates for better type safety, and the vvp_net_ptr_t was
generalized so that it can be used by the branches in the island
implementation.
Also fix up the array handling to use the better symbol table support,
and to remember to clear its own table when linking is done.
2008-05-31 21:45:55 -07:00
Stephen Williams
1be1f65f33
Merge branch 'master' into verilog-ams
2008-05-29 20:11:00 -07:00
Stephen Williams
fd6f017435
Get very subtle handling of part select into ports correct.
...
The code generator was reading the wrong node of a bi-directional
part select. This happens exclusively with part selects passed to
bi-directional ports, so was rare. The result was that the non-part
selected part may get an incorrect value.
2008-05-29 17:28:12 -07:00
Stephen Williams
dfa6471227
Merge branch 'master' of ssh://[email protected] /home/u/icarus/steve/git/verilog
2008-05-29 14:00:51 -07:00
Stephen Williams
a8f492776a
Check range of immediate value.
2008-05-29 14:00:32 -07:00
Stephen Williams
6f0d98cf18
Constrain multiply word to prevent overflow.
...
The multiply runs does not need to do all the combinations of digit
products, because the higher ones cannot add into the result. Fix the
iteration to limit the scan.
2008-05-29 14:00:03 -07:00
Stephen Williams
6f30813102
Prevent overflow when parsing 32bit values
...
The source can carry 32bit numbers. Watch out that they are handled
all the way through to the compiled results on 32bit systems.
2008-05-29 13:52:12 -07:00
Cary R
2fab3159dd
Add smart part select for system functions &PV<>.
...
This patch adds a smart part select that allows system functions
to have full access to the real bits of the part select.
2008-05-29 09:40:12 -07:00
Cary R
f04fb0fc45
System functions have a default return value.
...
If a system function does not call vpi_put_value it is
supposed to have a default return value of 0. This patch
adds this functionality.
2008-05-28 09:53:27 -07:00
Cary R
7a1180868a
Remove definition for non-existent routines.
...
ivl_switch_scope, ivl_switch_attr_cnt and ivl_switch_attr_val
are non-existent routines and should not be in ivl.def. I also
removed them from ivl_target.h. Cygwin expects that if a routine
is listed in ivl.def that it will find a real implementation.
2008-05-28 09:45:27 -07:00
Cary R
b2bdce98ab
It is an error for the concatenation repeat to be undefined.
...
Print an error message if the concatenation repeat expression
is undefined.
2008-05-28 09:39:57 -07:00
Cary R
653e2661b2
The no git code also check for an existing version.h
...
My previous patch always used an empty file if git was not
available. This patch extends this to use the existing
version.h file if it exists (snapshot, etc.)
2008-05-28 09:09:33 -07:00
Stephen Williams
9aa610f489
Fix handling of 32bit IMM in %addi on 32bit machines
...
The handling of immediate add used to do 16bits at a time. When it went
up to 32bits, the need to work in chunks vanished, but the chunk handling
was still there, this time shifting by 32, which causes problems on 32bit
machines. Simplify the %addi handling to avoid this.
2008-05-28 08:47:28 -07:00
Stephen Williams
de7fff8ac6
Elaborate tran devices (switches)
...
This takes the support for switch modeling to the code generator.
Add error messages in the vvp code generator for lack of support.
2008-05-27 20:06:58 -07:00
Stephen Williams
2179797763
Do not allow unknows to be handled as logic immediate.
2008-05-27 19:48:31 -07:00
Cary R
b5e9e44e07
Fix error in of_SUBI with wide results.
...
This patch fixes an error in the recent rework of of_SUBI.
It was doing a double bit inversion.
2008-05-27 19:42:20 -07:00
Stephen Williams
5a0fe9ff83
Better use of immediate operands.
...
Clarify that operands are typically 32bits, and have the code generator
make better use of this.
Also improve the %movi implementation to work well with marger vectors.
Add the %andi instruction to use immediate operands.
2008-05-27 17:51:28 -07:00
Stephen Williams
f6fede5aae
Merge branch 'master' of ssh://[email protected] /home/u/icarus/steve/git/verilog
2008-05-27 11:55:45 -07:00
Stephen Williams
0fa3099ded
Optimize %div and %div/s
...
Use high radix long division to take advantage of the divide hardware
of the host computer. It looks brute force at first glance, but since
it is using the optimized arithmetic of the host processor, it is much
faster then implementing "fast" algorithms the hard way.
2008-05-27 11:54:39 -07:00
Stephen Williams
6987d16bd3
Optimize the %load/vp0 to use subarrays.
...
This instruction adds an integer value to the value being loaded. This
optimization uses subarrays instead of the += operator. This is faster
because the value is best loaded into the vector as a subarray anyhow.
2008-05-26 16:44:58 -07:00
Stephen Williams
5cc376ebd4
Optimize ADD and MUL instructions
...
Make better use of the CPU word in ADD and MUL instructions.
2008-05-26 16:00:16 -07:00
Stephen Williams
8190307dd3
Optimize/inline vvp_bit4_r AND, OR and vector set bit.
...
The AND and OR operators for vvp_bit4_t are slightly tweaked to be
lighter and inlinable.
The vvp_vector4_t::set_bit is optimized to do less silly mask fiddling.
2008-05-26 11:09:33 -07:00
Stephen Williams
3575f68c9f
Merge branch 'master' into verilog-ams
2008-05-23 21:23:16 -07:00
Stephen Williams
c1268d04fc
Merge branch 'verilog-ams' of ssh://[email protected] /~steve-icarus/git/verilog into verilog-ams
...
Conflicts:
ivl_target.h
t-dll.h
2008-05-23 20:55:46 -07:00
Stephen Williams
ca756f3ec3
Bring switch information out to the ivl_target API.
...
This involves defining the API for switches and cleaning up the
elaborated form to match the defined ivl_target API. Also add t-dll
code to support the ivl_switch_t functions, and add stub code that
checks the results.
2008-05-23 20:53:10 -07:00
Stephen Williams
9af459f95b
Vectorize AND/OR/NAND/NOR/INV instructions when reasonable.
...
When processing wide vectors of these operations, it pays to process
them as vectors. This improves run-time performance. Have the run time
select vectorized or not based on the vector width.
2008-05-23 17:52:43 -07:00
Stephen Williams
492b240304
Optimize vvp_vector4 vector handling.
...
Improve vvp_vector4_t methods copy_bits and the part selecting constructor
to make better use of vector words. Eliminate bit-by-bit processing by
these methods to take advantage of host processor words.
Improve vthread_bits_to_vector to use these improved methods and Update
the %load/av and %set/v instructions to take advantage of these changes.
2008-05-23 14:30:32 -07:00
Stephen Williams
d2106a3d3a
Fix botched processing of MUX with constant select.
...
If the select input was constant, the code then tried to look at the
constant data input. Just plain wrong.
2008-05-23 10:29:44 -07:00
Stephen Williams
cf2f4dd0af
Merge branch 'master' of ssh://[email protected] /~steve-icarus/git/verilog
2008-05-22 20:36:18 -07:00
Cary R
608c2574bd
Add $finish_and_return.
...
This new system task can be used to set the vvp return value
and finish the simulation.
2008-05-22 20:34:38 -07:00
Larry Doolittle
f17db21bf0
Make sure stringify_flag is always initialized.
...
Put in one last initialization of stringify_flag,
that Cary missed in add84b153c
and Steve missed in 73dcace781 .
Found the long, hard way.
2008-05-22 20:32:26 -07:00
Cary R
b26bdd3c19
MinGW fixes (development)
...
The MinGW system() implementation appears to return the straight
return value instead of the waitpid() like result that more
normal systems return. Because of this just return the system()
result without processing for MinGW compilations.
Older version of the MinGW runtime (pre 3.14) just used the
underlying vsnprintf(). Which has some problems. The 3.14 version
has some nice improvements, but it has a sever bug when processing
"%*.*f", -1, -1, <some_real_value>. Because of this we need to use
the underlying version without the enhancements for now.
snprintf prints %p differently than the other printf routines
so use _snprintf to get consistent results.
Only build the PDF files if both man and ps2pdf exist.
MinGW does not know about the z modifier for %d, %u, etc.
Add some missing Makefile check targets.
2008-05-22 20:24:21 -07:00
Larry Doolittle
6a9c5d8f7e
Use standard for printing uint64_t
...
Ugly, but pedantically correct according to c99 7.8.1.
Maybe not as ugly as the compile-time warning it replaces.
2008-05-22 18:42:56 -07:00
Stephen Williams
e59f28d659
work interrupted
2008-05-22 18:40:29 -07:00
Stephen Williams
07ae300e0c
Rework %cmpi/u, %cmp/u and %ix/get for speed
...
These instructions can take advantage of the much optimized
vector_to_array function to do their arithmetic work quickly and
punt on X very quickly if needed. This helps some benchmarks.
2008-05-22 18:19:40 -07:00
Stephen Williams
4c5f24c7a7
Simplify MUXZ if the select is constant.
...
If the select of a MUXZ is constant 0 or 1, then we can elide the MUX
in place of a simple BUFZ. This should allow the dead code on the
unused side to be removed as well.
2008-05-21 10:25:44 -07:00
Stephen Williams
be810c5ba6
Merge branch 'var-array-rework'
2008-05-21 07:01:07 -07:00
Stephen Williams
5ec3b590bf
Clear up some poor pointer management.
...
The expression for a paramter value was not well managed, given that
the eval_expr() function replaces pointers. Clear things up a bit.
2008-05-20 20:36:41 -07:00
Stephen Williams
88313670c0
Clear up some poor pointer management.
...
The expression for a paramter value was not well managed, given that
the eval_expr() function replaces pointers. Clear things up a bit.
2008-05-20 20:32:42 -07:00
Stephen Williams
d1daf6733f
Allow VPI callbacks to var array words.
...
Functions like $monitor need to attach callbacks to array words if
those words are to be monitored. Have the array hold all the callbacks
for words in the array, under the assumption that the monitored words
are sparse.
2008-05-20 18:30:56 -07:00
Stephen Williams
007056d671
Remove last vestiges of the the .mem structures.
...
Before the .array support, we had .mem nodes. These are long since
removed because the arrays to all the jobs of the .mem nodes.
2008-05-20 16:57:50 -07:00
Stephen Williams
2dcb1514a2
Add support for passing array words to system tasks.
...
Array words don't have a vpiHandle with a label, so the %vpi_call
needs a special syntac for arguments that reference array words.
This syntax creates an array word reference that persists and can
be used at a VPI object by system tasks.
2008-05-20 16:21:54 -07:00
Stephen Williams
d71a1cb9c1
Fix non-blocking assign to part select of memory word.
...
Memory words may have part selects assigned, but the code messed up
the testing for the validity of the part select base. This fixes do
detect constant bases so that base validity tests are handled at
compile time.
2008-05-20 11:51:17 -07:00
Stephen Williams
f9f68236bc
Make sure expressions of value_ranges are initialized.
2008-05-20 10:46:08 -07:00
Stephen Williams
dadb3a68d3
Fix possible error choosing default discipline domain.
...
Recent gcc warns about code that turns out to be incorrect.
2008-05-20 10:41:24 -07:00
Larry Doolittle
6121c06f15
Reconcile autoconf.sh to new gperf usage
...
gperf command line changed in Makefile.in as of
commit cde87ed4a3
this patch propagates that change to autoconf.sh
2008-05-20 10:36:26 -07:00
Larry Doolittle
b289d740e2
Drop two unused variables
...
eval_tree.cc:eval_tree()'s expr_msb and expr_lsb became unused after
commit c76e88cad5
which triggered warnings from gcc-4.3
2008-05-20 10:32:18 -07:00
Stephen Williams
ec266ff52e
Make sure expressions of value_ranges are initialized.
2008-05-19 21:55:53 -07:00
Stephen Williams
ec773fe8cf
Elaborate tran devices
...
The tran devices include tran, rtran, tranif0/1 and rtranif0/1. These
are all elaborated as options on a NetTran device. It is still not
clear the best way to present tran devices via the ivl_target.h API.
2008-05-19 21:42:52 -07:00
Stephen Williams
4c3d764a86
Add support for array iterator scan.
...
With the array vals_words method of getting compact vpiHandles to words
of a var array, it becomes easy to support the array iterators.
2008-05-19 19:04:42 -07:00
Cary R
a412149e2c
Don't let -I block -ivl!
...
When -I was added it was blocking -ivl since the string comparison
is case insensitive.
2008-05-19 18:32:09 -07:00
Larry Doolittle
deb7b01717
Compatibility with gcc-4.3
...
Add include statements (<cstdlib> for abort()) and a cast.
Necessary and sufficient for successful compilation with
gcc-4.3 (Debian 4.3.0-4) 4.3.1 20080501 (prerelease)
2008-05-19 18:31:08 -07:00
Stephen Williams
3189efacbc
Fix memory word offset errors
...
Fix handling writing to a word part select,
Fix readmemb calculations for the word size.
2008-05-19 18:05:27 -07:00
Stephen Williams
96ec4b7eba
Fix array inputs to mux devices.
...
The draw_input_from_net function was being used to access words of
a var array, which doesn't work. Have the draw_input_from_net punt
on that case, and by the way the mux inputs don't need to use that
function, instead they should use the general draw_net_input function
to get the input labels.
2008-05-19 17:37:23 -07:00
Stephen Williams
07c8fce530
Careful that select signal does not try to select reg words directly.
2008-05-19 11:44:03 -07:00
Stephen Williams
9a00829ee4
Use ivl_signal_dimensions to detect that signal is an array.
...
It is possible for an array to have 1 word in it, so using the array
count to detect an array is incorrect. Use the ivl_signal_dimensions
function, which is there exactly for that purpose.
2008-05-19 11:31:40 -07:00
Stephen Williams
680d3c8a3e
Assign to variable array words using array indexing.
...
The non-array set statements no longer work on array words. Handle
the various cases properly.
2008-05-19 11:18:04 -07:00
Stephen Williams
6966c26f27
Merge branch 'master' into verilog-ams
2008-05-17 17:04:57 -07:00
Stephen Williams
a5e3d06412
Skip value range processing for parameters with no value ranges.
...
Classing parameter declarations do not need value range processing,
and in fact it can get in the way.
2008-05-17 16:55:00 -07:00
Stephen Williams
eb3dcc2786
Dump verinum value as decimal if possible, even if sized.
2008-05-17 16:26:32 -07:00
Stephen Williams
c76e88cad5
Add support for explicit parameter types, including real.
...
Before this, the types of parameters were always logic, only the
width and signed-ness could be controlled. A parameter may take
on implicit real values if the expression were real.
With this patch, the type for the parameter can be explicitly set
to logic or real. This also means that the parameter real valued
expressions need to be more crefully treated, possibly with casting
integral expressions to real values, or real expressions to integral
values.
2008-05-17 16:25:58 -07:00
Stephen Williams
6632e4c33b
Allow ports to be declared before arrays.
...
It is possible for the code generator to create .array/port objects
before the .array object that the port refereces, so use the resolv_list
to arrange for binding during cleanup.
2008-05-16 19:06:12 -07:00
Stephen Williams
42913e46b8
Fix non-blocking assign to variable arrays.
...
Non-blocking assignment with constant index was still trying to access
the vpi handle directly.
2008-05-16 16:33:04 -07:00
Stephen Williams
e2ad59466a
Create handles to access words of an array, if needed.
...
VPI code may need to access words of a variable array. If so, create
a compact handle format that gains that access with minimal pain.
2008-05-16 16:20:22 -07:00
Stephen Williams
0cd946a7af
Remove a useless call to vpi_iterate.
2008-05-16 16:18:07 -07:00
Stephen Williams
102cbb67b4
Rework variable arrays to not have vpi handles for every word.
...
Save tons of space per memory word by not creating a vpi handle for
each and every word of a variable array. (Net arrays still get a
vpiHandle for every word.) The consequence of this is that all
accesses to a variable array need to go through the indexing.
This commit handles the most common places where this impacts, but
there are still problems.
2008-05-16 10:38:32 -07:00
Stephen Williams
3113392594
Minor improvement to mingw.txt
2008-05-15 16:59:08 -07:00
Cary R
72b4256872
Return 0 when vpi_handle_by_name() is called with an unsupported object.
...
vpi_handle_by_name() was assuming it was always given a valid scope
object. In the context of vpi_chk_error() this is not required and
some users use/abuse the interface by calling the function with invalid
objects expecting a 0 return value. This patch adds an explicit check
for the supported types vpiScope and as an extension vpiModule.
Anything else should be flagged as an error once we have vpi_chk_error()
implemented, but for now it just returns 0.
2008-05-15 10:46:53 -07:00
Cary R
ca880c73fc
Fix $ungetc() arguments to be in the correct order.
...
The arguments to $ungetc() were backwards! This patch fixes that
and adds a bit more checking to the compile_tf routine. It still
needs more work, but that can wait for the major system function
clean up I have planned when I can find the time.
2008-05-15 10:38:41 -07:00
Stephen Williams
f588656dd5
Merge branch 'master' into verilog-ams
2008-05-14 20:21:08 -07:00
Stephen Williams
cef0d0071b
Handle declarations within scopes under while and repeat statements.
...
The PWile and PRepeat statements need elaborate_sig() methods to recurse
into the contained statements.
2008-05-14 20:19:51 -07:00
Stephen Williams
35e48fb7b7
Merge branch 'master' into verilog-ams
2008-05-14 20:12:41 -07:00
Cary R
2934ceb548
A constant thread vector is binary.
...
Thread vectors can be treated as constants the problem
was that they did not set a constant type. They now
return vpiBinaryConst.
2008-05-14 11:56:50 -07:00
Stephen Williams
6b908aeec3
Arithmetic operands can do unsigned work and have signed result.
...
It is a quirk of the $signed() system function that the argument
is converted to signed, but the operation that is performed is
not changed. So arithmetic operators on unsigned arguments inside
a $signed() expression still perform unsigned arithmetic.
2008-05-14 11:51:53 -07:00
Stephen Williams
a069b6dbe1
Basic test of the range for logic/bool parameters.
...
If there is a value range for a logic/bool parameter, then test the
configured value with the range and report an error if the range is
out of bounds.
2008-05-13 21:56:57 -07:00
Stephen Williams
48f934abf7
Get parameter ranges as far as the netlist form.
...
The pform is now translated/elaborated into NetScope objects. All that
remains is to check the parameter values against the ranges. This is
to be done in the evaluate_parameters() method.
2008-05-13 21:22:52 -07:00
Cary R
a6dd97a5a6
Fix comparisons that use sb_to_idx()
...
A recent change to sb_to_idx() made it return a signed value
where it previously returned an unsigned value. This patch adds
explicit casts to remove the two signed vs unsigned comparison
warning messages.
2008-05-13 11:04:56 -07:00
Stephen Williams
2b4f7f8aed
Revert "One more signed vs unsigned comparison fix"
...
This reverts commit 3c5bf034ca .
A latter patch is more complete.
2008-05-13 10:58:33 -07:00
Cary R
add84b153c
Make sure stringify_flag is initialized.
...
stringify_flag should not be used uninitialized.
Found with valgrind.
2008-05-13 10:50:59 -07:00
Stephen Williams
2172c8a503
Parse parameter value ranges into pform.
...
Handle parameter value ranges as far as the pform. The +-inf expressions
are not handled yet, nor is the single value exclude, but the other
cases are handled.
2008-05-12 21:26:38 -07:00
Stephen Williams
cbf96d73ee
Make semi-colon after discipline/nature name optional.
...
The VAMS-2.2 LRM syntax does not include a semicolon after the nature/
discipline name, but the 2.3 LRM does. Effectively, that means that
the simicolon is option from now on.
2008-05-12 17:31:59 -07:00
Larry Doolittle
3c5bf034ca
One more signed vs unsigned comparison fix
...
Fix
elab_expr.cc:1561: warning: comparison between signed and unsigned integer expressions
caused by revised prototype of NetNet::sb_to_idx() in
commit dfb7bf5211
2008-05-12 16:29:10 -07:00
Stephen Williams
7166aea1d7
Attach natures to disciplines
...
Pform parse enough of the natures that they can be mapped and the
disciplines can bind to them. Since Verilog-AMS expects natures to
be declared before use, we can do the binding early.
2008-05-11 18:52:27 -07:00
Stephen Williams
93b400c4d7
Attach disciplines to wires
...
Allow discipline declaration of nets that attaches the discipline to
a new wire or a wire that is already declared.
2008-05-11 17:30:33 -07:00
Stephen Williams
a506a18970
Nature and discipline declarations syntax
...
The VAMS-2.3 specification says that discipline and nature declarations
have a semi-colon after the identifier, but the disciplines.vams in
the appendix does not. Initial guess what that the disciplines.vams
is correct, but I've been told that the syntax is correct and the
disciplines.vams file is not.
2008-05-11 12:13:58 -07:00
Stephen Williams
5b273178f5
Parse disciplines and contribution statements
...
Parse discipline declarations, net discipline declarations, and
analog contribution statements. Don't yet do anything useful with
these, just give a sorry message where they are encountered.
2008-05-11 12:00:11 -07:00
Stephen Williams
cde87ed4a3
Add disciplines.vams and enough syntax to parse it.
...
This is part of the standard disciplines header file, with enough
syntax to part the natures and disciplines included. Don't do anything
with the parse results yet.
2008-05-10 10:37:33 -07:00
Stephen Williams
84a7efdb4f
Merge branch 'verilog-ams'
2008-05-09 17:46:45 -07:00
Stephen Williams
dfb7bf5211
Handle part selects of nets that fall of the ends of the identifier.
...
The Verilog LRM specifies that it is legal to give constant part
selects that are beyond the bounds of the identifier being selected.
But elaboration was flagging that as an error. This patch changes it
to a warning, and handles the cases by generating 'bx bits as needed.
2008-05-09 17:42:37 -07:00
Stephen Williams
a33619a0f5
Properly pad results of function calls.
...
The elaborator improperly allowed user function call nodes to take on
the expression width requested of them. The result was that generated
code had junk pad bits in certain cases.
2008-05-09 15:25:42 -07:00
Stephen Williams
a1495bb007
Unary minus of a constant does make the number signed.
...
It is wrong to assume that the result of a unary minus is signed.
Doing so can cause incorrect results in subsequent math.
2008-05-09 14:18:39 -07:00
Stephen Williams
8e1f22cd82
AC_CHECK_FUNCS_ONCE is a little too modern for many uses.
2008-05-09 09:55:41 -07:00
Stephen Williams
db10de1a6a
Fix calculation of XOR when z is present
...
When calculating 0^z with constant arguments, make sure the result is
x. This problem only happens when the arguments are constants and the
expression is calculated at compile time.
2008-05-09 09:16:11 -07:00
Stephen Williams
bbed408d68
When padding logic constants, sign extend x/z properly.
...
If there is an x or z bin in the sign position of a logic number to
be padded, pad with the x or z, not zero.
2008-05-09 08:25:25 -07:00
Stephen Williams
ba3660b948
Merge branch 'master' into verilog-ams
2008-05-08 19:56:11 -07:00
Stephen Williams
73dcace781
Prevent macro expand in strings, and add a stringify syntax
...
Verilog does not allow macro expansion in strings, and that's that.
But sometimes people want strings of a macro expansion, so add a
stringify syntax that does the trick.
2008-05-08 18:43:07 -07:00
Stephen Williams
fd3ca037aa
Document the __VAMS_ENABLE__ macro.
2008-05-08 10:28:22 -07:00
Stephen Williams
2d068ca89f
Add support for scaled real numbers.
...
Verilog-AMS supports scaled real numbers, where the "e<N>" (scientific
notation) is replaced with engineering scales from "a" (atto-) to
m (milli-) and "K" (kilo-) to "T" (tera-). This syntax can be handled
way down in the lexor.
2008-05-07 22:11:19 -07:00
Stephen Williams
dea1161c7e
Merge branch 'verilog-ams'
2008-05-07 17:50:56 -07:00
Stephen Williams
3a61b94e98
Realign generation flags to correspond to IEEE1364 nomenclature.
...
IEEE1364 has specific names for the various generations of Verilog that
are supported. Icarus Verilog should stick to those names for selection
the language feature set.
In the process, the extensions that were tied to the 2x generations
are pulled out out and given their own enable flags. The makes all the
feature control more regular and understandable.
2008-05-07 17:46:56 -07:00
Cary R
3a8a6976e1
Add $vvp_cpu_wordsize function
...
This patch adds a new system function $vvp_cpu_wordsize. It returns
the size of the underlying CPU word (long) in bits. This function
can be used to write fully portable tests for the test suite. Other
functions will be added as needed.
2008-05-07 09:42:02 -07:00
Stephen Williams
6cc244766c
Fix build error branching around initializations.
2008-05-07 07:31:01 -07:00
Stephen Williams
6e3ec755e2
Define __VAMS_ENABLE__ when verilog-amd i enabled.
2008-05-06 22:34:48 -07:00
Stephen Williams
ca517b5519
Handle corner cases of abs(), min() and max()
...
The abs() function needs to be able to turn -0.0 into 0.0. This proved
to be too clunky (and perhaps impossible) to do with tests and jumps,
so add an %abs/wr opcode to do it using fabs().
The min/max functions need to take special care with the handling
of NaN operands. These matter, so generate the extra code to handle
them.
2008-05-06 22:19:59 -07:00
Stephen Williams
10ab5cf698
Merge branch 'verilog-ams'
2008-05-06 21:00:12 -07:00
Stephen Williams
523de1b69c
Handle the abs() function in net context.
...
In net context we have to create a node that does the abs() function
for us. Elaborate that node and handle it all the way down to vvp.
2008-05-06 20:37:00 -07:00
Stephen Williams
3e591f730e
sign extended expressions are signed.
...
Fix when sign extending an expression that the result is also signed.
This bug caused some arithmetic operations (with extended arguments)
to not notice that they are signed.
Also be more robust in noticing that comparisons are signed and should
generate the right code.
2008-05-06 13:27:04 -07:00
Cary R
34e90bb3a6
Allow genvars to also be constants.
...
This patch adds genvars to the list of constant values.
2008-05-06 07:35:23 -07:00
Cary R
4f8b91e65c
Add file and line information for parameters, etc.
...
This patch adds file and line information for parameters and
local parameters. It also adds file/line stubs for signals in
the tgt-* files. It adds the pform code needed to eventually
do genvar checks and passing of genvar file/line information.
It verifies that a genvar does not have the same name as a
parameter/local parameter.
2008-05-06 07:14:27 -07:00
Stephen Williams
e91243e1c6
Elaborate abs() is continuous assign expressions.
...
In continuous assign expressions, the abs() operator can't easily be
burried in generic unary handling, so add the IVL_LPM_ABS type and
generate it as needed.
2008-05-05 22:00:39 -07:00
Stephen Williams
5484ee1732
Include va_math if compiling Verilog-AMS
...
The va_math module implements functions that are optional in base
Verilog but included in Verilog-AMS. So automatically include the
module if -gverilog-ams is given.
2008-05-05 19:26:17 -07:00
Stephen Williams
a43f336c6c
Include va_math if compiling Verilog-AMS
...
The va_math module implements functions that are optional in base
Verilog but included in Verilog-AMS. So automatically include the
module if -gverilog-ams is given.
2008-05-04 22:10:54 -07:00
Stephen Williams
cc7187c172
Add support for abs() in logic threads.
...
Add the code generator code to handle the abs() function in signed
logic. Handle some of the interesting special cases as well.
2008-05-04 22:00:01 -07:00
Stephen Williams
d60df2d75b
Implement abs/min/max operators for real values.
...
Implement in behavioral the abs/min/max operators for real values.
The parser treats these builtin functions as operators, unary or
binary, and elaborates them appropriately.
Also add enough code generator support to handle real valued expressions
in thread context.
2008-05-03 21:54:42 -07:00
Stephen Williams
6d433364ac
Fix some bugs with passing -gverilog-ams to the ivl core.
2008-05-03 21:51:47 -07:00
Stephen Williams
bbc80a84a6
Rename $log to $log10.
...
Verilog-2005 defines the base-10 log function to be $log10. This makes
sense because in C the log() function is the natural log. So add the
$log10 function.
Since there may be legacy code that uses the $log function, leave it
defined, but we should consider at least printing a warning when the
$log function is used.
2008-05-03 18:29:52 -07:00
Stephen Williams
c993fb8325
Handle Traditional Verilog-A math functions
...
Verilog-AMS recommends that users use the system-function style
math functions, but supports traditional style math functions for
portability. Add the keywords and parse the traditional Verilog-A
functions, and handle them as calls to the equivilent system
function.
2008-05-03 18:05:51 -07:00
Stephen Williams
f662d76b2e
Add infrastructure for enabling Verilog-AMS
...
Add the -gverilog-ams flag to the driver, and the begin_keywords support
for VAMS-2.3 keywords. With this, the infrastructure is in place to
start pulling in features from Verilog-AMS.
2008-05-02 16:28:48 -07:00
Stephen Williams
0c29e540ea
Check ketwords against active keyword subset mask.
...
The begin_keywords directives manage a mask of keyword sets that are
active at a given moment. This patch makes the lexor actually test
the given keyword against the mask. If it matches, return the keyword
id, if it is disabled then it is an IDENTIFIER.
2008-05-02 15:29:09 -07:00
Stephen Williams
1a8be6d28c
Merge branch 'master' of ssh://[email protected] /home/u/icarus/steve/git/verilog
2008-05-02 14:55:49 -07:00
Stephen Williams
6491c5d43c
Sort changelog for SuSE
...
The RPM program for SUSE is picky about the order of entries in the
changelog section.
2008-05-02 14:55:26 -07:00
GuntherDannoritzer
a319939573
Fix up verilog.spec and root Makefile.in for package managers.
...
Package builders/managers find the DESTDIR variable convenient for
installing into a temporary target for building a package. This adds
the DESTDIR varilable to the root makefile.
Also, clean up the verilog.spec file to reduce redundancy so that
maintence for releases is easier.
2008-05-01 21:54:34 -07:00
Cary R
9db9aa4ccb
Allow zero width replications only in a concatenation.
...
1364-2001 does not allow a replication count of zero, but
1364-2005 allows them when the replication is enclosed in
a concatenation with other valid bits. This patch adds
code to perform these checks for procedural expressions.
Because of the NetNet object must have a width greater
than zero a replication used in a continuous assignment
can never have a count of zero.
2008-05-01 20:33:04 -07:00
Larry Doolittle
cb5260b2ce
minor improvements to scripts/MAKE_SNAPSHOT.sh
...
could still use more love setting defaults and handling errors
2008-05-01 20:23:30 -07:00
Cary R
c0d3bb370f
Clean up some VPI issues.
...
This patch makes sure that objects either support vpiFile
and vpiLineNo or adds dummy code so that a runtime error
will not occur when accessing these properties. It also
returns 1 for the size of real variables and adds a
simplified vpiIndex that matches the Memory interface.
2008-05-01 20:18:59 -07:00
Larry Doolittle
b99206ac8e
avoid two unnecesary compile-time warnings
2008-05-01 18:34:03 -07:00
Stephen Williams
149bfa05d8
Support for the begin_keywords directive.
...
The begin_keywords directive allows the source code to select keyword
subsets so that a bit of code that uses identifiers that class with a
newer version of the standard can still be compiled.
2008-04-30 22:07:09 -07:00
Cary R
86a4025b58
Push file and line information for scopes to the runtime.
...
This patch adds code to push the file and line information
for scope objects (modules, functions, tasks, etc.) to the
runtime. For modules, this includes the definition fields.
2008-04-29 21:51:34 -07:00
Stephen Williams
2a5948d704
Add va_math.txt based on the README from the va_math submission.
2008-04-29 21:34:35 -07:00
Stephen Williams
f5263c9447
Add the va_math module and constants.vams include file.
...
The va_math.vpi module implements systen-function versions of the
Verilog-A math functions. This library was contributed by Cary R.
Also add the constants.vams include file. This is pretty much
direct from the Verilog-AMS LRM.
2008-04-29 21:20:39 -07:00
Stephen Williams
f95a6fed14
Prepare for snapshot 20080429
2008-04-29 12:03:22 -07:00
Cary R
436e2fca13
Add ifnone functionality.
...
This patch adds ifnone functionality. It does not produce an
error when both an ifnone and an unconditional simple module
path are given. For this case the ifnone delays are ignored.
2008-04-29 11:55:32 -07:00
Stephen Williams
64c92f9fdd
A script for making snapshots
...
Include in git a script for making snapshots. This script makes a
bundle that can compile outside of git.
2008-04-28 21:54:09 -07:00
Cary R
603ca0f2de
Add better error recovery for failed task/function definition.
...
This patch does a better job of recovering from an error in a
task or function definition. This prevents the compiler from
printing many irrelevant error messages.
2008-04-27 21:30:23 -07:00
Cary R
efba4bfd09
Allow multiple ports in single ANSI decl for tasks and functions
...
This patch adds the functionality to tasks/functions to handle the
declaration of multiple ports using a single ANSI declaration. It
also deletes the old range vector before it adds the new one. The
tasks and functions are different than modules so we need to copy
the range for them.
2008-04-27 21:26:17 -07:00
Cary R
785aad94c5
Ignore a few more compiler directives.
...
This patch adds `default_decay_time, `default_trireg_strength,
`delay_mode_zero and `line as ignored compiler directives.
2008-04-27 21:18:21 -07:00
Cary R
ffbf37b06b
Add vpiScalarVal to signal_put_value().
...
This patch adds functionality for vpiScalarVal to signal_put_value().
It also factors out the scalar to bit4 code from vpiVectorVal.
2008-04-27 21:11:12 -07:00
Stephen Williams
c3ac01d31b
Make casts from double to unsigned bits portable.
...
Several places in Icarus Verilog try to get the bits of the integer
part of a double by casting to unsigned or unsigned long. But that
causes some compilers to generate smart code that converts all values
less then 0 to 0, even though we are after the bits, not the math
value. So be careful to do this cast only to non-negative values and
uminus the bits if necessary to get exactly what we want.
Signed-off-by: Stephen Williams <[email protected] >
2008-04-27 18:21:32 -07:00
Stephen Williams
81e12bf7f6
Handle multiple active specify delays.
...
Fix handling of cases where multiple specified delays are activated
for a given output. Need to apply the standard selection criteria
that gets the minimum value.
2008-04-25 17:17:51 -07:00
Stephen Williams
abaab602bc
Fix >= compare not detecting right X bits.
...
Oops, never properly checking that the right value has XZ bits.
2008-04-24 11:05:11 -07:00
Stephen Williams
bd170d05ad
optimize vvp_vector4_t magnitude compare and bitwise not.
...
Update the magnitide compare and bitwise not operators to use
optimized methods where possible.
2008-04-23 16:50:22 -07:00
Stephen Williams
7b81eb3494
Optimize the SUB instruction
...
The %sub instruction didn't have the efficent implementation that
the %add instructions used. Update subtraction to use the array
method, so that it gets the same performance benefits.
2008-04-23 14:03:52 -07:00
Stephen Williams
b775d178d2
More efficient way to set arithmetic results into vector4.
...
The vvp_vector4_t often receives the results of vector arithmetic.
Add an optimized method for setting that data into the vector. Take
into account that arithmetic results have no X/Z bits, etc.
2008-04-23 13:50:05 -07:00
Stephen Williams
10ea9904f1
Clean up more vvp_bit4_t encoding dependencies.
2008-04-23 11:16:24 -07:00
Stephen Williams
e7d463704c
The inputs to logical and/or are condition expressions.
...
Logical and/or take as inputs condition expressions, which are scalar
expressions. Be sure to reduce vectors using proper logic to get the
right condition value.
2008-04-22 21:03:18 -07:00
Cary R
c38e8182c2
Add checks that verify an always statement has delay.
...
This patch adds check to determine if an always block has delay
in it or not. If there is no delay a runtime infinite loop will
occur. For the indeterminate case it will print a warning message
if the new -Winfloop flag is given. This flag is not part of the
-Wall check!
2008-04-22 19:53:23 -07:00
Cary R
7b705a0212
Generate mixed real/vector expressions when needed.
...
When generating a real expression you can have bits of the
expression that use vector only operands. When this happens
evaluate that part of the expression as a vector and then
convert it to a real value.
2008-04-22 19:42:57 -07:00
Stephen Williams
5ddd35565f
Protect left shift from shifting too far.
...
On some systems, 1UL<<X will make a mess if X is the size of
an unsigned long. This especially seems to be a problem on i386
systems. Protect those shifts in the vvp_net.cc.
2008-04-22 17:31:08 -07:00
Stephen Williams
a12a6d925a
Fix left shift of unsized constants in sef-determined context.
...
When left-shifting unsized constants in self-determined contexts, the
constant value is normally pared down to its minimum required width.
But this practically guarantees loss of bits. Instead, detect this
special case and give the unsized constant a width of an integer.
Still allow for the super-special case that the shifted value and the
shift amount are constants. In that case, the result width (and value)
can be calculated precisely and there is no need to resort to default
widths.
2008-04-22 11:23:24 -07:00
Stephen Williams
5ab0c20a7d
Merge branch 'vector4_format'
2008-04-20 21:46:02 -07:00
Cary R
35e511d0c0
Check delay expressions correctly and give a better message.
...
This patch uses the true delay expression count not the truncated
one to check that the number of delay expressions is correct.
It also prints the actual number of expressions it found when
printing the error message.
2008-04-20 21:39:17 -07:00
Stephen Williams
935c3dc02d
Optimize some common vvp_bit4_t operators.
...
By slightly altering the vvp_bit4_t encoding, a few simple
optimizations become possible. By making Z==2 and X==3, the
conversion from X/Z to X is a simple shift-or, and this can
be used to reduce the size of some of the bit4 operators.
2008-04-20 21:36:53 -07:00
Stephen Williams
6d2ef15951
Remove dead code related to bit arrays/vectors
...
In previous incarnations of the vvp runtime, bit vectors were passed
around as arrays of unsigned char that charried bit4 vectors. That
is no longer used. Remove the last vestiges of that dead code.
2008-04-20 20:43:53 -07:00
Stephen Williams
40fd07d46e
Remove most dependencies on vvp_bit4_t encoding.
...
Remove dependencies on vvp_bit4_encoding outside of the vvp_net
core types. The table_functor_s class was the worst offfender and
was barely used, so it is now removed completely. There are a few
opcodes in vhtread.cc that also make vvvp_bit4_t encoding
assumptions (and used casts) and those have been fixed. There
were also various VPI interface functions that are fixed.
2008-04-20 19:21:41 -07:00
Stephen Williams
5e30016910
Rework vvp_vector4_t to use planar a/b bits instead of interleaved.
...
The vvp_vector4_t holds 4-value logic. This patch changes the encoding
of 4-value bits in the vector to use separate A- and B bit vectors,
with the B- vector signaling the A- bits that are not 0/1. This
allows rapid conversion to 2-value logic, and rapid tests for X
and Z values.
2008-04-20 16:30:27 -07:00
thiede
33466250f5
Support localparam integer types.
...
Support localparam integer types exactly the same way that they
are handled for parameters. (This patch was submitted to pr1946144.)
2008-04-18 21:54:25 -07:00
Stephen Williams
bdab7698d2
User defined functions can have ANSI-style ports
...
Update the rules for parsing user function definitions to allow
Verilog-2001 ANSI style port declarations. In the process, also
unify with the user task port declaration so that the types don't
diverge. The rules are the same for both, with the extra constraint
that function ports must all be input. This latter rule is checked
later, during elaboration, so that the task/function pform code
can be shared, and better error messages can be generated.
2008-04-18 21:33:03 -07:00
Cary R
54918cf5b9
Add unlink from driver to deassign and zero link pointer.
...
This patch fixes deassign to allow it to unlink from a driver.
It also zeros the cassign_link and force_link pointers after
they have been unlinked. Not doing this will cause an assert
if deassign/release are called multiple times (variable only).
2008-04-17 20:36:03 -07:00
Stephen Williams
844447b995
More reliably handle make install from read-only directory
...
commonly, the make install is run in a compiled directory by a
different user (i.e. an administrator) that doesn't necessarily
have write access to the build directory. This patch fixes it so
that the test that the version.h is up to date doesn't need to
write a temporary file in the build directory.
It also makes sure that if there is a real need to update the
verion.h, and it is not writable, then properly fail the build.
2008-04-17 20:33:39 -07:00
Cary R
6eb9825ab7
Add force/release and assign/deassign for real values.
...
This patch adds assign/deassign for real variables and force/release
for real variables and nets.
2008-04-17 20:18:20 -07:00
Stephen Williams
23e60aa381
Fix parsing of precompiled macro definitions
...
Passing preprocessor definitions forward into library cells was broken
by this bug in processing the precompiled macro values that were written
by the main preprocessor.
2008-04-17 11:52:51 -07:00
Stephen Williams
373123af6b
Detect thread bit allocation failures
...
Detect thread bit allocation failures and fail gracefully. Print an
error message that points at the expression in question, and return
with an error code so that the compiler exits with an error.
2008-04-15 21:51:03 -07:00
Stephen Williams
54cf66d8b4
Merge branch 'master' of [email protected] :git/verilog
2008-04-15 19:19:38 -07:00
Stephen Williams
dffe1be819
Trim results of unsized constant add to prevent width expansion
...
When constant values are added to get another constant value, and the
expression is not otherwise a fixed size, then trim the result to
prevent unbounded expansion of unsized expression with.
In the process, find and fix a bug in the vtrim function that caused
an assert if trimming were not possible for an unsigned value.
2008-04-15 19:18:03 -07:00
Cary R
d41f8fe52b
Only pad parameter constants out to their defined width.
...
This patch fixes the elaboration of parameters in a continuous
assignment to only pad the constants to their defined width.
Previously they were padded to the l-value width which resulted
in a vvp runtime error. This appears to be because the width
for padding is the defined width, but the constant is printed
using its internal width which previously could be larger than
its defined width.
These constants are local nets so I added that flag as well.
2008-04-15 18:05:53 -07:00
Larry Doolittle
6ca53c6810
Don't crash on duplicate module
...
Fix for pr1938138,
pform.cc:278: failed assertion lexical_scope == 0
2008-04-15 17:56:54 -07:00
Cary R
9bb8e8146f
Add assign/deassign to bit/part selects and other fixes
...
This patch adds the ability to assign/deassign a bit or part select.
It also cleans up the code and fixes some problem in the forcing of
strength aware nets.
2008-04-15 17:46:44 -07:00
Cary R
321114e4db
Add an underscore between multiple strength values.
...
When printing the strength information for a multi bit net this patch
adds an underscore between the individual bit strength values. This
makes it easier to see the individual bit values.
2008-04-15 17:31:35 -07:00
Cary R
ef3aacfe36
Make %v print all the bits of a vector.
...
This patch reworks the %v code to print the strength information
for all the bits of a vector. The code previously only printed
the LSB information.
2008-04-15 17:23:58 -07:00
J Varshney
bfb33230aa
Revise handling of version.h to avoid build problems.
...
A patch to insert the version string from git broke compilation when
the source was not a git repository or when building in a read-only
source tree. This patch avoids breaking compilation by using a
graceful failure mechanism for generating the version string and does
not write to the source tree.
2008-04-11 20:51:09 -07:00
Cary R
44767d8f70
Make MUXZ and MUXR use enum for select type.
...
Rework the MUXZ and MUXR code to use an enum instead of plain
integers for the select input state. This makes it more obvious
what is actually going on.
2008-04-09 21:47:47 -07:00
Cary R
fecd941a28
Make sure MUXZ runs at time zero if needed.
...
This patch adds a flag to the MUXZ object to make sure that it will
run at time zero if needed. If this is not done the default Z result
may not be overridden by an X result.
2008-04-09 21:47:39 -07:00
Cary R
2be8534021
Add %assign/av/d opcode.
...
This patch adds a %assign/av/d opcode. This is a version of %assign/av
that allows a delay expression. Ultimately this allows a dynamically
indexed array to have a delay expression (non-constant delay value).
2008-04-09 21:24:37 -07:00
Cary R
8cece424d1
In the context of a force/assign you cannot reuse a saved signal value.
...
This patch removes the overly optimistic lookaside save for a signal
that has been set (%set/v). This is incorrect because if a force or
assign are active the value will not be set as expected.
2008-04-09 21:10:11 -07:00
Stephen Williams
e2dfeac86c
Part select from vectored parameters correct.
...
Make sure that constant bit selects of parameter names use the
proper vector range.
2008-04-08 21:20:49 -07:00
Stephen Williams
a914eda5ef
Get part select from vectored parameters correct.
...
Parameters with vector descriptions that are not zero based and
are used in net contexts should generate the properly ranged
temporary signals. This causes subsequent part selects to work
out properly.
2008-04-08 20:50:36 -07:00
Stephen Williams
ba8a41ca28
Some elab_pexpr debug text.
2008-04-08 20:42:42 -07:00
Stephen Williams
a67d573ae6
Eval_tree debug is controled by debug_eval_tree flag.
2008-04-08 20:42:08 -07:00
Cary R
f5418fe337
Catch unsupported bit/part select lvalue for assign/deassign.
...
This patch adds code to print a message when an assign/deassign is used
to drive/release a bit/part select.
2008-04-07 20:52:54 -07:00
Stephen Williams
7035ded57a
Do not replace explicit parameters with implicit wires.
...
During elaborate_sig, the code to detect implicit wires did not
properly account for the possibility that the name is that of an
explicitly declared parameter.
2008-04-06 19:26:22 -07:00
J Varshney
ad3a73f74f
Append last git tag and abbreviated commit-id to version string.
2008-04-06 09:30:55 -07:00
J Varshney
43e8a08c97
Tell make to find ivl.def and vvp.def in srcdir.
2008-04-06 09:22:50 -07:00
Cary R
208c6a349d
Add <> to general T_SYMBOL RE and move it after the special cases.
...
This patch add (I believe back in) the < and > characters to the
general T_SYMBOL regular expression. The match was also moved after
the special T_SYMBOL cases so that flex would match them correctly.
Flex matching rules are longest or if a tie the first.
2008-04-04 21:59:13 -07:00
Cary R
640231bbfa
Add code to prevent broken synthesis in devel. from core dumping.
...
This patch adds code to prevent the broken synthesis code in
the development branch from core dumping. Broken code here
refers to the Icarus code not a Verilog file.
2008-04-04 21:38:59 -07:00
Cary R
bdc48135e5
Fix two comparisons in tgt-vvp/eval_expr.c to use correct variable.
...
This patch fixes two comparison that were using the wrong variable
to determine when the end of the object had been reached.
2008-04-04 21:31:14 -07:00
Cary R
f7e840cd0a
Fix another delete[]/free problem.
...
This patch fixes a delete[] vs free problem in the NexusSet
class. The items_ array was being allocated with malloc/realloc
and freed with delete[]. The quick fix was to replace delete[]
with a call to free(). A better fix would probably be to rework
the class to use a vector.
2008-04-04 21:31:14 -07:00
Cary R
3c1e7c4260
A NetScope will get a default nettype from a parent.
...
The default nettype was not always being set. This patch
modifies the NetScope constructor to get the default
nettype from a parent if it exists. It is set to NONE if
a parent does not exist.
2008-04-04 21:31:14 -07:00
Cary R
5a1ec9b958
A IVL_EX_CONCAT is always unsigned.
...
The signedness of an IVL_EX_CONCAT was not being set. This patch
forces it to always be unsigned as the standard specifies.
2008-04-04 21:31:13 -07:00
Michael
1bc56fcc93
Delete all temporary files even when using -E flag
...
The -E flag causes the driver to exit early. Be careful to delete
all the various temporary files even in this case.
2008-04-04 21:22:46 -07:00
Stephen Williams
13958cf374
Elaborate_sig skips ports that are missing on primitives
...
It is illegal for primitives to not have ports bound, but that
error will be taken care of later, during elaborate.
2008-03-28 21:34:18 -05:00
Cary R
b5b5a9935c
Fix malloc/free and new/delete problems, plus some initializations.
...
This patch fixes some allocation problems (mostly in the parser
and lexor relating to identifiers). It also fixes a couple places
where uninitialized variables were used. All found with valgrind.
There are still 100 tests that have problems. Many of these appear
to be related.
2008-03-27 20:58:16 -07:00
Cary R
bb14ac1fe0
Add functionality to alias an individual word of an array.
...
This patch adds the functionality to alias an individual word
of an array.
2008-03-26 21:44:57 -07:00
Cary R
04e8623ed6
Make macro argument substitution more sane.
...
Macro argument substitution used to just use strstr() to
find an argument that needed to be substituted. This is too
aggressive. It would do argument substitution in the middle
of keywords and other identifiers. A new routine is used
that verifies the character preceding the match is not
a normal identifier character [a-zA-Z0-9_$].
2008-03-26 18:27:05 -07:00
Cary R
225fcf6bf0
Pad CA bit arguments and make reductions and ! self-determined.
...
Binary bit based operators were not padding arguments if they had
different widths. The reduction operators and ! were not correctly
evaluating their arguments in a self-determined context.
2008-03-26 18:23:19 -07:00
Cary R
8c1cca423d
Check for a negative repeat value.
...
This patch adds checks for a negative repeat value and prints
an error message under this condition.
2008-03-26 18:12:38 -07:00
Cary R
7bc9742710
Pad the R-value of a for loop initial assign like other assigns.
...
The for loop initial value R-value was not being padded correctly.
This code is a copy of the code used in a regular assignment.
2008-03-26 18:09:03 -07:00
Cary R
12f8af645f
Add support for real parameters in vvp.
...
vvp did not have the ability to handle real parameters.
This patch fixes that omission. Parameters are only used
by vpi calls to get compile time information.
2008-03-26 18:04:57 -07:00
Cary R
259e4294e3
Make of_ZOMBIE use scheduled thread deletion.
...
This patch modifies of_ZOMBIE() to use the same scheduled deletion
as vthread_reap().
2008-03-26 18:02:43 -07:00
Stephen Williams
ea74eb771e
Fix a couple problems with signed multiply
...
Problems with signed expressions that are set to parameters and
that include multipliciation exposed a few bugs in the calculation
of signed multiply. Fix this and add some improved diagnostics.
2008-03-25 21:35:08 -07:00
Stephen Williams
32b115d8fe
Parameters get their types (signedness) from expressions.
...
Parameters get their signedness from the expression that is assigned
to them unless the type is explicitly expressed where the parameter
is declared.
2008-03-25 21:30:41 -07:00
Stephen Williams
14e3a886bd
Find implicit nets in expressions passed to ports.
...
It is questionable, but probably legal, for expressions passed as
arguments to input ports of various kinds of gates to implicitly
declare nets. This patch allows the scan through different types
of expressions for implicit nets.
The elaborate_sig handling here does not test for the legality of
having a non-trivial expression as argument to a port. For example,
it is definitely NOT legal to have r-value expressions passed to
output or inout ports. But that will be checked for later when the
instance is elaborated for real.
2008-03-23 17:52:48 -07:00
Stephen Williams
140fd45460
Implicit declaration handling in ports to UDP.
...
Scan port expressions for implicit nets using elaborate_sig.
2008-03-20 21:44:35 -07:00
Cary R
5b2f249dcc
Thread deletion is now scheduled after rosync.
...
Threads used to be deleted when they finished processing code.
The problem with this is that some of the code could be
rescheduled to run at rosync ($strobe, etc.). This allowed the
thread data the code depended on to be reaped too soon. This
patch uses a new queue to schedule thread deletion. The queue
is processed after rosync has finished.
2008-03-20 20:45:41 -07:00
Cary R
01eb298228
Make muxz and muxr functors use scheduled events.
...
This patch makes the muxz and muxr functors schedule events
instead of directly calling vvp_send_*(). This prevents the
code from going into an infinite loop when the output feeds
back to the select.
2008-03-20 20:26:45 -07:00
Cary R
48990d8e2d
Implement CA - ternary short circuit for constant T/F expressions.
...
This patch only applies to the ternary operator when used in a
continuous assignment. It adds short circuiting when the expression
is a constant true or false. It does not optimize the special case of
a constant 'bx expression with constant T/F expressions.
2008-03-20 20:07:54 -07:00
Cary R
77722a62c2
Enhance dump() for function definitions.
...
This patch enhances dump() for function definitions, by indicating a
signed result with a prepended "+" and also printing the MSB and LSB.
This matches other dump() routines. It also prints the arguments with
the same information. The arguments also include their type "input",
"output" or "inout".
2008-03-20 19:42:11 -07:00
Stephen Williams
a2ea980a7a
Merge branch 'implicit-sig'
2008-03-18 21:44:34 -07:00
Cary R
86301be3d2
Remove unused return_event_flag.
...
This patch removes the unused return_event_flag variable.
2008-03-18 21:44:13 -07:00
Stephen Williams
bbb488f730
Handle implicit nets in the named arguments of module instances.
2008-03-18 21:40:31 -07:00
Stephen Williams
13d4a7352c
Elaborate implicit signals that are arguments to module instances.
...
Module instances are like gates, so the expressions pass in need
to be checked for implicit nets.
2008-03-18 21:25:13 -07:00
Stephen Williams
d26ae866f8
Move implicit net creation from elaboration to elaborate_sig
...
If implicit nets are declared during elaboration, then the success
of binding during elaboration will depend on the order of the code
in the source file.
2008-03-18 20:50:40 -07:00
Stephen Williams
8e6c2652ab
Merge branch 'master' of [email protected] :git/verilog
2008-03-14 21:06:27 -07:00
Stephen Williams
94818c19a0
Update to 20080314 snapshot
2008-03-14 15:58:51 -07:00
Stephen Williams
9b1baea6da
Minor remove of unused vvp_net_t member.
2008-03-12 21:30:42 -07:00
Cary R
ef9ee52e53
NetESignal::dup_expr() was not passing the word_ information.
...
The dup_expr() function for NetESignal was not copying the word_
expression. This would cause an individual array access to turn
into an entire array access. The file and line information was
also not being set correctly.
An assert() in tgt-vvp/eval_expr.c was also replaced with an
exit() since the appropriate information was already being
printed.
2008-03-12 20:55:12 -07:00
Cary R
377f5eaa23
Add \' as a string constant to block macro expansion.
...
This patch allows you to type "The \`define is `value" and not have
Icarus try to expand `define as a macro.
2008-03-11 20:14:32 -07:00
Cary R
234648231b
Add bit/part select release for constants and add an error check.
...
This patch adds functionality to do a bit or part select release
when a constant value is forced to the net/register. It also adds an
error message when the user tries to force a signal to a bit/part
select. This is not currently handled by the run time, so is now
caught in the compiler (tgt-vvp). Where when this functionality is
needed, it will be easy to know what to do instead of trying to track
down some odd runtime functionality.
What this all means is that you can force a signal to an entire
signal or you can force a constant to any part of a signal (bit,
part or entire) and release any of the above. Technically the
release of a constant value does not have to match the force.
The runtime verifies that if you are releasing a signal driver
it is being done as a full release. I don't see an easy way to
check this in the compiler.
To fix the signal deficiencies we need to rework the force_link
code to allow multiple drivers and partial unlinking. Much of
this is in the runtime, but the %force/link operator may also
need to be changed like I did to the %release opcode.
2008-03-11 19:56:58 -07:00
Cary R
cc28a9a734
Improve error message in tgt-vvp/eval_expr.c:draw_eval_expr_wid().
...
The IVL_EX_NONE type was not displaying any message and default did not
use the new ivl_expr_{file,lineno} functions to get the source location.
This patch remedies these problems.
2008-03-11 19:47:22 -07:00
Stephen Williams
6f1445ff9d
Minor cleanup of vpi_put_value to wire
...
Comments to clarify the vpiForceFlag and vpiReleaseFlag behaviors.
2008-03-10 22:18:41 -07:00
Stephen Williams
e0fbc15bd4
Support vpiForceFlag and vpiReleaseFlag for nets.
...
vpi_put_value can mimic force and release with vpiForceFlag and
vpiReleaseFlag flags to the vpi_put_value call. With this patch,
the infrastructure is added to allow the flags argument to be passed
to the dispatched put_value function, and for signals handle those
flags as force/release of a net.
2008-03-10 21:54:58 -07:00
Stephen Williams
e141d2bb37
Merge branch 'master' of ssh://[email protected] /home/u/icarus/steve/git/verilog
2008-03-10 19:24:40 -07:00
Cary R
fe72d02cf6
Major rework of the ternary operator elaboration code.
...
This patch reworks much of the ternary code to short circuit when
possible and supports real values better. It adds a blend operator
for real values that returns 0.0 when the values differ and the value
when they match. This deviates slightly from the standard which
specifies that the value for reals is always 0.0 when the conditional
is 'bx. There are also a couple bug fixes.
These fixes have not been ported to continuous assignments yet.
Ternary operators used at compile time and in procedural assignments
should be complete (short circuit and support real values).
2008-03-08 19:45:13 -08:00
Cary R
c2bae1ad6c
Fix a small bug in the extra digits warning.
...
There were a couple places where a normal decimal number was
accidentally setting the base for an unsized number. This is
only a warning problem.
2008-03-06 20:42:07 -08:00
Stephen Williams
692caca9dc
Connect module instance arrays MSB to MSB.
...
When a bit port of a module instance is connected to a vector
argument, the MSB module instance should be connected to the MSB
of the vector argument. This matters only in the rare case that
the %m is used. It also makes wave dumps come out right.
2008-03-06 20:37:08 -08:00
Michael Witten
8b45797ccf
ivlpp: Fixed handling of absolute paths
...
The updates to the do_include code destroyed the
handling of absolute paths; all of the code that
handles buffer-switching was erroneously placed
in just the relative-path branch. Thanks go to
Cary R. for pointing out the problem.
Now the common code has been extracted yet again,
and the notorious goto statement has been used
in favor redundancy.
The test vvp_reg.pl produces the same output as
before, so hopefully nothing new is broken.
Signed-off-by: Michael Witten <[email protected] >
2008-03-05 08:42:57 -08:00
Stephen Williams
8d3febff2b
Keep processes in proper lexical scope
...
Normally processes are found in the lexical scope of a module, but
there are special cases where processes (other then task/function
definitions) are in other lexical scopes. The most likely case is
initilizations that are in the lexical scope where the assigned
variable is declared.
In the process, the behaviors list is kept in the base PScope class
instead of the Module or any other derived lexical scope class.
2008-03-03 20:49:52 -08:00
Cary R
3221f70bcb
Add vvp_fun_part_var::recv_vec4_pv().
...
Add missing vvp_fun_part_var::recv_vec4_pv() function. This is mostly
a duplicate of the _pv() routine from vvp_fun_part.
2008-03-02 21:20:56 -08:00
Stephen Williams
cb920bd864
Merge branch 'master' of [email protected] :git/verilog
2008-03-02 21:04:46 -08:00
Stephen Williams
32a2e7aa39
Fix lexical scopes within case-generate alternatives.
...
Case-generate alternatives create sub-scopes that need to be scanned
by the scope scanner in order to get function definitions etc. that
are defined lexically within generated scopes.
2008-03-02 21:04:04 -08:00
Stephen Williams
52ac96ca15
elaborate_sig for generated case items
...
Handle elaborate_sig for scopes that are within a case-generated
scheme.
2008-02-27 20:54:47 -08:00
Cary R
f8caebd076
Convert real array index to integer.
...
This patch converts a constant real index to an integer value when
defining an array. This can happen when using 2**8 which returns a
real value since the operands are signed.
2008-02-27 18:00:21 -08:00
Cary R
70c5c9fe14
Propagate file and line information in more places.
...
There where a few places that were not propagating the file and
line information.
2008-02-27 17:31:20 -08:00
Stephen Williams
75df8fb6bb
Remove index register restrictions on ix/arith instructions.
...
The %ix/<arith> instructions are currently not in use, but even so
it is just plain wrong to restrict their register argument to 0-3.
2008-02-27 17:01:53 -08:00
Cary R
ec87c7f6de
Fix %ix/load to work with all index registers.
...
draw_number_bool64() in tgt-vvp/eval_bool.c was using %ix/load to
load immediate values into registers greater than three. The problem
was that of_IX_LOAD() in vvp/vthread.cc was masking off the upper
bits. This was putting the results in the wrong register. This patch
removes the bit masking from of_IX_LOAD() and updates the %ix/load
documentation.
2008-02-27 16:54:38 -08:00
Cary R
b5ef6d7a37
Fix some problems in driver-vpi/main.c
...
Fixed a few problems in driver-vpi/main.c that were preventing
the Verilog-A math library from compiling.
2008-02-25 16:01:59 -08:00
Cary R
285ff2859f
Add power operator synthesize().
...
This patch adds synthesize() for the power operator.
2008-02-25 15:57:56 -08:00
Michael Witten
a01bc5e245
ivlpp: Cleanup: Formatting/Detabification
...
The file lexor.lex was beginning to suffer a catastrophic
increase in entropy due mainly to the mingling of spaces
and tabs--an age-old problem that often finds itself as
the subject of many a religious war.
The key rule: Make it consistent in as many editors as
possible; this was achieved by converting all hard tabs
into soft tabs (composed of spaces) of width 4.
I couldn't help but make modifications to the code as I
tabifified, but most of the changes are strictly style.
While maintainers generally treat large scale whitespace and
formatting changes with much caution, I believe that the code
is now much more maintainable; moreover, the test suite
produces the same results as before.
Signed-off-by: Michael Witten <[email protected] >
2008-02-25 15:52:41 -08:00
Michael Witten
c6ce3f6f38
ivlpp: Error checking for macro names
...
Macro names cannot be compiler directive names.
Such trespasses are now recognized and reported:
(1) Offending `define lines are skipped.
(2) Offending macros meant to be expanded
are replaced with nothing.
Signed-off-by: Michael Witten <[email protected] >
2008-02-25 15:51:34 -08:00
Cary R
fac1cc5a1c
Add user function synth and clean up expression code.
...
This patch adds synthesize() for user functions. It also cleans up a
number of inconsistencies and missing checks in the expression code.
2008-02-24 20:00:18 -08:00
Stephen Williams
11a33a0907
Merge branch 'pscope'
2008-02-24 19:45:21 -08:00
Stephen Williams
8e704cbf93
Rework handling of lexical scope
...
Move the storage of wires (signals) out of the Module class into
the PScope base class, and instead of putting the PWires all into
the Module object, distribute them into the various lexical scopes
(derived from PScope) so that the wire names do not need to carry
scope information.
This required some rewiring of elaboration of signals, and rewriting
of lexical scope handling.
2008-02-24 19:40:54 -08:00
Cary R
3716e972ec
Add support for unary +/- in real parameter evaluation.
...
This patch adds support for unary + and - of real value constants
to the eval_tree() functionality.
2008-02-20 17:24:44 -08:00
Cary R
538d3d1f4d
Print an error message if $fscanf() is called with a NULL fd.
...
If $fscanf() is called with a NULL file descriptor an appropriate
error message is printed and the program exits.
2008-02-20 17:16:52 -08:00
Cary R
528af27769
Fix a realloc size error and initialize enable_ in the dff.
...
The buffer reallocation in scan_format_string() was one character
too small. The enable_ pin to the dff primitive was not given an
initial value.
2008-02-19 10:06:44 -08:00
Michael Witten
2bd13964cd
ivlpp: Slight rearrangement of do_include()
...
The ordering of the logic was a little strange before.
Also, there were unnecessary operations, like the assert
and the include_dir[0]=0 business.
Signed-off-by: Michael Witten <[email protected] >
2008-02-19 09:56:18 -08:00
Michael Witten
105885402f
ivlpp: Fixed include_path inconsistency
...
Discussions online and "standards" documents are never
conclusive, but the code that was present suggests that
iverilog adopts the sane practice of resolving relative
paths against the directory of the file that is currently
being processed.
Unfortunately, when a relative path is made absolute, the
code forgot to update the necessary include_stack_t object.
This has now been fixed.
Signed-off-by: Michael Witten <[email protected] >
2008-02-19 09:56:18 -08:00
Michael Witten
b512671643
ivlpp: Removed yywrap() to handle EOF more sanely
...
When the lexical analyzer encounters and EOF, the
analyzer invokes yywrap() to determine what to do
next. The function determines one of two paths of
execution:
(1) If yywrap() returns 0, then the analyzer
assumes that yywrap() has setup a new input
source, and so scanning continues.
(2) If yywrap() returns non-zero, then the analyzer
assumes that yywrap() has not setup a new input
source, and so the analyzer proceeds to run the
matching EOF action (the default of which invokes
yyterminate()).
NOTE: The analyzer does not touch the start condition.
The old implementation was using yywrap() to destroy the current
input source and setup the next one. However, this causes problems
when the analyzer is in the middle of parsing some directive:
(1) Because yywrap() is called before any EOF action,
the include_stack_t structure is destroyed before
being used in the EOF action; the result is a segfault.
(2) Because yywrap() does not change the start condition,
any EOF action would occur completely out of context;
however, because of (1), this problem never cropped
up.
The new implementation simply:
(1) Employs "%option noyywrap", which effectively causes
the analyzer to act as though yywrap() produces a non-zero.
(2) Renames yywrap "load_next_input".
(3) Calls load_next_input() explicitly in exhaustive EOF actions,
so that control is more fine grained.
The added benefit is that the code that finishes parsing EOF terminated
directives now works properly; `include and `define directives previously
segfaulted in such situations.
Signed-off-by: Michael Witten <[email protected] >
2008-02-19 09:56:18 -08:00
Michael Witten
c064451e15
ivlpp: Formatting/Simplification
...
Code is now shared among rules.
Signed-off-by: Michael Witten <[email protected] >
2008-02-19 09:31:02 -08:00
Michael Witten
73f8c2e68c
ivlpp: Fixed incorrect lineno
...
Signed-off-by: Michael Witten <[email protected] >
2008-02-19 09:31:02 -08:00
Michael Witten
6103a72927
ivlpp: Removed delayed_close
...
This variable was used in yywrap purportedly to obviate
hidden access to a file that should be closable.
After investigating the code flex produces, it would
seem that these fears are unfounded.
Signed-off-by: Michael Witten <[email protected] >
2008-02-19 09:31:02 -08:00
Michael Witten
3bdf0a13d6
ivlpp: Clarification
...
A simple comment to clarify the use of standby for the inclusion stack.
Signed-off-by: Michael Witten <[email protected] >
2008-02-19 09:31:02 -08:00
Michael Witten
623073c722
ivlpp: Removed the unnecessary parser
...
The verilog preprocessing language is sufficiently simple
that the parser may be implemented by hand on top of the
lexical analyzer.
In fact, ivlpp was already implemented in this way; relevant
[bison] parser files specified no grammar, and the parser
entry-point (yyparse) was simply an indirect use of the lexical
analyzer (yylex).
Therefore, parse.y has been removed, invocations of yyparse()
have been replaced by yylex(), references to bison generated
files have been removed, and Makefile.in has been updated
accordingly.
Signed-off-by: Michael Witten <[email protected] >
2008-02-19 09:31:02 -08:00
Cary R
e989f63192
Fix thread address check and wide vector unaligned copy.
...
This patch fixes two problems. The first is that thr_check_addr()
was being used inconsistently. It should be passed a real address,
but the resize of the vector should be at least one more than this
address. The extra and unneeded CPU_WORD_BITS was also removed
from the routine.
The second problem involved an invalid memory access in
vvp_vector4_t::set_vec() when the vector being copied was an integer
multiple of the machine word width. Under this condition there would
be no remaining bits that needed to be copied but the routine was always
trying to copying some remaining bits. This code is now only executed
when there is a remainder.
Neither of these appear to be causing runtime problems. The second one
was found with valgrind. The first were found while tracking down the
second problem.
2008-02-19 09:21:20 -08:00
Larry Doolittle
39dd22ace4
Adjust unusual spacing
...
minimal changes, nearly eliminates oddball/inconsistent
source code use of whitespace
2008-02-19 09:15:03 -08:00
Stephen Williams
ceef77e15f
Merge branch 'master' of [email protected] :git/verilog
2008-02-15 21:21:13 -08:00
Stephen Williams
b0e4a6884a
Objects of lexical scope use PScope base class.
...
All the pform objects that represent lexical scope now are derived
from the PScope class, and are kept in a lexical_scope table so that
the scope can be managed.
2008-02-15 21:20:24 -08:00
Cary R
e7ea90c812
Explicitly initialize real values to 0.0.
...
This patch explicitly initializes real values to 0.0. Not doing
this was creating an intermittent time zero value problem.
2008-02-15 15:12:55 -08:00
Larry Doolittle
f9bf502324
Correct format string
...
vvp_scope.c:1741: warning: format '%d' expects type 'int', but argument 5 has type 'long unsigned int'
introduced in commit
331faa2217
2008-02-15 13:26:24 -08:00
Larry Doolittle
d28fcb8941
Add missing consts
...
Fixes char usage introduced in commit
331faa2217
2008-02-15 13:25:28 -08:00
Cary R
2b5560957a
Force the L-value and R-value to match for real values.
...
Check that if either the L-value or the R-value are real then both
must be real. This prevents a runtime crash.
2008-02-13 20:44:16 -08:00
Cary R
b6f26e62df
Add support for delaying constants at T0.
...
This patch adds support for delaying constants at time zero. It also
cleans up the code in elab_net.cc to use this capability instead of
building it with an extra BUFZ to carry the delay information.
2008-02-13 20:10:55 -08:00
Stephen Williams
3f2fa29482
Factor compile-time scopes into PScope class
...
Modules, functions and tasks are named scopes so derive them all
from the PScope base class. These items all take scoped items, so
the eventual plan is to move these items into PScope.
2008-02-13 19:59:05 -08:00
Cary R
4d8db7b5bc
Clean pulse events for real signals.
...
This patch cleans pulse events for real signals. Not doing this
can produce invalid results under some conditions.
2008-02-13 15:43:19 -08:00
Cary R
2bab415626
Add message for unsupported release of part/bit select.
...
This patch adds a real error message instead of an assert when
someone attempts to release a part or bit select. I plan to work
on the real functionality soon.
2008-02-13 15:37:53 -08:00
Stephen Williams
110bc2e6eb
Merge branch 'master' of ssh://[email protected] /home/u/icarus/steve/git/verilog
2008-02-13 15:27:39 -08:00
Cary R
331faa2217
Add signed bit based power to continuous assignments.
...
This patch adds the power operator for signed bit based values
in a continuous assignment. It also fixes a few other power
expression width problems. The expression width is still not
calculated correctly, since the correct method can produce huge
possible bit widths. The result is currently limited to the width
of the native long. This is because lround() is used to convert
from a double to an integer. A check in the code generator protects
the runtime from this limitation.
2008-02-11 20:06:41 -08:00
Stephen Williams
f2ff25bfef
Dump delays of constants.
2008-02-09 22:20:01 -08:00
Stephen Williams
bc1d3eb7cd
Add support for generate case
...
Generate case is a complex generate scheme where the items are
sub-schemes of the case generate itself. The parser handles them
something like nested generate statements, but storing the case
guards as the test expression. Then the elaborator notes the
case scheme and reaches into the case item schemes inside to make
up tests, select the generate item, and elaborate.
2008-02-09 22:19:42 -08:00
Larry Doolittle
63e2aa8d1a
refine man page treatment of -d
...
also renames config file option from scope to scopes,
for consistency with the source code, and adds a
wiki reference to the man page.
2008-02-08 15:30:21 -08:00
Stephen Williams
0ac36dc5af
Merge branch 'master' of [email protected] :git/verilog
2008-02-06 18:38:55 -08:00
Stephen Williams
3a300725de
Output delays for part select nets.
...
Implement net delays for part select devices.
2008-02-06 18:37:42 -08:00
Cary R
85229a6cdc
Add unsigned bit based power to continuous assignments.
...
This patch adds the power operator for unsigned bit based values
in a continuous assignment. It also refactors the power code for
normal expressions and continuous assignments.
2008-02-06 14:38:16 -08:00
Cary R
47d1d981d5
Mangle the scope for user functions in a continuous assignment.
...
User functions called in a continuous assignment were not getting
their scope mangled. This is needed to handle arrayed instances and
possibly other things.
2008-02-06 14:28:08 -08:00
Stephen Williams
fb63bf7dba
Compile portability issues.
2008-02-05 20:36:57 -08:00
Martin Whitaker
3d2e791e52
Fix for pr1887168.
...
This patch fixes some bugs in the implementation of signed integer
division with wide operands in constant expressions and adds support
for signed integer modulus with wide operands in constant expressions.
It also removes a few redundant lines of code.
2008-02-05 15:48:07 -08:00
Larry Doolittle
aaf8908676
Document new -d flag to driver
...
followup to commit 6256dd8040
2008-02-05 15:44:14 -08:00
Cary R
4cf8920e48
Fix trimming of unsigned verinum values.
...
Incorrect trimming of unsigned verinum values was causing the
compilers unsigned constant verinum pow function to give
incorrect results. This patch restores the pow compile time
optimization and fixes the trimming to always leave a single
zero in the MSB.
2008-02-05 15:40:21 -08:00
Cary R
e82293c981
Add unsigned bit based power support to normal expressions.
...
This patch adds bit based power support to normal expressions.
It also pushes the constant unsigned bit based calculation to
the runtime until the bit based method can be copied to the
compiler. Continuous assignments also need to use this type
of calculation.
2008-02-05 15:33:51 -08:00
Stephen Williams
1b410f0c7d
Factor code for processing parameters and localparams
...
Replace some redundant code with a single function that handles the
elaboration and type management of parameters identically.
2008-02-05 13:37:33 -08:00
Martin Whitaker
51b1804660
Fix for pr1885847.
...
Currently, if a localparam declaration does not include a type or
range, the RHS expression is cast to an unsigned value. This patch
changes this to make the localparam inherit the type of the RHS
expression, as is done for parameter declarations and is specified
by the Verilog-2001 standard.
2008-02-05 13:06:42 -08:00
Cary R
40064b3181
Catch that we do not currently support unsigned bit based power.
...
This patch adds a check and prints a warning message when the power
operator is used with unsigned bit based values. It also fixes a couple
of typos and adds an asserts if the above power operator happens to
get to the tgt-vvp back end.
2008-02-04 13:35:44 -08:00
Larry Doolittle
0e6d6b7416
Fix typos in vpi/sys_display.c
...
Fallout from me trying to understand the origin of pr1780480
and pr1830834. Too bad I don't understand c++ and vvp as
well as I understand English!
(Spelling and grammer fixes in comments. -ed.)
2008-02-04 13:33:24 -08:00
Larry Doolittle
f4cf7b1799
Cleanup from yesterday's "Add more error checking" patch
...
Removes const char related compiler warnings,
tidies up mainline code by abstracting the human_readable_op() routine
2008-02-04 13:30:30 -08:00
Michael Witten
9c0d2c13c9
[PATCH] Removed #include asm/page.h on GNU/Linux
...
vvp/main.cc was including asm/page.h on GNU/Linux
systems, though that file does not often exist and
is not necessary.
Signed-off-by: Michael Witten <[email protected] >
2008-02-04 13:22:32 -08:00
Stephen Williams
f1f2806e3c
Get delays of signed extended continuous assignments right.
...
Padding and continuous assignment caused problems if the continuous
assignment includes a delay. The problem is that the padding was
not necessarily included in the delay. Rework the elaboration to
make sure the padding is indeed included in the delay.
2008-02-01 20:13:23 -08:00
Cary R
db851c235f
Add more error checking for operators that cannot use real values.
...
This patch adds some checks to verify that shifts, the reduction
operators and the bit wise operators are not used with real values.
It also includes a few other cleanups.
2008-01-31 20:15:04 -08:00
Cary R
1595ae79fd
Add support for real power (**) in normal expressions.
...
This patch adds support for the real power (**) operator in
normal expressions.
2008-01-31 19:54:37 -08:00
Cary R
f049426f25
Add support for real % in a continuous assignment.
...
This patch adds conditional support (2001X) for the real modulus
operator in a continuous assignment.
2008-01-31 16:56:11 -08:00
Cary R
5e8a1bd8cc
Add power operator (**) for real values in a continuous assignment.
...
This patch adds the power operator for real values in a continuous
assignment.
2008-01-31 16:48:52 -08:00
Cary R
fa759c1802
Fix problem with delay at t0 when only some of the bits change.
...
This patch makes sure the delay is calculated correctly when only some
of the bits change and you are comparing against the initial (t0) value.
Basically you have to check the initial value against all the bits in
the new signal not just the first bit since the order that bits change
is not deterministic.
2008-01-31 16:42:51 -08:00
Cary R
4c5481f254
Add delays for shifts, concatenation and replication in a CA.
...
This patch add delays in continuous assignments for the shift operators,
concatenations and replications. It also reports an error if the user
attempts to take the modulus of a real value.
This patch uncovers a couple other problems in the system. I am trying
to fix one of them. I will report the other problem shortly.
2008-01-31 16:39:12 -08:00
Cary R
1609de6ed9
Fix some bit based delays in continuous assignments.
...
This patch fixes some of the delays in bit based continuous
assignments (unary -, unary +constants, string constants,
reduction operators and user functions).
Use draw_lpm_output_delay() in all functions that need it.
2008-01-29 20:27:53 -08:00
Larry Doolittle
d9ac146b8f
Spelling fixes
...
only comments and documentation
some punctuation and capitalization for good measure
Changelogs are purposefully untouched
2008-01-29 20:24:24 -08:00
Larry Doolittle
31afec57b1
Fix for pr1879226, large constant shift values
...
Addresses pr1879226 on a couple of levels. Analysis:
NetNet* PEBinary::elaborate_net_shift_() didn't flag dist==lwidth
as a case where all bits of the input are shifted away, which made
it create a real concatenator for this case. It attempted to create
NetNet*tmp with zero width, which doesn't work; (lsb,msb) ends up
as (0,-1), which is later interpreted as a 2-bit wide net.
Added an assert to the NetNet constructor to catch any other lurking
attempts to create zero-width nets.
Added short-circuit code to handle the case where all bits of the input
are shifted away. This case used to be "handled" by an assert failure.
2008-01-29 09:31:16 -08:00
Stephen Williams
76039cf595
Merge branch 'master' of [email protected] :git/verilog
2008-01-28 21:33:14 -08:00
Stephen Williams
685095b229
Support delay of user function output
...
When used in continuous assignments, user defined functions may have
delayed output. Handle that by generating the proper .delay node when
needed to delay the output of a .ufunc node.
2008-01-28 21:29:03 -08:00
Stephen Williams
abfccb65e9
User defined functions take real arguments
...
Allow user defined functions to take real value arguments and return
real value results in net contexts. Use the data type of the nets
attached to the ports to define the data types of the arguments and
return value.
2008-01-28 18:57:55 -08:00
Larry Doolittle
388bb93beb
Spelling fixes
...
only comments and documentation
2008-01-28 09:15:39 -08:00
Stephen Williams
1eb581ab37
Merge branch 'master' of ssh://[email protected] /home/u/icarus/steve/git/verilog
2008-01-28 09:13:33 -08:00
Stephen Williams
2f9ad47890
Merge branch 'master' of [email protected] :git/verilog
2008-01-27 18:25:11 -08:00
Larry Doolittle
47d65034db
Spelling fixes
...
mostly comments, but includes some identifiers and message text
2008-01-27 18:18:13 -08:00
Stephen Williams
b297a0a9fe
Remove support for vvp32 build
...
Remove configure and Makefile support for the vvp32 build. Remove
also the libdir64 support.
2008-01-25 17:33:32 -08:00
Larry Doolittle
6256dd8040
Add support for ivl debug flags.
2008-01-25 11:16:44 -08:00
Stephen Williams
5ec91ec914
Add datarootdir to makefiles
...
It seems that later versions of autoconf expect datarootdir to be
use and set.
2008-01-24 12:10:31 -08:00
Stephen Williams
76164d7711
Rework compile-time evaluation of LT and GT
...
There was much redundant code in the compile-tile handling of the
less-then and greater-then of constant expressions, and much of it
was buggy. Unify much of the code and squeeze out the bugs so that
compile-time evaluations come out correctly.
2008-01-23 20:43:13 -08:00
Stephen Williams
89bf16b21e
Signed-ness of parameters
...
Propagate the signedness of named parameters when they are evaluated.
2008-01-22 20:16:43 -08:00
Stephen Williams
5b17f2039a
Fix bug in eval of <= compare
...
The compiler attempts to precalculate the results of <= comparisons.
Fix a few corner cases where the arguments are signed. Also fix the
important test of constant against non-constant where we try to test
if the non-constant value can possibly make the test fail.
2008-01-21 22:05:50 -08:00
Stephen Williams
db25bba0d0
Fix assertion fail handling certain conditional delays
...
When conditional delays are in use, it is sometimes possible for there
to be no delays available for a given input event. In that case, skip
the delay processing for that case instead of crashing.
2008-01-21 19:57:17 -08:00
Cary R
10d25d2b88
Support delays for all operators in a continuous assignments.
...
Previously only the logical operators (~, &, |, ^, etc.) supported a
delayed value in a continuous assignment. This patch should extend this
to all operators. An extensive check of real values was done. The same
will be done shortly for bit based nets.
Checks for constructs currently unsupported in continuous assignments
provide a more explicit message (** operator, real user functions,
{!, && and ||} operators with a real argument).
2008-01-21 18:21:31 -08:00
Stephen Williams
3ea72109f8
Read and include sign of scanned decimal.
...
Fix simple bug where negative values read from the source file were
not getting their sign. The fix was proposed in pr1876738.
2008-01-21 18:11:28 -08:00
Stephen Williams
b6b7d704b2
Clean up lexing of net literals.
...
The matching of net literals (i.e. Cx<> and T<> symbols) should not get
in the way of properly matching other symbols.
2008-01-21 17:52:40 -08:00
Stephen Williams
32d3e5ac46
Better formatting of Cr<> label for real valued drivers.
...
Rework the encoding of a real value in the Cr<> label to be similar to
the format used by the %loadi/wr instruction. This mantissa-expoment
format better carries all the bits of the desired real value with
plenty of fidelity and range.
2008-01-19 16:27:09 -08:00
Cary R
ea1f448300
Real multiply in a cont. assign. is always 1 bit wide.
...
The continuous assignment multiply expands vectors to the sum
of the two widths. This is correct for bit based vectors, but
for real variables it should always be one bit wide.
2008-01-17 12:52:30 -08:00
Stephen Williams
d992ec4bd4
Declare $rtoi in system.sft instead of the sys_funcs table.
...
The sys_funcs table should be left to those functions that are handled
internally by the compiler. Really, the internal sys_funcs table is a
legacy from the days before the compiler supported system function
tables in the .sft format.
2008-01-17 12:48:02 -08:00
Cary R
592a303ce5
Add $rtoi to system func. table and add check for NULL name.
...
System functions used in a continuous assignment must be defined
in the system function table since the name of the system functions
is kept in this definition. The default name is NULL which causes
problems. This patch add $rtoi to the system table and adds a check
for a NULL name.
2008-01-17 12:42:05 -08:00
Cary R
52a346ab38
Print real constant value comment with %g
...
The comment that shows the intended value for real constants was
being printed with a %f. This is wrong for large or small values.
This patch changes the %f to a %g to get more consistent results.
2008-01-17 12:31:08 -08:00
Cary R
0fa223434e
Add check target to tgt-verilog/Makefile.in
...
Add the missing check target to Makefile.in.
2008-01-17 12:29:15 -08:00
Stephen Williams
e1bf2ec019
Merge branch 'master' of ssh://[email protected] /home/u/icarus/steve/git/verilog
2008-01-16 16:55:26 -08:00
Cary R
ded0fbe5ef
Fix user functions with right shift argument.
...
A right shift may generate extra bits to preserve the proper shift
characteristic. This patch replaces the assert that was forcing the
input vector to not be greater than the input port width with code
to only select the required lower bits from the vector if it is
larger than the input port.
2008-01-15 21:01:16 -08:00
Cary R
0370f30b20
Support variable delay of a variable selected assignment.
...
This patch adds support for the following statement:
<vector>[<i>] <= #<delay> <value>.
It is a copy with slight modification of code from the next
else/if clause.
2008-01-15 20:33:36 -08:00
Cary R
eac6333d6c
Add missing deletes for patch "Add real compar..."
...
Add two deletes that I missed in the previous patch.
2008-01-15 19:48:49 -08:00
Cary R
1ff31db2cc
Add real comparisons in continuous assignments.
...
This patch adds real comparisons in continuous assignments.
It also converts bit based constants to real values when needed
by the comparisons.
2008-01-15 19:48:26 -08:00
Stephen Williams
59ee700634
Net arrays that are addressed are not dangling
...
The nodangle functor tries to delete NetNet objects that are not used.
But NetNet objects that are addressed by a NetArrayDq should never be
dangling. So make sure the NetArrayDq marks the target NetNet correctly.
2008-01-15 19:39:53 -08:00
Cary R
e46f8220f3
Evaluate non-immediate signal selection.
...
This patch adds code to treat non-immediate signal selection the
same as the default logic evaluation
2008-01-14 19:55:14 -08:00
Cary R
7ff342f4da
Fix type warning in tgt-vvp/eval_expr.c
...
In a previous patch I missed this type inconsistency.
2008-01-14 19:51:38 -08:00
Stephen Williams
190aefcf89
Use inttypes.h to get uint64_t print format string
...
Code generators should not include _pli_types.h to get standard int
types and strings. Use the inttypes.h header file instead.
2008-01-14 09:53:20 -08:00
Stephen Williams
cdfe3a8289
Use inttypes.h to get uint64_t print format string
...
Code generators should not include _pli_types.h to get standard int
types and strings. Use the inttypes.h header file instead.
2008-01-14 09:47:48 -08:00
Cary R
c899a6a52e
Add %load/avp0 opcode and fix %load/vp0.
...
This patch adds a new opcode %load/avp0 that is used to load a
word from an array and add a value to it. %load/vp0 was
changed/fixed to do the summation at the result width not the
vector width. This allows small vectors to index large arrays with
an offset. A few errors in the opcodes.txt file were also fixed.
2008-01-13 19:47:49 -08:00
Cary R
e18b64768e
Add missing check target in some Makefile.in files.
...
This patch adds a check target to the Makefile.in files in the
tgt-null, tgt-stub and vpi directories.
2008-01-11 21:52:51 -08:00
Cary R
7157a68d08
Edge-control does not require conditional event
...
This patch allows the edge control to be used without a
conditional event.
2008-01-11 14:24:52 -08:00
Larry Doolittle
e03fd9e6f2
fix leftover signed/unsigned comparisons
...
triggers warnings in gcc-3.3.5 and gcc-3.4.6 vintage compilers
2008-01-11 14:16:21 -08:00
Stephen Williams
731f1df70b
Hook up input port part select properly.
...
The input part select that is used to match a module port to a short
vector connected to it was wired incorrectly.
2008-01-10 20:47:06 -08:00
Stephen Williams
9d0cdc8ae9
Hook up output port part select properly.
...
The output part select that is used to match a module port to a long
vector connected to it was wired incorrectly.
2008-01-10 18:20:21 -08:00
Stephen Williams
f944d31353
Improved assertion on signal arrays.
...
Use ivl_expr_file() information to improve a signal assert message.
2008-01-09 14:24:30 -08:00
Stephen Williams
6cc8d0e536
Merge branch 'master' of ssh://[email protected] /home/u/icarus/steve/git/verilog
2008-01-09 11:03:40 -08:00
Stephen Williams
3b89c1767c
Merge branch 'pr1864110'
2008-01-08 18:56:12 -08:00
Stephen Williams
1f7957c612
Fix type handling of real-value system functions in nets
...
In nets, if system functions return a real value the function lookup
was getting the correct width, but was also setting the width to 0,
which confused down-stream net handling. Real-value system fuctions
have a width of 1. (1 real-valued scalar.)
2008-01-08 18:54:55 -08:00
Larry Doolittle
eb5e7b792b
Spelling fixes
...
Sorry, I can't help myself. :-p
2008-01-08 17:26:55 -08:00
Stephen Williams
1db3c75ce6
Merge branch 'master' of ssh://[email protected] /home/u/icarus/steve/git/verilog
2008-01-08 17:16:38 -08:00
Cary R
c9e1e1b5cc
Add missing include to sdf_lexor.lex
...
sdf_lexor.lex was missing the <string.h> include file which defines
strdup and strlen.
2008-01-07 19:07:11 -08:00
Cary R
61b6b8358d
Speed up the conversion functions and add file/line info.
...
This patch modifies the conversion functions $rtoi, $itor,
$realtobits and $bitstoreal calltf routines to be more efficient.
This is done by caching the vpiHandle to the argument in the userdata
pointer. This eliminated the need to get the argument iterator, scan
and free the iterator.
It also updates the error messages to use the new file and line
number information that is available for system functions. It also
adds a check that verifies the functions are only called with one
argument and makes the errors fatal.
2008-01-07 18:59:52 -08:00
Cary R
4263f29044
Schedule sfunc invocations to avoid recursion and clean up.
...
This patch schedules the input value change to .sfuns calls to avoid
potential recursion problems. It also cleans up two put_value calls
that did unneeded loops when putting VectorVals and the width was
greaten than 32 bits.
2008-01-07 18:51:27 -08:00
Larry Doolittle
d85683965d
fix buggy SDF error message
2008-01-07 18:48:40 -08:00
Larry Doolittle
f8d410e2d4
remove lint flagged by gcc-4.3
...
watch for possible behavior changes in
elaborate.cc:3409
vvp/vvp_net.cc:600
2008-01-07 18:39:10 -08:00
Cary R
a16f5bc709
Update driver-vpi/* to match iverilog-vpi.sh
...
This patch updates the MinGW C version of iverilog-vpi to match the
shell version. This allows the vpi tests in the test suite to be run.
2008-01-07 18:36:48 -08:00
Cary R
d95c77a58a
Add vvp flag that allows $stop to act like $finish.
...
This patch adds a new flag to vvp "-n" that can be used to make
$stop and hence <Control-C> act like $finish. This may be desired
when using vvp in a non-interactive environment.
2008-01-07 18:23:18 -08:00
Stephen Williams
ca50991eeb
Merge branch 'master' of ssh://[email protected] /home/u/icarus/steve/git/verilog
2008-01-07 16:26:17 -08:00
Stephen Williams
36bbf6ef5a
Handle real-valued unary in general
...
Handle the unary minus with general sub-expressions.
2008-01-06 20:54:33 -08:00
Stephen Williams
9d55597b26
Elaborate net of real-value constant
...
Handle the special case of a unary minus net with the operand
that is a real-valued constant.
2008-01-06 19:59:31 -08:00
Stephen Williams
bafd705478
Allow negative values for realtime net constants.
...
The lexor didn't allow for negative values for realtime net
constants. The minus sign was not accepted as a character in
the identifier string.
2008-01-06 18:57:16 -08:00
Larry Doolittle
8ea3b6b0b8
header includes for gcc-4.3 compatibility
...
minimal changes required to build without error
tested with gcc-4.3 (Debian 4.3-20071130-1) 4.3.0 20071130 (experimental)
2008-01-04 16:14:44 -08:00
Larry Doolittle
e6ea5cd409
More lint removal
...
tgt-vvp/eval_expr.c uninitialized variables
vpi/sys_display.c uninitialized variables
vvp/vpi_priv.cc deprecated string constant usage
vvp/vpi_vthr_vector.cc deprecated string constant usage
the last entry invokes vpip_name_string() and uses const char *
in the same way as the other 9 callers in vvp/*.cc, the only
difference is that the argument is static instead of computed.
2008-01-04 16:12:33 -08:00
Larry Doolittle
6c5773c0e3
Synchronize lxt_write.c and lxt2_write.c with Tony Bybell
...
cvs -z3 -d:pserver:[email protected] :/cvsroot/gtkwave co -P gtkwave3
delete CVS logs embedded in files
had to add #define wave_alloca alloca to lxt2_write.h
differences remain relative to upstream .h files:
whitespace
value chosen for LXT*_WR_SYMPRIME
Regarding the latter, Tony writes "Don't worry about the .h file.
The only difference is a considerably larger initial hash size.
If this isn't a problem with Icarus now, it certainly doesn't
need to be bumped up."
2008-01-04 16:04:18 -08:00
Larry Doolittle
25ad1c174a
Clean up compiler warnings
...
stupid changes to shut up the compiler
tested with gcc-4.2.2
2008-01-04 15:57:09 -08:00
Larry Doolittle
17cc661336
Squelch useless flex-induced warning messages
...
tested in a gcc-4.2.2 flex-2.5.33 environment
2008-01-04 15:54:03 -08:00
Cary R
e01e7b1280
Add arith/mult.r and arith/sum.r
...
This patch adds the missing real multiplication and summation operators
and the code to generate them when needed.
2008-01-04 15:41:01 -08:00
Stephen Williams
4100ff71ef
Data type handling of module ports.
...
Fix data type handling of module ports. When ports are declared
as ports and given data types in different statements, the parser
incorrectly (and silently) dropped the intended data type for the
default LOGIC type.
2008-01-03 20:13:56 -08:00
Larry Doolittle
59b2d23c64
chip away at compile-time warnings
...
1 x format string (real bug)
2 x uninitialized variable (potential bugs),
1 x parentheses around assignment used as truth value (shut up compiler)
2008-01-03 14:44:48 -08:00
Cary R
21730ab228
Fix definition missing in include file and missing UINT64_FMT.
...
This fixes the missing include file definitions and fixes three
cases that needed to us UINT64_FMT.
2008-01-03 14:14:54 -08:00
Cary R
07c6e51a58
Rework ivl_file_table_* interface and fix most vvp/examples.
...
Rework the ivl_file_table_* interface to be more generic and easier
to use. Also all the vvp examples except for memory.vvp have been
fixed to run correctly with the current vvp. Someone with a bit more
experience will need to fix memory.vvp.
2008-01-03 14:13:22 -08:00
Cary R
c866be421e
Add vpiFile and vpiLineNo to .sfunc (system function in cont. assign)
...
This patch add the vpiFile and vpiLineNo properties to system
functions that are called from continuous assignments.
2008-01-01 17:33:08 -08:00
Cary R
77061faa5c
Add vpiFile and vpiLineNo for system functions.
...
Add the vpiFile and vpiLineNo properties to system functions.
Most other objects have stubs that return "N/A"/0. Interactive
functions (called from the debugger) use <interactive> for the
file name.
2008-01-01 17:27:03 -08:00
Cary R
9fd7c008f3
Create/remove default include directory.
...
The default include directory is created at install time and removed
if possible when uninstalling.
2008-01-01 17:16:08 -08:00
Stephen Williams
6476be462e
Pass defines into library files.
...
Use the precompiled defines file support of the ivlpp preprocessor
to pass defines made in the main program to processed library modules.
In other words, a `define in the Verilog source will be visible to
library modules.
2007-12-30 21:26:25 -08:00
Stephen Williams
a3c1fb8c8a
Supoprt precompiled defines
...
Core preprocessor support for writing out and reading precompiled
defines. The preprocessor can read initial precompiled defines from
any number of specified source files, and can write all the defines
into a specified output file.
2007-12-30 18:47:32 -08:00
Cary R
ef1739dbec
Add better error reporting for port declarations.
...
Add an error message for NULL port declarations and for a ';'
that could be left over from building a port declaration from
an old style declaration.
2007-12-29 17:55:53 -08:00
Stephen Williams
fea1febf54
Generate explicit locals in the vvp target.
...
With this change, local symbols are not emitted in the vvp target,
but are marked as local. When thus marked, the vvp run time does not
offfer any VPI access and the signals (net or var) are effectively
invisible.
2007-12-27 18:34:12 -07:00
Stephen Williams
931d08a9fc
Add local_flag syntax to .net and .var statements.
2007-12-27 17:56:32 -07:00
Stephen Williams
58d3d2f265
Better track signals marked local.
2007-12-27 16:47:01 -07:00
Stephen Williams
9235ec665b
Correct bit widths and pad of certain part selects
...
Zero-based part selects are a special case that is handled with
optimized code. Properly handle the part select width to get the
desired padding.
Signed-off-by: Stephen Williams <[email protected] >
2007-12-26 11:22:33 -05:00
Cary R
1e2d8bc55a
Fix real function PLI 1 code.
...
The code to handle real functions using the PLI 1 interface was
missing some functionality. This patch fixes that and fixes a
bug in the veriuser.h include file.
2007-12-23 19:29:33 -05:00
Cary R
77f8d3225c
Fix core dump in recent vpi_get_str code changes.
...
The recent changes to vpi_get_str had a minor problem that was
causing a core dump when trying to get the vpiFullName of an
arrayed signal. Basically vpi_get_str is not reentrant so the
name must be duplicated. It must also be duplicated to work with
the free in the code (do not free a result_buf).
2007-12-23 19:26:37 -05:00
Stephen Williams
8a6626dcaa
Standard implicit include directory
...
Add support for a default, standard, implicit include directory
in the base directory for the ivl installation, where standardized
Verilog header files may be placed.
2007-12-23 19:20:45 -05:00
Stephen Williams
08752453b4
File line information for expressions
...
Add ivl_target support for file and line numbers of expressions.
2007-12-22 17:19:45 -05:00
Stephen Williams
1db19b8703
Make statement file lineno available to targets.
...
Make the Verilog file/lineno of statements available to loadable
code generators. Make sure the information is properly set for
system task calls.
2007-12-22 09:31:24 -05:00
Stephen Williams
7975e14b5c
LineInfo uses perm_string for path.
...
Rework the handling of file names to use a perm_string heap to hold
the file names, instead of the custom file name heap in the lexor.
Also rename the get_line to get_fileline to reflect its real duties.
This latter chage touched a lot of files.
2007-12-20 12:31:01 -05:00
Stephen Williams
dff59f8ad8
Merge branch 'master' of [email protected] :git/verilog
2007-12-18 16:48:11 -08:00
Larry Doolittle
9772068bbc
vpi_get_str improvements
...
Gets rid of a few warning: deprecated conversion from string
constant to 'char*', follows IEEE 1364-2001C 27.10 in more cases,
and fixes at least one real bug (look at the previous use of
strdup/strcat in real_var_get_str() and signal_get_str()).
2007-12-18 15:11:50 -08:00
Stephen Williams
4c8a7b221c
Proper padding of constant bitwise operands
...
When evaluating bitwise binary expressions at compile time, get the
signed/unsigned padding correct. Pay special attention to the case
of $signed/$unsigned changing the signedness of the operand.
2007-12-17 21:00:18 -08:00
Larry Doolittle
752cf21790
Warnings and spelling fixes.
...
Correct a variety of spelling errors, and eliminate
a variety of compile time warnings.
2007-12-17 17:42:09 -08:00
Gyorgy Jeney
e67b6d2b4b
Fix command line handling of warning flags.
...
Prevent an overflow of command line flags if the -Wall argument
is used multiple times, and fix processing of individual flags
that may be in the beginning of the warnings flag buffer.
2007-12-16 21:15:55 -08:00
Stephen Williams
1506a0bf8c
Pad type-punned user functions properly
...
When user defined function calls are withing a $signed, the result
needs to be properly padded. To make this work, handle padding of
a function result exactly type the padding of a signal vector. this
is natural in that the function return value *is* in a signal vector.
This fixes pr1841300.
2007-12-15 22:05:56 -08:00
Martin Whitaker
fa2712a3ee
Fix for pr1851310.
...
This patch fixes a bug in the compiler which prevented array words
from being correctly selected when used in the RHS of a continuous
assignment.
2007-12-15 15:56:54 -08:00
Stephen Williams
f28dfb6178
Better SDF error handling
...
Handle basic errors like incorrect or missing SDF files.
2007-12-15 15:25:25 -08:00
Stephen Williams
97f7a97db7
NoEdge IOPATHS may match multiple specify paths.
...
An IOPATH in the SDF file may match all specify paths no matter
the conditions or edge specifications.
2007-12-14 21:04:20 -08:00
Cary R
ff4cba6a96
Add full argument type checking to $dumpvars.
...
This patch adds argument type checking for $dumpvars module and
variable arguments.
2007-12-14 20:23:50 -08:00
Cary R
f53f042553
Fix scope type calculation error in draw_scope (all dumpers).
...
This patch fixes the calculation of the scope type in draw_scope.
This code is really only used in the VCD dumper so I commented it
out in the other two. The problem was that the lower scope was
used to calculate the scope type. It is also now an error to try
to draw an invalid scope type.
2007-12-14 20:18:13 -08:00
Stephen Williams
a83d6bb02c
Merge branch 'sdf'
2007-12-13 20:57:39 -08:00
Cary R
d3880d02c7
Cleanup dumper code (VCD/LXT/LXT2/none)
...
This patch fixes a number of problems associated with the various dumpers.
1. It catches the problem uncovered in pr1809904 and prevents the core
dumps from happening. It prints a warning message if you try to change
the file after the program has started dumping data to the file.
2. It makes all the dumpers work in the same manner. Before the VCD
$dumpfile was processed at compile time, but the LXT/LXT2 versions
did this at run time. The correct place for this is the run time so
that you can pass the task a calculated name.
3. All the dumpers use common compiletf routines located in vcd_priv.c
4. Make the LXT/LXT2 $dumpfile commands only get the file name and
let $dumpvars actually open the file. This matches the VCD code.
5. Fix the $dumpfile code to allow calculated file names.
6. Make dumpvars without a scope/variable match all toplevel modules
not just the toplevel module the $dumpvars was located in. This
now matches the standard (2001).
7. Simplify the no dumper code (vcdoff.c) and add missing functions.
8. Cleanup the code and messages.
9. vvp can take -none for no dumper.
2007-12-13 20:48:16 -08:00
Cary R
f245dc8d96
Do not run the first time step if the compilation failed.
...
This patch fixes another minor problem introduced by the process
end of simulation events. Specifically if the compilation has
indicated we should not run do not even start the main event loop.
2007-12-13 20:43:57 -08:00
Stephen Williams
a14d836be3
Support annotation of edge paths
...
Parse SDF file annotations of edge sensitive delay paths.
Add vpi support for getting the specified edge sensitivity of
an edge sensitive path, and annotate paths with proper attention
to the edge that is specified for the path.
2007-12-13 20:42:06 -08:00
Stephen Williams
8d9998c44e
Minor optimization of partial load/v
...
When loading a part select from the least significant bits, it is
OK to use the %load/v instruction to strip the high bits off. This
allows the zero-based part select to work in one step, without
loading excess bits.
2007-12-09 17:28:49 -08:00
Stephen Williams
bee4772ac8
Fix optimization of base==0 part select
...
Some patch caused a variable that held the constant base of a part
select to become unassigned. This led to unexplained failures to part
select a signal. Fix by properly detecting the case of a constant base
of 0 for the part select.
2007-12-09 17:00:32 -08:00
Stephen Williams
0fbdcbeb02
Minor cleanup.
...
Minor cleanup of some commented out code, and some minor simplification
of the subarray code.
2007-12-08 21:10:58 -08:00
Cary R
088b4e2fb8
Fix function/task scope searching.
...
When looking for a function or task (scope) do not compare the final path
component with the current module name since it cannot be an up reference.
2007-12-07 17:57:26 -08:00
Stephen Williams
b60dd0b18f
Opcode table order is important.
...
The %ix/get/s instrution disappeared because the code to search the
table expects that the table is sorted. So fix the sort.
2007-12-07 17:28:58 -08:00
Stephen Williams
64936d07e5
Add %ix/getv instruction
...
The %ix/getv instruction loads an integer register directly from
a signal vector. This is an optimization that an index register
is loaded from an expression is only a signal. It avoids the thread
vector space.
2007-12-07 13:12:19 -08:00
Cary R
937397b24c
Do not use the error token to get file/line number information.
...
Using the parser supplied error token to get file and line number
information appears to give incorrect results at best and core dump
at worst. This patch uses the closest real token that makes sense
to alleviate this problem.
2007-12-05 18:50:54 -08:00
Cary R
78b2eb5026
Generate array word names with new array VPI functionality
...
Use the new array VPI functionality (vpiIndex, vpiParent, vpiArray)
to dynamically generate array word names. The old patch to implement
was mostly reverted.
2007-12-05 18:38:28 -08:00
Cary R
1782175c52
Add vpiArray, vpiParent, vpiIndex to VPI
...
Add the array related VPI calls. These will be used to generate
the array word name only as needed to conserve space. This patch
also makes scanmem3 from the vpi test work correctly after a
slight gold file update.
2007-12-05 18:37:58 -08:00
Stephen Williams
73a7fb09fc
Merge branch 'performance'
2007-12-05 17:50:57 -08:00
Stephen Williams
19e8c05788
Optimize X check in vector subarray
...
Optimize check for X bits while doing vector4 subarray. In particular,
do X checks a word at a time so that individual bits need not be tested.
2007-12-04 22:16:31 -08:00
Stephen Williams
3b90a827e5
Fix simple compile warnings.
2007-12-04 22:14:26 -08:00
Stephen Williams
8f519531f3
Optimize load-add with load/add instruction
...
Where and expression is an immediate value added to a signal value,
it is possible to optimize them to a single instruction that combines
the load with an add at the same time.
2007-12-04 19:15:15 -08:00
Stephen Williams
68a9526fec
Minor performance tweak of vector_to_array function.
2007-12-02 19:00:12 -08:00
Martic Whitaker
577da5c0d3
Fix for assertion error when expanding macro.
...
The patch for adding support for macros with arguments contained
a leftover debugging aid. This patch corrects the code. It also
should eliminate some compilation warnings.
2007-12-02 09:09:53 -08:00
Stephen Williams
e5381feb85
Clean up functor counters
...
The functor counters were left over from the v0.8 release. Rework
the counters to be relevent to the current state of vvp.
Signed-off-by: Stephen Williams <[email protected] >
2007-12-02 08:47:06 -08:00
Martin Whitaker
680196953b
Add support for text macros with arguments.
...
This patch modifies the preprocessor to handle text macros with
arguments. It also fixes a bug that prevented a `line directive
being issued after a multi-line text macro had been instantiated.
2007-12-01 19:32:42 -08:00
Larry Doolittle
103138cf4b
Fix compile time warnings
...
These warnings actually look a lot like errors.
2007-12-01 18:04:43 -08:00
Stephen Williams
f602687187
Support second argument of sdf_annotate
...
The second argument of $sdf_annotate is the scope that is to be
annotated. The argument is optional, and the default is to annotate
the current scope, where the $sdf_annotate is invoked.
Signed-off-by: Stephen Williams <[email protected] >
2007-11-30 21:57:38 -08:00
Stephen Williams
25a24e748f
Merge branch 'master' of ssh://[email protected] /home/u/icarus/steve/git/verilog
2007-11-30 21:11:44 -08:00
Stephen Williams
26aee6cbae
Clean up warnings for round() function declaration.
2007-11-30 21:11:27 -08:00
Stephen Williams
47bffa24a7
Include stdlib.h to remove compile warnings.
2007-11-30 10:20:30 -08:00
Cary R
bf49400fb2
Add vpiIterator and vpiMemory to string version of vpiType
...
This patch adds both vpiIterate and vpiMemory to the list of
types that can be displayed as strings.
2007-11-29 22:41:47 -08:00
Cary R
eeb669c1c9
LD should be based on $CC and not hardcoded to gcc
...
Fix the default loader so it will be whatever the default C
compiler is ($CC).
2007-11-29 22:38:33 -08:00
Cary R
6a5ec481c8
Add -D to iverilog-vpi and update documentation.
...
This patch adds a -D option to iverilog-vpi and updates the manual
page to document this option and some others that were missing.
From c7347239335558b26c873ea5e64d278d1feff38a Mon Sep 17 00:00:00 2001
From: Cary R <[email protected] >
Date: Thu, 29 Nov 2007 10:31:25 -0800
Subject: [PATCH] LD should be based on $CC and not hardcoded to gcc
Fix the default loader so it will be whatever the default C
compiler is ($CC).
---
iverilog-vpi.sh | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/iverilog-vpi.sh b/iverilog-vpi.sh
index fbccedb..d2512cc 100644
--- a/iverilog-vpi.sh
+++ b/iverilog-vpi.sh
@@ -25,7 +25,7 @@ CXX=@IVCXX@
CFLAGS="@PIC@ @IVCFLAGS@ -I@INCLUDEDIR@"
# These are used for linking...
-LD=gcc
+LD=$CC
LDFLAGS32="@SHARED@ -L@LIBDIR@"
LDFLAGS64="@SHARED@ -L@LIBDIR64@"
LDFLAGS="$LDFLAGS64"
--
1.5.3.4
2007-11-29 22:36:59 -08:00
Stephen Williams
fde334a5d2
Handle empty INSTANCE name
...
Handle the special case that the SDF CELL instance is empty. In this
case, the SDF file is requesting the current scope instead of an
instance within the scope.
Signed-off-by: Stephen Williams <[email protected] >
2007-11-28 18:17:01 -08:00
Stephen Williams
6416a799c9
Identifers include _ and $ characters.
2007-11-28 18:05:32 -08:00
Stephen Williams
d92e7d904f
Handle hierarchical instances
...
Iterate through hierarchical names created by the SDF
parser, and follow the scopes to the cell.
Signed-off-by: Stephen Williams <[email protected] >
2007-11-27 21:44:25 -08:00
Stephen Williams
26f1d50248
Fix parsing of hierarchical identifiers
...
the lexor didn't allow numbers in the IDENTIFIER name,
and the parser wasn't very nice with IDENTIFIER errors.
Signed-off-by: Stephen Williams <[email protected] >
2007-11-27 21:42:20 -08:00
Stephen Williams
2a269f1bb7
Parse TIMINGCHECK syntax
...
Parse and ignore the TIMINGCHECK rules, and also parse
and ignore INTERCONNECT delays.
2007-11-27 20:53:48 -08:00
Cary R
2851b9bd9a
Add the ability to dump array words
...
This patch adds the ability to dump array words. The words are only
dumped if they appear in a $dumpvars() statement (they are not dumped
by default). The name used for the word is <array_name>[<index>], so
you can get unexpected name conflicts.
There is also a slight increase in the memory requirements since each
array word now keeps its own name information. In the future we would
like to change this, but that is a much larger rewrite of the array
code in vvp.
This patch also needs the "Prefix escaped identifier ..." patch to
work correctly (the array word name is an escaped identifier).
2007-11-26 18:08:04 -08:00
Cary R
fd252d1e27
Fix Makefile to correctly work with new sdf code.
...
Fix the Makefile dependencies so the new sdf code will compile
correctly and remove the appropriate files with make clean.
2007-11-26 18:02:26 -08:00
Stephen Williams
ca10a6867a
Handle comments
...
Ignore C/C++ style comments, and also handle a few error
cases a slight bit more elegently.
Signed-off-by: Stephen Williams <[email protected] >
2007-11-26 17:59:53 -08:00
Stephen Williams
79232f46d8
Proper signedness of comparison operands
...
Comparison operands are signed only of both operands are signed.
If one is unsigned, then they both are unsigned. This does not
affect the signedness of the comparison itself, which is unsigned.
Signed-off-by: Stephen Williams <[email protected] >
2007-11-24 20:32:35 -08:00
Stephen Williams
ea70ae00aa
Merge branch 'sdf'
2007-11-22 19:01:20 -08:00
Stephen Williams
5af8fff980
Command line control of warnings
...
Implement extended vvp command line options to control the amount
of detail that the sdf annotator emits while parsing the source
file.
Signed-off-by: Stephen Williams <[email protected] >
2007-11-22 18:22:46 -08:00
Stephen Williams
4986e550b1
Pass SDF delays into simulation
...
Pass parsed SDF delays into the vvp run time as vpiScaledRealTime
variables, and handling the mapping of 2-values to 12-delays.
Signed-off-by: Stephen Williams <[email protected] >
2007-11-22 17:34:51 -08:00
Cary R
5bd3dd5fb6
Suppress duplicate variable definitions in VCD header.
...
The LXT and LXT2 formats ignore/work with duplicate variables in
$dumpvars() commands, but VCD output includes extra definitions that
may cause some confusion. This patch checks for duplicates and prints
a warning when they are being suppressed.
It also corrects some error messages in the LXT and LXT2 files to not
reference VCD and some other message cleanup.
2007-11-21 19:54:24 -08:00
Cary R
82b1fcbef4
Make min/typ/max default warning message universal.
...
The min/typ/max default warning was not being produced in all
locations a min/typ/max expression could be used. This patch
adds the default warning code to all locations. It also
modifies the manual page to explicitly state that only the
first ten warnings are printed.
2007-11-21 19:33:42 -08:00
Cary R
5d80c4856d
Prefix escaped identifiers in VCD and LXT(2) output with a back slash.
...
GTKWave needs to have escaped identifiers properly escaped (preceded
with a back slash) in its VCD input. Without this the name may not
display correctly. Even though it is not required, to keep things
consistent LXT and LXT2 formats also prefix escaped identifiers with
a back slash.
2007-11-21 19:25:55 -08:00
Stephen Williams
73e60f4b81
Match parsed IOPATH to cell and modpath to be annotated.
2007-11-20 22:20:22 -08:00
Cary R
870aa417ba
Add vpi_get_delays and vpi_put_delays in vvp.def
...
Add vpi_get_delays and vpi_put_delays to vvp.def so they are
available in Cygwin.
2007-11-19 19:53:31 -08:00
Martin Whitaker
fbebcccaed
Fix for pr1833776.
...
This patch fixes a bug which caused a generate loop with a non-zero
initial value to generate the wrong number of block instances.
2007-11-18 22:06:46 -08:00
Martin Whitaker
d240d33558
Fix for pr1833754.
...
This patch adds checks for duplicated scope names during scope elaboration.
2007-11-18 22:00:40 -08:00
Martin Whitaker
dd56dd1635
Correct naming of unnamed generate blocks.
...
This patch causes unnamed generate blocks to be automatically named
using the naming scheme defined in the Verilog-2005 standard. This
is a fix for the problem discussed in pr1821610.
2007-11-18 21:01:35 -08:00
Cary R
b80ce9230a
Some synthesis errors were not incrementing the error count
...
This patch cleans up some of the crashes in the synthesis
code by incrementing the error count as appropriate. This
also removes the three false positives in the test suite
(Sorry-Ran-PASSED). A few other messages will change in
the test suite as well (blocksynth? and basiclatch).
2007-11-18 19:41:02 -08:00
Cary R
35382b5801
At EOS only save the simulation time if it is asked for.
...
This was causing a core dump for a number of the vpi test cases.
The problem was that they did not need the simulation time, so it
was being set to NULL. The problem was the EndOfSimulation callback
was always setting cb_data.time to the current time. A big problem
when the pointer was NULL. The solution is to only set the time
when the pointer is not NULL
2007-11-18 19:37:35 -08:00
Cary R
3765f5f421
Do not MSB extend constants that already have a defined width.
...
During elaboration certain constants were getting extended with
the MSB. This patch makes that happen only if the constant does
not have a length. At this point most should have a length so
effectively every unsigned value is extended with 0.
2007-11-18 19:29:09 -08:00
Cary R
ca49d7efa4
Some indexed array selections need to be evaluated.
...
Array selections that are not constant need to be evaluated for
task/function calls.
2007-11-18 19:12:39 -08:00
Stephen Williams
c5950e3aa6
Add stub $sdf_annotate function.
...
Add the $sdf_annotate function infrastructure, and a stub parser
that can parse miniman SDF files.
Signed-off-by: Stephen Williams <[email protected] >
2007-11-18 17:36:03 -08:00
Cary R
b921a56ad1
A leading underscore is valid for macro substitutions.
...
For text macro substitutions the lexor did not allow leading underscores.
This patch fixes that omission. All other places that text macros may be
used appear to be correct.
2007-11-14 20:21:20 -08:00
Cary R
5a88cb5c01
Remove shift/reduce problems from dimensions patch.
...
This patch needs to be applied after the dimensions checking patch
to remove the shift/reduce errors it created.
2007-11-14 19:42:47 -08:00
Cary R
0d5808dd92
Display an error for currently invalid number of array dimensions.
...
Most types in Icarus support a single array dimension (reals do
not support arrays at all). If you try to use an invalid number
of dimensions the parser will now display an error message.
2007-11-14 19:42:25 -08:00
Stephen Williams
0456a1b339
Use movi to load string values.
...
String values are known to be 2-value bits, so they are natural
candidates for using the movi instruction to load the value in
far fewer instructions. With this patch, up to 16bits (two bytes)
at a time can be loaded per instruction.
Signed-off-by: Stephen Williams <[email protected] >
2007-11-13 21:14:07 -08:00
Cary R
4356f9c478
Process expression strings with octal constants correctly (tgt-vvp)
...
tgt-vvp was taking strings and processing them as is, but the strings
could contain octal constants. These constants needed to be converted
to binary form before they could be turned into a bit pattern.
2007-11-13 20:20:16 -08:00
Cary R
9c8b63110d
CMOS is strength aware
...
CMOS gates like NMOS and PMOS have a strength aware output.
They were missed when the NMOS and PMOS were fixed. "cmos.v"
will now pass in the test suite.
2007-11-13 19:57:02 -08:00
Cary R
4b755deea0
Fix the debugger to finish correctly.
...
A previous patch I submitted to try and keep the $finish time
events missed the case of an infinite loop that did not advance
the micro time step which then prevents the debugger from
generating a finish (you can interrupt an infinite loop, but you
could not finish out of it). This patch adds a check for a
finish after each debugger call to fix this problem.
2007-11-13 19:47:06 -08:00
Stephen Williams
9759c19734
Implement release of linked force nodes
...
When nets are forced by non-constant expressions, the value is linked
to the destination net through a force_link. This patch adds the code
needed to unlink a force/link so that release and new force/links can
work. This fixes pr1735836.
Signed-off-by: Stephen Williams <[email protected] >
2007-11-13 19:35:44 -08:00
Stephen Williams
d7a0f48944
VPI put and get of delays to module path
...
Add support for access to delays via scaled real times.
Signed-off-by: Stephen Williams <[email protected] >
2007-11-10 19:54:21 -08:00
Cary R
17960013e5
Add a mark at simulation end for vcd/lxt/lxt2 files.
...
This patch adds marks at simulation end if needed and enabled (on
and not over the limit) for vcd/lxt/lxt2 files. End of simulation
callbacks also now have the correct simulation time. The default
file names for lxt and lxt2 now match the vcd file except for the
extension. lx2 is also an alias for lxt2 and the default lxt2 file
extension is lx2. This matches what GTKWave expects. Any lxt2
diagnostic output print LXT2 instead of LXT to make it clear which
dumper you are using.
2007-11-10 16:27:45 -08:00
Martin Whitaker
d6f6df829e
Fix for pr1828642.
...
This patch fixes a compiler bug that causes it to reject memory declarations
inside a generate statement.
2007-11-10 16:09:20 -08:00
Cary R
77ed103682
Add vpiTopModule
...
This patch adds functionality for vpiTopModule.
2007-11-10 12:09:00 -08:00
Cary R
83a1ee8cf5
Add vpi_mcd_flush to vvp.def for cygwin
...
In the recent changes to $fflush() I missed adding this for cygwin.
2007-11-10 12:05:26 -08:00
Stephen Williams
bab9c7adba
Proper compile time processing of arithmetic right shift
...
Handle arithmetic right shift during compile time. This comes
up with both the operands are constant expressions. the compiler
is able to evaluate this down to a constant to replace the
expression.
Signed-off-by: Stephen Williams <[email protected] >
2007-11-08 21:52:38 -08:00
Martin Whitaker
05a6e69d2d
Support nested generate schemes.
...
This patch adds support for nested loops and if-else decisions in generate
statements.
2007-11-07 21:27:00 -08:00
Cary R
e26b9e72a2
More array fixes and down indexed part selects can be a lval.
...
Here are some more array fixes. They are mostly better error messages
instead of just asserting and some code cleanup. The one new thing
that probably should have been a separate submission is that down
indexed part select [base -: width] can now be a lvalue.
2007-11-07 20:53:27 -08:00
Cary R
51293b6e91
Fix/enhance array part select code.
...
This patch fixes/enhances the array part select code. It also
verifies that any lval array index in a continuous assignment
is a constant value. Also, %set/av now uses index register 1 as
described in the documentation (as a bit offset).
2007-11-07 20:52:56 -08:00
Cary R
e39b3fea1f
Display a warning for a part select of an array.
...
It is illegal to perform a part select on an array. This patch
adds an error message instead of failing an assert.
2007-11-07 20:28:46 -08:00
Cary R
2ea6692833
Make patch for pr1792108 synth aware.
...
This patch makes the behavior selection fro pr1792108 depend on the
synth* functors.
2007-11-07 20:00:51 -08:00
Cary R
221c99c5f4
Only remove output nets for synthesis backends.
...
During elaboration only remove output nets for synthesis backends.
2007-11-07 20:00:33 -08:00
Cary R
dbce0cb05a
Fix @* to correctly handle non-input nets.
...
@* was only expanding to input nets. nex_input() for blocks was removing
any output net that was also an input. There was also a bug in how output
nets were removed. Only outputs currently defined were removed from the
input list.
always @(*) begin
y = a;
z = y;
end
would report "a" as an input. While
always @(*) begin
z = y;
y = a;
end
would report both "a" and "y" as inputs.
To fix this all nex_inputs now take a flag that when true (the default)
correctly removes any output from the input list. Both the above cases
will now return "a". If the flag is false outputs which are also inputs
will be included in the input list. This is what the @* elaboration code
uses to get the correct sensitivity list.
2007-11-07 20:00:05 -08:00
Cary R
9a96d80a9e
Error message for duplicate declare of arrays.
...
Replace an assertion with an error message for duplicate
declartion of arrays.
2007-11-07 19:48:47 -08:00
Stephen Williams
5352a0cc40
introduce vpi access to modpath objects
...
Add/rework VPI access to modpaths. This allows VPI code access to
paths described in specify blocks. In the process, the VPI structure
has been reworked to conform to the IEEE1364 standard.
Signed-off-by: Stephen Williams <[email protected] >
2007-11-06 21:01:13 -08:00
Stephen Williams
859d8b3502
Rework vpi_get_delay of modpaths
...
Cleanup klunky implementation of vpi_get/put_delays for modpath
objects. Remove some useless members.
Signed-off-by: Stephen Williams <[email protected] >
2007-11-06 20:26:03 -08:00
Cary R
7e59186f1e
Fixes for wide division/modulus.
...
Wide division/modulus (more bits than unsigned long) gave incorrect
results when both the divisor and dividend where the same. They also
did not produce an error message when dividing by zero.
2007-11-05 20:24:33 -08:00
Cary R
d5d6aca972
Enhance $fflush() to support a mcd/fd argument.
...
This patch enhances the current fflush implementation to flush a mcd or an
individual fd. Before it always flushed everything. A compiletf routine was
also added.
2007-11-05 20:07:55 -08:00
Stephen Williams
2fac019d9d
modpath nodes need vpi expression handles
...
Generate the code that attaches the VPI handle of the source and
destination to the modpath object.
2007-11-05 19:59:27 -08:00
Stephen Williams
5bcbd09ed9
Make the modpath source define the VPI modpath object.
...
The modpath source node defines the modpath object, and carries the
nodes for the source expression. The modpath outputs are references
by pointers to the vpiModPath that is not in itself a vpi object
any more. This makes the VPI view of a module path look like the
source-destinaiton pair that is the IEEE1364 description of the
modpath.
2007-11-05 19:58:20 -08:00
Stephen Williams
80fad3df32
Clean up excess debug print from modpath patch
...
Clean up excess debug print from modpath patch.
Signed-off-by: Stephen Williams <[email protected] >
2007-11-02 20:52:06 -07:00
Cary R
63ca4e6d41
Implement $ftell, $fseek and $rewind system functions.
...
This patch implements the $ftell, $fseek and $rewind system function.
2007-11-02 20:32:46 -07:00
Cary R
965374acf9
Implement $feof() from 1364-2005.
...
This patch implements the $feof() function from 1364-2005. It also
comments out a debugging line in the scanf code.
2007-11-02 20:27:48 -07:00
Stephen Williams
68cf5baba5
Out path term for modpaths
...
Add vvp support for modpath path term outputs. This also introduces
the concept of path terms and moves towards the path term in general
for getting at the endpoits of a modpath.
2007-11-02 19:59:08 -07:00
Stephen Williams
5c69e243ac
Put modpaths in correct scope.
...
Modpaths need to be in the proper scope in order to be available to
vpi functions. The code generator manages that by writing the modpath
records with scope switch functions. Batch the modpath records at the
end of the structural stuff so that the scope switching doesn't cause
trouble.
Also seperate the modpath code into its own source file.
Signed-off-by: Stephen Williams <[email protected] >
2007-10-31 21:45:34 -07:00
Stephen Williams
0d9ed65e8c
Give delay paths scope.
...
Delay paths need a scope. This helps the code generators bind the
modpaths to the correct scope. This patch doesn't actually make use
of the information, it just makes it available to code generators.
Signed-off-by: Stephen Williams <[email protected] >
2007-10-31 21:39:29 -07:00
Stephen Williams
148e6768f6
Clean up modpath vpi interface
...
Clean up rather poorly written modpath vpi support, fixing the
parse of the modpath syntax element to not use pointless globals.
Collect the modpath code into the delay.cc file instead of the
inapropriate vpi_signal.cc source file.
Signed-off-by: Stephen Williams <[email protected] >
2007-10-30 20:14:40 -07:00
Cary R
54aae2c1c2
Fix number to real mask generation
...
The << operator may not be defined when the RHS is greater than or
equal to the LHS width. To work around the problem the mask is
incrementally generated.
2007-10-19 17:10:34 -07:00
Cary R
3543c0605c
Disable lxt support if libbzip2 is not found.
...
Configure was checking for libbzip2, but it was not doing anything with
the result. This patch disables lxt support if libbzip2 is not found.
2007-10-18 21:17:50 -07:00
Stephen Williams
230d0f24de
Reformulate number-to-real on vvp code generator
...
There have been reports in the field of number-to-real conversions
doing bad things with the calculated mantissa. This patch eliminates
a opssible portability problem by reworking the negating of negative
mantissa values.
Signed-off-by: Stephen Williams <[email protected] >
2007-10-18 21:09:12 -07:00
Cary R
676695c78f
Check for extra digits in sized binary, octal and hex constants.
...
Print out a warning if extra digits are given for sized binary, octal
or hex constants. Decimal constants are very hard since we never
calculate the true number of bits the digits represent, so for now
decimal constants are not checked.
2007-10-18 10:12:20 -07:00
Cary R
58e4c562cb
Add $dumplimit task.
...
The attached patch add an implementation for $dumplimit(). It does
not do a hard limit to the file size, but for VCD files it completes
the current time step and puts a comment in the file. For lxt and
lxt2 files the functionality is in place, but because of buffering
the file can be slightly larger than expected.
2007-10-16 14:11:51 -07:00
Stephen Williams
6e6392f2d7
Merge branch 'master' of [email protected] :git/verilog
2007-10-15 20:24:08 -07:00
Stephen Williams
27b704b054
Regularize padding of signed constants
...
Factor common code for processing signed constants to be padded.
In the process, fix some minor bugs in the padding decisions.
Signed-off-by: Stephen Williams <[email protected] >
2007-10-15 20:17:06 -07:00
Stephen Williams
e1dbe7eede
Merge branch 'master' of ssh://[email protected] /home/u/icarus/steve/git/verilog
2007-10-11 14:50:00 -07:00
Cary R
5410f0f998
Implement $fopenr(), $fopenw() and $fopena().
...
Implements $fopenr(), $fopenw() and $fopena() from Chris Spear's File I/O
for Verilog.
2007-10-11 14:39:33 -07:00
Cary R
7bba276a79
Propagate sign for constant numbers inside $signed()/$unsigned().
...
The sign information from $signed() or $unsigned() was not being
propagated correctly for constant numbers.
2007-10-10 20:27:30 -07:00
Stephen Williams
e97bdf8b21
Support for wide modulus operations.
...
Compile time support for wide modulus.
Signed-off-by: Stephen Williams <[email protected] >
2007-10-09 21:40:08 -07:00
Stephen Williams
a0b1272a62
Fix signed/unsigned warnings
...
Fixed some signed/unsigned warnings, including one that caused an
actual runtime error if not dealt with safely.
Signed-off-by: Stephen Williams <[email protected] >
2007-10-09 21:19:38 -07:00
Stephen Williams
1086c480af
Merge branch 'master' of [email protected] :git/verilog
2007-10-09 21:06:19 -07:00
Stephen Williams
ae16eacec9
Argument to $unsigned is self-determined.
...
The argument to $unsigned is self-determined no matter what the
context the $unsigned itself is in. This is important only where
the result can be negative but the result width is context-determined.
Do ocntext fitting manually to prevent the context fitting it and
affecting the expression argument.
Signed-off-by: Stephen Williams <[email protected] >
2007-10-09 20:46:17 -07:00
Stephen Williams
c08e547d1d
Merge branch 'master' of ssh://[email protected] /home/u/icarus/steve/git/verilog
2007-10-09 10:12:55 -07:00
Cary R
38a88014cb
[PATCH] Implement System Verilog $urandom and $urandom_range functions.
...
This patch implements the System Verilog $urandom() and $urandom_range()
functions. There are no check to verify that $urandom_range is only given
unsigned arguments. If you give it a negative value the bit pattern will
be interpreted as a unsigned number.
2007-10-09 10:08:57 -07:00
Stephen Williams
c7edace243
Unsized integers have minimum size
...
Fix the handling of expressions that have unsized integers and are
in self determined context. Unsized integers are generally assumed
to have at least 32bits.
Signed-off-by: Stephen Williams <[email protected] >
2007-10-08 19:58:49 -07:00
Stephen Williams
08028177fe
Correct elaboration of network constants.
...
Constant propagation incorrectly elided an entire constant net node
if only the LSB of the driven vector was HiZ. This caused the entire
vector to look like HiZ. Also, the code generator for writing the
constant values missed bits.
Signed-off-by: Stephen Williams <[email protected] >
2007-10-05 20:31:51 -07:00
Stephen Williams
9ed8614131
Merge branch 'master' of [email protected] :git/verilog
2007-10-03 22:30:37 -07:00
Stephen Williams
acdbe274f9
Fix signed ocmpare of negative numbers.
...
signed compare in proceedural code was comparing the absolute
value if both operands were negative. Wrong!
Signed-off-by: Stephen Williams <[email protected] >
2007-10-03 22:26:42 -07:00
Stephen Williams
5d750b7779
Optomize runtime using immediate compare
...
Implement compare-immediate instructions and generate code to use
these new instructions to improve runtime performance.
Signed-off-by: Stephen Williams <[email protected] >
2007-10-03 20:58:40 -07:00
Cary R
d5fe5689e1
Command files can nest, -f is an alias for -c and better error messages.
...
This patch adds the ability to call command files from other command
files. There is currently a limit of 16 total levels deep (15 stored
plus the current file). -f is now an alias for -c for both the command
line and command files. The parser also reports errors when they occur
along with the file name and line number to aid in debugging problems.
2007-10-02 19:40:45 -07:00
Stephen Williams
d587499276
test_width method for functions in expressions
...
In expressions, user defined functions have a clearly defined
width and the test_width expression needs to express that. Note
that the $signed/$unsigned functions are special and magical.
Signed-off-by: Stephen Williams <[email protected] >
2007-10-01 20:38:20 -07:00
Stephen Williams
bbf3116945
Merge branch 'master' of [email protected] :git/verilog
2007-09-28 18:22:44 -07:00
Stephen Williams
5bb936a226
Fix addressing of variable words.
...
Variable word addresses are not to be adjusted by the bit select
of the vector direction. That is a holdover from when arrays were
stored as bit vectors.
Signed-off-by: Stephen Williams <[email protected] >
2007-09-28 18:22:17 -07:00
Cary R
3258b7726b
Pass local scope precision from compiler to vvp/etc.
...
This patch adds ivl_scope_time_precision() to the compiler which can
be used to extract the local scope precision. tgt-stub and tgt-vvp
have been modified to use this new function and output a value that
is appropriate. The vvp runtime has been altered to use this new
data which is accessed with the vpip_time_precision_from_handle()
function. vpiTimePrecision uses this function to return the correct
precision.
2007-09-28 15:08:02 -07:00
Cary R
d186f2da04
Ambiguous resolution needs to preserve the MSB for StL/etc. signals.
...
The MSB was not being preserved for L strength signals. This caused
undefined signals (x) to become defined (0).
2007-09-24 17:20:01 -07:00
Stephen Williams
14c0cfd3b1
bufif and nmos/pmos are strength aware
...
The outputs to bufif and nmos/pmos devices are always strength-aware,
so should have their outputs connected to a net8 device.
Signed-off-by: Stephen Williams <[email protected] >
2007-09-22 21:53:55 -07:00
Larry Doolittle
a0cbd235d6
Fix gcc warnings
...
Fix gcc warnings in ivl_dlfcn.h.
2007-09-20 17:24:14 -07:00
Larry Doolittle
bcc034f634
Compile time warnings
...
Fix compile time warnings detected by gccc 4.2.
2007-09-20 17:20:48 -07:00
Cary R
954579f250
Add min_typ_max to expressions.
...
This patch adds min_typ_max to expressions. Remember when using a
min_typ_max triplet in an expression they must be enclosed with
parenthesis (1364-2001 section 4.3 page 58).
2007-09-17 10:53:05 -07:00
Cary R
2e12dee658
Decimal constants can be undefined or high-z.
...
Add the ability for decimal constants to undefined or high-z.
2007-09-17 10:28:52 -07:00
Stephen Williams
3cbe4f076e
Merge branch 'master' of ssh://[email protected] /home/u/icarus/steve/git/verilog
2007-09-10 15:30:51 -07:00
yang yun ju
9d39b3a514
Access to modpaths via VPI
...
Add support for accessing the modpath nodes via PLI,
and add support for the vpi_set_delays and vpi_put_delays
functions to set the delays on those paths.
- GSoC 2007
2007-09-10 15:30:00 -07:00
Stephen Williams
9c99b002ba
Resize vectors to mismatched ports
...
It is legal in Verilog to bind expressions to ports that do not
match the port width. Icarus Verilog needs to create the necessary
part selects to get the connections right.
Signed-off-by: Stephen Williams <[email protected] >
2007-09-09 21:14:52 -07:00
Cary R
8fe3cc5318
Add missing primitives and fix time units error in tgt-stub.
...
Add code to handle all the primitives currently defined and
fixed a power of ten error in the time units display (it is
either 10^{units} or 1e{units}, but not 10e{units}).
2007-09-06 18:53:05 -07:00
Cary R
d43cda3def
Add port checks for primitives.
...
This patch adds functionality to verify that primitives are given
an appropriate number of ports. For multiple output gates (but,
not, pulldown, pullup) it also reports that Icarus currently does
not support multiple outputs when more than one is given.
2007-09-06 18:50:02 -07:00
Cary R
7c852aa075
Add cmos/rcmos primitives.
...
This patch adds the cmos and rcmos primitives.
2007-09-06 18:46:22 -07:00
Stephen Williams
203cb0f730
Merge branch 'master' of [email protected] :git/verilog
2007-09-04 16:42:45 -07:00
Cary R
b55e3c11dc
mingw needs fseeko/ftello redefinitions in lxt_write.h
...
These redefinitions were in lxt2_write.h, but missing in lxt_write.h.
This patch adds them to lxt_write.h.
2007-09-04 16:32:52 -07:00
Stephen Williams
7290489e1a
Merge branch 'master' of ssh://[email protected] /home/u/icarus/steve/git/verilog
2007-09-04 16:24:19 -07:00
Cary R
7bf4b64c0a
Check that logic gates are not given null ports.
...
Logic gates do not handle null ports so check for this and
issue an error message when it happens.
2007-09-04 16:13:46 -07:00
Stephen Williams
083b9b6ee6
Handle repeat concatenation in continuous assign
...
When a repeat concatenation expression is translated to a netlist,
get the repeat expression right. This comes up when an elab_and_eval
elaboration contains a repeat concationation, and the expression is
ultimately turned into a netlist by expr_synth.
Signed-off-by: Stephen Williams <[email protected] >
2007-09-01 17:36:57 -07:00
Martin Whitaker
963b26283a
Generate scopes are more like begin-end scopes
...
Apparently making generate scopes look like module instances
confuses some 3rd party tools that see this information in the
VCD dump.
2007-09-01 15:06:53 -07:00
Martin Whitaker
59af5d08b7
More portable encoding of vectors
...
Slight modification to the description of a vector vareable in the
declarations section for the convenience of 3rd party VCD viewers.
2007-09-01 15:00:53 -07:00
Stephen Williams
4af28c7526
Signed divide of 32bit values
...
Signed divide of 32bit values can overflow if done in a 32bit long
due to the truncation of sign bits. So use the large value algorithm
if the values are >= 31 bits (63 bits on 64bit machines).
Signed-off-by: Stephen Williams <[email protected] >
2007-09-01 14:38:57 -07:00
Cary R
4f6b47b345
Check that functions do not call invalid statements.
...
This patch adds checks to verify that functions do not invoke
statements that are invalid for them (#, @, wait, enable/call
tasks and non blocking assignment). For reference see section
10.3.4 of 1364-2001.
2007-08-30 20:41:45 -07:00
Cary R
3f6ea1d587
Make C style comments work in false/suppressed ifdef/etc. blocks.
...
C style comments were not recognized as comments in false or
suppressed sections of ifdef/etc. blocks. This prohibited an
unneeded endif/else/etc. from being commented out with this
style of comment.
2007-08-30 19:01:10 -07:00
Cary R
347ba8bc29
Comment out routines that pr1779647 made obsolete.
...
I decided not to delete these since we may at some point in time want
this functionality back. For now they are commented out with an
explanation so we know what is going on.
2007-08-30 19:00:07 -07:00
Cary R
c7538386fc
Start of simulation event needed to be run after initialization events.
...
This patch splits the end of compile and the start of simulation call
backs code into two different procedures. The end of compile events are
still executed at the same time they alway were. The start of simulation
events are now run after initialization.
2007-08-29 20:20:03 -07:00
Cary R
fa1c0ae2a2
$finish() now stops at the end of the time step not immediately.
...
The event loop used to check for $finish at every iteration. This patch
alters this behavior to only check just before you advance to the next
time step. This allows events for the current time step to complete.
2007-08-29 20:07:55 -07:00
Cary R
81a45cdc5f
Make vpi_put_value to a real accept an integer value and add diagnostic code.
...
Modified the code that deals with real variables to accept an integer
value when using vpi_put_value(). Also added some type of diagnostic
message for all switch defaults that have an assert(0) to indicate an
error condition, removed CVS comments and removed a small section of
unreachable code.
2007-08-29 20:02:12 -07:00
Cary R
23ce6c39ab
Make vpi_put_value to a real accept an integer value and add diagnostic code.
...
Modified the code that deals with real variables to accept an integer
value when using vpi_put_value(). Also added some type of diagnostic
message for all switch defaults that have an assert(0) to indicate an
error condition, removed CVS comments and removed a small section of
unreachable code.
2007-08-29 19:50:07 -07:00
Cary R
3fda7e323a
Relax the requirement on list of port declarations for implicit ports.
...
Previously list of port declarations were considered a complete
definition of the port. This caused problems for some, so this patch
allows implicitly defined ports (no wire/reg/etc.) to have net
declarations in the body.
2007-08-29 18:38:36 -07:00
Cary R
35df445db1
Initialize all range variables in the constructor to avoid false asserts.
...
This would have never been a problem with the actual circuit generated.
The problem was that the assert was checking values that had never been
set. The constructor now explicitly sets these values to zero and while
I was at it I added a couple more asserts.
2007-08-29 18:12:29 -07:00
Cary R
b69c4c9a2c
Fix range handling/checking and add a flag to allow deprecated port syntax.
...
This patch is rather large and fixes a couple of problems. The major
change is that instead of keeping all the range specifications in
a list that is later processed the information is now kept as
individual entries for the port and net definitions. This allows
easier checking for multiple definitions (pr1660028), more
detailed error messages and the ability to pass the now deprecated
style of a scalar I/O definition used with a vectored net definition.
These changes did require extra code to prevent a single definition
from setting the range values in more than on place.
When using the new ANSI-C style of port declarations (1364-2001 12.3.4
list_of_port_declarations) the compiler ensures that you do not
redeclare the port in the body (it is already completely defined).
This caught a few errors in the test suite (pr859 and sqrt32*).
The flag to disable the normal port checking and allow the deprecated
port syntax is -gno-io-range-error. This will print a warning for the
case of a scalar port with a vectored definition in the body. All
other cases are still considered an error.
2007-08-29 18:10:18 -07:00
Cary R
d08817aec1
[PATCH] Search for include files relative to the current files path first.
...
This patch add the current files path to the start of the list used
when search for include files.
2007-08-29 17:45:55 -07:00
Cary R
ca924639a8
[PATCH] Better error message when an endmodule is missing (nested modules).
...
This patch adds better checking for a missing endmodule or an attempt
to nest modules. A more descriptive message is printed and the location
of the original module definition is printed.
2007-08-28 17:49:34 -07:00
Stephen Williams
76b7346ee0
forgot to check it initialization calls
...
Signed-off-by: Stephen Williams <[email protected] >
2007-08-28 17:32:04 -07:00
Stephen Williams
bef55d4426
Nets initialize with z value.
...
At time zero, nets (not variables) need to be initialized with z
instead of x.
Signed-off-by: Stephen Williams <[email protected] >
2007-08-28 16:56:01 -07:00
Stephen Williams
11ec505697
Logic gates can take part select inputs
...
It is possible for the compiler to generate logic gates that have
inputs from part select nodes. This implements the part select
input methods.
Signed-off-by: Stephen Williams <[email protected] >
2007-08-28 16:52:44 -07:00
Cary R
86e6817505
Fix missing warning when port is unsized.
...
This patch fixes an incorrect optimization that was skipping a
call to set the port width when there was no width (a scalar).
The problem with this is that since a (0,0) pair was not added
to the list, later when the width was define to (1,0) the checking
code did not have the (0,0) to tell that there was a mismatch in
the port size. Section 12.3.3 States that the two sizes shall be
identical, so yes this is an error even though it is very minor.
2007-08-17 11:48:47 -07:00
Cary R
15058a31b9
vpiFullName for real variables will now return the correct value.
...
This patch makes vpiFullName for real variables return the correct
value. A Scope reference was added to the base structure along with
the relevant code to support generating the full name. A couple of
memory leaks were plugged and some formatting fixed as well.
2007-08-17 11:40:01 -07:00
Cary R
6653202e91
Enhance vpi_handle_by_name to accept either a scope or a module.
...
It appears that other simulators allow the second argument to
vpi_handle_by_name to be either a scope or a module. Allowing
a module in addition to a scope significantly increases the
usability of this function.
2007-08-16 14:36:06 -07:00
Cary R
951f9f2bbf
Add vpiType to the vpi_get_str() function.
...
vpi_get_str() can now return a reasonable value for most of the
types used in vvp. I'm not certain I got all of them, but they
are easy to add if any are missing. I also fixed a couple of
typos that I found while looking for all the different types.
2007-08-16 10:48:28 -07:00
Stephen Williams
30273a1172
Real value constants have width 1
...
Real value constants have width 1 in Icarus Verilog. This is not
the same as the output from $bitstoreal, which is *not* a real
valued expression but a logic vector that losslessly carries the
real value.
Also remove unused CVS markings.
Signed-off-by: Stephen Williams <[email protected] >
2007-08-15 22:01:59 -07:00
Cary R
c71b9797ca
Make %t with real values use specified width if given.
...
The %t format did not use the width specified when displaying
real values. It should now work the same as the integer version.
2007-08-15 13:39:28 -07:00
Cary R
dd6a441312
[PATCH] Fixed the display of real values with the %t format.
...
Add a calculation to compute the required width for real values
when displayed with the %t formet.
2007-08-15 13:31:29 -07:00
Cary R
06c15862e8
Add the vpiFullName property to binary and string parameters.
...
This patch adds the missing vpiFullName property to binary and
string parameters (FYI real parameters are not currently supported
by the VPI interface).
2007-08-15 10:06:41 -07:00
Cary R
35e19ccbd3
Add a cast to remove a warning.
...
This patch adds a cast to get around the warning produced when the tf
size call back (int *) is placed into the vpi structure (PLI_INT32 *).
2007-08-15 10:04:50 -07:00
Cary R
239523b3c7
Implement the swrite* and sformat system tasks plus a few other fixes.
...
This patch implements the swrite* and sformat system tasks. It also
makes $simtime distinguishable from the other integer time tasks.
This was needed to get the correct time units when $simtime was given
as an argument to $swrite*. The string constant code was also modified
to allow a string to be returned as a vector (0/1 bit pattern).
Here are some more specifics about the swrite* changes.
1. They do not share formatting code with the other display functions,
so they may/will produce different results.
2. All %{alpha} codes allow a width and justification. Others have been
enhanced (%t allows the default width and precision to be overridden,
time functions print with time formatting, better error checking and
messages, etc.).
3. %u and %z formatting codes have been added. It is important to note
that these two formats can produce embedded NULLs, since these
functions are returning a string anything after the first NULL will
not be reachable! memcpy is used instead of regular string processing
where needed so that the original string will contain the total
result. The size returned when the string is created is the true
length. A warning will be printed if a string with embedded NULLs is
produced (strlen() does not match the true length).
4. Real numbers are printed with %g instead of %f.
Once this new formatting code has been evaluated we should incorporate
the changes/fixes into the formatting code for the other functions or
the other functions could be modified to use this new code. The true
string length is available so we should be able to work around the
embedded NULL problem.
2007-08-13 20:07:12 -07:00
Stephen Williams
268e2df011
Merge branch 'master' of [email protected] :git/verilog
2007-08-13 19:58:56 -07:00
Cary R
632685d830
Check that $timeformat is not given more than four arguments.
...
Add a check that $timeformat is not given more than four arguments.
2007-08-13 19:52:38 -07:00
Stephen Williams
9b807c78d3
Prepare for 20070812 snapshot
2007-08-12 20:27:38 -07:00
Stephen Williams
1942899a3f
Fix return of net strength value.
...
The calculated return value for the calculated strength value of
a net was left dangling. This patch fixes that. See pr1770199 in
the regression test suite.
Signed-off-by: Stephen Williams <[email protected] >
2007-08-10 21:51:13 -07:00
Stephen Williams
5e385e901d
Fix missing endif
2007-08-10 10:14:00 -07:00
Stephen Williams
3b94c122b7
Constant concat operands are self determined
...
distinguish between self-determined and value-preserving when
evaluating constants that are arguments to concatenations.
Signed-off-by: Stephen Williams <[email protected] >
2007-08-09 22:08:54 -07:00
Stephen Williams
f46be09914
Initialize assignments of reals
...
Support initialization assignments of real value variables. In the
process, clean up the processing of real variable declarations in
the parser.
Signed-off-by: Stephen Williams <[email protected] >
2007-08-04 21:50:06 -07:00
Cary R
1aa4394d75
Check the random function seed type and a fix to handle time variables.
...
The standard states that the seed for the random functions should be
an integer/time variable or a register. This patch fixes the compiletf
routines to check for this. There is also a small patch to
vvp/vpi_signal.cc that removes an assert that was failing and replaces
it with appropriate code. The assert was verifying that the source was
not bigger than an integer. The problem with this is that a time
variable or register may be bigger than an integer. I altered the code
to remove the assert and copy only the lower (8 * sizeof integer) bits.
The potential overflow/loss of precision is not checked. This passes
the regression tests.
2007-07-25 21:36:06 -07:00
Stephen Williams
8dc23dad59
Delay compiletf until bindings are complete
...
Delat the compiletf calls until after all the label references
are resolved and link bindings are complete. Otherwise, there may
be dangling references.
Signed-off-by: Stephen Williams <[email protected] >
2007-07-24 18:24:24 -07:00
Cary R
b23eb1b917
[PATCH] Add compiletf routine for deposit system task and fix string constants.
...
This patch adds a compiletf routine to the $deposit system task and
simplifies the calltf routine. It also patches the constant string code
to return an appropriate integer value when needed. A number of compiletf
routines that check for this can now be simplified since this (string
constants) no longer causes an assert in an integer environment.
2007-07-23 21:23:55 -07:00
Stephen Williams
824f29a7d2
Better errors for invalid scope path
...
Better handle cases where the scope part of a heirarchical name does
not match any existing scope, or where scope index expressions are
not correct.
Signed-off-by: Stephen Williams <[email protected] >
2007-07-22 21:55:35 -07:00
Stephen Williams
a6bd1ff3ce
Vector parts into reduction nets
...
In rare cases, the reduction logic nodes may get vector part inputs.
This patch adds support for vector parts entering a reduction node.
Signed-off-by: Stephen Williams <[email protected] >
2007-07-22 21:52:28 -07:00
Stephen Williams
fa05344738
Parameter names in generate blocks from containing scopes.
...
Parameter names used in generate blocks can look in containing
scopes (but not past the containing module) for their definitions.
2007-07-21 17:47:37 -07:00
Martin Whitaker
42fe46a7db
Elaborate memory references with non-zero bases.
...
This fixes r-value type references to memory words for memories
that have a non-zero base address. Elaborate the expression
needed to get the canonical word index.
2007-07-21 17:19:24 -07:00
Stephen Williams
3d51810f01
Merge branch 'master' of [email protected] :git/verilog
2007-07-20 19:35:22 -07:00
Stephen Williams
dd5e34dc90
Invalid assertion on udp port count
...
The port input count assertion was triggering incorrectly. It was
comparing the count with the bytes instead of bits in a word.
Signed-off-by: Stephen Williams <[email protected] >
2007-07-20 19:31:27 -07:00
Cary R
a359ec45f7
Pass the finish and stop system task argument correctly.
...
The argument passed to $finish and $stop is not currently used, but it
is now passed down to the functions that may someday do something
useful with it (schedule_finish() and schedule_stop() in vvp/schedule.cc).
2007-07-20 14:01:35 -07:00
Cary R
a024eaead2
Add missing probabilistic functions and compiletf routines.
...
Add the missing probabilistic functions and add compiletf routines
for all the functions. The original calltf routines have been
modified as appropriate. The base functions are straight copies
from the standard. I have visually verified the curves with 5,000
points and they look correct.
2007-07-20 13:54:49 -07:00
Cary R
1aa6fc3f7a
[PATCH] Update vpiFinish arguments to be in correct range.
...
Even though vpiFinish does not currently do anything with it's
argument I thought it would be best to have them all be in the
correct range [0, 1, 2], so they have been updated as appropriate.
2007-07-19 17:35:40 -07:00
Cary R
e546a9d5c8
Update the files to use vpi_control vs vpi_sim_control.
...
vpi_sim_control is no longer part of the standard, so update the code to
use the standard function (vpi_control).
2007-07-19 17:29:05 -07:00
Stephen Williams
58cb5a668b
Real value constants in vector declaration
...
Handle real valued expressions in vector declarations. Also clean
up the handling of vector declaration expressions.
Signed-off-by: Stephen Williams <[email protected] >
2007-07-17 18:07:34 -07:00
Stephen Williams
6b0c62c9c4
Minor improvements to $bits implementation
...
Signed-off-by: Stephen Williams <[email protected] >
2007-07-17 18:05:48 -07:00
Stephen Williams
7aa323bcbf
Handle nil parameter overrides
...
Nil parameter overrides can turn up in positional paramter override
lists, where items are intentionally skipped.
Signed-off-by: Stephen Williams <[email protected] >
2007-07-14 17:11:14 -07:00
Stephen Williams
b327b86e4a
Propagate real values properly
...
Be careful to include bitwise differences in double values, because
it is the bit pattern we are passing aroung, not the arithmetic value.
Signed-off-by: Stephen Williams <[email protected] >
2007-07-13 18:42:35 -07:00
Cary R
acddb99305
Document the predefined __ICARUS__ macro
2007-07-12 19:05:09 -07:00
Stephen Williams
32ecd260f0
Merge branch 'master' of [email protected] :git/verilog
2007-07-11 21:43:33 -07:00
Stephen Williams
7132b8ff6b
Start runtime trace aids
...
The runtime is a vvp runtime engine debug aid that allows for
detailed dump into a debug log. The trace is enabled by setting
the VVP_DEBUG variable and activating specific debug messages
in the vvp source.
Signed-off-by: Stephen Williams <[email protected] >
2007-07-11 21:38:56 -07:00
Stephen Williams
b54ef4f585
Variable drivers propogate initial values.
...
Make varable drivers (reg vectors and real) propagate their initial
values using a special init scheduler queue. This causes the net to
be loaded with reasonable initial values.
Signed-off-by: Stephen Williams <[email protected] >
2007-07-11 21:31:09 -07:00
Larry Doolittle
371c5d932d
Correct wrong or misleading comments.
2007-07-06 12:46:32 -07:00
Stephen Williams
a72977a7ed
Bit select of array word
...
fix support for bit select of array word in behavioral expressions.
2007-07-03 20:17:43 -07:00
Stephen Williams
e75e7131ac
Fix signed compare with minus values
...
If the operands were negative, and not equal, the lt flag
would be set incorrectly.
Signed-off-by: Stephen Williams <[email protected] >
2007-07-02 21:33:05 -07:00
Stephen Williams
018f1a6e7f
Handle indexed part select in continuous assign.
...
Non-constant indexed part select in continuous assignment generates
a select node with the correct width. In the process factor out and
share some of the part select calculations with expr part select
handling methods.
Signed-off-by: Stephen Williams <[email protected] >
2007-07-02 20:53:02 -07:00
Stephen Williams
88dea0c318
Remove restriction on size of constants
...
Constant strings are now formed in dynamically allocated memory
instead of a fixed array.
Signed-off-by: Stephen Williams <[email protected] >
2007-06-30 20:27:08 -07:00
Stephen Williams
21d6fb6bc6
Fix runtime crash dumping VCD
...
Words of net arrays were incorrectly added to the scope. They should
only be attached to the array, and accessed as a word of the array.
Signed-off-by: Stephen Williams <[email protected] >
2007-06-30 09:34:02 -07:00
Stephen Williams
d7c3a32b06
Fix code generation for real expressions
...
Real value are vector width of 1, fix real literal to reflect this.
fix leaking real registers in code generation for function arguments.
Load of signal should handle conversion from real to vector. Function
arguments, type vector passed a real value, are an example where this
comes up.
Signed-off-by: Stephen Williams <[email protected] >
2007-06-29 21:10:37 -07:00
Stephen Williams
b525a63f50
Do not process back-slash escapes twice.
...
Backslash-escapes are processed early, during elaboration, so that
escaped characters show up in all places with the calculated value.
This means the $display formatting will get processed strings and
should not process back-slashes again.
Signed-off-by: Stephen Williams <[email protected] >
2007-06-28 18:07:22 -07:00
Stephen Williams
4cf9447ad9
Merge branch 'master' of [email protected] :git/verilog
2007-06-27 22:17:46 -07:00
Stephen Williams
845e74c30e
Evaluate parameter expressions losslessly
...
Make sure parameter expressions are evaluated losslessly, as if
the l-value is unsigned and thus virtually infinite.
2007-06-27 22:05:36 -07:00
Stephen Williams
a6f898a702
Careful not to lose bits parameter add expression
...
Parameter expressions that do not otherwise have a size should
evaluate expressions losslessly, expanding as necessary to prevent
overflow of data.
Signed-off-by: Stephen Williams <[email protected] >
2007-06-27 21:51:31 -07:00
Stephen Williams
59a43ab2ce
Do not match scopes in ident expressions
...
Identifiers in expressions cannot be scope names, even
though the special case of a simple system task argument
expression allows it.
2007-06-25 20:33:40 -07:00
Stephen Williams
ed698deeaa
Add support for collapsed/aliased arrays.
...
Arrays of nets that have all their words collapsed together can become
a collapsed array as a whole. Add support for this case in the vvp code
generator and runtime.
2007-06-24 18:17:37 -07:00
Stephen Williams
396ffd1cdd
Add support for conditional generate. In the process, fix bugs
...
related to generate used multiple times by multiple scopes causing
spurious generation results.
Signed-off-by: Stephen Williams <[email protected] >
2007-06-21 19:04:48 -07:00
Stephen Williams
9d2dd782c0
Get offsets right for non-zero and reversed part selects.
...
Signed-off-by: Stephen Williams <[email protected] >
2007-06-15 16:59:24 -07:00
steve
87e813766a
Detect and ignore specify edge expressions
2007-06-14 03:50:00 +00:00
steve
e24e77660f
Detect and use the nan function.
2007-06-13 01:03:57 +00:00
steve
8ec6d9983d
Put instantiated modules in the proper generated scope.
2007-06-12 04:05:45 +00:00
steve
ae82eccdc4
handle constant inf values.
2007-06-12 02:36:58 +00:00
steve
fa18d9bc01
Do not propogate until initialized.
2007-06-12 02:25:00 +00:00
steve
16ec4cb685
displan pmos gates.
2007-06-12 02:23:40 +00:00
steve
6f08f92ffc
Prepare for snapshot 20070608
2007-06-09 01:06:51 +00:00
steve
0a38499941
Properly handle signed conversion to real
2007-06-07 03:20:15 +00:00
steve
55f8e5d364
int vs long expressions on 64bit arch (ldoolitt)
2007-06-05 21:52:22 +00:00
steve
b631268f56
Error resiliency (ldoolitt)
2007-06-05 21:35:51 +00:00
steve
1a8ffe2a9c
More standard PLI_BYTE8.
2007-06-05 21:32:30 +00:00
steve
e4bcc87dc1
Upward names may reference modules by module_name.
2007-06-05 04:18:09 +00:00
steve
34111a25cb
Bring in .SFT file automatically if -m used.
2007-06-05 01:56:12 +00:00
steve
8fd42fbf61
Build errors in picky GCC compilers.
2007-06-04 19:14:06 +00:00
steve
129a064e1a
Handle bit/part select of array words in nets.
2007-06-04 02:19:07 +00:00
steve
c7d97f4146
Properly evaluate scope path expressions.
2007-06-02 03:42:12 +00:00
steve
1f9a246c6d
Fix warning (ldolittle)
2007-05-31 18:36:06 +00:00
steve
17fd3bae15
Missing return value to perm_string dump
2007-05-31 18:35:50 +00:00
steve
29aa68302e
Add elsif support (Martin Whitaker)
2007-05-30 23:21:20 +00:00
steve
8dcd09797f
Fix uninitialized lineno variable.
2007-05-25 18:21:39 +00:00
steve
ddd36ecb6c
Rework the heirarchical identifier parse syntax and pform
...
to handle more general combinations of heirarch and bit selects.
2007-05-24 04:07:11 +00:00
steve
67b1eee7ce
Better configuration messages (Alan Feldstein)
2007-05-16 23:59:12 +00:00
steve
629c6e9a40
Fix hname_t use of space for 1 perm_string.
2007-05-16 19:12:33 +00:00
steve
6ea1337be0
Trace file line buffer must be static.
2007-05-08 22:01:26 +00:00
steve
b981c81d37
Rework hname_t to use perm_strings.
2007-04-26 03:06:21 +00:00
steve
210e28e571
Prepare for 20070421 snapshot.
2007-04-22 00:32:07 +00:00
steve
f6ad90f8d3
Rename assign_list to cont_assign_list.
2007-04-21 04:45:36 +00:00
steve
890f592eec
Fix detect of signal that is an array.
2007-04-21 03:20:47 +00:00
steve
f9c1c02f8d
Add support for -v flag in command file.
2007-04-19 02:52:53 +00:00
steve
26f47c26f0
Handle arrayed strength-aware net devices.
2007-04-19 01:19:06 +00:00
steve
c0496ea648
Add support for multiple command files. (Cary R.)
2007-04-18 03:23:38 +00:00
steve
498d8fe6ad
Add support for Gg and Ee formats.
2007-04-18 02:40:20 +00:00
steve
dafc653935
Put to iverilog wiki for further notes.
2007-04-18 02:36:13 +00:00
steve
401faef5b8
Fix vpi_get_value vpiRealVal of signed constants.
2007-04-18 01:57:07 +00:00
steve
22efa9f066
Fix elaboration of multiply of two constants.
2007-04-18 01:40:49 +00:00
steve
583abb7f49
Fix handling calls to tasks in combinational always block
2007-04-17 04:34:23 +00:00
steve
fe65ae8db0
Support part select of array words in net contexts.
2007-04-17 04:18:10 +00:00
steve
cc48a6c8d7
Fix argument count in function error message.
2007-04-17 04:17:47 +00:00
steve
36471e9f96
Properly ignore unsupported ifnone.
2007-04-16 01:10:07 +00:00
steve
427d5664ef
Fix missing zero if time value is exactly 0.
2007-04-16 00:47:12 +00:00
steve
253fdc6232
Fix scanf to abort on failed matches.
2007-04-16 00:09:58 +00:00
steve
79fdb2b243
Attach line number information to task calls.
2007-04-15 20:45:40 +00:00
steve
089bdefad1
Fix div/mod calculation that caused a hang for some divisions.
2007-04-15 02:07:24 +00:00
steve
8ed1a010f7
Allow bit/part select of vectors in continuous assignments.
2007-04-15 01:37:29 +00:00
steve
9931e4c013
Finish up part select of array words.
2007-04-14 04:43:01 +00:00
steve
acdb278b97
Handle system functions with no arguments.
2007-04-14 03:27:51 +00:00
steve
d3a54547aa
Properly account for tri0 connected to otherwise open mux input.
2007-04-14 03:10:51 +00:00
steve
f621448ced
Parse edge sensitive paths without edge specifier.
2007-04-13 02:34:35 +00:00
steve
2229825783
fix handling of unary reduction logic in certain nets.
2007-04-12 05:21:54 +00:00
steve
fb7ce1d330
Support for vpi_get_value of scaler values. (ravi@bluespec)
2007-04-12 04:45:52 +00:00
steve
ff7625cd9c
nexus vectors of VT_BOOL objects. (ravi@bluespec)
2007-04-12 04:40:37 +00:00
steve
8f9738719b
Add support for vpiSize on system task handle. ([email protected] )
2007-04-12 04:33:39 +00:00
steve
31914c7fcd
vpip_make_binary_const cannot free the string passed in to it.
2007-04-12 04:25:58 +00:00
steve
abaeb1e702
Add printtimescale (caryr)
2007-04-12 02:50:51 +00:00
steve
513fa72d99
Cleanup timeformat argument checking.
2007-04-10 04:56:26 +00:00
steve
65baeaed8f
vpi_free_object doesnot free callback out from under runtime.
2007-04-10 04:32:05 +00:00
steve
fbc731d19e
Allow nexus aliases to array words.
2007-04-10 03:40:04 +00:00
steve
5047a3add3
variable arrays generated without writing a record for each word.
2007-04-10 01:26:15 +00:00
steve
d3588b4e23
More strict use of PLI_BYTE8 type.
2007-04-09 22:49:33 +00:00
steve
33e5f22cf1
Handle evaluate of addition of real valued constants.
2007-04-07 04:46:18 +00:00
steve
af913e7eb1
Allow implicit wires in assign l-value.
2007-04-05 03:09:50 +00:00
steve
dd995b3409
Probe of case statement inputs can skip nul statements.
2007-04-05 01:53:52 +00:00
steve
a863b2390c
Remove useless assert
2007-04-04 02:31:57 +00:00
steve
c5524b4acf
t-dll should not canonicalize word addresses, elaboration already does it.
2007-04-04 01:50:38 +00:00
steve
d883979fd8
Seperate arrayness from word count
2007-04-02 01:12:34 +00:00
steve
37111eb4a8
Tighter parsing of statement lists and expression lists.
2007-04-01 23:02:03 +00:00
steve
bd1b00ca29
Improve port mismatch error message.
2007-04-01 23:01:10 +00:00
steve
0168502bbb
Get offsets into indexed part selects correct.
2007-04-01 05:28:26 +00:00
steve
ea74940be4
Fix that save expression lookaside always clears cached variable values.
2007-04-01 05:26:17 +00:00
steve
8856c07d88
More efficient allocate of ivl_nexus_t objects.
2007-03-26 20:32:47 +00:00
steve
9e21880cdc
Handle part select of array words.
2007-03-26 19:23:13 +00:00
steve
fe8da0bf14
Remove pretense of general use for t_cookie.
2007-03-26 18:17:50 +00:00
steve
fe02214fcc
do not calculate nexus name unless needed.
2007-03-26 16:51:48 +00:00
steve
611d2c81b3
Spelling fixes from Larry
2007-03-22 16:08:14 +00:00
steve
96443f1338
Clear lookaside even if source bit is a constant.
2007-03-20 04:26:56 +00:00
steve
32fb919b00
Replace some asserts with ivl_asserts.
2007-03-14 05:06:49 +00:00
steve
72ec3a2c09
VPI tasks take PLI_BYTE* by the standard.
2007-03-14 04:05:51 +00:00
steve
a50ec29ad9
Elaborate scopes of modules instantated in generate loops.
2007-03-08 06:11:35 +00:00
steve
d9efe3312e
Limit the calculated widths of constants.
2007-03-08 05:30:02 +00:00
steve
29b4d5a46e
document the +integer-width plus-arg.
2007-03-08 03:06:47 +00:00
steve
f23a5bfa96
Make integer width controllable.
2007-03-07 04:24:59 +00:00
steve
74ac5dbf58
Cast to remove ambiguities calling pow function.
2007-03-07 03:55:42 +00:00
steve
ae88f5cc68
Lint fixes.
2007-03-07 00:38:15 +00:00
steve
760f2182ba
Support signed function return values.
2007-03-06 05:22:49 +00:00
steve
e6fa72c318
Handle processes within generate loops.
2007-03-05 05:59:10 +00:00
steve
8c434ca6fa
Update spec file to be more suse compliant.
2007-03-04 20:49:49 +00:00
steve
6f810e0dba
Assert that modpath finds a delay.
2007-03-04 06:26:58 +00:00
steve
b68f17483e
UDP schedules its output instead of pushing it.
2007-03-04 06:26:33 +00:00
steve
606751dbfd
Check that path source/destination are ports.
2007-03-03 05:56:55 +00:00
steve
fc9a90c9e0
Add support for edge sensitive spec paths.
2007-03-02 06:13:22 +00:00
steve
b21390b228
Better error message when operating on array.
2007-03-02 01:55:36 +00:00
steve
1352eada12
Improved buildrequires and clean (Günter Dannoritzer)
2007-03-02 01:30:47 +00:00
steve
243cf94165
Add support for conditional specify delay paths.
2007-03-01 06:19:38 +00:00
steve
e789b3a5cf
Snapshot 20070227
2007-02-28 01:34:42 +00:00
steve
bb02da0319
Better error message around repeat concatenation syntax.
2007-02-27 06:10:16 +00:00
steve
0946f40c7b
Detect and warn about lval array index out fo bounds.
2007-02-27 05:14:38 +00:00
steve
80a2b05733
Do not assign to words constant-indexed out of range.
2007-02-27 05:13:34 +00:00
steve
6804732b9e
Spelling fixes (larry doolittle)
2007-02-26 19:49:48 +00:00
steve
d6969b719a
Prevent lost of width while calculation address.
2007-02-26 01:51:40 +00:00
steve
d2ba78559a
Process Verilog escape sequences much earlier.
2007-02-25 23:08:24 +00:00
steve
1f54f128c1
Handle unary minus of real valued expressions.
2007-02-20 05:58:36 +00:00
steve
2c32a81d91
Improved version of pr1639064 patch handles huge values. (larry doolittle)
2007-02-19 01:45:56 +00:00
steve
cd5b1b111c
Fix print of integers as real. <larry Doolittle>
2007-02-18 06:01:25 +00:00
steve
9d4fc92df5
Get page size from sysconf.
2007-02-16 23:30:14 +00:00
steve
45307f6144
Handle type of ternary expressions properly.
2007-02-14 05:59:46 +00:00
steve
92c36f152d
Treat BOOL and LOGIC the same according to VPI functions.
2007-02-14 05:59:24 +00:00
steve
4f74d9df98
Add the mov/wr opcode.
2007-02-14 05:58:14 +00:00
steve
0137832003
Include types for ternary and string in dump.
2007-02-14 05:57:51 +00:00
steve
189532c5bf
Hande specparam with min/myp/max values.
2007-02-13 04:39:25 +00:00
steve
7d2d87f7c6
NAND output is inverted once AFTER AND is calculated.
2007-02-12 05:08:27 +00:00
steve
521f66f040
Get padding right when loading array word into big vector.
2007-02-12 04:37:58 +00:00
steve
c1c2381261
Parse all specify paths to pform.
2007-02-12 01:52:21 +00:00
steve
97234cb7ca
Lexor handle escaped slash in strings.
2007-02-09 05:19:04 +00:00
steve
3fd80b09f0
Administrative/Makefile fixes, mostly for windows. (Cary R.)
2007-02-06 05:07:31 +00:00
steve
2b3acfb344
Expression lookaside cannot hold complex expressions
2007-02-06 04:43:53 +00:00
steve
326329d497
Set some missing local flags.
2007-02-05 01:42:31 +00:00
steve
d958a4a5af
Handle relink of continuous assignment.
2007-02-05 01:08:10 +00:00
steve
7d42c50253
Lookaside is invalid when working a new scope.
2007-02-02 04:48:49 +00:00
steve
6d91be5b19
Use inttypes.h instead of stdint.h for portability.
2007-02-02 04:33:00 +00:00
steve
d52f41535f
Ternary output node is local.
2007-02-01 19:06:06 +00:00
steve
a623502ece
More generous handling of errors in blocks.
2007-02-01 05:52:24 +00:00
steve
d22e9713f7
Error message better reflects more general reality.
2007-02-01 05:25:26 +00:00
steve
5869d7d879
Include type in signal create message.
2007-02-01 05:24:08 +00:00
steve
074a6a44e3
Detect and report arrays without index in net contexts.
2007-02-01 03:14:33 +00:00
steve
85ceea7358
Fix missing check for thread bits width in ADDI
2007-01-31 22:28:55 +00:00
steve
b2e1db6adb
Add method to bind assertions to verilog source lines.
2007-01-31 04:21:10 +00:00
steve
05efaa6427
Treat VPI argument array with constant index specially.
2007-01-30 05:28:23 +00:00
steve
cfe2198e5e
Types of task/function arguments set in multiple steps.
2007-01-29 02:07:34 +00:00
steve
d175eb17f1
Clarify the use of ivl_scope_def for not-functions.
2007-01-29 01:52:51 +00:00
steve
2de8bafb5c
Fix padding of x when literal is sized and unsigned.
2007-01-27 05:36:11 +00:00
steve
8e1c7e2891
More literal implementation of inertial delay model.
2007-01-26 05:15:41 +00:00
steve
8ae6240947
Snapshot 20070123
2007-01-24 01:24:47 +00:00
steve
f77d803aeb
Clean up elaboration of for-loop increment expression.
2007-01-21 04:26:36 +00:00
steve
4b829bf04f
Get argument widths right for shift results.
2007-01-20 02:10:45 +00:00
steve
17a508047b
Better size error details.
2007-01-20 02:09:54 +00:00
steve
b350b14f93
DLL API changes for windows.
2007-01-19 23:49:33 +00:00
steve
ca9da51a79
Precalculate constant power expressions, and constant function arguments.
2007-01-19 05:42:40 +00:00
steve
98417cb03a
Fix calculation of verinum pow operation.
2007-01-19 05:42:04 +00:00
steve
f07257067a
Handle real constants in vector expressions.
2007-01-19 05:24:53 +00:00
steve
e4d7eda02a
Fix missing data_type mark for array words.
2007-01-19 04:26:24 +00:00
steve
4d8164945e
Fix missing passive setting for array word pins.
2007-01-19 04:25:37 +00:00
steve
c0954349e4
Fix bad lookaside references in vvp thread code generator.
2007-01-19 02:30:19 +00:00
steve
e89b9fc25e
Do not match array words in expression lookaside.
2007-01-18 00:59:48 +00:00
steve
11a83c352d
Add missing array source files to CVS.
2007-01-18 00:24:10 +00:00
steve
d8d7673d27
Fix typo is hello_vpi.c example.
2007-01-17 05:35:48 +00:00
steve
6f3ddce7c4
Dead code for memories in scopes.
2007-01-17 05:00:12 +00:00
steve
f5a7ee0736
Remove dead code related to memories.
2007-01-17 04:39:18 +00:00
steve
91d84e7dc7
Major rework of array handling. Memories are replaced with the
...
more general concept of arrays. The NetMemory and NetEMemory
classes are removed from the ivl core program, and the IVL_LPM_RAM
lpm type is removed from the ivl_target API.
2007-01-16 05:44:14 +00:00
steve
5c3b2f4193
Snapshot 20061210
2006-12-10 17:18:56 +00:00
steve
0ae45e5644
Fix build error overloading pow function.
2006-12-10 17:15:48 +00:00
steve
296c2a575a
Snapshot 20061209
2006-12-09 20:07:58 +00:00
steve
316422d93b
Handle vpiRealVal reads of signals, and real anyedge events.
2006-12-09 19:06:53 +00:00
steve
2c7d2effd1
Fix an uninitialized variable warning.
2006-12-09 01:59:35 +00:00
steve
4fb5556d1c
Handle very wide signed divide.
2006-12-08 19:56:09 +00:00
steve
2eeea7003e
@* without inputs is an error.
2006-12-08 04:09:41 +00:00
steve
d7de70bdeb
Prevent name clash when processing parameter in net.
2006-12-08 03:43:26 +00:00
steve
078019ddec
Parse the case of module arrays with port binding by name.
2006-12-06 05:32:36 +00:00
steve
b4c3e8208f
Parse bit selects in $setuphold notifiers.
2006-12-03 04:46:51 +00:00
steve
2f9a3e90ae
Handle comments in file names.
2006-11-30 06:00:28 +00:00
steve
4f8a7ea84a
Use new vvp_fun_XXX in place of old functor table for NAND/NOR/XNOR/EEQ.
2006-11-28 05:57:20 +00:00
steve
a3da90aa4a
Dump nand logic.
2006-11-28 05:56:41 +00:00
steve
48029ed8e5
Fix crash handling constant true conditional.
2006-11-27 02:01:07 +00:00
steve
94f07d16e3
Fix compile time eval of condition expresion to do reduction OR of vectors.
2006-11-26 07:10:30 +00:00
steve
041091cfac
Fix nexus widths for direct link assign and ternary nets.
2006-11-26 06:29:16 +00:00
steve
0af4ea7cbe
Better document the .scope record.
2006-11-23 23:02:36 +00:00
steve
d6f98599f8
Do not intertangle modpaths due to references to input nets.
2006-11-23 22:42:48 +00:00
steve
2ac30824ac
Fix spurious event from net8 that is forced.
2006-11-22 06:10:05 +00:00
steve
64b4e2fa01
Get the .event input from the signal instead of the signal input.
2006-11-22 06:09:08 +00:00
steve
f5a204720d
Support part writes into part select nodes.
2006-11-16 01:11:26 +00:00
steve
21522c90bc
Process delay paths in second path over signals.
2006-11-10 05:44:44 +00:00
steve
34b5a31ff4
Add test_width methods for PETernary and PEString.
2006-11-10 04:54:26 +00:00
steve
c339dc4bbc
Remove last bits of relax_width methods, and use test_width
...
to calculate the width of an r-value expression that may
contain unsized numbers.
2006-11-04 06:19:24 +00:00
steve
ed5d3188b3
Fix padding of constant eval of NetESelect.
2006-11-04 06:16:27 +00:00
steve
8e379bd634
Handle dup of pad as well as normal select.
2006-11-04 06:10:13 +00:00
steve
841378426f
Updates for Cygwin portability (pr1585922)
2006-10-30 22:45:36 +00:00
steve
2302693201
Expression widths with unsized literals are pseudo-infinite width.
2006-10-30 05:44:49 +00:00
steve
2a8b960b06
More detailed internal error message.
2006-10-15 03:25:57 +00:00
steve
0e102a94b2
Fix rendering of signed numbers in real expressions.
2006-10-10 23:54:28 +00:00
steve
168b3f2743
Fix packaging of man directories.
2006-10-09 18:56:17 +00:00
steve
0d71b1cc18
Prepare for 20061009 snapshot.
2006-10-09 18:31:56 +00:00
steve
ec23bb0367
Remove dead code.
2006-10-05 01:37:34 +00:00
steve
26e2e85ffa
Handle non-constant delays on indexed non-blocking assignments.
2006-10-05 01:23:53 +00:00
steve
4af28e2b77
no-specify turns of specparam elaboration.
2006-10-03 15:33:49 +00:00
steve
69cd007a71
Support real valued specify delays, properly scaled.
2006-10-03 05:06:00 +00:00
steve
cbe1a6a3ca
Save dep_path because arg space is overrun.
2006-10-02 18:16:18 +00:00
steve
1a0d48c346
Fix handling of dep path in new argument passing method.
2006-10-02 18:15:47 +00:00
steve
549f226c6e
Modpath is input to net, draw .modpath to account.
2006-10-01 23:51:15 +00:00
steve
e1f712356f
Allow rosync events to create new rosync events.
2006-09-29 16:55:04 +00:00
steve
6593b603ad
Modpath delay chooses correct delay for edge.
2006-09-29 03:57:01 +00:00
steve
852d10500d
Man files go into /usr/share/man.
2006-09-29 01:32:17 +00:00
steve
44ca0fe798
rwsync callback fixes from Ben Staveley (with modifications.)
2006-09-29 01:24:34 +00:00
steve
35ce5f3e2a
Improved mingw.txt instructions.
2006-09-28 23:45:20 +00:00
steve
d6be82f748
Support selective control of specify and xtypes features.
2006-09-28 04:35:18 +00:00
steve
7e3ea2ffe8
Allow specparams as constants in expressions.
2006-09-28 00:29:49 +00:00
steve
b658a3b41f
Missing PSpec.cc file.
2006-09-26 19:48:40 +00:00
steve
d3ceae7ee0
Accept .cpp source.
2006-09-26 18:54:42 +00:00
steve
0edb5a7547
Basic support for specify timing.
2006-09-23 04:57:19 +00:00
steve
ceb6bf4afd
Correct return code for vpi_put_userdata.
2006-09-22 22:33:00 +00:00
steve
0e2c6544b9
Proper error message when logic array pi count is bad.
2006-09-22 22:14:27 +00:00
steve
b4893dc16f
Configure scripts in general need canonical host.
2006-09-22 22:13:07 +00:00
steve
f49039a3d6
Missing declaration for Windows.
2006-09-22 15:15:27 +00:00
steve
3617f0346e
Bring ivl.def up to date.
2006-09-20 22:31:57 +00:00
steve
f20191e6f5
tgt-verilog is not buildable for now.
2006-09-20 22:31:45 +00:00
steve
182734fd4d
Remove dead code.
2006-09-20 22:31:23 +00:00
steve
431eee16e4
Do not pass -D__ICARUS__ to ivlpp.
2006-09-20 22:30:52 +00:00
steve
92cb1d4e2d
Use elab_and_eval for bit select expressions.
2006-09-19 23:00:15 +00:00
steve
6f34dfc8e5
Scanf formats for character and string.
2006-08-12 04:16:07 +00:00
steve
2c7e96caec
scanf support for real values.
2006-08-12 03:38:12 +00:00
steve
54c7ef72cb
Snapshot 20060809
2006-08-10 01:23:29 +00:00
steve
50800fd3a1
Add support for real valued modulus.
2006-08-09 05:19:08 +00:00
steve
fc0695beb6
Handle 64bit delay constants.
2006-08-08 05:11:37 +00:00
steve
00891db0d2
Fix typo in initialize of new event_time cell.
2006-08-06 18:17:00 +00:00
steve
898b0e0365
Support release of a for/linked reg.
2006-08-04 04:37:37 +00:00
steve
382c4d74fd
Add the scanf functions.
2006-08-03 05:06:04 +00:00
steve
5bcf083662
Better comments for vpi_fopen function.
2006-08-03 05:05:31 +00:00
steve
1bd530c144
Fix infinite loop padding binary string to result.
2006-08-03 05:05:06 +00:00
steve
82a85131a8
Use compiletf to check arguments.
2006-08-03 05:02:46 +00:00
steve
49b65e86fe
Add support for power in constant expressions.
2006-07-31 03:50:17 +00:00
steve
06d6ac4b33
Fix/implement signed right shift.
2006-07-30 02:51:35 +00:00
steve
2037650080
Pass depfiles through temp defines file.
2006-07-26 00:11:40 +00:00
steve
61f3a84557
Pass defines and includes through temp file.
2006-07-26 00:02:48 +00:00
steve
ed70db84ce
Handle real valued literals in net contexts.
2006-07-08 21:48:46 +00:00
steve
5348ac14a5
Delay object supports real valued delays.
2006-07-08 21:48:00 +00:00
steve
aab6fefd8a
Fix context determined with of constants.
2006-07-07 04:06:37 +00:00
steve
1b8e2a17c7
Change the Copyright tag to License.
2006-06-24 05:21:07 +00:00
steve
33a391cb71
Sign extend operands of signed addition.
2006-06-20 05:06:47 +00:00
steve
bcc08112aa
Snapshot 20060618
2006-06-18 23:56:23 +00:00
steve
80f30be9d0
Add support for system functions in continuous assignments.
2006-06-18 04:15:50 +00:00
steve
71faebd6df
Make elaborate_expr methods aware of the width that the context
...
requires of it. In the process, fix sizing of the width of unary
minus is context determined sizes.
2006-06-02 04:48:49 +00:00
steve
53ae1f29c9
Fix broken subtraction of small constants.
2006-06-01 03:54:51 +00:00
steve
857b3e15b6
Fix handling of ternary-to-bufif0 constant propagation.
2006-05-24 04:32:57 +00:00
steve
019d61f633
Get self-determined unary - width right.
2006-05-19 04:44:55 +00:00
steve
d37b6599f4
eval_const is not strict.
2006-05-19 04:07:24 +00:00
steve
68e52ce6b7
Synchronous primitives only follow edges.
2006-05-18 05:13:45 +00:00
steve
4c885f65e1
Error message if concat expression cannot evaluate.
2006-05-17 16:49:30 +00:00
steve
f0e114d59f
Lexor os never interactive.
2006-05-17 04:15:12 +00:00
steve
aaaa042f73
Add port list format for task arguments.
2006-05-11 03:26:57 +00:00
steve
044da54b41
Be more stubborn about widths.
2006-05-02 04:29:42 +00:00
steve
a8b86ea3bb
More explicit datatype setup.
2006-05-01 20:47:58 +00:00
steve
e98aad1e9b
Cleaner rule for parse.h and parse.cc
2006-05-01 20:47:29 +00:00
steve
1ef91f800f
Forgot to invert nand output.
2006-05-01 20:47:03 +00:00
steve
a19efe181b
Install stub target.
2006-05-01 18:48:24 +00:00
steve
81bfbd1549
Reduce steps to make logic output.
2006-05-01 18:44:08 +00:00
steve
dc2898cc73
fix net type of multiply output.
2006-05-01 05:40:21 +00:00
steve
0c9fb766b6
Get the data type of part select results right.
2006-04-30 05:17:48 +00:00
steve
10f8c66f4a
Dump *all* the reduction operator gates.
2006-04-30 05:16:53 +00:00
steve
56f70ec702
Include math.h with lround implementation.
2006-04-28 15:44:37 +00:00
steve
949054e000
lround takes double, not float.
2006-04-28 15:40:30 +00:00
steve
47b72c3b74
Handle padding of MUX net results.
2006-04-28 05:09:51 +00:00
steve
a2c036d5ab
Allow concatenations as arguments to inout ports.
2006-04-28 04:28:35 +00:00
steve
0d17e57656
Dump indexes of ident expressions
2006-04-28 04:19:31 +00:00
steve
fd94268315
Detect missing lround function.
2006-04-27 05:04:59 +00:00
steve
36039e13ec
schedule takes relative, not absolute, time.
2006-04-27 04:38:00 +00:00
steve
a702f99c04
Dump function type as string.
2006-04-27 04:26:38 +00:00
steve
4493e3f928
Chop down assign r-values that elaborate too wide.
2006-04-26 04:43:50 +00:00
steve
3727052000
Include bit value in assertion message.
2006-04-26 04:39:23 +00:00
steve
39ff233cf1
Detect the presence of stdint.h
2006-04-25 22:41:10 +00:00
steve
58118bddc5
Warning when file is inadequate for requested range.
2006-04-25 05:00:12 +00:00
steve
c2ff3d501c
Fix support for indexed part select in continuous assign l-values.
2006-04-24 05:15:07 +00:00
steve
46d86ad276
Get tail counts right in nested concatenations.
2006-04-22 04:27:36 +00:00
steve
4dd1308eb0
Parse specify ifnone statements.
2006-04-17 04:35:49 +00:00
steve
a978bb1e14
Cleanup lval part select handling.
2006-04-16 00:54:04 +00:00
steve
707af782b3
Fix part selects in l-values.
2006-04-16 00:15:43 +00:00
steve
fc5cf55400
Use elab_and_eval to evaluate genvar expressions.
2006-04-12 05:05:03 +00:00
steve
6a74a090f0
Configure for stub.
2006-04-10 03:07:07 +00:00
steve
c448b75f2c
fpga target is not installed.
2006-04-10 03:05:54 +00:00
steve
aed885ecc5
Add support for generate loops w/ wires and gates.
2006-04-10 02:40:18 +00:00
steve
d365c144a8
Snapshot 20060409
2006-04-10 00:54:42 +00:00
steve
f001d0001a
Add support for generate loops w/ wires and gates.
2006-04-10 00:37:42 +00:00
steve
decfbff2b1
Clean up index expression error message.
2006-04-10 00:32:14 +00:00
steve
3e45f4302b
Be more accepting of the protect directive.
2006-03-30 05:44:36 +00:00
steve
77a0d7f4db
task/function ports can have types.
2006-03-30 05:22:34 +00:00
steve
e8efa6df53
Fix instance arrays indexed by overridden parameters.
2006-03-30 01:49:07 +00:00
steve
276f2d0032
Accept attributes in front of module instantiations.
2006-03-25 02:42:58 +00:00
steve
13a660b591
Get rid of excess PESTring:: prefix within class declaration.
2006-03-25 02:36:26 +00:00
steve
f4a44df2cc
Support more parameter syntax.
2006-03-18 22:53:38 +00:00
steve
5b3ba8c306
Properly handle signedness in compare.
2006-03-18 22:52:27 +00:00
steve
8defa4bcd0
Syntax for carrying sign with parameter.
2006-03-18 22:51:10 +00:00
steve
dabdcf0fc9
const/non-const clash.
2006-03-15 19:15:34 +00:00
steve
8ff70410ab
Handle multiple part/bi devices connected together.
2006-03-15 05:52:20 +00:00
steve
6f46d12e07
Add support for logic parameters.
2006-03-08 05:29:42 +00:00
steve
5f5a6b5396
Cleanup vpi_const to use vec4 values.
2006-03-06 05:43:15 +00:00
steve
1b911ad87a
Add support for memory value change callbacks.
2006-03-05 05:45:58 +00:00
steve
b0b614ae0e
Some trivial log message improvements.
2006-02-22 03:08:53 +00:00
steve
9c16c34422
Put strings for reg objects.
2006-02-21 05:31:54 +00:00
steve
170e57d662
Callbacks for named event triggers.
2006-02-21 04:57:26 +00:00
steve
065f342278
Remove dead code.
2006-02-21 03:19:03 +00:00
steve
a721586acb
Get vpiVectorVal from memory words.
2006-02-21 02:56:49 +00:00
steve
50ad415c0d
Support string values for memory words.
2006-02-21 02:39:27 +00:00
steve
4ba2afbbe1
Use g++ linker if there are C++ source files.
2006-02-21 02:38:44 +00:00
steve
d3f89e0d4f
Clean up makefiles to remove unsupported targets.
2006-02-15 18:42:42 +00:00
steve
457cf15b3b
Snapshot 20060215
2006-02-15 18:00:33 +00:00
steve
d0de678d57
real-to-integer conversions round, not truncate.
2006-02-02 05:48:45 +00:00
steve
fa6e4a69a6
Parse more cases of (*).
2006-02-02 05:21:45 +00:00
steve
d434dd7296
Allow part selects of memory words in l-values.
2006-02-02 02:43:57 +00:00
steve
3158e2caa1
Snapshot 20060124
2006-01-25 02:16:11 +00:00
steve
e1ce72e245
Support wide divide nodes.
2006-01-03 06:19:31 +00:00
steve
368c27c9e4
Handle complex net node delays.
2006-01-03 05:22:14 +00:00
steve
a4116efd57
Fix the return type of a synthesized divide.
2006-01-03 05:15:33 +00:00
steve
58f182a159
Node delays can be more general expressions in structural contexts.
2006-01-02 05:33:19 +00:00
steve
b7861fa6e8
Require explicit delay node from source.
2006-01-02 05:32:06 +00:00
steve
1721799050
Document binary expression use.
2005-12-22 15:44:29 +00:00
steve
df226c5d13
pad_to_width handles signed expressions.
2005-12-22 15:43:47 +00:00
steve
e9bf00dff6
Pad part selects
2005-12-22 15:42:22 +00:00
steve
c071cc1bbe
More detailed check of binary expressions.
2005-12-22 15:38:33 +00:00
steve
101b373293
Allow constant concat expressions.
2005-12-07 04:04:23 +00:00
steve
5cf64dfa70
Include stdint.h if it is present.
2005-12-07 03:43:30 +00:00
steve
1021e5acc8
Fixes for stubborn compilers.
2005-12-05 21:21:18 +00:00
steve
4f7e7a2296
Some systems donot have stding.h?
2005-12-05 21:20:55 +00:00
steve
0c73f209de
Be more careful with double types.
2005-12-05 21:19:55 +00:00
steve
0873c52474
vpi_signal supports vvp_fun_signal_vec types.
2005-11-30 00:42:14 +00:00
steve
64d46630e0
Snapshot 20051127
2005-11-27 17:53:28 +00:00
steve
8ed504b064
Fix for stubborn compiler.
2005-11-27 17:01:56 +00:00
steve
6161904bf8
Fix type safety warning from gcc.
2005-11-27 16:47:14 +00:00
steve
908955c72c
Handle bit select of parameter with ranges.
2005-11-27 05:56:20 +00:00
steve
bab70ccbed
Handle indexed l-value to force.
2005-11-26 17:23:17 +00:00
steve
2b8fd28a95
Force instruction that can be indexed.
2005-11-26 17:16:05 +00:00
steve
0e044d6684
More precise about r-value width of constants.
2005-11-26 00:35:42 +00:00
steve
7efa6be236
stop/continue messages go through MCD for logging.
2005-11-25 18:35:38 +00:00
steve
35951510c5
Put vec8 and vec4 nets into seperate net classes.
2005-11-25 17:55:26 +00:00
steve
3f108f08ed
Dump IVL_ST_DELAYX statements.
2005-11-20 15:58:53 +00:00
steve
244844c067
Document the IVL_ST_DELAY statements.
2005-11-20 15:58:25 +00:00
steve
b416ae047b
Fix compile warning.
2005-11-14 22:11:52 +00:00
steve
c02b3b8ac6
Reorganize signal part select handling, and add support for
...
indexed part selects.
Expand expression constant propagation to eliminate extra
sums in certain cases.
2005-11-10 13:28:11 +00:00
steve
bebcc05aab
Handle very wide % and / operations using expanded vector2 support.
2005-11-10 13:27:16 +00:00
steve
8d49abf967
Document the MUXZ functor.
2005-11-10 13:25:31 +00:00
steve
c87223170b
Prepare for snapshot 20051012
2005-10-13 03:04:06 +00:00
steve
8e2898e51a
Fix compile of net/real aliases.
2005-10-12 17:28:07 +00:00
steve
9c8c541f5d
MUX nodes get inputs from nets, not from net inputs,
...
Detect and draw alias nodes to reduce net size and
handle force confusion.
2005-10-12 17:26:17 +00:00
steve
3cdf655c79
force l-values do not support bit/part select.
2005-10-12 17:26:01 +00:00
steve
560c5a2584
Add alias nodes.
2005-10-12 17:23:15 +00:00
steve
c75f0a930e
Remove the $ from signal labels. They do not help.
2005-10-11 18:54:10 +00:00
steve
bb3f3c1f46
Remove obsolete vvp_memory_label function.
2005-10-11 18:30:50 +00:00
steve
07f345da4d
Logical or/and return VT_LOGIC type.
2005-10-11 16:15:52 +00:00
steve
fb22bcc96b
Remove dead dram_input_from_net and lpm_inputs_a_b
2005-10-10 04:16:13 +00:00
steve
2842a65fd1
Make sure the new size sticks in resize method.
2005-10-04 04:41:07 +00:00
steve
a652719876
Add support for indexed select attached to parameters.
2005-10-04 04:09:25 +00:00
steve
16dc3ab4d4
Error message for invalid for-loop index variable.
2005-09-27 04:51:37 +00:00
steve
cf85c19f7b
Simplify NexusSet set handling.
2005-09-25 23:40:11 +00:00
steve
01a6dd61ca
Support put_value of string values.
2005-09-21 01:04:59 +00:00
steve
bf8b085159
Clean up compiler warnings.
2005-09-20 18:34:01 +00:00
steve
ee22550047
Lazy processing of vvp_fun_part functor.
2005-09-20 00:51:53 +00:00
steve
2b07c7a685
Prevent some excess scheduling of logic propagation events.
2005-09-19 22:47:28 +00:00
steve
be73be8c98
Spelling patches from Larry.
2005-09-19 21:45:35 +00:00
steve
e2a1b90b12
Use lazy eval of BUF/NOT/OR/XOR gates.
2005-09-19 21:45:09 +00:00
steve
d22d88923d
Fix warnings about uninitialized variables.
2005-09-19 20:18:20 +00:00
steve
2729d6cd2e
Include vvp_config.h instead of config.h
2005-09-19 20:17:59 +00:00
steve
21af0dbe3f
Fix data type of parameters to logic.
2005-09-19 15:21:09 +00:00
steve
c4d8ab8509
Improve loading of part selects when easy.
2005-09-17 04:01:32 +00:00
steve
988a0a7048
Add the load/v.p instruction.
2005-09-17 04:01:01 +00:00
steve
672aa61ae7
More robust use of precalculated expressions, and
...
Separate lookaside for written variables that can
also be reused.
2005-09-17 01:01:00 +00:00
steve
7235706923
Make sure div, mod and mult nodes have line number info.
2005-09-15 23:04:09 +00:00
steve
a256613fa6
Fix bug configuring NetModulo pins.
2005-09-15 22:54:47 +00:00
steve
5ec7dde52f
Use iostream instead of stdio.
2005-09-15 22:54:04 +00:00
steve
19a1ae8d4f
Preserve precalculated expressions when possible.
2005-09-15 02:50:13 +00:00
steve
14d79a655e
Better reuse of IVL_EX_SELECT expressions.
2005-09-15 02:49:47 +00:00
steve
293976bacc
Spelling fixes.
2005-09-15 02:30:09 +00:00
steve
4dfdc147c5
fit type elaboration of logical not.
2005-09-14 15:15:44 +00:00
steve
c946f27d9b
Add b0 and b1 edges to parser.
2005-09-14 15:01:07 +00:00
steve
9fd16575d9
Support bool expressions and compares handle them optimally.
2005-09-14 02:53:13 +00:00
steve
b9c0b8aa79
Add an extensions.txt file.
2005-09-14 02:51:13 +00:00
steve
65584e6dde
Add word integer compares.
2005-09-14 02:50:07 +00:00
steve
c39976fbf1
Generate code to handle real valued muxes.
2005-09-01 04:11:37 +00:00
steve
4902c222fb
Check operand types for compatibility.
2005-09-01 04:10:47 +00:00
steve
ad761069c7
Support MUXR functors.
2005-09-01 04:08:47 +00:00
steve
b69f59f2ec
Handle memory references is continuous assignments.
2005-08-31 05:07:31 +00:00
steve
3ff2488d4f
Clean up a few overflowed shifts.
2005-08-30 00:49:42 +00:00
steve
efd7825964
minor correction to address check in of_MOV1XZ
2005-08-30 00:49:21 +00:00
steve
70f146924a
Safe handling of C left shift.
2005-08-29 04:46:52 +00:00
steve
7c19eb51e7
Minor cleanup.
2005-08-29 04:46:13 +00:00
steve
6f839aa5df
Eliminate int to vvp_bit4_t casts.
2005-08-29 02:38:50 +00:00
steve
dac11c2468
Handle synthesis of fully packed case statements.
2005-08-27 04:32:08 +00:00
steve
5cf2ce6499
Fix bit destination address in of_AND
2005-08-27 03:28:57 +00:00
steve
73453996a9
Be more cautios about accessing out-of-range bits.
2005-08-27 03:28:16 +00:00
steve
bc489a7761
Bring threads into the vvp_vector4_t structure.
2005-08-27 02:34:42 +00:00
steve
4a8be3db9c
Implement bi-directional part selects.
2005-08-06 17:58:16 +00:00
steve
8232b621f1
Fix parse errors related to pr766.
2005-07-27 14:54:51 +00:00
steve
4cbffc6b77
bufif enable is LOGIC.
2005-07-15 19:22:52 +00:00
steve
9a16e030b5
Match data type of PV select input/output.
2005-07-15 04:13:25 +00:00
steve
d353ddb660
Get output type correct for binary mux (ternary) expression.
2005-07-15 00:42:02 +00:00
steve
bc9f286954
More debug information.
2005-07-15 00:41:09 +00:00
steve
fde4ff72f6
Display as version 0.9.devel
2005-07-14 23:38:43 +00:00
steve
a8d49921ee
gcc4 compile errors.
2005-07-14 23:34:18 +00:00
steve
9cae53988a
Dump function call expression node.
2005-07-14 16:15:13 +00:00
steve
559a1fd359
Remove the .word statement.
2005-07-13 04:58:29 +00:00
steve
5bfdd52391
Handle functions with real values.
2005-07-13 04:52:31 +00:00
steve
b094ccc3f7
Functions get type from their output signal.
2005-07-13 04:51:36 +00:00
steve
b9799cf6ec
Remove NetVariable and ivl_variable_t structures.
2005-07-11 16:56:50 +00:00
steve
75ad90534b
Generalize signals to carry types.
2005-07-07 16:22:49 +00:00
steve
3ac79c294a
Implement real valued signals and arith nodes.
2005-07-06 04:29:25 +00:00
steve
e7f3340513
Remove reference to SystemVerilog.
2005-06-28 04:25:55 +00:00
steve
60b9121c6c
Make vector2 multiply more portable.
2005-06-27 21:13:14 +00:00
steve
e3f300f4c2
AND functor explicitly knows its width.
2005-06-26 21:08:38 +00:00
steve
1c6be44724
More verbose debugging of part select width errors.
2005-06-26 21:08:11 +00:00
steve
6bf7556d65
Check width of part select based on direction.
2005-06-26 18:09:24 +00:00
steve
c46f978dbb
Fix uninitialzied attr pointers for UDP devices.
2005-06-26 18:08:46 +00:00
steve
9cac88330b
AND gates propogate through scheduler, not directly.
2005-06-26 18:06:29 +00:00
steve
de1dd2f2b3
Make bit masks of vector4_t 64bit aware.
2005-06-26 01:57:22 +00:00
steve
6c8e1f7834
inline the vvp_send_vec4_pv function.
2005-06-24 02:16:42 +00:00
steve
b58705b829
Inline more simple stuff, and more vector4_t by const reference for performance.
2005-06-22 18:30:12 +00:00
steve
7091915b73
Reduce vvp_vector4 copies by using const references.
2005-06-22 00:04:48 +00:00
steve
5513974b78
Optimize vvp_scalar_t handling, and fun_buf Z handling.
2005-06-21 22:48:23 +00:00
steve
ad78af2f91
Inline some commonly called vvp_vector4_t methods.
2005-06-20 01:28:14 +00:00
steve
1b30bac9f3
Optimize the LOAD_VEC implementation.
2005-06-19 18:42:00 +00:00
steve
66a579dd67
Handle signed display of unsigned signals.
2005-06-18 15:55:21 +00:00
steve
094dd7e4de
threads member for waitable_hook_s needs initailizing.
2005-06-17 23:47:02 +00:00
steve
3b91db96cd
Support set of IntVal to memory words.
2005-06-17 05:13:07 +00:00
steve
657ac8168e
Debug messages.
2005-06-17 05:06:47 +00:00
steve
a79fee39e9
Watch out for signed constants in magnitude compare.
2005-06-17 05:05:53 +00:00
steve
4cc421b3b7
Make functors know their own width.
2005-06-17 03:46:52 +00:00
steve
290c604c62
Fix bit offsets when processing lval concatenation.
2005-06-15 01:33:33 +00:00
steve
466ab5c2c7
Resolv do not propogate inputs that do not change.
2005-06-15 00:47:15 +00:00
steve
4ba195282d
gcc3/4 compile errors.
2005-06-14 19:13:43 +00:00
steve
cd14ee77ae
Add the assign_v0_d instruction.
2005-06-14 01:44:09 +00:00
steve
21c7abf090
Accomodate fussy compilers.
2005-06-14 00:42:06 +00:00
steve
4413dd3c81
Fix compile errors.
2005-06-13 23:22:37 +00:00
steve
73f3589ea6
use NetPartSelect to shrink part from high bits.
2005-06-13 23:22:14 +00:00
steve
9278dad244
Make synthesized padding vector-aware.
2005-06-13 22:26:03 +00:00
steve
a0dce80eba
Document ivl_logic_delay function.
2005-06-13 22:25:37 +00:00
steve
af5f713c0f
Dump delays for logic devices.
2005-06-13 22:20:38 +00:00
steve
80cac983c6
More unified vec4 to hex string functions.
2005-06-13 00:54:04 +00:00
steve
f5ba93eeb6
Remove unused ft_MOS truth tables.
2005-06-12 21:56:16 +00:00
steve
668781788b
Support resistive mos devices.
2005-06-12 15:13:37 +00:00
steve
86729f52ca
Remove functor classes, no longer needed.
2005-06-12 01:42:20 +00:00
steve
fb8ddbbfde
Remove useless references to functor.h
2005-06-12 01:25:27 +00:00
steve
2736859d8f
Remove useless references to functor.h
2005-06-12 01:10:26 +00:00
steve
a59f3b1fa6
Implement nmos and pmos devices.
2005-06-12 00:44:49 +00:00
steve
dd4f765b06
Remove unneeded references to functor.h
2005-06-11 18:11:18 +00:00
steve
f465bca305
UD delays use delay node.
2005-06-11 16:21:08 +00:00
steve
cb967c10fe
Handle all edge types of a synchronous UDP.
2005-06-11 02:04:48 +00:00
steve
3607fb584d
Support UDP initial values.
2005-06-09 05:04:45 +00:00
steve
77792dcc2f
Support sequential UDP devices.
2005-06-09 04:12:30 +00:00
steve
2f7ec71a78
Support %force/link
2005-06-02 16:03:47 +00:00
steve
42433f4df9
Add support for notif0/1 gates.
...
Make delay nodes support inertial delay.
Add the %force/link instruction.
2005-06-02 16:02:11 +00:00
steve
aa2e178667
Handle event/or with specific, efficient nodes.
2005-05-25 05:44:51 +00:00
steve
015d280c6a
Handle assignments to part-select l-values.
2005-05-24 02:31:18 +00:00
steve
739a1839ed
Do sign extension of structuran nets.
2005-05-24 01:44:27 +00:00
steve
b6fd4f610b
Add a sign-extension node.
2005-05-24 01:43:27 +00:00
steve
06e08dbdf0
Make sure comparison widths match.
2005-05-19 03:51:38 +00:00
steve
28168e0f57
Fixup structural GT comparators.
2005-05-18 03:46:01 +00:00
steve
7796c8bcfb
Parameters cannot have their width changed.
2005-05-17 20:56:55 +00:00
steve
82be4ab189
Detect bit selects that need special handling.
2005-05-17 20:55:42 +00:00
steve
3a8e2e688d
Clean up definition of vvp_vector4_t insertion into ostream.
2005-05-17 20:54:56 +00:00
steve
037ab9efe9
Document real behavior of set/v instruction.
2005-05-17 20:54:00 +00:00
steve
d6a89a40cf
Clean up instruction type reverences to bits.
2005-05-17 20:51:06 +00:00
steve
3bd09d1470
synthesis of Logic and shifts using vector gates.
2005-05-15 04:47:00 +00:00
steve
d0ade1d082
Debug text.
2005-05-15 04:45:50 +00:00
steve
fcb02ee9c2
Disable obsolete logic constant fixup code.
2005-05-15 04:44:30 +00:00
steve
870395e627
Move functor delays to vvp_delay_fun object.
2005-05-14 19:43:23 +00:00
steve
c701fb615b
Give buffers support for simple delays.
2005-05-13 05:13:12 +00:00
steve
adbe734b6c
Some debug messages.
2005-05-13 05:12:39 +00:00
steve
c34e44dad0
Make sig-eq-constant optimization more effective.
2005-05-10 05:10:40 +00:00
steve
5a2dd3393f
Skip assign if index is invalid.
2005-05-09 00:38:12 +00:00
steve
ed78c5b677
Force part base out of bounds if index is invalid.
2005-05-09 00:36:58 +00:00
steve
7dd0d255a6
Add support for variable part select.
2005-05-08 23:40:14 +00:00
steve
48aa0f0075
Better handle assignment to bit/part select.
2005-05-07 03:16:31 +00:00
steve
5277124c76
Implement non-blocking part assign.
2005-05-07 03:15:42 +00:00
steve
f6da64e2ec
ostream insert for vvp_vector4_t objects.
2005-05-07 03:14:50 +00:00
steve
06816e79fe
Clarify internal delays for assignments.
2005-05-07 03:14:00 +00:00
steve
a1d899112a
Include delay expressions for assignments in dump.
2005-05-07 03:13:30 +00:00
steve
d548c9a5f8
Handle synthesis of concatenation expressions.
2005-05-06 00:25:13 +00:00
steve
2894cdefc7
Add cassign/link instruction.
2005-05-01 22:05:21 +00:00
steve
df271c9fa3
Link signals that are source of procedural continuous assign.
2005-05-01 22:04:12 +00:00
steve
99aff5f10b
Remove dead functor code.
2005-04-28 04:59:53 +00:00
steve
e9bf021f6c
vvp_fun_signal eliminates duplicate propagations.
2005-04-25 04:42:17 +00:00
steve
aed8474944
Reimplement basic asynchronous processes.
2005-04-25 01:35:58 +00:00
steve
af7e196518
synthesis of add and unary get vector widths right.
2005-04-25 01:30:31 +00:00
steve
365cfedd55
Update DFF support to new data flow.
2005-04-24 23:44:01 +00:00
steve
f884652c19
Add DFF nodes.
2005-04-24 20:07:25 +00:00
steve
6244dc1194
Make logic aware of strength.
2005-04-13 06:35:11 +00:00
steve
a3f696cd06
Add vvp driver functor for logic outputs,
...
Add ostream output operators for debugging.
2005-04-13 06:34:20 +00:00
steve
061fdf5a0d
scalars with 0-drivers are hiZ by definition.
2005-04-09 06:00:58 +00:00
steve
fe91ebe77c
Default behavior for recv_vec8 methods.
2005-04-09 05:30:38 +00:00
steve
e8a6835d36
Make clear that memory addresses are cannonical.
2005-04-08 04:52:31 +00:00
steve
800e2c6a17
All memory addresses are signed.
2005-04-08 04:51:16 +00:00
steve
29fa9e7321
Don not give to make_add express an unwanted width.
2005-04-08 04:50:31 +00:00
steve
65c7ec00e7
Rework NetRamDq and IVL_LPM_RAM nodes.
2005-04-06 05:29:08 +00:00
steve
d62661257a
Generate the right coes for unconnected UDP port.
2005-04-04 05:29:53 +00:00
steve
c5cf77dc7e
Support row level wildcards.
2005-04-04 05:13:59 +00:00
steve
20d3a8508e
Remove dead fvectors class.
2005-04-03 06:13:34 +00:00
steve
f16b69c1e5
Remove dead fvectors class.
2005-04-03 06:13:34 +00:00
steve
573e07225d
Rework the vvp_delay_t class.
2005-04-03 05:45:51 +00:00
steve
236ff2b278
Clean up handle of UDPs.
2005-04-01 06:04:30 +00:00
steve
b7ef2fcb0a
Reimplement combinational UDPs.
2005-04-01 06:02:45 +00:00
steve
becda0e26c
popen must be matched by pclose.
2005-03-22 15:53:48 +00:00
steve
d8a456bd67
The indexed set can write a vector, not just a bit.
2005-03-22 05:18:34 +00:00
steve
8184dfaed8
Handle wide operands to logical AND.
2005-03-19 06:59:53 +00:00
steve
ca488dff4e
Handle LPM shifts.
2005-03-19 06:23:49 +00:00
steve
23925b636e
vvp.conf files are generated.
2005-03-18 02:57:23 +00:00
steve
53da6e9a33
Add support for LPM_UFUNC user defined functions.
2005-03-18 02:56:03 +00:00
steve
0f914bf35a
UPdate elabrate continuous assighn of string to net.
2005-03-13 01:26:48 +00:00
steve
f556452403
Handle function/task port vectors.
2005-03-12 23:45:33 +00:00
steve
ab1ca54df2
Update support for LPM_MOD.
2005-03-12 06:43:35 +00:00
steve
bae8507c90
Implement .arith/mod.
2005-03-12 06:42:28 +00:00
steve
313502f360
Implement VPI access to signal strengths,
...
Fix resolution of ambiguous drive pairs,
Fix spelling of scalar.
2005-03-12 04:27:42 +00:00
steve
1c5b4881d7
Handle case inequality in netlists.
2005-03-09 05:52:03 +00:00
steve
53af2949b4
Generate code for new form of memory ports.
2005-03-09 04:53:40 +00:00
steve
789c95b1c1
reimplement memory ports.
2005-03-09 04:52:40 +00:00
steve
72240c460e
Remove dead code from scheduler.
2005-03-06 17:25:03 +00:00
steve
8e135a1020
Non blocking assign to memory words.
2005-03-06 17:07:48 +00:00
steve
0fb1fd36ee
Handle memory words in l-value concatenations.
2005-03-05 05:47:42 +00:00
steve
e7c2e06260
Check that lead.mv vector width matches word.
2005-03-05 05:45:18 +00:00
steve
73997f813c
Get read width of unitialized memory words right.
2005-03-05 05:44:32 +00:00
steve
75af32bd3c
Get base address from word ranges that VPI user passed.
2005-03-05 05:43:03 +00:00
steve
4ccbb4f0b2
Get rval width right for arguments into task calls.
2005-03-05 05:38:33 +00:00
steve
85286cc086
Rearrange how memories are supported as vvp_vector4 arrays.
2005-03-03 04:33:10 +00:00
steve
04604188df
Clock compression fix from Tony.
2005-02-19 16:45:01 +00:00
steve
f7dc4307bd
Fix duplicate delete from pr1073.
2005-02-19 16:44:38 +00:00
steve
257e1f9516
Support shifts and divide.
2005-02-19 02:43:38 +00:00
steve
5fe5d9184d
Handle signed divide.
2005-02-19 02:41:23 +00:00
steve
589eb1d315
Implement .arith/div.
2005-02-19 01:32:52 +00:00
steve
2fcaac4060
Support constant part select writes to l-values, and large part select reads from signals.
2005-02-15 07:12:55 +00:00
steve
4051f7d986
Handle bitmux lvalues for constant r-values.
2005-02-14 05:00:11 +00:00
steve
02d0719529
l-value input may be a vector.
2005-02-14 04:58:50 +00:00
steve
aaf35ab1a9
Handle bit selects in l-values to assignments.
2005-02-14 01:51:39 +00:00
steve
c5e7e2ec0a
Signals may receive part vectors from %set/x0
...
instructions. Re-implement the %set/x0 to do
just that. Remove the useless %set/x0/x instruction.
2005-02-14 01:50:23 +00:00
steve
ff067bb959
tri0 and tri1 resolvers must replace HiZ with 0/1 after resolution.
2005-02-13 05:26:30 +00:00
steve
1d7235b4f1
Replace supply nets with wires connected to pullup/down supply devices.
2005-02-13 01:15:07 +00:00
steve
97e0723bd1
Cleanup unused truth tables.
2005-02-12 23:05:25 +00:00
steve
d4eb4d38bc
Implement a-b muxes as vector devices
2005-02-12 22:54:29 +00:00
steve
d00e3fc9a9
Check IVL_LPM_MUX configuration.
2005-02-12 22:53:41 +00:00
steve
9ec00e1288
Fix copyright notice.
2005-02-12 22:52:45 +00:00
steve
85d9ebded8
Implement the vvp_fun_muxz functor.
2005-02-12 22:50:52 +00:00
steve
d74177634c
Restructure NetMux devices to pass vectors.
...
Generate NetMux devices from ternary expressions,
Reduce NetMux devices to bufif when appropriate.
2005-02-12 06:25:40 +00:00
steve
eca4f4fa97
Draw C4 and C8 constants to account for strength.
2005-02-12 06:25:15 +00:00
steve
6b7b82758a
Check nexus widths of IVL_LO_ nodes.
2005-02-12 06:17:43 +00:00
steve
355ead0002
Add debug dumps for vectors, and fix vvp_scaler_t make from BIT4_X values.
2005-02-12 06:13:22 +00:00
steve
4fce321900
Support C8 constants.
2005-02-12 03:27:18 +00:00
steve
2e6d2f8e98
Support scheduling vvp_vector8_t objects.
2005-02-12 03:26:14 +00:00
steve
55b5bf9d39
distinguish between single port namy instances, and single instances many sub-ports.
2005-02-10 04:56:58 +00:00
steve
1979fca239
Get the C4 width right for undriven nexa.
2005-02-10 04:55:45 +00:00
steve
a0583ef124
Simplify vvp_scaler strength representation.
2005-02-10 04:54:41 +00:00
steve
ee5bb5fcaf
Add the NetRepeat node, and code generator support.
2005-02-08 00:12:36 +00:00
steve
ca1bbc79a3
Add .repeat functor and BIFIF functors.
2005-02-07 22:42:42 +00:00
steve
e74127e1fc
Support .concat with arbitrary input counts.
2005-02-04 05:13:57 +00:00
steve
b48abb2148
Add wide .arith/mult, and vvp_vector2_t vectors.
2005-02-04 05:13:02 +00:00
steve
97f83ffbe3
laborate reduction gates into LPM_RED_ nodes.
2005-02-03 04:56:20 +00:00
steve
018014368b
Add support for reduction logic gates.
2005-02-03 04:55:13 +00:00
steve
20be0351ae
Elaborate unary subtract and NOT in netlist
...
contexts, and concatenation too.
2005-01-30 05:20:38 +00:00
steve
68a788221e
Support LPM_SUB
2005-01-30 05:09:04 +00:00
steve
84b3e8e2dc
Get .arith/sub working.
2005-01-30 05:06:49 +00:00
steve
e6cdd32c19
Clarify width argument to NetNet constructor.
2005-01-30 01:43:48 +00:00
steve
c23a35a033
Debug messages for PGAssign elaboration.
2005-01-30 01:42:05 +00:00
steve
609b6a7baa
Netlist boolean expressions generate gate vectors.
2005-01-29 18:46:18 +00:00
steve
0609c5f18c
Use scheduler to initialize constant functor inputs.
2005-01-29 17:53:25 +00:00
steve
d51503ffd8
move AND to buitin instead of table.
2005-01-29 17:52:06 +00:00
steve
7625a6c3e7
Check width of constant attached to nexus.
2005-01-29 16:47:52 +00:00
steve
695718d691
Clarify width of nexus.
2005-01-29 16:47:20 +00:00
steve
e04fb5c083
Elaborate parameter reference to desired width without concats.
2005-01-29 16:46:22 +00:00
steve
07f64bc603
Support interactive mode even without readline.
2005-01-29 06:29:17 +00:00
steve
bf3679b7d4
Add the -s flag to start up interactive.
2005-01-29 06:28:19 +00:00
steve
ade5bdcafe
Integrate pr1072 fix from v0_8-branch.
2005-01-29 00:37:06 +00:00
steve
7250337941
Integrate fixes from 0.8 branch.
2005-01-28 19:39:03 +00:00
steve
99ace10774
Simplified NetMult and IVL_LPM_MULT.
2005-01-28 05:39:33 +00:00
steve
6be34bba4d
Special handling of constant shift 0.
2005-01-28 05:37:48 +00:00
steve
a5b431ad20
Show the lpm_mult device.
2005-01-28 05:36:18 +00:00
steve
a121e703f3
Add vector4 implementation of .arith/mult.
2005-01-28 05:34:25 +00:00
steve
dfb7c7ba6f
Remove the NetEBitSel and combine all bit/part select
...
behavior into the NetESelect node and IVL_EX_SELECT
ivl_target expression type.
2005-01-24 05:28:30 +00:00
steve
edeb9d8eca
Part selects are done in the compiler, not here.
2005-01-24 05:08:02 +00:00
steve
14f557e6f4
Check widths of ternary expressions.
2005-01-24 05:05:25 +00:00
steve
25de448d34
Remove obsolete NetSubnet class.
2005-01-22 18:16:00 +00:00
steve
cb4e0d4724
stub dump signed flags of magnitude compare.
2005-01-22 17:36:59 +00:00
steve
6a23f16860
.cmp/x supports signed magnitude compare.
2005-01-22 17:36:15 +00:00
steve
a4710f375e
LPM_CMP_NE/EQ are vectored devices.
2005-01-22 16:22:13 +00:00
steve
6c5e840617
Implement vectored CMP_EQ and NE
2005-01-22 16:21:11 +00:00
steve
e28636776a
Change case compare from logic to an LPM node.
2005-01-22 01:06:55 +00:00
steve
b86fdd6bbc
Implement the .cmp/eeq LPM node.
2005-01-22 01:06:20 +00:00
steve
1d1dda5a5d
Implement the %load/x instruction.
2005-01-22 00:58:22 +00:00
steve
3222031970
Add missing concat.cc to cvs
2005-01-22 00:01:09 +00:00
steve
bf6a5d0f50
Implement LPM_COMPARE nodes as two-input vector functors.
2005-01-16 04:20:32 +00:00
steve
1c3668ea7f
Reimplement comparators as vvp_vector4_t nodes.
2005-01-16 04:19:08 +00:00
steve
ead2481793
Fix elaboration of == compared to constants.
2005-01-13 00:23:10 +00:00
steve
fcaaec0464
More robust input code generation for LPM_ADD.
2005-01-12 05:31:50 +00:00
steve
4d139b58aa
Properly pad vector widths in pgassign.
2005-01-12 03:17:36 +00:00
steve
8c18c9152d
More complete drawing of concat inputs.
2005-01-12 03:16:35 +00:00
steve
399dfe5c44
Handle concatenations with up to 16 inputs.
2005-01-10 01:42:59 +00:00
steve
9e94afe399
Use PartSelect/PV and VP to handle part selects through ports.
2005-01-09 20:16:00 +00:00
steve
6c711ee4d8
Merge $fopen robustness fix from 0.8
2005-01-09 20:12:22 +00:00
steve
9735b0e8b3
Add the .part/pv node and related functionality.
2005-01-09 20:11:15 +00:00
steve
d5c33420ab
vvp_fun_signal propagates vvp_vector8_t vectors when appropriate.
2005-01-01 02:12:34 +00:00
steve
34a14b983b
Implement .resolv functors, and stub signals recv_vec8 method.
2004-12-31 06:00:06 +00:00
steve
d1e2538aba
No need to draw BUF or BUFZ tables.
2004-12-31 05:57:25 +00:00
steve
8bfc75d1ee
Add specific BUFZ functor.
2004-12-31 05:56:36 +00:00
steve
b1b93f860c
Fix uninitialized fun pointer for resolver nodes.
2004-12-31 05:54:46 +00:00
steve
8f2d679c8a
Unify elaboration of l-values for all proceedural assignments,
...
including assing, cassign and force.
Generate NetConcat devices for gate outputs that feed into a
vector results. Use this to hande gate arrays. Also let gate
arrays handle vectors of gates when the outputs allow for it.
2004-12-29 23:55:43 +00:00
steve
83423c978b
Generate code for the .concat functors, from NetConcat objects.
...
Generate C<> constants of correct widths for functor arguments.
2004-12-29 23:52:09 +00:00
steve
1674d692b7
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.
2004-12-29 23:45:13 +00:00
steve
7166598ed0
Fix missing output propagation of part node.
2004-12-29 23:44:39 +00:00
steve
5eb25e44e1
Add ivl_event_scope, and better document ivl_event_X methods.
2004-12-18 18:56:18 +00:00
steve
59566158c4
Better detail on event trigger and wait statements.
2004-12-18 18:55:08 +00:00
steve
e11ac0b1d8
Use %set/v to trigger events.
2004-12-18 18:53:26 +00:00
steve
8939467ac5
Rework named events and event/or.
2004-12-18 18:52:44 +00:00
steve
26d97558c4
Replace single release with release/net and release/reg.
2004-12-17 04:47:47 +00:00
steve
59bac26f4f
Implement release functionality.
2004-12-17 04:46:40 +00:00
steve
78dda42493
Add the force/v instruction.
2004-12-15 17:17:42 +00:00
steve
36f36bd2ac
Add basic force/release capabilities.
2004-12-15 17:16:08 +00:00
steve
0193daa436
Display the release statement details.
2004-12-15 17:11:13 +00:00
steve
4444079409
Fixup force statement elaboration.
2004-12-15 17:10:40 +00:00
steve
3947d7dd33
Force r-value padded to width.
2004-12-15 17:09:11 +00:00
steve
7973dad9f5
Arrange statement dumping in new source files.
2004-12-12 18:15:06 +00:00
steve
d19e76a193
Fix r-value width of continuous assign.
2004-12-12 18:13:39 +00:00
steve
ffedf32476
cassign and deassign handle concatenated l-values.
2004-12-11 05:43:30 +00:00
steve
527ddea811
Add stub conf files to cvs.
2004-12-11 04:22:35 +00:00
steve
65e9b6be12
Rework of internals to carry vectors through nexus instead
...
of single bits. Make the ivl, tgt-vvp and vvp initial changes
down this path.
2004-12-11 02:31:25 +00:00
steve
6854660e18
v0.8 is its own directory.
2004-10-13 22:08:10 +00:00
steve
6818d996ea
Version stamps for 0.8
2004-10-13 22:01:34 +00:00
steve
4907776eaa
Prepare for snapshot 20041004
2004-10-04 18:46:26 +00:00
steve
51dd41f81a
Fix excessive error message.
2004-10-04 03:09:38 +00:00
steve
e4ae832153
Clean up spurious trailing white space.
2004-10-04 01:10:51 +00:00
steve
b3a3428b9a
Clean up bin32 files.
2004-10-04 01:09:07 +00:00
steve
2abdcfcaa4
Error message to match assertion.
2004-10-04 00:25:46 +00:00
steve
526b87cae3
Remove inaccurate comment.
2004-10-04 00:25:18 +00:00
steve
9383b165a4
MTI functions only user Mersene Twister
2004-10-04 00:14:08 +00:00
steve
e827f8f8c1
Cleanup and factoring of autoconf.
2004-09-27 22:34:10 +00:00
steve
965d928430
More carefull about eliding bufzs that carry strength.
2004-09-25 21:04:25 +00:00
steve
96936456da
Add a debug_elaborate flag
2004-09-25 01:58:44 +00:00
steve
94647be1f0
Some commentary on ivl_logic_pin.
2004-09-25 01:58:12 +00:00
steve
e45230061e
Dump tri0 and tri1 nets.
2004-09-25 01:57:33 +00:00
steve
180bfc5e72
Detect and prevent implicit declaration of hierarchical names.
2004-09-24 04:25:19 +00:00
steve
6d40326a2f
Fix LPM GE to match LPM GT behavior.
2004-09-22 16:44:07 +00:00
steve
0a630b60dd
Fix make check for pristine sources.
2004-09-18 01:59:44 +00:00
steve
1e4ffc292d
Snapshot 20040915
2004-09-16 03:24:28 +00:00
steve
a579114ae2
net_output handles l-value concatenations.
2004-09-16 03:17:33 +00:00
steve
8dfe16f6d2
Parse attributes attached to reg declarations.
2004-09-14 18:24:56 +00:00
steve
d1dac0017d
Fix the evaluation of constant ternary expressions.
2004-09-10 23:51:42 +00:00
steve
5e627c9adc
Compile cleanup of C code.
2004-09-10 23:13:05 +00:00
steve
98ba641e67
Remove bad casts.
2004-09-10 00:15:45 +00:00
steve
a70dd79cd8
Missing stdio.h header for warnings.
2004-09-10 00:15:17 +00:00
steve
a8ee786036
Relaxed width constraint on pad_expression output.
2004-09-10 00:14:31 +00:00
steve
d16e8f7c94
Macros can have null values.
2004-09-06 03:01:48 +00:00
steve
4148a2a44c
Better type safety.
2004-09-05 21:29:07 +00:00
steve
5f38591676
Better type safety.
2004-09-05 21:19:51 +00:00
steve
c10e572091
Support degenerat wait statements.
2004-09-05 21:07:26 +00:00
steve
1ab8879100
Fix syntax for $period to allow min:Ltyp:max expressions.
2004-09-05 21:01:51 +00:00
steve
2d498363d7
Handle instance array of port-less modules.
2004-09-05 18:09:47 +00:00
steve
15059bbfdc
More acurate note about system functions.
2004-09-05 17:54:22 +00:00
steve
9de786fc44
Add support for module instance arrays.
2004-09-05 17:44:41 +00:00
steve
62cffe16f4
PR1026: assignment statements can have sensitivities in the l-values.
2004-09-04 04:24:15 +00:00
steve
d3eb53e6b1
Better rule for install of system.sft.
2004-08-30 17:42:53 +00:00
steve
b631e6e704
Snapshot 20040828
2004-08-28 16:50:26 +00:00
steve
ba3790dc2b
.net range values can be signed.
2004-08-28 16:26:41 +00:00
steve
f02f5be3cc
Fix use of system tasks in AT_STAR statements.
2004-08-28 16:23:05 +00:00
steve
7f67afe9d5
Add support for $unsigned.
2004-08-28 15:42:11 +00:00
steve
d76ad25778
Do not change reg to wire in NetAssign_ unless synthesizing.
2004-08-28 15:08:31 +00:00
steve
21ba781604
More detailed error message about bad variable.
2004-08-28 14:59:44 +00:00
steve
95c8115fc7
Add support for localparam ranges.
2004-08-26 04:02:03 +00:00
steve
49366d1334
Add the $is_signed function.
2004-08-26 03:51:51 +00:00
steve
e2b94947f5
Fix read count passed to fgets.
2004-08-24 16:16:23 +00:00
steve
efe05a77cb
nex_output for NetPDelay statements.
2004-06-30 15:32:18 +00:00
steve
8bf434754f
Propagate source line number in synthetic delay statements.
2004-06-30 15:32:02 +00:00
steve
491df9c327
Watch out for real compared to constant. Handle as real.
2004-06-30 03:07:32 +00:00
steve
fca2e64808
Dump variable type of system function.
2004-06-30 03:05:04 +00:00
steve
6cd7c1a650
Some explination of vpi_func arguments.
2004-06-30 03:00:36 +00:00
steve
3dbc07f34d
Implement signed divide and signed right shift in nets.
2004-06-30 02:16:26 +00:00
steve
57b8ca191f
Add signed LPM divide.
2004-06-30 02:15:57 +00:00
steve
9ee0210cac
Code cleanup from Larry.
2004-06-24 15:22:23 +00:00
steve
69cfdbdc54
Fix broken calcuation of NE for constant.
2004-06-22 18:41:48 +00:00
steve
76c0fe459c
Only pad the width of vector r-values.
2004-06-20 15:59:06 +00:00
steve
9ba1177a4d
Generate signed modulus if appropriate.
2004-06-19 16:17:37 +00:00
steve
51fd249d8a
Watch type of mak bit matches masked value.
2004-06-19 16:17:02 +00:00
steve
050ec6f325
Add signed modulus operator.
2004-06-19 15:52:53 +00:00
steve
03d7448550
compare-to-constant uses sig len, not val len.
2004-06-18 16:38:22 +00:00
steve
b3529d8593
Help system function signedness survive elaboration.
2004-06-17 16:06:18 +00:00
steve
112368c7de
Add a .sft file for the system functions.
2004-06-17 14:47:22 +00:00
steve
d1f0a0b0d7
Save seed in static variable, in case user doesnt pass it.
2004-06-17 14:44:01 +00:00
steve
b043445c80
Generate .cmp/eq nodes instead of sea of gates.
2004-06-16 23:33:42 +00:00
steve
fd371a3958
Handle equality compare to constants specially.
2004-06-16 23:32:58 +00:00
steve
35619771dd
Add structural equality compare nodes.
2004-06-16 16:33:25 +00:00
steve
bdc6cb8723
Dump NE LPM device.
2004-06-16 16:22:04 +00:00
steve
2d63705093
Connect rsif of multiply to DataB.
2004-06-16 16:21:34 +00:00
steve
b108167441
rdynamic for openbsd.
2004-06-13 16:27:17 +00:00
steve
9949040285
Add support for the default_nettype directive.
2004-06-13 04:56:53 +00:00
steve
e8e0cd7cab
Support / and % in synthesized contexts.
2004-06-12 15:00:02 +00:00
steve
f2d4966634
Fix transcription error scaling c in uniform range.
2004-06-10 02:14:42 +00:00
steve
50bf2095df
Move Mersenne Twister to $mti_random, and make
...
the standard $random standard. Also, add $dist_poisson.
2004-06-09 22:14:10 +00:00
steve
2003c5a21e
Fix build order of vvp and vpi.
2004-06-09 22:13:43 +00:00
steve
bfd393c91c
Remove extra sub-make of vpi directory.
2004-06-09 22:13:14 +00:00
steve
37ae777111
Update to snapshot 20040606
2004-06-06 14:51:58 +00:00
steve
dd69872266
Special case for unary - of real literal.
2004-06-04 23:34:15 +00:00
steve
fbfc796647
Add unary minus as operator supported by verireal.
2004-06-04 23:33:51 +00:00
steve
8d3102388b
Pick sign bit from the right place in the exponent number.
2004-06-04 23:26:34 +00:00
steve
ba309e60bb
Fix synthesis method for logical and/or
2004-06-01 01:04:57 +00:00
steve
5472b27e1f
Rewire/generalize parsing an elaboration of
...
function return values to allow for better
speed and more type support.
2004-05-31 23:34:36 +00:00
steve
e7fa56981a
More identifier lists use perm_strings.
2004-05-25 19:21:06 +00:00
steve
55ba131997
Handle wait with constant-false expression.
2004-05-25 03:42:58 +00:00
steve
559f73c135
Attach line numbers to wait statements.
2004-05-25 03:42:44 +00:00
steve
b97f9448e0
Add support for the -I compiler flag.
2004-05-20 00:40:34 +00:00
steve
a7ae8adf9b
Support delayed/non-blocking assignment to reals and others.
2004-05-19 03:26:24 +00:00
steve
896f1b0de1
Generate code for nb assign to reals.
2004-05-19 03:25:42 +00:00
steve
ca55cadc6c
Add ivl_target support for non-blocking assign of real.
2004-05-19 03:18:40 +00:00
steve
324ba713e5
Handle explicit set of unsigned long width. For -m32
2004-05-18 18:45:11 +00:00
steve
69ebd0c49e
Allow vpiParamter as a string type.
2004-05-18 18:43:38 +00:00
steve
d60112d58b
Handle null string as a single nul character.
2004-05-18 18:43:15 +00:00
steve
5807d6912e
Protect ident pragma.
2004-03-17 17:07:12 +00:00
steve
ec0e35b940
Treat cygwin like Unix for build purposes.
2004-03-17 17:06:44 +00:00
steve
c8d67b904a
Only include DEBUG_SYNTH2 if __FUNCTION__ defined.
2004-03-15 18:40:12 +00:00
steve
c55adddb69
Assume struct initializers are GCC specific.
2004-03-15 18:35:37 +00:00
steve
8e63f56caf
standard conpliant stdio.h.
2004-03-13 05:12:36 +00:00
steve
9e223b9696
Clean up rules for iverilog-vpi vs driver-vpi.
2004-03-11 06:13:58 +00:00
steve
dd7472d125
Mingw needs -liberty, but Cygwin cannot tolerate it.
2004-03-11 06:06:59 +00:00
steve
0ef1ecab5e
Verbose details for sft parsing.
2004-03-11 06:02:58 +00:00
steve
28719e8584
Add support for system function table files.
2004-03-10 04:51:24 +00:00
steve
a0ed5e9e29
Separate out the lookup_sys_func table, for eventual
...
support for function type tables.
Remove ipal compile flags.
2004-03-09 04:29:42 +00:00
steve
20b7a23bde
Define function types.
2004-03-09 04:29:26 +00:00
steve
33783385d2
Get vpiModule of signals.
2004-03-09 03:11:02 +00:00
steve
914746f6f3
Minor spelling fixes.
2004-03-08 02:33:49 +00:00
steve
c6453a0854
primitive ports can bind bi name.
2004-03-08 00:47:44 +00:00
steve
413932e406
Verilog2001 new style port declartions for primitives.
2004-03-08 00:10:29 +00:00
steve
9531920685
MOre thorough use of elab_and_eval function.
2004-03-07 20:04:10 +00:00
steve
4456937274
Snapshot 20040220
2004-02-21 01:39:58 +00:00
steve
efef8fba85
Add load command to interactive stop.
...
Support decimal constants passed interactive to system tasks.
2004-02-21 00:44:34 +00:00
steve
177b6ffb6a
Addtrbute keys are perm_strings.
2004-02-20 18:53:33 +00:00
steve
1295058e5d
parameter keys are per_strings.
2004-02-20 06:22:56 +00:00
steve
b5b02269f1
unused variable warning.
2004-02-20 03:20:04 +00:00
steve
60adfb845d
Do not strip leading spaces, or expect them either.
2004-02-20 01:53:02 +00:00
steve
a4c5ff0bd3
vpiStringVal does not include leading nulls.
2004-02-20 01:52:25 +00:00
steve
72f9dc5094
Add the $fgets function.
2004-02-19 21:33:13 +00:00
steve
65f09337f6
Add sysfunctype to calltf structure.
2004-02-19 21:32:46 +00:00
steve
8d2858c555
vpiStringVal writes need to set all the bits of a reg.
2004-02-19 21:31:59 +00:00
steve
89acc41437
LPM, logic and Variables have perm_string names.
2004-02-19 07:06:57 +00:00
steve
536068bdfb
Memory and Event names use perm_string.
2004-02-19 06:57:10 +00:00
steve
2d7380c03b
PRototypes match the standard.
2004-02-18 17:52:00 +00:00
steve
27af95d402
Use perm_strings for named langiage items.
2004-02-18 17:11:54 +00:00
steve
17c891bc9c
Fix type mismatches of various VPI functions.
2004-02-18 02:51:59 +00:00
steve
38ec4b7851
Support unsigned divide of huge numbers.
2004-02-17 06:52:55 +00:00
steve
6f9ebb1e60
Add the $dumpflush function
2004-02-15 20:46:01 +00:00
steve
0fd5a79760
Cleanup of warnings.
2004-02-15 18:03:30 +00:00
steve
4288f3c6d0
Better error checking of primitive tables.
2004-02-15 17:48:28 +00:00
steve
d64295ed65
primitives support reg output name syntax.
2004-02-15 17:48:16 +00:00
steve
2f8a40b159
Fix evaluation of compare to constant expression.
2004-02-15 04:23:48 +00:00
steve
081a6a4088
Cleanup configure detection of win32.
2004-02-15 03:17:36 +00:00
steve
c971448760
dumpfile selects file at compiletf time.
2004-02-15 03:17:15 +00:00
steve
c275ef9482
Report elaboration errors without crashing.
2004-02-15 00:19:29 +00:00
steve
8188c4c690
Makefile cleanup.
2004-02-10 19:25:00 +00:00
steve
d482e341ae
Fix direction of Q/D signals of FD devices.
2004-02-10 16:39:33 +00:00
steve
f2b9b8946f
Snapshot 20040209
2004-02-09 21:29:05 +00:00
steve
fa4a873628
Add support for lxt2 break size
2004-02-06 18:23:30 +00:00
steve
a436bfc711
Include from current directory.
2004-01-28 23:54:10 +00:00
steve
c2ab27541f
Make sure I get ivl_target.h from this source.
2004-01-26 23:31:57 +00:00
steve
5160021b48
Make sure file64 support is on cc -D flags.
2004-01-26 21:52:46 +00:00
steve
f349449a49
Honor default format of numbers.
2004-01-23 23:40:44 +00:00
steve
de7f87853d
Generate error when missing concatenation operands.
2004-01-21 04:57:40 +00:00
steve
6a02613fca
Get rid of useless warning.
2004-01-21 04:35:03 +00:00
steve
3bb408faf2
Add support for initialization assign in port list declaration of reg.
2004-01-21 03:37:12 +00:00
steve
4987970af4
Give the vip directory its own configure and vpi_config.h
2004-01-21 01:22:51 +00:00
steve
d98720af4d
Isolate configure from containing config.h
2004-01-20 21:00:47 +00:00
steve
793493d3ff
Snapshot 20040118
2004-01-19 00:10:58 +00:00
steve
36785997cb
Improve the gperf warning message.
2004-01-18 23:34:00 +00:00
steve
923a3ea537
The is_combinational function really need not recurse.
2004-01-18 23:26:54 +00:00
steve
8aca824c0f
Further unify the configure.in scripts.
2004-01-15 20:52:32 +00:00
steve
e6b25a4e20
Get the NEED_LU define right for win32.
2004-01-15 06:05:20 +00:00
steve
d98b7ffb2e
Remove duplicate NetEvProbe objects in nodangle.
2004-01-15 06:04:19 +00:00
steve
e617e4a98c
Handle wide expressions in wait condition.
2004-01-13 03:42:49 +00:00
steve
1970e41041
Get value for vpoiConstType correct.
2004-01-13 02:55:50 +00:00
steve
e331b182a7
Synthesis debug messages.
2003-12-20 00:59:31 +00:00
steve
11b0cc5bf3
More thorough check that NetEvWait is asynchronous.
2003-12-20 00:33:39 +00:00
steve
5b0c7be6b7
Add ANSI style parameter port declarations.
2003-12-19 05:15:04 +00:00
steve
59ac435c71
Fix various unsigned compare warnings.
2003-12-19 01:27:10 +00:00
steve
57c3e86084
Debug dumps for synth2.
2003-12-17 16:52:39 +00:00
steve
f0e0377a20
Add acc_set_scope function.
2003-12-17 15:45:07 +00:00
steve
ae3198b505
Install target gets vvp.conf that is built, not from srcdir.
2003-12-12 19:58:40 +00:00
steve
d4525ddc16
Some systems dlsym requires leading _ or not on whim.
2003-12-12 05:43:08 +00:00
steve
19e8a92729
Fix make check to support -tconf configuration method.
2003-12-12 04:36:48 +00:00
steve
1bd1d287e4
tfname can be constant.
2003-12-07 20:06:24 +00:00
steve
4c8c14ceec
Ducument lxt2 access.
2003-12-07 20:05:56 +00:00
steve
df968687e4
Generate VVP_EXECUTABLE flag in conf files.
2003-12-07 19:28:43 +00:00
steve
973b4d9bcb
Pre-gcc3 compile error.
2003-12-03 04:27:10 +00:00
steve
2a60768ffe
Snapshot 20031202
2003-12-03 03:31:39 +00:00
steve
e56b77a43f
Add support for wait on list of named events.
2003-12-03 02:46:23 +00:00
steve
9967bfcbfd
Handle erroneous event lists.
2003-12-03 01:54:07 +00:00
steve
2c4358c9ff
Propagate named event outputs, if any.
2003-11-26 01:47:18 +00:00
steve
be0b42f210
Warning about sprintf.
2003-11-26 01:37:38 +00:00
steve
cf33bedc2d
Properly initialize vpi_module_list with system.
2003-11-26 01:37:14 +00:00
steve
0b538ceed6
The _pli_types.h header file is generated, not copied from srcdir.
2003-11-26 01:36:55 +00:00
steve
8d4c3a8620
Document the IVERILOG_ICONFIG variable.
2003-11-26 01:36:25 +00:00
steve
700d51ff8a
Fix reset race in test bench.
2003-11-25 18:35:31 +00:00
steve
cceb2bd2c5
Remove the iverilog.conf file.
2003-11-18 06:31:45 +00:00
steve
12033d7bd4
Move the DLL= flag to target config files.
2003-11-13 05:55:33 +00:00
steve
c96b0402be
Package the new conf files.
2003-11-13 05:54:03 +00:00
steve
5068e3ea15
Pass flags through the temporary config file.
2003-11-13 04:09:49 +00:00
steve
435f06bd21
ivl -F and -t flags are onpassed throught the -C file.
2003-11-13 03:10:37 +00:00
steve
534a656be8
devices need show_cmp_gt
2003-11-12 03:20:14 +00:00
steve
d10da2121f
Clean up manual definitions of PLI_UINT64_FMT.
2003-11-12 02:38:44 +00:00
steve
43f28b53a3
Design::get_flag returns const char* instead of string.
2003-11-10 20:59:03 +00:00
steve
995cd449c5
Include config.h
2003-11-10 20:19:32 +00:00
steve
7fa531c5db
Missing config.h.
2003-11-10 20:18:02 +00:00
steve
df08760ef8
Simply MSVC compatibility patch.
2003-11-10 20:15:33 +00:00
steve
a7c773262e
missing include of config.h
2003-11-10 20:11:01 +00:00
steve
f58b124101
Fix return value warnings.
2003-11-10 19:44:30 +00:00
steve
8eccb7b9a1
Remove redundant scope tokens.
2003-11-10 19:39:20 +00:00
steve
bc0ead2842
Spelling fixes in comments.
2003-11-08 20:06:21 +00:00
steve
80570c7c78
some header files in the build directory, as well as srcdir.
2003-11-08 19:30:15 +00:00
steve
ed831e7c32
Move come configure tests to aclocal.m4
2003-11-08 19:27:50 +00:00
steve
074dcc934a
Do not remove constants accessible to VPI.
2003-11-08 17:53:34 +00:00
steve
9db45e398e
Make sure makefile picks up include paths.
2003-11-08 16:20:33 +00:00
steve
4f40eb0a00
Implement basic fflush.
2003-11-07 19:40:05 +00:00
steve
1dfbe0f7f2
Fix conditional compilation of readline history.
2003-11-07 05:58:02 +00:00
steve
c5f7e7837b
Start the vvp target config files.
2003-11-01 04:22:50 +00:00
steve
faf33458fd
Accept functors in the config file.
2003-11-01 04:22:30 +00:00
steve
0607970eca
Add support for a target static config file.
2003-11-01 04:21:57 +00:00
steve
c4e069e505
Handle adders that use Cout for the top bit.
2003-10-31 03:45:50 +00:00
steve
7fd669fcc0
NetEUReduce has its own dup_expr method.
2003-10-31 02:47:11 +00:00
steve
fad43d78b0
Donot elide FF that has set or clr connections.
2003-10-31 02:40:06 +00:00
steve
5aadc310f7
Call register for fileio functions.
2003-10-30 04:52:54 +00:00
steve
930e5137ac
Catch real variables in net expressions.
2003-10-30 04:31:34 +00:00
steve
02ec36806c
Rearrange fileio functions, and add ungetc.
2003-10-30 03:43:19 +00:00
steve
e88c3a20a2
Details on the vpi_get_file function.
2003-10-30 03:42:51 +00:00
steve
5ff3bcc7fb
Add the PLU_UINT64_FMT string for formatting output.
2003-10-29 03:28:27 +00:00
steve
4236b8a95e
Portably handle time format of VCD prints.
2003-10-29 03:23:12 +00:00
steve
89fca07dc8
Add the iverilog-fpga man page.
2003-10-27 06:12:47 +00:00
steve
4eae8426a9
More flexible width handling for synthesized add.
2003-10-27 06:04:21 +00:00
steve
1b8034818c
Emit constants for LPM device.
2003-10-27 02:18:27 +00:00
steve
a503e2d91f
Handle special case of FF with enable and constant data.
2003-10-27 02:18:04 +00:00
steve
65ae69843b
Improve -V messages,
2003-10-26 22:43:42 +00:00
steve
1c99c629b1
Support constant evaluation of binary ^ operator.
2003-10-26 04:54:56 +00:00
steve
edaa7df6d2
Output of While is output of while substatement.
2003-10-26 04:51:38 +00:00
steve
847448139c
Case with empty statements has no inputs.
2003-10-26 04:50:46 +00:00
steve
ee172bdccf
Attach line number information to for loop parts.
2003-10-26 04:49:51 +00:00
steve
5496a38499
vvp_signal_label does not return a unique string.
2003-10-25 02:07:57 +00:00
steve
8dab4c6b53
memory index need not be self determined width.
2003-10-20 01:44:28 +00:00
steve
3e44a7121d
Include net objects in list display.
2003-10-15 02:17:39 +00:00
steve
d4f3349fe0
Syntax error on 32bit systems.
2003-10-14 18:05:18 +00:00
steve
f2382e209a
Document the --install-dir and -m32 flags.
2003-10-14 00:40:06 +00:00
steve
123e4c7f65
Report the configure vpi install directory.
2003-10-14 00:31:31 +00:00
steve
bb8785962f
Support 32bit compile on AMD64 systems.
2003-10-13 20:57:34 +00:00
steve
dba4f44598
AMD64 has both 32bit and 64bit cadpli.
2003-10-10 03:34:38 +00:00
steve
ec9361ae22
Install rules for vvp32/system.vpi
2003-10-10 03:34:15 +00:00
steve
906e7d9946
Install rules for vvp32/system.vpi
2003-10-10 03:31:40 +00:00
steve
9628b4d047
Snapshot 20031009
2003-10-10 03:04:07 +00:00
steve
46bb8c68fa
Some PLI1 stubs.
2003-10-10 02:57:45 +00:00
steve
a461a76bd5
Emit .event inputs before the .event statement.
2003-10-09 23:45:03 +00:00
steve
368e2211e3
More detailed AMD64 build instructions.
2003-10-09 23:41:50 +00:00
steve
e9f1fd012c
Put parameter name in NetEConstParam, not scope.
2003-10-09 16:52:52 +00:00
steve
c34d5699ee
Ignore the bin32 directory.
2003-10-09 16:27:41 +00:00
steve
468ffa4bd0
Default vpidir1 must match that of parent configure.
2003-10-09 05:58:06 +00:00
steve
e49856fad4
Add vvp32 support for cadpli.
2003-10-09 01:07:20 +00:00
steve
ee81485582
Support 32bit development library for libveriuser.
2003-10-09 00:37:58 +00:00
steve
8cf7b62933
Support both 32bit and 64bit system.vpi on AMD64.
2003-10-08 23:17:39 +00:00
steve
cf1affff32
TIME_FMT does not include the % character.
2003-10-08 23:14:29 +00:00
steve
9a232d545d
Completely support vvp32 when enabled.
2003-10-08 23:09:09 +00:00
steve
fc44f44879
Check for libhistory library.
2003-10-06 21:42:25 +00:00
steve
ddba06904c
Put libveriuser into a single .o file.
2003-10-06 21:27:05 +00:00
steve
a89f39f166
Include sys_priv.h instead of priv.h
2003-10-06 21:26:27 +00:00
steve
9b821c0dbd
Segregate 64bit and 32bit files on AMD64.
2003-10-06 18:58:32 +00:00
steve
52b756a6fa
Configure control for the vpi subdirectory.
2003-10-02 21:30:40 +00:00
steve
7ef45769a7
Use configured TIME_FMT in vcd dump printf.
2003-10-02 21:30:06 +00:00
steve
fff6e88245
Include timerec_to_time64 implementation.
2003-10-02 21:16:11 +00:00
steve
01d22e2005
Put libraries in libdir64.
2003-10-02 19:33:44 +00:00
steve
691d31faac
Add PLI_UINT64 to _pli_types.h.
2003-10-02 18:36:34 +00:00
steve
3190eda414
Slightly more efficient unary minus.
2003-10-01 17:44:20 +00:00
steve
40daff0aed
dumpers must be aware of 64bit time.
2003-09-30 01:33:39 +00:00
steve
f7b3c720af
Add PLI_UINT64 to _pli_types.h.
2003-09-30 01:33:13 +00:00
steve
2f4ec5a473
Warnings cleanup.
2003-09-26 21:25:58 +00:00
steve
d21351405a
turn partial off when maximally compressing.
2003-09-26 21:23:08 +00:00
steve
1cb589fee0
Assure ternary arguments are wide enough.
2003-09-26 02:44:27 +00:00
steve
8c30d217d5
Delete pform when done with it.
2003-09-26 02:17:14 +00:00
steve
86e9489530
Fix check.conf to match new driver.
2003-09-26 02:16:52 +00:00
steve
07ece95383
Slight performance tweaks of scheduler.
2003-09-26 02:15:15 +00:00
steve
2ed433b8c1
Detect missing endif markers.
2003-09-26 02:08:31 +00:00
steve
39b2928ad8
Summary list of missing modules.
2003-09-25 00:25:14 +00:00
steve
becae2cecd
Snapshot 20030924
2003-09-24 21:02:55 +00:00
steve
2231b830db
Standard udp scheduling behavior.
2003-09-24 20:46:48 +00:00
steve
2970b3c39b
Clear expression lookaside after true cause of ternary.
2003-09-24 20:46:20 +00:00
steve
daa85f2479
Pass -m flag from driver via iconfig file.
2003-09-23 05:57:15 +00:00
steve
2f8181f40a
Cleanup lxt2 writer with version from gtkwave 1.2.31
2003-09-23 03:40:59 +00:00
steve
d1f0bcf620
Catch unsized expressions in continuous assigns.
2003-09-23 03:31:28 +00:00
steve
933f4483b1
Pass more ivl arguments through the iconfig file.
2003-09-22 01:12:08 +00:00
steve
2e6cfd8c0d
min:typ:max delay values in specify statements.
2003-09-21 21:16:05 +00:00
steve
6abe797963
Evaluate nb-assign r-values using elab_and_eval.
2003-09-20 06:08:53 +00:00
steve
94a71fdee8
Evaluate gate array index constants using elab_and_eval.
2003-09-20 06:00:37 +00:00
steve
39df56fdcf
Evaluate memory index constants using elab_and_eval.
2003-09-20 05:24:00 +00:00
steve
1f0c274e82
Obsolete find_symbol and find_event from the Design class.
2003-09-20 01:05:35 +00:00
steve
693794552c
Remove find_memory method from Design class.
2003-09-19 03:50:12 +00:00
steve
da7956a797
Fix name search in elab_lval.
2003-09-19 03:30:04 +00:00
steve
1de5e6c848
Support --includedir to configure.
2003-09-17 04:30:33 +00:00
steve
ed792c5321
Internal documentation of UDP devices.
2003-09-17 03:39:55 +00:00
steve
31c0a9dcd1
Missing case warnings.
2003-09-13 01:30:07 +00:00
steve
1c51e1787c
Disable lxt when zlib is missing.
2003-09-13 01:28:47 +00:00
steve
178847fc53
Spelling fixes.
2003-09-13 01:01:51 +00:00
steve
7e7735ce21
Get rid of spurious parse.cc.h error messages.
2003-09-13 00:59:56 +00:00
steve
537fe0547a
Comments.
2003-09-13 00:59:02 +00:00
steve
9093877073
Export ivl_signal lsb/msb.
2003-09-13 00:58:24 +00:00
steve
6927e0fa1f
Add lxt2 support for partial mode.
2003-09-10 17:53:42 +00:00
steve
2418ab9063
Reimpelement scheduler to divide nonblocking assign queue out.
2003-09-09 00:56:45 +00:00
steve
2df976b4c6
Cross compile patches.
2003-09-05 18:04:16 +00:00
steve
c4c03e6be3
20030904 snapshot.
2003-09-04 20:29:59 +00:00
steve
cee34f8a8a
Support time0 resolution of combinational threads.
2003-09-04 20:28:05 +00:00
steve
aa40930278
Tonys -12 snapshot of lxt2 support.
2003-09-04 20:27:39 +00:00
steve
59c5759fdf
Add $push flag for threads.
2003-09-04 20:26:30 +00:00
steve
f495c75faf
Evaluate real parameter expressions that contain real parameters.
2003-09-04 01:52:50 +00:00
steve
fea68f7fe7
Support synchronous set of LPM_FF devices.
2003-09-03 23:34:09 +00:00
steve
7521aa83f8
Pass FF synchronous set values to code generator.
2003-09-03 23:33:29 +00:00
steve
c26df174a1
Oops, missing pin_Sset implementation.
2003-09-03 23:32:10 +00:00
steve
b0230cf4d4
Support synthesis of constant downshifts.
2003-09-03 23:31:36 +00:00
steve
ca0a9faa90
Only build a mux as wide as can be selected.
2003-09-03 04:29:18 +00:00
steve
af806ed9c3
Add lxt2 support.
2003-09-01 04:04:03 +00:00
steve
2272843511
32bit vs 64bit handling in SUBI.
2003-09-01 04:03:38 +00:00
steve
fdb5731b8b
Add $recrem to specify syntax.
2003-08-31 21:14:28 +00:00
steve
7c1401a2ba
Spelling patch.
2003-08-28 04:11:17 +00:00
steve
14150d6fba
ifdef idents correctly.
2003-08-26 16:26:01 +00:00
steve
816aba993f
iverilog-vpi support --cflags a la gtk.
2003-08-26 04:45:47 +00:00
steve
60b2e89b1b
Add support for fstrobe system tasks.
2003-08-26 03:51:05 +00:00
steve
64d795c53a
Preserve variable ranges all the way to the vpi.
2003-08-22 23:14:26 +00:00
steve
ec07674d40
Fix Makefiles to support read-only source directory.
2003-08-22 04:27:10 +00:00
steve
0a012c5d90
Fix uninitialized sset member.
2003-08-22 04:14:33 +00:00
steve
cd4b3b0f17
Snapshot 20030815.
2003-08-15 18:28:27 +00:00
steve
3dc73aa292
vpiIntVal treats x and z bits as 0.
2003-08-15 18:23:56 +00:00
steve
e561819179
Add synthesis support for synchronous reset.
2003-08-15 02:23:52 +00:00
steve
855c2fe001
Clean up memory leak in setup.
2003-08-15 02:12:15 +00:00
steve
bc428cfe9b
Fix dangling pointer in NexusSet handling blocks.
2003-08-14 02:41:05 +00:00
steve
bdd0b455bd
Careful list of dependencies.
2003-08-10 17:42:33 +00:00
steve
fff8278eb4
Detect asynchronous FF inputs that are expressions.
2003-08-10 17:04:23 +00:00
steve
b6c3f94d52
Add async clear to LPM_FF devices.
2003-08-10 16:42:23 +00:00
steve
6b7879c0b0
Ignore autom4te.cache files.
2003-08-10 00:41:26 +00:00
steve
adcafb6f24
Install man pages on Windows build.
2003-08-10 00:39:13 +00:00
steve
23d5b68153
Ignore more automake cache.
2003-08-09 04:32:33 +00:00
steve
aadf39a985
De emphasize the obsolete -txnf target.
2003-08-09 04:31:44 +00:00
steve
a95463ff81
Add support for IVL_LPM_MULT device.
2003-08-09 03:23:03 +00:00
steve
fbe6fc315b
Generate LPM_FF devices.
2003-08-09 02:40:50 +00:00
steve
63fb5ea03c
Add support for OR/NOR/bufif0/bufif1.
2003-08-07 05:18:04 +00:00
steve
800e9dd76a
Add arch=lpm to the documentation.
2003-08-07 05:17:34 +00:00
steve
f4b8a4877f
Add an LPM device type.
2003-08-07 04:04:01 +00:00
steve
e312e99448
Fix error truncating bitvec in output.
2003-08-06 18:24:55 +00:00
steve
c96598a429
Primitive outputs have same limitations as continuous assignment.
2003-08-05 03:01:58 +00:00
steve
38d851f04e
Ignore automake files.
2003-08-03 21:16:16 +00:00
steve
ddbb95870d
Too many names to list.
2003-08-03 03:55:11 +00:00
steve
d3d63c1b8b
mcd value can come from a vpiNet.
2003-08-03 03:54:02 +00:00
steve
5e326cd90e
Subtract from constant values.
2003-08-03 03:53:38 +00:00
steve
1a3a3fbcfa
Fix || with true case on the right.
2003-08-01 02:12:30 +00:00
steve
d6420f9e0c
Fix arithmetic operators in 64bit processors.
2003-08-01 00:58:34 +00:00
steve
2d5b48ce0a
Initialize allocated memory.
2003-08-01 00:58:03 +00:00
steve
66b7b36bc5
20030730 snapshot
2003-07-30 18:19:35 +00:00
steve
d653a7e88d
Add support for triand and trior.
2003-07-30 01:13:28 +00:00
steve
d4b7c835de
All the threads of a named fork go into sub-scope.
2003-07-29 05:12:10 +00:00
steve
31b1fb4ec4
Watch out for moving nexus_ptr while adding pins to nexus.
2003-07-26 04:06:58 +00:00
steve
bfe31e22bf
Start handling pad of expressions in code generators.
2003-07-26 03:34:42 +00:00
steve
e854ecd993
Special x86_64 support.
2003-07-25 03:49:43 +00:00
steve
48b6b6f460
UPdate to snapshot 20030722.
2003-07-23 02:39:17 +00:00
steve
e7ddf21233
Inline the svector<string> constructor.
2003-07-23 02:35:44 +00:00
steve
c6cf7e017b
Forgot to read the /x parameter for %load/x
2003-07-22 20:30:24 +00:00
steve
5e954e94fa
Overflow of unsigned when calculating unsigned long value.
2003-07-21 02:39:15 +00:00
steve
4b7b32d385
vpi_mcd_vprintf can only scan the va_list once.
2003-07-21 01:20:59 +00:00
steve
a378efb398
Careful to save format string to prevent overwrite.
2003-07-21 01:19:58 +00:00
steve
0cfac55d8a
Update config.guess and config.sub
2003-07-20 18:18:09 +00:00
steve
008c2cf448
Needs the config.h header.
2003-07-16 00:54:07 +00:00
steve
82bfbf41ea
Fix spelling of ifdef.
2003-07-15 16:17:47 +00:00
steve
4a8b9e549a
Move PUdp constructor into compiled file.
2003-07-15 05:07:13 +00:00
steve
cadf4cfdef
Spelling fixes.
2003-07-15 03:49:22 +00:00
steve
4641966349
Obsolete the verilog.1 man page.
2003-07-15 03:48:07 +00:00
steve
6cc5dd93fe
Handle line termination a la mac/windows/unix.
2003-07-15 02:41:07 +00:00
steve
5f96dc9faf
Update to snapshot 20030705.
2003-07-05 20:52:47 +00:00
steve
77da147629
Fix some enumeration warnings.
2003-07-05 20:42:08 +00:00
steve
1c4552e262
PAD names are LOC strings, not simple numbers
2003-07-05 20:22:18 +00:00
steve
5b351599f0
Allow attributes on Verilog 2001 port declarations.
2003-07-04 03:57:18 +00:00
steve
c2feb162f2
PAD attribute can be used to assign pins.
2003-07-04 01:08:03 +00:00
steve
7734ba99fc
Generate MUXF5 based 4-input N-wide muxes.
2003-07-04 00:10:09 +00:00
steve
dccd7ec7e2
Remove the vvp_cpoint_t indirect code pointer.
2003-07-03 20:03:36 +00:00
steve
272dc749da
IOPAD support.
2003-07-03 17:46:33 +00:00
steve
01b858ef13
Wider thread vector limit.
2003-07-03 17:44:10 +00:00
steve
939a85054d
spemm WORDS_BIGENDIAN correctly.
2003-07-03 16:29:55 +00:00
steve
004ecd08dd
Elide empty begin-end in conditionals.
2003-07-02 04:19:16 +00:00
steve
eb605694eb
More xilinx common code.
2003-07-02 03:02:15 +00:00
steve
b810556d3f
Remember to set INIT on wide-or trailing luts.
2003-07-02 02:58:18 +00:00
steve
3a3e288f6f
No longer export generic-edif functions.
2003-07-02 00:48:03 +00:00
steve
0ffb613229
Missing copyright notice.
2003-07-02 00:27:24 +00:00
steve
2e4276f5c5
Fix spelling of part= flag.
2003-07-02 00:26:49 +00:00
steve
daad030ce6
Add xilinx support for bufif1.
2003-07-02 00:25:40 +00:00
steve
5314ec373b
lut3 for 3input wide or.
2003-06-30 19:21:21 +00:00
steve
03089bdbf3
Add support for wide OR/NOR gates.
2003-06-28 04:18:47 +00:00
steve
253f3bc660
Add Xilinx support for A/B MUX devices.
2003-06-26 03:57:05 +00:00
steve
7b933eddd4
Correct handle of put to function return value.
2003-06-26 03:20:24 +00:00
steve
a9595fe6ba
Do not elide ports of cells.
2003-06-25 04:46:03 +00:00
steve
e8a222e783
Fix mingw portability problems.
2003-06-25 04:04:19 +00:00
steve
0e797dc7bc
Virtex and Virtex2 share much code.
2003-06-25 02:55:57 +00:00
steve
f7162eb538
Spelling fixes.
2003-06-25 01:49:06 +00:00
steve
56b876afc4
Add -Wall to compile.
2003-06-25 01:48:39 +00:00
steve
957a464743
Virtex support for NOT gates.
2003-06-25 01:46:44 +00:00
steve
79248d0592
Add ivl_synthesis_cell support for virtex2.
2003-06-24 03:55:00 +00:00
steve
21ff80075a
Various warnings fixed.
2003-06-24 01:38:02 +00:00
steve
bad861dba3
Module attributes make it al the way to ivl_target.
2003-06-23 01:25:44 +00:00
steve
5cb5a19819
ivl_synthesis_cell cuts off synthesis within a module.
2003-06-23 00:14:44 +00:00
steve
996d4c76db
vpi_handle diagnostic message.
2003-06-22 04:19:26 +00:00
steve
565e4f1fed
gettimeprecision will null argument has specific meaning.
2003-06-21 23:40:15 +00:00
steve
61195c5daa
Harmless fixup of warnings.
2003-06-21 01:21:42 +00:00
steve
ccf4d4d7da
Module attributes from the parser
...
through to elaborated form.
2003-06-20 00:53:19 +00:00
steve
cc5f7a64b0
Add attributes to modules.
2003-06-19 18:54:49 +00:00
steve
71a404a546
Add arithmetic shift operators.
2003-06-18 03:55:18 +00:00
steve
ae418c6a6d
Account for all 64 bits in results of $time.
2003-06-18 00:54:28 +00:00
steve
2894c021e7
Better trace of PLI1 registration.
2003-06-17 22:09:45 +00:00
steve
2321df4bfc
Remove short int restrictions from vvp opcodes. (part 2)
2003-06-17 21:28:59 +00:00
steve
96ca885aca
Remove short int restrictions from vvp opcodes.
2003-06-17 19:17:42 +00:00
steve
bbdf03b457
1) setlinebuf() for vpi_trace
...
2) Addes error checks for trace file opens
3) removes now extraneous flushes
4) fixes acc_next() bug
2003-06-17 16:55:07 +00:00
steve
b544b319fa
Handle special case of (*).
2003-06-17 04:23:25 +00:00
steve
536b79b667
Handle bufz as buf in generic fpga/edif target.
2003-06-17 03:47:41 +00:00
steve
4da0cc4c8c
Fix fprintf warning.
2003-06-16 22:14:15 +00:00
steve
ad102e80de
Functions can have sub-scope.
2003-06-16 00:34:08 +00:00
steve
c8b18b998e
Spell Yasuhisa correctly.
2003-06-16 00:33:41 +00:00
steve
1b0408ac8f
More efficient code for ternary expressions.
2003-06-15 22:49:32 +00:00
steve
222eaa0f88
Operands of unsigned multiply are unsigned.
2003-06-15 18:53:20 +00:00
steve
d2188b8f6d
Snapshot 20030614.
2003-06-14 22:20:19 +00:00
steve
2f6826247a
Sign extend signed vectors.
2003-06-14 22:18:54 +00:00
steve
4709c3e012
ihand is system task, not scope.
2003-06-14 01:16:17 +00:00
steve
54e809ffa4
Include verbose messages in log output.
2003-06-13 19:51:08 +00:00
steve
a9ce23d2e9
Add a bunch more PLI1 routines.
2003-06-13 19:23:41 +00:00
steve
3ef65d1298
Properly manage real variables in subscopes.
2003-06-13 19:10:45 +00:00
steve
b43c543455
Handle assign of real to vector.
2003-06-13 19:10:20 +00:00
steve
dc90f0d52d
Task/functions can have signed ports.
2003-06-13 00:27:09 +00:00
steve
83dfce00d2
support vpiVectorVal for value of thread vector.
2003-06-11 05:07:31 +00:00
steve
218693794d
Use -mieee for alpha compiles.
2003-06-11 05:07:07 +00:00
steve
0c7a5874d4
Proper pad of signed constants.
2003-06-11 02:23:45 +00:00
steve
2f241ae95b
Handle B and b in binary constants.
2003-06-11 01:58:21 +00:00
steve
6827aef285
PR735: bit select indices are signed constants.
2003-06-10 04:29:57 +00:00
steve
4f89e3a026
INclude missing assert.h in load_module.
2003-06-05 04:31:09 +00:00
steve
8352c91b0a
Evaluate <= with real operands.
2003-06-05 04:28:24 +00:00
steve
a4d69e08da
Better width testing for thread vector allocation.
2003-06-05 04:18:50 +00:00
steve
1c65ea08e8
1) Adds configure logic to clean up compiler warnings
...
2) adds acc_compare_handle, acc_fetch_range, acc_next_scope and
tf_isetrealdelay, acc_handle_scope
3) makes acc_next reentrant
4) adds basic vpiWire type support
5) fills in some acc_object_of_type() and acc_fetch_{full}type()
6) add vpiLeftRange/RigthRange to signals
2003-06-04 01:56:20 +00:00
steve
d3daa997b5
internal error for <= expression errors.
2003-06-04 01:26:17 +00:00
steve
bc91ec41f2
Add tf_strgetp functions.
2003-05-30 04:22:13 +00:00
steve
2b471d16f7
Add acc_next function.
2003-05-30 04:18:31 +00:00
steve
0555a5f182
vpi_trace of vpi_free_object.
2003-05-30 04:08:28 +00:00
steve
bd459d5182
Add tf_rosynchronize and friends.
2003-05-30 04:05:32 +00:00
steve
f003da6621
Add tf_scale_longdelay.
2003-05-30 04:01:55 +00:00
steve
5903f0744c
Support parameters in real expressions and
...
as real expressions, and fix multiply and
divide with real results.
2003-05-30 02:55:32 +00:00
steve
e7b3168466
Add tf_getp/putp support for integers
...
and real valued arguments.
Add tf_mipname function.
2003-05-29 03:46:21 +00:00
steve
bf664c67b4
acc_fetch_type supports module.
2003-05-29 02:35:41 +00:00
steve
8cfef65bd8
Implement acc_fetch_defname and its infrastructure in vvp.
2003-05-29 02:21:45 +00:00
steve
577554cca5
Better error message for stray characters.
2003-05-28 04:21:12 +00:00
steve
bf881fef0a
Implement tf_inump
2003-05-28 03:38:05 +00:00
steve
031962ba32
Missing time related declarations.
2003-05-28 03:14:20 +00:00
steve
ea2cef34ae
Some asserts that check for thread vector overflow.
2003-05-28 03:10:52 +00:00
steve
7fa987e58d
compiler warnings.
2003-05-28 02:42:43 +00:00
steve
5c34f53e9c
PLI get time units/precision.
2003-05-27 16:22:10 +00:00
steve
4b20ffc829
Use set/x0/x if the target vector is too wide for set/x0.
2003-05-26 04:45:37 +00:00
steve
e157b3f9c5
Add the set/x0/x instruction.
2003-05-26 04:44:54 +00:00
steve
b82a2d4773
Typo type name.
2003-05-26 04:39:16 +00:00
steve
c29b1639e1
Useless cast.
2003-05-25 03:04:55 +00:00
steve
5ee1b465e9
Get length of trimed unsigned value right.
2003-05-25 03:01:19 +00:00
steve
6e5b7e4a41
Add % in real expressions.
2003-05-25 02:50:08 +00:00
steve
49a8d46885
Add implementation of acc_handle_by_name.
2003-05-24 03:02:04 +00:00
steve
639d3aad1e
More thorough overflow error message.
2003-05-24 02:48:37 +00:00
steve
e3e4e648d7
Add vpi_fopen and vpi_get_file.
2003-05-23 04:04:02 +00:00
steve
3770dda0b8
Assert that parameters fix into opcode.
2003-05-23 03:44:34 +00:00
steve
7e2848b105
Do not try to set constants to width 0.
2003-05-20 15:05:33 +00:00
steve
0d779098f0
Fix spelling of HAVE_LIBREADLINE
2003-05-20 03:48:23 +00:00
steve
17e93b7cbe
Implement the wait statement behaviorally instead of as nets.
2003-05-19 02:50:58 +00:00
steve
52c1c051b0
Update to snapshot 20030518.
2003-05-18 17:48:52 +00:00
steve
ea33862632
Add PLI_TRACE tracing of PLI1 modules.
...
Add tf_isetdelay and friends, and add
callback return values for acc_vcl support.
2003-05-18 00:16:35 +00:00
steve
cd7a313f56
Account for nested fork scopes in disable.
2003-05-17 04:38:19 +00:00
steve
218d74f7bb
Fallback functionality if readline is not present.
2003-05-16 03:50:28 +00:00
steve
11058017df
Compile with -fPIC flag.
2003-05-16 03:23:17 +00:00
steve
8126bdd384
Use fopen64 to open output file.
2003-05-16 03:22:52 +00:00
steve
2e3ce49400
Arrange for mcd id=00_00_00_01 to go to stdout
...
as well as a user specified log file, set log
file to buffer lines.
Add vpi_flush function, and clear up some cunfused
return codes from other vpi functions.
Adjust $display and vcd/lxt messages to use the
standard output/log file.
2003-05-15 16:51:08 +00:00
steve
04d32a4d4c
Return all 64bits of time in vpi_get_time.
2003-05-15 01:24:46 +00:00
steve
f37213e7e6
Eliminate some redundant vpi_put_values.
2003-05-15 00:38:29 +00:00
steve
2a29c4fd62
Support real expressions in case statements.
2003-05-14 05:26:41 +00:00
steve
889b9bfe07
Use seed to store random number context.
2003-05-14 04:18:16 +00:00
steve
2356741169
Clear pin pointers if pin is not connected.
2003-05-13 16:30:39 +00:00
steve
3bd08e6212
Allow primitives to hvae unconnected input ports.
2003-05-13 01:56:15 +00:00
steve
d9b86d9b3a
$readmem more flexible with file name argument.
2003-05-10 16:06:50 +00:00
steve
2a93dc00f6
Proper width handling of || expressions.
2003-05-10 02:38:49 +00:00
steve
a5298eef46
Account for newer (2.5.31) flex.
2003-05-08 16:20:17 +00:00
steve
5e07cd7e6e
Improve internal error message.
2003-05-07 19:56:20 +00:00
steve
4ace97a083
ufunc calls to functions can have scheduling complexities.
2003-05-07 03:39:12 +00:00
steve
84b0ca822b
Prepare for 20030504 snapshot.
2003-05-04 20:58:58 +00:00
steve
1b7c876fd8
Event callbacks support vpi_remove_cb.
2003-05-04 20:43:36 +00:00
steve
d958fd2c36
Fix truncation of signed constant in constant addition.
2003-05-04 20:04:08 +00:00
steve
afb7a48b29
Add reference to link from Yasukisa Kato.
2003-05-04 19:31:51 +00:00
steve
aff5b7fadf
Certain constants are allowed as mcd parameters.
2003-05-02 15:45:43 +00:00
steve
7733a0a620
$fdisplay can have a RealVar, not RealVal argument.
2003-05-02 04:44:41 +00:00
steve
78a2ef04a9
Add put_value with transport delay.
2003-05-02 04:29:57 +00:00
steve
76295ac873
More complete bit range internal error message,
...
Better test of part select ranges on non-zero
signal ranges.
2003-05-01 01:13:57 +00:00
steve
8df9bb3840
Remove veriusertfs stuf.
2003-04-30 01:28:06 +00:00
steve
ea3048fb96
Conditionally include malloc.h
2003-04-30 01:09:29 +00:00
steve
cb0a9b254e
More 2001 port declaration support.
2003-04-28 17:50:57 +00:00
steve
06b4f3cd58
Snapshot 20030427.
2003-04-28 01:08:09 +00:00
steve
ab6b9312f2
Fix stringheap list management failure.
2003-04-28 01:03:11 +00:00
steve
d88d876501
Better guess of defualt ternary width.
2003-04-27 16:33:16 +00:00
steve
60229d96a5
Support vpiScaledRealTime.
2003-04-27 04:19:24 +00:00
steve
789b278ec5
Capture VCD dump value in the rosync time period.
2003-04-27 02:22:27 +00:00
steve
65c8722d72
Handle X values in constant == nets.
2003-04-25 05:06:32 +00:00
steve
6df92f7cca
Properly skip cancelled callbacks.
2003-04-25 04:36:42 +00:00
steve
58f6755fa7
Ansi port declaration can take a list.
2003-04-25 02:28:53 +00:00
steve
aa47ff5653
Add acc_fetch_fulltype function.
2003-04-24 18:57:05 +00:00
steve
cdbf21a92d
NetSubsignal inherits port type from source.
2003-04-24 05:26:25 +00:00
steve
5b726e09af
Include port name in port assignment error message.
2003-04-24 05:25:55 +00:00
steve
928cee9dab
Dump design even on errors.
2003-04-24 05:25:27 +00:00
steve
351485f066
Clean up some simple warnings.
2003-04-24 02:02:37 +00:00
steve
11b9adfa40
Add tf_synchronize and tf_multiply_long.
2003-04-23 15:01:29 +00:00
steve
d5642e6bdf
Preserve user specifiec CFLAGS/CPPFLAGS.
2003-04-23 05:27:44 +00:00
steve
d9568263a3
Accept string parameters for file name argument.
2003-04-23 04:57:41 +00:00
steve
54ea845f34
VPI Access to named events.
2003-04-23 03:09:25 +00:00
steve
3aa3d03397
Fix word register leak.
2003-04-23 02:22:47 +00:00
steve
f1cc9d865b
Support event names as expressions elements.
2003-04-22 04:48:29 +00:00
steve
299f6f8551
acc_fetch_value support for %v format.
2003-04-20 02:49:07 +00:00
steve
c75140592f
Support value change callbacks.
2003-04-20 02:48:39 +00:00
steve
59aa9052f8
Add support for cbNextSimTime.
2003-04-19 23:32:57 +00:00
steve
92a44db0b8
Arrange link order to find local libraries before installed libraries.
2003-04-19 22:37:10 +00:00
steve
58f5955687
Less picky about expression widths while synthesizing ternary.
2003-04-19 04:52:56 +00:00
steve
2879ed4388
Set line number for ternary expressions.
2003-04-19 04:19:38 +00:00
steve
772a8b7dac
Handle real constants evaluation > and >=.
2003-04-15 05:06:56 +00:00
steve
bab0924d86
Make some effort to preserve bits while
...
operating on constant values.
2003-04-14 03:40:21 +00:00
steve
561a268c9c
Break sized constants into a size token
...
and a based numeric constant.
2003-04-14 03:37:47 +00:00
steve
3b17456254
Properly pass $signed(signal) to tasks.
2003-04-12 23:25:20 +00:00
steve
6035a7c143
spec file for 20030412 snapshot
2003-04-12 20:20:42 +00:00
steve
77cadcdf22
Update spec with new pli files.
2003-04-12 19:19:21 +00:00
steve
e972f9c557
Add the swift.txt documentation.
2003-04-12 19:19:03 +00:00
steve
07b7bf3084
More acc_ function stubs.
2003-04-12 18:57:13 +00:00
steve
8ac644c746
Add vpoiScalarVal support for signals.
2003-04-12 18:56:57 +00:00
steve
5d1d99a89f
Handle signed magnitude compare all the
...
way through to the vvp code generator.
2003-04-11 05:18:08 +00:00
steve
2c1e36ae9a
Add signed versions of .cmp/gt/ge
2003-04-11 05:15:38 +00:00
steve
58f2fe73c8
Detect constant shift distances in synthesis.
2003-04-08 05:07:15 +00:00
steve
2c129dfbfa
Synthesize shift expressions.
2003-04-08 04:33:55 +00:00
steve
aad7816949
Move library cell management to common file.
2003-04-05 05:53:34 +00:00
steve
15fa7246f2
Fix LUT function for chained NE.
2003-04-05 01:35:40 +00:00
steve
882c46437c
Add == and some lut logic.
2003-04-04 06:20:29 +00:00
steve
6495d0bd5d
Add xlibrary celltable.
2003-04-04 04:59:03 +00:00
steve
47060bfedd
Prevent overrun comparing verinums to zero.
2003-04-03 04:30:00 +00:00
steve
6fcbc0e59a
Fix xz extension of constants.
2003-04-02 04:25:26 +00:00
steve
1ef01b404e
Cope with empty module ports while binding by name.
2003-04-02 03:00:14 +00:00
steve
4987558a56
Mention required readline and termcap libraries.
2003-04-02 02:55:11 +00:00
steve
e4ddf1e8c0
Propagate output of sequential udp like non-blocksing assign.
2003-04-01 05:32:56 +00:00
steve
9531aafaf2
Wide shift of MUX was wrong.
2003-03-31 01:34:19 +00:00
steve
aa9ab7e09c
Fix wrong input constant to bottom of GE.
2003-03-31 00:25:19 +00:00
steve
2be1b1a096
Proper sliced >= comparator.
2003-03-31 00:04:21 +00:00
steve
3878f3c770
Handle wide ports of macros.
2003-03-30 03:43:44 +00:00
steve
6e01d390bf
Export symbols related to parameters.
2003-03-30 01:38:04 +00:00
steve
d18934d444
Sign extend NetMult inputs if result is signed.
2003-03-29 05:51:25 +00:00
steve
4b543de7f9
Add support for division of real operands.
2003-03-28 02:33:56 +00:00
steve
4e182ebf67
Some better internal error messages.
2003-03-26 06:16:38 +00:00
steve
71bd810531
Evaluate > and < in constant expressions.
2003-03-26 06:16:18 +00:00
steve
38ebbd23c7
Handle defaults in synthesized case statements.
2003-03-25 04:04:29 +00:00
steve
9a1612b99b
Scope names can be relative.
2003-03-25 03:00:04 +00:00
steve
f354c43941
Use hash code for scope labels.
2003-03-25 02:15:48 +00:00
steve
a49df16d44
Give proper basenames to PAD signals.
2003-03-24 02:29:04 +00:00
steve
004b377701
Document the virtex2 architecture.
2003-03-24 02:28:38 +00:00
steve
ff032fa18c
Add new virtex2 architecture family, and
...
also the new edif.h EDIF management functions.
2003-03-24 00:47:54 +00:00
steve
20c0d8f3ba
Add bx support for udps.
2003-03-18 01:36:14 +00:00
steve
6b71345142
Add the q edge flag.
2003-03-18 01:32:33 +00:00
steve
b21dba8fc4
Fix warning about uninitialized variable.
2003-03-18 01:21:49 +00:00
steve
1afad677e9
Make a safe copy of const string values.
2003-03-17 23:47:25 +00:00
steve
99b1cb0f74
Implement $itor and $bitstoreal
2003-03-17 21:59:54 +00:00
steve
c602d94cef
Comparison operators do have defined width.
2003-03-15 18:08:43 +00:00
steve
7a752bd111
More resilient WRT right expression width of GT.
2003-03-15 18:07:58 +00:00
steve
90de3904f4
Minor tweaks to iterated rules,
...
Add some missing uninstall removes.
2003-03-15 05:47:51 +00:00
steve
08154ec4d1
Remove excess assignment.
2003-03-15 05:44:50 +00:00
steve
a281675348
free argument iterators.
2003-03-15 05:42:39 +00:00
steve
6d94f2ea55
Better organize the NetESFunc return type guesses.
2003-03-15 04:46:28 +00:00
steve
06d5c8135c
Allow real-valued vpi functions to have arguments.
2003-03-15 04:45:18 +00:00
steve
857ec1079a
Refix vpiRealVal scaling of time.
2003-03-14 18:01:00 +00:00
steve
f2106416a7
Document VPI_TRACE tracing.
2003-03-14 05:35:16 +00:00
steve
380a52cde7
More detail in vpi tracing.
2003-03-14 05:02:34 +00:00
steve
a6e0e34c6e
Streamline parameter string value, get paramete scope.
2003-03-14 05:02:13 +00:00
steve
d34045b904
vpiModule handle of scope is parent scope.
2003-03-14 05:01:22 +00:00
steve
fd4985cc62
Support vpi_get of vpiTimeUnit.
2003-03-14 05:00:44 +00:00
steve
d11ad87c4c
Better message when asserting funky value type.
2003-03-14 04:59:54 +00:00
steve
9e63c88809
Free the iterator when Im done.
2003-03-14 04:58:50 +00:00
steve
e6db4113a5
Warnings about long long time.
2003-03-13 20:31:40 +00:00
steve
c37153b604
Verilog 2001 standart types.
2003-03-13 18:26:12 +00:00
steve
fd95cffad4
remember to uninstall _pli_types.h
2003-03-13 16:33:25 +00:00
steve
8188e8f3bf
Use %p name for all LPM functors.
2003-03-13 06:07:11 +00:00
steve
399b3be499
Declaration warnings.
2003-03-13 05:07:46 +00:00
steve
8d0cb2aa7f
signed/unsigned warnings.
2003-03-13 05:07:10 +00:00
steve
9e9326cc6d
Use rbufs instead of static buffers.
2003-03-13 04:59:21 +00:00
steve
f45fd155c4
Remove the obsolete functor delete functions.
2003-03-13 04:36:57 +00:00
steve
155eb70d65
More details about the Cygwin parts.
2003-03-13 04:35:49 +00:00
steve
963b0c5952
Add a bunch of new acc_ and tf_ functions.
2003-03-13 04:35:09 +00:00
steve
c2ce8bb26b
Add VPI_TRACE tracing of VPI calls.
...
vpi_handle_by_name takes a const char*.
2003-03-13 04:34:18 +00:00
steve
60deeb0182
Donot rely on persistence of format string.
2003-03-12 03:11:00 +00:00
steve
385a688830
Add VPI tracing.
2003-03-12 02:50:32 +00:00
steve
e3dc9ca70b
Move _vpiNexisId safely out of the way.
2003-03-12 02:49:38 +00:00
steve
1222153cdf
Keep parameter constants for the ivl_target API.
2003-03-10 23:40:53 +00:00
steve
7e9095acf2
Add support for $rtoi
2003-03-10 23:40:10 +00:00
steve
654ad4c97e
Direct support for string parameters.
2003-03-10 23:37:07 +00:00
steve
66697ca6e9
Account for constants being vpiParameters.
2003-03-10 20:52:42 +00:00
steve
aff8faf44d
More carful about shifting beyond word size.
2003-03-10 19:14:27 +00:00
steve
f78e014022
Updated mingw build instructions.
2003-03-08 21:00:01 +00:00
steve
2b543ddf16
Missing include ctype.h.
2003-03-08 20:59:41 +00:00
steve
90d1877856
Include LDFLAGS in build lines.
2003-03-08 20:59:23 +00:00
steve
bd8eb7f2ca
Account for bz2 library on Windows.
2003-03-08 20:58:55 +00:00
steve
1507dcd56d
More C-like use of vlltype.
2003-03-08 20:58:18 +00:00
steve
6474c5c9f4
Excess precision breaks some targets.
2003-03-08 01:04:01 +00:00
steve
12d432d94d
Use strtod to convert text to doubles.
2003-03-07 06:10:13 +00:00
steve
258013f99f
Raw dump of double values for testing purposes.
2003-03-07 06:04:58 +00:00
steve
f40ea15cce
Implement $realtobits.
2003-03-07 02:44:33 +00:00
steve
0aaf0218ca
Support vector put of function return values.
2003-03-07 02:44:14 +00:00
steve
5adf99059d
Handle general $function arguments as expresions.
2003-03-07 02:43:32 +00:00
steve
cc1e952d0b
Add means to suppress wveform output
2003-03-06 20:04:42 +00:00
steve
658706ad8b
lex_strings.add module names earlier.
2003-03-06 04:37:12 +00:00
steve
9c973efa9d
Wrong sense of need compared to have.
2003-03-06 04:32:40 +00:00
steve
ef47ea31fa
Use hashed name strings for identifiers.
2003-03-06 04:32:00 +00:00
steve
22d392a75c
Obsolete the ivl_event_name function.
2003-03-06 01:24:37 +00:00
steve
0bf901e9bb
Use number for event labels.
2003-03-06 01:17:46 +00:00
steve
badad63ab4
All NetObj objects have lex_string base names.
2003-03-06 00:28:41 +00:00
steve
26546c1bd8
Fill in required fields when getting time.
2003-03-06 00:27:54 +00:00
steve
17ec5d7891
Use numbers for functor labels.
2003-03-06 00:27:09 +00:00
steve
e6e0396ecb
Restore verireal constructor to match vvp processing of reals.
2003-03-05 03:45:01 +00:00
steve
44748ea86b
Add support for sizes in %f format.
2003-03-05 02:58:04 +00:00
steve
1e73cf82a6
Use sscanf to make doubles from strings.
2003-03-05 02:36:05 +00:00
steve
59f820aacd
Include all libs, not just extra libs.
2003-03-04 03:13:57 +00:00
steve
edffdb5702
Include LDFLAGS on link line.
2003-03-04 03:13:07 +00:00
steve
76a77fdd36
Printed nexus names need not use ivl_nexus_name.
2003-03-03 23:05:49 +00:00
steve
85991e88e8
Support vpiName for system task/function calls.
2003-03-03 03:27:35 +00:00
steve
486274cfa1
Scope names stored only as basename.
2003-03-03 02:22:41 +00:00
steve
679c9c5bfe
Only give scope basename to .scope directives.
2003-03-03 01:48:41 +00:00
steve
c4f57e74ee
.scope directives store only the base names.
2003-03-03 01:47:50 +00:00
steve
4c67de5ca7
Add the lex_strings string handler, and put
...
scope names and system task/function names
into this table. Also, permallocate event
names from the beginning.
2003-03-01 06:25:30 +00:00
steve
411098117a
no whole_archive flag on openbsd.
2003-03-01 06:24:06 +00:00
steve
c2f90ac911
Careful about compiletf calls.
2003-03-01 00:46:13 +00:00
steve
21b0f4955e
Allow read of realvar as int.
2003-02-28 21:20:34 +00:00
steve
970c4950f4
Merge vpi_call and vpi_func draw functions.
2003-02-28 20:21:13 +00:00
steve
feee40603c
Makefile cleanups to better support concurrent make.
2003-02-27 22:13:22 +00:00
steve
3a653c73e7
Add scope type have a vpi_get function.
2003-02-27 21:54:44 +00:00
steve
514bb4a6a9
Handle assign of real values to vectors.
2003-02-27 20:38:12 +00:00
steve
aa3297a925
Add the cvt/vr instruction.
2003-02-27 20:36:29 +00:00
steve
e58030498f
specparams as far as pform.
2003-02-27 06:45:11 +00:00
steve
a275133ff9
LPM objects store only their base names.
2003-02-26 01:29:24 +00:00
steve
c62a53ad27
Document new PLI1 bootstrap interface.
2003-02-26 01:25:51 +00:00
steve
9ceaaa5faf
ivl_lpm_name is obsolete.
2003-02-26 01:24:35 +00:00
steve
e6eded243e
Eliminate use of ivl_lpm_name function.
2003-02-25 03:40:45 +00:00
steve
d8706979ae
Eliminate use of ivl_lpm_name.
2003-02-25 03:39:53 +00:00
steve
5ca6991067
Some error messages around asserts.
2003-02-25 01:17:28 +00:00
steve
fc062c3b63
Add the check make target.
2003-02-24 22:35:56 +00:00
steve
70daee399f
Interactive task calls take string arguments.
2003-02-24 06:35:45 +00:00
steve
7f8433148c
Add to interactive stop mode support for
...
current scope, the ability to scan/traverse
scopes, and the ability to call system tasks.
2003-02-23 06:41:54 +00:00
steve
5b7c1bc7e2
Basic support for system task calls.
2003-02-22 06:32:36 +00:00
steve
2935e28ffb
When checking for stop, remember to reschedule.
2003-02-22 06:26:58 +00:00
steve
94914382c2
portbind adds p, not i, flag.
2003-02-22 04:55:36 +00:00
steve
1951a81a0b
Use ranlib where available, for MacOSX
2003-02-22 04:39:32 +00:00
steve
6fab2e3651
Detect whole_archive flags in configure.
2003-02-22 04:29:14 +00:00
steve
cd572a74ce
Add the portbind warning.
2003-02-22 04:12:49 +00:00
steve
eeb056b8d9
Only include malloc.h if it is present.
2003-02-22 04:04:38 +00:00
steve
19c6bd2139
Check for stopped flag in certain strategic points.
2003-02-22 02:52:06 +00:00
steve
2de0597038
Add vpiStop and interactive mode.
2003-02-21 03:40:35 +00:00
steve
fbac08200d
Make the $stop system task really vpiStop.
2003-02-21 03:24:03 +00:00
steve
a4be33026d
Move dumpon/dumpoff around to the right times.
2003-02-21 01:36:25 +00:00
steve
de4bfe4e4f
Document new -lxt and -vcd extended arguments.
2003-02-20 00:50:28 +00:00
steve
62ef34ea04
Update lxt_write implementation, and add compression control flags.
2003-02-20 00:50:06 +00:00
steve
9e63ed305d
detect -lz and -lbz2 libraries.
2003-02-20 00:49:24 +00:00
steve
3b1cdaa9bf
fullname for accConstant.
2003-02-19 04:37:04 +00:00
steve
ae0788682a
Notes on hte bug database.
2003-02-19 04:36:31 +00:00
steve
d3de1d9c33
Add at least minimal implementations for several
...
acc_ functions. Add support for standard ACC
string handling.
Add the _pli_types.h header file to carry the
IEEE1364-2001 standard PLI type declarations.
2003-02-17 06:39:47 +00:00
steve
ec48049a69
Strict correctness of vpi_free_object results.
2003-02-17 00:58:38 +00:00
steve
8f99365e9a
Use a variant of ivl_dlfcn to do dynamic loading
...
from within the cadpli module.
Change the +cadpli flag to -cadpli, to keep the
plusargs namespace clear.
2003-02-17 00:01:25 +00:00
steve
74192632fa
Permanent allocate vpiSignals more efficiently.
2003-02-16 23:40:05 +00:00
steve
a94ca97d36
NaN in dead zones of VCD dumps.
2003-02-16 23:39:08 +00:00
steve
fe4546498b
Take the global_flag to ivl_dlopen.
2003-02-16 05:42:06 +00:00
steve
7930398a25
Export new symbols.
2003-02-16 05:41:40 +00:00
steve
41e54499c9
Add the cadpli HOWTO.
2003-02-16 02:44:47 +00:00
steve
d8761211a4
Add the cadpli interface module.
2003-02-16 02:23:54 +00:00
steve
f00a6e5419
Change the IV veriusertfs_register to accept table pointers.
2003-02-16 02:23:14 +00:00
steve
66785b7997
Support .vpl files as loadable LIBRARIES.
2003-02-16 02:21:20 +00:00
steve
d0728add45
Make lxt use stringheap to perm-allocate strings.
2003-02-13 18:13:28 +00:00
steve
25d47ec6df
Set dumpoff of real variables to NaN.
2003-02-12 05:28:01 +00:00
steve
83ee6fc818
Support dump of vpiRealVar objects.
2003-02-11 05:21:33 +00:00
steve
2713694338
Include vpiRealVar objects in vpiVariables scan.
2003-02-11 05:20:45 +00:00
steve
32088821c0
Support monitor of real variables.
2003-02-10 05:20:48 +00:00
steve
dcbb8d0780
Add value change callbacks to real variables.
2003-02-10 05:20:10 +00:00
steve
b726395d1e
Spelling fixes.
2003-02-09 23:33:26 +00:00
steve
929f0f5f00
Support C-style comments in read data file.
2003-02-09 05:07:06 +00:00
steve
e571dd90d8
Calculate delay statement delays using elaborated
...
expressions instead of pre-elaborated expression
trees.
Remove the eval_pexpr methods from PExpr.
2003-02-08 19:49:21 +00:00
steve
26b755d544
Fix handling of inline decloration without wire keyword.
2003-02-07 23:16:09 +00:00
steve
79b2beb588
Store real values as native double.
2003-02-07 06:13:44 +00:00
steve
55af069fe8
Rewrite delay statement elaboration of handle real expressions.
2003-02-07 02:49:24 +00:00
steve
f8d1e15a27
NetEBDiv handles real value constant expressions.
2003-02-07 02:47:57 +00:00
steve
7638ec05e7
Handle real value subtract and comparisons.
2003-02-07 02:46:16 +00:00
steve
3c18663c3f
Mke getopt ignore options after the file name.
2003-02-07 02:45:05 +00:00
steve
b230bec586
Properly round inter time values from $time.
2003-02-07 02:44:25 +00:00
steve
a07b3dccc4
Edge of vectors notes.
2003-02-06 17:51:36 +00:00
steve
589422b505
Real constants have no defined vector width
2003-02-06 17:50:23 +00:00
steve
dd56d9a17c
Add the %sub/wr instruction.
2003-02-06 17:41:47 +00:00
steve
68de9bf5d2
Support constant types for thread words.
2003-02-06 17:41:33 +00:00
steve
03afae4da4
Format real values as time.
2003-02-06 17:40:02 +00:00
steve
2637566fe9
Satisfy declaration requirements of some picky compilers.
2003-02-06 16:43:20 +00:00
steve
967eec5786
Rearrange format-string formatting code.
2003-02-04 04:06:36 +00:00
steve
be4be5c650
Add hex and binary formatting of real values.
2003-02-04 04:03:40 +00:00
steve
ce489d8d84
Allow $display of $simtime.
2003-02-03 01:09:20 +00:00
steve
d188e5cd2e
Macros can be expanded in quoted strings.
2003-02-03 00:28:12 +00:00
steve
a45803f00f
Better handling of comments in defines.
2003-02-02 23:54:35 +00:00
steve
9adbdcb7c5
Add support for signed ports and nets.
2003-02-02 19:02:39 +00:00
steve
b0f7c33ab1
Fix missing return from decimal parse.
2003-02-02 18:58:36 +00:00
steve
27f7a00df0
Proper rounding of scaled integer time.
2003-02-02 02:14:14 +00:00
steve
222f15c293
Five vpi_free_object a default behavior.
2003-02-02 01:40:24 +00:00
steve
ff2ec85b61
Fix conversion of signed numbes to long
2003-02-02 00:43:16 +00:00
steve
53f35b5284
Terminate bits string from ivl_expr_bits.
2003-02-02 00:19:27 +00:00
steve
844cfc5137
Allow parameter expressions to be type real.
2003-02-01 23:37:34 +00:00
steve
e3d6c29c8f
Real variables now work, remove from unsupported list.
2003-02-01 23:35:48 +00:00
steve
fec6a10771
Make $time and $realtime available to $display uniquely.
2003-02-01 05:50:04 +00:00
steve
e549a2c5c3
Display $time and $realtime specially.
2003-02-01 05:49:13 +00:00
steve
e941e7e805
Spelling fixes.
2003-01-30 16:23:07 +00:00
steve
8f4afd53a6
include config.h to get iosfwd flags.
2003-01-30 04:23:25 +00:00
steve
9bb27b1e8d
Add missing net_variable.cc to CVS.
2003-01-28 16:23:27 +00:00
steve
971cd51d76
Use more precise pow function to scale time by units.
2003-01-28 04:41:55 +00:00
steve
de4c73abcb
Deliver residual bits of real value.
2003-01-28 04:15:50 +00:00
steve
8f0c02c0fa
Spelling fixes.
2003-01-27 05:09:17 +00:00
steve
04ada23119
Support in various contexts the $realtime
...
system task.
2003-01-27 00:14:37 +00:00
steve
46253ed873
Rework expression parsing and elaboration to
...
accommodate real/realtime values and expressions.
2003-01-26 21:15:58 +00:00
steve
1a9ab8ec84
Remember to save signedness of number.
2003-01-26 21:02:21 +00:00
steve
47db309d30
Support display of real values and constants.
2003-01-26 18:18:36 +00:00
steve
7de4108bad
Add %cvt/ir and %cvt/ri instructions, and support
...
real values passed as arguments to VPI tasks.
2003-01-26 18:16:22 +00:00
steve
9a5a00f836
Add thread word array, and add the instructions,
...
%add/wr, %cmp/wr, %load/wr, %mul/wr and %set/wr.
2003-01-25 23:48:05 +00:00
steve
07a427bf28
Detect null arguments to concatenation operator.
2003-01-19 00:35:39 +00:00
steve
dfc9a9474a
Add a dummy function to reduce confusion on some systems.
2003-01-19 00:03:23 +00:00
steve
54206ef92b
Make sure to use local system.vpi.
2003-01-18 23:56:06 +00:00
steve
ddd43f1378
Add a means to clear the module search path.
2003-01-18 23:55:35 +00:00
steve
38ccb12eb0
Use stringstream in place of sprintf.
2003-01-17 05:49:03 +00:00
steve
ca3bf14fb6
Remove useless variable.
2003-01-17 05:48:35 +00:00
steve
982474899b
Set proper line text for later bison.
2003-01-17 05:48:02 +00:00
steve
ad6ff5562d
Missed a case of setting line on an PEident.
2003-01-17 05:47:30 +00:00
steve
d4cd1dbd27
Keep some debugging status.
2003-01-16 21:44:46 +00:00
steve
3c1426e631
Detect duplicate module declarations.
2003-01-16 21:44:19 +00:00
steve
c3a1a9514f
Assert some task definition sanity.
2003-01-16 21:43:52 +00:00
steve
f56d763411
Move strstream to ostringstream for compatibility.
2003-01-14 21:16:18 +00:00
steve
4ec91047dd
Ignore vvp.exp
2003-01-10 19:02:47 +00:00
steve
0579ae08cd
Add missing vpi entry points.
2003-01-10 19:02:21 +00:00
steve
9074999666
Remove thunks from vpi init.
2003-01-10 19:01:38 +00:00
steve
0458ab5a53
Only use libiberty.h if available.
2003-01-10 19:01:04 +00:00
steve
4a3459c87c
Spelling fixes.
2003-01-10 03:08:13 +00:00
steve
301cbe31ad
Remove vpithunk, and move libvpi to vvp directory.
2003-01-10 03:06:32 +00:00
steve
165dd82bb2
Remove files of vvm directory.
2003-01-10 03:05:05 +00:00
steve
9c3b3246c8
use userdata to save $display argument handles.
2003-01-09 04:10:58 +00:00
steve
6416f8b90e
Add vpi_put_userdata
2003-01-09 04:09:44 +00:00
steve
e6eae5fd15
Allocate res-buf in bigger chunks
2003-01-07 18:07:50 +00:00
steve
aa3a6dba4e
Schedule wait lists of threads as a single event,
...
to save on events. Also, improve efficiency of
event_s allocation. Add some event statistics to
get an idea where performance is really going.
2003-01-06 23:57:26 +00:00
steve
dedae73761
Account for local units in calculated delays.
2002-12-21 19:42:17 +00:00
steve
d7f3d00f5c
Rewrite time formatting to account for local scope.
2002-12-21 19:41:49 +00:00
steve
c2070777b2
The $time system task returns the integer time
...
scaled to the local units. Change the internal
implementation of vpiSystemTime the $time functions
to properly account for this. Also add $simtime
to get the simulation time.
2002-12-21 00:55:57 +00:00
steve
42b34c2ce6
Evaluate shift index after shift operand because
...
the chift operand may use the index register itself.
2002-12-20 01:11:14 +00:00
steve
6fbfdd8f3f
Keep bit select subexpression width if it is constant.
2002-12-19 23:11:29 +00:00
steve
bee3acfd12
Add tf_message, tf_get/setworkarea, and
...
ty_typep functions, along with defines
related to these functions.
2002-12-19 21:37:04 +00:00
steve
2e279b61dd
Update to 0.7 release.
2002-12-14 18:20:14 +00:00
steve
8ab909a765
Add vpi_handle_by_name to the VPI interface,
...
and bump the vpithunk magic number.
2002-12-11 23:55:22 +00:00
steve
cca07fa42d
Account for bison 1.35 and stack manipulations.
2002-12-10 05:49:51 +00:00
steve
5b81798205
install iverilog-vpi as a script.
2002-12-10 05:45:44 +00:00
steve
a8a82df47d
Prepare for 20021207 snapshot
2002-12-08 03:06:30 +00:00
steve
e62e1d89b6
Named event triggers can take hierarchical names.
2002-12-07 02:49:24 +00:00
steve
c032186133
Reword some error messages for clarity.
2002-12-06 03:08:19 +00:00
steve
b89e138404
precalculate r-values of nb assignments and task arguments.
2002-12-05 04:15:14 +00:00
steve
9f80ed32b6
Support bit select in constant expressions.
2002-12-05 02:14:33 +00:00
steve
c16a4a3950
distclean target.
2002-12-04 03:33:38 +00:00
steve
90fa90a508
Mingw32 compatible temp file management.
2002-12-04 03:26:59 +00:00
steve
aaa734690f
Use O_EXCL when opening temp files.
2002-12-04 02:29:36 +00:00
steve
88da7804c4
Improve the bad character error message.
2002-12-04 02:07:00 +00:00
steve
8604f922a5
specify delay can take an unbracketed simple value.
2002-11-26 03:56:10 +00:00
steve
807a758f7c
Do not set width if width is already OK.
2002-11-26 03:35:13 +00:00
steve
ef55086543
Support put of vpiStringVal to signals.
2002-11-25 23:33:45 +00:00
steve
2001903c89
Cygwin doesnot need driver-vpi sibdirectory.
2002-11-24 02:27:28 +00:00
steve
751e4e4c79
Fix instanceRef spelling.
2002-11-24 02:26:14 +00:00
steve
9d91b5db4c
Document the Windows specific flags.
2002-11-23 00:51:53 +00:00
steve
9a3c9507ed
Handle wide AND/NOR devices with Virtex carry logic.
2002-11-22 05:46:06 +00:00
steve
d71d52bfe9
Implement bufif1 as BUFT
2002-11-22 01:45:40 +00:00
steve
8e30bc9f9e
Careful of left operands to shift that are constant.
2002-11-22 00:01:50 +00:00
steve
412518d1ca
Precalculate indices to l-value arrays.
2002-11-21 23:27:51 +00:00
steve
03afbf157b
%set/x0 instruction to support bounds checking.
2002-11-21 22:43:13 +00:00
steve
00b2d467e4
Allow right values of right shift to shift in.
2002-11-21 22:42:48 +00:00
steve
856829d299
Fix const test of msb in assignment l-values.
2002-11-21 18:15:40 +00:00
steve
2fafe6866f
Better handling of select width of shifters.
2002-11-21 18:08:09 +00:00
steve
b9188ad0ca
PATHPULSE specparam assignment syntax.
2002-11-21 17:40:11 +00:00
steve
0ccb9139c9
Magnitude compare to 0.
2002-11-17 23:37:55 +00:00
steve
18e402ddc8
Close old file if $dumpfile is called again.
2002-11-17 22:28:42 +00:00
steve
b82d3165da
Update version strings in spec flie.
2002-11-17 18:38:03 +00:00
steve
91580d1fcc
Generate unique labels for force functors.
2002-11-17 18:31:09 +00:00
steve
35d7384903
Handle default: case in net_inputs for NetCase.
2002-11-16 05:45:41 +00:00
steve
4539632f34
Add vpiScope iterate on vpiScope objects.
2002-11-15 22:14:12 +00:00
steve
0651f246b2
Save vpiFullName results.
2002-11-14 22:43:58 +00:00
steve
6d0dee9341
Add version resources to the Windows binary.
2002-11-13 17:25:10 +00:00
steve
c692f1708c
Allow -mingw and -ivl flags to stand alone.
2002-11-13 17:03:49 +00:00
steve
d91733d32c
Spell the iverilog-vpi target correctly.
2002-11-13 16:57:25 +00:00
steve
cd7378ff3f
Do not truncate high bits of right shift.
2002-11-13 03:03:08 +00:00
steve
c98ce4a029
Add Windows version of iverilog-vpi.
2002-11-13 01:50:11 +00:00
steve
d035a7e92c
spelling error.
2002-11-13 01:49:43 +00:00
steve
6db6359363
Update Solaris packaging to to realities.
2002-11-11 15:49:03 +00:00
steve
5c07a29e46
Install sqrt-virtex.v under Windows.
2002-11-11 01:12:41 +00:00
steve
42d9094e9b
Snapshot 20021109
2002-11-09 23:41:15 +00:00
steve
1742231eba
Handle nested-if chip enables.
2002-11-09 23:29:29 +00:00
steve
3178f886b7
XNF target uses only legacy functors.
2002-11-09 23:29:02 +00:00
steve
cbc4a0ab52
Detect synthesis conflicts blocks statements share outputs.
2002-11-09 20:22:57 +00:00
steve
cfd8cbf850
Port expressions for output ports are lnets, not nets.
2002-11-09 19:20:48 +00:00
steve
013b18b3dc
leading underscore test for Windows more robust.
2002-11-09 06:03:57 +00:00
steve
db9f20b21a
Macos install notes.
2002-11-09 06:03:38 +00:00
steve
f611260089
display octal escapes properly.
2002-11-09 06:01:11 +00:00
steve
e34e3a4875
spelling in a comment.
2002-11-09 02:22:07 +00:00
steve
aa8869a3c7
Postpone parameter width check to evaluation.
2002-11-09 01:40:19 +00:00
steve
588931fcf2
Add dup_expr for user defined function calls.
2002-11-09 00:25:27 +00:00
steve
07e49e215e
Use the vectorized %assign where appropriate.
2002-11-08 05:00:31 +00:00
steve
1b84893ccb
Add the %assign/v0 instruction.
2002-11-08 04:59:57 +00:00
steve
6445bb6915
Handle comments in suppressed code.
2002-11-08 00:04:16 +00:00
steve
db899bd1b5
Use Vector %set to set constants in variables.
2002-11-07 05:19:55 +00:00
steve
c6dcc38fe0
Vectorize load from REG variables.
2002-11-07 03:12:17 +00:00
steve
b0a7909162
functor_set takes bit and strength, not 2 strengths.
2002-11-07 03:11:43 +00:00
steve
d7ae85a13a
Add vector set and load instructions.
2002-11-07 02:32:39 +00:00
steve
46ee38b466
Concatenation can evaluate sub-expressions in place.
2002-11-06 05:41:37 +00:00
steve
bc6a958a50
More reliable iverilog.conf install dependency.
2002-11-06 03:42:40 +00:00
steve
0e751ad975
More forgiving about assignment rval width mismatch.
2002-11-06 03:22:28 +00:00
steve
de94d09706
No need to keep excess width from an
...
unsigned constant value, if it can
be trimmed safely.
2002-11-06 02:25:13 +00:00
steve
2f88a631df
Run output with the vvp command.
2002-11-05 03:49:21 +00:00
steve
4e5dd49a37
Fix mask calculate when MOV_b is right on the word boundary.
2002-11-05 03:46:44 +00:00
steve
8463dcc878
ignore parse.output
2002-11-05 02:19:37 +00:00
steve
18bc2f65b3
Misspelled name.
2002-11-05 02:18:53 +00:00
steve
b4e8ea5a0c
Install shared objects as programs, not data.
2002-11-05 02:14:41 +00:00
steve
06a8087cb5
Do not need _leading underscore on Windows.
2002-11-05 02:14:16 +00:00
steve
a9dfef0f55
Fix the call to FormatMessage under Windows.
2002-11-05 02:12:35 +00:00
steve
e4540c3d0d
Better error message for load failure on Windows.
2002-11-05 02:11:56 +00:00
steve
0cc8396244
Cast for gcc convenience.
2002-11-03 22:44:19 +00:00
steve
946693ad4d
New output files from new bison.
2002-11-03 20:50:33 +00:00
steve
f014d4c533
Update instructions, now that Cygwin handles X:/path strings.
2002-11-03 20:49:57 +00:00
steve
6a1e3f7e27
Slightly more verbose load fail message.
2002-11-03 20:47:23 +00:00
steve
7ad66b0725
Support old/new bison yylloc.
2002-11-03 20:36:53 +00:00
steve
0341c0c727
Error message for mising code generator type.
2002-11-03 20:36:10 +00:00
steve
20c8550139
Compiler error wrt ptrdiff_t.
2002-11-03 20:33:43 +00:00
steve
39aa90ce59
Snapshot 20021102
2002-11-03 02:12:00 +00:00
steve
6c67a64fc3
Get VectorVals from constant values.
2002-11-03 02:07:24 +00:00
steve
86032c0aa5
Allow named events to be referenced by
...
hierarchical names.
2002-11-02 03:27:51 +00:00
steve
f243f694b4
Detect memories without work index in l-value.
2002-11-02 01:10:49 +00:00
steve
276ae3e228
Add the sqrt-virtex example.
2002-11-01 03:29:43 +00:00
steve
fe6756eb07
Fix bottom bit of ADD/SUB device.
2002-11-01 02:36:34 +00:00
steve
539e494bc0
Give nets better names, if available.
2002-11-01 02:36:22 +00:00
steve
1298656c22
Fix up left shift to pass compile,
...
fix up ADD/SUB to generate missing pieces,
Add the asynch set/reset to DFF devices.
2002-10-30 03:58:45 +00:00
steve
c66d319d9c
UPdate to 20021027 snapshot.
2002-10-28 02:26:41 +00:00
steve
ae27165ffe
Add Virtex code generators for left shift,
...
subtraction, and GE comparators.
2002-10-28 02:05:56 +00:00
steve
32f1ca6f8b
draw lpm ff with aset_expr taken into account.
2002-10-23 04:39:35 +00:00
steve
9ce2806710
Fix synth2 handling of aset/aclr signals where
...
flip-flops are split by begin-end blocks.
2002-10-23 01:45:24 +00:00
steve
3d4593d4d5
Synthesizer support for synchronous begin-end blocks.
2002-10-21 01:42:08 +00:00
steve
df5ae54ec7
Handle conditional error cases better.
2002-10-20 19:19:37 +00:00
steve
fbee1b424d
Properly set or clear expression lookaside for binary expressions.
2002-10-20 02:55:37 +00:00
steve
555017b525
Snapshot 20021019
2002-10-19 23:38:49 +00:00
steve
1e170ee005
bourne shell compatibility.
2002-10-19 23:18:52 +00:00
steve
43501809b1
Redo the parameter vector support to allow
...
parameter names in range expressions.
2002-10-19 22:59:49 +00:00
steve
c0c67a101a
Fix spelling of the scalared keyword.
2002-10-13 05:01:44 +00:00
steve
1eb714e097
More verbose eval_const assert message.
2002-10-13 05:01:07 +00:00
steve
54a8e12856
Fix symbol underscore needs for Mac OS X.
2002-10-03 18:03:35 +00:00
steve
6203f05ef9
Add pal target enable help message.
2002-10-03 17:57:54 +00:00
steve
703ad04067
Allow expression lookaside map to spam statements.
2002-09-27 20:24:42 +00:00
steve
778e96330d
Add thread expression lookaside map.
2002-09-27 16:33:34 +00:00
steve
e3eb89fb12
Remove excess debug messages.
2002-09-26 03:42:10 +00:00
steve
166621bcb3
Generate vvp code for asynch set/reset of NetFF.
2002-09-26 03:18:04 +00:00
steve
879a5a4cbe
Synthesize async set/reset is certain cases.
2002-09-26 01:13:14 +00:00
steve
9faabfe995
Fix missing endifs within supressed ifdefs.
2002-09-25 02:23:08 +00:00
steve
6f23fa61ac
Allow results in register bits 47 in certain cases.
2002-09-24 04:20:32 +00:00
steve
30b6cf7821
Include user specified libraries on the link line.
2002-09-24 01:50:53 +00:00
steve
6258011210
More detailed check of process edge events.
2002-09-24 00:58:35 +00:00
steve
7557a46382
Remove some now useless asserts.
2002-09-21 23:47:30 +00:00
steve
a0a91f358c
Snapshot 20020921
2002-09-21 21:29:09 +00:00
steve
0128286966
Allow constant bit selects out of range.
2002-09-21 21:28:18 +00:00
steve
acd5e86e04
Fix disable in arbitrary fork/join situations.
2002-09-21 04:55:00 +00:00
steve
ab94b0a636
disable threads with children.
2002-09-20 03:59:34 +00:00
steve
de6d696667
Add support for cbAfterDelay.
2002-09-20 02:42:11 +00:00
steve
63946c4cfb
More careful cd command.
2002-09-20 02:41:36 +00:00
steve
475b603d15
Relax position constrations of ifdef and friends.
2002-09-19 20:33:27 +00:00
steve
096956cda9
Fix multiple source on the command line.
2002-09-18 23:25:18 +00:00
steve
3d3116d48b
Add support for binary NOR operator.
2002-09-18 04:29:55 +00:00
steve
616360d751
Spelling errors.
2002-09-18 04:08:45 +00:00
steve
7a5c30d297
printf size warning.
2002-09-18 03:34:07 +00:00
steve
9c5ab36a8b
Fix switch case warnings.
2002-09-18 03:33:10 +00:00
steve
466656b167
Allow forward references of memories.
2002-09-18 02:55:18 +00:00
steve
5d6567cb02
Generate vvp code for structural flip-flops.
2002-09-17 05:37:45 +00:00
steve
c44c123ef5
Connect output of block to net_out, instead of statement outputs.
2002-09-17 04:40:28 +00:00
steve
4ecbf56e2b
Account for part select in l-value.
2002-09-17 04:39:20 +00:00
steve
ed9a2c4b3f
Proper initialization of the memories table.
2002-09-17 00:42:22 +00:00
steve
90751b9250
Reject multiple probes on synchronous logic.
2002-09-16 21:55:06 +00:00
steve
7d8011669d
snapshot 20020915
2002-09-16 03:48:56 +00:00
steve
eb81062d85
Add to synth2 support for synthesis of
...
synchronous logic. This includes DFF enables
modeled by if/then/else.
2002-09-16 00:30:33 +00:00
steve
8fbacc966e
compile error.
2002-09-16 00:28:51 +00:00
steve
75801a12e3
Display FF enables.
2002-09-16 00:28:25 +00:00
steve
9f1ce170e6
Generate code for 8:1 muxes msing F5 and F6 muxes.
2002-09-15 21:52:19 +00:00
steve
327c8826f4
Generate Virtex code for 4:1 mux slices.
2002-09-14 05:19:19 +00:00
steve
fb0383d2bd
single bit optimization for != in expressions,
...
and expand ++ and != results if needed.
2002-09-13 04:09:51 +00:00
steve
28725d0d74
Optimize ==1 when in context where x vs z doesnt matter.
2002-09-13 03:12:50 +00:00
steve
dac99b9374
Add support for binary nand operator.
2002-09-12 15:49:43 +00:00
steve
1573477caf
Account for buffer overrun in memory word names.
2002-09-12 15:13:07 +00:00
steve
70a7513781
Support $ in preprocessor identifiers.
2002-09-11 19:42:37 +00:00
steve
0277035496
Fix wrecked rbuf in vpi_get_str of signals and memories.
2002-09-11 16:06:57 +00:00
steve
33f462fdf6
Actually set strength pointer when getting strength val.
2002-09-10 02:27:11 +00:00
steve
639b9f346f
Snapshot 20020907
2002-09-08 01:39:23 +00:00
steve
447fee6f43
Fix padding of operand of unary minus.
2002-09-08 01:37:13 +00:00
steve
c9212a9a09
Implement vpi_remove_cb for cbValueChange.
2002-09-07 04:54:51 +00:00
steve
ea21fab379
Add support for %v is the display system task.
...
Change the encoding of H and L outputs from
the bufif devices so that they are logic x.
2002-09-06 04:56:28 +00:00
steve
4d090b64bd
List tran devices as unsupported.
2002-09-04 16:19:39 +00:00
steve
7e1e44e87a
Properly cast signedness of parameters with ranges.
2002-09-01 03:01:48 +00:00
steve
0a2a9dcd94
Fix leaking vthread bits in ?: eval.
2002-09-01 01:42:34 +00:00
steve
c9b4b66af2
Watch for x indices in l-value of non-blocking assignments.
2002-09-01 00:19:35 +00:00
steve
7b6678b2a1
Fix reverse bit ordered bit select in continuous assignment.
2002-08-31 03:48:50 +00:00
steve
e79f62c5fa
Generate x out for x select on wide muxes.
2002-08-29 03:04:01 +00:00
steve
60046cc790
update for 20020828 snapshot.
2002-08-28 20:30:53 +00:00
steve
3fca25181a
Evaluate nonblocking assign r-values.
2002-08-28 18:54:36 +00:00
steve
cbca31555d
Add the %subi instruction, and use it where possible.
2002-08-28 18:38:07 +00:00
steve
d5aa700b4b
Generate %load/nx for indexed load of nets.
2002-08-28 17:15:35 +00:00
steve
1db8319bce
Add the %load/nx opcode to index vpi nets.
2002-08-28 17:15:06 +00:00
steve
aa390f2a91
Fix l-value indexing of memories and vectors so that
...
an unknown (x) index causes so cell to be addresses.
Fix tangling of label identifiers in the fork-join
code generator.
2002-08-27 05:39:57 +00:00
steve
bd9e66d333
Missing declaration of ivl_memory_scope.
2002-08-24 05:03:40 +00:00
steve
c34e318f8c
Fix = vs == error.
2002-08-24 05:02:58 +00:00
steve
4fc858b676
Fix missing semi-colon warning.
2002-08-24 05:02:37 +00:00
steve
ac8b582b3d
Rewire time formatting to handle all cases.
2002-08-24 02:02:44 +00:00
steve
6f748d3d4f
Macro arguments not supported.
2002-08-24 00:52:49 +00:00
steve
2854a524f0
Watch signed comparisons, that lead to infinite loops.
2002-08-22 23:34:52 +00:00
steve
985c34bfd9
Fix behavioral eval of x?a:b expressions.
2002-08-22 03:38:40 +00:00
steve
63f97d8ec6
Carry mux output delays.
2002-08-21 02:28:03 +00:00
steve
d2ac85e2c7
Copy gate delays when doing gate delay substitutions.
2002-08-20 04:12:22 +00:00
steve
1b42f6232f
Support parameters with defined ranges.
2002-08-20 04:11:53 +00:00
steve
4de141ab1d
Support parameters with defined ranges.
2002-08-19 02:39:16 +00:00
steve
8ab2ec6f86
Allow release to handle removal of target net.
2002-08-19 00:06:11 +00:00
steve
2fad8d4cff
Detect temporaries in sequential block synthesis.
2002-08-18 22:07:16 +00:00
steve
d94b0fe3c8
Terminate if the functors signal errors.
2002-08-18 22:06:29 +00:00
steve
98956ef88f
Snapshot 20020817
2002-08-18 01:07:05 +00:00
steve
ac21d96bd8
x in index values leads to 0.
2002-08-18 01:05:50 +00:00
steve
c794aa02b8
Fix intermix of node functors and node delete.
2002-08-16 05:18:27 +00:00
steve
dd564ab321
add dumpvars_compiletf to check first argument.
2002-08-15 02:12:20 +00:00
steve
c0046e845e
Handle special case of empty system task argument list.
2002-08-15 02:11:54 +00:00
steve
640767b748
Constants can self-size themselves in unsized contexts.
2002-08-14 03:57:27 +00:00
steve
d4eaede435
Do not elide named blocks.
2002-08-13 05:35:00 +00:00
steve
52bf4e613f
conditional ident string using autoconfig.
2002-08-12 01:34:58 +00:00
steve
9533a8dbdf
Escape the backslash in the windows file name.
2002-08-12 01:27:48 +00:00
steve
774f78cd3e
Autoconfig ident support.
2002-08-12 00:27:10 +00:00
steve
aca1dcf848
Add missing Log and Ident strings.
2002-08-11 23:47:04 +00:00
steve
d24cd015b6
Remove VVM option.
2002-08-11 23:39:33 +00:00
steve
4d41525a91
No longer any nead for -rdynamic flag
2002-08-10 22:36:59 +00:00
steve
b170a85fef
Kill links to vvm.
2002-08-10 22:27:13 +00:00
steve
90c6bc3a61
Add attributes documentation.
2002-08-10 22:27:00 +00:00
steve
a4f6217a2f
Missing symbols for mingw.
2002-08-10 22:23:22 +00:00
steve
faff19af7b
vvp.pdf comes from the man page.
2002-08-10 22:12:01 +00:00
steve
bc86bd4efa
Remove useless error messages.
2002-08-10 22:07:38 +00:00
steve
b4b18f3f30
Observe attributes to control synthesis.
2002-08-10 22:07:08 +00:00
steve
1bcacf06d4
The default attribute value is 1.
2002-08-10 21:59:39 +00:00
steve
27178cedda
Allow vpiIntegerVar as parameter to $value$plusarg
2002-08-10 17:00:31 +00:00
steve
6151d796a2
More unsupported items in the list.
2002-08-10 16:57:27 +00:00
steve
6ace9659e0
Get local StringHeap.h
2002-08-07 02:36:10 +00:00
steve
14942b4b43
Dead code.
2002-08-07 02:17:14 +00:00
steve
9ede67ea63
List net delays as unsupported.
2002-08-07 02:07:12 +00:00
steve
cc74d2a6b0
Add force to nets.
2002-08-07 00:54:39 +00:00
steve
ea779ac7dd
Documentation, and excessive inlines.
2002-08-07 00:54:20 +00:00
steve
693e9e5ad0
Store only the base name of memories.
2002-08-05 04:18:45 +00:00
steve
a1bc8ca6ca
Snapshot 20020804
2002-08-04 22:47:23 +00:00
steve
4e753a2c15
dll uses StringHeap for named items.
2002-08-04 19:13:16 +00:00
steve
89314d4772
Do not use hierarchical names of memories to
...
generate vvp labels. -tdll target does not
used hierarchical name string to look up the
memory objects in the design.
2002-08-04 18:28:14 +00:00
steve
41f7ecacfc
Eliminate use of ivl_signal_name for signal labels.
2002-08-03 22:30:48 +00:00
steve
dd8da912f5
Fix suffix parsing of library index.
2002-08-03 22:30:00 +00:00
steve
65ad911a2a
Grammer fixes.
2002-08-02 01:52:02 +00:00
steve
37331d1c1b
Add port name to pin size error message.
2002-07-31 23:55:38 +00:00
steve
db2c842d15
Account for the tail readonly callbacks.
2002-07-31 03:22:44 +00:00
steve
c0e22a6533
Set vpi_mode_flag to represent cpReadOnlySync actions.
2002-07-31 03:22:23 +00:00
steve
bb87c368b8
Asynchronous synthesis of sequential blocks.
2002-07-29 00:00:28 +00:00
steve
76665b9404
Fix NetBlock destructor to delete substatements.
2002-07-28 23:58:44 +00:00
steve
a265ba2162
dump NOT gates.
2002-07-28 23:57:22 +00:00
steve
461a0fa2fb
$attribute deprecation note.
2002-07-26 02:08:02 +00:00
steve
e51bbcb85a
Add monitoron and monitoroff system tasks.
2002-07-25 03:35:51 +00:00
steve
58ec62c895
Rewrite find_similar_event to support doing
...
all event matching and replacement in one
shot, saving time in the scans.
2002-07-24 16:24:45 +00:00
steve
843e1f9c44
Save event matching for nodangle.
2002-07-24 16:22:59 +00:00
steve
45382144c3
Verbose messages.
2002-07-24 16:21:52 +00:00
steve
e2f537628f
integral type/ptrdiff_t warning.
2002-07-23 15:11:41 +00:00
steve
91baa938e2
Fix display of no arguments.
2002-07-23 02:41:15 +00:00
steve
7fcaeacd65
Careful not to overrun vector buffer.
2002-07-23 02:36:34 +00:00
steve
2478d6f5d3
Set ivl_target delays for case compare logic.
2002-07-22 21:07:40 +00:00
steve
fbc1f6fb81
Initialize the lcounter_ to 0.
2002-07-22 21:07:08 +00:00
steve
57aee7ca26
Add vpi_chk_error and vpi_control functions.
2002-07-19 01:57:26 +00:00
steve
2fcfe9f2c3
vpi_iterate returns 0 on error.
2002-07-19 01:12:50 +00:00
steve
2df2619029
Support put of wide vpiVectorVal to signal.
2002-07-19 00:36:36 +00:00
steve
9260d0d245
New e-mail address for Yasuhisa Kato
2002-07-18 02:18:30 +00:00
steve
15becdaee4
Need driver for sure in assign feedback and other cases.
2002-07-18 02:06:37 +00:00
steve
80c9db3c88
Careful with assign to self.
2002-07-18 00:24:22 +00:00
steve
c5d03d3a25
Fix uninitialized thread pointer in named event.
2002-07-17 18:30:01 +00:00
steve
9e1570dc80
Implementation of vpi_handle_by_name, and
...
add the vpiVariables iterator.
2002-07-17 05:13:43 +00:00
steve
68da84e84a
Allow wide rvalues assigned to narrow nex_out.
2002-07-16 04:40:48 +00:00
steve
18ba73382e
Fix check for select size.
2002-07-16 03:15:11 +00:00
steve
dabbfdb80a
Fix dangling pointer in pop_scope.
2002-07-15 03:57:30 +00:00
steve
4eea8720a0
Improve temporary file name guess.
2002-07-15 00:33:50 +00:00
steve
41239078a9
Fix initialization of symbol table string heap.
2002-07-15 00:21:42 +00:00
steve
e375078dda
Infinite loop in nex_input of NetBlock objects.
2002-07-14 23:47:58 +00:00
steve
da6b4c447f
No longer need the .exe on generated files.
2002-07-14 23:32:31 +00:00
steve
b72c0a0089
Do temp file creation by hand.
2002-07-14 23:11:35 +00:00
steve
fbaf8f91bb
Fix vpiScope iterator.
2002-07-14 02:52:05 +00:00
steve
329e943e4e
Use result buf for event and scope names.
2002-07-12 18:23:30 +00:00
steve
31bd3e6056
Use all bits of ?: condit expression.
2002-07-12 18:10:45 +00:00
steve
15b94050ce
Remember to scan IntegerVars.
2002-07-12 17:09:21 +00:00
steve
c610699227
Eliminate use of vpiInternalScope.
2002-07-12 17:08:13 +00:00
steve
f0d2e20342
Scan scope objects before subscopes.
2002-07-12 17:02:38 +00:00
steve
26a80005d6
Fix typo.
2002-07-12 16:30:44 +00:00
steve
5cf033a6ad
Remove vvm files from spec file.
2002-07-12 04:05:50 +00:00
steve
e41ee7632d
Document the IVERILOG_DUMPER variable.
2002-07-12 02:35:35 +00:00
steve
66a86433e7
Make types array static, not on stack.
2002-07-12 02:10:20 +00:00
steve
2354a90e9f
Eliminate use of vpiInternalScope.
2002-07-12 02:08:10 +00:00
steve
b7aaf51fbd
vpiIntegerVars can have callbacks.
2002-07-12 02:07:36 +00:00
steve
5a885165b2
vpi_iterate return null if there is nothing to iterate.
2002-07-12 02:04:44 +00:00
steve
a748604418
Library dir case insensitivity includes the suffix.
2002-07-10 04:34:18 +00:00
steve
e1a4e27173
Dynamic resizevpi result buf in more places.
2002-07-09 03:24:37 +00:00
steve
2b06a293b6
Fix split of root btree node.
2002-07-09 03:20:51 +00:00
steve
472f98affe
Generate code for wide muxes.
2002-07-08 04:04:07 +00:00
steve
8114523be2
Asynchronous synthesis of case statements.
2002-07-07 22:32:15 +00:00
steve
33ee1da817
Smart synthesis of binary AND expressions.
2002-07-07 22:31:39 +00:00
steve
301040a67a
Avoid emitting to vvp local net symbols.
2002-07-05 21:26:17 +00:00
steve
54b96ea7bd
Count different types of functors.
2002-07-05 20:08:44 +00:00
steve
d0dfe2e7e7
Allow set of output name.
2002-07-05 17:17:20 +00:00
steve
fd8ceac170
Names of vpi objects allocated as vpip_strings.
2002-07-05 17:14:15 +00:00
steve
a05d8c2823
Symbol table uses more efficient key string allocator,
...
and remove all the symbol tables after compile is done.
2002-07-05 04:40:59 +00:00
steve
626f418ab0
Track opcode memory space.
2002-07-05 03:46:43 +00:00
steve
5792220dcb
Remove the vpi object symbol table after compile.
2002-07-05 02:50:57 +00:00
steve
29d5d44f03
More detailed Mac OS X instructions.
2002-07-04 16:37:59 +00:00
steve
b2762f63a2
Fix s_vpi_vecval array byte size.
2002-07-04 16:37:07 +00:00
steve
7d97f8a964
initial statements are not asynchronous.
2002-07-04 00:24:16 +00:00
steve
d3e63088d8
Dynamic size result buffer for _str and _get_value functions.
2002-07-03 23:39:57 +00:00
steve
dddaa0ebcf
More configure information in iverilog-vpi.
2002-07-03 23:20:12 +00:00
steve
ccbb1e5f5a
don't pollute name space
...
fix vecval for Z/X cases
2002-07-03 23:16:27 +00:00
steve
3f1cd14f6c
Fix scope search for events.
2002-07-03 05:34:59 +00:00
steve
70abb2ce5c
Clear drive cache on link or unlink.
2002-07-03 03:08:47 +00:00
steve
3f80bead1b
vpiName, vpiFullName support in memory types,
...
length checks for *_get_str() buffers,
temporary buffers for *_get_str() data,
dynamic storage for vpi_get_data() in memory types
shared with signal white space
2002-07-03 02:09:38 +00:00
steve
93bb4283b8
Change the signal to a net when assignments go away.
2002-07-02 03:02:57 +00:00
steve
5b5b31286b
Include synth2 in synthesis targets.
2002-07-02 03:02:02 +00:00
steve
c5bde6560c
Limit word writing to vector limits.
2002-07-01 15:36:12 +00:00
steve
cb4eb6236c
Ignore generated pdf and ps files.
2002-07-01 03:54:08 +00:00
steve
d5e9e13555
synth_asych of if/else requires redirecting the target
...
if sub-statements. Use NetNet objects to manage the
situation.
2002-07-01 00:54:21 +00:00
steve
3595b6d186
Carry can propagate to the otp in addi.
2002-07-01 00:52:47 +00:00
steve
210010a390
Get vpiVectorVal for memories.
2002-06-30 04:35:47 +00:00
steve
99b3cc4464
vpiVectorVal of very wide signals.
2002-06-30 02:52:36 +00:00
steve
9b6b081e38
Add structure for asynchronous logic synthesis.
2002-06-30 02:21:31 +00:00
steve
b54ee3b1cd
Fix mishandling of incorect defparam error message.
2002-06-25 02:39:34 +00:00
steve
9fc4e1eddd
Cache calculated driven value.
2002-06-25 01:33:22 +00:00
steve
73cca6ec39
include malloc.h only when available.
2002-06-25 01:33:01 +00:00
steve
58c2e12507
Make link_drive_constant cache its results in
...
the Nexus, to improve cprop performance.
2002-06-24 01:49:38 +00:00
steve
6dd80611a1
Export ivl_signal_integer fro windows.
2002-06-23 20:41:19 +00:00
steve
c2132039d2
Variable substitution in command files.
2002-06-23 20:10:51 +00:00
steve
d8d07eb129
trivial performance boost.
2002-06-23 18:23:09 +00:00
steve
f9768cd579
spelling error.
2002-06-23 18:22:43 +00:00
steve
b6a15b2f4d
Wide unary minus in continuous assignments.
2002-06-22 04:22:40 +00:00
steve
5eca5d9948
Carry integerness throughout the compilation.
2002-06-21 04:59:35 +00:00
steve
f4a4ee00d0
Add support for special integer vectors.
2002-06-21 04:58:55 +00:00
steve
cd94019733
Remove NetTmp and add NetSubnet class.
2002-06-19 04:20:03 +00:00
steve
d7fb47268f
Shuffle link_drivers_constant for speed.
2002-06-19 04:18:46 +00:00
steve
b4b5ac9944
Normalize run-time index expressions for bit selects
2002-06-16 20:39:12 +00:00
steve
df0b81d94d
Generate runtime code to normalize indices.
2002-06-16 19:19:16 +00:00
steve
067d09720c
Rounding error.
2002-06-15 02:35:49 +00:00
steve
870c35eece
sign extend signed vectors vpiIntVal.
2002-06-14 22:05:28 +00:00
steve
a82c178fd9
Fix expression width for repeat concatenations.
2002-06-14 21:38:41 +00:00
steve
809bd18e66
Uninstall removed ivl from libdir.
2002-06-14 04:17:12 +00:00
steve
4f0ffa2258
Compiler portability.
2002-06-14 03:25:51 +00:00
steve
f45b17973c
Add acc_fetch_argc/argv/version (mruff)
2002-06-11 15:19:12 +00:00
steve
0bbea355c2
More specify syntax.
2002-06-11 13:58:04 +00:00
steve
2be3507422
Stub value change callbacks for consts and modules.
2002-06-11 03:47:34 +00:00
steve
d6c946f390
Spelling patch (Larry Doolittle)
2002-06-11 03:34:33 +00:00
steve
96b6eb6b30
Get tf_asynchon/off name right.
2002-06-11 03:29:14 +00:00
steve
9cef973d9b
Add NetRamDq synthsesis from memory l-values.
2002-06-08 23:42:46 +00:00
steve
88722a2831
Add tf_putlongp and tf_putp.
2002-06-07 16:21:12 +00:00
steve
d6b5c67313
Add a bunch of acc/tf functions. (mruff)
2002-06-07 02:58:58 +00:00
steve
4fed9d6532
Simply give up on constants with indices.
2002-06-07 02:57:54 +00:00
steve
28e0616543
Use standard name for iostream.
2002-06-06 18:57:18 +00:00
steve
6173e6b78a
Better error for identifier index eval.
2002-06-06 18:57:04 +00:00
steve
b5018cd994
distclean rm some generated makefiles.
2002-06-06 18:48:02 +00:00
steve
f19a7c617d
improved uninstall target.
2002-06-05 18:52:14 +00:00
steve
53d8cdd9f8
Add support for memory words in l-value of
...
non-blocking assignments, and remove the special
NetAssignMem_ and NetAssignMemNB classes.
2002-06-05 03:44:25 +00:00
steve
4bac5c06ba
Dump l-value memory indices.
2002-06-05 03:43:14 +00:00
steve
91a755d0e8
Add support for memory words in l-value of
...
blocking assignments, and remove the special
NetAssignMem class.
2002-06-04 05:38:43 +00:00
steve
8cae7a4d44
Add misctf support to libveriuser
2002-06-04 01:42:58 +00:00
steve
11d1c45e45
Add asynchon and asynchoff
2002-06-04 01:40:03 +00:00
steve
5454a15b94
Fix return type of tf_getinstance.
2002-06-03 21:52:59 +00:00
steve
3ad0ec77ce
Add verinum != operator.
2002-06-03 04:04:24 +00:00
steve
3966e852ac
Ignore memories and named events.
2002-06-03 03:56:06 +00:00
steve
83bfa9345f
compile warnings.
2002-06-03 03:55:14 +00:00
steve
7d1d3847d8
Better typing for veriusertfs table.
2002-06-03 00:08:42 +00:00
steve
a91c4f66ce
Check for null pointers from users.
2002-06-02 19:05:50 +00:00
steve
ca2486ea61
Add acc_handle_tfarg and acc_next_topmode
2002-06-02 19:03:29 +00:00
steve
24a2487c18
Generate %cmpi/u where appropriate.
2002-06-02 18:57:17 +00:00
steve
d68153dea3
Add %cmpi/u instruction.
2002-06-02 18:55:58 +00:00
steve
89329fc0cc
Add tf_getinstance function.
2002-06-02 18:54:59 +00:00
steve
cba5a22714
Generate %muli instructions when possible.
2002-05-31 20:04:57 +00:00
steve
1ce50993f0
Add the %muli instruction.
2002-05-31 20:04:22 +00:00
steve
2c0c934ad5
Add tf_getlongtime (mruff)
2002-05-31 18:25:51 +00:00
steve
b6db8b63ec
Check for and don't dereference null pointers,
...
Avoid copy of static objects.
(mruff)
2002-05-31 18:21:39 +00:00
steve
f1ab9e63fa
Add support for $timeformat.
2002-05-31 04:26:54 +00:00
steve
12c574d5c9
Call padding reserved.
2002-05-31 04:26:44 +00:00
steve
af6f0c800f
Slight improvement in %mov performance.
2002-05-31 04:09:58 +00:00
steve
48f65cef40
Word oriented bit storage.
2002-05-31 00:05:49 +00:00
steve
b5a1d116fa
Add the veriusertf_register funciton.
2002-05-30 02:37:26 +00:00
steve
b9339d3c60
Add tf_nump from mruff.
2002-05-30 02:12:17 +00:00
steve
0838dd24a4
Add tf_error and tf_warning from mruff
2002-05-30 02:10:08 +00:00
steve
9537fd7f0b
Implement acc_product_version.
2002-05-30 02:06:05 +00:00
steve
95876feb46
Use addi with wide immediate values.
2002-05-30 01:57:23 +00:00
steve
19d817503d
Offset lvalue index expressions.
2002-05-29 22:05:54 +00:00
steve
b6b364a09d
Add %addi, which is faster to simulate.
2002-05-29 16:29:34 +00:00
steve
f704d4d3ff
Use binary search to speed up deep lookups.
2002-05-29 05:37:35 +00:00
steve
450b9ab85c
Callbacks can happen during calltf functions.
2002-05-28 22:55:20 +00:00
steve
a1774bd3bd
ivl indexes the search path for libraries, and
...
supports case insensitive module-to-file lookup.
2002-05-28 20:46:51 +00:00
steve
5aa69516bb
ivl indexes the search path for libraries, and
...
supports case insensitive module-to-file lookup.
2002-05-28 20:40:37 +00:00
steve
c594dcec52
Add new iverilog-vpi man page.
2002-05-28 05:21:30 +00:00
steve
8126384726
ignore generated iverilog-vpi files.
2002-05-28 05:21:13 +00:00
steve
96e6a9b02f
Update to new capabilities.
2002-05-28 05:20:41 +00:00
steve
d44ff4fd91
Pass library paths through -Cfile instead of command line.
2002-05-28 02:25:03 +00:00
steve
9a4ee873e1
Add the ivl -C flag for bulk configuration
...
from the driver, and use that to run library
modules through the preprocessor.
2002-05-28 00:50:39 +00:00
steve
597ed1681a
Predefine __ICARUS__
2002-05-27 23:14:06 +00:00
steve
bcd49b94dd
Able to disable thread self.
2002-05-27 00:53:10 +00:00
steve
422754f36f
Support carrying the scope of named begin-end
...
blocks down to the code generator, and have
the vvp code generator use that to support disable.
2002-05-27 00:08:45 +00:00
steve
bfad382fd1
Carry Verilog 2001 attributes with processes,
...
all the way through to the ivl_target API.
Divide signal reference counts between rval
and lval references.
2002-05-26 01:39:02 +00:00
steve
8941a594ee
include iostream for gcc 3.1
2002-05-25 16:51:37 +00:00
steve
6bd8ab46d5
Eval ^ and &0 expressions.
2002-05-25 16:43:47 +00:00
steve
57f2ad6d15
Better padding of constants.
2002-05-25 16:43:22 +00:00
steve
33efeca0da
Only match plusargs.
2002-05-24 21:46:21 +00:00
steve
be1888ed5f
Implement mc_scan_plusargs.
2002-05-24 20:29:07 +00:00
steve
6ede18d41c
support GCC __attributes__ for printf formats.
2002-05-24 19:05:30 +00:00
steve
d63e994ea5
Detect long division by zero.
2002-05-24 04:55:13 +00:00
steve
700887d657
Verilog 2001 attriubtes on nets/wires.
2002-05-24 04:36:23 +00:00
steve
42674be38b
Support language generation flag -g.
2002-05-24 01:13:00 +00:00
steve
fde7cd8f10
Add support for $bits (SystemVerilog)
2002-05-24 00:44:54 +00:00
steve
7ce713356e
Define SIZEOF_UNSIGNED_LONG_LONG
2002-05-24 00:43:16 +00:00
steve
6511fc610b
Add the acc_user.h header file.
2002-05-23 03:46:42 +00:00
steve
8dd4f77f3f
Add the io_printf function to libveriuser.
2002-05-23 03:35:42 +00:00
steve
004bfad348
Link the veriuser library.
2002-05-23 03:35:05 +00:00
steve
ff90a5735d
Export the vpi_vprintf function.
2002-05-23 03:34:46 +00:00
steve
e6c0629626
Add language support for Verilog-2001 attribute
...
syntax. Hook this support into existing $attribute
handling, and add number and void value types.
Add to the ivl_target API new functions for access
of complex attributes attached to gates.
2002-05-23 03:08:50 +00:00
steve
01efffedfc
Ignore Named events in vcd signal scan.
2002-05-23 01:07:26 +00:00
steve
74c219f171
Add ranges and signed to port list declarations.
2002-05-20 02:06:01 +00:00
steve
bf10c5762a
Parse port_declaration_lists from the 2001 Standard.
2002-05-19 23:37:28 +00:00
steve
ca9abaf0c5
Start the libveriuser library.
2002-05-19 05:21:00 +00:00
steve
cfab250671
Add callbacks for vpiNamedEvent objects.
2002-05-19 05:18:16 +00:00
steve
b1c0f7306d
Add vpi support for named events.
...
Add vpi_mode_flag to track the mode of the
vpi engine. This is for error checking.
2002-05-18 02:34:11 +00:00
steve
a156d8b8ce
Add vpiIndex update.
2002-05-17 16:13:08 +00:00
steve
a7b7781fe9
Rewire vpiMemory and vpiMemoryWord handles to
...
support proper iteration of words, and the
vpiIndex value.
2002-05-17 04:12:19 +00:00
steve
21fe6afe8d
null terminate the reversed decimal string
2002-05-17 04:05:38 +00:00
steve
48da46986b
Support set by string for reg objects.
2002-05-15 04:48:46 +00:00
steve
8d6239301f
Count compile errors.
2002-05-15 01:25:25 +00:00
steve
2e6807493f
Make clean should remove iverilog-vpi.
2002-05-15 01:25:07 +00:00
steve
94cef20e49
task calls and forks push the thread event in the queue.
2002-05-12 23:44:41 +00:00
steve
c787a36af2
Accept errors in memory index expression.
2002-05-12 19:16:58 +00:00
steve
da0c4c7565
Get thread vectors by vpiIntVal.
2002-05-12 00:32:21 +00:00
steve
9c28f085d8
Set and get memory words by string value.
2002-05-11 04:39:35 +00:00
steve
e9af0c7485
Support scope iterate over vpiNet,vpiReg/vpiMemory.
2002-05-10 16:00:57 +00:00
steve
be54bfdc21
ignore vpiMemory objects in vcd dumper.
2002-05-10 16:00:16 +00:00
steve
c6a6f4bc79
Allow for C++ source files.
2002-05-10 03:54:46 +00:00
steve
88ae1b7b3c
Handle null time and calltf pointers.
2002-05-09 03:34:31 +00:00
steve
f5d3b78653
Use else clause instead of ! to preface wait events.
2002-05-07 05:06:07 +00:00
steve
68f1316eba
Fix uninitialized memory accesses.
2002-05-07 04:15:43 +00:00
steve
e70e04d6e8
Handle x case of unary ! properly.
2002-05-07 03:49:58 +00:00
steve
a3eb6868ea
Allow parameters in concatenation of widths are defined.
2002-05-06 02:30:27 +00:00
steve
186759c95e
Do not need mangle.o unless vvm us used.
2002-05-06 00:50:38 +00:00
steve
8667b9a35d
Put off evaluation of concatenation repeat expresions
...
until after parameters are defined. This allows parms
to be used in repeat expresions.
Add the builtin $signed system function.
2002-05-05 21:11:49 +00:00
steve
00defb0265
Credit for Mike Ruff amd Mike Runyan.
2002-05-04 03:19:35 +00:00
steve
822a085d97
Properly free vpi callback objects.
2002-05-04 03:17:29 +00:00
steve
f23aec7f14
Add simulator event callbacks.
2002-05-04 03:03:17 +00:00
steve
fb457128bf
Add vpiModule iterator to vpiScope objects.
2002-05-03 15:44:11 +00:00
steve
d126a414bd
Spelling errors.
2002-04-30 04:26:42 +00:00
steve
844fe3b9bc
Trim leading nulls from string forms.
2002-04-27 23:26:24 +00:00
steve
271855377f
Support drawing vpiBinaryConst in hex.
2002-04-27 22:36:39 +00:00
steve
84020b16e3
Preserve stringiness string part select and concatenation.
2002-04-27 05:03:46 +00:00
steve
c6035ab06e
If the verinum is already right, no need to reset it.
2002-04-27 04:49:27 +00:00
steve
d94a40ecd9
Display string verinums as strings.
2002-04-27 04:48:43 +00:00
steve
c3be17ccae
Dump parametres for system functions.
2002-04-27 04:20:52 +00:00
steve
10dc978778
Fixup eval of signed constants.
2002-04-27 03:17:15 +00:00
steve
7f8f0eb65a
Support selecting bits from parameters.
2002-04-27 02:38:04 +00:00
steve
c7107dc973
Evaluate constant bit select of constants.
2002-04-25 05:04:31 +00:00
steve
74eb544962
Dump bit select expressions.
2002-04-25 05:03:11 +00:00
steve
0696e3d558
Agressively evalutate case expressions.
2002-04-24 17:40:48 +00:00
steve
714ca3542d
Fix compile time eval of signed <= signed.
2002-04-24 02:47:02 +00:00
steve
7e27217dac
add -Wno- arguments to the driver.
2002-04-24 02:02:31 +00:00
steve
4a7e14786c
Tail size was wrong.
2002-04-23 05:18:05 +00:00
steve
1ddb736f4c
Handle bitsel muxes of odd shaped outputs.
2002-04-23 05:06:31 +00:00
steve
9ef49379f4
Add support for non-constant bit select.
2002-04-23 03:53:59 +00:00
steve
96213fe0ac
Keep delays applied to BUFZ devices.
2002-04-22 03:15:25 +00:00
steve
d482da4803
Reduce the while loop expression if needed.
2002-04-22 02:41:30 +00:00
steve
4502da608d
Dump the while loop expression.
2002-04-22 02:40:32 +00:00
steve
0976fd393b
Do not allow implicit wires in sensitivity lists.
2002-04-22 00:53:39 +00:00
steve
5882c6a481
Redo handling of assignment internal delays.
...
Leave it possible for them to be calculated
at run time.
2002-04-21 22:31:02 +00:00
steve
52ea13819a
Add the assign/d instruction for computed delays.
2002-04-21 22:29:49 +00:00
steve
048d044fdc
Functions really do work.
2002-04-21 22:29:19 +00:00
steve
9dda15a186
implement nex_input for behavioral statements.
2002-04-21 17:43:12 +00:00
steve
b094bbdcf4
Add support for conbinational events by finding
...
the inputs to expressions and some statements.
Get case and assignment statements working.
2002-04-21 04:59:07 +00:00
steve
eb708c1540
Support specified times in cbReadOnlySync, and
...
add support for cbReadWriteSync.
Keep simulation time in a 64bit number.
2002-04-20 04:33:23 +00:00
steve
47a3b1f744
the command is gtkwave.
2002-04-20 02:42:58 +00:00
steve
76b5d7e9e1
Fix first_file test for timescale warning.
2002-04-18 18:38:37 +00:00
steve
0071c9b0aa
More examples.
2002-04-18 03:25:16 +00:00
steve
0ab42597d9
Timescale warnings.
2002-04-15 00:04:22 +00:00
steve
95ccc1e904
lexor support for huge decimal numbers.
2002-04-14 21:42:01 +00:00
steve
ea44866b2f
Evaluate logical not at elaboration time.
2002-04-14 21:16:48 +00:00
steve
6d4c6b56f6
Fix constant evaluation of unary
2002-04-14 19:28:47 +00:00
steve
f03ec88c2a
Handle empty true case of conditional statements.
2002-04-14 19:19:21 +00:00
steve
e630ecdb0d
Ternary expressions can be signed.
2002-04-14 19:02:34 +00:00
steve
eb27dc8db3
Support signed integer division.
2002-04-14 18:41:34 +00:00
steve
5cf7355c91
Precalculate unary - if possible.
2002-04-14 03:55:25 +00:00
steve
84bf0cee59
Vector constants to vpi_call can have sign.
2002-04-14 03:54:40 +00:00
steve
a18662ed13
Allow signed constant vectors for call_vpi parameters.
2002-04-14 03:53:20 +00:00
steve
3275d1f252
Support signed expressions through to VPI.
2002-04-14 02:56:19 +00:00
steve
b14a0b885a
Fix bug removing pairs of ones in XOR.
2002-04-14 02:51:37 +00:00
steve
e95a902b3d
Show unary subexpressions.
2002-04-14 02:44:53 +00:00
steve
6733f7625b
Detect missing indices to memories (PR#421)
2002-04-13 02:33:17 +00:00
steve
f7f61a8696
Detect mismatches in reg as module items and ports.
2002-04-12 02:57:08 +00:00
steve
e1a6bb10de
Formally define extended arguments to vvp.
2002-04-12 02:44:02 +00:00
steve
07bee5ca72
Add $plusargs system functions.
2002-04-07 04:37:53 +00:00
steve
fa97ba0d9a
Set vpip_cur_task while calling compileft
2002-04-07 02:34:10 +00:00
steve
bc95b02854
make install for iverilog-vpi
2002-04-07 00:50:13 +00:00
steve
1893e7c8e5
Add the iverilog-vpi command.
2002-04-07 00:47:10 +00:00
steve
0c04e2976b
minor cleanup of formatting.
2002-04-07 00:46:21 +00:00
steve
ac4fbb3e41
allow runtime selection of VCD vs LXT.
2002-04-06 21:33:29 +00:00
steve
c98c24b9ff
cbValueChange automatically replays.
2002-04-06 20:25:45 +00:00
steve
284c6fd85d
Add dependency generation.
2002-04-04 05:26:13 +00:00
steve
3c8551ce90
Update for gcc 3.0
2002-03-31 04:07:40 +00:00
steve
65159a2733
Update for newer bison.
2002-03-31 04:06:49 +00:00
steve
007d702223
Notes about scheduling
2002-03-31 01:54:13 +00:00
steve
362b2aa604
vpip_bits_to_dec_str takes a bit array in a specific format.
2002-03-18 05:33:24 +00:00
steve
de252965ac
Add the .ufunc statement.
2002-03-18 00:19:34 +00:00
steve
7349a6beaf
Generate port information in the .ufunc statement.
2002-03-18 00:18:50 +00:00
steve
828ca0ef9d
Add API to support user defined function.
2002-03-17 19:30:20 +00:00
steve
f5049c2f14
Do not push values through logic gates.
2002-03-17 05:48:49 +00:00
steve
f77c7f3d18
Clean up edge detection code.
2002-03-17 03:24:34 +00:00
steve
f75fb3cd95
Force the push flags to be explicit.
2002-03-17 03:23:10 +00:00
steve
8b9c26598a
Patch to allow user to set place for temporary files.
2002-03-15 23:27:42 +00:00
steve
53600d3361
Pass the %f flag for the -tpal target.
2002-03-09 22:31:48 +00:00
steve
0dc5e5e29d
Add LXT dumper support. (Anthony Bybell)
2002-03-09 21:54:48 +00:00
steve
eae9153b40
Parse multiline definitions.
2002-03-09 06:37:49 +00:00
steve
3d646aa92c
Constant expressions are not l-values for task ports.
2002-03-09 04:02:26 +00:00
steve
b7c2bd4f72
Add the NetUserFunc netlist node.
2002-03-09 02:10:22 +00:00
steve
b0a489fb7f
Debug code for write to constants.
2002-03-08 05:41:45 +00:00
steve
01b9d5e023
Better linker error messages.
2002-03-05 05:31:52 +00:00
steve
6fa9415482
Initialize all the codes tables.
2002-03-01 05:43:59 +00:00
steve
c159ff3134
Add cleanup to verbose messages.
2002-03-01 05:43:14 +00:00
steve
efa5338e3b
out-of-memory asserts.
2002-03-01 05:42:50 +00:00
steve
6dcf880482
carriage return is white space.
2002-02-27 05:46:33 +00:00
steve
b5fbb82ba1
Make vvm optional, normally off.
2002-02-16 03:18:53 +00:00
steve
ba8465abd2
Support pragma comments.
2002-02-15 05:20:58 +00:00
steve
0964dd99c5
Add writememb (Tom Verbeure)
2002-02-06 04:50:22 +00:00
steve
a6a78f5776
Detect and skip suppressed values in display
2002-02-06 04:50:04 +00:00
steve
23f73390a4
support x and z in memory word binary values.
2002-02-06 04:49:24 +00:00
steve
d55a890fdd
get bin or hex string values of memory words.
2002-02-06 04:48:34 +00:00
steve
84de8f2b93
Add fpga.tgt to the file list.
2002-02-04 01:31:02 +00:00
steve
08dac488c1
Release 0.6 updates.
2002-02-04 00:48:30 +00:00
steve
f2cff31b6e
Clean up warnings.
2002-02-04 00:41:34 +00:00
steve
7c3f5c9fae
Support print of version number.
2002-02-03 07:05:36 +00:00
steve
aa16e82102
Fix parameter bit select check for magic constants.
2002-02-03 05:53:00 +00:00
steve
ddd3566d50
Add CVS tokens.
2002-02-03 05:51:31 +00:00
steve
ec82af0c74
Use Larrys bits-to-decimal-string code.
2002-02-03 01:01:51 +00:00
steve
78bb3d6f09
Comments about xor evaluation.
2002-02-03 00:06:28 +00:00
steve
54dab22042
event find_similar should not find self.
2002-02-02 06:13:38 +00:00
steve
9756cb6382
Propagate sign in unary minus.
2002-02-01 05:09:14 +00:00
steve
9fa0f95003
Full support for $readmem ranges (Tom Verbeure)
2002-01-31 04:28:17 +00:00
steve
a624021a2e
Detect duplicate port declarations.
2002-01-31 04:10:15 +00:00
steve
928df5caf7
include config.h to eliminate warnings.
2002-01-29 22:36:31 +00:00
steve
5796524f06
Add ne_expr.cc
2002-01-28 01:39:45 +00:00
steve
b761a105b3
release candidate 0.6
2002-01-28 01:33:54 +00:00
steve
364ffc9024
Add support for bit select of parameters.
...
This leads to a NetESelect node and the
vvp code generator to support that.
2002-01-28 00:52:41 +00:00
steve
712080f7e0
Detect scalar/vector declarion mismatch.
2002-01-26 05:28:28 +00:00
steve
b906f4c0a1
Handle x in l-value of set/x
2002-01-26 02:08:07 +00:00
steve
d48bb4d744
Tell check target where to find system.vpi.
2002-01-25 03:25:16 +00:00
steve
d67ad166cd
Support display of strings with umber formats. (Tom Verbeure)
2002-01-25 03:24:19 +00:00
steve
4e286ea86b
Add the vpiLeft.. and vpiRightRange constants
2002-01-24 04:19:39 +00:00
steve
a9be4e009f
Spelling in comment.
2002-01-24 04:17:46 +00:00
steve
2f05d4b227
bison 1.31 doesnot include stdio.h
2002-01-24 03:57:45 +00:00
steve
0b68639f7d
elaborate deassign lval as done for assign.
2002-01-23 05:56:22 +00:00
steve
5f09e01a44
No implicit declaration in assign l-values.
2002-01-23 05:23:17 +00:00
steve
6a98764b3b
Load modules with RTLD_LAZY
2002-01-23 04:54:37 +00:00
steve
853c1f4387
Detect incorrect function ports.
2002-01-23 03:35:17 +00:00
steve
b99c5aa394
Update for 0.6 release
2002-01-23 02:43:14 +00:00
steve
349be0f169
Precalculate constant results of memory index expressions.
2002-01-22 01:40:04 +00:00
steve
4f28f6a770
Better calcuation of dec string width (Larry Doolittle)
2002-01-22 00:18:10 +00:00
steve
fcf64c0c38
More space efficient use of constant strings (Larry Doolittle)
2002-01-22 00:06:56 +00:00
steve
da8d59757e
return calculated oval from UDP (Stephan Boettcher)
2002-01-20 23:27:51 +00:00
steve
a02cfe0f1b
Evaluate case guards, if possible.
2002-01-19 20:09:56 +00:00
steve
f3255121a2
Spelling fixes.
2002-01-19 19:22:39 +00:00
steve
608555ce7e
Pass back target errors processing conditionals.
2002-01-19 19:02:08 +00:00
steve
ec8b6e126e
Default widths pad out as per the standard,
...
add $displayb/o/h et al., and some better
error messages for incorrect formats.
2002-01-15 03:23:34 +00:00
steve
a697157257
Support DesSTrVal for binary constants.
2002-01-15 03:21:18 +00:00
steve
ec070ee65b
Support vpiSize and vpiSigned for time objects.
2002-01-15 03:06:29 +00:00
steve
02f5ccd5d9
Handle constants with drive strength z
2002-01-12 17:49:41 +00:00
steve
361d4f2147
Drive strengths for continuous assignments.
2002-01-12 04:03:39 +00:00
steve
c09a148cd9
Make BUFZ device strengths available.
2002-01-12 04:03:09 +00:00
steve
b274dada85
Support the BUFZ logic device.
2002-01-12 04:02:16 +00:00
steve
c6a937e2e7
The stime system function is 32bits.
2002-01-11 05:25:45 +00:00
steve
5840368f2d
Handle certain special cases of stime.
2002-01-11 05:23:05 +00:00
steve
dee52dd2d0
Magic stime object support.
2002-01-11 05:21:47 +00:00
steve
a0e3b3386d
Add the stime system function.
2002-01-11 05:20:59 +00:00
steve
6535b48c1c
Add the %c format, and some warning messages.
2002-01-11 04:48:01 +00:00
steve
4d3611c5f1
odd width thread vectors as strings.
2002-01-10 01:54:04 +00:00
steve
77c4c88a4c
String prints of non-round vectors (PR378)
2002-01-09 03:29:12 +00:00
steve
4291866b9f
Add vpi_get_vlog_info support.
2002-01-09 03:15:23 +00:00
steve
8aef782411
Make lexor_keyword.cc for distributions.
2002-01-07 04:59:21 +00:00
steve
0aa033ddf3
Support scope for functors. (Stephan Boettcher)
2002-01-06 17:50:50 +00:00
steve
edba542c7a
Feedback output, not propagated output. (Stephan Boettcher)
2002-01-06 17:35:01 +00:00
steve
0e5289b022
Print a useful message for failed include file.
2002-01-06 04:51:31 +00:00
steve
6be3be0f16
Constant values have drive strengths.
2002-01-06 03:15:43 +00:00
steve
03d188fc52
Support weak functor inputs.
2002-01-06 03:15:13 +00:00
steve
6e1e658922
VPI access to root module scopes.
2002-01-06 00:48:39 +00:00
steve
a87575a76e
make check uses vvp instead of vvm.
2002-01-05 04:36:43 +00:00
steve
336624c7b9
include malloc.h only when available.
2002-01-05 04:36:06 +00:00
steve
71660fbaa5
Implement vpi_mcd_printf.
2002-01-04 02:26:36 +00:00
steve
dd79885f6d
Add structural modulus support down to vvp.
2002-01-03 04:19:01 +00:00
steve
51ffeb7c06
Use my own cfltype to defend against bison 1.30.
2002-01-02 02:39:34 +00:00
steve
912749342c
Parse combinational event delay.
2001-12-31 05:23:13 +00:00
steve
4bb91c4f98
Elaborate multiply nets with constant operands ad NetConst.
2001-12-31 04:23:59 +00:00
steve
400580179f
Get sense of 1-bit == operator right.
2001-12-31 01:56:08 +00:00
steve
c9d6b5431d
Remove test print
2001-12-31 00:39:20 +00:00
steve
51db00fb44
Support $signed cast of expressions.
2001-12-31 00:08:14 +00:00
steve
e20acfc9f9
Include s indicator in dump of signed numbers.
2001-12-31 00:02:33 +00:00
steve
a3fe753826
Account for negatives in cmp/s
2001-12-31 00:01:16 +00:00
steve
03aebd7525
Support elaborate_net for PEString objects.
2001-12-30 21:32:03 +00:00
steve
fd5c0cfa28
Support vpiStringVal in vhtread vectors.
2001-12-30 21:31:38 +00:00
steve
357a0ff23e
Detect bison and flex in configure.in
2001-12-30 17:20:33 +00:00
steve
1a22f37d92
Synthesize reduction logic.
2001-12-30 17:06:52 +00:00
steve
a5890b914f
Properly handle empty target in positionla parameter override.
2001-12-30 04:47:57 +00:00
steve
b397b10104
Evaluate constant unary minus.
2001-12-30 00:39:25 +00:00
steve
5de8e0555c
push events through event/or lists.
2001-12-29 23:59:06 +00:00
steve
91b01cd67e
constant eval of arithmetic with x and z.
2001-12-29 22:10:10 +00:00
steve
9c6b17c887
Allow escaped $ in identifiers.
2001-12-29 20:41:30 +00:00
steve
000d187c94
Do not delete delay expressions of UDP instances.
2001-12-29 20:19:31 +00:00
steve
989e9d4d94
Newline can terminate escaped names.
2001-12-29 19:00:13 +00:00
steve
40ef704cc3
Evaluate constant right shifts.
2001-12-29 00:43:55 +00:00
steve
7c9fe0c173
clarify bufif output strenghts.
2001-12-19 23:43:03 +00:00
steve
dddbeb957a
Comments about MUX synthesis.
2001-12-18 05:34:02 +00:00
steve
fd0cb30a4d
Improved functor debug dumps.
2001-12-18 05:32:11 +00:00
steve
125c631091
Remove result length restrictions for vpi_get_value.
2001-12-18 05:31:54 +00:00
steve
443dc7853f
Include config.h for namespace declaration.
2001-12-18 04:52:45 +00:00
steve
a5400d7212
Support all 3 TRI net types.
2001-12-15 02:13:33 +00:00
steve
da09d4c6e6
The IVL_SIT_WIRE type does not exist, it is a
...
synonym for IVL_SIT_TRI.
2001-12-15 02:13:17 +00:00
steve
ace6b0a767
Give tri0 and tri1 their proper strengths.
2001-12-15 02:11:51 +00:00
steve
7d494fd3d5
Support tri0 and tri1 resolvers.
2001-12-15 01:54:38 +00:00
steve
cd1524e6ca
Generate notif functors.
2001-12-14 06:03:34 +00:00
steve
a0526cdd32
Arrange bufif to support notif as well.
2001-12-14 06:03:17 +00:00
steve
4dd5f97a96
Parse and handle drive strengths of gates to vvp.
2001-12-14 02:05:13 +00:00
steve
1ca6fe5519
Support strength syntax on functors.
2001-12-14 02:04:49 +00:00
steve
6b2c604124
Better variable names for functor chunks.
2001-12-14 01:59:28 +00:00
steve
e42775ea7f
support toupper and tolower of file names.
2001-12-08 04:13:07 +00:00
steve
a8c4729cf5
vpi_put_value of vpiIntVal for memory words.
2001-12-07 23:23:05 +00:00
steve
c200c0c20e
Support integer for function return value.
2001-12-07 05:03:13 +00:00
steve
4b174fd996
Forgot to evaluate UDP delays.
2001-12-06 05:04:49 +00:00
steve
dbf5509f4f
Support delays on UDP instances.
2001-12-06 04:44:11 +00:00
steve
ec4f8c80d5
Support functor delays for gates and UDP devices.
...
(Stephan Boettcher)
2001-12-06 03:31:24 +00:00
steve
c8319bcc02
Add ivl_logic_delay function to ivl_target.
2001-12-06 03:11:00 +00:00
steve
7bf480be9a
Some bison versions choose different output names.
2001-12-06 02:55:24 +00:00
steve
2d3e85d941
Make sure fork labels are globally unique.
2001-12-05 05:41:20 +00:00
steve
ab6c8cb4b8
Parser and pform use hierarchical names as hname_t
...
objects instead of encoded strings.
2001-12-03 04:47:14 +00:00
steve
33c7c47f73
Handle index identifiers in simple paths.
2001-12-01 02:42:39 +00:00
steve
64d7b1cee5
Support addresses in readmemh.
2001-12-01 02:40:10 +00:00
steve
0cebef872a
Better synthesys of DFF w/ complex l-values. (Larry Doolittle)
2001-11-30 01:22:21 +00:00
steve
65f835f3eb
Properly parse net_decl assignments with delays.
2001-11-29 17:37:51 +00:00
steve
8309c1f673
Preserve the text after ifdefs in the output.
2001-11-29 02:26:25 +00:00
steve
e85347bf8b
Handle part selects in l-values of DFF devices.
2001-11-29 01:58:18 +00:00
steve
86a4512848
Restore -Fxnfio to -txnf target.
2001-11-29 01:06:51 +00:00
steve
82831ea9a5
Use NetScope instead of string for scope path.
2001-11-22 06:20:59 +00:00
steve
98c145c3b6
Ignore foo and a.out.
2001-11-22 06:20:32 +00:00
steve
a50fe36ef8
Ignore foo and a.out.
2001-11-22 04:44:23 +00:00
steve
7cbd710f7b
Remove diag print.
2001-11-21 02:59:27 +00:00
steve
39ef2b7605
Pass list of file to ivlpp via temporary file.
2001-11-21 02:20:34 +00:00
steve
da4901bb17
Close library files after parsing.
2001-11-20 23:36:34 +00:00
steve
f28f5e01e5
Unary reduction operators are all 1-bit results.
2001-11-19 04:26:46 +00:00
steve
e00aedd99b
Handle padding out of logical values.
2001-11-19 04:25:46 +00:00
steve
9d1a81ce2c
Handle division and modulus by zero while
...
evaluating run-time constants.
2001-11-19 02:54:12 +00:00
steve
cfed3933fa
Port close cropping behavior from mcrgb
...
Move window array reset to libmc.
2001-11-19 01:54:14 +00:00
steve
659624c71f
Print typename is fallback expression node dump.
2001-11-19 01:46:38 +00:00
steve
6e0b77a8da
Generate force code for variable l-values.
2001-11-18 01:28:18 +00:00
steve
54bb59ae99
Support compile on MacosX 10.1.1 (Timothy J. Wood)
2001-11-17 17:57:58 +00:00
steve
cac941b272
More spelling.
2001-11-17 17:45:37 +00:00
steve
0be48388c2
Add support for +libext+ in command files.
2001-11-16 05:07:19 +00:00
steve
d8970752b6
include stdlib.h for portability.
2001-11-16 04:22:27 +00:00
steve
08f0f5a1f7
DLL target support for force and release.
2001-11-14 03:28:49 +00:00
steve
f8162be8c3
Describe +incdir and +define.
2001-11-14 03:28:15 +00:00
steve
f50074de50
The +incdir+ plusarg can take multiple directores,
...
and add initial support for +define+ in the command file.
2001-11-13 03:30:26 +00:00
steve
9866fd01bd
Support +incdir in command files, and ignore other
...
+args flags. Also ignore -a and -v flags.
2001-11-12 18:47:32 +00:00
steve
d1ad10c90f
More sophisticated command file parser.
2001-11-12 01:26:36 +00:00
steve
0045d7d1bf
Remov XNF dead wood.
2001-11-11 00:10:05 +00:00
steve
4a74ae1795
Runtime support for functor delays. (Stephan Boettcher)
2001-11-10 18:07:11 +00:00
steve
4d0b840c26
Coerse input to inout when assigned to.
2001-11-10 02:08:49 +00:00
steve
0c7335a77d
Spelling errors.
2001-11-09 03:43:26 +00:00
steve
7e8a538c20
Support $writememh
2001-11-09 03:39:21 +00:00
steve
aca5afa95c
Support vpiIntVal from memory.
2001-11-09 03:39:07 +00:00
steve
7793a49854
Remove string paths from PExpr elaboration.
2001-11-08 05:15:50 +00:00
steve
6bfbcbdcf7
elaborate_lnet uses scope instead of string path.
2001-11-07 04:26:46 +00:00
steve
bf72f39fe9
eval_const uses scope instead of a string path.
2001-11-07 04:01:59 +00:00
steve
fa23dafdae
Use functor pointers where vvp_ipoint_t is unneeded.
2001-11-07 03:34:41 +00:00
steve
9572ddd7e8
Support more real arithmetic in delay constants.
2001-11-06 06:11:55 +00:00
steve
1ff36dc892
shift expressions can have definite widths.
2001-11-06 04:32:37 +00:00
steve
bf9a8f5021
Code rearrange. (Stephan Boettcher)
2001-11-06 03:07:21 +00:00
steve
0c4bea473c
Parse specparam parsepulse assignments.
2001-11-06 02:52:19 +00:00
steve
649428962e
Pad limited r-values in continuous assignments.
2001-11-04 23:12:29 +00:00
steve
cc5ddc0b6b
MacOSX 10.1 updates.
2001-11-04 05:03:21 +00:00
steve
b624b6002e
Parse more [gosh darn] specify syntax.
2001-11-03 04:09:10 +00:00
steve
af35736e04
initialize scope for %m in $fdisplay.
2001-11-02 05:56:47 +00:00
steve
58b5b583a7
Comment the scope type parser.
2001-11-02 05:43:11 +00:00
steve
9e385e6947
Implement split_node for symbol table (hendrik)
2001-11-02 04:48:03 +00:00
steve
560c003e03
make fork label into complete statemnt.
2001-11-01 19:31:40 +00:00
steve
1d045eea0d
Catch ports that have no direction.
2001-11-01 05:21:26 +00:00
steve
7a0e73ef3d
Handle procedural constant functor pointers.
2001-11-01 04:42:39 +00:00
steve
5d20dd63ec
Generate code for deassign and cassign.
2001-11-01 04:26:57 +00:00
steve
ab9a853d52
ivl_target support for cassign.
2001-11-01 04:25:31 +00:00
steve
82c0a2ebac
Add force/cassign/release/deassign support. (Stephan Boettcher)
2001-11-01 03:00:19 +00:00
steve
75e78e86d3
ivl_target support for assign/deassign.
2001-10-31 05:24:52 +00:00
steve
a75326e2e0
Rewrite the functor type to have fewer functor modes,
...
and use objects to manage the different types.
(Stephan Boettcher)
2001-10-31 04:27:46 +00:00
steve
b3e430c751
Give up if roots are missing.
2001-10-31 03:22:31 +00:00
steve
faa3a62259
detect module ports not declared within the module.
2001-10-31 03:11:15 +00:00
steve
438605fad5
Account for new scope type syntax on scope.
2001-10-31 03:07:11 +00:00
steve
9505b586bf
Generate IEEE1364-2000 line directives.
2001-10-30 21:53:27 +00:00
steve
40e7bc2450
line number in line directive is for the *next* line.
2001-10-30 21:46:56 +00:00
steve
a9aaca1ffa
Add ifndef support.
2001-10-30 20:48:55 +00:00
steve
ce61d12f60
Stubs for assign/deassign for t-dll.
2001-10-30 02:52:07 +00:00
steve
874bab10e4
NetObj constructor finally requires a scope.
2001-10-28 01:14:53 +00:00
steve
21194c909a
Propagate functor push, to make assign better.
2001-10-27 03:43:56 +00:00
steve
96a50d635d
Minor rework of summation carry propagation (Stephan Boettcher)
2001-10-27 03:22:26 +00:00
steve
8c9e0bafa9
more specify syntax (Stehpan Boettcher)
2001-10-26 03:22:56 +00:00
steve
b3bb79992a
const/non-const warnings. (Stephan Boettcher)
2001-10-26 02:29:10 +00:00
steve
4e92501864
VPI support for callback to return values.
2001-10-25 04:19:53 +00:00
steve
d83fb10774
The ! expression returns 0 to x and z values.
2001-10-24 05:06:54 +00:00
steve
5a6cca33a0
Write resolvers before the .functor (PR#300)
2001-10-24 03:43:45 +00:00
steve
b2f6953259
npmos outputs have 3bit strengths, not 2.
2001-10-24 03:18:52 +00:00
steve
b1f1f74920
Support bit selects of non-0 lsb for vectors.
2001-10-23 04:22:41 +00:00
steve
2adea8de48
Fix carry between works for %add instruction.
2001-10-23 03:49:13 +00:00
steve
859318becd
The -s flag can now be repeated on the iverilog command.
2001-10-23 00:37:29 +00:00
steve
55fb219503
document the -y flag.
2001-10-23 00:36:54 +00:00
steve
b01316ce12
Better error message for mising root module.
2001-10-22 23:26:37 +00:00
steve
1921e19635
fix constant overrun in | operands.
2001-10-22 15:31:21 +00:00
steve
990df42407
Handle activating tasks in another root.
2001-10-22 02:05:20 +00:00
steve
924b4e0062
unused idx warning.
2001-10-22 02:04:37 +00:00
steve
0e43dfb285
Remove useless code for drawing .var inputs.
2001-10-22 00:04:51 +00:00
steve
46621d3c83
wrong variable for clk input to memory.
2001-10-21 23:38:16 +00:00
steve
fa95f7ff3b
Kill const-nonconst warning.
2001-10-21 23:37:49 +00:00
steve
e45546e6f3
Install pdf version of the man pages.
2001-10-21 21:59:49 +00:00
steve
d79d48ffeb
clean up API for restarting parser.
2001-10-21 20:18:56 +00:00
steve
467ecf5b33
Error messages for missing UDP port declarations.
2001-10-21 01:55:24 +00:00
steve
9f3e64e11a
Module types in pform are char* instead of string.
2001-10-21 00:42:47 +00:00
steve
56954356db
Catch and X division by 0.
2001-10-20 23:20:32 +00:00
steve
6466d02eda
Add automatic module libraries.
2001-10-20 23:02:39 +00:00
steve
7a149a6943
Scope/module names are char* instead of string.
2001-10-20 05:21:51 +00:00
steve
acf3a4ec16
Print memory usage information if requested (Stephan Boettcher)
2001-10-20 01:03:42 +00:00
steve
5c4b87675f
Evaluate constant == when operands differ in width.
2001-10-20 00:11:24 +00:00
steve
83d3a60d5c
Add trailing ; to fork-join out labels.
2001-10-19 23:52:36 +00:00
steve
3e4eb17b15
Another go at getting link of ivl.exe right.
2001-10-19 23:15:01 +00:00
steve
1075b28f26
export the ivl_design_roots function.
2001-10-19 23:14:46 +00:00
steve
943527c526
Fix memory fault with -c flag.
2001-10-19 23:10:08 +00:00
steve
d350620315
Support multiple root modules (Philip Blundell)
2001-10-19 21:53:24 +00:00
steve
6fc556cefc
Method to get the type_ member
2001-10-19 01:55:32 +00:00
steve
73283768a5
Support rnpmos devices. (Philip Blundell)
2001-10-18 17:30:25 +00:00
steve
ce7d64f427
Evaluate string expressions (Philip Blundell)
2001-10-18 16:41:49 +00:00
steve
84b70be7ee
Include HAVE_SYS_WAIT in config.h (PR#306)
2001-10-18 16:16:23 +00:00
steve
3924c51097
Support vpiVectorVal for signals. (Philip Blundell)
2001-10-18 04:52:31 +00:00
steve
4bb1bd4315
Get Division error into the division method!
2001-10-16 03:10:20 +00:00
steve
0164ad78be
Catch division by zero in .arith/div.
2001-10-16 03:06:18 +00:00
steve
36e1eab3f4
Add arith/div object.
2001-10-16 02:47:37 +00:00
steve
177fa4062b
Support IVL_LPM_DIVIDE for structural divide.
2001-10-16 02:19:26 +00:00
steve
821c68696d
Generate %div instructions for binary /.
2001-10-16 01:27:17 +00:00
steve
a3217db7b2
Add %div support (Anthony Bybell)
2001-10-16 01:26:54 +00:00
steve
42dab181cd
Carry the type of the scope (Stephan Boettcher)
2001-10-15 02:58:27 +00:00
steve
98d71de50f
sign warning.
2001-10-15 02:55:03 +00:00
steve
c596e1cda1
Include scope information in VCD output.
2001-10-15 01:50:23 +00:00
steve
706f2ffc89
Support getting scope of scope, and scope of signals.
2001-10-15 01:49:50 +00:00
steve
a7054a91e5
libiberty is needed for mingw, and useable under cygwin.
2001-10-14 19:54:05 +00:00
steve
ad44b411fb
Try appending .vpi to module names with directories.
2001-10-14 18:42:46 +00:00
steve
f7fa2f1f4d
More coverage of $dump related commands.
2001-10-14 18:32:06 +00:00
steve
2fcab15704
Forgot to propagate carry.
2001-10-14 17:36:18 +00:00
steve
cfbad49d33
Very wide multiplication (Anthony Bybell)
2001-10-14 16:36:43 +00:00
steve
9dbcb32808
vvm support for pullup/down gates (PR#288)
2001-10-14 03:50:53 +00:00
steve
1b69bb5d2f
Handle mode-42 functor init.
2001-10-14 03:41:58 +00:00
steve
2326672b3a
Handle constant bits in arithmetic expressions.
2001-10-14 03:24:35 +00:00
steve
393a76d57a
threshold of $width is optional.
2001-10-14 02:03:51 +00:00
steve
4b3b41cd79
Propogate strength-only changes from resolver.
2001-10-14 01:45:11 +00:00
steve
eab5793dda
Account for non-0 start address for memories (Stephan Boettcher)
2001-10-14 01:36:12 +00:00
steve
6cf2ddf541
M42 implementation of mode 2 (Stephan Boettcher)
2001-10-12 03:00:08 +00:00
steve
ad6bbe539f
functor lookup includes vpi signal search.
2001-10-12 02:53:47 +00:00
steve
f12864f69e
Propagate initial value of UDP.
2001-10-11 18:29:21 +00:00
steve
b61c89c104
npmos devices pass strength.
2001-10-11 18:20:51 +00:00
steve
0def3c9983
Initialize attributes for bufz devices.
2001-10-11 00:13:19 +00:00
steve
9e5dc17c1d
Detect execv failures.
2001-10-11 00:12:49 +00:00
steve
36d36d99f3
Generate BUF devices for bufz logic.
2001-10-11 00:12:28 +00:00
steve
de985ac3fd
Document the behavioral reduction or.
2001-10-10 04:48:12 +00:00
steve
245905aeda
Support vectors as operands to logical and.
2001-10-10 04:47:43 +00:00
steve
ac6caaf29e
More make install details.
2001-10-09 23:05:10 +00:00
steve
3734b5e7f1
spec reference events can be identifiers.
2001-10-09 18:11:58 +00:00
steve
789efb9832
Collect functor reference handling into a single function. (Stephan Boettcher)
2001-10-09 16:57:47 +00:00
steve
c7bc35ad75
get CFLAGS from configure
2001-10-09 16:50:17 +00:00
steve
5071ce8575
handle nmos and pmos devices.
2001-10-09 02:28:44 +00:00
steve
64ff74df37
Add the PMOS and NMOS functor types.
2001-10-09 02:28:16 +00:00
steve
181066311b
Tasks can have sub-scopes.
2001-10-09 02:01:04 +00:00
steve
20ad433f8c
Fix pr283: signal values before enddefinitions in vcd. (Stephan Boettcher)
2001-10-08 23:33:00 +00:00
steve
494b5ff1ee
parameter names do not have defined size.
2001-10-07 03:38:08 +00:00
steve
cbd501b865
Fix some Cygwin DLL handling. (Venkat Iyer)
2001-09-30 16:45:10 +00:00
steve
41384a0e41
Reduce VCD output by removing duplicates. (Stephan Boettcher)
2001-09-30 05:18:46 +00:00
steve
3854e12024
Fencepost error in memory writes. (Stephan Boettcher)
2001-09-29 20:55:42 +00:00
steve
ff55af1e9e
Check address is in range for set. (Stephan Boettcher)
2001-09-29 04:45:20 +00:00
steve
bdf643ddb1
Generate code for unary minus (PR#272)
2001-09-29 04:37:44 +00:00
steve
d46465845c
Fix the size of unsized constant operants to compare (PR#274)
2001-09-29 01:53:22 +00:00
steve
dd75595082
Handle short l-values to concatenation.
2001-09-20 03:46:38 +00:00
steve
a73cfbc2b5
MacOS X compile time changes. (Timothy Wood)
2001-09-20 03:21:01 +00:00
steve
21c844363a
Change UDP output only if table matches.
2001-09-19 04:10:40 +00:00
steve
3109906514
Detect C name mangling for dlsym.
2001-09-17 22:26:33 +00:00
steve
606eb2b3cd
Support the cellref attribute.
2001-09-16 22:26:47 +00:00
steve
e99059e001
Support attributes to logic gates.
2001-09-16 22:19:42 +00:00
steve
cefbb635c1
Suppor the PAD attribute on signals.
2001-09-16 01:48:16 +00:00
steve
b2b8b89cd8
Make configure detect malloc.h
2001-09-15 18:27:04 +00:00
steve
92760f2c5f
Support != in virtex code generator.
2001-09-15 05:06:04 +00:00
steve
176be94be9
dead code.
2001-09-14 04:20:49 +00:00
steve
9fda809fa6
Add XOR and XNOR gates.
2001-09-14 04:17:20 +00:00
steve
3c8d598eed
Elaborate == to NetCompare instead of XNOR and AND
...
gates. This allows code generators to generate
better code in certain cases.
2001-09-14 04:16:52 +00:00
steve
f2068e83d4
Generate code for identity comparators.
2001-09-14 04:15:46 +00:00
steve
5976e7078c
Xilinx uses GROUND and VCC as pin names for the
...
GND and VCC devices.
Connect the top end of the EQ chain to the MUXCY
instead of to the LUT. The MUXCY has the real output.
2001-09-12 04:35:25 +00:00
steve
da9a84ed84
Use carry mux to implement wide identity compare,
...
Place property item in correct place in LUT cell list.
2001-09-11 05:52:31 +00:00
steve
03b635604a
initial structural memory propagation (Stephan Boettcher)
2001-09-11 01:54:58 +00:00
steve
167f94bdbf
Add 4 wide identity compare.
2001-09-10 03:48:34 +00:00
steve
4507351d48
Virtex support for mux devices and adders
...
with carry chains. Also, make Virtex specific
implementations of primitive logic.
2001-09-09 22:23:28 +00:00
steve
0253f92e7e
pin down some enumerated constants.
2001-09-09 22:21:57 +00:00
steve
432d4efc9b
Connect right ANEB pin when doing NE comparator.
2001-09-09 16:49:04 +00:00
steve
749c3eb5a7
No code for unlinked constants.
2001-09-08 01:23:21 +00:00
steve
e933b56507
extend xz from the top character, not the second-from-top.
2001-09-08 01:22:55 +00:00
steve
0c5ce9dfec
Redo of_SUBU in a more obvious algorithm, that
...
is not significantly slower. Also, clean up the
implementation of %mov from a constant.
Fix initial clearing of vector by vector_to_array
2001-09-07 23:29:28 +00:00
steve
acde444439
Separate the virtex and generic-edif code generators.
2001-09-06 04:28:39 +00:00
steve
298a352cbd
Add documentation for the code generator.
2001-09-02 23:58:49 +00:00
steve
356552faad
Add virtex support for some basic logic, the DFF
...
and constant signals.
2001-09-02 23:53:55 +00:00
steve
5e1e79b3c4
Rearrange the XNF code generator to be generic-xnf
...
so that non-XNF code generation is also possible.
Start into the virtex EDIF output driver.
2001-09-02 21:33:07 +00:00
steve
2996d2eb19
Generic ADD code.
2001-09-01 04:30:44 +00:00
steve
16023cbbd6
Generate code for MUX devices.
2001-09-01 02:28:42 +00:00
steve
77927972e5
identity compare, and PWR records for constants.
2001-09-01 02:01:30 +00:00
steve
d762a320dc
Make constants available through the design root
2001-09-01 01:57:31 +00:00
steve
a9e54e7553
dead comments.
2001-09-01 00:58:16 +00:00
steve
8b8a3d83e0
Relax pin count restriction on logic gates.
2001-08-31 23:02:13 +00:00
steve
3fbbd4080a
synthesize the special case of compare with 0.
2001-08-31 22:59:48 +00:00
steve
e79a371f76
Support DFF CE inputs.
2001-08-31 22:58:39 +00:00
steve
c507379f09
Handle more path polarity cases.
2001-08-31 21:08:35 +00:00
steve
47031767fa
Parse $setuphold statements.
2001-08-31 17:38:41 +00:00
steve
af5e68448c
Add the fpga target.
2001-08-31 17:28:10 +00:00
steve
c1c88f87c6
Many more logic gate types.
2001-08-31 04:17:56 +00:00
steve
a9b5c9c037
Add root port SIG records.
2001-08-31 02:59:06 +00:00
steve
03b428b6cb
Handle update in place of repeat constants.
2001-08-31 01:37:56 +00:00
steve
271a835305
Bind escaped names with non-escaped equivilents. (PR#256)
2001-08-30 22:40:12 +00:00
steve
a3c3019a04
Mangle nexus names.
2001-08-30 04:31:04 +00:00
steve
f063bf833f
Add the fpga target.
2001-08-28 04:14:20 +00:00
steve
2002c03cef
Add some ivl_target convenience functions.
2001-08-28 04:07:17 +00:00
steve
b8be5e80cd
Generate code for l-value bit selects.
2001-08-26 23:00:13 +00:00
steve
c29e11ed36
Add the assign/x0 and set/x opcodes.
2001-08-26 22:59:32 +00:00
steve
e35ed6e91c
Change the NetAssign_ class to refer to the signal
...
instead of link into the netlist. This is faster
and uses less space. Make the NetAssignNB carry
the delays instead of the NetAssign_ lval objects.
Change the vvp code generator to support multiple
l-values, i.e. concatenations of part selects.
2001-08-25 23:50:02 +00:00
steve
794ce68a6c
Only use fvectors for nets and vars.
2001-08-25 17:22:32 +00:00
steve
31aa85ce7d
Handle wide assignment to narrow return value.
2001-08-23 02:54:15 +00:00
steve
15c2b0317d
statement ends after while loop labels.
2001-08-16 03:45:17 +00:00
steve
820d8b9edc
Support various other string formats for time.
2001-08-16 03:29:31 +00:00
steve
a3a0f5f432
Add some missing print escape sequences.
2001-08-16 03:26:04 +00:00
steve
a98b5023a8
Describe the new .net behavior.
2001-08-10 04:31:27 +00:00
steve
645c8913f1
Neaten and document the resolv object.
2001-08-10 04:31:09 +00:00
steve
066284d5c2
Make sure arithmetic objects run at time 0.
2001-08-10 00:50:50 +00:00
steve
2802601c44
tgt-vvp generates code that skips nets as inputs.
2001-08-10 00:40:45 +00:00
steve
962a77c6b8
Rearrange bison parameters for portability.
2001-08-10 00:39:22 +00:00
steve
ca801574e3
Include functor address in debug functor print.
2001-08-09 22:25:30 +00:00
steve
606c1d38bb
Nets (wires) do not use their own functors.
...
Modifications to propagation of values.
(Stephan Boettcher)
2001-08-09 19:38:23 +00:00
steve
147ee59940
memory port bug fix.
2001-08-09 19:37:05 +00:00
steve
2e3fc89831
rearrange bison parameters for compatability.
2001-08-09 19:35:29 +00:00
steve
82bccd335d
Initial implementation of vvp_fvectors.
...
(Stephan Boettcher)
2001-08-08 01:05:06 +00:00
steve
bfc05e2d71
Unused variable warnings.
2001-08-08 00:57:20 +00:00
steve
c8135595be
signed/unsigned warnings?
2001-08-08 00:53:50 +00:00
steve
d5658d4180
dosify compiled with mingw does not know cygwin paths.
2001-08-05 17:28:40 +00:00
steve
8356e6a51f
Properly synthesize part selects.
2001-08-05 02:49:07 +00:00
steve
fbf55b9df4
Get the hello.vl and sqrt.vl names right.
2001-08-04 05:53:44 +00:00
steve
176e6d09ca
Add install of examples for Windows.
2001-08-03 17:06:47 +00:00
steve
b72d1c297d
More detailed messages about unsupported things.
2001-08-03 17:06:10 +00:00
steve
f5b9c26735
Detect system function used as a task.
2001-08-03 06:50:44 +00:00
steve
d8141252e9
Accept empty port lists to module instantiation.
2001-08-01 05:17:31 +00:00
steve
ed86dee65d
Initialize initial functor tables.
2001-07-30 03:53:01 +00:00
steve
f535cd3077
Add quickstart and mingw.txt to documentation list.
2001-07-30 03:44:48 +00:00
steve
537757a7b9
Cleanup defines and types for mingw compile.
2001-07-30 02:44:05 +00:00
steve
4fb354776e
misspell ivl_expr_lsi
2001-07-30 02:43:20 +00:00
steve
1583b1e84a
Reference the iverilog man page.
2001-07-29 22:50:44 +00:00
steve
45ff04ecb6
Reference the vvp man page.
2001-07-29 22:50:28 +00:00
steve
ef08e43cf2
support local reference to scope in expressions.
2001-07-29 22:22:40 +00:00
steve
e17f7f5146
Detect a missing task definition before it crashes me.
2001-07-28 22:13:11 +00:00
steve
8654412844
lsb vs msb in error message.
2001-07-28 22:00:27 +00:00
steve
140533db50
If module name has a /, skip the path search.
2001-07-28 03:29:42 +00:00
steve
00cacae2a3
Generate constant symbols for supply nets.
2001-07-28 03:18:50 +00:00
steve
7e0b0d7328
Support C<su0> and C<su1> special symbols.
2001-07-28 03:12:39 +00:00
steve
1be77d68ce
Evaluate part selects when passed to system tasks.
2001-07-28 01:18:07 +00:00
steve
c5a5a11b7f
Support getting the signal from IVL_EX_SIGNAL expressions.
2001-07-28 01:17:40 +00:00
steve
becc7cb56a
Handle part select expressions as variants of
...
NetESignal/IVL_EX_SIGNAL objects, instead of
creating new and useless temporary signals.
2001-07-27 04:51:44 +00:00
steve
629a02cccf
Fix binding of dangling function ports. do not elide them.
2001-07-27 02:41:55 +00:00
steve
f28b97ebfd
Spelling error
2001-07-27 02:41:28 +00:00
steve
c5234e95cd
Make the -M flag add module search paths.
2001-07-26 03:13:51 +00:00
steve
b825f8d2b2
Create a config.h.in file to hold all the config
...
junk, and support gcc 3.0. (Stephan Boettcher)
2001-07-25 03:10:48 +00:00
steve
eb08253ed0
UPdate for 0.5 content.
2001-07-25 02:32:11 +00:00
steve
7b79fd98e5
Fast UDP tables (Stephan Boettcher)
2001-07-24 01:44:50 +00:00
steve
6d5fcf5853
Implement string value for signals.
2001-07-24 01:34:56 +00:00
steve
bc284ee6d8
supply signals give input values.
2001-07-22 21:31:14 +00:00
steve
260b4166c1
Recognize supply signal types.
2001-07-22 21:30:56 +00:00
steve
b59cc5ff6d
Update config.sub and config.guess scripts.
2001-07-22 19:50:55 +00:00
steve
5c89fb71ae
Handle repeat for concatenation expressions.
2001-07-22 19:33:51 +00:00
steve
3baa8c0445
vvm does not have a stdlog.
2001-07-22 18:19:19 +00:00
steve
ce589da58a
Support the NetESubSignal expressions in vvp.tgt.
2001-07-22 00:17:49 +00:00
steve
0bb9359c05
ignore config.cache.
2001-07-22 00:17:22 +00:00
steve
54140dadcf
Add the load/x instruction for bit selects.
2001-07-22 00:04:50 +00:00
steve
60c22aefeb
Add the -h flag for help. (Stephan Boettcher)
2001-07-21 21:18:55 +00:00
steve
69a2331791
Document the -l flag (Stephan Boettcher)
2001-07-21 21:15:51 +00:00
steve
29cfd8ccfe
Add a quick-start document.
2001-07-21 04:39:26 +00:00
steve
bf67f386de
Add the vvp man page.
2001-07-21 04:34:25 +00:00
steve
a2f07011c1
Fix blending of ambiguous pairs.
2001-07-21 02:34:39 +00:00
steve
0bd6cf7b6f
Fix of_END when a middle thread ends.
2001-07-20 04:57:00 +00:00
steve
cd8e491028
Support calculated delays in vvp.tgt.
2001-07-19 04:55:06 +00:00
steve
e773ccfe49
Add support for the delayx opcode.
2001-07-19 04:40:55 +00:00
steve
83de770387
Do not connect reg to module outputs.
2001-07-19 03:43:15 +00:00
steve
b3a8098506
EOF is the same as resume.
2001-07-19 02:20:55 +00:00
steve
05407f488f
Relax driver limit from 64 to forever (Stephan Boettcher)
2001-07-18 02:44:39 +00:00
steve
85d53ebbf4
Handle 0 counts in repeat concatenation.
2001-07-16 20:41:41 +00:00
steve
e4139f4819
Schedule instead of propagating UDP output. (Stephan Boettcher)
2001-07-16 19:08:32 +00:00
steve
45c935af45
Cut off scope iteration when depth runs out.
2001-07-16 18:53:16 +00:00
steve
cfbfd9ec1d
Properly pad unknow values. (Stephan Boettcher)
2001-07-16 18:48:07 +00:00
steve
ae209a144f
Add a stdlog output for vvp, and vvp options
...
to direct them around. (Stephan Boettcher.)
2001-07-16 18:40:19 +00:00
steve
64837efac5
Nest resolvers when there are lots of drivers (Stephan Boettcher)
2001-07-16 18:31:49 +00:00
steve
8d73df2b04
Make vvp output executable (Stephan Boettcher)
2001-07-16 18:26:08 +00:00
steve
59117c2e42
dot in escaped identifiers are not scope. (Stephan Boettcher)
2001-07-16 18:20:27 +00:00
steve
e23dd57c9d
Reshuffle -v and -V flags of ivl. (Stephan Boettcher)
2001-07-16 18:14:56 +00:00
steve
0e20be774e
Initialize allocated functors (Stephan Boettcher)
2001-07-16 18:06:01 +00:00
steve
c3ae00ae49
Merge sig and old_ival into union to save space.
2001-07-16 17:57:51 +00:00
steve
a7328ecce1
Rewire signal callback support for fast lookup. (Stephan Boettcher)
2001-07-13 03:02:34 +00:00
steve
15a952a143
Remove width restriction on subtraction.
2001-07-13 00:38:57 +00:00
steve
3154f07817
compile libvpi.a with PIC flags (Dan McMahill)
2001-07-11 19:32:02 +00:00
steve
4e700bffb8
support postpone of $systask parameters. (Stephan Boettcher)
2001-07-11 04:43:57 +00:00
steve
7b2d4c9ef6
Get endian of vpiIntVal from constants.
2001-07-11 04:40:52 +00:00
steve
da828a218f
Add support for REadOnlySync and monitors.
2001-07-11 02:27:21 +00:00
steve
13ef84bc35
Manually create the stage-2 callback structure.
2001-07-11 02:22:17 +00:00
steve
c7b36322f6
Properly step through wide inputs. (Stephan Boettcher)
2001-07-09 15:38:35 +00:00
steve
8cc89a3a1f
Pass parameters to system functions.
2001-07-07 20:20:10 +00:00
steve
b8c5aff0cb
Generate !== an an inverted ===
2001-07-07 04:37:18 +00:00
steve
fb0c387b12
Detect and make available to t-dll the right shift.
2001-07-07 03:01:37 +00:00
steve
1628045b55
Generate code for right shift.
2001-07-07 03:01:06 +00:00
steve
608e5a4dbb
Add the .shift/r functor.
2001-07-07 02:57:33 +00:00
steve
30787fd49e
Put synthesized signals in proper scope.
2001-07-07 01:38:45 +00:00
steve
1e231c3338
Properly initialize unconnected shift inputs.
2001-07-06 05:02:43 +00:00
steve
370549a19a
Generate code for structural left shift.
2001-07-06 04:48:04 +00:00
steve
39c39f0162
Add structural left shift (.shift/l)
2001-07-06 04:46:44 +00:00
steve
bcaa122fb9
handle left shifter in dll output.
2001-07-04 22:59:25 +00:00
steve
96403de903
Describe .shift behavior.
2001-07-04 22:59:04 +00:00
steve
ab5cad18de
Relax limit on behavioral subtraction.
2001-07-04 04:57:10 +00:00
steve
b1c548a981
Scope-locals use _s instead of _l.
2001-07-04 04:34:06 +00:00
steve
039769dbaf
Generate verbuse status messages (Stephan Boettcher)
2001-07-03 04:09:24 +00:00
steve
a76d6dc352
Add the -V flag, and some verbose messages.
2001-07-02 01:57:27 +00:00
steve
7eab75ded1
Parse a lot more specify syntax.
2001-07-01 23:44:43 +00:00
steve
ef9c7c4a30
Print memory l-values.
2001-07-01 23:44:19 +00:00
steve
4c54e070ed
header statements donot necessarily end in a string.
2001-07-01 23:43:58 +00:00
steve
80c609853a
export the ivl_design_time_precision function.
2001-07-01 23:43:23 +00:00
steve
eeabc7234c
Make sure tmp net gets connected to ramdq output
2001-07-01 23:37:48 +00:00
steve
79b740284a
Make NetFF constructor take const char* for the name.
2001-07-01 00:27:34 +00:00
steve
ab7b353ace
support fast programming by only writing the bits
...
that are listed in the input file.
2001-06-30 23:03:16 +00:00
steve
3b82a15521
reflect new default vvp target type.
2001-06-30 22:59:40 +00:00
steve
97d972ebb3
More details about running Icarus Verilog.
2001-06-30 21:54:16 +00:00
steve
5f5081827d
Make the vvp target the default.
2001-06-30 21:53:42 +00:00
steve
6b7b4e700a
Detect parameter mismatches.
2001-06-30 21:28:35 +00:00
steve
baac893d22
Support non-const right shift (unsigned).
2001-06-30 21:07:26 +00:00
steve
d680e594ed
typo in CYMODE=EXAMINE-CI string.
2001-06-30 20:11:15 +00:00
steve
42adc49e57
Get include and lib paths right for mingw and vvm.
2001-06-30 04:23:02 +00:00
steve
4a2168b352
Describe the mingw compile.
2001-06-30 01:04:07 +00:00
steve
44d4660fe8
Redo the ivl_root calculator for mingw.
2001-06-30 00:59:24 +00:00
steve
45d4117c02
Handle null parameters to system tasks.
2001-06-29 02:41:05 +00:00
steve
ae837a6347
Relax limit on width of structural sum.
2001-06-29 01:20:20 +00:00
steve
426fc18d10
Relax limit on width of structural sum.
2001-06-29 01:20:20 +00:00
steve
2531ed89cd
Properly support signal full names.
2001-06-29 00:44:56 +00:00
steve
566d5c9a93
Get a private copy of the object name.
2001-06-29 00:42:39 +00:00
steve
a033c331b6
Report line of unsupported cassign.
2001-06-27 18:34:43 +00:00
steve
066b534307
Get include and lib paths from Makefile.
2001-06-27 02:22:26 +00:00
steve
64cabd8074
Give task/function definitions a vpi type object.
2001-06-25 03:12:06 +00:00
steve
a0db52c69f
More robust about incorrect arguments.
2001-06-25 03:11:41 +00:00
steve
7bbedd1b55
Look up functor return register with tail of name.
2001-06-23 19:53:03 +00:00
steve
0340256b4c
Include stdlib.h
2001-06-23 18:41:02 +00:00
steve
c4bd8b1463
Generate %shiftl instructions for shift.
2001-06-23 18:40:34 +00:00
steve
a2d465804f
Add the %shiftl/i0 instruction.
2001-06-23 18:26:26 +00:00
steve
3c5d32637c
Only try the readline library if vvp_debus is enabled.
2001-06-23 18:26:12 +00:00
steve
c93cb71162
Allow forward references of task scopes. (Stephan Boettcher)
2001-06-23 01:04:07 +00:00
steve
c3960f8e6a
Support macromodule as module.
2001-06-23 00:31:06 +00:00
steve
96d04bb5a0
Handle short inputs to tasks. (Stephan Boettcher)
2001-06-23 00:30:42 +00:00
steve
1f1bfd0eab
Infinitely wide behavioral add.
2001-06-22 00:03:05 +00:00
steve
8cdf51f913
Initialize stmt_cur_ substatements during dll case building.
2001-06-21 23:23:14 +00:00
steve
1f3eedcfd7
Some documentation of callback behavior.
2001-06-21 23:05:08 +00:00
steve
541f269c20
Support cbValueChange callbacks.
2001-06-21 22:54:12 +00:00
steve
68a7ddefd3
Escaped identifiers in behavioral expressions. (Stephan Boettcher)
2001-06-21 04:53:59 +00:00
steve
3961c68928
Add dumpon and dumpoff (Stephan Boettcher)
2001-06-21 04:15:22 +00:00
steve
832b795826
Edit ivl_install_dir only on mingw
2001-06-20 02:25:40 +00:00
steve
7a6be47603
Get va_start arguments in right order.
2001-06-19 14:57:10 +00:00
steve
81536481cc
Add structural EEQ gates (Stephan Boettcher)
2001-06-19 03:01:10 +00:00
steve
6e703c5744
RAM_DQ pins are inputs, so connect HiZ to the nexus.
2001-06-18 03:25:20 +00:00
steve
82e8e51736
1. Logic with more than 4 inputs
...
2. Id and name mangling
3. A memory leak in draw_net_in_scope()
(Stephan Boettcher)
2001-06-18 03:10:34 +00:00
steve
905529081d
Add the ~& reduction operator.
2001-06-18 01:54:49 +00:00
steve
4159c98c58
More behavioral unary reduction operators.
...
(Stephan Boettcher)
2001-06-18 01:09:32 +00:00
steve
e40efec4bd
Add more UDP edge types, and finish up compile
...
and run-time support. (Stephan Boettcher)
2001-06-18 00:51:23 +00:00
steve
e418625457
export memory symbols in Windows.
2001-06-17 23:55:00 +00:00
steve
4b82d26f5e
Add support for structural multiply in t-dll.
...
Add code generators and vvp support for both
structural and behavioral multiply.
2001-06-16 23:45:05 +00:00
steve
63a02d1c0a
Relax width restriction for structural comparators.
2001-06-16 03:36:03 +00:00
steve
bf42772995
Generate code to support memory access in continuous
...
assignment statements. (Stephan Boettcher)
2001-06-16 02:41:41 +00:00
steve
b75221e9bf
Fix library path calculation on non Windows systems
...
to include the install directories. (Brendan Simon)
2001-06-15 05:14:21 +00:00
steve
1e9a54d134
iberty library only needed on Windows
2001-06-15 05:05:04 +00:00
steve
ff0b59ff6b
support LE and LT comparators.
2001-06-15 05:01:09 +00:00
steve
b3a5a0e5ab
Generate vvp code for GT and GE comparisons.
2001-06-15 04:14:18 +00:00
steve
e002b1c1c4
Add .cmp statements for structural comparison.
2001-06-15 04:07:57 +00:00
steve
7009dc8d9b
Change the VPI call process so that loaded .vpi modules
...
use a function table instead of implicit binding.
2001-06-15 03:28:30 +00:00
steve
e28b7f06c5
update documentation to describe vpi in vvp.
2001-06-12 23:32:49 +00:00
steve
b6e1d63cb0
Change the VPI call process so that loaded .vpi modules
...
use a function table instead of implicit binding.
2001-06-12 03:53:10 +00:00
steve
5a279dbdc8
Instructions can forward reference functors.
2001-06-10 17:12:51 +00:00
steve
3ad3a2ab57
support scan of scope from VPI.
2001-06-10 16:47:49 +00:00
steve
5361efe8ed
Account for carry out on add devices.
2001-06-07 04:20:10 +00:00
steve
2f2657b765
support subtraction in tgt-vvp.
2001-06-07 03:09:37 +00:00
steve
19a7f3faeb
Implement .arith/sub subtraction.
2001-06-07 03:09:03 +00:00
steve
f480943649
Support structural addition.
2001-06-07 02:12:43 +00:00
steve
f3019ff5a0
Add structural addition.
2001-06-05 03:05:41 +00:00
steve
33ee5c26b0
Fix the fork example.
2001-06-03 20:36:52 +00:00
steve
1e9184f0f9
Make the bufif0 and bufif1 gates strength aware,
...
and accurately propagate strengths of outputs.
2001-05-31 04:12:43 +00:00
steve
19251f7a79
Propagate strength-values instead of drive strengths.
2001-05-30 03:02:35 +00:00
steve
b79da2c4d6
Detect input and input ports declared as reg.
2001-05-25 02:21:34 +00:00
steve
e68ba4c73a
Attach noops to case labels.
2001-05-24 04:31:00 +00:00
steve
39ffe91230
Add behavioral modulus.
2001-05-24 04:20:10 +00:00
steve
150fc6f3ee
correctly interpret signed decimal values.
2001-05-22 04:08:49 +00:00
steve
a7411eb00d
Get the initial inputs to functors set at xxxx.
2001-05-22 04:08:16 +00:00
steve
660fd7c1d4
Update the mingw build to not require cygwin files.
2001-05-22 02:14:47 +00:00
steve
53772db66d
Document configure details.
2001-05-22 02:07:08 +00:00
steve
93dd08bdf5
Configure diable of ipal.
2001-05-22 02:06:39 +00:00
steve
176d707e0a
configure detect exe suffixes.
2001-05-22 02:05:50 +00:00
steve
34dade1b65
Fix WIFEXITED macro.
2001-05-20 18:22:02 +00:00
steve
4e815f8565
local declares if the header is missing.
2001-05-20 18:06:57 +00:00
steve
e69a3ed934
declare getopt by hand in mingw32 compile.
2001-05-20 17:34:53 +00:00
steve
77d63aba74
make distclean target.
2001-05-20 17:13:27 +00:00
steve
de8c725890
Mingw32 support (Venkat Iyer)
2001-05-20 15:09:39 +00:00
steve
d4b2958e50
Deleted wrong time when -Tmax is selected.
2001-05-20 15:03:25 +00:00
steve
8669b372e0
Implement reduction nor.
2001-05-20 01:18:38 +00:00
steve
61991e6367
stub ivl_expr_parms for sfunctions.
2001-05-20 01:06:16 +00:00
steve
bdcb813727
Initial support for system functions.
2001-05-20 01:02:55 +00:00
steve
e6f1510a40
Make vthread_put_but expand the space if needed.
2001-05-20 00:56:48 +00:00
steve
224af78463
Add support for system function calls.
2001-05-20 00:46:12 +00:00
steve
983bf5cbab
include missing externs on vthread_put_bit.
2001-05-20 00:45:43 +00:00
steve
96bcf6eac4
Get bit ordering right when making decimal strings.
2001-05-20 00:40:12 +00:00
steve
0872ad34cf
Behavioral ternary operators for vvp.
2001-05-17 04:37:02 +00:00
steve
5aee3b866a
do not assert if memory reference is invalid.
2001-05-17 03:35:22 +00:00
steve
3ce86f5664
Make error message include error: prefix.
2001-05-17 03:34:47 +00:00
steve
23e5394fb4
Make sure to get local headers first.
2001-05-17 03:22:18 +00:00
steve
be7ac7a2ca
Update help message.
2001-05-17 03:14:26 +00:00
steve
a616cfd0c2
Update to new LPM API for flip-flops.
2001-05-16 03:55:30 +00:00
steve
e85b669307
Add the glossary file.
2001-05-15 15:09:08 +00:00
steve
bc6dfeb4a9
Skip the , in module lists.
2001-05-14 00:55:31 +00:00
steve
bf96986c38
test width of target with bit size of long.
2001-05-14 00:42:32 +00:00
steve
26cfbb2b7b
calculate the output of resolvers.
2001-05-13 21:05:06 +00:00
steve
35fc2a609d
ignore make check droppings.
2001-05-13 05:06:25 +00:00
steve
f05b13c630
A resolver that understands some simple strengths.
2001-05-12 20:38:06 +00:00
steve
4d8954be4c
Fixup the resolver syntax.
2001-05-12 16:34:47 +00:00
steve
1d0a9871c2
Generate resolvers for multiple drivers.
2001-05-12 03:31:01 +00:00
steve
2292751fc3
Make sure LPM devices have drives on outputs.
2001-05-12 03:18:44 +00:00
steve
a6524e47e2
Silly copyright typo.
2001-05-12 01:48:57 +00:00
steve
02b9aa9163
No entry breakpoint if debug is compiled out.
2001-05-11 03:26:31 +00:00
steve
754adce4a4
Missing export symbols.
2001-05-11 03:25:55 +00:00
steve
f3fdf70b56
Export new ivl_ symbols.
2001-05-11 02:43:38 +00:00
steve
38db6fde0c
Help for enable-vvp-debug
2001-05-11 02:10:30 +00:00
steve
4f804577f9
Add the --enable-vvp-debug option to the configure
...
script of vvp, and detect getopt.h.
2001-05-11 02:06:14 +00:00
steve
44a182d92c
VVP support for memories in expressions,
...
including general support for thread bit
vectors as system task parameters.
(Stephan Boettcher)
2001-05-10 00:26:53 +00:00
steve
91d65d0e4e
Add the vpi_user strength definitions.
2001-05-10 00:16:00 +00:00
steve
a88f030b52
Now that the interactive debugger exists,
...
there is no use for the output dump.
2001-05-09 04:23:18 +00:00
steve
4537de8120
Implement the .resolv syntax.
2001-05-09 02:53:25 +00:00
steve
100bdedac3
input file for memory test.
2001-05-09 02:48:53 +00:00
steve
914ad85e63
Add ivl and vvp.tgt support for memories in
...
expressions and l-values. (Stephan Boettcher)
2001-05-08 23:59:33 +00:00
steve
b3c2ad0a65
preliminary resolver documentation.
2001-05-08 23:58:43 +00:00
steve
2e12635494
Add to the debugger the ability to view and
...
break on functors.
Add strengths to functors at compile time,
and Make functors pass their strengths as they
propagate their output.
2001-05-08 23:32:26 +00:00
steve
4325b787c0
more missing API symbols.
2001-05-08 04:13:51 +00:00
steve
4e3c702cc7
sort enumeration values.
2001-05-08 04:13:12 +00:00
steve
213cb1b08a
Behavioral code to read memories. (Stephan Boettcher)
2001-05-06 17:54:33 +00:00
steve
b7569f4d70
Support memory objects. (Stephan Boettcher)
2001-05-06 17:48:20 +00:00
steve
e328cf9fed
Add the %ix/get instruction. (Stephan Boettcher)
2001-05-06 17:42:22 +00:00
steve
78af3dbdc0
Regularize the mode-42 functor handling.
2001-05-06 03:51:37 +00:00
steve
372674b4c0
Add the memory.vvp example.
2001-05-06 03:50:26 +00:00
steve
8d0f7e1594
Propagate non-x constant net values.
2001-05-06 00:18:13 +00:00
steve
558fea33fb
Generate code that causes the value of a net to be passed
...
passed through all nets of a nexus.
2001-05-06 00:01:02 +00:00
steve
de5930f7d8
Add the beginnings of an interactive debugger.
2001-05-05 23:55:46 +00:00
steve
e09a14aa44
Forward the simulation time for every event.
2001-05-05 23:51:49 +00:00
steve
d45c7c58df
Generate code for the fully general event or.
2001-05-03 04:55:46 +00:00
steve
b5e0f46229
Generate null statements for conditional labels.
2001-05-03 04:55:28 +00:00
steve
12229e4826
Fix handling of a mode 1 functor that feeds into a
...
mode 2 functor. Feed the result only if the event
is triggered, and do pass to the output even if no
threads are waiting.
2001-05-03 04:54:33 +00:00
steve
8f88525819
dll build of many probes forgot to index the probe.
2001-05-03 01:52:45 +00:00
steve
a225fe304d
Document memory related opcodes,
...
parser uses numbv_s structures instead of the
symbv_s and a mess of unions,
Add the %is/sub instruction.
(Stephan Boettcher)
2001-05-02 23:16:50 +00:00
steve
0f9eb13245
Remove the init parameter of functors, and instead use
...
the special C<?> symbols to initialize inputs. This is
clearer and more regular.
2001-05-02 04:05:16 +00:00
steve
06437b7fba
Support behavioral subtraction.
2001-05-02 01:57:25 +00:00
steve
ba910c0fac
Describe a generic event a bit.
2001-05-02 01:38:13 +00:00
steve
28278d3c09
initialize is_schedule.
2001-05-02 01:37:38 +00:00
steve
2bf7653ab9
Implement %ix/load.
2001-05-01 05:00:02 +00:00
steve
cb39b3b65c
Account for ipoint_input_index behavior in inputs_connect.
2001-05-01 02:18:15 +00:00
steve
3e3757bde7
Comparisons cant leave their results in the opcode
...
result area or their values will be clobbered by other
parts of a complex expression.
2001-05-01 02:07:34 +00:00
steve
8b4befd4fc
Add support for memory objects. (Stephan Boettcher)
2001-05-01 01:09:39 +00:00
steve
972e9c866b
OR is %or. Get this right.
2001-04-30 05:11:18 +00:00
steve
f758010f01
Describe constant functor inputs in the symbol section.
2001-04-30 04:51:27 +00:00
steve
8057faccc1
Fix up functor inputs to support C<?> values.
2001-04-30 03:53:19 +00:00
steve
3f952a2fd2
detect multiple drivers on nexa.
2001-04-30 00:00:27 +00:00
steve
eb71c70c99
Carry drive strengths in the ivl_nexus_ptr_t, and
...
handle constant devices in targets.'
2001-04-29 23:17:38 +00:00
steve
2a44cf70b1
Add bufif and pull devices.
2001-04-29 23:16:31 +00:00
steve
431b16639d
Add bufif0 and bufif1 functors.
2001-04-29 23:13:33 +00:00
steve
014e68b62f
Support .net constant inputs.
2001-04-29 22:59:46 +00:00
steve
31291f5d8a
Evalulate logical or (||)
2001-04-29 20:47:39 +00:00
steve
a52b34cb64
Add pullup and pulldown devices.
2001-04-29 20:19:10 +00:00
steve
3ca55bf327
Better handling of module item errors.
2001-04-29 20:18:34 +00:00
steve
9bb2cee686
UDP instances need not have user supplied names.
2001-04-28 23:18:08 +00:00
steve
4f3bdd9f38
Accept single strengths for pullup and pulldown.
2001-04-28 22:56:15 +00:00
steve
efe41c2435
input connect cleanup. (Stephan Boettcher)
2001-04-28 20:24:03 +00:00
steve
f855cb19b8
Excessive header include.
2001-04-28 20:09:05 +00:00
steve
861ed55879
Support marking vvp interpreter (Stephan Boettcher)
2001-04-28 20:06:07 +00:00
steve
35e0dcdd3d
More robust parsing of compiler directives.
2001-04-28 18:43:18 +00:00
steve
a72a8607e6
New exported symbols for ivl_target API.
2001-04-26 23:33:48 +00:00
steve
904747acf5
Link time references fixed.
2001-04-26 23:32:31 +00:00
steve
4d40a336c0
Look for the strip tool
2001-04-26 23:32:02 +00:00
steve
32e9c8049a
Spurious declaration
2001-04-26 16:12:48 +00:00
steve
bb24624979
Assure gperf is present.
2001-04-26 16:12:29 +00:00
steve
506bc87e82
Handle missing or uninstalled .conf files.
2001-04-26 16:04:39 +00:00
steve
986885bd70
Add the mode-42 functor concept to UDPs.
2001-04-26 15:52:22 +00:00
steve
73c4893ef7
Implement simple MUXZ for ?: operators.
2001-04-26 05:12:02 +00:00
steve
62c9f39297
Redo and simplify UDP behavior.
2001-04-26 03:10:55 +00:00
steve
8b5f62a5e5
Support $deposit to a wire or reg.
2001-04-26 00:01:33 +00:00
steve
aec5841c7f
Implement vpi_put_value for signals.
2001-04-25 04:45:52 +00:00
steve
c997c090a1
Document the UDP implementation.
2001-04-25 04:35:05 +00:00
steve
0ab60cd3c3
Fix setting StX in vpip_bits_set_value.
2001-04-24 15:47:37 +00:00
steve
ae23a8f6bf
Fix underflow when UDP has 1 input.
2001-04-24 03:48:53 +00:00
steve
46e868d313
Fix generation of udp/comb definitions.
2001-04-24 02:59:52 +00:00
steve
8dfa322b8b
Support for UDP devices in VVP (Stephen Boettcher)
2001-04-24 02:23:58 +00:00
steve
2f2f08b02f
Missing symbols.
2001-04-23 00:42:37 +00:00
steve
102fd24dd2
Support unconnected .net objects.
2001-04-23 00:37:58 +00:00
steve
66cf3ec8fa
More UDP consolidation from Stephan Boettcher.
2001-04-22 23:09:45 +00:00
steve
57b0d9691e
Right shift by constant.
2001-04-21 03:26:23 +00:00
steve
7c6f496765
Add NAND and XNOR functors.
2001-04-21 02:04:01 +00:00
steve
67e72ce77e
Left shift by a constant amount.
2001-04-21 01:49:17 +00:00
steve
c97692d715
Generate code for disable.
2001-04-21 00:55:46 +00:00
steve
66f83f3b08
Working %disable and reap handling references from scheduler.
2001-04-21 00:34:39 +00:00
steve
3765bdd3ac
Spurious assert of empty statemnt.
2001-04-19 03:04:47 +00:00
steve
39bcdfb7b4
Use the new %fork syntax.
2001-04-18 05:12:03 +00:00
steve
57cd770650
%end complete the %join for the parent.
2001-04-18 05:04:19 +00:00
steve
3194b0c53a
Resolve forward references for %fork.
2001-04-18 05:03:49 +00:00
steve
9e8005f7b7
Put threads into scopes.
2001-04-18 04:21:23 +00:00
steve
41ce198a1f
add XOR support.
2001-04-15 16:37:48 +00:00
steve
05e30ed43b
Add support for behavioral xnor.
2001-04-15 04:07:56 +00:00
steve
09cd582cc5
Oops, excessive test assert neets to be removed.
2001-04-15 03:19:44 +00:00
steve
235781ce08
Handle noop as case statements.
2001-04-15 03:14:31 +00:00
steve
70aeb980d8
vvp support for <= with internal delay.
2001-04-15 02:58:11 +00:00
steve
d0d6189874
Less picky about ternary operands.
2001-04-14 22:50:39 +00:00
steve
8205d0fcc9
Use event/or for wide anyedge statements.
2001-04-14 05:11:49 +00:00
steve
60d068a33e
support the .event/or statement.
2001-04-14 05:10:56 +00:00
steve
e1a4b457c2
Initialize the waiting_for_event member.
2001-04-14 05:10:05 +00:00
steve
86e18226eb
More complete reap of all threads.
2001-04-13 03:55:18 +00:00
steve
7fa2975c24
Add new symbols for windows.
2001-04-10 17:21:21 +00:00
steve
d39190243b
Add the disable statemnent.
2001-04-07 19:24:36 +00:00
steve
0550287658
Generate vvp code for functions with ports.
2001-04-06 02:28:02 +00:00
steve
82947a9343
Generate vvp code for the repeat statement.
2001-04-05 03:20:57 +00:00
steve
b7fb806611
Generate signed .net and .var statements.
2001-04-05 01:38:24 +00:00
steve
6a236061de
Add the .var/s and .net/s statements for VPI support.
2001-04-05 01:34:26 +00:00
steve
898639d7bf
Get signed compares working correctly in vvp.
2001-04-05 01:12:27 +00:00
steve
6322400b83
support decimal strings from signals.
2001-04-04 17:43:19 +00:00
steve
9b7341889d
Get intval from a binary constant.
2001-04-04 05:07:19 +00:00
steve
0653f859bc
Support forever loops in the tgt-vvp target.
2001-04-04 04:50:35 +00:00
steve
48ff66cbce
Take vector form as parameters to vpi_call.
2001-04-04 04:33:08 +00:00
steve
1b2a6f8bed
Fix broken look scanning down bits of number.
2001-04-04 04:28:41 +00:00
steve
c6cf665c4a
emit vpi parameters values as vectors.
2001-04-04 04:14:09 +00:00
steve
19c84ff9a2
Support non-blocking assignments.
2001-04-03 04:50:37 +00:00
steve
15398a8f58
VPI access time as a decimal string, and
...
stub vpi access to the scopes.
2001-04-03 03:46:14 +00:00
steve
9d2e22576e
support functor_set push for blocking assignment.
2001-04-03 03:18:34 +00:00
steve
3ffb3c7011
thread bit allocation leak in assign.
2001-04-02 04:09:20 +00:00
steve
cac4c8d5ce
Evaluate binary & and | operators.
2001-04-02 03:47:49 +00:00
steve
f40d006c26
Generate code for task calls.
2001-04-02 02:28:12 +00:00
steve
e6c36597eb
Support the scope expression node.
2001-04-02 00:28:35 +00:00
steve
141808b787
Scopes and numbers as vpi_call parameters.
2001-04-02 00:27:53 +00:00
steve
003f103408
Take numbers as system task parameters.
2001-04-02 00:24:30 +00:00
steve
ce66498c88
Unary ! is a reduction operator.
2001-04-01 22:26:21 +00:00
steve
bf30a0bc07
Add the reduction nor instruction.
2001-04-01 22:25:33 +00:00
steve
f8e6d782e1
Implement the unary ! operator.
2001-04-01 21:47:29 +00:00
steve
7a8135c703
Recognize the BUF device.
2001-04-01 21:34:48 +00:00
steve
311e1ce9ee
Add the buf functor type.
2001-04-01 21:31:46 +00:00
steve
9bce21ddb7
Generate code for < and <=.
2001-04-01 07:22:42 +00:00
steve
c4e438d4ba
Implement the less-then and %or instructions.
2001-04-01 07:22:08 +00:00
steve
a2da2d59df
support the NetWhile statement.
2001-04-01 06:52:27 +00:00
steve
56a4236576
Evaluate the logical AND operator.
2001-04-01 06:49:32 +00:00
steve
2443c655f2
Generate code for while statements.
2001-04-01 06:49:04 +00:00
steve
ae1d5227de
Support empty statements for hanging labels.
2001-04-01 06:40:44 +00:00
steve
5769bbe15e
Add the bitwise %and instruction.
2001-04-01 06:12:13 +00:00
steve
6dbf7333c8
dead cruft.
2001-04-01 04:38:17 +00:00
steve
4352ce6753
Generate code for casex and casez
2001-04-01 04:34:59 +00:00
steve
29a50a52ca
Implement %cmp/x and %cmp/z instructions.
2001-04-01 04:34:28 +00:00
steve
d25690cc8e
Redesign event information to support arbitrary edge combining.
2001-04-01 01:48:21 +00:00
steve
e29ecdc234
Fix compilation warnings.
2001-03-31 19:29:23 +00:00
steve
0f6eea7024
Handle $time as system task parameter.
2001-03-31 19:08:22 +00:00
steve
97dd559fca
Clear results of condition expressions.
2001-03-31 19:02:13 +00:00
steve
a4c722b195
Add VPI support for the simulation time.
2001-03-31 19:00:43 +00:00
steve
b3a3b888d8
Generate vvp code for case statements.
2001-03-31 17:36:38 +00:00
steve
2f1d258acb
Add the jmp/1 instruction.
2001-03-31 17:36:02 +00:00
steve
7aa9bc9892
Generate code for + and concat expressions.
2001-03-31 02:00:44 +00:00
steve
4a058632b2
Add the ADD instrunction.
2001-03-31 01:59:58 +00:00
steve
6a72b4c10e
Make empty event sub-expression a noop.
2001-03-30 23:24:02 +00:00
steve
00d44222dd
Initialize the event_ list of new scopes.
2001-03-30 06:10:15 +00:00
steve
b36b6d0ca0
Generate code for fork/join statements.
2001-03-30 05:49:52 +00:00
steve
386958f9a0
Add fork and join instructions.
2001-03-30 04:55:22 +00:00
steve
f6eb581aff
Handle truncation/padding of numbers.
2001-03-29 05:16:25 +00:00
steve
966f7a4bff
Behavioral trigger statements.
2001-03-29 03:47:38 +00:00
steve
2cb76cabef
events can take up to 4 inputs.
2001-03-29 03:47:13 +00:00
steve
609d5fe727
Support named events as mode 2 functors.
2001-03-29 03:46:36 +00:00
steve
522d0ec864
Add unary ~ operator to tgt-vvp.
2001-03-29 02:52:39 +00:00
steve
ad8565f8a6
Add const probe method to NetEvent.
2001-03-29 02:52:01 +00:00
steve
b0c003dc34
include string.h for strcmp et al.
2001-03-28 17:24:32 +00:00
steve
a4e528f0c3
Add the ivl_event_t to ivl_target, and use that to generate
...
.event statements in vvp way ahead of the thread that uses it.
2001-03-28 06:07:39 +00:00
steve
c8d9ade58c
Evaluate === and !==
2001-03-27 06:43:27 +00:00
steve
61e3eed49c
Generate code for simple @ statements.
2001-03-27 06:27:40 +00:00
steve
afb8e285db
Support error code from target_t::end_design method.
2001-03-27 03:31:06 +00:00
steve
79ce94b585
Add the .event statement and the %wait instruction.
2001-03-26 04:00:39 +00:00
steve
f7f5ccce05
Add vpiOctStrVal access to signals.
2001-03-25 20:45:09 +00:00
steve
25d25ff7fe
Support NOR and NOT gates.
2001-03-25 19:38:23 +00:00
steve
31b0037299
Support making hex strings.
2001-03-25 19:38:05 +00:00
steve
16f514739f
Calculate NOR and NOT tables, and also the hex_digits table.
2001-03-25 19:37:26 +00:00
steve
604ce0db09
Accept <> characters in labels and symbols.
2001-03-25 19:36:45 +00:00
steve
a71dbd3987
Draw AND NOR and NOT gates.
2001-03-25 19:36:12 +00:00
steve
417186b06f
Add a README for notes about the vvp target.
2001-03-25 18:10:39 +00:00
steve
ac91dc38b8
Recursive make check target.
2001-03-25 05:59:46 +00:00
steve
6d0be3de3a
vpip.def needed by vpip, not vvm.
2001-03-25 04:48:04 +00:00
steve
2d4f33a0dd
Use the correct paths for vpip in make check.
2001-03-25 04:47:47 +00:00
steve
c6088c8820
Add JMP0XZ and postpone net inputs when needed.
2001-03-25 03:54:26 +00:00
steve
5134636932
Include signal bit index in functor input.
2001-03-25 03:53:40 +00:00
steve
5d051ffbde
Skip true clause if condition ix 0, x or z
2001-03-25 03:53:24 +00:00
steve
97985bba64
Generate .net statements, and nexus inputs.
2001-03-25 03:25:43 +00:00
steve
9ec5fa972e
Draw signal inputs to system tasks.
2001-03-25 03:24:10 +00:00
steve
9e04ef4abd
Add the .net statement.
2001-03-25 00:35:35 +00:00
steve
68dc83b322
Use the :vpi_module directive.
2001-03-25 00:34:40 +00:00
steve
97e9b62080
Describe the .net directive.
2001-03-24 22:59:28 +00:00
steve
4072021ba4
Install vvp and vvp.tgt.
2001-03-24 22:58:56 +00:00
steve
c901945871
eq is x if either value of cmp/u has x or z.
2001-03-23 04:56:03 +00:00
steve
95281e5d82
Generate :module statements.
2001-03-23 02:41:04 +00:00
steve
2858c2f09b
Add the :module header statement.
2001-03-23 02:40:22 +00:00
steve
034cdae445
assignments with non-trival r-values.
2001-03-23 01:54:32 +00:00
steve
e71ea8c9de
Support set of functors from thread bits.
2001-03-23 01:53:46 +00:00
steve
b2a136e07e
Handle vectors pulled out of a constant bit.
2001-03-23 01:11:06 +00:00
steve
c2dc3fe5c3
Assure that operands are the correct width.
2001-03-23 01:10:24 +00:00
steve
548ff4f89a
Detect undefined system tasks at compile time.
2001-03-22 22:38:13 +00:00
steve
b3c24adb11
install vvp.
2001-03-22 22:37:36 +00:00
steve
e81d0d9f23
Compile in a default VPI module dir.
2001-03-22 21:26:53 +00:00
steve
715d140d85
Test print that interferes with output.
2001-03-22 05:39:34 +00:00
steve
fa46de1021
Add code label forward references.
2001-03-22 05:28:41 +00:00
steve
aa31884d3b
no longer need out message.
2001-03-22 05:28:16 +00:00
steve
aacce5ef1b
implement %load, %inv, %jum/0 and %cmp/u
2001-03-22 05:08:00 +00:00
steve
565088160e
Geneate code for conditional statements.
2001-03-22 05:06:21 +00:00
steve
b24011b84b
fgetc patch from Peter Monta.
2001-03-22 02:23:17 +00:00
steve
2b8d9abd3e
Allow var objects as vpiHandle arguments to %vpi_call.
2001-03-21 05:13:03 +00:00
steve
e24facfaf6
Describe the compilation major steps.
2001-03-21 05:12:15 +00:00
steve
27e717839a
Scan the scopes of a design, and draw behavioral
...
blocking assignments of constants to vectors.
2001-03-21 01:49:43 +00:00
steve
52c7108782
Add support for variable vectors.
2001-03-20 06:16:23 +00:00
steve
90ed3dd124
Copyright notices.
2001-03-20 02:48:40 +00:00
steve
8118203766
Lexical numbers may be signed.
2001-03-20 02:45:25 +00:00
steve
e8518c5056
Put processes in the proper scope.
2001-03-20 01:44:13 +00:00
steve
f02d4574f9
Get vpi_user from .., not ../vpip.
2001-03-20 01:43:16 +00:00
steve
f1ff1149f7
vpi_user.h is in .., and not ./vpi.
2001-03-20 00:29:10 +00:00
steve
034a38ea36
Fix inclule paths to find files in srcdir.
2001-03-19 04:37:59 +00:00
steve
f8c3b84f68
Add support for the vpiReset sim control.
2001-03-19 01:55:38 +00:00
steve
d8ef63efd1
Pass -o value to vvp target.
2001-03-19 01:29:13 +00:00
steve
a240be73e7
vpi_user header file is a root header.
2001-03-19 01:21:45 +00:00
steve
1563643c92
Add the tgt-vvp code generator target.
2001-03-19 01:20:46 +00:00
steve
5b89249f10
Add the hello example program.
2001-03-18 04:37:35 +00:00
steve
bf70673380
Accept empty statements.
2001-03-18 04:37:16 +00:00
steve
6779f01f3a
Add support for string constants to VPI.
2001-03-18 04:35:18 +00:00
steve
66f7ef97da
Add support for vpi scopes.
2001-03-18 00:37:55 +00:00
steve
e03859b834
$display can take 0 arguments.
2001-03-18 00:31:32 +00:00
steve
f2c1902984
Add structures for VPI support, and all the %vpi_call
...
instruction. Get linking of VPI modules to work.
2001-03-16 01:44:34 +00:00
steve
32f3881344
Rearrange VPI support libraries.
2001-03-14 19:27:44 +00:00
steve
264e629c74
VPI support documentation.
2001-03-14 19:26:58 +00:00
steve
8969ab03d7
Thread details
2001-03-14 19:26:40 +00:00
steve
952ebe8516
Copyright notice.
2001-03-14 19:26:15 +00:00
steve
f355cf334c
Stub install and unistall targets.
2001-03-14 19:26:01 +00:00
steve
01c5321208
Add chapter on threads vs functors vs events.
2001-03-13 00:49:50 +00:00
steve
970ba895c9
Compact the vvp_code_s structure.
2001-03-11 23:06:49 +00:00
steve
cbc3be0304
Functor values and propagation.
2001-03-11 22:42:11 +00:00
steve
cb65ee5e00
Add the vvp engine to cvs.
2001-03-11 00:29:38 +00:00
steve
debe707097
check signals in the cprop functor.
2001-02-18 01:07:32 +00:00
steve
79b60da54c
I allow function ports to have types.
2001-02-17 05:27:31 +00:00
steve
84c7795d16
Allow task ports to be given real types.
2001-02-17 05:15:33 +00:00
steve
410a93b52c
Cannot elide task ports.
2001-02-17 05:14:35 +00:00
steve
78355b6038
Check that the port really exists here.
2001-02-17 05:13:36 +00:00
steve
59b69c6dd1
Constant propagation for compare ==.
2001-02-16 03:27:31 +00:00
steve
d3bff8a451
links to root inputs are not constant.
2001-02-16 03:27:07 +00:00
steve
43ddd97426
Missing . in names generated from scope locals.
2001-02-16 03:25:09 +00:00
steve
4399042b8d
Use Mersenne Twister 19937 pseudo-random number generator
...
for the $random system task, and support the seed paramter.
2001-02-16 00:26:38 +00:00
steve
2b0aaec8ab
FreeBSD port has a maintainer now.
2001-02-15 06:59:35 +00:00
steve
7d7ccd4f08
Generate proper code for wide condition expressions.
2001-02-13 04:11:24 +00:00
steve
93463b6ff5
Binary or and nor resilient to bit widths.
2001-02-13 03:38:55 +00:00
steve
4b0c56c3a8
Rant about bit widths.
2001-02-12 16:48:04 +00:00
steve
1bae567728
Add the netmisc.cc source file.
2001-02-11 02:15:52 +00:00
steve
7d7beeecc1
Binary operators with operands of indefinite width
...
has itself an indefinite width.
2001-02-10 21:20:38 +00:00
steve
f5d0211864
In the context of range declarations, use elab_and_eval instead
...
of the less robust eval_const methods.
2001-02-10 20:29:39 +00:00
steve
1f4232187c
Slightly more specific error message.
2001-02-10 19:50:33 +00:00
steve
f45ba008d8
Catch constants driving root module ports. (PR#130)
2001-02-10 04:50:54 +00:00
steve
ac629b313c
Report errors when XNF code has constant X values. (PR#128)
2001-02-10 03:22:49 +00:00
steve
563065053e
Make the add func resilient to bit widths (PR#141)
2001-02-10 01:57:18 +00:00
steve
2b903f5d0e
Detect part select out of range in nets. (PR#138)
2001-02-09 20:18:15 +00:00
steve
7ef3b44ab1
support evaluation of constant < in expressions.
2001-02-09 05:44:23 +00:00
steve
8376553349
Report bit/part select out of range errors. (PR#133)
2001-02-09 03:16:48 +00:00
steve
3885f17d0f
Be more clear about scope of failure.
2001-02-09 02:49:59 +00:00
steve
4b0e5bd173
trim the length of unsized numbers.
2001-02-08 05:38:18 +00:00
steve
d78c7392c2
Remove dead code.
2001-02-08 01:10:30 +00:00
steve
cf3f1b38c3
ivl_target header search path fixes.
2001-02-07 22:21:59 +00:00
steve
2fbc0af1ea
Fix expression widths for rvalues and parameters (PR#131,132)
2001-02-07 21:47:13 +00:00
steve
94a1d59817
Support constant evaluation of / and % (PR#124)
2001-02-07 02:46:31 +00:00
steve
57d1bfaf29
Add 0? and 1? patterns to UDP syntax. (PR#137)
2001-02-07 01:08:21 +00:00
steve
d6701803d1
Latest rpm compresses man pages. Fine, I can cope.
2001-02-04 01:00:51 +00:00
steve
9e624ac833
Update to 0.4 release.
2001-02-04 00:03:57 +00:00
steve
0175c727ee
The -f flag is obsolete.
2001-02-01 17:12:44 +00:00
steve
90250baf0f
Forgot to actually allow the -p flag.
2001-02-01 17:12:22 +00:00
steve
cc22ae833a
support leading _ in names.
2001-01-29 22:48:10 +00:00
steve
6c4b5cf2c2
Fix sign extension of evaluated constants. (PR#91)
2001-01-27 05:41:48 +00:00
steve
88a2ca2168
Handle wide net constants with unary minus.
2001-01-25 02:05:16 +00:00
steve
41242735ed
Handle some special cases of unary 2's complement,
...
and improve netlist expression width handling.
2001-01-24 02:52:30 +00:00
steve
ab11943496
Fix hand bad karma btw AC_LANG_CPLUSPLUS and AC_EXEEXT
2001-01-23 19:52:03 +00:00
steve
d9f0065f93
Forgot to actually *open* the VCD output.
2001-01-23 18:50:26 +00:00
steve
53dfdacce8
Support default dumpfiles.
2001-01-22 20:58:31 +00:00
steve
4e44515078
Switch hte -f flag to the -p flag.
2001-01-20 19:02:04 +00:00
steve
2b11f78d63
Catch malformed include directives (PR#100)
2001-01-20 03:10:35 +00:00
steve
a4de0af79d
apologize for not supporting non-constant delays.
2001-01-20 02:15:50 +00:00
steve
145ac49233
NetMux needs a scope. (PR#115)
2001-01-18 03:16:35 +00:00
steve
6479319fea
LDFLAGS when linking pal.tgt.
2001-01-18 03:09:45 +00:00
steve
f224ed3a90
Fix out-of-bound pins for comparator (PR#108)
2001-01-16 04:51:52 +00:00
steve
5f292e546d
Get rid of gate templates.
2001-01-16 03:57:46 +00:00
steve
65020bc6de
Use the iosfwd header if available.
2001-01-16 02:44:17 +00:00
steve
6adb50e860
Add missing NetLogic gate types to ::logic method.
2001-01-15 22:08:32 +00:00
steve
1ea417dc30
Declare ivl_scope_type functions.
2001-01-15 22:05:14 +00:00
steve
a00924089d
Pass scope type information to the target module.
2001-01-15 00:47:01 +00:00
steve
66716f5101
Add client data pointer for scope and process scanners.
2001-01-15 00:05:39 +00:00
steve
219df169a3
Generalize the evaluation of floating point delays, and
...
get it working with delay assignment statements.
Allow parameters to be referenced by hierarchical name.
2001-01-14 23:04:55 +00:00
steve
b712c3f5ca
possible HP/UX portability support.
2001-01-14 17:12:59 +00:00
steve
02fc59fbdf
Parse parameters within nested scopes.
2001-01-13 22:20:08 +00:00
steve
4e7a5d55d0
Handle error idents in constants not in any scope (PR#97)
2001-01-12 04:31:27 +00:00
steve
5fb7f9ca91
Generated function prototype. (PR#107)
2001-01-12 04:20:18 +00:00
steve
246f2d5884
Match memories within task scopes. (PR#101)
2001-01-10 05:32:44 +00:00
steve
5276752276
Build task outputs as lval instead of nets. (PR#98)
2001-01-10 03:13:23 +00:00
steve
6bf599e839
Cope with width mismatches to module ports (PR#89)
2001-01-09 05:58:47 +00:00
steve
fff32b1b54
Clean up the jedec header that is written.
2001-01-09 04:41:32 +00:00
steve
a64a4d7a9b
Fixes to support compilation using vpath.
2001-01-09 03:11:27 +00:00
steve
9eb6f9dbb9
Generate the jedec to configure the macrocells.
2001-01-09 03:10:48 +00:00
steve
430e46d718
Assert on length of bit vector.
2001-01-07 18:22:15 +00:00
steve
cd9a30707b
Detect port direction attached to non-ports.
2001-01-07 07:00:31 +00:00
steve
ad0853d666
Support signed decimal display of variables.
2001-01-06 22:22:17 +00:00
steve
cc18d065aa
declaration initialization for time variables.
2001-01-06 06:31:58 +00:00
steve
14c67a5389
James has moved.
2001-01-06 04:32:56 +00:00
steve
68e672e61a
Support arrays of integers.
2001-01-06 02:29:35 +00:00
steve
2703456ad4
Document the -c flag.
2001-01-05 05:16:03 +00:00
steve
8ee00ec562
Fix net division to cope with small output sizes.
2001-01-05 03:19:47 +00:00
steve
8bfae1e641
Evaluate constant === and !== expressions.
2001-01-04 16:49:50 +00:00
steve
8befc6f7c4
Add support for << is signal indices.
2001-01-04 04:47:51 +00:00
steve
d5ec89813d
Evaluate constant logical && and ||.
2001-01-04 04:28:42 +00:00
steve
ac7ae1ba6f
Resolve repeat ambiguity in favor of loop.
2001-01-02 17:28:08 +00:00
steve
120a211e68
Support a bunch of unary operators in parameter expressions.
2001-01-02 04:21:13 +00:00
steve
b6a18098c7
Evaluate constant &, | and unary ~.
2001-01-02 03:23:40 +00:00
steve
112936d661
Fix shift and ternary operators in parameter expressions (PR#86)
2001-01-01 21:49:33 +00:00
steve
4d09c43ecf
Add $stop that does a finish.
2001-01-01 19:33:44 +00:00
steve
2a6f8634f6
repeat loops ambiguity.
2001-01-01 19:12:35 +00:00
steve
5803e8c42c
Handle function scopes in dumpvars scn (PR#95)
2001-01-01 08:10:35 +00:00
steve
eda3c63f72
reg_assign into function ports. (PR#95)
2001-01-01 01:41:09 +00:00
steve
365b149ec1
Propagate initial value of constants into wires.
2000-12-30 03:11:15 +00:00
steve
e68c26bb87
Generate smaller code for reg assigns.
2000-12-17 05:33:11 +00:00
steve
4e7f8766fa
Generate loops to initialize vectors or constants.
2000-12-16 23:55:24 +00:00
steve
fe209a6996
Handle non-constant l-values.
2000-12-16 20:00:17 +00:00
steve
f4671a3082
Evaluate <= and ?: in parameter expressions (PR#81)
2000-12-16 19:03:30 +00:00
steve
c9881c115a
Spelling error.
2000-12-16 17:16:08 +00:00
steve
0a3bda87d6
Observe delays in non-blocking assignments (PR#83)
2000-12-16 16:57:43 +00:00
steve
8ae4e25720
Detect recursive instantiations (PR#2)
2000-12-16 01:45:47 +00:00
steve
44131d4b16
Allow non-blocking assign to pad memory word with zeros.
2000-12-15 21:54:43 +00:00
steve
d5eb3a2bad
concatenation as parameter to system tasks. PR#64)
2000-12-15 21:40:26 +00:00
steve
086348035e
Fix memory access in vvm. (PR#70)
2000-12-15 20:05:16 +00:00
steve
05b5b91a84
A dlerror implementatin that HP/UX might like.
2000-12-15 18:06:47 +00:00
steve
bcbd5b2c5c
Remove limits from the similar events search.
2000-12-15 17:45:07 +00:00
steve
8c680d158a
Autoconfigure the dlopen functions.
2000-12-15 05:45:25 +00:00
steve
8fe6324aec
functions with system tasks (PR#46)
2000-12-15 03:06:04 +00:00
steve
15a426cc73
remove dead macro.
2000-12-15 02:00:31 +00:00
steve
770dfe5eaa
Trim dr from the string line.
2000-12-15 02:00:11 +00:00
steve
5144725b8f
Accept x in outputs of primitive. (PR#84)
2000-12-15 01:24:17 +00:00
steve
189f55b894
rounding of time and x in primitives.
2000-12-15 00:21:46 +00:00
steve
e836bc951d
Detect -mdll support in Cygwin.
2000-12-14 23:38:04 +00:00
steve
f0718b1345
Start support for fitting the logic.
2000-12-14 23:37:47 +00:00
steve
9cb91ce9aa
Eat carriage returns.
2000-12-14 23:36:59 +00:00
steve
4abf4b0a9a
include vpi_user.h.
2000-12-14 23:36:34 +00:00
steve
7d622fc6ab
Support more logic gate types.
2000-12-14 23:23:07 +00:00
steve
3e73ec3e0f
sorry for concatenated memories in l-values. (PR#76)
2000-12-12 06:14:51 +00:00
steve
36a1b37789
Fix truncated octal constants (PR#76)
2000-12-12 06:13:44 +00:00
steve
e34ef2a2b9
NetEUFuncs are allowed as system task parameters.
2000-12-12 03:30:44 +00:00
steve
fd0f618529
out-line vvm_bitset_t methods.
2000-12-12 03:30:25 +00:00
steve
a010dd1cc0
Mangle [] characters. (PR#67)
2000-12-11 01:06:24 +00:00
steve
5dbea64759
Add support for signed reg variables,
...
simulate in t-vvm signed comparisons.
2000-12-11 00:31:43 +00:00
steve
084a464cf1
Support decimal constants in behavioral delays.
2000-12-10 22:01:35 +00:00
steve
c0f951c146
vpiStringVal handles leding nulls as blanks. (PR#62)
2000-12-10 19:15:19 +00:00
steve
9ddd0491f7
Support delays on continuous assignment from idents. (PR#40)
2000-12-10 06:41:59 +00:00
steve
245472ca63
unary expressions as parameters (PR#42, PR#68)
2000-12-09 06:17:20 +00:00
steve
371f43e227
documentation...
2000-12-09 05:40:42 +00:00
steve
9fe0d9b120
Add the -tpal target to use the pal.tgt module.
2000-12-09 05:40:09 +00:00
steve
16c50ad810
Stuff registers into macrocells.
2000-12-09 03:42:52 +00:00
steve
a4da2c7ed5
The ipal library is called ipal.
2000-12-09 01:19:58 +00:00
steve
40da501cec
Add the pal loadable target.
2000-12-09 01:17:38 +00:00
steve
f6507cba43
Check lvalue of procedural continuous assign (PR#29)
2000-12-06 06:31:09 +00:00
steve
e027247a0e
fix portfaults pass values.
2000-12-06 05:15:21 +00:00
steve
789e862ca4
parse real and realtime declarations.
2000-12-05 22:32:05 +00:00
steve
a6b83ac5da
real and trireg not supported.
2000-12-05 22:31:38 +00:00
steve
3b9a60414e
Make signal attributes available to ivl_target API.
2000-12-05 06:29:33 +00:00
steve
4f638882c9
Add Attrib class for holding NetObj attributes.
2000-12-04 17:37:03 +00:00
steve
4faec154f0
Finally remove the verilog.sh script.
2000-12-02 05:57:46 +00:00
steve
ff53b60c66
Remove excess *.d dependencies for parse.d
2000-12-02 05:30:08 +00:00
steve
a2a40869b0
Spelling error in comment.
2000-12-02 05:08:04 +00:00
steve
b714f57797
Catch up to null.tgt and libvpip.a files.
2000-12-02 05:07:14 +00:00
steve
d0ec7e2c02
Make the null target into a loadable target.
2000-12-02 04:50:32 +00:00
steve
d16d29c591
Support for %s in $display (PR#62)
2000-12-02 02:40:56 +00:00
steve
e310532434
Handle null statements inside a wait. (PR#60)
2000-12-01 23:52:49 +00:00
steve
4eed86d519
Detect part select errors on l-values.
2000-12-01 02:55:37 +00:00
steve
ef49fc127f
Change LineInfo to store const C strings.
2000-11-30 17:31:42 +00:00
steve
e6151db172
Add command file (-c) support from Nadim Shaikli.
2000-11-30 02:50:54 +00:00
steve
28af357c8a
Clean a bit more completely.
2000-11-29 23:59:29 +00:00
steve
a5c69b50e5
Do not delete synthesized signals used in expressions.
2000-11-29 23:16:18 +00:00
steve
02f876ac69
More informative BUFZ warning.
2000-11-29 23:15:54 +00:00
steve
ea921efced
synthesis for unary reduction ! and N operators.
2000-11-29 05:24:00 +00:00
steve
4bf3e37af3
Add XNF support for NE comparators.
2000-11-29 02:54:49 +00:00
steve
291ab97422
Add support for || synthesis (PR#53)
2000-11-29 02:09:52 +00:00
steve
12db3340cc
Typo writing I pins to AND gates in compare.
2000-11-29 01:34:17 +00:00
steve
e33fb3ce51
Propagate constants through xnor gates. (PR#51)
2000-11-23 01:55:52 +00:00
steve
92424eea10
synthesize the rvalue of <= statements.
2000-11-22 21:18:42 +00:00
steve
4ca0bffc7f
Connect the CE if it is linked at all.
2000-11-22 21:18:20 +00:00
steve
c86da66b77
Allow sole module to be a root.
2000-11-22 20:48:32 +00:00
steve
f7d62b96aa
whoops, wrong copyright notice.
2000-11-21 03:55:20 +00:00
steve
482323843e
Whoops, return the calculated constant value rom driven_value.
2000-11-20 01:41:12 +00:00
steve
f4443a7dfa
Add support for supply nets (PR#17)
2000-11-20 00:58:40 +00:00
steve
1f07ba52b6
Integer parameter comments.
2000-11-19 22:03:04 +00:00
steve
ec0d12b738
Killing some signals might make others killable.
2000-11-19 20:48:53 +00:00
steve
457d193238
Fix cases where signal iteration might die early.
2000-11-19 20:48:30 +00:00
steve
e05b9a4769
Replace AND constand propagation.
2000-11-19 05:26:58 +00:00
steve
2750977e4a
Thorough constant propagation for or and nor gates.
2000-11-18 05:13:27 +00:00
steve
ff5846100c
Delete unreferenced signals no matter what.
2000-11-18 05:12:45 +00:00
steve
da926fa08b
Watch out in functor, it may delete the last signal.
2000-11-18 04:53:04 +00:00
steve
fc6978e4de
Handle constant propagation through XOR gates,
...
including reducing the gate to a constant,
a buffer or an inverter if possible.
2000-11-18 04:10:37 +00:00
steve
11e6440162
Fix warning about temporaries.
2000-11-15 20:31:05 +00:00
steve
f74368dec2
Missing LPM related symbols in ivl.def.
2000-11-15 20:30:21 +00:00
steve
4b264a4c58
More robust way to cope with parse.cc compilation.
2000-11-15 19:26:35 +00:00
steve
0ca9b2736b
flip-flop pins for ivl_target API.
2000-11-12 17:47:29 +00:00
steve
28bc621f11
change set for support of nmos, pmos, rnmos, rpmos, notif0, and notif1
...
change set to correct behavior of bufif0 and bufif1
(Tim Leight)
Also includes fix for PR#27
2000-11-11 01:52:09 +00:00
steve
197ed46b26
configure bindir and libdir
2000-11-11 00:48:35 +00:00
steve
b05aadfd94
Configure bindir and libdir
2000-11-11 00:38:40 +00:00
steve
a8da692540
Add support for the t-dll backend grabing flip-flops.
2000-11-11 00:03:36 +00:00
steve
1d6f48914f
Initialize scope when creating it.
2000-11-09 22:19:34 +00:00
steve
1046c86c84
Remember to include the -S condition.
2000-11-09 21:58:00 +00:00
steve
47ce0f3c46
show concatenation operators.
2000-11-09 05:14:07 +00:00
steve
2dd1d070ec
Display l-values with width.
2000-11-07 06:14:06 +00:00
steve
f4ed0e35af
Handle connectsion to internally unconnected modules (PR#38)
2000-11-05 06:05:59 +00:00
steve
61ad0b23c8
Apply sequential UDP rework from Stephan Boettcher (PR#39)
2000-11-04 06:36:24 +00:00
steve
5415dd70c5
Integrate parameter count changes (PR#34)
2000-11-04 05:49:22 +00:00
steve
ff514aab72
pad different width inputs to muxes. (PR#14)
2000-11-04 05:06:04 +00:00
steve
d7788b88b7
Modifications in support of gcc 2.96
2000-11-04 01:54:01 +00:00
steve
a1cfabafb8
Use the %m string properly.
2000-11-04 01:53:24 +00:00
steve
35769ef541
Scope information is needed by all types of display tasks.
2000-11-04 01:52:57 +00:00
steve
80d3342178
VCD scans tasks (PR#35)
2000-11-01 06:05:44 +00:00
steve
4d27b947bc
Add the general $time system function.
2000-11-01 03:19:36 +00:00
steve
3591e06c4e
Support time variables.
2000-10-31 17:49:02 +00:00
steve
88c8547486
Remove C++ string from variable lists.
2000-10-31 17:00:04 +00:00
steve
d92ac5772c
Spelling error.
2000-10-31 16:59:45 +00:00
steve
f2997d7767
Detect reverse bit order in part select. (PR#33)
2000-10-30 21:35:40 +00:00
steve
7df9943679
get width right for reversed part select net. (PR#33)
2000-10-30 20:55:53 +00:00
steve
f3dfff7d76
task threads ned their scope initialized. (PR#32)
2000-10-29 17:10:02 +00:00
steve
23a5bd072d
Remove the compiled in Verilog target.
2000-10-28 22:35:58 +00:00
steve
d6efae4bdd
API for concatenation expressions.
2000-10-28 22:32:34 +00:00
steve
10fbb2a1bb
Glitches in cygwin build process.
2000-10-28 19:12:43 +00:00
steve
5b65f15df4
stub for the concat operator.
2000-10-28 17:55:03 +00:00
steve
72229abda6
check explicitly uses local libraries.
2000-10-28 17:51:45 +00:00
steve
427de3ab0b
Handle - and _ in target names.
2000-10-28 17:51:01 +00:00
steve
6962841546
Split vpip for everybody.
2000-10-28 17:27:59 +00:00
steve
bb414303a0
make check target (PR#3)
2000-10-28 04:16:11 +00:00
steve
431228e881
make check target (PR#3)
2000-10-28 03:58:11 +00:00
steve
07d7008853
Use the conf file to generate the vvm ivl string.
2000-10-28 03:45:47 +00:00
steve
7545db5e26
Use the conf file to generate the vvm ivl string.
2000-10-28 03:45:47 +00:00
steve
ad4931e813
Add scope to threads in vvm, pass that scope
...
to vpi sysTaskFunc objects, and add vpi calls
to access that information.
$display displays scope in %m (PR#1)
2000-10-28 00:51:41 +00:00
steve
f915efaf15
Fix handling of errors in behavioral lvalues. (PR#28)
2000-10-26 17:09:46 +00:00
steve
df660bab0c
draw proper signal references for the gates.
2000-10-26 16:42:25 +00:00
steve
26350fdcf5
emit declarations of signals and gates.
2000-10-26 00:32:28 +00:00
steve
0e7ca326ce
Put signals into a signal_table
2000-10-26 00:29:10 +00:00
steve
88b479a82b
mangle the backslash to a dollar.
2000-10-25 23:21:37 +00:00
steve
e08314eaf5
Scan the processes, and get the target signals
2000-10-25 05:41:55 +00:00
steve
b8fe10d27d
Get target signal from nexus_ptr.
2000-10-25 05:41:24 +00:00
steve
1cc7b6d4d7
Nexus value is initially unknown so that it propogates for sure.
2000-10-23 00:32:48 +00:00
steve
bb9eb2cd1d
Fix decimal constant overflow warning (PR#26)
2000-10-22 22:27:59 +00:00
steve
add2ae16fa
Reduce the target entry points to the target_design.
2000-10-21 16:49:45 +00:00
steve
ecf71efc84
Document the -C flag of iverilog.
2000-10-18 21:53:05 +00:00
steve
e10679633d
Add ivl_lval_t and support for assignment l-values.
2000-10-18 20:04:39 +00:00
steve
f5fae7f271
Stubs so that cygwin port will link ivl.
2000-10-16 22:44:54 +00:00
steve
90ae46476c
Makefile patches to support target loading under cygwin.
2000-10-15 21:02:08 +00:00
steve
2dedd6c067
Scopes and processes are accessible randomly from
...
the design, and signals and logic are accessible
from scopes. Remove the target calls that are no
longer needed.
Add the ivl_nexus_ptr_t and the means to get at
them from nexus objects.
Give names to methods that manipulate the ivl_design_t
type more consistent names.
2000-10-15 04:46:23 +00:00
steve
7ee46bc621
More sophisticated number length warning.
2000-10-14 16:48:59 +00:00
steve
368e5b72be
bit width warnings from Jim Norris (PR#24)
2000-10-14 04:07:54 +00:00
steve
f526d235d1
Check for missing concat subexpressions (PR#11)
2000-10-14 02:23:02 +00:00
steve
06f5482631
Skip the o radix in octal numbers.
2000-10-14 01:31:30 +00:00
steve
52b649cd5e
Include constants in nexus targets.
2000-10-13 03:39:27 +00:00
steve
588966320f
commentary.
2000-10-13 03:38:48 +00:00
steve
5ce28c193a
iverilog with an iverilog.conf configuration file.
2000-10-08 22:36:55 +00:00
steve
c9bcda147e
Missing stream in call to fprintf.
2000-10-08 05:00:04 +00:00
steve
4819d54d51
Fix repeat concatenation with multiple expressions (PR#10)
2000-10-08 04:59:36 +00:00
steve
8fe887ffe1
Back pointers in the nexus objects into the devices
...
that point to it.
Collect threads into a list in the design.
2000-10-08 04:01:54 +00:00
steve
76e2c509d7
Put logic devices into scopes.
2000-10-07 19:45:42 +00:00
steve
6f69773c57
ivl_target updates, including more complete
...
handling of ivl_nexus_t objects. Much reduced
dependencies on pointers to netlist objects.
2000-10-06 23:46:50 +00:00
steve
8ba1facb66
Replace data references with function calls. (Venkat)
2000-10-06 23:11:39 +00:00
steve
20d07a7366
Eliminate zero inputs to xor.
2000-10-06 21:26:34 +00:00
steve
02bee9358c
sfuncs are char* and are compared with strcmp
2000-10-06 02:21:35 +00:00
steve
41f3ba65a1
xor and constant devices.
2000-10-05 05:03:01 +00:00
steve
ce19190eae
Overview documentation for loadable targets.
2000-10-04 22:13:51 +00:00
steve
d7fcd66826
Overview documentation for loadable targets.
2000-10-04 21:50:55 +00:00
steve
9680de25cd
Fix the clean target and excess dependencies.
2000-10-04 17:08:31 +00:00
steve
aac5fc246a
Use char8 instead of string to store name.
2000-10-04 16:30:39 +00:00
steve
887654b7c5
Use .def file instead of _dllexport.
2000-10-04 02:37:44 +00:00
steve
07aa86f0fa
print reg signals.
2000-10-04 02:24:20 +00:00
steve
2f668421a3
Strip the installed .vpi file.
2000-10-04 02:01:40 +00:00
steve
bb777f317b
Cleanup build of VPI modules under Cygwin. (Venkat)
2000-10-03 16:15:35 +00:00
steve
b34a451cbc
Cygwin port changes from Venkat
2000-09-30 03:20:47 +00:00
steve
c12e0f5416
ivl_expr_t support for binary operators,
...
Create a proper ivl_scope_t object.
2000-09-30 02:18:15 +00:00
steve
40028f263f
Do not put noop statements into blocks.
2000-09-29 22:58:57 +00:00
steve
21e0e8a8a1
Cnstant evaluation of NE.
2000-09-29 04:42:56 +00:00
steve
700bcfda70
handel, by truncation, verinums that are to long for long integers.
2000-09-28 03:55:55 +00:00
steve
fff759de20
multiply in parameter expressions.
2000-09-27 18:28:37 +00:00
steve
79b1c51e68
Detect indefinite widths where definite widths are required.
2000-09-26 05:05:58 +00:00
steve
8b581cef46
Remove the obsolete NetEIdent class.
2000-09-26 01:35:42 +00:00
steve
d6b43519a8
Add EX_NUMBER and ST_TRIGGER to dll-api.
2000-09-26 00:30:07 +00:00
steve
cbe20e8bcf
fix null pointer when elaborating undefined task.
2000-09-24 17:41:13 +00:00
steve
e8bb53e2ea
API access to signal type and port type.
2000-09-24 15:46:00 +00:00
steve
2be1c115ff
Move some NetNet method out of the header file.
2000-09-24 15:44:44 +00:00