Cary R
c64b8900ca
Add support for disable fork to the compiler.
2013-10-17 19:34:57 -07:00
Stephen Williams
a9a1c50268
Support "this" for calling task methods.
2013-09-20 20:44:57 -07:00
Stephen Williams
5084a23417
Sorry messages for calls to superclass constructor.
2013-09-20 20:44:57 -07:00
Stephen Williams
46f551073e
Handle default expressions anywhere in port expression list.
2013-09-20 20:44:57 -07:00
Stephen Williams
9a116498a2
Handle task/function default expressions in parsing/pform.
...
This gets it to (but not through) the elaborator.
2013-09-20 20:44:56 -07:00
Cary R
d8f945be23
Add support for SV do/while
2013-09-16 20:02:09 -07:00
Stephen Williams
173577d5f7
Merge branch 'work14'
2013-07-03 20:00:22 -07:00
Stephen Williams
4ef3ac5ca6
Implement const properties of classes.
...
This implementation works by detecting assignments
to constant properties in elaboration. Allow initializer
assignments to assign to the constant, error all other
assignments, and otherwise treat the constant like any
other property.
2013-07-02 20:16:47 -07:00
Stephen Williams
cf47a759d1
Implement the "local" class member protection.
...
Test during elaboration that the member really is
accessible in the context where the elaboration
happens.
2013-07-02 20:16:47 -07:00
Stephen Williams
fbc5557a10
Handle properties that have arbitrary bit widths.
...
This fixes the run time handling of arbitrary width
bit vectors as class properties. The vvp code generator
already did the right things.
2013-07-02 20:16:47 -07:00
Stephen Williams
75b4b94061
Elaborate implicit initializers
...
Remaining pform fixup of property initializers, and
elaboration and code generation for implicit constructor.
2013-07-02 20:16:46 -07:00
Cary R
11e5641089
A real task/function port is also signed.
2013-06-27 13:03:11 -07:00
Stephen Williams
1b178d56b7
Add support for SystemVerilog return statements.
2013-06-12 14:09:07 -07:00
Martin Whitaker
6364aba975
Fix for br930 - support attributes on old-style port declarations.
2013-05-19 09:16:24 +01:00
Cary R
71c6193ff1
Finish adding support for end labels in SystemVerilog
2013-05-14 15:01:54 -07:00
Cary R
7c1638652a
Add support for closing a procedural begin/fork block with a name
2013-05-08 18:34:16 -07:00
Cary R
51d3c03922
A time variable is always unsigned and pass the integer property
2013-04-30 14:05:19 -07:00
Stephen Williams
eff6e7a441
Parse to pform shallow copy "new" expressions.
2013-04-21 19:27:57 -07:00
Stephen Williams
8994ef1483
Implement class constructors.
...
Class constructors are the "new" method in a class description.
Elaborate the constructor as an ordinary method, but the only
way to access this method is to implicitly call it. The elaborator
will take the constructor call and generate a naked "new" expression
and implicit constructor method call with the object itself as the
return value.
2013-04-20 16:38:35 -07:00
Stephen Williams
20ee350601
Generalize user defined function return type handling.
...
I'm gonna need functions to return class objects, so generalize
the output types of user defined functions.
2013-04-20 16:38:35 -07:00
Stephen Williams
632fd006c5
Merge branch 'master' of github.com:steveicarus/iverilog
2013-04-16 16:56:14 -07:00
Cary R
f536a43e92
Add support for timeunit <time_val> / <time_val>
2013-04-16 14:40:35 -07:00
Stephen Williams
4dffd97d28
Handle tasks in packages.
2013-04-08 18:20:39 -07:00
Stephen Williams
eba3d407ca
packages can contain variables.
2013-04-08 18:20:39 -07:00
Stephen Williams
bae0f1d3a7
Parse more package items
...
Rework lexical support for PACKAGE_IDENTIFIER so that the lexor
can help with package scoped identifiers.
Pform package types and package functions up to elaboration.
2013-04-08 18:20:39 -07:00
Cary R
bdfd5b9b55
Add -g2012 flag and keywords for IEEE 1800-2012.
2013-04-02 14:41:44 -07:00
Stephen Williams
17330a3073
Elaborate class task and function methods.
...
The parse of class methods already works, this patch forms
the methods into their own scopes, and elaborates those scopes.
The "this"
2013-03-24 15:12:35 -07:00
Stephen Williams
fac5cbca43
Handle this as special identifier strings. / Organize pform class member binding
2013-03-24 15:03:52 -07:00
Stephen Williams
670601bc2a
Mark class method pforms with their pform class.
2013-03-24 15:03:52 -07:00
Stephen Williams
25b48fa790
Remove svector template from port handling.
2013-03-24 15:03:52 -07:00
Martin Whitaker
faece5816c
Fix implicit casts in assignments (part 3).
...
This patch adds support for bool/bit vector types on the LHS of
a parameter declaration and ensures implicit casts in parameter
declarations are performed where necessary.
2013-03-24 13:50:53 -07:00
Cary R
b378dccbe9
Update parameter add code to correctly handle a non-Module scope
...
A package can have parameters, but it does not have specparams or
keep the order the parameters are defined. This patch skips these
items if the scope is not a Module.
2013-03-08 10:04:46 -08:00
Stephen Williams
8fa79ceb30
Properly implement import <pkg>::<name>
...
This was temporarily implemented to just copy definitions to the
local scope, but the better method is to create a PEIdent that has
the package attached to it.
2013-02-17 17:00:15 -08:00
Stephen Williams
60cb78e4ab
Add packages and their own scope.
...
This makes <pkg>::<name> work properly, and also makes the
package descriptions available through VPI.
2013-02-17 17:00:15 -08:00
Stephen Williams
99b8086ad2
Import parameters from packages.
2013-02-17 16:59:21 -08:00
Stephen Williams
77d24cd095
Elaborate class_new and (null) expressions
...
This gets the types right for class_new and null expressions, and
elaborate them down to the ivl_target.h API.
2012-12-10 19:13:43 -08:00
Stephen Williams
55bebc8c39
Stub to pform class properties and null expressions.
2012-12-10 19:13:43 -08:00
Stephen Williams
0ccb1b4990
Delect class_new and print "sorry" message.
2012-11-03 08:40:03 -07:00
Stephen Williams
0339f5ed57
Parse package import declarations.
2012-10-21 15:06:23 -07:00
Stephen Williams
62be9c5b46
Parse (with sorry message) package declarations.
2012-10-21 11:42:19 -07:00
Stephen Williams
b8093be42f
Rework parse rules to handle more net types.
...
This makes the rules for types to be more in line with IEEE1800.
2012-09-03 16:00:10 -07:00
Stephen Williams
f24d6b055d
Use data_type_t instead of raw type bits.
2012-09-03 16:00:10 -07:00
Stephen Williams
3d9ed1f0f8
Clean up PWire handling of wire data type. / Reword packed type handling
2012-09-03 16:00:09 -07:00
Arun Persaud
f5aafc32f9
updated FSF-address
2012-08-29 10:12:10 -07:00
Cary R
4313fbbf1f
Fix space errors in various files
2012-08-16 11:13:32 -07:00
Martin Whitaker
4af8b03e9d
Fix premature memory delete and missing DLL export definition.
...
A couple of errors that showed up in a MinGW build.
2012-08-06 13:31:03 -07:00
Martin Whitaker
5aa97b379d
Add missing semi-colons in parser rules.
...
Plus a few minor spelling/formatting fixes.
2012-08-01 15:38:36 -07:00
Stephen Williams
813f548a4b
Merge branch 'x-mil3'
...
Conflicts:
vpi/Makefile.in
vpi/sys_table.c
2012-07-30 17:02:57 -07:00
Martin Whitaker
a5a512758e
Allow a UDP instance to have a simple real delay.
...
The parser does not distinguish between module and UDP instances, so
a UDP delay is handled by the rules used for parsing module parameter
overrides. Although these rules had been relaxed to accept the case of
a simple decimal value (e.g. #10 ), they did not allow a simple real
value (e.g. #0.1).
2012-07-27 18:30:09 -07:00
Stephen Williams
d0e6b24ca2
Support the new[] operator for arrays
...
Implement through the ivl core to the ivl_target.h API.
Also draft implementation of creating and storing arrays
in the vvp runtime and code generator.
2012-07-22 10:52:06 -07:00