-
Notifications
You must be signed in to change notification settings - Fork 71
Closed
Description
If the IP uses streaming control:
- instead of writing to the start bit in the CRA, call a new simMMD function (name to be specified by Peter, let's call it
streaming_start
for this writeup). Provide an ID of the kernel that is being started (the type of this ID is TBD....likely it will be kernel name). streaming_start() will return a status code (pass/fail). streaming_start() will write to the corresponding streaming BFM (hostchannel BFM). If the BFM is somehow full (very unlikely), will return fail. Runtime can error out. - when IP's
done
output asserts, it will be captured by the corresponding streaming BFM (hostchannel BFM) which will do a write to corresponding socket. At the same time, a kernel interrupt will be triggered (TBD exactly how the sim process will do this, but Bain and I have some ideas). Runtime will call a new simMMD function (Peter to pick a name, let's call 'streaming_done' for this writeup). Peter will look at how the runtime currently handles the case of multiple kernels being finished at the same time and we'll implement streaming_done() behave similarly. Perhaps the runtime does a round-robin of all kernels' done status. But basically this function will tell the runtime which kernel(s) are done, and then read/pop from the hostchannel socket. We'll need to decide if this function should also communicate if a given kernel has multiple dones. Exact interface TBD.
Metadata
Metadata
Labels
enhancementNew feature or requestNew feature or request