calyx 0.7.1

Compiler Infrastructure for Hardware Accelerator Generation
import "primitives/core.futil";
import "primitives/memories/comb.futil";

component main(@go go: 1) -> (@done done: 1) {
  // ANCHOR: cells
  cells {
    @external(1) mem = comb_mem_d1(32, 1, 1);
    val = std_reg(32);
    add = std_add(32);
  }
  // ANCHOR_END: cells
  // ANCHOR: wires
  wires {
  // ANCHOR: write
    group write {
      mem.addr0 = 1'b0;
      mem.write_en = 1'b1;
      mem.write_data = val.out;
      write[done] = mem.done;
    }
  // ANCHOR_END: write
  // ANCHOR: read
    group read {
      mem.addr0 = 1'b0;
      val.in = mem.read_data;
      val.write_en = 1'b1;
      read[done] = val.done;
    }
  // ANCHOR_END: read
  // ANCHOR: upd
    group upd {
      add.left = val.out;
      add.right = 32'd4;
      val.in = add.out;
      val.write_en = 1'b1;
      upd[done] = val.done;
    }
  // ANCHOR_END: upd
  }
  // ANCHOR_END: wires
  // ANCHOR: control
  control {
    seq {
      read;
      upd;
      write;
    }
  }
  // ANCHOR_END: control
}