Maciej Suminski
5b0bf08638
vhdlpp: Simplified a few find_* functions.
2015-11-23 16:25:08 +01:00
Maciej Suminski
0569474d17
vhdlpp: Evaluate power (**) and division remainder (REM) operators.
2015-11-23 16:25:08 +01:00
Christian Taedcke
6d5aabd4f0
Make a few constructors explicit.
...
This removes cppcheck warnings.
2015-10-22 12:33:33 +02:00
Martin Whitaker
9f4b485c1c
Updated copyright dates displayed for main programs and targets.
2015-08-17 22:05:08 +01:00
Larry Doolittle
29478eba4c
Squelch just a few trailing spaces in source code
2015-08-17 11:44:45 -07:00
Larry Doolittle
4dd65926ae
Spelling fixes
2015-08-17 11:35:10 -07:00
Maciej Suminski
434bf0fe46
Fixed vhdlpp bison conflicts.
2015-08-12 11:43:09 -07:00
Maciej Suminski
fc2139f01c
vhdlpp: Allow sequence_of_statements to be empty.
...
Fix for br987.
2015-08-09 19:45:44 +02:00
Maciej Suminski
775904ab0f
vhdlpp: ExpName::elaborate_rval accepts enum values.
...
Fix for br986.
2015-08-09 18:48:59 +02:00
Maciej Suminski
0ae3414ec5
vhdlpp: ExpUnary::elaborate_expr() elaborates its operand as well.
...
Fix for br985.
2015-08-09 18:48:15 +02:00
Maciej Suminski
f3321126ed
vhdlpp: Fixed a problem with types defined as an array of arrays.
2015-08-09 16:43:04 +02:00
Frederick C. Kurz
4cf4cdabcd
Changes to vhdlpp/expression.cc
...
Changed for "Microsoft Visual Studio Express 2015 RC Web" for runtime memory access violation for vhdl_test4.vhd.
2015-07-22 13:19:50 -07:00
Maciej Suminski
df597e19cb
vhdlpp: Removed conversion of '*_edge(sig)' to 'always begin..end @(*edge sig)'.
2015-06-24 23:53:33 +02:00
Maciej Suminski
5509b3c7a5
vhdlpp: Enums are based on integer type.
...
This way than can be used as output ports.
2015-06-24 23:53:33 +02:00
Maciej Suminski
49253c43ba
vhdlpp: Do not emit reg/wire prefix for enums.
2015-06-24 23:53:33 +02:00
Maciej Suminski
5858e1bbac
vhdlpp: ExpName::probe_type() checks Subprogram parameters.
2015-06-24 23:53:33 +02:00
Maciej Suminski
95044d9ac7
vhdlpp: VType::type_match() checks definitions provided by VTypeDef.
2015-06-24 23:53:33 +02:00
Maciej Suminski
c6f934964f
vhdlpp: NOT is translated to either ~(...) or !(...) depending on the argument type.
2015-06-24 23:53:32 +02:00
Maciej Suminski
6f867d6f01
vhdlpp: Changed 'char' to 'byte'.
2015-06-24 23:53:32 +02:00
Maciej Suminski
e6b57910a4
vhdlpp: ScopeBase::is_enum_name checks enums from standard libraries.
2015-06-24 23:53:32 +02:00
Maciej Suminski
cc9b182eb6
vhdlpp: Procedure calls.
2015-06-24 23:53:32 +02:00
Maciej Suminski
d39f692cfd
vhdlpp: Refactored the way of handling standard types.
2015-06-24 23:53:32 +02:00
Maciej Suminski
b666b9c0bf
vhdlpp: Fixed a few memory leaks.
2015-06-24 23:53:32 +02:00
Maciej Suminski
b3c1fa3e85
vhdlpp: Elaborate prefix & indices for ExpName.
2015-06-24 23:53:32 +02:00
Maciej Suminski
169228ad0f
vhdlpp: Refactored the way of handling standard VHDL library functions.
2015-06-24 23:53:31 +02:00
Maciej Suminski
356a09d295
vhdlpp: VTypeArray::evaluate_ranges uses range boundaries to determine the direction.
2015-06-24 23:53:31 +02:00
Maciej Suminski
47c5ce0ab6
vhdlpp: Subprogram split to SubprogramHeader and SubprogramBody.
2015-06-24 23:53:31 +02:00
Maciej Suminski
3c437874e2
vhdlpp: Allow initializers for variables.
2015-06-24 23:53:31 +02:00
Maciej Suminski
c28000c55f
vhdlpp: Support for selected assignments.
2015-06-24 23:53:31 +02:00
Maciej Suminski
5a0d967682
vhdlpp: More renaming in ExpConditional.
2015-06-24 23:53:31 +02:00
Maciej Suminski
49efe6573c
vhdlpp: Minor ExpConditional refactoring.
...
Merged cond_ and true_clause_ to else_clause_ list to make
code more generic.
2015-06-24 23:53:31 +02:00
Maciej Suminski
ea12c0fe23
vhdlp: Renamed ExpConditional::else_t to ExpConditional::option_t.
2015-06-24 23:53:31 +02:00
Larry Doolittle
b23faff27c
Just a few more spelling fixes
...
Includes some user-visible messages
2015-06-17 08:09:34 -07:00
Maciej Suminski
29ddd5208f
vhdlpp: 'wait on' and 'wait until' statements.
2015-06-08 18:42:52 +02:00
Maciej Suminski
4a31f36646
vhdlpp: Minor code cleaning.
2015-06-08 18:42:52 +02:00
Maciej Suminski
1f1d47887e
vhdlpp: Visitor for Expression class.
2015-06-08 18:42:52 +02:00
Maciej Suminski
68f8007fc4
vhdlpp: 'wait for' statement.
2015-06-08 18:42:52 +02:00
Maciej Suminski
d6ff1946f9
vhdlpp: Support for time expressions.
2015-06-08 18:42:52 +02:00
Larry Doolittle
2739f83702
Spelling fixes in C and C++ comments
2015-06-04 15:00:29 -07:00
Maciej Suminski
51d7237d52
vhdlpp: Display error message for undefined generic values.
2015-05-21 01:25:34 +02:00
Maciej Suminski
7aab315ce5
vhdlpp: Allow assigning values to inout ports.
2015-05-20 17:30:07 +02:00
Maciej Suminski
bc83d2914a
vhdlpp: Corrected an error message for attributes.
2015-05-20 14:23:57 +02:00
Maciej Suminski
bb2e6782fa
Copy constructor for LineInfo.
2015-05-19 22:40:56 +02:00
Larry Doolittle
9231ad51a4
vhdlpp: generics without a default value are set to 1'bx.
2015-05-19 22:40:56 +02:00
Maciej Suminski
25458b8cc2
vhdlpp: inout direction for ports.
2015-05-19 22:40:56 +02:00
Maciej Suminski
515ab40ffe
vhdlpp: Special handling for string type emission.
2015-05-19 22:40:56 +02:00
Maciej Suminski
ddc204391e
vhdlpp: Add 'sub' prefix for subtypes while emitting packages.
2015-05-19 22:40:55 +02:00
Maciej Suminski
a33bbecc98
vhdlpp: VTypeRange::write_to_stream uses to/downto depending on the range boundaries.
2015-05-19 22:40:55 +02:00
Stephen Williams
7442c14689
Merge pull request #67 from orsonmmz/boolean
...
Boolean & asserts for vhdlpp
2015-05-13 09:57:18 -07:00
Maciej Suminski
7db01d8ded
vhdlpp: ScopeBase::is_enum_name() returns VTypeEnum* instead of bool.
2015-05-07 16:28:30 +02:00
Maciej Suminski
e4694cb6cb
vhdlpp: Changed emitted type from 'bool' to 'bit'.
2015-05-07 16:09:02 +02:00
Maciej Suminski
08e5aa021a
vhdlpp: Emits typedef for boolean type.
2015-05-07 16:09:02 +02:00
Larry Doolittle
4304fd503e
vhdlpp: and_reduce() and or_reduce() functions.
2015-05-06 10:03:02 +02:00
Maciej Suminski
5438464d67
vhdlpp: Support for reports & asserts.
2015-05-06 10:02:56 +02:00
Maciej Suminski
6df2979998
vhdlpp: Added missing std_logic values in ExpChar and ExpString::emit().
2015-05-06 09:55:08 +02:00
Maciej Suminski
9de4ced133
vhdlpp: Stop compilation on invalid attributes.
2015-05-06 09:55:08 +02:00
Larry Doolittle
c8fe897446
vhdlpp: and_reduce() and or_reduce() functions.
2015-04-24 13:46:30 +02:00
Maciej Suminski
5101b3b64b
vhdlpp: Boolean values handled without using keywords.
2015-04-24 13:39:41 +02:00
Maciej Suminski
bed5ee4529
vhdlpp: Handle 'severity' statements without using keywords.
2015-04-24 13:39:41 +02:00
Maciej Suminski
7c0a191626
vhdlpp: Handle true/false values.
2015-04-23 11:58:40 +02:00
Maciej Suminski
cfa43c7742
vhdlpp: Support for reports & asserts.
2015-04-23 11:58:40 +02:00
Maciej Suminski
a5138e238f
vhdlpp: Added missing std_logic values in ExpChar and ExpString::emit().
2015-04-23 11:57:27 +02:00
Maciej Suminski
d352d8ead3
vhdlpp: Stop compilation on invalid attributes.
2015-04-23 11:57:27 +02:00
Larry Doolittle
5dc1396eea
Spelling fixes
2015-04-13 11:35:12 -07:00
Maciej Suminski
0ca856d4e8
bugfix #942 : VHDL function bodies in arch declaration not supported
2015-03-31 10:46:24 +02:00
Maciej Suminski
d5ffb55bfd
Corrected ambiguous copyright info.
2015-03-27 18:57:40 +01:00
Maciej Suminski
ab9a8ccbf3
vhdlpp: Added fit_type() & probe_type() for ExpFunc.
2015-03-27 18:57:40 +01:00
Maciej Suminski
e6525ec35f
vhdlpp: Added a constructor for VTypeArray that takes integers as ranges.
2015-03-27 18:57:40 +01:00
Maciej Suminski
afaedbd06d
vhdlpp: Corrected to_integer() & resize() functions.
...
to_integer() handles sign and resize() really applies size casting.
2015-03-27 14:53:43 +01:00
Maciej Suminski
d4237774a5
vhdlpp: Error message for missing types in VTypePrimitive::get_width().
2015-03-27 14:53:43 +01:00
Maciej Suminski
2f2539e557
vhdlpp: Renamed a range_t constructor parameter to be more descriptive.
2015-03-27 14:53:43 +01:00
Maciej Suminski
3b14797075
vhdlpp: Prefix probe for VTypeArray.
2015-03-27 14:53:43 +01:00
Maciej Suminski
d1dc98b7f7
vhdlpp: Changed the workaround for accessing localparam arrays & records.
2015-03-07 20:47:20 +01:00
Maciej Suminski
295e4e7dfb
vhdlpp: Fixed crash on unassociated generics.
2015-03-06 20:39:10 +01:00
Maciej Suminski
807ad8002d
vhdlpp: Check generics when searching through constants.
2015-03-06 20:39:10 +01:00
Maciej Suminski
d3229b9068
vhdlpp: 'string' type is emitted as 'string' instead of 'array <> of character'.
2015-03-06 17:58:04 +01:00
Maciej Suminski
099bb427bc
vhdlpp: ComponentBase::write_to_stream() saves generics.
2015-03-06 17:58:04 +01:00
Maciej Suminski
1de3fb1625
vhdlpp: "resize" function.
2015-03-06 17:58:04 +01:00
Maciej Suminski
e33b8b4dde
vhdlpp: VType::get_width() uses information from Scope to determine the type width.
2015-03-06 17:58:04 +01:00
Maciej Suminski
9128eb67b9
vhdlpp: Evaluates attributes if possible.
2015-03-06 17:32:25 +01:00
Maciej Suminski
afbda099fb
vhdlpp: Workaround to handle constant arrays of vectors & records.
2015-03-06 17:32:25 +01:00
Maciej Suminski
4b0d220671
vhdlpp: get_width() for VType.
2015-03-06 17:32:25 +01:00
Maciej Suminski
a42b056b24
vhdlpp: Alternative way of accessing constant arrays of vectors.
2015-03-06 17:32:25 +01:00
Maciej Suminski
1852c5ab9d
Revert "vhdlpp: Support for accessing words in constant arrays."
...
This reverts commit 9ca754b6db .
2015-03-06 17:32:25 +01:00
Maciej Suminski
9ca754b6db
vhdlpp: Support for accessing words in constant arrays.
2015-02-19 17:07:41 +01:00
Maciej Suminski
0f0bef32f2
vhdlpp: Architecture elaboration counts errors coming from expression elaboration.
2015-02-19 17:07:41 +01:00
Maciej Suminski
cd55f30a27
vhdlpp: Minor change to ScopeBase::find_constant().
2015-02-19 17:07:41 +01:00
Maciej Suminski
5884879b02
vhdlpp: to_integer() function.
2015-02-19 17:07:41 +01:00
Maciej Suminski
a1a4f47894
vhdlpp: Unnecessary comment.
2015-02-19 17:07:41 +01:00
Maciej Suminski
e569e07d4e
vhdlpp: Type 'NATURAL' is translated to 'int unsigned'.
2015-02-19 17:07:41 +01:00
Maciej Suminski
ee840391d6
vhdlpp: std_logic_vector, signed & unsigned are considered global types.
2015-02-19 17:07:41 +01:00
Maciej Suminski
0046e9eca0
vhdlpp: ActiveScope::is_vector_name() checks also for constants.
2015-02-19 17:07:41 +01:00
Maciej Suminski
f51c037432
vhdlpp: Generics from external packages are accepted (warning instead of error).
2015-02-19 17:07:37 +01:00
Maciej Suminski
763c6fe3c9
vhdlpp: Support for shift operators (SRL, SRR, SRA, SLA).
...
To be done: ROR & ROL.
2015-02-17 10:15:57 +01:00
Maciej Suminski
49b6ddf93c
vhdlpp: Signal/variable assignments can have labels.
2015-02-17 10:15:57 +01:00
Maciej Suminski
12b4914b63
vhdlpp: ExpName resolves enum values.
2015-02-17 10:15:57 +01:00
Maciej Suminski
fc0728ab6f
vhdlpp: Forward typedefs.
...
It was required to make it possible to use typedefs in port types.
Types from packages are emitted in `ifdef..`endif instead of package..endpackage.
The purest solution is to keep package..endpackage and emit appropriate prefix.
Also, it would be great to have constants emitted in the same way.
2015-02-17 10:15:57 +01:00
Maciej Suminski
cdf18de10e
vhdlpp: Make integer expressions sized during the emission step.
2015-02-05 16:20:49 +01:00
Maciej Suminski
19ff6a434b
vhdlpp: Alternative way of dealing with unbounded vectors in fuctions (instances).
2015-02-05 12:00:25 +01:00
Maciej Suminski
5349ca9a55
vhdlpp: Added Subprogram::write_to_stream_body() method.
2015-02-05 12:00:25 +01:00
Maciej Suminski
5b7b980ead
vhdlpp: Support for multiple choices in case statements.
2015-02-05 12:00:25 +01:00
Maciej Suminski
a1c2a8e605
vhdlpp: Generic syntax errors display messages.
2015-02-05 11:25:03 +01:00
Maciej Suminski
8777cd8e7c
vhdlpp: Fixed ExpBitstring & ExpRelation write_to_stream() method.
2015-02-05 11:25:03 +01:00
Maciej Suminski
11bb7ac348
vhdlpp: Expression::write_to_stream becomes const.
2015-02-05 11:25:03 +01:00
Maciej Suminski
9de69f2f24
vhdlpp: SequentialStmts write_to_stream() methods.
2015-02-05 11:25:03 +01:00
Maciej Suminski
dae3410dcd
vhdlpp: Variable::write_to_stream().
2015-02-05 11:25:03 +01:00
Maciej Suminski
1a367c84b6
vhdlpp: Subprograms can have instances that take a different set of parameter types.
2015-02-05 11:25:03 +01:00
Maciej Suminski
8a854affa6
vhdlpp: Clone routines for Expression & VType classes.
2015-02-05 11:25:03 +01:00
Maciej Suminski
60077f4f06
vhdlpp: ExpBitstring elaborate_expr().
2015-02-05 11:25:03 +01:00
Maciej Suminski
51ce9f1a60
vhdlpp: Minor correction for casting to integer.
2015-02-05 11:25:03 +01:00
Maciej Suminski
48265ecd9b
vhdlpp: Subprograms return types have their ranges evaluated if possible.
...
Added VTypeArray::evaluate_ranges() method.
2015-02-05 11:24:59 +01:00
Maciej Suminski
abbcea64d0
vhdlpp: Array attributes can be evaluated in packages/functions.
2015-02-04 16:57:43 +01:00
Maciej Suminski
25c3798248
vhdlpp: Elaborate and emit functions work with ScopeBase instead of Architecture.
2015-02-04 16:57:43 +01:00
Maciej Suminski
90293d8e0a
vhdlpp: VTypeArray::is_variable_length() uses ScopeBase to determine if variable has constant length.
2015-02-04 16:57:43 +01:00
Maciej Suminski
621cf37339
vhdlpp: Added ScopeBase::find_param() method.
2015-02-04 16:57:43 +01:00
Maciej Suminski
6d75af86e6
vhdlpp: Added Subprogram::fix_variables() method.
2015-02-04 16:57:43 +01:00
Maciej Suminski
5d26f0e28d
vhdlpp: Added VTypeArray::is_variable_length() method.
2015-02-04 16:57:43 +01:00
Maciej Suminski
774609fbbb
vhdlpp: VTypeArray stores parent type, in case it is a subtype.
2015-02-04 16:57:43 +01:00
Maciej Suminski
9ba7694484
vhdlpp: Minor assert.
2015-02-04 16:57:43 +01:00
Maciej Suminski
870a826225
vhdlpp: Corrected VTypeDef::emit_def() to allow typedefed names in function headers.
2015-02-04 16:57:43 +01:00
Maciej Suminski
2ecfed0baa
vhdlpp: Moved part of check_unb_vector() to fix_logic_darray().
2015-02-04 16:57:43 +01:00
Maciej Suminski
56e410f386
vhdlpp: SigVarBase::peek_name_() method made public.
2015-02-04 16:57:43 +01:00
Maciej Suminski
d4dd635bf6
vhdlpp: Added ExpNew class.
2015-02-04 16:57:43 +01:00
Maciej Suminski
c287281bbe
vhdlpp: Tries to determine if function return type is fixed size.
...
Added Subprogram::fixed_return_type() method.
2015-02-04 16:57:43 +01:00
Maciej Suminski
962330f20a
vhdlpp: Functions support unbounded vectors as return type and parameters.
2015-02-04 16:57:43 +01:00
Maciej Suminski
777e7e0a3d
vhdlpp: Added ExpFunc::func_ret_type() method.
2015-02-04 16:57:43 +01:00
Maciej Suminski
839f9cd7ae
vhdlpp: Added ReturnStmt::cast_to() method.
2015-02-04 16:57:43 +01:00
Maciej Suminski
b8b2f53027
vhdlpp: Added VType::get_generic_typename() method.
2015-02-04 16:57:43 +01:00
Maciej Suminski
9b3bd039bb
vhdlpp: Added ExpCast class.
2015-02-04 16:57:42 +01:00
Maciej Suminski
51b9191021
vhdlpp: Added VType::is_unbounded() method.
2015-02-04 16:57:42 +01:00
Maciej Suminski
ff5b696569
vhdlpp: Improved SequentialStmt visitor.
2015-02-04 16:02:38 +01:00
Maciej Suminski
b05a19dffc
vhdlpp: VTypeArray emits dimensions in a bit smarter way.
2015-02-04 16:02:38 +01:00
Maciej Suminski
e6b22a2bea
vhdlpp: Visitor for SequentialStmt.
2015-02-04 16:02:38 +01:00
Maciej Suminski
0592ba042e
vhdlpp: For-loop emission rewritten to handle 'range in subprograms.
2015-02-04 16:02:38 +01:00
Stephen Williams
6fd10dedb6
Add some implicit support for std and textio libraries
...
Patch submitted by Fabrizio Ferrandi.
2014-12-18 08:20:19 -08:00
Cary R
2e8c4e3dbc
Basic patch from github #44
2014-11-04 11:39:01 -08:00
Maciej Suminski
c55a013162
vhdlpp: Support for integer() function.
...
Note: I could not find any info about the integer() function, but it is
used in the VHDL standard packages (e.g. math_real, see:
http://www.csee.umbc.edu/portal/help/VHDL/packages/mathpack.vhd )
Real numbers are rounded, this is compatible with ModelSim behavior.
2014-10-17 14:53:59 +02:00
Maciej Suminski
dfbca0b186
vhdlpp: Emit use_types in Architecture.
2014-10-17 14:13:06 +02:00
Maciej Suminski
4a779f43bd
vhdlpp: Fix error message for 'right attribute.
2014-10-17 14:13:06 +02:00
Maciej Suminski
97df6183a9
vhdlpp: Emit '-' std_logic value as 'x'.
...
Note: It is not a direct ("don't care" vs "unknown"), but I could not
find anything that suits better.
2014-10-17 14:13:06 +02:00
Maciej Suminski
95faed8e9d
vhdlpp: Added basic support for concatenated expressions.
2014-10-15 10:51:21 +02:00
Maciej Suminski
76aab15798
vhdlpp: Minor code cleaning.
2014-10-15 10:51:21 +02:00
Cary R
e896f0c8e6
Remove some compile warnings in the vhdlpp code
2014-10-14 09:03:42 -07:00
Maciej Suminski
9ff9cbf4aa
vhdlpp: Smarter determining the direction in for loops.
2014-10-10 18:39:14 +02:00
Maciej Suminski
a992f3ce7c
vhdlpp: Evaluation for 'left and 'right attributes.
2014-10-10 18:35:17 +02:00
Maciej Suminski
8cac72192f
vhdlpp: Fix array typedefs in packages.
2014-10-09 10:37:33 +02:00
Maciej Suminski
7f6100be2a
vhdlpp: Emit VHDL 'integer' as SystemVerilog 'int'.
2014-10-09 10:29:14 +02:00
Maciej Suminski
4b60d2737e
vhdlpp: Skip signed & unsigned in types dump in packages.
2014-10-09 10:28:35 +02:00
Maciej Suminski
c7beef907d
vhdlpp: Support for 'range and 'reverse_range attributes.
2014-10-08 11:18:06 +02:00
Maciej Suminski
44da7de651
vhdlpp: prange_t may have the direction determined automatically.
2014-10-08 10:26:37 +02:00
Maciej Suminski
6887c82540
vhdlpp: Added ExpAttribute::write_to_stream().
2014-10-08 10:21:03 +02:00
Maciej Suminski
1333bc54a2
vhdlpp: Support for 'left & 'right attributes.
2014-10-08 10:05:04 +02:00
Maciej Suminski
fddb3ec129
vhdlpp: ForLoopStatement emits range boundaries expressions instead of evaluating them.
...
Unfortunately without evaluation it is not possible to warn against
degenerated loops, so it had to be removed.
2014-10-07 14:25:00 +02:00
Maciej Suminski
fde6525acb
vhdlpp: Libraries are searched for subprograms during the ExpFunc elaboration.
2014-10-01 14:56:32 +02:00
Maciej Suminski
194a950f8d
vhdlpp: Elaboration of ExpFunc parameters fallbacks to the types given in the Subprogram header.
2014-09-30 15:59:46 +02:00
Maciej Suminski
9951521212
vhdlpp: Subprogram parameters are taken into account when distinguishing between function calls and vector elements.
2014-09-30 15:59:46 +02:00
Maciej Suminski
9e856810b9
vhdlpp: Workaround to avoid translation of variables to wires in functions.
2014-09-30 15:59:45 +02:00
Maciej Suminski
675b7d8efa
vhdlpp: Support for std_logic_vector return type in functions.
...
VHDL does not allow to specify the size of returned std_logic_vector,
whereas Verilog requires the size to be known in advance. The size of
the vector is determined by checking the type of expression used in the
return statement.
2014-09-30 15:58:26 +02:00
Maciej Suminski
e352bea476
vhdlpp: Support for variable declarations in subprograms.
...
Fixes sorrymsg: "variable_declaration not supported."
2014-09-30 15:58:13 +02:00
Maciej Suminski
747e656a0e
vhdlpp: Added ScopeBase::transfer_from() method.
2014-09-30 15:00:55 +02:00
Maciej Suminski
7b5470c8a7
vhdlpp: Subprogram class inherits from ScopeBase.
2014-09-30 15:00:55 +02:00
Maciej Suminski
f5dd2ac87e
vhdlpp: Aggregate expressions for records can be specified in any order.
2014-09-17 16:32:56 +02:00
Maciej Suminski
94abef195a
vhdlpp: Commented out named assignment for records.
2014-09-17 16:30:44 +02:00
Maciej Suminski
54696e0127
vhdlpp: Elaboration & emit support for aggregate initializer expressions in records.
2014-09-17 11:24:16 +02:00
Maciej Suminski
9842035d89
vhdlpp: Simplified the initalization for signals/variables.
2014-09-16 16:31:18 +02:00
Maciej Suminski
e330a0bd6e
vhdlpp: Corrected VTypeArray::write_to_stream().
...
Now it outputs "typedef(range)" instead of "array (range) of type".
2014-09-15 12:10:05 +02:00
Maciej Suminski
cb03802a17
vhdlpp: Added VTypeArray::basic_type() to cope with
...
arrays based on typedefs.
2014-09-15 12:10:05 +02:00
Maciej Suminski
22d18cb28d
vhdlpp: Typedefs in packages are emitted before constants.
2014-09-15 12:10:04 +02:00
Maciej Suminski
c98c3e5d14
vhdlpp: Inlined a few functions.
2014-09-15 12:10:04 +02:00
Maciej Suminski
a63289c2fc
vhdlpp: VTypeArray::range_t handles direction (to/downto).
2014-09-15 12:10:04 +02:00
Maciej Suminski
251b75003f
vhdlpp: Skip writing '=>' for ExpAggregates if there are no fields specified.
2014-09-15 12:10:04 +02:00
Maciej Suminski
01b4d49d4a
vhdlpp: Do not emit constants from packages.
...
They are elaborated and emitted by architectures that make use of packages.
2014-09-15 12:10:04 +02:00
Maciej Suminski
f851fc6981
vhdlpp: Fixed ExpAggregate::write_to_stream().
2014-09-15 12:10:04 +02:00
Maciej Suminski
a25cde3bc7
vhdlpp: Added ExpString::write_to_stream().
2014-09-15 12:10:04 +02:00
Maciej Suminski
51b121ae7a
vhdlpp: Added ExpBitString::write_to_stream().
2014-09-15 12:10:04 +02:00
Maciej Suminski
94caa4881e
vhdlpp: Added VTypeEnum::write_to_stream().
2014-09-15 12:10:04 +02:00
Maciej Suminski
ef7ac5ed03
vhdlpp: Elaborate all types of initializing expressions.
2014-09-15 12:10:04 +02:00
Maciej Suminski
684c2fe19e
Fixed enum typedefs.
2014-08-28 11:04:25 +02:00
Maciej Suminski
0f728b9150
vhdlpp: Minor cleaning, fixed copyright notices.
2014-08-25 17:29:35 +02:00
Maciej Suminski
b0c79d5d1c
vhdlpp: Added VType::emit_name() that skips emission of a name if it is empty (otherwise '\' is outputted).
2014-08-25 17:05:15 +02:00
Maciej Suminski
150fe088a6
vhdlpp: VTypeRecord is marked as acceptable in packed arrays. VTypeDef is accepted depending on the base type.
2014-08-25 16:56:46 +02:00
Maciej Suminski
bb66ed8b9d
vhdlpp: "integer" is emitted as "bool[31:0" but is marked as accepted to be used in packed arrays.
2014-08-25 16:51:35 +02:00
Maciej Suminski
b1d15436fd
Removed ExpReal::evaluate().Its signature does not match the one meant to be overridden.
2014-08-22 16:55:47 +02:00
Maciej Suminski
c846b2cf3f
vhdlpp: 'integer' is emitted as 'integer' instead of 'bool [31:0]'.
2014-08-22 16:45:17 +02:00
Maciej Suminski
10446df80e
vhdlpp: Invert range in ExpAggregate when necessary.
2014-08-22 16:23:22 +02:00
Maciej Suminski
0a2100c87f
vhdlpp: Turn on the reg_flag for types that cannot be packed.
2014-08-22 16:22:59 +02:00
Maciej Suminski
27730395ca
vhdlpp: Type of an array is selected depending on the element type.
2014-08-22 10:49:55 +02:00
Maciej Suminski
8e9c25a23e
vhdlpp: Added 'packed' property for VTypes.
...
It detetermines if a type can be used as the base type of a packed array.
2014-08-22 10:45:02 +02:00
Maciej Suminski
72ff9ac00b
vhdlpp: Aggregate expression are elaborated if
...
they are used for Signal/Variable initalization.
2014-08-20 14:18:16 +02:00
Maciej Suminski
c92dea77fc
vhdlpp: Basic support for unbounded array types.
...
Once a signal/variable of unbounded array type becomes limited in its size, it
is emitted as a packed array. Therefore currently it works only for
bit/logic/reg/wire types.
2014-08-15 10:21:45 +02:00
Maciej Suminski
9031f392ba
Convert string to bitstring in SigVarBase
...
constructor if applicable (vhdlpp).
2014-08-08 11:20:07 +02:00
Maciej Suminski
4786f80b0b
Add the string terminator for binary bitstrings.
2014-08-08 09:52:57 +02:00
Maciej Suminski
d2ad7a4d28
Increase the output precision for floating point types.
2014-08-06 17:04:52 +02:00
Maciej Suminski
5830ecd67e
Avoid freeing the primitive types classes.
2014-08-06 15:01:59 +02:00
Maciej Suminski
69b145e216
Minor cleaning for valgrind output.
2014-08-06 15:01:28 +02:00
Maciej Suminski
5ed60a151f
Added support for real type in vhdlpp.
2014-08-06 15:00:35 +02:00
Maciej Suminski
66d31b02be
Fixed vhdlpp segfault if it processes an entity without any ports declared.
2014-08-04 20:27:21 -07:00
Cary R
d6b6b76015
Update header files to use a more standard name to prevent rereading
...
This is from github report #16 . There are likely a few more issues
that need to be addressed though this takes care of the major ones.
2014-07-23 13:42:56 -07:00
Larry Doolittle
e221a8ced9
Rearrange compiler warning flags
...
Before this patch, WARNING_FLAGS applied to both C and C++,
and WARNING_FLAGS_CXX applied to C++ only.
This patch adds a WARNING_FLAGS_CC that applies to C only.
That change should be generally useful; in particular the C
code is almost ready for -Wstrict-prototypes, which does not
apply to C++.
-Wextra (or -W) used to only apply to C++ via WARNING_FLAGS_CXX.
This patch moves it to WARNING_FLAGS, to apply to both C and C++.
Unfortunately, that triggers a ton of warnings.
For now, cover most of the new warnings up by adding
-Wno-unused -Wno-sign-compare -Wno-type-limits
to WARNING_FLAGS_CC. In the long run, I want to change the C coding
style, and take off these disable-warning flags. But those changes
can dribble in as separate commits; this patch is big enough already.
Actually fix a couple missing-field-initializers in libveriuser/veriusertfs.c.
2014-07-09 09:04:17 -07:00
Cary R
0611135758
Some more cppcheck cleanup/updates
2014-06-29 20:39:40 -07:00