Target types
When debugging, it is important to consider the capabilities and relevancy of the target. Sometimes a target, during the development cycle, bears only a cursory resemblance to the final SoC design. This means that areas like speed, functionality, or performance might differ between earlier targets and the final design.
Here is a list of different targets that you might work with during a project, and some things to remember about each of them:
RTL simulation or emulation
- Accurate model of the processor but bot a complete representative of the final design.
- Debugging is very slow.
FPGA
- Can be true to final design.
- Debugging is faster than RTL simulation, but slower than final target.
- May require more steps to establish a debug connection.
Software model
- Can be true to layout of final design, but not necessarily timing accurate.
- There may be aspects of the model which do not function the same way that the hardware functions.
- Debugging is faster than RTL simulation, but slower than an FPGA.
- Need to consider whether the model is functionally accurate or timing accurate.
Development board
- If built in-house, the target is similar to, or the same as, the final design. If built by a third party, the target is only similar to the final design.
- May require more steps to establish a debug connection.
- Debugging is faster than a model.
Final silicon
- The target is the final design.
- May not have physical connectors for debugger connection.
- Debugging is faster.
- Typically available late in project development.