Electronic System-Level Design Tools:Approaches to Co-Design.
Approaches to Co-Design
Hardware and Software Co-Design
Sam:
A partial solution. People have looked for ways to do software development concurrently (in parallel) with the hardware design. The goal is hardware/software co-design, which means that both can proceed at the same time. We could fix problems uncovered by either group, earlier and where most appropriate.
Nora:
Is there a way to do that?
Sam:
We have several approaches to provide an early hardware model for software development. These include hardware simulation, hardware emulation, rapid prototyping, and virtual prototyping.
Hardware/software integration and co-verification can be done incrementally, if a hardware model can be generated quickly. Then the early software can start testing on the hardware simulator, emulator, or virtual test bench. The "co-" part of the term refers to verifying both the hardware and software designs concurrently.
Hardware simulation uses software to model individual transistors, gates, and wires. It can check the hardware functions, but it runs thousands of times slower than the actual hardware.
Hardware emulation involves configuring PC boards full of FPGA hardware chips or processors and existing chips. The result is a hardware model that is fast and easy to implement. However, it is much larger and slower than the final chip implementation. It is useful to debug the logic and provides an early platform for software development. Several EDA companies sell hardware emulation systems.
The FPGA and interconnect time delays are also vastly different from that of the final hardware. Therefore, the hardware timing is not accurate with the FPGA emulation approach.
Rapid prototyping uses both FPGAs and software on existing processors to emulate other system pieces. It matches system interactions in function and timing better than either pure simulation or emulation.
Rapid prototyping works well where major pieces of the total system are known or already exist. It helps the incremental integration of the many blocks. Prototyping has long been used and is sometimes custom-made. A few vendors offer customizable modular systems to speed up and simplify the building of "rapid" prototypes.
An emerging version of rapid prototyping is the virtual prototype. This EDA framework can run software or modeled hardware or both. Mixed levels of hardware and software can be prototyped together (e.g., high-level software models mixed with low-level hardware blocks). This helps start integration at earlier design stages.
Nora:
Now I'm sorry I asked. It must really be a problem if there are so many solutions.
Sam:
Yes, and I'm sorry for the long answer—but you did ask. Incidentally, your company is working on one of these solutions. We can summarize these approaches in a table. (See Table 5.2.)
Nora:
Thanks, Sam. I see that you have to deal with both hardware and software. I've also heard "embedded systems" mentioned. What are they?
Table 5.2. Co-Design Approaches
NAME
APPROACH
COMMENTS
H/W simulation
H/W simulated in software
Very slow
H/W emulation
FPGA hardware racks
Fast for functional verification
Rapid prototype
Semi-custom FPGA H/W
H/W prototype
Microprocessors for S/W
Function & speed
Virtual prototype
All software prototype
Can run H/W or S/W model
Comments
Post a Comment