Convert HWType to Verilog type declaration
Equations
- Sparkle.Backend.Verilog.emitType Sparkle.IR.Type.HWType.bit = "logic"
- Sparkle.Backend.Verilog.emitType (Sparkle.IR.Type.HWType.bitVector 1) = "logic"
- Sparkle.Backend.Verilog.emitType (Sparkle.IR.Type.HWType.bitVector w) = toString "logic [" ++ toString (w - 1) ++ toString ":0]"
- Sparkle.Backend.Verilog.emitType (Sparkle.IR.Type.HWType.array size elemType) = toString (Sparkle.Backend.Verilog.emitType elemType) ++ toString " [" ++ toString (size - 1) ++ toString ":0]"
Instances For
Convert Operator to Verilog operator symbol
Equations
- Sparkle.Backend.Verilog.emitOperator Sparkle.IR.AST.Operator.and = "&"
- Sparkle.Backend.Verilog.emitOperator Sparkle.IR.AST.Operator.or = "|"
- Sparkle.Backend.Verilog.emitOperator Sparkle.IR.AST.Operator.xor = "^"
- Sparkle.Backend.Verilog.emitOperator Sparkle.IR.AST.Operator.not = "~"
- Sparkle.Backend.Verilog.emitOperator Sparkle.IR.AST.Operator.add = "+"
- Sparkle.Backend.Verilog.emitOperator Sparkle.IR.AST.Operator.sub = "-"
- Sparkle.Backend.Verilog.emitOperator Sparkle.IR.AST.Operator.mul = "*"
- Sparkle.Backend.Verilog.emitOperator Sparkle.IR.AST.Operator.eq = "=="
- Sparkle.Backend.Verilog.emitOperator Sparkle.IR.AST.Operator.lt_u = "<"
- Sparkle.Backend.Verilog.emitOperator Sparkle.IR.AST.Operator.lt_s = "<"
- Sparkle.Backend.Verilog.emitOperator Sparkle.IR.AST.Operator.le_u = "<="
- Sparkle.Backend.Verilog.emitOperator Sparkle.IR.AST.Operator.le_s = "<="
- Sparkle.Backend.Verilog.emitOperator Sparkle.IR.AST.Operator.gt_u = ">"
- Sparkle.Backend.Verilog.emitOperator Sparkle.IR.AST.Operator.gt_s = ">"
- Sparkle.Backend.Verilog.emitOperator Sparkle.IR.AST.Operator.ge_u = ">="
- Sparkle.Backend.Verilog.emitOperator Sparkle.IR.AST.Operator.ge_s = ">="
- Sparkle.Backend.Verilog.emitOperator Sparkle.IR.AST.Operator.shl = "<<"
- Sparkle.Backend.Verilog.emitOperator Sparkle.IR.AST.Operator.shr = ">>"
- Sparkle.Backend.Verilog.emitOperator Sparkle.IR.AST.Operator.asr = ">>>"
- Sparkle.Backend.Verilog.emitOperator Sparkle.IR.AST.Operator.neg = "-"
- Sparkle.Backend.Verilog.emitOperator Sparkle.IR.AST.Operator.mux = "?"
Instances For
Convert IR expression to Verilog expression
def
Sparkle.Backend.Verilog.emitStmt
(stmt : IR.AST.Stmt)
(indent : String := " ")
(wires : List IR.AST.Port := [])
:
Emit a single statement.
The optional wires parameter provides wire declarations for register
reset value width lookup.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Emit port declarations for module header
Equations
- One or more equations did not get rendered due to their size.
Instances For
Emit wire declarations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Emit the full module
Equations
- One or more equations did not get rendered due to their size.
Instances For
Main entry point: Convert a Module to SystemVerilog
Instances For
Convert a full Design to SystemVerilog
Equations
Instances For
Write module to a file
Equations
- Sparkle.Backend.Verilog.writeVerilogFile m filename = do IO.FS.writeFile { toString := filename } (Sparkle.Backend.Verilog.toVerilog m) IO.println (toString "Generated " ++ toString filename)
Instances For
Write a full design to a file
Equations
- One or more equations did not get rendered due to their size.