circt/test/Dialect
Prithayan Barua 7c11a9fa01
[FIRRTL][InferRW] Set RWmode to the complement term in Write enable (#3759)
The `InferRW` pass transforms a memory with read and write ports to a single 
ReadWrite port memory, if it can prove that the read and write enable are
 mutually exclusive. The algorithm checks if any of the terms in the `And`
 expression tree of read and write enable is a complement of each other, to
infer if the read and write enable are trivially mutually exclusive.
The `RWmode` of the ReadWrite memory is set to `1` to use the memory in
 write mode and `0` for read mode. 
 
This PR sets the `RWmode` to the term in the `And` expression tree of
 the write enable, which proves the mutual exclusion, instead of
 setting it to the write enable. This is done to ensure equivalence with the
 `firrtl` compiler.
 
For example, if, `write enable = A && B`, `read enable = C && ~B`
 implies `RWmode = B`.
2022-08-23 12:44:16 -07:00
..
Calyx [Calyx] Add calyx primitive operation using hw.module.extern (#3565) 2022-08-04 10:31:42 -04:00
Comb [Comb] Don't flatten combinatorial loops 2022-06-29 08:08:32 -07:00
ESI [ESI][Cosim] Switch from numeric IDs to strings (#3757) 2022-08-22 13:28:45 -07:00
FIRRTL [FIRRTL][InferRW] Set RWmode to the complement term in Write enable (#3759) 2022-08-23 12:44:16 -07:00
FSM [FSM] Make StateOp output, transition regions optional in ODS 2022-07-25 13:41:17 +02:00
HW [HW] Added canonicalizers for aggregate operations (#3671) 2022-08-08 16:55:30 +03:00
HWArith [HWArith] Revert chained cast canonicalization #3651 2022-08-03 15:59:09 +02:00
Handshake Bump LLVM (#3649) 2022-08-07 09:21:55 +02:00
LLHD LLVM Bump (#3708) 2022-08-13 17:28:28 +03:00
MSFT [MSFT] Introduce `LinearOp` (#3680) 2022-08-11 12:40:56 +02:00
Moore LLVM bump (as we know it) (#3074) 2022-05-09 14:30:14 -07:00
Pipeline [Pipeline] Add retimeable pipeline operation (#3650) 2022-08-23 19:48:22 +02:00
SSP [SSP] Add SSP <-> circt::scheduling conversion utilities. (#3636) 2022-08-04 12:30:09 +02:00
SV Bump LLVM (#3649) 2022-08-07 09:21:55 +02:00
Seq [NFC] Removed unused methods related to firreg 2022-07-15 19:16:52 +03:00
SystemC [SystemC] Introduce special types for ports and signals (#3681) 2022-08-12 20:06:36 +02:00
CMakeLists.txt [ESI] Wrap modules exposing latency insensitive signals to expose ESI channels (#828) 2021-03-27 14:06:19 -07:00