C to HDL tools convert
C language or
C-like computer code into a
hardware description language
In computer engineering, a hardware description language (HDL) is a specialized computer language used to describe the structure and behavior of electronic circuits, usually to design application-specific integrated circuits (ASICs) and to progra ...
(HDL) such as
VHDL
VHDL (Very High Speed Integrated Circuit Program, VHSIC Hardware Description Language) is a hardware description language that can model the behavior and structure of Digital electronics, digital systems at multiple levels of abstraction, ran ...
or
Verilog
Verilog, standardized as IEEE 1364, is a hardware description language (HDL) used to model electronic systems. It is most commonly used in the design and verification of digital circuits, with the highest level of abstraction being at the re ...
. The converted code can then be
synthesized and
translated into a hardware device such as a
field-programmable gate array. Compared to
software
Software consists of computer programs that instruct the Execution (computing), execution of a computer. Software also includes design documents and specifications.
The history of software is closely tied to the development of digital comput ...
, equivalent designs in
hardware consume less power (yielding higher
performance per watt) and execute faster with lower
latency, more
parallelism and higher
throughput. However,
system design and
functional verification in a hardware description language can be tedious and time-consuming, so systems engineers often write
critical modules in HDL and other
modules in a
high-level language and synthesize these into HDL through C to HDL or
high-level synthesis tools.
C to is another name for this methodology. RTL refers to the
register transfer level representation of a program necessary to implement it in logic.
History
Early development on C to HDL was done by Ian Page, Charles Sweeney and colleagues at
Oxford University in the 1990s who developed the
Handel-C language. They
commercialized their research by forming Embedded Solutions Limited (ESL) in 1999 which was renamed Celoxica in September 2000. In 2008, the embedded systems departments of Celoxica was sold to Catalytic for $3 million and which later merged to become Agility Computing. In January 2009,
Mentor Graphics
Mentor Graphics Corporation was a US-based electronic design automation (EDA) multinational corporation for electrical engineering and electronics, headquartered in Wilsonville, Oregon. Founded in 1981, the company distributed products that ass ...
acquired Agility's C synthesis assets. Celoxica continues to trade concentrating on
hardware acceleration to process transactions in the financial sector and other
industries.
Applications
C to HDL techniques are most commonly applied to
applications that have unacceptably high
execution times on existing general-purpose
supercomputer
A supercomputer is a type of computer with a high level of performance as compared to a general-purpose computer. The performance of a supercomputer is commonly measured in floating-point operations per second (FLOPS) instead of million instruc ...
architectures. Examples include
bioinformatics
Bioinformatics () is an interdisciplinary field of science that develops methods and Bioinformatics software, software tools for understanding biological data, especially when the data sets are large and complex. Bioinformatics uses biology, ...
,
computational fluid dynamics (CFD), financial processing, and oil and gas survey data analysis.
Embedded applications requiring
high performance or
real-time data processing
Data processing is the collection and manipulation of digital data to produce meaningful information. Data processing is a form of ''information processing'', which is the modification (processing) of information in any manner detectable by an o ...
are also an area of use.
System-on-chip (SoC) design may also take advantage of C to HDL techniques.
C-to-VHDL compilers are very useful for large designs or for implementing code that might change in the future. Designing a large application entirely in HDL may be very difficult and time-consuming; the abstraction of a high level language for such a large application will often reduce total development time. Furthermore, an application coded in HDL will almost certainly be more difficult to modify than one coded in a higher level language. If the designer needs to add new functionality to the application, adding a few lines of C code will almost always be easier than remodeling the equivalent HDL code.
Flow to HDL tools have a similar aim, but with
flow rather than C-based design.
Example tools
SmartHLS(originally LegUp), ANSI C to Verilog tool developed by
Microchip Technology, based on LLVM compiler.
CBG CtoVA tool developed 1995-99 by DJ Greaves (
University of Cambridge
The University of Cambridge is a Public university, public collegiate university, collegiate research university in Cambridge, England. Founded in 1209, the University of Cambridge is the List of oldest universities in continuous operation, wo ...
) that instantiated RAMs and interpreted various
SystemC constructs and datatypes.
*C-to-Verilog tool (
NISC) from
University of California, Irvine
The University of California, Irvine (UCI or UC Irvine) is a Public university, public Land-grant university, land-grant research university in Irvine, California, United States. One of the ten campuses of the University of California system, U ...
Altium Designer 6.9 and 7.0(a.k.a. Summer 08) from
AltiumNios II C-to-Hardware Acceleration Compilerfrom
Altera
*
Catapult C tool from
Mentor Graphics
Mentor Graphics Corporation was a US-based electronic design automation (EDA) multinational corporation for electrical engineering and electronics, headquartered in Wilsonville, Oregon. Founded in 1981, the company distributed products that ass ...
*Cynthesizer from
Forte Design Systems
*
SystemC fro
Celoxica (defunct)*
Handel-C fro
Celoxica (defunct)*
DIME-C from
Nallatech
*
Impulse C fro
Impulse Accelerated TechnologiesInstant-SoCfro
FPGA-Cores*
FpgaC
FpgaC is a silicon compiler, which produces digital circuits that will execute compiled language computer programs. The digital circuits produced may use FPGAs or CPLDs as the target processor for reconfigurable computing, or even ASICs for ...
which is an open source initiative
*
SA-C programming language
* Cascade (C to RTL synthesizer) from CriticalBlue
*
Mitrion-C from
Mitrionics
*SPARK (a C-to-VHDL) from
University of California, San Diego
The University of California, San Diego (UC San Diego in communications material, formerly and colloquially UCSD) is a public university, public Land-grant university, land-grant research university in San Diego, California, United States. Es ...
*VLSI/VHDL CAD Group Index of Useful Tools from
Case Western Reserve University
*
MyHDL is a Python-subset compiler and simulator to
VHDL
VHDL (Very High Speed Integrated Circuit Program, VHSIC Hardware Description Language) is a hardware description language that can model the behavior and structure of Digital electronics, digital systems at multiple levels of abstraction, ran ...
and
Verilog
Verilog, standardized as IEEE 1364, is a hardware description language (HDL) used to model electronic systems. It is most commonly used in the design and verification of digital circuits, with the highest level of abstraction being at the re ...
See also
*
Comparison of EDA Software
*
Electronic design automation
Electronic design automation (EDA), also referred to as electronic computer-aided design (ECAD), is a category of software tools for designing Electronics, electronic systems such as integrated circuits and printed circuit boards. The tools wo ...
(EDA)
*
High-level synthesis
*
Silicon compiler
A silicon compiler is an electronic design automation software system, software tool that is used for high-level synthesis of integrated circuits. Such a tool takes a user's specification of an Integrated circuit design, IC design as input and auto ...
*
Hardware acceleration
References
External links
A good article on Dr Dobbs Journal about ImpulseC.An overview of flows by Daresbury Labs.*
ttps://web.archive.org/web/20070216180902/http://www.xilinx.com/products/design_tools/logic_design/advanced/esl/index.htm Xilinx's ESL initiative, some products listed and C to VHDL tools.br>
Altium's C-to-Hardware Compiler overview.Altera's Nios II C2H Acceleration Compiler White Paper.
{{Hardware acceleration
Hardware description languages
Program transformation
Hardware acceleration