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:
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
Frontend lab
Lower C to µIR, inspect its typed control flow, interpret programs, and explore static analyses and optimization passes.
Open labMidend lab
Lower µIR to µhIR, study canonical forms, and apply middle-end transformations and optimizations.
Open labBackend lab
Explore HLS resource allocation, scheduling, binding, and the resource maps that lead toward RTL.
Open lab