Hardware Acceleration

Frozen Content

Use the following links to browse through the frequently asked questions relevant to this area of soft design.

What is hardware acceleration?

 

 
How can I use Altium's C-to-Hardware Compilation Technology?

In terms of FPGA design within Altium Designer, there are two ways in which the CHC technology can be used:

  • To design custom FPGA logic using C. In this case the CHC technology is used to translate a single C source function – referenced using a C Code Symbol – into a hardware function. The end result is an independent module of FPGA logic which connects, through defined IO ports, to other areas of the circuit design.
  • To accelerate processor systems. In this case, the CHC technology is used to translate specified software functions in the C source code into hardware functions, which can be called by the embedded software running on a 'soft' processor in the design.
  • The C-to-Hardware Compiler is used in conjunction with Altium Designer's traditional embedded software compilers to build a system in which an embedded processor can offload critical functions to hardware. Access to, and control over, the generated hardware functions, is made possible through use of an appropriately-configured Application Specific Processor peripheral component (ASP).
When using C Code Symbols to implement custom logic, can the C-to-Hardware Compiler generate Verilog from the C source code?

The C-to-Hardware Compiler can generate VHDL or Verilog from the C code. By default, VHDL will be generated. Change this as required using the corresponding options available in the Compiler Netlist region, on the FPGA - General page of the Preferences dialog (DXP » Preferences).

Can Altium's C-to-Hardware Compiler convert any C source function into a hardware circuit?

It is important to understand that while virtually all C programs can be converted to an electronic circuit by the C-to-Hardware Compiler, it is the characteristics of a source function that ultimately determines whether the Compiler can create an efficient hardware component, or whether it is better to execute that function on a processor core. The Compiler can only create a small and fast electronic circuit if the C source code is parallelizable.

Can a global variable that has been allocated in hardware be accessed by a software-based function?

A global variable that is allocated in hardware can only be accessed by a function that has also been implemented in hardware. Such a variable can not be called from a software-based function running on the host processor.

I'm using hardware acceleration in my design – what interaction is possible between the hardware and software-based functions?
  • A hardware function can call another hardware function.
  • A hardware function can not call a software function.
  • A software function running on the host processor can call a hardware function, provided that hardware function has been exported to software.
  • A hardware-only function (not exported to software) can call a hardware function that has been exported to software. Conversely, a hardware function that has been exported to software can call a hardware-only function.
When using an ASP component in a design, how are the Generate ASP and Use ASP from Software options best used?

 

 
You are reporting an issue with the following selected text and/or image within the active document: