<buttononclick="topFunction()"id="upBtn"title="Go to top">Top</button>
<h1>Constraint Modeling</h1>
<p> The <b>Constraint</b> page is your starting point for any constraint modeling activity. Some patterns are provided to facilitate the definition of constraints.
Below, we give an overview of the constraint patterns available so far:
<ul>
<li>Allocation;</li>
<li>Function Coupling;</li>
<li>Safety Level;</li>
<li>Memory Utilization.</li>
</ul>
<h1>Deployment Synthesis</h1>
<p> The <b>deployment synthesis</b> enables to explore the allocation of tasks to execution
units w.r.t. to the constraints and objectives described on this page.
By selecting a task in the table on the left, and a (HW) execution unit on the right you can add an allocation or dislocation constraint.
...
...
@@ -50,7 +43,7 @@ Below, we give an overview of the constraint patterns available so far:
In the figure above, we are creating a constraint that requires the allocation of <i>Task_Component</i> to either <i>Core01</i> or <i>Core02</i>.
</p>
<h2>Function Coupling</h2>
<h3>Function Coupling</h3>
<imgsrc="pictures/Coupling.png",width = "100%"/>
<p>
...
...
@@ -63,17 +56,43 @@ Below, we give an overview of the constraint patterns available so far:
In the figure above, e.g., we are <i>coupling</i> the tasks <i>Task_Component</i> and <i>Task_Component1</i>.
</p>
<h2>Safety Level</h2>
<h3>Memory Utilization</h3>
<imgsrc="pictures/Memory.png",width = "100%"/>
<p>
In the <b>Memory Utilization</b> Pattern you are allowed to specify (as a percentage value) the amount of memory that can be used by tasks allocated to a given execution unit. In order to do so, just modify the values in the last column of the table. In the figure above, e.g., we are specifying that the tasks allocated to <i>Core01</i> can only use 50% of its memory.
As you can notice from the figure, in the DSE Navigator on the left the constraints just defined appear listed as Target Definition steps.
</p>
<h3>Safety Level</h3>
<imgsrc="pictures/Safety.png",width = "100%"/>
<p>
In the <b>Safety Level</b> Pattern you are allowed to specify the allocated safety level of each HW execution unit by modifying the values in the table. E.g., if you specify that <i>Core03</i> must be lower than SIL2, a constraint is created that forces all tasks deployed into <i>Core03</i> to have a safety level lower than SIL2.
In the <b>Memory Utilization</b> Pattern you are allowed to specify (as a percentage value) the amount of memory that can be used by tasks allocated to a given execution unit. In order to do so, just modify the values in the last column of the table. In the figure above, e.g., we are specifying that the tasks allocated to <i>Core01</i> can only use 50% of its memory.
As you can notice from the figure, in the DSE Navigator on the left the constraints just defined appear listed as Target Definition steps.
This pattern allows you to create optimization objectives for the hardware components (table on the left) where the tasks (table on the right) are running.
The optimization function consists of two main parts:
<ul>
<li>Optimization Direction: it can be either minimization or maximization of the function;</li>
<li>Aggregation Operator: it can be either a <i>sum</i> over hw properties (e.g. the sum of the hardware costs) or <i>count</i>. The count function basically just counts the number of model elements (ECUs in this case) in an architecture.</li>
</ul>
When you are done, you can press the button <i>Add</i> to create the objective.
This pattern allows you to create optimization objectives for the hardware components (table on the left) where the tasks (table on the right) are running.
The optimization function consists of two main parts:
<ul>
<li>Optimization Direction: it can be either minimization or maximization of the function;</li>
<li>Aggregation Operator: it can be either a <i>sum</i> over hw properties (e.g. the sum of the hardware costs) or <i>count</i>. The count function basically just counts the number of model elements (ECUs in this case) in an architecture.</li>
</ul>
When you are done, you can press the button <i>Add</i> to create the objective.
The scheduling synthesis enables to explore the scheduling of tasks and execution
units as well as signals on transmission units w.r.t. to the constraints and
This pattern allows you to <b>optimize the bandwidth</b> of a given transmission channel. You should first select the transmission unit you want to consider from the menu (in the figure above, <i>InterdomainFlexRayBus</i> is selected) and then select the optimization direction via the option button (either <i>minimize</i> or <i>maximize</i>). Finally press the button <i>Add</i> to create the objective.
Minimizes the span (maximum length) of strictly time-triggered schedules.
</p>
<h3>Energy Minimization</h3>
<p>
Minimizes the consumed amount of energy during operation by scaling the frequency