Multi-FPGA Assertion Checkers for Fast SoC Debug Halt

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current FPGA-based prototyping systems for SoC designs lack robust debug infrastructure, leading to slow debugging processes and significant performance slowdowns when periodic state dumps occur, complicating the identification and correction of errors.

Innovation Solution

Incorporating user-defined assertion checkers into the FPGA prototyping system that stop the SoC clocks upon assertion events, allowing control to be passed to a runtime system for error handling, thereby enabling quick diagnostics and minimal impact on performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If periodic state dumps are performed in FPGA-based prototyping systems, then debugging information is captured, but performance slowdowns occur

Engineering Contradiction:
Improvedebugging accuracyVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts the state dump functionality from the main system clock domain by using assertion checkers that operate independently and trigger external debugging actions only when assertion violations occur. This separates the debugging mechanism from the performance-critical execution path, eliminating periodic performance slowdowns while maintaining debugging capability.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The assertion checker acts as an intermediary between the system under test and the debugging infrastructure. Instead of directly implementing periodic state dumps that slow down the system, the assertion checker monitors for specific error conditions and triggers debugging actions only when needed, mediating between continuous monitoring requirements and performance constraints.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If multiple assertion checkers are implemented in a multi-FPGA system, then debugging coverage is improved, but system complexity increases

Engineering Contradiction:
Improvedebugging coverageVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements a universal assertion checker architecture that can be instantiated multiple times across different FPGA devices. Each assertion checker uses the same standardized interface and behavior, allowing multiple checkers to be deployed for comprehensive debugging coverage without proportionally increasing system complexity. The uniform design enables easy replication and management.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The debugging functionality is segmented into independent assertion checker modules that can be distributed across multiple FPGA devices. Each assertion checker is a self-contained unit that monitors specific assertion conditions, allowing the overall debugging system to scale across multiple devices while maintaining modular complexity management.

Inventive Principle:
Principle #1Segmentation

3Loss of time

If assertion checkers stop system clocks upon assertion events, then error identification is accelerated, but system operation is interrupted

Engineering Contradiction:
Improvediagnostic timeVSAvoidsystem throughput
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The assertion checkers perform preliminary monitoring of assertion conditions continuously in the background without affecting system operation. Only when an assertion violation is detected do they trigger the clock stop action, preventing the need for continuous system interruption while still enabling rapid error identification when issues occur.

Inventive Principle:
Principle #9Preliminary anti-action

Data Source

PatentUS10489534B1Support for multiple user defined assertion checkers in a multi-FPGA prototyping system
Publication Date: 2019.11.26 CADENCE DESIGN SYST INC
  • US10489534B1 patent drawing
  • US10489534B1 patent drawing
  • US10489534B1 patent drawing

AI summary

A method is provided that includes selecting an assertion checker for a design under test. The design under test includes hardware and firmware for a system on a chip, the method including instantiating the assertion checker in a compilation file, annotating the compilation file to define an assertion control signal for the assertion checker, and selecting one of a DISABLE or an ENABLE definition for the assertion control signal. The method also includes configuring a clock in a prototyping platform to stop when the assertion control signal is enabled in the assertion checker and a logic condition for the assertion control signal is satisfied in the prototyping platform. A system and a computer readable medium including instructions to perform the above method are also provided.