ZLANG HDL / EXPERIMENTAL ALPHA

A typed hardware language that emits SystemVerilog.

ZLang checks numerical types, clocked state, and protocol connections before generating SystemVerilog. The compiler is an experimental alpha; supported combinations are documented.

COMMUNITY 0.1.0a24 / OPEN SOURCE · ALPHA
ZLang HDL: Typed hardware, from intent to evidence. Source, graph, implementation choices and a verification waveform.
ZLANG HDLDOCUMENTATION COVER ART
Exact typesExplicit cyclesReusable protocolsDirect SystemVerilog
01 / RECORDED COMPILER EXAMPLE

Source in.
SystemVerilog out.

This eight-bit Counter comes from the public repository. Inspect its source, the actual semantic-check output, and the RTL generated by the matching compiler.

Recorded compiler exampleZLang 0.1.0a24Source c768da0bce8b ↗

ZLang source

Public source
examples/counter.zhl
module Counter {
    clock clk
    reset rst

    reg count : u8 = 0
    out y     : u8

    y = count
    count <- truncate(count + 1)
}

The original example, unchanged from the linked revision.

Compiler check

Recorded output
zlang examples/counter.zhl --top Counter --check
zlang: ok: examples/counter.zhl (top Counter; syntax and semantics valid)

Recorded process exit status: 0. Syntax and semantic checking only.

Generated SystemVerilog

Recorded output
zlang examples/counter.zhl --top Counter --systemverilog build/Counter.sv
`default_nettype none
module Counter (
  input wire logic clk,
  input wire logic rst,
  output logic [7:0] y
);
  // Generated from backend-independent typed ZLang IR.
  logic [7:0] count;
  always_ff @(posedge clk) begin
    if (rst) begin
      count <= 8'd0;
    end else begin
      count <= 8'(({{1{1'b0}}, count} + 9'd1));
    end
  end
  assign y = count;
endmodule
`default_nettype wire

Recorded process exit status: 0. Output file: build/Counter.sv.

02 / LANGUAGE FUNDAMENTALS

The details are
part of the design.

Read about the language →
01 / VALUES

Widths and conversions.

Numerical types carry width and signedness. Conversions and fixed-point quantization are explicit.

02 / STATE

Clocked updates you can follow.

Registers declare clock/reset ownership and next-state assignments.

03 / BOUNDARIES

Typed protocol endpoints.

Protocol endpoints define connections between modules. See the language reference for supported connections and clock-domain restrictions.

03 / PUBLIC EXAMPLES

Explore a larger design.

All examples →
04 / HARDWARE PROJECTS

Hardware designs
in ZLang HDL.

Project status and availability →
Source available · research design
Fixed-point accelerator

ZTPU ↗

A ZLang HDL accelerator with queued matrix, vector, and Adam engines, plus a cycle-level MicroGPT inference demo.

Project overview →
05 / FUTURE PRODUCTS

Around the compiler.

ZAgent and ZInfer are private prototypes. ZCloud is planned. The Community compiler works independently of all three.

Preview only. An account or interest registration does not grant product access.

TRY THE PUBLIC TOOLCHAIN

Start with a real example.

Install the alpha compiler, check the Counter, and read the supported-platform and known-limitations notes.