Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / verif / model / vendor / TLM-2006-11-29 / tlm / tlm_bus / README.txt
CommitLineData
86530b38
AT
1\r
2The basic rules for all the interfaces in the TLM 2.0 kit are effective pass by\r
3value.Effective pass-by-value is used to implement message passing semantics.\r
4\r
5However, an exception is made for the pointer versions of tlm_request and\r
6tlm_response. These use pass by pointer for the data and byte enable fields.\r
7However, the basic message passing semantics will be preserved by obeying the\r
8rules below.\r
9\r
101. Allocate and Deallocation\r
11\r
121.1 If a process deallocates the arrays, the same process must deallocate the\r
13arrays.\r
14\r
151.2 If you can't or won't deallocate, use pass-by-val\r
16\r
171.3 People may call you a master, system initiator or whatever if you allocate\r
18\r
192 Read / Write Permissions\r
20\r
212.1 If you're a master and the transaction is a write, you have write\r
22permission on the arrays in the request\r
23\r
242.2 If you're a master and the transaction is a read, you have read permission\r
25on the arrays in the response\r
26\r
272.3 If you're a slave and the transaction is a write, you have read permission\r
28on the data in the request\r
29\r
302.4 If you're a slave and the transaction is a read, you have write permission\r
31on the data in the response\r
32\r
332.5 No other read or write permissions are granted on the arrays other than\r
34those specified above. \r
35\r
363 Request / Response matching\r
37\r
383.1 The slave must copy the pointers to the arrays from request to response.\r
39\r
403.2 The arrival of the response back at the master is used to determine when\r
41to deallocate or reuse the arrays.\r
42\r
434 Analysis\r
44\r
454.1 If you're doing analysis you must use the analysis interface ( eg\r
46monitoring, functional coverage, performance analysis, scoreboarding )\r
47\r
484.2 If you're designing a life extending analysis component ( eg a scoreboard )\r
49then you must use analysis_fifo or analysis_buffer with the by-val variants of\r
50the request and response datastructures.\r
51\r
524.3 If you're connecting a by-pointer TLM to a life extending analysis\r
53component, you must convert from by-pointer to by-val.\r
54\r