ABSTRACT

This chapter explores an efficient method for applying subroutine call instantiation of module functionality when synthesizing embedded software from an SDF specification. An arbitrary, raw schedule for an synchronous dataflow (SDF) graph is an admissible actor firing sequence that does not have any form of schedule or code compression. The repetitions of an actor may be exponential in the size of an SDF graph; hence, a raw schedule has exponential length in the size of the SDF graph. The chapter describes metrics for characterizing a certain form of uniformity in SDF schedules, and shows that the benefits of the proposed techniques increase with decreasing uniformity. Directions for future work include integrating the procedural implementation approach in this chapter with existing techniques for inlined implementation. For example, different subgraphs in an SDF specification may be best handled using different techniques, depending on application constraints and subgraph characteristics.