SystemC to Verilog converter


This is a program written in Python that will automatically convert a SystemC program to verilog. This program takes as input, a SystemC program that is written in an RTL style and converts it to a verilog RTL program. The latest project tarball can be downloaded by going to the link below. The tarball contains an example SystemC program as well as files necessary to run the example in both a SystemC and Verilog simulation environment. Please refer to the included README file to find out where to get open source versions of SystemC and Verilog.

The development model used in this example is one where a simulation environment is first set up in SystemC. A test fixture is set up that will generate input stimuli to the module under development (example.h/cpp). When the performance of the module meets expectations, the module can then be converted to verilog using the sysc2ver.py program. This new verilog file (example.v) can then be run in a verilog simulation environment using the included verilog test fixture files and run scripts.

The purpose of this development environment is to be able to design RTL style code in a SystemC environment. This means that the RTL code can also be run with higher level SystemC or C code that would match what might be run in a system that included a microprocessor. Being able to simulate the hardware and software of a system in a single development environment makes for a development environment that performs much faster than what would happen in a mixed mode development environment. In fact, because SystemC is based on C++ and because the code is compiled to an executable binary file, the speed of the simulation is much faster than any interpreter based simulation environment.

Anyone wishing to contribute to this project can do so by making changes to any of the files in the distribution tarball then emailing it back to me through link below. Just let me know what release version the changes were made to and which files were modified. I will then do a diff on the release the changes were based on and include those changes in the next release if appropriate. Please provide contact information in case I have questions and so I can properly credit your work.


Project information and download tarball here.


SourceForge.net Logo