Header menu logo issie

Verilog output

ISSIE can write a design out as synthesisable or simulatable Verilog. The whole design — the chosen sheet with all of its subsheets flattened — becomes a single Verilog module named main, plus one small generated module per RAM/ROM component.

To write a design as Verilog, right-click the sheet's name in the sheet menu (the breadcrumb of sheets at the top of the canvas) and choose Write design as Verilog. A dialog offers the two flavours, and help on using each:

The file is written as <sheet>.v in the project directory.

Shape of the output

The generated code is plain Verilog-2001: a non-ANSI module header, wire/reg declarations, combinational logic as assign statements (with ?: for multiplexers), sequential components as one-line always @(posedge clk) statements, and each memory as its own generated module with an initial-block preload, instantiated positionally. Identifiers are derived from component labels, upper-cased, with $-separated suffixes distinguishing subsheet instances and multiple outputs.

Current limitations:

The generating code (src/Renderer/VerilogComponent/Verilog.fs) is simple and easily changed; it is exercised by the Issie.VerilogOutput test group. Please add issues if what currently exists does not fit your requirements.

Type something to start searching.