Skip to content

This is a Clang tool that parses SystemC models, and synthesizes Verilog from it.

License

Notifications You must be signed in to change notification settings

mayagokhale/systemc-clang

 
 

Repository files navigation

Documentation Status

A SystemC Parser using the Clang Front-end

systemc-clang parses SystemC 2.3.3. It parses RTL constructs and some TLM 2.0 constructs. There is a HDL synthesis plugin that generates Verilog from SystemC RTL descriptions.

Requirements

  • llvm/clang (version 12.0.0)
  • SystemC version 2.3.3.
  • c++14 is required. We are using some features that necessitate c++17. Down-porting it is also possible, but not supported.

Installation

Plugin HDL

To compile with the HDL plugin, run cmake with the -DHDL=on flag.

Documentation

Tests

To enable compilation of tests, run cmake with the -DENABLE_TESTS=on flag and also the -DSYSTEMC_DIR=<path> flag to pass the location for SystemC. Without specifying the SYSTEMC_DIR path, it will not be possible to run the unit tests.

For information about running verilog conversion tests, see this file.

Issues

If you encounter problems, please create issues with a minimally working example that illustrates the issue.

Development Docker image

We build all the dependencies necessary for systemc-clang in a Docker image that you may use.

Developers

Core

HDL plugin

  • Maya B. Gokhale
  • Zhuanhao Wu

License

systemc-clang follows the same licensing as clang. Please look at LICENSE.

About

This is a Clang tool that parses SystemC models, and synthesizes Verilog from it.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Tcl 41.5%
  • C++ 30.0%
  • Shell 7.1%
  • Makefile 7.0%
  • Python 5.2%
  • C 4.5%
  • Other 4.7%