Jump to content

Recommended Posts

Posted

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

Posted

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.

Posted

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

Posted

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 means
an SC_THREAD process can be broken into stages by wait() statements. The non-blocking
property of SC_METHOD makes it possible for synthesizers to synchronize input,
computation and output. However in SC_THREAD this synchronization relationship is
broken 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 the
support of reset_signal_is() in SC_THREAD it is hard for a synthesizer to synthesize the
behaviour 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

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