
416 Chapter 7 Hardware and Software Co-design
be recomputed as the clustering changes. During clustering, the fault tolerance
level is used to select new tasks for the cluster—the fanout task with the high-
est fault tolerance level is chosen as the next addition to the cluster.
COFTA tries to share assertion tasks whenever possible. If several tasks use
the same assertion but at nonoverlapping times, then one assertion task can be
used to compute the assertion for all those tasks, saving hardware resources.
COFTA also generates a fault-tolerant hardware architecture. Figure 7-18
shows a simple 1-by-n failure group that consists of n service modules ...