Table Of Contents

Previous topic

The Ware & Driver concept

Next topic

DSX internal APIs packages

This Page

DSX Views

digraph views {
fontsize = 10;

node [shape=box,height=.6];

SoftFromTcg; SoftDriver; PlatformToDts; DtsToPlatform;
Hexo [label = "Hexo\nMutekH\nMutekS", color = red]
MacrocellDriver [label = "MacrocellDriver\nPfDriver"];
DtsDriver; DtsParser; ScModuleDriver; HardDriver;

node [shape=ellipse,height=.6];

tcg[color = red]; software; hard;
architecture [label = "architecture", color = red];
mapper [color = red]; device_tree; systemc;

node [shape=tab];

hfiles [label = "Hardware\nsimulator\nfiles", color = red];
sfiles [label = "Software\nfiles", color = red];
dfiles [label = "device tree\nfiles"];

#subgraph cluster_p {
#    SoftFromTcg -> software;
#    label = "Posix";
#    shape = box;
#}

subgraph {
   rank = min;
   tcg; architecture;
}

#subgraph {
#   rank = same;

#}

subgraph {
   rank = same;
   sfiles; dfiles; hfiles;
}

subgraph {
   rank = same;
   software; mapper; systemc; hard; device_tree;
}

subgraph {
   rank = same;
   device_tree; systemc;
}

subgraph {
   rank = same;
   DtsToPlatform; PlatformToDts; SoftFromTcg;
}

subgraph {
   rank = same;
   MacrocellDriver; Hexo;
}

subgraph {
   rank = same;
   SoftDriver; DtsDriver; DtsParser;
   ScModuleDriver; HardDriver;
}

tcg -> SoftFromTcg;
architecture -> hard;

tcg -> mapper [color = red];
architecture -> mapper [color = red];
architecture -> systemc;
systemc -> ScModuleDriver -> hfiles [color = red];
architecture -> MacrocellDriver;
MacrocellDriver -> systemc [color = red];

##
SoftFromTcg -> software;

software -> SoftDriver;
SoftDriver -> sfiles [color = red];
mapper -> software;

mapper -> Hexo [color = red];
Hexo -> SoftDriver [color = red];
Hexo -> MacrocellDriver [color = red];

architecture -> PlatformToDts -> device_tree;
device_tree -> DtsToPlatform -> architecture;

device_tree -> DtsDriver -> dfiles;
dfiles -> DtsParser -> device_tree;

hard -> HardDriver -> hfiles;
}

The figure contains most of the Wares (ellipses) and Drivers (boxes) available in DSX.

Note

In red, this is the path most users take when mapping an application on an hardware platform using MutekH. Red boxes and ellipses are the explicitely used Wares and Drivers. You can see some drivers are transparently used behind the scenes.

The application view

Application is a Tcg.

It can be transformed in a Software directly, when all tasks have an associated SwTask implementation.

It can also be put inside a Mapper with an architecture. Mapping results are both a Software and a SystemC netlist. In this case, the produced Software is not equivalent to the one created directly from the Tcg because some tasks are implemented as hardware, therefore not present in the software tasks to create.

The Software view

Software is a software-centric view of an application. Nodes are tasks and other software memory resources. They can be selectively assigned to processors or addresses. It’s up to the driver creating the associated files to handle this correctly for the backend.

The Hardware views

Hardware exists in different representations.

  • Platform netlist views are high-level netlist of components with full connection to the underlying component implementation and semantics. Architecture is such a view. It has full connection to the external soclib metadata library.
  • Hardware listing views are just an abstract list of components and their features. This is the Hardware and DeviceTree views.
  • Hardware netlist views are an in-memory representation of an actual netlist, SystemC is such a view where semantics of components is lost, only remains the component names, C++ types, instantiation and connections.