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)
|