OpenLatch Posted September 23, 2016 Report Share Posted September 23, 2016 Hi, 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? Quote Link to comment Share on other sites More sharing options...
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.