steve
4494a7a4f3
Support elaboration of disable statements.
2000-07-27 05:13:44 +00:00
steve
286cef19fb
Parse and elaborate timescale to scopes.
2000-07-22 22:09:03 +00:00
steve
741b17245d
Handle some edge cases during node scans.
2000-07-16 04:56:07 +00:00
steve
2a08824ae9
Detect muxing Vz as a bufufN.
2000-07-15 05:13:43 +00:00
steve
42e4ff47c8
Move inital value handling from NetNet to Nexus
...
objects. This allows better propogation of inital
values.
Clean up constant propagation a bit to account
for regs that are not really values.
2000-07-14 06:12:56 +00:00
steve
18eb34921f
Add support for non-constant delays in delay statements,
...
Support evaluating ! in constant expressions, and
move some code from netlist.cc to net_proc.cc.
2000-07-07 04:53:53 +00:00
steve
583868e74e
Redesign Links to include the Nexus class that
...
carries properties of the connected set of links.
2000-06-25 19:59:41 +00:00
steve
e52ada617e
Get rid of useless next_link method.
2000-06-24 22:55:19 +00:00
steve
66ae567b25
Index in memory assign should be a NetExpr.
2000-06-13 03:24:48 +00:00
steve
c1c0168893
Globally merge redundant event objects.
2000-05-31 02:26:49 +00:00
steve
fd09bc3e3e
Merge similar probes within a module.
2000-05-27 19:33:23 +00:00
steve
367db72c99
Add support for procedural continuous assignment.
2000-05-11 23:37:26 +00:00
steve
b28f258463
Import MCD support from Stephen Tell, and add
...
system function parameter support to the IVL core.
2000-05-07 18:20:07 +00:00
steve
b90cda1f3f
Carry strength values from Verilog source to the
...
pform and netlist for gates.
Change vvm constants to use the driver_t to drive
a constant value. This works better if there are
multiple drivers on a signal.
2000-05-07 04:37:55 +00:00
steve
fbe475ef7d
Add infrastructure for system functions, move
...
$time to that structure and add $random.
2000-05-04 03:37:58 +00:00
steve
69612ceb73
Move memories to the NetScope object.
2000-05-02 03:13:30 +00:00
steve
8d8f1e2401
Move signal tables to the NetScope class.
2000-05-02 00:58:11 +00:00
steve
2b40c7ce11
integer division in expressions properly get width.
2000-04-28 18:43:23 +00:00
steve
08e9a114a2
Catch memory word parameters to tasks.
2000-04-28 16:50:53 +00:00
steve
6e8fe39cc7
Better comments about bufif devices.
2000-04-23 21:17:31 +00:00
steve
6446add9cd
Emit code for the bufif devices.
2000-04-23 21:15:07 +00:00
steve
a8114ae122
Add support for the procedural release statement.
2000-04-23 03:45:24 +00:00
steve
44838f8973
Add support for force assignment.
2000-04-22 04:20:19 +00:00
steve
2094a2f466
Catch some simple identity compareoptimizations.
2000-04-20 00:28:03 +00:00
steve
74c43032b3
Clean up unneeded NetEvent objects.
2000-04-18 04:50:19 +00:00
steve
4f07c43976
Minor cleanup of NetTaskDef.
2000-04-18 01:02:53 +00:00
steve
726f7b8b11
Synthesis of comparator in expressions.
...
Connect the NetEvent and related classes
together better.
2000-04-16 23:32:18 +00:00
steve
7484feceb5
fork-join support in vvm.
2000-04-15 19:51:30 +00:00
steve
4493e968da
Finally remove the NetNEvent and NetPEvent classes,
...
Get synthesis working with the NetEvWait class,
and get started supporting multiple events in a
wait in vvm.
2000-04-12 20:02:52 +00:00
steve
b1fd927acb
Named events really should be expressed with PEIdent
...
objects in the pform,
Handle named events within the mix of net events
and edges. As a unified lot they get caught together.
wait statements are broken into more complex statements
that include a conditional.
Do not generate NetPEvent or NetNEvent objects in
elaboration. NetEvent, NetEvWait and NetEvProbe
take over those functions in the netlist.
2000-04-12 04:23:57 +00:00
steve
8dbd64121f
All events now use the NetEvent class.
2000-04-10 05:26:05 +00:00
steve
30e8289239
Simulate named event trigger and waits.
2000-04-04 03:20:15 +00:00
steve
b62a7ace5c
Remove the useless sref template.
2000-04-02 04:26:06 +00:00
steve
694ff934af
Add support for integer division.
2000-04-01 21:40:22 +00:00
steve
d97ab9be23
New and improved combinational primitives.
2000-03-29 04:37:10 +00:00
steve
6eef54595f
Support localparam.
2000-03-12 17:09:40 +00:00
steve
78ab1a7bba
Locate scopes in statements.
2000-03-11 03:25:51 +00:00
steve
61822d48aa
Handle defparam to partial hierarchical names.
2000-03-10 06:20:48 +00:00
steve
e7efc2709a
Redesign the implementation of scopes and parameters.
...
I now generate the scopes and notice the parameters
in a separate pass over the pform. Once the scopes
are generated, I can process overrides and evalutate
paremeters before elaboration begins.
2000-03-08 04:36:53 +00:00
steve
b734ecf02f
Macintosh compilers do not support ident.
2000-02-23 02:56:53 +00:00
steve
e77bcf6910
Include some block matching from Larry.
2000-02-13 04:35:43 +00:00
steve
aa8908c52f
Multiplication all the way to simulation.
2000-01-13 03:35:35 +00:00
steve
fac3bde2c8
Elaborate parameters afer binding of overrides.
2000-01-10 01:35:23 +00:00
steve
e6820ed169
Handle synthesis of concatenation.
2000-01-01 06:18:00 +00:00
steve
b6d1bb1fa7
Propogate constant 0 in low bits of adders.
1999-12-30 04:19:12 +00:00
steve
4de8ba489d
Rewrite the cprop functor to use the functor_t interface.
1999-12-17 06:18:15 +00:00
steve
65ae92859c
NetConst can now hold wide constants.
1999-12-17 03:38:46 +00:00
steve
d54cc14ca2
Simulate carry output on adders.
1999-12-16 02:42:14 +00:00
steve
76655ce2bb
Allow memories without indices in expressions.
1999-12-12 06:03:14 +00:00
steve
4a6d3a5104
Fix const/non-const errors.
1999-12-09 06:00:00 +00:00
steve
09de918198
Generate XNF RAMS from synthesized memories.
1999-12-05 19:30:42 +00:00
steve
3e2bb85f58
Synthesize LPM_RAM_DQ for writes into memories.
1999-12-05 02:24:08 +00:00
steve
b30b695ff0
Redo synth to use match_proc_t scanner.
1999-12-01 06:06:16 +00:00
steve
e96e8c62be
NetESignal object no longer need to be NetNode
...
objects. Let them keep a pointer to NetNet objects.
1999-11-28 23:42:02 +00:00
steve
4cfa3e4047
Support the creation of scopes.
1999-11-27 19:07:57 +00:00
steve
26288eeeb4
Detect and list scope names.
1999-11-24 04:01:58 +00:00
steve
4cfa715092
Memory name lookup handles scopes.
1999-11-21 17:35:37 +00:00
steve
a81dcd7955
Support memories in continuous assignments.
1999-11-21 00:13:08 +00:00
steve
fae40cf380
handle duplicate connect to a nexus.
1999-11-19 05:02:37 +00:00
steve
8b81d6e416
Detect flip-flops connected to opads and turn
...
them into OUTFF devices. Inprove support for
the XNF-LCA attribute in the process.
1999-11-19 03:02:25 +00:00
steve
9d6392fda9
Turn NetTmp objects into normal local NetNet objects,
...
and add the nodangle functor to clean up the local
symbols generated by elaboration and other steps.
1999-11-18 03:52:19 +00:00
steve
513ade9b95
Support combinatorial comparators.
1999-11-14 23:43:45 +00:00
steve
1624afe1ba
Add support for the LPM_CLSHIFT device.
1999-11-14 20:24:28 +00:00
steve
2cce0ce238
Patch to synthesize LPM_ADD_SUB from expressions,
...
Thanks to Larry Doolittle. Also handle constants
in expressions.
Synthesize adders in XNF, based on a patch from
Larry. Accept synthesis of constants from Larry
as is.
1999-11-05 04:40:40 +00:00
steve
cb5fc54b5e
Patch to synthesize unary ~ and the ternary operator.
...
Thanks to Larry Doolittle <LRDoolittle@lbl.gov>.
Add the LPM_MUX device, and integrate it with the
ternary synthesis from Larry. Replace the lpm_mux
generator in t-xnf.cc to use XNF EQU devices to
put muxs into function units.
Rewrite elaborate_net for the PETernary class to
also use the LPM_MUX device.
1999-11-04 03:53:26 +00:00
steve
50e47c4173
Elaborate combinational UDP devices.
1999-11-04 01:12:41 +00:00
steve
b66e7b1713
Add the synthesize method to NetExpr to handle
...
synthesis of expressions, and use that method
to improve r-value handling of LPM_FF synthesis.
Modify the XNF target to handle LPM_FF objects.
1999-11-02 04:55:34 +00:00
steve
89881adece
Add the synth functor to do generic synthesis
...
and add the LPM_FF device to handle rows of
flip-flops.
1999-11-01 02:07:40 +00:00
steve
71ecf8c143
Add to netlist links pin name and instance number,
...
and arrange in vvm for pin connections by name
and instance number.
1999-10-31 04:11:27 +00:00
steve
19b8615363
Support evaluating + operator at compile time.
1999-10-10 23:29:37 +00:00
steve
70a1236626
Structural case equals device.
1999-10-10 01:59:54 +00:00
steve
f949f96df1
Add non-const bit select in l-value of assignment.
1999-10-07 05:25:33 +00:00
steve
1d215998b2
Move the rvalue into NetAssign_ common code.
1999-10-06 05:06:16 +00:00
steve
efa5222c66
Handle mutual reference of tasks by elaborating
...
task definitions in two passes, like functions.
1999-09-30 21:28:34 +00:00
steve
c63a3acf93
Elaborate ~^ and ~| operators.
1999-09-30 02:43:01 +00:00
steve
a64a33e65a
Full case support
1999-09-29 18:36:02 +00:00
steve
900949ab56
Get the bit widths of unary operators that return one bit.
1999-09-28 03:11:29 +00:00
steve
bb38653654
Parse system function calls.
1999-09-25 02:57:29 +00:00
steve
1a21d2fe9d
Support shift operators.
1999-09-23 03:56:57 +00:00
steve
1c41f8ebd2
Move set_width methods into a single file,
...
Add the NetEBLogic class for logic expressions,
Fix error setting with of && in if statements.
1999-09-23 00:21:54 +00:00
steve
0955058fbe
Catch parallel blocks in vvm emit.
1999-09-22 16:57:23 +00:00
steve
349f9ae302
Support parameters that reference other paramters.
1999-09-21 00:13:40 +00:00
steve
3a5e55b229
Elaborate parameters in phases.
1999-09-20 02:21:10 +00:00
steve
dab04c221d
Detect constant lessthen-equal expressions.
1999-09-18 01:53:08 +00:00
steve
4594ac1c2c
elaborate concatenation repeats.
1999-09-16 04:18:15 +00:00
steve
b04148b754
Elaborate non-blocking assignment to memories.
1999-09-15 01:55:06 +00:00
steve
7a211b9136
Clarify msb/lsb in context of netlist. Properly
...
handle part selects in lval and rval of expressions,
and document where the least significant bit goes
in NetNet objects.
1999-09-13 03:10:59 +00:00
steve
1c238f1948
Support ternary and <= operators in vvm.
1999-09-11 04:43:17 +00:00
steve
d6fbc30cd5
Allow assign to not match rvalue width.
1999-09-08 04:05:30 +00:00
steve
41a1c6bb02
elaborate the binary plus operator.
1999-09-03 04:28:38 +00:00
steve
9f7eb4a935
Handle recursive functions and arbitrary function
...
references to other functions, properly pass
function parameters and save function results.
1999-09-01 20:46:19 +00:00
steve
e69345b9fe
Elaborate and emit to vvm procedural functions.
1999-08-31 22:38:29 +00:00
steve
23acca48ff
elaborate some aspects of functions.
1999-08-25 22:22:41 +00:00
steve
031d91f813
Fixup spelling and some error messages. <LRDoolittle@lbl.gov>
1999-08-18 04:00:02 +00:00
steve
c33b0c2262
Handle scope of parameters.
1999-08-06 04:05:28 +00:00
steve
444c83b19a
set width of procedural r-values when then
...
l-value is a memory word.
1999-08-01 21:48:11 +00:00
steve
71d35f32b2
Parse and elaborate rise/fall/decay times
...
for gates, and handle the rules for partial
lists of times.
1999-08-01 16:34:50 +00:00
steve
d2f77defe6
move binary operators to derived classes.
1999-07-31 03:16:54 +00:00
steve
93a77a2efd
Elaborate task input ports.
1999-07-24 02:11:19 +00:00
steve
563ec1bb81
Add support for CE input to XNF DFF, and do
...
complete cleanup of replaced design nodes.
1999-07-18 21:17:50 +00:00