mohitnegi Posted September 30, 2013 Report Posted September 30, 2013 hello, Is it advisable to use linklist for implementing data structure n systemC or one should stick to array ... and which practice s better for systemC synthesis ... Thanks Mohit Quote
Hans64 Posted September 30, 2013 Report Posted September 30, 2013 AFAIK for synthesis you need to stick to fixed size arrays. I would suggest you read up what memory templates vendors recommend before you start coding. You can read the synthesis guides for Vivado, Fossy and probably some others on the web. Be prepared to instantiate some VHDL/Verilog code if you need more complex multi port memory models.Good luck,Hans.www.ht-lab.com mohitnegi 1 Quote
foster911 Posted September 30, 2013 Report Posted September 30, 2013 Most synthesis tools recommend fixed size arrays. Quote
dakupoto Posted October 1, 2013 Report Posted October 1, 2013 AFAIK for synthesis you need to stick to fixed size arrays. I would suggest you read up what memory templates vendors recommend before you start coding. You can read the synthesis guides for Vivado, Fossy and probably some others on the web. Be prepared to instantiate some VHDL/Verilog code if you need more complex multi port memory models. Good luck, Hans. www.ht-lab.com Hans is absolutely right. As a linked list cannot be implemented in hardware, they cannot be used in synthesis. In a similar vein, using SC_SPAWN, SC_JOIN macros to instantiate/close dynamic processes is also unwise as dynamic processes can never be implemented in real hardware. mohitnegi 1 Quote
mohitnegi Posted October 2, 2013 Author Report Posted October 2, 2013 hey guys ,, similarily are both SC_THREAD and SC_MODULe synthesizable ??? if yes how does a infinite while loop works on SC_THREAD .... and another ques is it advisable to use dynamic senstivity in process for synthesis.... thanks Mohit Negi Quote
Hans64 Posted October 2, 2013 Report Posted October 2, 2013 Hi Mohit, This is described in section 9.4 of the SystemC Synthesizable Subset document: SC_THREAD is non-synthesizable. SC_THREAD is blocking and can contain wait()statements that makes the process to wait on any signals in the sensitivity list. This also meansan SC_THREAD process can be broken into stages by wait() statements. The non-blockingproperty of SC_METHOD makes it possible for synthesizers to synchronize input,computation and output. However in SC_THREAD this synchronization relationship isbroken because it is hard for the synthesizer to synchronize inputs specified in wait()statements at different stages. Such input signal could be a clock or a reset. Without thesupport of reset_signal_is() in SC_THREAD it is hard for a synthesizer to synthesize thebehaviour properly. Both Fossy and Vivado do not support SC_THREAD, not sure about the high-end Mentor's Catapult-C and Forte Cynthesizer which might support some constructs. Regarding Dynamic Sensitivity, everytime you see the word Dynamic think about how this would translate to hardware. Leaving Dynamic Reconfigurable Hardware to one side in general everything you code must be static. Regards, Hans. http://www.ht-lab.com mohitnegi 1 Quote
Recommended Posts
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.