JupyterLite + Pyodide

µhLS-lite:
a tiny HLS tool
running in your
browser.

Explore C-to-µIR lowering, µhIR graph optimization, and the HLS backend’s allocation, scheduling, binding, and resource maps—all without installing µhLS locally.

foo.c → foo.sched.uhir
// foo.c:
int32_t foo(int32_t x) {
  return (x + 1) * 2;
}

// foo.uir:
func foo(x_0:i32) -> i32
block entry:
  t0_0:i32 = add x_0, 1:i32
  t1_0:i32 = mul t0_0, 2:i32
  ret t1_0

// foo.sched.uhir:
design foo
stage sched
schedule kind=hierarchical
region proc_foo kind=procedure {
  node v1 = add x_0, 1:i32 : i32 class=ALU ii=1 delay=1 start=0 end=0
  node v2 = mul t0_0, 2:i32 : i32 class=MUL ii=1 delay=2 start=1 end=2
  latency 4
}

// next: binding → FSM → µglIR → RTL

Choose a lab

Three stages of the µhLS pipeline