Jump to content

C to HDL: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
→‎Example tools: legup was acquired by microchip several years ago
→‎Example tools: cleanup and remove nn
Line 16: Line 16:
== Example tools ==
== Example tools ==
*[https://www.microchip.com/en-us/products/fpgas-and-plds/fpga-and-soc-design-tools/smarthls-compiler SmartHLS] (originally LegUp), ANSI C to Verilog tool developed by [[Microchip Technology]], based on LLVM compiler.
*[https://www.microchip.com/en-us/products/fpgas-and-plds/fpga-and-soc-design-tools/smarthls-compiler SmartHLS] (originally LegUp), ANSI C to Verilog tool developed by [[Microchip Technology]], based on LLVM compiler.
*[https://www.cl.cam.ac.uk/~djg11/cvtovpage-real CBG CtoV] A tool developed 1995-99 by DJ Greaves ([[University of Cambridge]]) that instantiated RAMs and interpreted various [[SystemC]] constructs and datatypes.
*[https://vhdplus.com VHDP] Simplified VHDL with support of procedural programming.
*bambu (free and open source ANSI C to Verilog tool based on GCC compiler) from [http://panda.dei.polimi.it PandA website]
*C-to-Verilog tool ([[No instruction set computing|NISC]]) from [[University of California, Irvine]]
*[https://www.cl.cam.ac.uk/~djg11/cvtovpage-real CBG 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 ([[No instruction set computing|NISC]]) from University of California, Irvine
*[http://www.altium.com/Products/AltiumDesigner/ Altium Designer 6.9 and 7.0] (a.k.a. Summer 08) from [[Altium]]
*[http://www.altium.com/Products/AltiumDesigner/ Altium Designer 6.9 and 7.0] (a.k.a. Summer 08) from [[Altium]]
*[https://www.intel.com/content/www/us/en/programmable/b/nios2-c2h.html Nios II C-to-Hardware Acceleration Compiler] from [[Altera]]
*[https://www.intel.com/content/www/us/en/programmable/b/nios2-c2h.html Nios II C-to-Hardware Acceleration Compiler] from [[Altera]]
Line 32: Line 30:
* Cascade (C to RTL synthesizer) from [[CriticalBlue]]
* Cascade (C to RTL synthesizer) from [[CriticalBlue]]
*[[Mitrion-C]] from [[Mitrionics]]
*[[Mitrion-C]] from [[Mitrionics]]
*SPARK (a C-to-VHDL) from [[University of California, San Diego]] <ref>{{cite web|url=https://web.archive.org/web/20091024222430/http://mesl.ucsd.edu/spark/|title=SPARK: High-Level Synthesis using Parallelizing Compiler Techniques}}</ref>
*C2R Compiler from [http://www.cebatech.com/ Cebatech]
*VLSI/VHDL CAD Group Index of Useful Tools from [[Case Western Reserve University]]<ref>{{cite web|url=https://web.archive.org/web/20110719183022/http://bear.cwru.edu/tools.html|title=VLSI CAD Group Index of Useful Tools}}</ref>
*PICO Express from [http://www.synfora.com/ Synfora]
*SPARK (a C-to-VHDL) from [https://web.archive.org/web/20091024222430/http://mesl.ucsd.edu/spark/ University Of California, San Diego]
*Hardware Compile Environment (HCE) from [http://www.accelize.com/ Accelize] (formerly HARWEST Compiling Environment from [https://web.archive.org/web/20100107173332/http://www.ylichron.it/index.php?option=com_content&task=blogcategory&id=21&Itemid=43 Ylichron])
*[http://www.nkavvadias.com/hercules/ HercuLeS] (C/assembly-to-VHDL) tool
*VLSI/VHDL CAD Group Index of Useful Tools from [https://web.archive.org/web/20110719183022/http://bear.cwru.edu/tools.html CWRU University homepage]
*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]]<ref>{{cite web |url=http://www.myhdl.org/ |title=Home |website=myhdl.org}}</ref>
*[[MyHDL]] is a Python-subset compiler and simulator to [[VHDL]] and [[Verilog]]<ref>{{cite web |url=http://www.myhdl.org/ |title=Home |website=myhdl.org}}</ref>
*Trident (C to VHDL) from [http://trident.sourceforge.net/ trident.sourceforge.net]
*Vsyn (C to Verilog, Russian project)<ref>{{Cite web |url=http://www.vsyn.ru/ |title=VSyn.ru |access-date=2019-10-27 |archive-url=https://web.archive.org/web/20170602163253/http://vsyn.ru/?project=main |archive-date=2017-06-02 |url-status=dead }}</ref>
* [https://www.fpga-cores.com/instant-soc/ Instant SoC] by [https://www.fpga-cores.com/ FPGA Cores] generates a SoC with [https://www.fpga-cores.com/instant-soc/risc-v/ RISC-V] core, peripherals and memories directly from C++.
* [https://github.com/JulianKemmerer/PipelineC PipelineC] C-like hardware description language adding [[high-level synthesis]]-like automatic pipelining as a language construct/compiler feature.


== See also ==
== See also ==

Revision as of 19:53, 29 March 2024

C to HDL tools convert C language or C-like computer code into a hardware description language (HDL) such as VHDL or Verilog. The converted code can then be synthesized and translated into a hardware device such as a field-programmable gate array. Compared to software, 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 RTL 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.[1] In January 2009, Mentor Graphics acquired Agility's C synthesis assets.[2] Celoxica continues to trade concentrating on hardware acceleration in the financial and other industries.[3]

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, computational fluid dynamics (CFD),[clarification needed] 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-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

See also

References

  1. ^ Clarke, Peter (1 April 2008). "Celoxica sells EDA business to Catalytic for $3 million". EE Times.
  2. ^ Dylan McGrath (22 January 2009). "Mentor buys Agility's C synthesis assets". EETimes.com.
  3. ^ Celoxica Ltd (22 January 2011). "Celoxica Ltd 'About Us'". Celoxica.com. Archived from the original on 16 January 2011. Retrieved 22 January 2011.
  4. ^ "SPARK: High-Level Synthesis using Parallelizing Compiler Techniques".
  5. ^ "VLSI CAD Group Index of Useful Tools".
  6. ^ "Home". myhdl.org.