This preliminary PR introduces support for MIDAS II, which we are naming Golden Gate (so named in our upcoming ICCAD2019 publication; we'll release a copy shortly).
Golden Gate is a rewrite of the front (~ target transformations & FAME1) and middle-ends (simulation mapping) of the MIDAS compiler, to support simulating target machines with multiple clock domains and to enable cycle-exact multi-cycle resource optimizations (the latter of which is the subject of our ICCAD2019 paper).
In order to support these goals, Golden Gate implements simulators a latency-insensitive bounded dataflow network. These networks can model combinational paths in the target machine that span multiple models (at the expense of FMR). To support this, we had to re-implement the FAME1 pass to generate unique token enqueue guards as function of the input ports each output port is combinationally dependent on.
TODOs:
[x] Put legacy token initialization on a config switch - tied to black box endpoint system
This preliminary PR introduces support for MIDAS II, which we are naming Golden Gate (so named in our upcoming ICCAD2019 publication; we'll release a copy shortly).
Golden Gate is a rewrite of the front (~ target transformations & FAME1) and middle-ends (simulation mapping) of the MIDAS compiler, to support simulating target machines with multiple clock domains and to enable cycle-exact multi-cycle resource optimizations (the latter of which is the subject of our ICCAD2019 paper).
In order to support these goals, Golden Gate implements simulators a latency-insensitive bounded dataflow network. These networks can model combinational paths in the target machine that span multiple models (at the expense of FMR). To support this, we had to re-implement the FAME1 pass to generate unique token enqueue guards as function of the input ports each output port is combinationally dependent on.
TODOs:
Documentation TODOs: