onera.pmlanalyzer.pml.examples.simpleKeystone

Package containing an example on a simplification of a TI Keystone platform

Attributes

See also:

SimpleKeystonePlatform for examples of pml.model.hardware.Hardware modelling features SimpleSoftwareAllocation for examples of pml.model.software.Application modelling features SimpleKeystoneTransactionLibrary for examples of transaction/scenario modelling features SimpleKeystoneLibraryConfiguration for example of transaction library configuration SimpleKeystoneLibraryConfigurationFull for examples of specialisation of library configurations SimpleKeystoneExport for examples of platform instantiation and pml.exporters usage

Members list

Concise view

Type members

Classlikes

object SimpleKeystoneExport extends App

Program entry point to export several version of Keystone

Program entry point to export several version of Keystone

Attributes

Graph
Supertypes
trait App
trait DelayedInit
class Object
trait Matchable
class Any
Self type

Transaction that are always used. A user transaction is considered during the analyses if identified as so. For instance to indicate that the t11 transaction defined in SimpleKeystoneTransactionLibrary is used

Transaction that are always used. A user transaction is considered during the analyses if identified as so. For instance to indicate that the t11 transaction defined in SimpleKeystoneTransactionLibrary is used

t11_app1_rd_interrupt1.used

Attributes

See also:

pml.operators.Use.Ops for operator definition

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
Self type

All transaction are used

All transaction are used

Attributes

Graph
Supertypes
Known subtypes
Self type

Transactions used when the L1 is not used

Transactions used when the L1 is not used

Attributes

Graph
Supertypes
Known subtypes
Self type

Transaction used when app4, app1 and app21 are scheduled

Transaction used when app4, app1 and app21 are scheduled

Attributes

Graph
Supertypes
Known subtypes
Self type

Transaction used when app22, app1 and app3 are scheduled

Transaction used when app22, app1 and app3 are scheduled

Attributes

Graph
Supertypes
Known subtypes
Self type
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:

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

This trait contains a library of all transactions that can occur on the platform One way to define a pml.model.configuration.TransactionLibrary.Transaction or a pml.model.configuration.TransactionLibrary.Scenario is to use the read/write operators specifying which pml.model.software.Data is used by which pml.model.software.Application. For instance

This trait contains a library of all transactions that can occur on the platform One way to define a pml.model.configuration.TransactionLibrary.Transaction or a pml.model.configuration.TransactionLibrary.Scenario is to use the read/write operators specifying which pml.model.software.Data is used by which pml.model.software.Application. For instance

val app4_wr_input_d : Transaction = Transaction(app4 write input_d)

defines a read transaction called '''app4_wr_input_d''' between the initiator of app4 and the input_d data. The location of the application and the data are provided in the SimpleSoftwareAllocation trait.

If you want to define several paths representing a multi-transaction use the pml.model.configuration.TransactionLibrary.Scenario For instance

val app1_rd_wr_L1 : Scenario = Scenario(app1_rd_L1, app1_wr_L1)

defines a scenario named '''app1_rd_wr_L1''' where app1 is reading and writing L1 cache

Attributes

See also:

pml.operators.Use.Ops for read/write operator definitions

Note:

A transaction or a scenario is only '''declared''' here, it will be considered during the interference analysis if it is actually used. This is done in the SimpleKeystoneLibraryConfiguration files. A transaction should be a path from an initiator to a target, if several paths are possible a warning will be raised.

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
Self type

Routing constraints considered for simple Keystone

Routing constraints considered for simple Keystone

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
Self type

Definition and allocation of software and data to hardware for simple Keystone. Declaring the application app1

Definition and allocation of software and data to hardware for simple Keystone. Declaring the application app1

val app1: Application = Application()

Allocating app1 on pml.examples.simpleKeystone.SimpleKeystonePlatform.ARM0

app1 hostedBy ARM0.core

Declaring the data input_d

val input_d: Data = Data()

Allocating app1 on pml.examples.simpleKeystone.SimpleKeystonePlatform.MemorySubsystem.sram

input_d hostedBy MemorySubsystem.sram

Attributes

See also:

pml.operators.Use.Ops for hostedBy operator definition

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
Self type