This PR doesn't actually add optimizations (e.g., one-hot encoding). It just refactors the code to make it easy to support this in subsequent PRs. In fact, it shouldn't change anything about the compiled designs (apart from the order cells and groups are instantiated).
The main contribution of this PR is a StaticSchedule struct that is used by compile-static, and includes a lot of code that is simply lifted from thecompile-static pass. It has a realize_schedule() method that instantiates the FSM. In order to introduce optimizations, we'll just have to edit the realize_schedule() method, which shouldn't be difficult.
(Edit): This PR also merges the compile-static and compile-static-interface pass into a single pass.
Making progress towards #520.
This PR doesn't actually add optimizations (e.g., one-hot encoding). It just refactors the code to make it easy to support this in subsequent PRs. In fact, it shouldn't change anything about the compiled designs (apart from the order cells and groups are instantiated).
The main contribution of this PR is a
StaticSchedule
struct that is used bycompile-static
, and includes a lot of code that is simply lifted from thecompile-static
pass. It has arealize_schedule()
method that instantiates the FSM. In order to introduce optimizations, we'll just have to edit therealize_schedule()
method, which shouldn't be difficult.(Edit): This PR also merges the
compile-static
andcompile-static-interface
pass into a single pass.