High-Level Synthesis for RISC-V SoC FPGA Integration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The integration of high-performance System-on-Chip (SoC) designs for Field Programmable Gate Arrays (FPGAs) is hindered by the lack of hardware expertise among software engineers, who struggle with hardware description languages and data transfer complexities, particularly with large data transfers and non-contiguous memory regions, making it difficult to effectively utilize FPGA fabric and interface hardware components.

Innovation Solution

A system that uses high-level synthesis (HLS) to generate RISC-V SoC designs, allowing software engineers to compile code into hardware descriptions and binaries, with automatic data transfer management between processors and accelerators, enabling the use of reconfigurable hardware and DMA engines to handle data transfers efficiently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If software engineers use traditional FPGA development methods requiring hardware description languages, then hardware functionality can be implemented, but the complexity and difficulty of operation increases significantly for software engineers without hardware expertise

Engineering Contradiction:
ImproveFPGA fabric utilizationVSAvoidHardware description language complexity
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The patent replaces the mechanical process of manually writing hardware description languages with an automated software compilation system. The high-level synthesis tool automatically translates C/C++ code into hardware description language (Verilog/VHDL) and generates the corresponding FPGA circuit design, eliminating the need for software engineers to manually work with complex HDL syntax and hardware design concepts.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The patent introduces a high-level synthesis tool as an intermediary between the software engineer's C/C++ code and the FPGA hardware implementation. This intermediary automatically performs the complex translation and optimization processes, managing the interface between software and hardware domains without requiring the software engineer to understand hardware description languages or FPGA architecture details.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If manual data transfer configuration is used between processor and hardware accelerators, then data transfer can be implemented, but the time and error rate of integration increases

Engineering Contradiction:
ImproveData transfer correctnessVSAvoidIntegration time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent enables the system to automatically configure and manage data transfers between the processor and hardware accelerators. The high-level synthesis tool automatically generates the necessary data transfer interfaces, memory-mapped I/O configurations, and control logic based on the C/C++ code structure, allowing the system to self-configure without manual intervention and reducing both integration time and potential configuration errors.

Inventive Principle:
Principle #25Self-service

3Productivity

If DMA engines are used for large data transfers, then transfer efficiency improves, but the complexity of configuring DMA engines and managing memory regions increases

Engineering Contradiction:
ImproveData transfer efficiencyVSAvoidDMA configuration complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent replaces the manual configuration process of DMA engines with automated code analysis and transformation. The high-level synthesis tool analyzes the C/C++ code to identify large data transfer operations and automatically generates the appropriate DMA configuration, memory region allocations, and transfer control logic, eliminating the need for engineers to manually configure complex DMA parameters and manage memory regions.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

4Productivity

If hardened processors with operating systems are used, then processing capability improves, but the difficulty of ensuring contiguous memory regions for DMA transfers increases

Engineering Contradiction:
ImproveProcessing capabilityVSAvoidMemory region management difficulty
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent introduces the high-level synthesis tool as an intermediary that manages the complexity of memory region management. The tool analyzes the C/C++ code to determine the memory access patterns and data transfer requirements, then automatically generates the appropriate memory region configurations and DMA setup code, handling the complexity of ensuring contiguous memory regions without requiring the software engineer to manually manage memory allocation and contiguity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS20230409793A1High-Level-Synthesis for RISC-V System-on-Chip Generation for Field Programmable Gate Arrays
Publication Date: 2023.12.21 MICROSEMI SOC CORP
  • US20230409793A1 patent drawing
  • US20230409793A1 patent drawing
  • US20230409793A1 patent drawing

AI summary

An article of manufacture includes a medium with instructions that when read and executed by a processor, cause the processor to identify a code stream to be executed by a system-on-a-chip (SoC). The SoC is to include an open standard processor and hardware accelerators implemented in reprogrammable hardware. The processor is to, from the code stream, identify a first portion of the code stream to be executed as software by the open standard processor and a second portion to be executed in the accelerators, compile the first portion into a binary for execution by the open standard processor, and generate a hardware description for the second portion to be implemented by the hardware accelerators. The hardware description and the binary are to exchange data during execution of the code stream.