Software components for embedded reactive real-time applications must satis
fy tight code size and run-time constraints. Cooperating finite state machi
nes provide a convenient intermediate format for embedded system co-synthes
is,between high-level specification languages and software or hardware impl
ementations. We propose a software generation methodology that takes advant
age of a restricted class of specifications and allows for tight control ov
er the implementation cost, The methodology exploits several techniques fro
m the domain of Boolean function optimization. We also describe how the sim
plified control/data-flow graph used as an intermediate representation can
be used to accurately estimate the size and timing cost of the final execut
able code.