calyxir/calyx

SDN: next steps

Opened this issue · 0 comments

Because it looks like we won't do them right away, I am parking a few next steps for our SDN efforts. The basic theme here is to help the stats component (which is static in Piezo and dynamic in Calyx) to be a little more comparable in terms of resource usage to the PIFO tree (which is dynamic in both Piezo and Calyx).

  • Currently only the root PIFO invokes the stats component. Instead, have each leaf invoke it. This is more realistic, since then the stats component would have the finest-grained stats instead of the coarsest-grained stats. It also beefs up the component a little, since it will need as many counters as there are leaves in the tree.
  • Currently the control component just reads statistics off the stats components' ports. Instead, the control could invoke the stats component, trigger some kind of summarization routine, and then read some summary off the stats component. This summarization routine would still be static, thereby keeping the stats component static.
  • Currently it is not clear if the stats and controller components' cells/wiring is even kept alive all the way down to Verilog. Because we just copy some data and then do nothing with it, someone along the way could be deleting those cells/wiring as "written to, but never read from". To keep these alive, just make the controller report stats to the main component, and make main put those answers into an external memory.