Cary R
032f12af45
Fix some sign information in the CA code.
2013-07-29 10:26:49 -07:00
Stephen Williams
3446455055
Support compile-time evaluation of named blocks.
2013-06-12 14:21:35 -07:00
Stephen Williams
8e559e4e91
Support shallow copy as far as the ivl_target API.
2013-04-27 19:54:13 -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
Martin Whitaker
c4257ecfc9
Add support for array variables inside constant user functions.
2013-04-19 22:08:59 +01:00
Martin Whitaker
a91840c15d
Support concatenations in LHS of assignments in constant user functions.
2013-04-19 22:08:59 +01:00
Martin Whitaker
23dbfabb1e
Further support for constant functions.
...
Add support for case, forever, and repeat statements in constant
functions. Also fix a bug in the constant function implementation
of NetESelect when used for zero/sign extension.
2013-04-07 19:13:30 +01: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
Martin Whitaker
b80401e1ee
Improved error reporting for constant user functions.
2013-03-24 14:43:10 -07:00
Martin Whitaker
1bcd3a97ad
Support disable statements and system task calls in constant functions.
...
This patch implements the evaluate_function method for the NetDisable
and NetSTask classes. It also makes the checks for a function being
constant work when the function contains nested scopes (named blocks).
2013-03-24 14:42:59 -07:00
Martin Whitaker
22769afd20
Fix implicit casts in assignments (part 1).
...
This patch adds support for implicit casts to the elaborate_rval_expr()
function. This will handle the majority of cases where an implicit cast
can occur.
2013-03-24 10:14:07 -07: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
Cary R
1929cfc4f9
Fix space issues
2013-02-08 11:24:11 -08:00
Martin Whitaker
af91920a17
Add support for system function calls in constant functions.
2013-02-08 11:19:26 -08:00
Martin Whitaker
89244e0f70
Add support for concatenation operations in constant functions.
...
Also fix a compiler crash when attempting to evaluate a function
which has no valid statement(s) (due to earlier compilation errors).
2013-02-08 11:19:17 -08:00
Martin Whitaker
f3a51fdfd1
Factor out some common eval_tree code.
...
The eval_tree() function is identical in most of the NetEBinary and
NetEUnary sub-classes.
2013-02-04 12:17:29 -08:00
Martin Whitaker
afd23d13d5
Add support for unary operators in constant user functions.
...
This patch implements the evaluate_function method for the NetEUnary
and NetEUReduce classes.
2013-02-04 12:17:05 -08:00
Martin Whitaker
11f479e028
Add support for all binary operators in constant user functions.
...
This patch implements the evaluate_function method for the NetEBBits,
NetEBDiv, NetEBLogic, NetEBMinMax, and NetEBPow classes. It also
factors out some common code into the NetEBinary class.
2013-02-04 12:16:51 -08:00
Stephen Williams
751587e112
PV-to-concat belnding should use a strength-aware concat.
2013-02-02 10:44:16 -08:00
Stephen Williams
106850ca7d
Handle real value class properties.
...
As a side effect, this also adds support for 64bit integers.
2013-01-27 20:10:25 -08:00
Stephen Williams
679ef3a380
Collapse concatenation of constants into concatenated constant.
2012-12-20 11:02:29 -08:00
Stephen Williams
367d7bf94b
Blend NetPartSelect(PV) objects into NetConcat
...
If a signal s driven by multiple non-overlapping NetPartSelect(PV)
objects, then combine them into a single NetConcat object. This
eliminates the need for resolvers in the target.
2012-12-19 19:01:22 -08:00
Stephen Williams
860419a346
Draft run-time support for SystemVerilog class objects.
...
This provides the ivl_target.h interface for class definitions
and expressions, the vvp code generator support for class objects
and properties, and the vvp run time support. Trivial class objects
now seem to work.
2012-12-10 19:20:02 -08:00
Stephen Williams
318a4033b8
Flesh out class type elaboration
...
Add properties to the classes, and elaborate expressions that
have class properties. Describe class object property references
all the way down to the stub target.
2012-12-10 19:20:02 -08:00
Stephen Williams
f7033ca19a
Handle class-type identifier expressions.
2012-12-10 19:13:44 -08:00
Stephen Williams
b6eb86d696
Blend new_darray and new_class expression nodes.
2012-12-10 19:13:43 -08:00
Stephen Williams
7a2ad01f2e
Class new expressions, down to the ivl_target.h API.
2012-12-10 19:13:43 -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
d6efece5dd
Handle DARRAYs of real variables
...
This involves working out the code to get the base type of a select
expression of a darray. Also added the runtime support for darrays
with real value elements.
2012-10-14 17:16:47 -07:00
Stephen Williams
a2d980540d
Get some type information to the "new" expression for darrays.
2012-10-14 17:16:47 -07:00
Stephen Williams
914ebeca4a
Some rework to allow for nested packed types.
...
This also simplifies the NetNet set of contructors and generalizes
the types that are supported, especially packed types.
2012-10-14 17:16:47 -07:00
Stephen Williams
4e76912331
ivl_target access to type information.
2012-10-14 17:16:47 -07:00
Stephen Williams
494dc876a5
Move net vector properties to netvector_t object.
2012-10-14 17:16:47 -07:00
Stephen Williams
92313654ec
Rework the way vectors are represented in NetNet objects.
2012-10-14 17:16:47 -07:00
Cary R
5347217b56
A signal can be an enumeration variable.
...
An enumeration variable can be a R-value in an enumeration assignment so
pass on this attribute.
2012-10-10 18:28:21 -07:00
Stephen Williams
a14b8c517c
Clean up Design::find_scope method use.
2012-09-03 16:00:10 -07:00
Stephen Williams
0bdabab4fb
Rework packed dimensions handling
...
Make packed structs more obviously parts of a vector.
Handle arrays of structs in certain cases.
2012-09-03 16:00:10 -07:00
Stephen Williams
b4cc9d14a5
Handle packed arrays of packed struct in l-value expressions.
2012-09-03 16:00:09 -07:00
Arun Persaud
f5aafc32f9
updated FSF-address
2012-08-29 10:12:10 -07:00
Stephen Williams
18714e2efd
Support the delete method for objects.
2012-07-22 10:52:06 -07:00
Stephen Williams
14f229de30
Parse support for dynamic arrays.
...
This includes limited support for dynamic arrays down to the code
generator, and some stubs in the vvp code generator and vvp run time.
2012-07-22 10:52:06 -07:00
Stephen Williams
f77bdf7e38
Handle concatenation of SystemVerilog strings.
2012-07-22 10:52:06 -07:00
Andrew Stevens
9b3d20239a
Extend VPI and build to for SIMetrix cosimulation
...
Added: basic vpiPort VPI Objects for vpiModulkes
vpiDirection, vpiPortIndex, vpiName, vpiSize attributes
Since ports do not exist as net-like entities (nets either side
module instance boundaries are in effect connect directly in
the language front-ends internal representation) the port information
is effectively just meta-data passed through t-dll interface and
output as a additional annotation of module scopes in vvp.
Added: vpiLocalParam attribute for vpiParameter VPI objects
Added: support build for 32-bit target on 64-bit host (--with-m32
option to configure.in and minor tweaks to Makefiles and systemc-vpi).
2012-06-07 08:00:02 -07:00
Martin Whitaker
3354d83391
Support if statements and function calls in constant functions.
2012-06-06 19:34:08 -07:00
Stephen Williams
cec68cfc61
Merge branch 'x-mil2'
2012-06-06 19:17:27 -07:00
Stephen Williams
62b67c1843
More expression types supported during constant function evaluation.
2012-05-29 17:59:29 -07:00
Stephen Williams
a5a7050120
More expression types work in constant functions.
2012-05-29 13:56:16 -07:00
Stephen Williams
def9d0ea1d
Basic infrastructure for compile-time function evaluation.
2012-05-29 10:02:10 -07:00
Stephen Williams
d10e4bca4c
Remove some uses of the svector class.
2012-05-28 16:49:41 -07:00
Stephen Williams
6a57764e0e
Elaborate fork-join_none and fork-join_any statements.
2012-05-27 18:26:53 -07:00