calyxir / calyx

Intermediate Language (IL) for Hardware Accelerator Generators
https://calyxir.org
MIT License
460 stars 47 forks source link

Produce separate AXI channels for every memory in a Calyx program #2097

Open nathanielnrn opened 1 month ago

nathanielnrn commented 1 month ago

Currently the read-compute-write AXI generator only creates a single set of channels for the first seq_mem in a Calyx program, as opposed to an individual channel for each memory.

This has happened to work with our tests so far because all of the memories are the same size and the channels can be shared. For calyx programs with differently sized programs the wrapper won't work properly. Luckily I believe this is an easy fix, We want to suffix the name of the memory to the generated channels in the add_*_channel functions and propagate this name change where necessary in add_main_comp.

anshumanmohan commented 1 month ago

Funny to me that this has somehow worked out so far!