PCIe-based FPGA designs are becoming popular within avionics systems. However, the verification of such designs for DO-254 compliance with design assurance level (DAL) A or B is problematic. FPGA designs that use asynchronous clocks with multiple high-speed serial interfaces such as PCIe produce non-deterministic results during physical tests. Simulation results are optimized because they are based on simplified models, while the test results in physical hardware depend on the phases of clock oscillators. Bit-level verification struggles with this, especially when comparing physical test results against simulation results for traceability, and many false errors are likely to be observed.

In this webinar, we will introduce transaction-level methodology (TLM), and how it can be used for verifying PCIe-based FPGA designs for DO-254 compliance. Transactions are easier to manage and correlate with the simulation results, therefore traceability is much easier to establish. Also, the untimed testbenches used with TLM are not sensitive to clock frequency and phase changes, which is ideal for verifying PCIe-based FPGA designs with non-deterministic behavior.

We will also show a complete flow using TLM from simulation all the way to target FPGA physical testing with our popular CTS platform.

Agenda:

  • Typical architecture of PCIe-based FPGA design
  • Verification challenges
  • Introduction of TLM
  • Differences between bit-level and transaction-level
  • Benefits of TLM
  • Simulation + target FPGA physical test using TLM
  • Q&A

FPGA Design Architecture Optimization

The FPGA design architecture is the single most important and primary factor in achieving development efficiency, quality, and reliability. The difference between a good and a bad design architecture can be about 50% of the workload.

read more

The most error prone FPGA corner cases

Cycle related corner cases are probably the worst and main reason for undetected bugs on many FPGAs. To explain this in a simple way, – a cycle related corner case is for instance if you have an event counter where the number of counted events is critical and you read and reset this counter at regular intervals.

read more