Re: Proposal for TLM-1 standardization

From: Jerome CORNET <jerome.cornet@st.com>
Date: Fri Mar 12 2010 - 01:45:43 PST

Agreed, good idea. We could have a <tlm> with tlm1:: and tlm2::, and the
plain
old tlm.h containing everything in tlm:: without backward compatibility
issues.

Jerome

On 3/11/2010 6:22 PM, john.aynsley@doulos.com wrote:
> Agreed. If nothing else, I'm sure we could achieve this with separate
> includes (cf. <systemc> and <systemc.h>)
>
> JOhn A
>
>
> From: Stuart Swan <stuart@cadence.com>
> To: Jerome CORNET <jerome.cornet@st.com>, "john.aynsley@doulos.com"
> <john.aynsley@doulos.com>
> Cc: "systemc-p1666-technical@eda.org" <systemc-p1666-technical@eda.org>
> Date: 10/03/2010 21:47
> Subject: RE: Proposal for TLM-1 standardization
>
>
> ------------------------------------------------------------------------
>
>
>
> All-
>
> I think the motivation behind the tlm1:: namespace proposal is to clearly
> distinguish tlm1 from tlm2. I think if we are serious about doing
> this we
> should:
>
> 1) Put both tlm1 and tlm2 into their own respective namespaces
> (tlm1:: and tlm2:: )
> 2) Do it in a way such that there is basically zero backward
> compatibility issues with current models. Ideally we can somehow have
> a tlm:: namespace that is the union of everything in the tlm1 and tlm2
> namespaces. I don't recall if there is an elegant way to do that in
> C++ or if we'd have to resort to a brute force include of everything
> again into the tlm namespace.
> If it is too much trouble, then it is probably not worth doing at all.
> The real mistake here was naming these things tlm1 and tlm2 in the
> first place, they
> should have been something like tlm-MP and TLM-MMAP
>
> -Stuart
>
> *From:* owner-systemc-p1666-technical@eda.org
> [mailto:owner-systemc-p1666-technical@eda.org] *On Behalf Of *Jerome
> CORNET*
> Sent:* Wednesday, March 10, 2010 1:38 AM*
> To:* john.aynsley@doulos.com*
> Cc:* systemc-p1666-technical@eda.org*
> Subject:* Re: Proposal for TLM-1 standardization
>
> Hello John,
>
> the partitioning between what is kept/what is left out of the standard
> looks sensible (if we are indeed
> forced to leave out parts of TLM-1). I also agree with both your
> proposal and Stuart's comments
> regarding semantics aspects.
>
> However, I am not sure to understand the rationale for renaming the
> C++ namespace used by TLM-1.
> To my knowledge, we don't have any naming conflicts currently between
> TLM-2.0 stuff and TLM-1
> in the official kit released by the OSCI. Currently, people that are
> using TLM-1.0 just move without
> problems to using TLM-2.0 for the memory-mapped bus part of TLM and
> keep the rest of their
> code unchanged. To me, if we are to change this namespace: we will
> need to release another OSCI TLM
> kit with the name change and our users will have to align to this kit
> version and detect the kit version
> to understand whether to use tlm::: or tlm1::. The same will apply for
> CAD tools already integrating/instrumenting
> the OSCI TLM: the user code will have to detect whether that specific
> version of CAD tools do use tlm1 or tlm
> namespace. This does not look reasonable...
>
> Jerome
>
> On 3/9/2010 3:36 PM, _john.aynsley@doulos.com_
> <mailto:john.aynsley@doulos.com> wrote:
> Folks,
>
> Re. TLM-1, I tentatively propose we standardize the following (only).
>
> Apart from the tlm_analysis_triple, this proposal reflects the
> contents of the OSCI TLM-2.0 LRM, and so already has at least tacit
> approval from the SystemC community.
> I have excluded tlm_delayed_analysis_if and tlm_analysis_triple because
> a) that technique of timing annotation for transaction logging has not
> been adopted in the SystemC community (as far as I know - please
> correct me) and
> b) they are used neither by OVM nor by VMM 1.2.
>
> *
> Rename *the core interfaces to become the "*TLM-1 Message Passing
> Interface*"
> *
> Rename *the C++ namespace from *tlm* to *tlm1*
> *
> Standardize the following interfaces and classes *(details as per the
> TLM-2.0.1 distribution)
>
> tlm_tag
> tlm_transport_if
> tlm_blocking_get_if
> tlm_blocking_put_if
> tlm_nonblocking_get_if
> tlm_nonblocking_put_if
> tlm_get_if
> tlm_put_if
> tlm_blocking_peek_if
> tlm_nonblocking_peek_if
> tlm_peek_if
> tlm_blocking_get_peek_if
> tlm_nonblocking_get_peek_if
> tlm_get_peek_if
>
> tlm_fifo_put_if
> tlm_fifo_get_if
> tlm_fifo_debug_if
> tlm_fifo
>
> tlm_write_if
> tlm_analysis_if
> tlm_analysis_port
> tlm_analysis_fifo (but excluding the tlm_analysis_triple)
>
> *
> Exclude the following items*
>
> tlm_blocking_master_if
> tlm_blocking_slave_if
> tlm_nonblocking_master_if
> tlm_nonblocking_slave_if
> tlm_master_if
> tlm_slave_if
>
> tlm_fifo_config_size_if
>
> tlm_nonblocking_put_port
> tlm_nonblocking_get_port
> tlm_nonblocking_peek_port
>
> tlm_event_finder_t
>
> tlm_req_rsp_channel
> tlm_transport_channel
> tlm_transport_to_master
> tlm_slave_to_transport
>
> tlm_delayed_write_if
> tlm_delayed_analysis_if
> tlm_analysis_triple
>
> *
> Standardize the following*
>
> Intent of the TLM-1 message-passing interface and the request/response
> arguments to transport (as compared with TLM-2.0)
>
> Meaning of blocking vs non-blocking vs analysis interfaces
>
> Semantics of put, get and peek with respect to moving transactions
> around (
> put does not overwrite the previous put,
> get returns a different transaction each time,
> successive calls to peek return identical transactions,
> and so forth)
>
> Semantics of blocking and non-blocking interfaces with respect to
> success/failure and the true/false return value
>
> Semantics of write with respect to blocking and ordering
> (non-blocking, order undefined)
>
> Obligations on caller and callee with respect to setting, modifying
> and reading method arguments
>
> Obligations and assumptions with respect to the lifetime of
> transaction objects
>
> Intent with respect to embedding pointers and references within the
> transaction object
>
> Behavior of tlm_fifo, tlm_analysis_port and tlm_analysis_fifo
>
>
>
> Comments?
>
> --
> John A
>
>
> --
> This message has been scanned for viruses and
> dangerous content by *_MailScanner_* <http://www.mailscanner.info/>,
> and is
> believed to be clean.
>
>
> --
> This message has been scanned for viruses and
> dangerous content by *_MailScanner_* <http://www.mailscanner.info/>,
> and is
> believed to be clean.
>

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Fri Mar 12 01:46:18 2010

This archive was generated by hypermail 2.1.8 : Fri Mar 12 2010 - 01:46:21 PST