16
CS269: HW/SW Engineering of Embedded Systems, Winter02
Design Freedom
•Change architecture
•Change partitioning
•Change scheduling
•Change synthesis
For this simple case, we can have least the three different architectures, all trying to implement the same application, that of controlling an engine.  The central question to ask is:  “If I change my architecture, will I still have a correct implementation?”  In fact, what is the precise notion of correctness?  The notion of correctness, though extremely important, is not formal in general and not even clear for embedded systems implemented on heterogeneous architectures like these ones.  Furthermore, even if we have a notion of correctness, we have to answer the question of “How do we check for this correctness?”  Do we have to check exhaustively?  Is it possible to accomplish this efficiently?