summaryrefslogtreecommitdiff
path: root/src/systemc/tests/include/README.txt
blob: 2636918b591f1a78d79c4518e31587c413ed5acb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
SimpleLTInitiator1/SimpleLTTarget1
----------------------------------

- LT Initiator/Target model using the base (standard) tlm socket
- Added support for DMI in SimpleLTTarget1

SimpleLTInitiator1_DMI
----------------------

- uses DMI transactions, the DMI structure is using the DMI-hint
  to check if a DMI request would make sense.
- uses a single transport_dbg transaction at end_of_simulation()

SimpleLTInitiator2/SimpleLTTarget2
----------------------------------

- LT Initiator/Target model using the convenience tlm socket
- Target and Initiator model use the REGISTER_DEBUGTRANSPORT macro to register
  a transport callback to the socket
- Added support for DMI handling, callback registration with
  REGISTER_DMI
- SimpleLTTarget2 does not register the transport_dbg callback, so that
  we are able to test this case in bus_dmi.

SimpleLTInitiator2_DMI
----------------------

- uses DMI transactions, but ignoring the DMI hint
- uses a single transport_dbg transaction at end_of_simulation()

SimpleLTInitiator3
------------------

- LT Initiator model using the convenience tlm socket
- Initiator model uses the endEvent of the socket to wait until the
  transaction is finished

SimpleLTInitiator3_DMI
----------------------

- based on SimpleInitiator3, uses DMI (without DMI hint)

SimpleATInitiator1/SimpleATTarget1
----------------------------------

- AT Initiator/Target model implementing the AT protocol
- one call of nb_transport for each timing point in the protocol (BEGIN_REQ,
  END_REQ, BEGIN_RESP and END_RESP)

SimpleATInitiator2/SimpleATTarget2
----------------------------------

- AT Initiator/Target model implementing the AT protocol with timing annotation
- only a call of nb_transport for the start of a phase (BEGIN_REQ and
  BEGIN_RESP)
- end of a phase is notified via timing annotation (t argument)

CoreDecouplingLTInitiator
-------------------------

- LT Initiator using 'Core Decoupling'

ExplicitLTTarget
----------------

- LT Target that uses explicit timing (calls wait)
- added support for debug transactions

ExplicitLTTarget
----------------

- AT Target, only registers nb_transport

SimpleBus
---------

- Simple bus model
- Runtime switcheable between LT and AT (can only switch if no transactions
  are pending)
- No limitation on number of pending transactions (all targets that can return
  false must support multiple transactions)
- added support for DMI and debug transactions
- LT mode:
-- Forward nb_transport calls to initiator/targets
-- Only one active request/response phase
- AT mode:
-- Incoming transactions are queued
-- AT protocol is executed from a different SC_THREAD
-- A target is notified immediately of the end of a transaction (using timing
   annotation). This is needed because the initiator can re-use the
   transaction (and the target may use the transaction pointer to identify the
   transaction)