Hi John, Here are some additional questions on pipes requiring some clarifications. 1. Assume a SystemC test component is generating and sending transactions to two producers on the C side. Assume that each producer has its own SystemC execution thread and that the producers don't know about each other. One of the two (let say B) will be notified first (in random order) and call dpi_pipe_c_send to send the transaction and than call dpi_pipe_c_flush. How pipes are expected to work in this case? Do you expect the consumer of B to consume the transaction and the HW side simulation to resume immediately or do you expect that thread B will be suspended and thread A will be notified to allow producer A to send its transactions and that simulation on the HW side would start running after both transactions have been sent? Your answer to this question may also address questions such as: a) Do pipes based on the proposal support interaction of more than 1 producer/consumer pair during the same synchronization cycle? b) Do you expect the pipes implementation to be aware of the threading package used by the application (SystemC threads in this case)? 2. In pure DPI (Caller/Callee model) the calee must respond for the caller to resume its execution. With pipes, what happens when a consumer on the HDL side is calling for example dpi_pipe_hdl_receive, the pipe is empty and the producer on the corresponding C side has no new transaction to send? Will this scenario stall the progression of simulation on the HW side? Your answer to this question may address questions like: a) Is an implicit NOP scenario supported by pipes or if any NOP condition must be conveyed from producer to consumer explicitly? b) If explicitly, how would the consumer know when a new transaction can be consumed after explicit NOP notification was sent? Thanks, Shabtay ------------------------------------- Shabtay Matalon Solution Architect R&D, CVA Phone: (408) 428 5081 email: shabtay@cadence.comReceived on Thu Jan 12 13:13:14 2006
This archive was generated by hypermail 2.1.8 : Thu Jan 12 2006 - 13:13:27 PST