You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/Dialects/Moore.md
+37-29Lines changed: 37 additions & 29 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,39 +7,17 @@ This dialect provides operations and types to capture a SystemVerilog design aft
7
7
8
8
## Rationale
9
9
10
-
The main goal of the `moore` dialect is to provide a set of operations and types for the `ImportVerilog` conversion to translate a fully parsed, type-checked, and elaborated Slang AST into MLIR operations. See IEEE 1800-2017 for more details about SystemVerilog. The dialect aims to faithfully capture the full SystemVerilog types and semantics, and provide a platform for transformation passes to resolve language quirks, analyze the design at a high level, and lower it to the core dialects.
10
+
The main goal of the `moore` dialect is to provide a set of operations and types for the `ImportVerilog` conversion to translate a fully parsed, type-checked, and elaborated Slang AST into MLIR operations.
11
+
See IEEE 1800-2017 for more details about SystemVerilog.
12
+
The dialect aims to faithfully capture the full SystemVerilog types and semantics, and provide a platform for transformation passes to resolve language quirks, analyze the design at a high level, and lower it to the core dialects.
11
13
12
-
In contrast, the `sv` dialect is geared towards emission of SystemVerilog text, and is focused on providing a good lowering target to allow for emission. The `moore` and `sv` dialect may eventually converge into a single dialect. As we are building out the Verilog frontend capabilities of CIRCT it is valuable to have a separate ingestion dialect, such that we do not have to make disruptive changes to the load-bearing `sv` dialect used in production.
14
+
In contrast, the `sv` dialect is geared towards emission of SystemVerilog text, and is focused on providing a good lowering target to allow for emission.
15
+
The `moore` and `sv` dialect may eventually converge into a single dialect.
16
+
As we are building out the Verilog frontend capabilities of CIRCT it is valuable to have a separate ingestion dialect, such that we do not have to make disruptive changes to the load-bearing `sv` dialect used in production.
13
17
14
-
## LRM Rules
15
-
### Unconnection rules
16
-
The SystemVerilog LRM defines unconnected behavior while leaving ports unconnected.
17
18
18
-
| Port Type | Unconnected Behavior |
19
-
| ---------------- | -------------------------- |
20
-
| Input (Net) | High-impedance value ('Z) |
21
-
| Input (Variable) | Default initial value |
22
-
| Output | No effect on Simulation |
23
-
| Inout (Net) | High-impedance value ('Z) |
24
-
| Inout (Variable) | Default initial value |
25
-
| Ref | Cannot be left unconnected |
26
-
| Interconnect | Cannot be left unconnected |
27
-
| Interface | Cannot be left unconnected |
19
+
## LRM Rules
28
20
29
-
For variables that do not have a specified initializer. It has a default rule to initialize data value according to its type:
0 commit comments