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 o ...
or C-like
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 pr ...
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 The VHSIC Hardware Description Language (VHDL) is a hardware description language (HDL) that can model the behavior and structure of digital systems at multiple levels of abstraction, ranging from the system level down to that of logic gate ...
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 at the register-transfer level of abstraction. It is als ...
. 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. Compared to
software Software is a set of computer programs and associated software documentation, documentation and data (computing), data. This is in contrast to Computer hardware, hardware, from which the system is built and which actually performs the work. ...
, 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 consu ...
) 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 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 a ...
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 In computer science, a high-level programming language is a programming language with strong abstraction from the details of the computer. In contrast to low-level programming languages, it may use natural language ''elements'', be easier to use, ...
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 In digital circuit design, register-transfer level (RTL) is a design abstraction which models a synchronous digital circuit in terms of the flow of digital signals (data) between hardware registers, and the logical operations performed on those ...
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 th ...
in the 1990s who developed the
Handel-C Handel-C is a high-level programming language which targets low-level hardware, most commonly used in the programming of FPGAs. It is a rich subset of C, with non-standard extensions to control hardware instantiation with an emphasis on paralleli ...
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 acquired Agility's C synthesis assets. Celoxica continues to trade concentrating on hardware acceleration in the financial and other industries.


Applications

C to HDL techniques are most commonly applied to
applications Application may refer to: Mathematics and computing * Application software, computer software designed to help the user to perform specific tasks ** Application layer, an abstraction layer that specifies protocols and interface methods used in a c ...
that have unacceptably high execution times on existing general-purpose supercomputer architectures. Examples include bioinformatics,
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 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 c ...
tools have a similar aim, but with flow 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 Catapult C Synthesis, a commercial electronic design automation product of Mentor Graphics, is a high-level synthesis tool, sometimes called algorithmic synthesis or ESL synthesis. Catapult C takes ANSI C/ C++ and SystemC inputs and generates re ...
tool from Mentor Graphics *Cynthesizer from Forte Design Systems * SystemC fro
Celoxica (defunct)
*
Handel-C Handel-C is a high-level programming language which targets low-level hardware, most commonly used in the programming of FPGAs. It is a rich subset of C, with non-standard extensions to control hardware instantiation with an emphasis on paralleli ...
fro
Celoxica (defunct)
* DIME-C from
Nallatech Nallatech is a computer hardware and software firm based in Camarillo, California, United States. The company specializes in field-programmable gate array (FPGA) integrated circuit technology applied in computing. As of 2007 the company's prim ...
*
Impulse C Impulse C is a subset of the C programming language combined with a C-compatible function library supporting parallel programming, in particular for programming of applications targeting FPGA devices. It is developed by Impulse Accelerated Tech ...
fro
Impulse Accelerated Technologies
* FpgaC which is an open source initiative *
SA-C programming language Single Assignment C (SA-C) (pronounced "sassy") is a member of the C programming language family designed to be directly and intuitively translatable into circuits, including FPGA A field-programmable gate array (FPGA) is an integrated circu ...
* Cascade (C to RTL synthesizer) from
CriticalBlue Lucio Lanza , industry = IT, Cybersecurity , products = SECaaS Dynamic Analysis Tools Profiling Tools Verification Tools , production = , services = API SecurityApplication Security Software Optimization ...
* Mitrion-C from
Mitrionics Mitrionics was a Swedish company manufacturing softcore reconfigurable processors. It has been mentioned as one of EETimes "60 Emerging startups". The company was founded in 2001 by Stefan Möhl and Pontus Borg to commercialize a massively paralle ...
*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 MyHDL is a Python (programming language), Python-based hardware description language (HDL). Features of MyHDL include: * The ability to generate VHDL and Verilog code from a MyHDL design. * The ability to generate a testbench (Conversion of test be ...
is a Python-subset compiler and simulator to
VHDL The VHSIC Hardware Description Language (VHDL) is a hardware description language (HDL) that can model the behavior and structure of digital systems at multiple levels of abstraction, ranging from the system level down to that of logic gate ...
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 at the register-transfer level of abstraction. It is als ...
*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 This page is a comparison of electronic design automation (EDA) software which is used today to design the near totality of electronic devices. Modern electronic devices are too complex to be designed without the help of a computer. Electronic dev ...
* Electronic design automation (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


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