circt
circt copied to clipboard
Circuit IR Compilers and Tools
Add a `hw.donttouch` operation which is an inner symbol user that indicates that the inner symbol should not be optimized, removed, or otherwise touched by the compiler. This is added...
### Context I'm using PyCDE to generate parameterized modules and test them using a handwritten Verilator testbench. To simplify the testbench logic, I instantiate different versions of the module under...
We propose a mechanism for linking multiple MLIR files in firtool. Specifically, this involves combining multiple circuits into a single one. All modules instantiated within another module (i.e., all `firrtl.instance`...
Some groundwork towards using a more up to date `slang` verison. ### TODO - [ ] Proper error message on unsupported compilers. - [ ] Don't match on OS specifics:...
```mlir firrtl.circuit "A" { firrtl.module @A(in %clock: !firrtl.clock, in %u: !firrtl.uint, in %cond: !firrtl.uint, out %a: !firrtl.uint) attributes {convention = #firrtl} { %c0_ui2 = firrtl.constant 0 : !firrtl.uint %cat_1 =...
I'm using the simplex scheduler with a simple example. But I think I misunderstood what the `incomingDelay` and `outgoingDelay` are. I understood that the operation must start at least `incomingDelay`...
See the discussion here: https://discourse.llvm.org/t/rfc-a-new-one-shot-dialect-conversion-driver/79083/46 I followed the steps to set the flag in MLIR to disallow rollback, and CFToHandshake fails. ``` /scratch/verif/mikeu/circt/build/bin/circt-opt -lower-cf-to-handshake /scratch/verif/mikeu/circt/test/Conversion/CFToHandshake/invalid.mlir -split-input-file -verify-diagnostics # RUN: at...
Currently the `find_package(Python3)` call binds with the system Python interpreter which does not necessarily have `psutil` needed to run integration tests (using LLVM LIT) Installing `psutil` in the system Python...
``` // -----// IR Dump After AssignOutputDirs (firrtl-assign-output-dirs) //----- // firrtl.circuit "test" { firrtl.module @test(in %clock: !firrtl.clock, in %reset: !firrtl.uint, out %io_out: !firrtl.uint) { %c1_ui6 = firrtl.constant 1 : !firrtl.uint...