HLS Debugging System Mapping HLL to FSM States

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software designers face challenges in debugging hardware accelerators due to the gap between software debugging environments and RTL simulators, as they are unfamiliar with RTL and circuit structures, making it difficult to debug timing, concurrency, and implementation issues in hardware accelerators.

Innovation Solution

A debugging system that uses a cross-reference database to map high-level language (HLL) program elements to hardware language finite state machine elements, allowing software designers to debug hardware accelerators as if in a software debugger environment, by generating and storing mappings of HLL program elements to hardware language finite state machine states and lines, facilitating breakpoint setting and variable inspection.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If software designers use RTL simulators to debug hardware accelerators, then debugging capability is provided, but software designers face difficulty due to unfamiliarity with RTL and circuit structures

Engineering Contradiction:
Improvedebugging capabilityVSAvoidease of debugging
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent introduces a debugging system that acts as an intermediary between software designers and RTL simulators. This system translates software-level debugging commands into hardware-level simulation operations, allowing designers to debug hardware accelerators using familiar software debugging interfaces while the system handles the complexity of RTL and circuit structure translations behind the scenes.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If hardware accelerators are implemented from HLL specifications, then performance is improved, but timing and concurrency issues may be masked during software development and surface during hardware simulation

Engineering Contradiction:
ImproveperformanceVSAvoidtiming correctness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The debugging system performs preliminary debugging actions by establishing breakpoints and inspecting variables at the software specification level before hardware simulation. This allows timing and concurrency issues to be identified and addressed during the software development phase, preventing them from surfacing later during hardware simulation and reducing rework.

Inventive Principle:
Principle #10Preliminary action

3Loss of information

If software designers trace low-level signals and interpret waveforms in RTL simulators, then debugging information is obtained, but the process becomes complex and time-consuming

Engineering Contradiction:
Improvedebugging informationVSAvoiddebugging time
Core Design Contradiction:
Loss of informationVSLoss of time

Solution Approach 1:

The debugging system creates a software-level copy or representation of the hardware accelerator's execution state. Instead of requiring designers to trace low-level signals and interpret waveforms directly in the RTL simulator, the system provides debugging information in terms of the original HLL program variables and statements, effectively copying the software debugging experience to the hardware debugging context and significantly reducing the time and complexity involved.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS10255400B1Debugging system and method
Publication Date: 2019.04.09 XILINX INC
  • US10255400B1 patent drawing
  • US10255400B1 patent drawing
  • US10255400B1 patent drawing

AI summary

Disclosed approaches for configuring a memory include generating by a high-level synthesis (HLS) tool executing on a computer system, a first mapping of elements of a high-level language (HLL) program to elements of a hardware language finite state machine that represents a circuit implementation of the HLL program. The HLS tool further generates a second mapping of lines of the HLL program to states of the hardware language finite state machine and stores the information describing the first mapping and the second mapping in a data structure of a database in the memory.