Greetings ITC Techies, I wanted to get this out before the face-to-face in hopes that we would have some time to discuss it there. Apologies for getting it out so late but I had flight delays today and am only able to access the web now. Even if you don't have time to review it before-hand, I will be prepared to quickly go over the gist of the changes as I think they are relatively simple. I thought it would be best to place the new proposals in the working document so that it would be easiest to see how they fit in the context of the rest of the specification. Basically I've combined the new TLM compatibility proposal and the thread-neutral "hook function" proposal (to address multi-threaded C environments) sent last week. But now those "hook functions" have been transformed into a new "transaction fifo" API that also meets the TLM compatibility requirement. After thinking about it and figuring out the best way to combine these two concepts (thread neutral API, TLM compatibility) while still keeping the simple ease-of-use of the pipes, I realized that Per really had the best idea, namely to define the API in such a way that the streaming pipes library could be implemented over the TLM fifo library. And it remains true that both pipes and fifos are implementatable as libraries over DPI. All changes to the document are shown with change bars of changes from revision 1.8. Below is a summary of the changes to the table of contents for the revised document, and following that, a brief description of the changes. I've reorganized things slightly to incorporate a combination of the "hook function" proposal and the general changes to support TLM applications. - Sections marked '*' are new - Sections marked 'i' are informational - Sections marked 'm' are moved from a previous location 4.0 Variable Length Messaging and Streaming Extensions: Transaction Pipes 4.1 Overview i 4.1.1 [Re: IM 208 ] Reference vs. vendor optimized implementations of DPI compliant pipes 4.2 Transaction input pipes 4.2.1 Blocking input pipe access functions 4.2.2 The input pipe flush function 4.2.3 Example of input pipe 4.3 Transaction output pipes 4.3.1 Blocking output pipe access functions 4.3.2 The output pipe flush function 4.3.3 Example of output pipe 4.4 Transaction pipes are deterministic 4.5 Variable length messaging 4.6 Useful features of transaction pipes 4.6.1 Data shaping 4.6.2 End-of-message <eom> marking mechanism 4.6.3 [Re: IM 211] Support for multiple pipe transactions in 0-time m,i 4.7 Streaming Pipes vs. TLM FIFOs * 4.8 Transaction Fifos * 4.8.1 C-side fifo access * 4.8.2 HDL-side fifo access * 4.8.3 Specification of buffer depth m,i 4.8.3.1 [Re: IM 208, 209] Implementation defined buffer depth * 4.8.4 Implementation of pipes in multi-threaded C environments * Appendix D - Using transaction fifos compatably with OSCI-TLM applications * D.1 OSCI-TLM overview * D.2 Example of TLM compliant SystemC proxy Here is a high level view of the changes to the working document. - Moved the "Pipes vs. FIFOs" informational section (formerly 4.6.4) into a renamed section 4.7 entitled "Streaming Pipes vs. TLM FIFOs" - Added a new section 4.8 that introduces TLM compatible "transaction fifos" that compliment the existing streaming pipes - Note that these are the "hook functions" from the previous proposal sent last week (see Re: breakthrough solution for "vendor induced" pipes deadlock ?") which now become legitimate user calls on the C side for the thread-neutral TLM-fifo use model as opposed to calls used only by the implementation as was proposed in that e-mail. - Added new calls to allow optional specification of buffer depth on a fifo - buffer depth is now assignable but not required. Absent a buffer depth specification, it is left to the implementation default. - Moved the old informational section 4.1.2 on implementation defined buffer depth into this section. - Incorporated the "hook function" proposal into a new section 4.8.4 on implementation of pipes in multi-threaded C environments. - Added a new Appendix D devoted to showing how fifos are compatible with OSCI-TLM SystemC applications. This includes an example of a TLM compliant SystemC proxy by showing an example. (This was requested by Per) -- johnS ______________________________/\/ \ \ John Stickley \ \ \ Principal Engineer \ \________________ Mentor Graphics - MED \_ ________________________________________________________________Received on Thu Feb 9 00:59:11 2006
This archive was generated by hypermail 2.1.8 : Thu Feb 09 2006 - 00:59:48 PST