katang Posted May 17, 2017 Report Share Posted May 17, 2017 My task is to implement what in C++ would be an ordered queue. I.e. my consumer wants to "see" a FIFO, and several consumers put data independently (i.e in parallel) and the channel inserts the received data at the right position. My idea is to start with sc_fifo, and sc_semaphore to write contents. Then I need method for inserting the new content at the right position, with the goal to synthesize the design. Is there a better idea to start with? What is the "best" approach to implement insertion, in terms of resource usage and speed? Quote Link to comment Share on other sites More sharing options...
apfitch Posted May 21, 2017 Report Share Posted May 21, 2017 If your goal is to synthesize the design, then your first step should be to check what is synthesisable - are you using a particular high level synthesis tool? Have you checked this it will support sc_fifo and sc_semaphore? If your tool supported std::map, couldn't you use use that? regards Alan Quote Link to comment Share on other sites More sharing options...
katang Posted May 21, 2017 Author Report Share Posted May 21, 2017 Yes, I want to synthesize the design, and that is why I am looking for ideas for components which enable this. To your second question: are there chances that standard components like sc_fifo and sc_semaphore are not supported? Till now this did not cross my mind. Quote Link to comment Share on other sites More sharing options...
Roman Popov Posted May 22, 2017 Report Share Posted May 22, 2017 15 hours ago, katang said: Yes, I want to synthesize the design, and that is why I am looking for ideas for components which enable this. To your second question: are there chances that standard components like sc_fifo and sc_semaphore are not supported? Till now this did not cross my mind. The only supported standard channel for synthesis in modern HLS tools is sc_signal. It is pretty low-level. Unfortunately, other high-level communication components are vendor-specific. Quote Link to comment Share on other sites More sharing options...
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.