MCF > Detailed Design and Analysis > Embedded Software/Firmware >
Scope and Description
This topic page covers timing analysis of firmware running on an FPGA or other programmable logic devices (PLDs). These devices use hardware description languages (HDLs) for programming (primarily VHDL and Verilog). Unlike software that runs sequentially on a processor, HDL programming is executed in parallel with specific timing requirements. Timing analysis and definition of the relevant factors is fundamental to the HDL development process and to the reliability of firmware. Software flaws are one of the most common sources of on-orbit failure in small satellites. Because this software typically cannot be updated on-orbit, smallsat developers should ensure that all firmware is thoroughly analyzed using timing simulations and/or static analysis techniques to ensure performance across all anticipated environments and operational conditions.
Resources under this topic area are handbooks that provide traditional firmware timing analysis processes and requirements that can inform smallsat approaches. Note that this topic does not include firmware development environments, which usually include integrated tools for timing analysis. These tools can be found on the Embedded Software/Firmware > Development topic page.
Best Practices and Lessons Learned
- Timing constraints should consider (1) any radiation susceptibilities on the device being programmed and (2) external radiation susceptibilities that could influence firmware performance. Particularly when using COTS parts throughout a digital system, development of timing constraints should involve close coordination between the firmware developer(s) and electrical engineer(s).
Complex electronics are "programmable and designable complex integrated circuits." Examples of these ... include, but are not limited to, FPGAs, CPLDs, ASICs, and SoCs. This handbook provides an overview of FPGA, CPLD, ASIC, and SoC devices, how they are designed and programmed, and assurance and verification activities for them. It also covers trends in design and assurance for these complex devices. This document is coming from a traditional, high-reliability perspective, but the intended audience and "overview" level of detail makes this a good introduction these design, assurance, and verification tasks. Section 3 provides a useful glossary of terms.
This NASA guidebook provides software safety procedures and guidance for the development and quality ... assurance of safety-critical software. This resource also provides software acquisition guidance for both commercial off-the-shelf (COTS) software and software developed under contract.