C to HDL
   HOME

TheInfoList



OR:

C to HDL tools convert
C language C (''pronounced like the letter c'') is a general-purpose computer programming language. It was created in the 1970s by Dennis Ritchie, and remains very widely used and influential. By design, C's features cleanly reflect the capabilities ...
or
C-like Due to the success of the C programming language ''The C Programming Language'' (sometimes termed ''K&R'', after its authors' initials) is a computer programming book written by Brian Kernighan and Dennis Ritchie, the latter of whom origina ...
computer code A computer is a machine that can be programmed to carry out sequences of arithmetic or logical operations (computation) automatically. Modern digital electronic computers can perform generic sets of operations known as programs. These progra ...
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, and most commonly, digital logic circuits. A hardware description language en ...
(HDL) such as VHDL or Verilog. The converted code can then be synthesized and
translated Translation is the communication of the meaning of a source-language text by means of an equivalent target-language text. The English language draws a terminological distinction (which does not exist in every language) between ''transla ...
into a hardware device such as a
field-programmable gate array A field-programmable gate array (FPGA) is an integrated circuit designed to be configured by a customer or a designer after manufacturinghence the term ''Field-programmability, field-programmable''. The FPGA configuration is generally specifi ...
. Compared to
software Software is a set of computer programs and associated documentation and data. This is in contrast to hardware, from which the system is built and which actually performs the work. At the lowest programming level, executable code consist ...
, equivalent designs in hardware consume less power (yielding higher
performance per watt In computing, performance per watt is a measure of the energy efficiency of a particular computer architecture or computer hardware. Literally, it measures the rate of computation that can be delivered by a computer for every watt of power con ...
) and execute faster with lower latency, more parallelism and higher
throughput Network throughput (or just throughput, when in context) refers to the rate of message delivery over a communication channel, such as Ethernet or packet radio, in a communication network. The data that these messages contain may be delivered ove ...
. However,
system design Systems design interfaces, and data for an electronic control system to satisfy specified requirements. System design could be seen as the application of system theory to product development. There is some overlap with the disciplines of system ana ...
and
functional verification In electronic design automation, functional verification is the task of verifying that the logic design conforms to specification. Functional verification attempts to answer the question "Does this proposed design do what is intended?" This is ...
in a hardware description language can be tedious and time-consuming, so systems engineers often write critical modules in HDL and other
modules Broadly speaking, modularity is the degree to which a system's components may be separated and recombined, often with the benefit of flexibility and variety in use. The concept of modularity is used primarily to reduce complexity by breaking a s ...
in a high-level language and synthesize these into HDL through C to HDL or
high-level synthesis High-level synthesis (HLS), sometimes referred to as C synthesis, electronic system-level (ESL) synthesis, algorithmic synthesis, or behavioral synthesis, is an automated design process that takes an abstract behavioral specification of a digital ...
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 Oxford () is a city in England. It is the county town and only city of Oxfordshire. In 2020, its population was estimated at 151,584. It is north-west of London, south-east of Birmingham and north-east of Bristol. The city is home to the ...
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 Siemens EDA is a US-based electronic design automation (EDA) multinational corporation for electrical engineering and electronics, headquartered in Wilsonville, Oregon. Founded in 1981 as Mentor Graphics, the company was acquired by Siemens i ...
acquired Agility's C synthesis assets. Celoxica continues to trade concentrating on
hardware acceleration Hardware acceleration is the use of computer hardware designed to perform specific functions more efficiently when compared to software running on a general-purpose central processing unit (CPU). Any transformation of data that can be calcula ...
in the
financial Finance is the study and discipline of money, currency and capital assets. It is related to, but not synonymous with economics, the study of production, distribution, and consumption of money, assets, goods and services (the discipline of f ...
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 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 instructio ...
architectures. Examples include
bioinformatics Bioinformatics () is an interdisciplinary field that develops methods and software tools for understanding biological data, in particular when the data sets are large and complex. As an interdisciplinary field of science, bioinformatics combi ...
,
computational fluid dynamics Computational fluid dynamics (CFD) is a branch of fluid mechanics that uses numerical analysis and data structures to analyze and solve problems that involve fluid flows. Computers are used to perform the calculations required to simulate ...
(CFD), financial processing, and oil and gas survey data analysis. Embedded applications requiring high performance or
real-time Real-time or real time describes various operations in computing or other processes that must guarantee response times within a specified time (deadline), usually a relatively short time. A real-time process is generally one that happens in defined ...
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 ...
are also an area of use.
System-on-chip A system on a chip or system-on-chip (SoC ; pl. ''SoCs'' ) is an integrated circuit that integrates most or all components of a computer or other electronic system. These components almost always include a central processing unit (CPU), memor ...
(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 Flow to HDL tools and methods convert flow-based system design into a hardware description language (HDL) such as VHDL or Verilog. Typically this is a method of creating designs for field-programmable gate array, application-specific integrated ci ...
tools have a similar aim, but with
flow Flow may refer to: Science and technology * Fluid flow, the motion of a gas or liquid * Flow (geomorphology), a type of mass wasting or slope movement in geomorphology * Flow (mathematics), a group action of the real numbers on a set * Flow (psyc ...
rather than C-based design.


Example tools


LegUp
Open Source ANSI C to Verilog tool, based on LLVM compiler.
LegUp
Commercial variant of LegUp.
VHDP
Simplified VHDL with support of procedural programming. *bambu (free and open source ANSI C to Verilog tool based on GCC compiler) fro
PandA websiteCBG CtoV
A tool developed 1995-99 by DJ Greaves (Univ Cambridge) that instantiated RAMs and interpreted various SystemC constructs and datatypes. *C-to-Verilog tool ( NISC) from University of California, Irvine
Altium Designer 6.9 and 7.0
(a.k.a. Summer 08) from
Altium Altium Limited is an Australian multinational software company that provides electronic design automation software to engineers who design printed circuit boards. Founded as Protel Systems Pty Ltd in Australia in 1985, the company has regional ...

Nios II C-to-Hardware Acceleration Compiler
from
Altera Altera Corporation was a manufacturer of programmable logic devices (PLDs) headquartered in San Jose, California. It was founded in 1983 and acquired by Intel in 2015. The main product lines from Altera were the flagship Stratix series, mid-ran ...
* Catapult C tool from
Mentor Graphics Siemens EDA is a US-based electronic design automation (EDA) multinational corporation for electrical engineering and electronics, headquartered in Wilsonville, Oregon. Founded in 1981 as Mentor Graphics, the company was acquired by Siemens i ...
*Cynthesizer from
Forte Design Systems Forte Design Systems, Inc. was a San Jose, CA, based provider of high-level synthesis (HLS) software products, also known as electronic system-level (ESL) synthesis. Forte's main product was Cynthesizer. On February 14, 2014, Forte was acquired b ...
* SystemC fro
Celoxica (defunct)
* Handel-C fro
Celoxica (defunct)
* DIME-C from Nallatech * Impulse C fro
Impulse Accelerated Technologies
* FpgaC which is an open source initiative * SA-C programming language * Cascade (C to RTL synthesizer) from CriticalBlue * Mitrion-C from Mitrionics *C2R Compiler fro
Cebatech
*PICO Express fro
Synfora
*SPARK (a C-to-VHDL) fro
University Of California, San Diego
*Hardware Compile Environment (HCE) fro
Accelize
(formerly HARWEST Compiling Environment fro
Ylichron

HercuLeS
(C/assembly-to-VHDL) tool *VLSI/VHDL CAD Group Index of Useful Tools fro

*DWARV as part of the research project ′Delft Work Bench′ and used in the ′hArtes tool chain′ * MyHDL is a Python-subset compiler and simulator to VHDL and Verilog *Trident (C to VHDL) fro
trident.sourceforge.net
*Vsyn (C to Verilog, Russian project)
Instant SoC
b
FPGA Cores
generates a SoC wit
RISC-V
core, peripherals and memories directly from C++.
PipelineC
C-like hardware description language adding
High-level synthesis High-level synthesis (HLS), sometimes referred to as C synthesis, electronic system-level (ESL) synthesis, algorithmic synthesis, or behavioral synthesis, is an automated design process that takes an abstract behavioral specification of a digital ...
-like automatic pipelining as a language construct/compiler feature.


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 electronic systems such as integrated circuits and printed circuit boards. The tools work togeth ...
(EDA) *
High-level synthesis High-level synthesis (HLS), sometimes referred to as C synthesis, electronic system-level (ESL) synthesis, algorithmic synthesis, or behavioral synthesis, is an automated design process that takes an abstract behavioral specification of a digital ...
*
Silicon compiler A silicon compiler is a software system that takes a user's specifications and automatically generates an integrated circuit (IC). The process is sometimes referred to as hardware compilation. Silicon compilation takes place in three major steps: ...
*
Hardware acceleration Hardware acceleration is the use of computer hardware designed to perform specific functions more efficiently when compared to software running on a general-purpose central processing unit (CPU). Any transformation of data that can be calcula ...


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