Commit Graph

549 Commits

Author SHA1 Message Date
Zachary Snow a9f00cce2a avoid name conflicts when elaborating packages 2022-07-17 22:02:15 -04:00
Zachary Snow a54be8dae6 instances supply names during reordering 2022-07-17 20:58:36 -04:00
Zachary Snow 59b416f9b4 isolate interface name resolution checks 2022-07-17 20:32:56 -04:00
Zachary Snow 6e8659a537 support hierarchical calls to functions with no inputs 2022-07-10 22:43:33 -04:00
Zachary Snow 5dcbce5f45 fix conversion of casts to structs containing multidimensional fields 2022-06-19 21:55:19 -04:00
Zachary Snow e7fc1e6147 remove legacy tagging logic in array flattening conversion 2022-06-19 19:27:17 -04:00
Zachary Snow 336812ff21 fix conversion of signed struct fields accessed directly 2022-06-19 16:13:56 -04:00
Zachary Snow effeded6d1 support procedural continuous assignments 2022-05-10 12:11:32 -04:00
Zachary Snow e778a671e1 generate explicit sensitivity lists when necessary 2022-05-10 11:29:33 -04:00
Zachary Snow 9eceb55673 defer elaboration of void functions 2022-05-02 14:45:10 -06:00
Zachary Snow b7a2327668 simple for loop elaboration applies in more cases 2022-04-30 20:19:02 -06:00
Zachary Snow f68bf187af refactor event control internals
- event expressions use Expr over LHS
- stricter AST representation of event controls
- property specs use event expressions directly
2022-04-11 17:44:47 -06:00
Zachary Snow ed09fe88cf support assignments within expressions 2022-03-12 23:57:17 +01:00
Zachary Snow 4ced649a87 convert do while loops 2022-03-11 11:32:54 +01:00
Zachary Snow 1315bed81c support cycle delay range in sequence expressions 2022-03-09 18:38:30 +01:00
Zachary Snow e6e96b622b support for edge event 2022-02-16 12:01:58 +01:00
Zachary Snow 3db72c4c2d logic conversion ignores LHSs in procedural assignment senses 2022-02-15 17:49:50 +01:00
Zachary Snow eb42042c1c pass through support for DPI imports and exports 2022-01-25 20:52:14 -07:00
Zachary Snow 2e43dfeeaa fix failed indirection of unassigned function results 2022-01-23 22:40:43 -07:00
Zachary Snow 03a913ad65 fix illegal removal of width-extending `+ 0` and `* 1` 2021-11-15 21:26:08 +01:00
Zachary Snow 5105ccbb39 use scoped errors in struct conversion 2021-10-17 21:40:12 -06:00
Zachary Snow 150b7f2af1 enum item conflict raises scoped error 2021-10-10 22:04:51 -06:00
Zachary Snow fd64d4e3f2 remove two unreachable LHS conversion errors 2021-10-09 21:18:44 -06:00
Zachary Snow d1d81eb8d6 use scoped errors in interface conversion 2021-10-07 21:06:45 -06:00
Zachary Snow 84edbae503 preliminary scoped errors with approximate source location
- scoped traversals can now raise errors which contain the path of the
  current scope and an approximate source location based on preceding
  trace comments, if available
- initially, this new error messaging has only been added for the
  illegal size cast checks in the TypeOf and Cast conversions
- error suite tests can provide a verbose mode expected source location
2021-10-06 22:17:41 -06:00
Zachary Snow ff241115c4 forbid bit-selects and part-selects of scalar struct fields 2021-09-27 21:52:37 -06:00
Zachary Snow 814f96597e fix assertion removal in verbose mode causing orphaned statements 2021-09-24 12:36:49 -04:00
Zachary Snow 55afc58f73 simplify interface parameter override logic 2021-09-20 23:49:43 -04:00
Zachary Snow b1f1b822e9 fix conversion of interface-based typedefs 2021-09-18 21:46:32 -04:00
Zachary Snow 6788ecbf82 fix interface traversal of exprs in types, and support module-scoped modport refs 2021-09-18 21:01:28 -04:00
Zachary Snow e42fbfa23c restructure scoper run and eval interface 2021-09-16 23:35:16 -04:00
Zachary Snow 88d632fb14 restrict implicit logic to output ports 2021-09-07 13:06:24 -04:00
Zachary Snow 598b4260b6 apply port standardization to tasks and functions 2021-09-06 21:48:08 -04:00
Zachary Snow 95c2bc996c support for common non-ANSI style port declarations
Specifically, support has been added for non-ANSI style port
declarations where the port declaration is separate from the
corresponding net or variable declaration.
2021-09-06 21:10:49 -04:00
Zachary Snow bf029068af move exprToType utility outside to language module 2021-08-18 13:07:42 -06:00
Zachary Snow 9acdb848c9 ensure arrays used in nested ternary expressions are properly flattened 2021-08-18 10:25:14 -06:00
Zachary Snow 581a7911de support for deferred immediate assertion statements 2021-08-16 17:50:23 -06:00
Zachary Snow 30acc3e3f9 fix spacing of as-patterns for future GHC upgrade 2021-08-12 16:13:12 -06:00
Zachary Snow 536eba46b9 use bimapM for mapBothM 2021-08-10 09:48:13 -06:00
Zachary Snow 59d37468a4 fix internal interpretation of negative number literals
- detect and forbid non-positive size casts
- detect and forbid negative struct pattern literal indices
- avoid invalid constant folding of negative based literals
2021-08-07 21:11:35 -06:00
Zachary Snow fd96b8a710 unbased unsized conversion inlines module stubs
- support ports with sizes which depend on constant functions
- restore package item injection utility to package conversion module
- additional unbased unsized conversion test coverage
2021-07-29 19:54:20 -04:00
Zachary Snow 37c8938eff attempt number cast simplification after substitution 2021-07-29 13:11:25 -04:00
Zachary Snow 1aa30ea813 allow genvars to be shadowed 2021-07-27 19:17:03 -04:00
Zachary Snow 93ba497c12 allow simple unbased-unsized RHSs to sign extend 2021-07-26 22:00:00 -04:00
Zachary Snow 17b01b1683 simplify mod 1 to 0 2021-07-26 13:03:01 -04:00
Zachary Snow 5345a72c9e elaborate `wire integer` to `wire signed [31:0]` 2021-07-25 15:37:27 -04:00
Zachary Snow 121fea5aec avoid unnecessary casts on substituted hierarchical constants 2021-07-24 17:01:17 -04:00
Zachary Snow 46be0edbdf simplify cast scoper lookup and removal 2021-07-24 16:41:31 -04:00
Zachary Snow 1311e449fe fix errant expr resolution flagging
- references to other instances are no longer flagged
- special handling for genvars to avoid flagging and modport scoping
- interface inlining visits expressions in declarations
- Scoper has interface for removing entries
2021-07-23 19:59:26 -04:00
Zachary Snow 1e6fa7b858 fix looping simplification on unfolded based literals 2021-07-22 12:45:53 -04:00