Martin Whitaker
081f5e6960
tgt-vlog95: Fix infinite loop caused by searching the wrong scope.
2016-03-12 23:11:11 +00:00
Martin Whitaker
5d9a196819
tgt-vlog95: Handle variable initialisation in named blocks.
2016-03-12 23:06:54 +00:00
Martin Whitaker
dc189fec8c
Added new vvp latch statement to README file.
2016-03-12 12:14:03 +00:00
Maciej Suminski
9d487c6951
vhdlpp: Fixed a few shadow warnings.
2016-03-12 12:03:17 +00:00
Martin Whitaker
708a7d0621
Move some redundant initialisation of bitmasks in synthesis.
...
These are made obsolete by an earlier bugfix.
2016-03-12 12:02:22 +00:00
Martin Whitaker
b4d438ea9f
Fixed bug in vlog95 dff output when using asynchronous set.
2016-03-12 11:39:32 +00:00
Martin Whitaker
22bc798696
Added warning when a latch enable is a synthesised expression.
2016-03-12 11:21:23 +00:00
Martin Whitaker
c0542af6bf
Updated copyright dates following previous patch.
2016-03-12 09:10:58 +00:00
Johann Klammer
89333fa3a5
add latch primitive for vlog95
2016-03-12 09:06:42 +00:00
Martin Whitaker
99afea6946
Added support for LPM latches to vvp.
2016-03-12 09:04:51 +00:00
Martin Whitaker
b47482880c
Added support for LPM latches to stub target.
2016-03-12 09:03:42 +00:00
Martin Whitaker
5dfc9fdefb
Code and comment cleanup for latches in target interface.
2016-03-12 00:10:47 +00:00
Johann Klammer
d7736d7eba
latch for vvp output
2016-03-11 23:44:06 +00:00
Johann Klammer
35a61b4680
Add LATCH to target interface
2016-03-11 23:43:58 +00:00
Martin Whitaker
0e537c5465
Enable latch generation in synthesis.
...
(reworked patch supplied by Johann Klammer)
2016-03-11 23:29:58 +00:00
Martin Whitaker
81d3b7a25c
Updated copyright notices.
2016-03-11 23:14:55 +00:00
Johann Klammer
c92b630728
NetLatch class
2016-03-11 23:11:54 +00:00
Martin Whitaker
f176106c54
Added notes on synthesis implementation.
2016-03-11 18:35:13 +00:00
Martin Whitaker
c1c4d8c863
Fix bitmask merging in synthesis.
...
A conditional clause that doesn't drive any bits of a particular nexus
should not affect the bitmask generated for that nexus. The completely
undriven case is handled by the enable signal.
2016-03-11 17:32:12 +00:00
Stephen Williams
6a8303bdaf
Merge pull request #92 from orsonmmz/vhdlpp_fixes
...
Vhdlpp fixes
2016-03-07 09:05:36 -08:00
Maciej Suminski
de775975e8
ivl: Fixed slice base calculation
...
when range is rising (e.g. logic [0:3] arr) or when it
starts with a non-zero integer (e.g. logic [4:1] arr).
2016-03-07 17:11:53 +01:00
Maciej Suminski
770906ba0d
vhdlpp: Write binary constants as a string of bits.
2016-03-07 17:11:53 +01:00
Maciej Suminski
c25be111a3
vhdlpp: Apply case equality operator for logic type.
2016-03-07 17:11:53 +01:00
Maciej Suminski
41a45a8db0
vhdlpp: Avoid unnecessary toupper() call.
2016-03-07 17:11:53 +01:00
Maciej Suminski
7c10de918e
vhdlpp: read() takes into account the size of the destination variable.
2016-03-07 17:11:53 +01:00
Maciej Suminski
94f7504372
vhdlpp: Subprograms are linked to Package instead of generic Scope.
2016-03-07 17:11:53 +01:00
Maciej Suminski
78d6ee26dd
vhdlpp: Do not allow 'wire real' nets.
2016-03-07 17:11:49 +01:00
Maciej Suminski
7bb4cef9bc
vhdlpp: ExpScopedName class to handle names with a specified scope.
2016-03-07 11:38:11 +01:00
Maciej Suminski
03e85850e1
vhdlpp: Variables are moved to respective process scopes.
2016-03-07 11:38:11 +01:00
Maciej Suminski
b037d533f9
vhdlpp: ProcessStatement inherits after ScopeBase.
2016-03-07 11:38:11 +01:00
Maciej Suminski
25cd0827ba
vhdlpp: Removed ProcessStatement::rewrite_as_always_edge_() & extract_anyedge_().
...
Processes sensitive to edges are now handled with $ivlh_{rising,falling}_edge().
2016-03-07 11:38:11 +01:00
Maciej Suminski
7cbb275ffe
vhdlpp: Handle limited-length strings in reports.
...
Currently limited-length strings (e.g. string(1 to 4)) are
emulated using 2D array of bits (e.g. bit [1:4][7:0]).
Because of that, ivl treats them as standard vectors and
$display() does not show them as strings. Now, they are
wrapped with $sformatf("%s", ..) to fix it.
2016-03-07 11:38:11 +01:00
Maciej Suminski
e4bc404e99
vhdlpp: ExprVisitor stores the recursion level.
2016-03-07 09:54:28 +01:00
Maciej Suminski
cef45ff21a
vhdlpp: Emit init values for wires as a weak assignment.
2016-03-07 09:54:28 +01:00
Maciej Suminski
fca2fff24e
vhdlpp: VTypeRange::type_match()
2016-03-07 09:54:28 +01:00
Maciej Suminski
1ed4603a18
vhdlpp: Set EOF flag right after reaching the end of file.
2016-03-07 09:54:28 +01:00
Maciej Suminski
83330c22fb
vhdlpp: Refactored code for format matching in read/write() sys functions.
2016-03-07 09:54:28 +01:00
Maciej Suminski
a7f4d65aaa
vhdlpp: More robust report messages display.
2016-03-07 09:54:28 +01:00
Maciej Suminski
9cf1dcbae2
vvp: Corrected vvp_net_fun_t::recv_vec4_pv() (commit de968e18)
2016-03-07 09:54:28 +01:00
Maciej Suminski
c23f970a5f
vhdlpp: Do not display an error message when probing type without a context.
2016-03-07 09:54:28 +01:00
Maciej Suminski
f620727555
vhdlpp: Added a few missing FILE_NAME directives in the parser.
2016-03-07 09:54:28 +01:00
Maciej Suminski
b4baace4b1
ivl: Support for part selection in multidimensional packed ports assignment.
2016-03-07 09:54:28 +01:00
Maciej Suminski
045d9e7117
vhdlpp: Improved type matching rules.
2016-03-07 09:54:28 +01:00
Maciej Suminski
69b7c000d0
vvp: Implemented vvp_net_fun_t::recv_vec4_pv().
2016-03-07 09:54:28 +01:00
Maciej Suminski
a40d1a65c4
vhdlpp: Emit enum type as int.
2016-03-07 09:54:28 +01:00
Maciej Suminski
248275e5e1
vhdlpp: Refactored VType::emit_decl().
2016-03-07 09:54:28 +01:00
Maciej Suminski
5f1cd624fe
vhdlpp: Set reg flag only for arrays of unpacked types.
2016-03-07 09:54:28 +01:00
Maciej Suminski
996201a745
vhdlpp: Time type can be packed.
2016-03-07 09:54:28 +01:00
Maciej Suminski
1647e192e5
vhdlpp: Added ExpDelay::visit() method.
2016-03-07 09:54:28 +01:00
Maciej Suminski
f802c782b8
vhdlpp: Elaborate wait statement argument as time type.
2016-03-07 09:54:28 +01:00