Jump to content

SystemC implementation from C-code sources


Teddy Minz

Recommended Posts

Hi everyone,

As part of my job, I try to implement a algorithm write in C on a FPGA. To do this, I would like to use SystemC but I'm a beginner. I already have read courses and do some applications on youtube with my linux terminal. It taught me how to do an application from end-to-end but in my case I did not code the algorithm. In deed, with bottom-up processing (VHDL to SystemC) I can manage but with top-down processing (C to SystemC)  I don't know how to do/test that.  So I think I have to encapsulate the C functions in SystemC modules. At first, can I encapsulate all this functions in the same module ? Which information is needed of the algorithm to realize my SystemC model ? How can I test my code at behavior level ? Do you have any documentations or advice to help me ? 

Thanks in advance for the help and guidance!

Link to comment
Share on other sites

SystemC is not C. SystemC is C++, which is rather different (more complicated) than simple C. So you would do well to educate yourself in C++ before tackling SystemC.

As to how to encapsulate an algorithm in SystemC, it rather depends heavily on the model, the inputs, the outputs, and what exactly you are trying to get from the model. Why are you using SystemC? Do you have specific tools in mind? What are you specifically using SystemC to accomplish? High level partitioning? Synthesis? Create a virtual platform? Analyze communications performance? You need to be much more specific.

Link to comment
Share on other sites

19 hours ago, David Black said:

Why are you using SystemC? Do you have specific tools in mind? What are you specifically using SystemC to accomplish? High level partitioning? Synthesis? Create a virtual platform? Analyze communications performance? You need to be much more specific. 

Thank you for your answer. I want to use SystemC for HW/SW exploration at algorithm level. As part of my project the HW architecture are already chosen. Now, I want to implement a C-Algorithm in this architecture and optimize its execution time. All I have for the moment is a C algorithm and input data. At first,  I want to use Vivado HLS for synthesis and later maybe SpaceStudio for HW/SW partitioning.
 

7 hours ago, Roman Popov said:

You should start with learning your synthesis tool documentation. C++/SystemC synthesis is very tool-specific. 

Alright, thank you.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...