29.01.2015 Views

Embedded Software for SoC - Grupo de Mecatrônica EESC/USP

Embedded Software for SoC - Grupo de Mecatrônica EESC/USP

Embedded Software for SoC - Grupo de Mecatrônica EESC/USP

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

284 Chapter 21<br />

We also verify constraint (6) using the simulation analyzer approach. Table<br />

21-3 shows that the simulation time grows linearly with the size of the trace<br />

file. However, due to the use of an annotation in an in<strong>de</strong>x expression, memory<br />

can no longer be recycled with the algorithm in the previous section and we<br />

see that it also grows linearly with the size of the trace file. In<strong>de</strong>ed, since we<br />

will not know what annotation will be nee<strong>de</strong>d in the future, we can never<br />

remove any in<strong>for</strong>mation from memory. If the memory is a limiting factor in<br />

the simulation environment, the analysis speed must be sacrificed to allow the<br />

verification to continue. This is shown in Table 21-3 where the memory usage<br />

is limited to 50 KB. We see that the analysis takes more time when the memory<br />

limitation has been reached. In<strong>for</strong>mation about trace pattern can be used to<br />

dramatically reduce the running time un<strong>de</strong>r memory constraints. Aggressive<br />

memory minimization techniques and data structures can also be used to<br />

further reduce time and memory requirements. For most LOC <strong>for</strong>mulas,<br />

however, the memory space can be recycled and the memory requirements are<br />

small.<br />

Table 21-3. Result of constraint (6) on FIR.<br />

Lines of traces<br />

Unlimited memory<br />

Memory limit (50 KB)<br />

Time (s)<br />

Mem (KB)<br />

Time (s)<br />

Mem (KB)<br />

< 1<br />

40<br />

< 1<br />

40<br />

< 1<br />

60<br />

61<br />

50<br />

< 1<br />

80<br />

656<br />

50<br />

1<br />

100<br />

1869<br />

50<br />

5. CONCLUSION<br />

In this paper we have presented a methodology <strong>for</strong> system-level verification<br />

through automatic trace analysis. We have <strong>de</strong>monstrated how we take any<br />

<strong>for</strong>mula written in the <strong>for</strong>mal quantitative constraint language, Logic Of<br />

Constraints, and automatically generate a trace checker that can efficiently<br />

analyze the simulation traces <strong>for</strong> constraint violations. The analyzer is fast<br />

even un<strong>de</strong>r memory limitation. We have applied the methodology to many<br />

case studies and <strong>de</strong>monstrate that automatic LOC trace analysis can be very<br />

useful.<br />

We are currently consi<strong>de</strong>ring a few future enhancements and novel applications.<br />

One such application we are consi<strong>de</strong>ring is to integrate the LOC<br />

analyzer with a simulator that is capable of non-<strong>de</strong>terministic simulation, non<strong>de</strong>terminism<br />

being crucial <strong>for</strong> <strong>de</strong>sign at high level of abstraction. We will use<br />

the checker to check <strong>for</strong> constraint violations, and once a violation is found,<br />

the simulation could roll back and look <strong>for</strong> another non-<strong>de</strong>terminism resolution<br />

that will not violate the constraint.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!