21 #ifndef OTAWA_HARD_PROCESSORBUILDER_H_
22 #define OTAWA_HARD_PROCESSORBUILDER_H_
25 #include <elm/genstruct/Vector.h>
27 namespace otawa {
namespace hard {
int latency
Definition: Processor.h:53
void complete(void)
Definition: hard_Processor.cpp:267
ProcessorBuilder & builder(string builder)
Definition: ProcessorBuilder.h:83
FunctionalUnitBuilder(string name)
Definition: ProcessorBuilder.h:32
A dispatch object allows to map some kinds of instructions to a functional unit.
Definition: Processor.h:71
QueueBuilder & intern(StageBuilder &stage)
Definition: ProcessorBuilder.h:67
type_t type
Definition: Processor.h:77
Queue * queue
Definition: ProcessorBuilder.h:72
FunctionalUnit * fu
Definition: ProcessorBuilder.h:38
FunctionalUnitBuilder & width(int w)
Definition: ProcessorBuilder.h:34
Stage * input
Definition: Processor.h:122
Definition: ProcessorBuilder.h:79
type_t type
Definition: Processor.h:100
bool ordered
Definition: Processor.h:103
QueueBuilder & size(int s)
Definition: ProcessorBuilder.h:68
bool completed
Definition: ProcessorBuilder.h:93
Processor * proc
Definition: ProcessorBuilder.h:90
Stage * output
Definition: Processor.h:122
Definition: ProcessorBuilder.h:62
Description of a processor pipeline.
Definition: Processor.h:136
genstruct::Vector< Queue * > queues
Definition: ProcessorBuilder.h:92
StageBuilder & ordered(void)
Definition: ProcessorBuilder.h:49
elm::String arch
Definition: Processor.h:156
StageBuilder & type(Stage::type_t t)
Definition: ProcessorBuilder.h:46
bool pipelined
Definition: Processor.h:63
genstruct::Vector< Stage * > interns
Definition: ProcessorBuilder.h:73
FunctionalUnitBuilder & latency(int l)
Definition: ProcessorBuilder.h:33
elm::String builder
Definition: Processor.h:158
void complete(void)
Definition: hard_Processor.cpp:234
FunctionalUnitBuilder & pipelined(void)
Definition: ProcessorBuilder.h:35
Stage * stage
Definition: ProcessorBuilder.h:54
void complete(void)
Definition: hard_Processor.cpp:248
int width
Definition: Processor.h:54
bool completed
Definition: ProcessorBuilder.h:74
Definition: ProcessorBuilder.h:30
This class represents a stage in a pipeline.
Definition: Processor.h:87
FunctionalUnit * fu
Definition: Processor.h:78
elm::String name
Definition: Processor.h:120
StageBuilder & dispatch(Inst::kind_t t, FunctionalUnitBuilder &fu)
Definition: ProcessorBuilder.h:51
ProcessorBuilder & add(StageBuilder &stage)
Definition: ProcessorBuilder.h:85
The instructions queues stores instruction that come from one stage to another one.
Definition: Processor.h:116
type_t
Definition: Processor.h:91
Queue * operator*(void)
Definition: ProcessorBuilder.h:69
elm::t::uint32 kind_t
Definition: Inst.h:67
StageBuilder & width(int w)
Definition: ProcessorBuilder.h:47
StageBuilder & latency(int l)
Definition: ProcessorBuilder.h:48
genstruct::Vector< FunctionalUnit * > fus
Definition: ProcessorBuilder.h:55
QueueBuilder(string name)
Definition: ProcessorBuilder.h:64
Processor * operator*(void)
Definition: ProcessorBuilder.h:87
A functional unit is specialized in the computation of some kinds of instructions.
Definition: Processor.h:60
FunctionalUnit * operator*(void)
Definition: ProcessorBuilder.h:36
Stage * operator*(void)
Definition: ProcessorBuilder.h:52
ProcessorBuilder(string model)
Definition: ProcessorBuilder.h:81
QueueBuilder & output(StageBuilder &stage)
Definition: ProcessorBuilder.h:66
cstring name
Definition: odisasm.cpp:107
StageBuilder & fu(FunctionalUnitBuilder &fu)
Definition: ProcessorBuilder.h:50
ProcessorBuilder & frequency(t::uint64 frequency)
Definition: ProcessorBuilder.h:84
Definition: ProcessorBuilder.h:43
QueueBuilder & input(StageBuilder &stage)
Definition: ProcessorBuilder.h:65
string name
Definition: Processor.h:52
t::uint64 frequency
Definition: Processor.h:161
ProcessorBuilder & add(QueueBuilder &queue)
Definition: ProcessorBuilder.h:86
bool completed
Definition: ProcessorBuilder.h:57
StageBuilder(string name)
Definition: ProcessorBuilder.h:45
elm::String model
Definition: Processor.h:157
genstruct::Vector< Stage * > stages
Definition: ProcessorBuilder.h:91
int size
Definition: Processor.h:121
ProcessorBuilder & arch(string arch)
Definition: ProcessorBuilder.h:82
genstruct::Vector< Dispatch * > disps
Definition: ProcessorBuilder.h:56