Commit Graph

575 Commits

Author SHA1 Message Date
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 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 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 045d9e7117 vhdlpp: Improved type matching rules. 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
Maciej Suminski 6b1e08cdb0 vhdlpp: Removed a non-existing method declaration. 2016-03-07 09:54:28 +01:00
Maciej Suminski 32f202bddc vhdlpp: VTypeRangeExpr::elaborate() 2016-03-07 09:54:28 +01:00
Maciej Suminski 42ead3a482 vhdlpp: Elaborate types for signals & variables. 2016-03-07 09:54:28 +01:00
Maciej Suminski 414f240694 vhdlpp: Code cleaning (std_funcs). 2016-03-07 09:54:28 +01:00
Maciej Suminski cc729e8dd9 vhdlpp: Removed redundant ActiveScope::bind_name() for subprograms. 2016-03-07 09:54:28 +01:00
Maciej Suminski 8298c96dee vhdlpp: Turned elaborate_argument() into a SubprogramHeader method. 2016-03-07 09:54:28 +01:00
Maciej Suminski b707228171 vhdlpp: file_open_status enum. 2016-03-07 09:54:28 +01:00
Maciej Suminski f2c8fb0479 vhdlpp: Display an error message when calling a function with too many arguments. 2016-03-07 09:54:28 +01:00
Maciej Suminski 3b165a5f25 vhdlpp: Skip package name emission when calling functions from the same package. 2016-03-07 09:54:28 +01:00
Maciej Suminski f1c07b86a3 vhdlpp: Implemented ReturnStmt::elaborate() method. 2016-03-07 09:54:28 +01:00
Maciej Suminski 00f5785f2c vhdlpp: Minor changes to write_to_stream functions. 2016-03-07 09:54:28 +01:00
Maciej Suminski b79f0d763f vhdlpp: Implemented ExpLogical::write_to_stream() method. 2016-03-07 09:54:28 +01:00
Maciej Suminski daed47eb45 vhdlpp: Improved conditional assignments.
Now they handle expressions without the final 'else'.
2016-03-07 09:54:28 +01:00
Maciej Suminski 19a187fa90 vhdlpp: Fixed the Expression visitor code. 2016-03-07 09:54:28 +01:00
Maciej Suminski db77fafe72 vhdlpp: Clone the initializing expression in signal declarations. 2016-03-07 09:54:28 +01:00
Maciej Suminski 7f6f4157d1 vhdlpp: ExpRange::emit() now returns the number of errors. 2016-03-07 09:54:28 +01:00
Maciej Suminski a884faa8c1 vhdlpp: Delayed assignment statements. 2016-03-07 09:54:28 +01:00
Maciej Suminski eeb5728e20 vhdlpp: emit() methods are const. 2016-03-07 09:54:28 +01:00
Maciej Suminski 730fdaf0f0 vhdlpp: Concurrent assertion statements. 2016-03-07 09:54:28 +01:00
Maciej Suminski 5748018409 vhdlpp: Limited support for final wait statement. 2016-03-07 09:54:28 +01:00
Maciej Suminski f6ee5d0f22 vhdlpp: Corrected an error message. 2016-03-07 09:54:28 +01:00
Maciej Suminski 2e6fb9b3f6 vhdlpp: shift_left/right() functions. 2016-03-07 09:54:28 +01:00
Maciej Suminski 03434efed3 vhdlpp: Elaborate ExpAttribute arguments. 2016-03-07 09:54:28 +01:00
Maciej Suminski 3af3c12b11 vhdlpp: Added system function NOW. 2016-03-07 09:54:28 +01:00
Maciej Suminski 2606d0e897 vhdlpp: Minor code clean up. 2016-03-07 09:54:28 +01:00
Maciej Suminski 52c912c4af vhdlpp: Allow calling functions without parameters and brackets. 2016-03-07 09:54:28 +01:00
Maciej Suminski b08ae23d0d vhdlpp: line feed character (LF). 2016-03-07 09:54:28 +01:00
Maciej Suminski 054dfdf0cf vhdlpp: Simpler enum definitions storage. 2016-03-07 09:54:28 +01:00
Maciej Suminski f52de62729 vhdlpp: Elaborate if statement condition as bool. 2016-03-07 09:54:28 +01:00
Maciej Suminski b6f1cb221e vhdlpp: Fixes for subtypes handling. 2016-03-07 09:54:28 +01:00
Maciej Suminski 79f38b8c56 vhdlpp: Basic loop support (loop..end loop). 2016-03-07 09:54:28 +01:00
Maciej Suminski ba274936e5 vhdlpp: Added 'image attribute for time type. 2016-01-06 15:30:24 +01:00
Maciej Suminski 214c940a1a vhdlpp: Fixing memory leaks and muting valgrind. 2016-01-06 15:30:20 +01:00
Maciej Suminski b711f16f05 vhdlpp: 'image attribute. 2016-01-06 15:30:06 +01:00
Maciej Suminski dff1ad08b0 vhdlpp: ExpAttribute split to Exp{Obj,Type}Attribute. 2016-01-06 15:30:06 +01:00
Maciej Suminski 71c63bf993 vhdlpp: Added argument_list token. 2016-01-06 15:30:06 +01:00
Maciej Suminski e0b2a5b337 vhdlpp: Refactored prange_t (class ExpRange). 2016-01-06 15:30:06 +01:00
Maciej Suminski 2c010d34bb vhdlpp: Unified Expression::evaluate() method. 2016-01-06 15:30:06 +01:00
Maciej Suminski 23633c498f vhdlpp: Moved dump_scope() to ScopeBase class. 2016-01-06 15:30:06 +01:00
Maciej Suminski 40075e11ab Code formatting. 2016-01-06 15:30:06 +01:00
Maciej Suminski 9276515e19 vhdlpp: Minor fix for ReportStmt::write_to_stream. 2016-01-05 14:23:25 +01:00
Maciej Suminski 3b310e8227 vhdlpp: Elaborate subprograms in packages. 2016-01-05 14:23:25 +01:00
Maciej Suminski 9886b8cb36 vhdlpp: Distinguish character and an array of bits during emission. 2016-01-05 13:55:22 +01:00
Maciej Suminski 1c4b1c12e4 vhdlpp: Fixes for 'wait for' statements emission. 2016-01-05 13:55:22 +01:00
Maciej Suminski ef3d0e4e0d vhdlpp: ExpString::emit distinguishes between array and string types. 2016-01-05 13:55:22 +01:00
Maciej Suminski 442750ca2c vhdlpp: Refactored {Report,Assert}Stmt so they handle expressions instead of strings. 2016-01-05 13:55:22 +01:00
Maciej Suminski 597001ee2f vhdlpp: Variables have always reg_flag set. 2016-01-05 13:55:22 +01:00
Maciej Suminski acb4ca8e47 vhdlpp: More descriptive error message for a missing function. 2016-01-05 13:55:22 +01:00
Cary R a4177f6ddc VHDL: Add some missing newlines 2015-12-19 10:50:16 -08:00
Cary R ad4b523edc A VHDL ExpAttribute() can share the base so don't just delete them 2015-12-13 19:01:33 -08:00
Cary R 24d1f49f3e Fix compile warning from recent patch 2015-12-08 22:07:27 -08:00
Maciej Suminski ab025f1e3b vhdlpp: VTypeRange split to VTypeRangeConst and VTypeRangeExpr.
When range cannot be evaluated it uses the original expressions.
2015-12-04 11:40:03 +01:00
Maciej Suminski 7cebed7382 vhdlpp: Disabled evaluation for ExpTime.
It was always evaluated to a value expressed in femtoseconds,
which not always might be the case.
2015-12-04 11:38:19 +01:00
Maciej Suminski 96a0a84e6c vhdlpp: Fixed the range boundaries order. 2015-12-04 10:29:08 +01:00
Maciej Suminski 2e9c3555cb vhdlpp: AssertStmt::elaborate() probes the condition type. 2015-12-03 17:56:56 +01:00
Maciej Suminski f4238eb563 vhdlpp: Minor code cleaning. 2015-12-03 17:56:41 +01:00
Maciej Suminski 652fe378b8 vhdlpp:: Added ExpUnary::probe_type() function. 2015-12-03 17:54:22 +01:00
Maciej Suminski 9df470c341 vhdlpp: While loops. 2015-12-03 17:53:13 +01:00
Maciej Suminski bb695c6e11 vhdlpp: Fixed infinite recursion when evaluating ExpTime. 2015-12-01 16:38:54 +01:00
Maciej Suminski d5853ff5d7 vhdlpp: File declarations with specified file name and open mode. 2015-12-01 16:38:54 +01:00
Maciej Suminski 83f01a5fc4 vhdlpp: Support for implicit initalizers and finalizers. 2015-12-01 16:38:54 +01:00
Maciej Suminski e4ba4b5acd vhdlpp: Added means to use 'initial' and 'final' blocks during translation. 2015-12-01 10:33:20 +01:00
Maciej Suminski cb40a845e1 vhdlpp: Allow procedure calls with empty param list. 2015-12-01 10:33:20 +01:00
Maciej Suminski 5535b7d26c vhdlpp: Corrected error messages. 2015-12-01 10:33:20 +01:00
Maciej Suminski 2f40c96527 vhdlpp: Basic support for std.textio & ieee.std_logic_textio. 2015-12-01 10:33:20 +01:00