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
Maciej Suminski
f88b48c7da
vhdlpp: Do not emit explicit 'reg' for user-defined types.
2016-03-07 09:54:28 +01:00
Maciej Suminski
d20549b27a
vhdlpp: Fixed a crash in case of dynamic_cast failure.
2016-03-07 09:54:28 +01:00
Maciej Suminski
bba312fee1
vhdlpp: Minor code formatting.
2016-03-07 09:54:28 +01:00
Maciej Suminski
78bd9a389d
vhdlpp: Handle multidimensional arrays based on typedefs.
2016-03-07 09:54:28 +01:00
Maciej Suminski
f584b4ea50
vhdlpp: Treat range as an expression.
2016-03-07 09:54:28 +01:00
Maciej Suminski
5488ea1e2c
vhdlpp: Support for ExpNames with multiple indices.
2016-03-07 09:54:28 +01:00
Maciej Suminski
34b5834a84
vhdlpp: Added file_open() variant that returns status.
2016-03-07 09:54:28 +01:00
Maciej Suminski
0f3f8907c3
vhdlpp: Removed an unnecessary check.
2016-03-07 09:54:28 +01:00
Maciej Suminski
08150eae83
vhdlpp: Add line information for procedure calls.
2016-03-07 09:54:28 +01:00
Maciej Suminski
609f266a8c
vhdlpp: Additional variants for standard library functions.
2016-03-07 09:54:28 +01:00
Maciej Suminski
2c4deee0c3
vhdlpp: Support for subprogram overloading.
2016-03-07 09:54:28 +01:00
Maciej Suminski
cfa038e75c
vhdlpp: VType::type_match() fixes.
2016-03-07 09:54:28 +01:00
Maciej Suminski
ad5b003488
vhdlpp: Improved handling for subprogram-related errors.
2016-03-07 09:54:28 +01:00
Maciej Suminski
8d3f559b38
vhdlpp: ExpName::probe_prefixed() returns correct type for complex expressions.
...
E.g. array_of_records(2).fieldname
2016-03-07 09:54:28 +01:00
Maciej Suminski
25671048f6
vhdlpp: ExpInteger::probe_type() returns either INTEGER or NATURAL, depending on the value.
2016-03-07 09:54:28 +01:00