OpenASIP 2.2
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
ProximFUDetailsCmd Class Reference

#include <ProximFUDetailsCmd.hh>

Inheritance diagram for ProximFUDetailsCmd:
Inheritance graph
Collaboration diagram for ProximFUDetailsCmd:
Collaboration graph

Public Member Functions

 ProximFUDetailsCmd (const TTAMachine::FunctionUnit &fu)
 
virtual ~ProximFUDetailsCmd ()
 
virtual bool Do ()
 
- Public Member Functions inherited from ComponentCommand
 ComponentCommand ()
 
virtual ~ComponentCommand ()
 
wxWindow * parentWindow ()
 
void setParentWindow (wxWindow *window)
 

Private Attributes

const TTAMachine::FunctionUnitfu_
 Function unit to display.
 

Detailed Description

Command for displaying function unit details in the machine state window component details pane.

Definition at line 46 of file ProximFUDetailsCmd.hh.

Constructor & Destructor Documentation

◆ ProximFUDetailsCmd()

ProximFUDetailsCmd::ProximFUDetailsCmd ( const TTAMachine::FunctionUnit fu)

The Constructor.

Parameters
fuFunction unit to display.

Definition at line 55 of file ProximFUDetailsCmd.cc.

55 :
56 ComponentCommand(), fu_(fu) {
57}
const TTAMachine::FunctionUnit & fu_
Function unit to display.

◆ ~ProximFUDetailsCmd()

ProximFUDetailsCmd::~ProximFUDetailsCmd ( )
virtual

The Destructor.

Definition at line 63 of file ProximFUDetailsCmd.cc.

63 {
64}

Member Function Documentation

◆ Do()

bool ProximFUDetailsCmd::Do ( )
virtual

Executes the command.

Implements ComponentCommand.

Definition at line 70 of file ProximFUDetailsCmd.cc.

70 {
71
72 string fuName = fu_.name();
73
75
76 const UtilizationStats& stats =
78
80
81 // Append component type and name to the details widget.
83 machineWin->appendDetails(fuName + "\n\n");
84
85 // Append ports to the details widget.
87 for (int i = 0; i < fu_.portCount(); i++) {
88 string portName = fu_.port(i)->name();
89 const PortState& portState = machineState.portState(portName, fuName);
90 machineWin->appendDetails(" " + portName + ":\t");
91 machineWin->appendDetails(
92 Conversion::toString(portState.value().uIntWordValue()) + "\n");
93 }
94
95 // Append trigger count to the utlization widget.
96 machineWin->appendUtilizationData(
98 double triggerCount = stats.triggerCount(fuName);
99 machineWin->appendUtilizationData(Conversion::toString(triggerCount));
100 machineWin->appendUtilizationData("\n\n");
101
102 // Append operation usage to the utilization widget.
103 machineWin->appendUtilizationData(
105 machineWin->appendUtilizationData("\n");
106
107 for (int i = 0; i < fu_.operationCount(); i++) {
108 string opName = StringTools::stringToUpper(fu_.operation(i)->name());
109 ClockCycleCount execCount = stats.operationExecutions(fuName, opName);
110 double percent = 0;
111 if (triggerCount > 0) {
112 percent = 100 * (execCount / triggerCount);
113 }
114 machineWin->appendUtilizationData(
115 " " + opName + ": " +
116 Conversion::toString(execCount) + " (" +
117 Conversion::toString(percent) + "%)\n");
118 }
119
120 return true;
121}
CycleCount ClockCycleCount
Alias for ClockCycleCount.
static std::string toString(const T &source)
PortState & portState(const std::string &portName, const std::string &fuName)
static const std::string MACH_WIN_FU_LABEL
Label precing function unit names in the machine state window.
static const std::string MACH_WIN_TRIGGER_COUNT_LABEL
Trigger count label for the machine state window.
static const std::string MACH_WIN_EXECUTION_COUNT_LABEL
Execution count title for the machine state window.
static const std::string MACH_WIN_PORTS_TITLE
Title for the machine state window ports list.
void appendDetails(std::string text)
void appendUtilizationData(std::string text)
static TracedSimulatorFrontend * frontend()
static ProximMachineStateWindow * machineStateWindow()
virtual const SimValue & value() const
UIntWord uIntWordValue() const
Definition SimValue.cc:972
const UtilizationStats & utilizationStatistics(int core=-1)
MachineState & machineState(int core=-1)
static std::string stringToUpper(const std::string &source)
virtual TCEString name() const
virtual HWOperation * operation(const std::string &name) const
virtual int operationCount() const
virtual BaseFUPort * port(const std::string &name) const
const std::string & name() const
virtual std::string name() const
Definition Port.cc:141
virtual int portCount() const
Definition Unit.cc:135
ClockCycleCount operationExecutions(const std::string &operationName) const
ClockCycleCount triggerCount(const std::string &fuName) const

References ProximMachineStateWindow::appendDetails(), ProximMachineStateWindow::appendUtilizationData(), ProximToolbox::frontend(), fu_, ProximConstants::MACH_WIN_EXECUTION_COUNT_LABEL, ProximConstants::MACH_WIN_FU_LABEL, ProximConstants::MACH_WIN_PORTS_TITLE, ProximConstants::MACH_WIN_TRIGGER_COUNT_LABEL, SimulatorFrontend::machineState(), ProximToolbox::machineStateWindow(), TTAMachine::HWOperation::name(), TTAMachine::Component::name(), TTAMachine::Port::name(), TTAMachine::FunctionUnit::operation(), TTAMachine::FunctionUnit::operationCount(), UtilizationStats::operationExecutions(), TTAMachine::FunctionUnit::port(), TTAMachine::Unit::portCount(), MachineState::portState(), StringTools::stringToUpper(), Conversion::toString(), UtilizationStats::triggerCount(), SimValue::uIntWordValue(), SimulatorFrontend::utilizationStatistics(), and RegisterState::value().

Here is the call graph for this function:

Member Data Documentation

◆ fu_

const TTAMachine::FunctionUnit& ProximFUDetailsCmd::fu_
private

Function unit to display.

Definition at line 53 of file ProximFUDetailsCmd.hh.

Referenced by Do().


The documentation for this class was generated from the following files: