8#include <xaiefal/rsc/xaiefal-groupevent.hpp>
9#include <xaiefal/rsc/xaiefal-perf.hpp>
18 XAie_LocType
Loc,
bool CrossM =
false):
20 initialize(XAIE_CORE_MOD, XAIE_EVENT_ACTIVE_CORE,
21 XAIE_CORE_MOD, XAIE_EVENT_DISABLED_CORE);
24 XAie_LocType
Loc,
bool CrossM =
false):
32 std::shared_ptr<XAieGroupEventHandle> StallG,
33 std::shared_ptr<XAieGroupEventHandle> FlowG,
36 StallGroupEvent(StallG),
37 FlowGroupEvent(FlowG) {
38 initialize(XAIE_CORE_MOD, XAIE_EVENT_GROUP_CORE_STALL_CORE,
39 XAIE_CORE_MOD, XAIE_EVENT_GROUP_CORE_PROGRAM_FLOW_CORE);
40 StallGroupEvent->setGroupEvents(0x19F);
46 initialize(XAIE_CORE_MOD, XAIE_EVENT_GROUP_CORE_STALL_CORE,
47 XAIE_CORE_MOD, XAIE_EVENT_GROUP_CORE_PROGRAM_FLOW_CORE);
48 StallGroupEvent = Dev.
tile(
Loc).module(XAIE_CORE_MOD).groupEvent(XAIE_EVENT_GROUP_CORE_STALL_CORE);
49 FlowGroupEvent = Dev.
tile(
Loc).module(XAIE_CORE_MOD).groupEvent(XAIE_EVENT_GROUP_CORE_PROGRAM_FLOW_CORE);
50 StallGroupEvent->setGroupEvents(0x19F);
63 if (
State.Reserved == 0) {
65 (uint32_t)
Loc.Col <<
"," << (uint32_t)
Loc.Row <<
")" <<
66 " Expect Mod= " <<
Mod <<
67 " resource not allocated." << std::endl;
70 StallGroupEvent->setGroupEvents(Config);
85 if (
State.Reserved == 0) {
87 (uint32_t)
Loc.Col <<
"," << (uint32_t)
Loc.Row <<
")" <<
88 " Expect Mod= " <<
Mod <<
89 " resource not allocated." << std::endl;
92 FlowGroupEvent->setGroupEvents(Config);
100 RC = StallGroupEvent->reserve();
102 RC = FlowGroupEvent->reserve();
109 RC = StallGroupEvent->release();
111 RC = FlowGroupEvent->release();
118 RC = StallGroupEvent->start();
120 RC = FlowGroupEvent->start();
127 RC = StallGroupEvent->stop();
129 RC = FlowGroupEvent->stop();
134 std::shared_ptr<XAieGroupEventHandle> StallGroupEvent;
135 std::shared_ptr<XAieGroupEventHandle> FlowGroupEvent;
147 std::shared_ptr<XAieGroupEventHandle> StallG,
148 bool CrossM =
false):
150 StallGroupEvent(StallG) {
151 initialize(XAIE_CORE_MOD, XAIE_EVENT_GROUP_CORE_STALL_CORE,
152 XAIE_CORE_MOD, XAIE_EVENT_GROUP_CORE_STALL_CORE);
153 StallGroupEvent->setGroupEvents(0x19F);
157 bool CrossM =
false):
159 initialize(XAIE_CORE_MOD, XAIE_EVENT_GROUP_CORE_STALL_CORE,
160 XAIE_CORE_MOD, XAIE_EVENT_GROUP_CORE_STALL_CORE);
161 StallGroupEvent = Dev.
tile(
Loc).module(XAIE_CORE_MOD).groupEvent(XAIE_EVENT_GROUP_CORE_STALL_CORE);
162 StallGroupEvent->setGroupEvents(0x19F);
175 if (
State.Reserved == 0) {
177 (uint32_t)
Loc.Col <<
"," << (uint32_t)
Loc.Row <<
")" <<
178 " Expect Mod= " <<
Mod <<
179 " resource not allocated." << std::endl;
182 StallGroupEvent->setGroupEvents(Config);
190 RC = StallGroupEvent->reserve();
196 RC = StallGroupEvent->release();
202 RC = StallGroupEvent->start();
208 RC = StallGroupEvent->stop();
212 std::shared_ptr<XAieGroupEventHandle> StallGroupEvent;
static std::ostream & log(LogLevel Lvl=LogLevel::FAL_MAX)
Definition xaiefal-log.hpp:50
XAieActiveCycles(std::shared_ptr< XAieDevHandle > DevHd, XAie_LocType Loc, bool CrossM=false)
Definition xaiefal-profile.hpp:17
XAieActiveCycles(XAieDev &Dev, XAie_LocType Loc, bool CrossM=false)
Definition xaiefal-profile.hpp:23
XAieActiveCycles()=delete
AI engine device class. It defines AI engine device operations.
Definition xaiefal-base.hpp:259
XAieTile & tile(XAie_LocType Loc)
Definition xaiefal-base.hpp:272
AieRC initialize(XAie_ModuleType StartM, XAie_Events StartE, XAie_ModuleType StopM, XAie_Events StopE, XAie_ModuleType RstM=XAIE_CORE_MOD, XAie_Events RstE=XAIE_EVENT_NONE_CORE)
Definition xaiefal-perf.hpp:77
XAieRscState State
Definition xaiefal-rsc-base.hpp:398
XAie_LocType Loc
Definition xaiefal-rsc-base.hpp:594
XAie_ModuleType Mod
Definition xaiefal-rsc-base.hpp:595
AieRC _reserveAppend()
Definition xaiefal-profile.hpp:97
XAieStallCycles(std::shared_ptr< XAieDevHandle > DevHd, XAie_LocType Loc, std::shared_ptr< XAieGroupEventHandle > StallG, std::shared_ptr< XAieGroupEventHandle > FlowG, bool CrossM=false)
Definition xaiefal-profile.hpp:30
AieRC stallGroupEventConfig(uint32_t Config)
Definition xaiefal-profile.hpp:60
AieRC _stopAppend()
Definition xaiefal-profile.hpp:124
AieRC _releaseAppend()
Definition xaiefal-profile.hpp:106
AieRC _startPrepend()
Definition xaiefal-profile.hpp:115
AieRC flowGroupEventConfig(uint32_t Config)
Definition xaiefal-profile.hpp:82
XAieStallCycles(XAieDev &Dev, XAie_LocType Loc, bool CrossM=false)
Definition xaiefal-profile.hpp:42
AieRC _releaseAppend()
Definition xaiefal-profile.hpp:193
AieRC _reserveAppend()
Definition xaiefal-profile.hpp:187
AieRC stallGroupEventConfig(uint32_t Config)
Definition xaiefal-profile.hpp:172
XAieStallOccurrences(XAieDev &Dev, XAie_LocType Loc, bool CrossM=false)
Definition xaiefal-profile.hpp:155
AieRC _stopAppend()
Definition xaiefal-profile.hpp:205
XAieStallOccurrences()=delete
XAieStallOccurrences(std::shared_ptr< XAieDevHandle > DevHd, XAie_LocType Loc, std::shared_ptr< XAieGroupEventHandle > StallG, bool CrossM=false)
Definition xaiefal-profile.hpp:145
AieRC _startPrepend()
Definition xaiefal-profile.hpp:199
Definition xaiefal-base.hpp:23
@ FAL_ERROR
Definition xaiefal-log.hpp:14