C to HDL
Encyclopedia
C to HDL tools convert C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....

 or C-like computer program code
Source code
In computer science, source code is text written using the format and syntax of the programming language that it is being written in. Such a language is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source...

 into a hardware description language
Hardware description language
In electronics, a hardware description language or HDL is any language from a class of computer languages, specification languages, or modeling languages for formal description and design of electronic circuits, and most-commonly, digital logic...

 (HDL) such as VHDL or Verilog
Verilog
In the semiconductor and electronic design industry, Verilog is a hardware description language used to model electronic systems. Verilog HDL, not to be confused with VHDL , is most commonly used in the design, verification, and implementation of digital logic chips at the register-transfer level...

. The converted code can then be synthesized and translated into a hardware device such as a field-programmable gate array
Field-programmable gate array
A field-programmable gate array is an integrated circuit designed to be configured by the customer or designer after manufacturing—hence "field-programmable"...

. The motivation for this is that writing in a hardware description language can be tedious and time consuming.

C to RTL is another name for this methodology. RTL refers to the register transfer level
Register transfer level
In integrated circuit design, register-transfer level is a level of abstraction used in describing the operation of a synchronous digital circuit...

 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
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 parallelism. Handel-C is to hardware design what the first...

 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 that have unacceptably high execution times on existing general-purpose supercomputer architectures. Examples include Bioinformatics
Bioinformatics
Bioinformatics is the application of computer science and information technology to the field of biology and medicine. Bioinformatics deals with algorithms, databases and information systems, web technologies, artificial intelligence and soft computing, information and computation theory, software...

, Computational fluid dynamics
Computational fluid dynamics
Computational fluid dynamics, usually abbreviated as CFD, is a branch of fluid mechanics that uses numerical methods and algorithms to solve and analyze problems that involve fluid flows. Computers are used to perform the calculations required to simulate the interaction of liquids and gases with...

 (CFD), financial processing, and oil and gas survey data analysis. Embedded applications requiring high performance or real-time data processing are also an area of use. System-on-a-chip
System-on-a-chip
A system on a chip or system on chip is an integrated circuit that integrates all components of a computer or other electronic system into a single chip. It may contain digital, analog, mixed-signal, and often radio-frequency functions—all on a single chip substrate...

 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 remodelling the equivalent HDL code.

Flow to HDL
Flow to HDL
Flow to HDL tools and methods convert flow-based system design into a hardware description language such as VHDL or Verilog. Typically this is a method of creating designs for field-programmable gate array, application-specific integrated circuit prototyping and DSP design...

 tools have a similar aim, but with flow rather than C-based design.

Example tools

  • C-to-Verilog tool from www.c-to-verilog.com
  • C-to-Verilog tool (NISC
    NISC
    No instruction set computing is a computing architecture and compiler technology for designing highly efficient custom processors and hardware accelerators by allowing a compiler to have low-level control of hardware resources.- Overview :...

    ) from University of California, Irvine
  • ROCCC 2.0 (free and open source C to HDL tool) from Jacquard Computing Inc.
  • Altium Designer 6.9 and 7.0 (a.k.a. Summer 08) from Altium
  • Nios II C-to-Hardware Acceleration Compiler from Altera
    Altera
    Altera Corporation is a Silicon Valley manufacturer of PLDs . The company offered its first programmable logic device in 1984. PLDs can be reprogrammed during the design cycle as well as in the field to perform multiple functions, and they support a fairly fast design process...

  • Catapult C
    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...

     tool from Mentor Graphics
    Mentor Graphics
    Mentor Graphics, Inc is a US-based multinational corporation dealing in electronic design automation for electrical engineering and electronics, as of 2004, ranked third in the EDA industry it helped create...

  • Cynthesizer from Forte Design Systems
    Forte Design Systems
    Forte Design Systems, Inc. Forte is a provider of high-level synthesis software products, also known as ESL synthesis or behavioral synthesis that enable design at a higher level of abstraction. Forte's main product is Cynthesizer....

  • SystemC
    SystemC
    SystemC is a set of C++ classes and macros which provide an event-driven simulation kernel in C++ . These facilities enable a designer to simulate concurrent processes, each described using plain C++ syntax...

     from Celoxica
  • Handel-C
    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 parallelism. Handel-C is to hardware design what the first...

     from Celoxica
  • DIME-C
    DIME-C
    DIME-C is a C to HDL tool developed by Nallatech it is part of their DIMEtalk Design Tools suite. It includes an editor, a compiler and a parallelization visualizer. It supports the majority of ANSI C. It generates VHDL.- External links :*...

     from Nallatech
    Nallatech
    Nallatech is a Scottish computer hardware and software firm based in Cumbernauld in North Lanarkshire, Scotland that specializes in field-programmable gate array microchip technology applied in computing...

  • Impulse C
    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...

     from Impulse Accelerated Technologies
  • FpgaC
    FpgaC
    FpgaC is a compiler for a subset of the C programming language, which produces digital circuits that will execute the compiled programs. The circuits may use FPGAs or CPLDs as the target processor for reconfigurable computing, or even ASICs for dedicated applications...

     which is an open source initiative
  • SA-C programming language
  • Cascade from Critical Blue
  • Mitrion-C from Mitrionics
    Mitrionics
    Mitrionics is a Swedish company manufacturing softcore reconfigurable processors. It has been mentioned as one of EETimes "60 Emerging startups".The company was founded in 2001 to commercialize a massively parallel reconfigurable processor implemented on FPGAs...

  • C2R Compiler from Cebatech
  • PICO Express from Synfora
  • SPARK (a C-to-VHDL) from University Of California, San Diego
  • HARWEST Compiling Environment (HCE) from Ylichron
  • HercuLeS (C/assembly-to-VHDL) tool from www.nkavvadias.com/hercules/index.html
  • VLSI/VHDL CAD Group Index of Useful Tools from CWRU University homepage
  • DWARV as part of the research projects Delft Work Bench and part of hArtes tool chain
  • MyHDL
    MyHDL
    MyHDL is a Python based hardware description language .Features of MyHDL include:* The ability to generate VHDL and Verilog code from a MyHDL design....

     is a Python-subset compiler and simulator to VHDL and/or Verilog
    Verilog
    In the semiconductor and electronic design industry, Verilog is a hardware description language used to model electronic systems. Verilog HDL, not to be confused with VHDL , is most commonly used in the design, verification, and implementation of digital logic chips at the register-transfer level...

  • GHDL is a VHDL simulator and compiler capable of calling functions or procedures written in a foreign language, such as C, C++ or Ada95

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK