Jump to content

SystemC - Splitting the output sampling


Recommended Posts


I'm novice to SystemC and CtoS.

I'm evaluating the possibility to replace our existing methodology (Verilog) with SystemC and HLS.

Unfortunately, the results are terrible for now (we have designs which are already in production and we can compare the netlists) and for us power and area are huge issue.

I haven't given up yet, but it appears that simply using the algorithm model (C++) and playing with the CtoS won't be sufficient. So I've decided to rewrite the code itself.

One of the most common scenarios that I've observed in the generated RTL is the issue presented in the attached test-case:

Assuming we have a very long counter, we would like to gate the MSB bits and update only the LSB bits. When the LSBs are wrapping up I'll enable the MSBs for a single clock cycle. Now when producing the attached code, I get a single 8-bit register, but it is constantly updated. When adding an internal variable to control the sampling, I get 2 additional registers of 4 bit each, but the 8-bit register is left in place.

So basically the question is how I fix the code, without splitting the ports, so that I get 2 4-bit registers toggling only when needed?



Link to comment
Share on other sites

Hi, your approach seems odd to me. If I were you, I would re-write the C++ model to be more synthesisable. I would go back to your HLS vendor and say "what do I need to do to my algorithmic model to get good results?


You seem to be taking the approach of using HLS, then re-writing the generated RTL code, which sounds like a very long-winded design flow,




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.

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...