Hi,
I was wondering if it was possible to use the same stream to communicate between two or more processes. The desktop simulation works fine, but when trying to create hardware it says that the write/read end is already connecte to another process. Would I need to create a different stream for every process?
Thank you
cls
Sharing a stream betwee processes
Started by cls_egr, Jul 09 2008 09:00 AM
5 replies to this topic
#1
Posted 09 July 2008 - 09:00 AM
#2
Posted 09 July 2008 - 03:58 PM
QUOTE (cls_egr @ Jul 9 2008, 11:00 AM) <{POST_SNAPBACK}>
Hi,
I was wondering if it was possible to use the same stream to communicate between two or more processes. The desktop simulation works fine, but when trying to create hardware it says that the write/read end is already connecte to another process. Would I need to create a different stream for every process?
Thank you
cls
I was wondering if it was possible to use the same stream to communicate between two or more processes. The desktop simulation works fine, but when trying to create hardware it says that the write/read end is already connecte to another process. Would I need to create a different stream for every process?
Thank you
cls
Hi,
co_streams are purely for unidirectional point-to-point between processes even if desktop software simulation may not enforce it as a rule. To communicate acorss multiple processes the stream would need to be replicated or the use of a single-writer-multiple-readers such as a co_register might be used if it fits your application.
Ed
Ed Trexel
Impulse Accelerated Technologies, Inc.
Impulse Accelerated Technologies, Inc.
#3
Posted 07 August 2008 - 02:39 PM
Wouldn't it be possible to connect one stream to two processes with some external logic written in VHDL? Or will this still not work?
#4
Posted 07 August 2008 - 02:51 PM
QUOTE (flomby @ Aug 7 2008, 04:39 PM) <{POST_SNAPBACK}>
Wouldn't it be possible to connect one stream to two processes with some external logic written in VHDL? Or will this still not work?
Hi,
To be able to access the stream you would have to modify the '_opt.vhd/.v file because processes are not exposed at the top module, only streams from process to co_ports will get exposed and you could always loop back to the top module. In either case you would have to handle the "sharing" of a stream ensuring all the '_en's and '_rdy's are handled properly with the data going where needed.
What exactly are you trying to accomplish?
Ed
Ed Trexel
Impulse Accelerated Technologies, Inc.
Impulse Accelerated Technologies, Inc.
#5
Posted 07 August 2008 - 04:34 PM
QUOTE (etrexel @ Aug 7 2008, 06:51 PM) <{POST_SNAPBACK}>
Hi,
To be able to access the stream you would have to modify the '_opt.vhd/.v file because processes are not exposed at the top module, only streams from process to co_ports will get exposed and you could always loop back to the top module. In either case you would have to handle the "sharing" of a stream ensuring all the '_en's and '_rdy's are handled properly with the data going where needed.
What exactly are you trying to accomplish?
Ed
To be able to access the stream you would have to modify the '_opt.vhd/.v file because processes are not exposed at the top module, only streams from process to co_ports will get exposed and you could always loop back to the top module. In either case you would have to handle the "sharing" of a stream ensuring all the '_en's and '_rdy's are handled properly with the data going where needed.
What exactly are you trying to accomplish?
Ed
I am using Impulse C to write logic that I incorporate into an ISE project. I have a stream that I want to feed into two processes, each with its input stream exposed in its own top module. I was thinking I could write some wrapper logic to connect the stream to both processes. I could connect the data and the _en to both processes and OR the _rdy's to form the _rdy signal. Do you see any problems with this approach?
#6
Posted 07 August 2008 - 04:45 PM
QUOTE (flomby @ Aug 7 2008, 06:34 PM) <{POST_SNAPBACK}>
I am using Impulse C to write logic that I incorporate into an ISE project. I have a stream that I want to feed into two processes, each with its input stream exposed in its own top module. I was thinking I could write some wrapper logic to connect the stream to both processes. I could connect the data and the _en to both processes and OR the _rdy's to form the _rdy signal. Do you see any problems with this approach?
Hi,
Depends upon how the data is expected to be transferred to the two processes as well as the timing behavior between them. As you have described with an "OR", if the processes are asynchronous at all then it is possible for each process to individually read off data with the other process not getting the same data and then there may be a time when both processes get the same data if they happen to be in sync.
Ed
Ed Trexel
Impulse Accelerated Technologies, Inc.
Impulse Accelerated Technologies, Inc.
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users












