SimpleKeystonePlatform

onera.pmlanalyzer.pml.examples.simpleKeystone.SimpleKeystonePlatform
class SimpleKeystonePlatform(name: Symbol) extends Platform

Simple model of the Keystone platform illustrating the main features of PML. The components of the architectures can be created using the constructors provided in pml.model.hardware.BaseHardwareNodeBuilder For instance the SimpleKeystonePlatform.dma is built with:

val dma: Initiator = Initiator()

An axi-bus is built with:

val axi-bus: SimpleTransporter= SimpleTransporter()

A peripheral or a memory is built with

val sram: Target = Target()

Some components may be composite, if you want to define one instance of composite you can use the object instantiation pattern used for the TeraNet

object TeraNet extends Composite 

You can also define a type of Composite that may be instantiated afterward, for instance here ARMCores are defined as a composition of a core (initiator) and a cache (transporter). A name is given as a parameter of the ARMCore class

class ARMCore (name:Symbol) extends Composite 

Then components can be linked together, this operation simply connect the service of the same type provided by the two components. For instance

ARM0.core link axi_bus

links the pml.model.service.Load and pml.model.service.Store service of the ARM0.core to the ones of the axi-bus Beware that all links are not possible, for instance you cannot link two pml.model.hardware.Target or a pml.model.hardware.Composite to another component.

Attributes

name

the name of the final object merging all facets of the model

See also:

pml.operators.Link.Ops for link operator definition

pml.model.hardware.BaseHardwareNodeBuilder for component instantiation

Graph
Supertypes
class Platform
trait Instances
trait Instances
trait Instances
trait Instances
trait Instances
trait Instances
class PMLNode
class Object
trait Matchable
class Any
Known subtypes

Members list

Concise view

identifier

implicit val currentOwner: Owner

the current owner id becomes the id of the current node

the current owner id becomes the id of the current node

Attributes

Inherited from:
Platform
final lazy val fullName: String

The full name of a platform is its base name concatenated with the configuration if available

The full name of a platform is its base name concatenated with the configuration if available

Attributes

Inherited from:
Platform
implicit val sourceFile: File

the implicit descriptor of the source file where the platform is defined

the implicit descriptor of the source file where the platform is defined

Attributes

Inherited from:
Platform
final val typeName: Symbol

Name of the type of PML node

Name of the type of PML node

Attributes

Inherited from:
PMLNode

composite_def

class ARMCore(name: Symbol) extends Composite

Composite representing Keystone ARM cores and their internal L1 cache

Composite representing Keystone ARM cores and their internal L1 cache

Attributes

Graph
Supertypes
class Composite
class Hardware
class PMLNode
class Object
trait Matchable
class Any

target

val ddr: Target

Target modelling external DDR

Target modelling external DDR

Attributes

Target modelling DMA registers

Target modelling DMA registers

Attributes

Target modelling MPIC peripheral

Target modelling MPIC peripheral

Attributes

val spi: Target

Target modelling SPI peripheral

Target modelling SPI peripheral

Attributes

Target modelling SPI registers

Target modelling SPI registers

Attributes

transaction

final lazy val transactions: Set[PhysicalTransactionId]

Set of physical transactions WARNING: this lazy variable MUST NOT be called during platform object initialisation

Set of physical transactions WARNING: this lazy variable MUST NOT be called during platform object initialisation

Attributes

Inherited from:
Platform

Map from the physical transaction id and their service sequence representation computed through an analysis of the platform WARNING: this lazy variable MUST NOT be called during platform object initialisation

Map from the physical transaction id and their service sequence representation computed through an analysis of the platform WARNING: this lazy variable MUST NOT be called during platform object initialisation

Attributes

Inherited from:
Platform

Map from the sw to the physical transaction id (default is emptySet) WARNING: this lazy variable MUST NOT be called during platform object initialisation

Map from the sw to the physical transaction id (default is emptySet) WARNING: this lazy variable MUST NOT be called during platform object initialisation

Attributes

Inherited from:
Platform

Map from the service sequence representation to their id WARNING: this lazy variable MUST NOT be called during platform object initialisation

Map from the service sequence representation to their id WARNING: this lazy variable MUST NOT be called during platform object initialisation

Attributes

Inherited from:
Platform

initiator

Initiator modelling the DMA

Initiator modelling the DMA

Attributes

Initiator modelling ethernet peripheral

Initiator modelling ethernet peripheral

Attributes

printer_function

override def toString: String

Print a node only by its name

Print a node only by its name

Attributes

Returns:

string representation of a PMLNode

Definition Classes
PMLNode -> Any
Inherited from:
PMLNode

composite

Composite modelling ARM0

Composite modelling ARM0

Attributes

Composite modelling ARM1

Composite modelling ARM1

Attributes

object MemorySubsystem extends Composite

Composite modelling memory subsystem

Composite modelling memory subsystem

Attributes

Graph
Supertypes
class Composite
class Hardware
class PMLNode
class Object
trait Matchable
class Any
Self type
object TeraNet extends Composite

Composite modelling the Teranet

Composite modelling the Teranet

Attributes

Graph
Supertypes
class Composite
class Hardware
class PMLNode
class Object
trait Matchable
class Any
Self type
TeraNet.type

transporter

Transporter modelling AXI bus

Transporter modelling AXI bus

Attributes

route_relation

Relation gathering routing constraints

Relation gathering routing constraints

Attributes

Inherited from:
Instances

Type members

Inherited classlikes

Extension methods for physical transaction identifiers

Extension methods for physical transaction identifiers

Attributes

x

the name of the physical transaction

Inherited from:
Platform
Graph
Supertypes
class Object
trait Matchable
class Any

Value members

Constructors

def this()(implicit implicitName: Name)

Enable to provide the name implicitly

Enable to provide the name implicitly

Attributes

implicitName

the name of the object/class inheriting from this class will be the name of platform

Inherited methods

Build the scenario id as "t_1|...|t_n"

Build the scenario id as "t_1|...|t_n"

Attributes

s

the set of physical transactions forming the scenario

Returns:

the unique id of the scenario

Inherited from:
Platform

Implicits

Inherited implicits

Extension methods for physical transaction identifiers

Extension methods for physical transaction identifiers

Attributes

x

the name of the physical transaction

Inherited from:
Platform
implicit def toSymbol(s: String): Symbol

Attributes

Inherited from:
Platform