There is a growing demand for solutions which allow the design of large and complex reconfigurable Systems-on-
Chip (SoC) at high abstraction levels. The Gannet project proposes a functional programming approach for high-abstraction design of very large SoCs. Gannet is a distributed service-based SoC architecture, i.e. a network of services offered by hardware or software cores. The Gannet SoC is task-level reconfigurable: it performs tasks by executing functional task description programs using a demand-driven dataflow mechanism. The Gannet architecture
combines the flexible connectivity offered by a Networkon-
Chip with the functional language paradigm to create a
fully concurrent distributed SoC with the option to completely separate data flows from control flows. This feature is essential to avoid a bottleneck at he controller for run-time control of multiple high-throughput data flows.
In this paper we present the Gannet architecture and language
and introduce an operational semantics to formally describe the mechanism to separate control and data flows