Most articles on ESL cover the IC-only design or a virtual prototyping environment for software development. Articles would be accurate if systems were simple and ICs were the only parts in a complete product. Unfortunately for an already confused industry, everyone mixes ESL and IC, seeming to imply that ESL tools aren’t needed. Remember that an IC can be a system (SoC), but is also part of a larger system, and must be designed as such. There is need for ESL tools to do decomposition of the system functions into architectures.
If the system around the IC, including embedded software, is important for the IC architecture elements including cache, bus arbiter, DMA, etc., not to mention load balancing of software operation across multiple processors and partitioning with multiple ICs, then a system engineering tool is needed at the specification stage to do partitioning and determine overall architecture requirements, sizes, power, and speeds. First, a system engineering tool is used for successive decomposition of an entire system from functions into architecture – from requirements into algorithms into macro-architecture and software into micro-architecture and detailed software. As more details become known from prior tradeoff analyses, design refinement is done to establish the IC part of the overall system. From this point to implementation, hardware tools, plus software development tools, continue the component design process. This might cause design iteration at a higher level, but this is the nature of the design process. The alternative is to make educated guesses and significantly over design the system, thus paying an huge price.
Systems engineers and product marketing specialists need to have their “heads in the clouds” to invent new products. True System Engineering tools must start at a high level of abstraction. If system designers can’t see the trees for the forest, then it must also be true the implementation engineers can’t see the forest for the trees. Hence, a full systems specification to implementation methodology of successive decomposition and mixed abstraction levels is required. Multiple tools are required for both hardware and software refinement. There’s nothing wrong with point solutions. ESL and IC-only tools just can’t be confused with or replace each other.