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.

Systematic <strong>Embed<strong>de</strong>d</strong> <strong>Software</strong> Generation from SystemC 87<br />

functions and their implementation. Figure 7-2 shows the proposed software<br />

generation flow. The <strong>de</strong>sign process begins from a SystemC specification.<br />

This <strong>de</strong>scription verifies the specification methodology proposed in the<br />

previous section. At this level (“Specification”) SW/HW partition has not been<br />

per<strong>for</strong>med yet. In or<strong>de</strong>r to simulate the “Specification level” <strong>de</strong>scription, the<br />

co<strong>de</strong> has to inclu<strong>de</strong> the SystemC class library (“systemc.h” file) that <strong>de</strong>scribes<br />

the SystemC simulation kernel.<br />

After partition, the system is <strong>de</strong>scribed in terms of SW and HW algorithms<br />

(“Algorithmic level”). At this level, the co<strong>de</strong> that supports some SystemC<br />

constructions in the SW part has to be modified. This replacement is per<strong>for</strong>med<br />

at library level, also so it is totally hid<strong>de</strong>n from the <strong>de</strong>signer who<br />

sees these libraries as black boxes. Thus, the SystemC user co<strong>de</strong> (now pure<br />

C/C++ co<strong>de</strong>) is not modified during the software generation flow, constituting<br />

one of the most important advantages of this approach. A new library<br />

SC2RTOS (SystemC to RTOS) re<strong>de</strong>fines the SystemC constructions whose<br />

<strong>de</strong>finition has to be modified in the SW part. It is very important to highlight<br />

that the number of SystemC elements that have to be re<strong>de</strong>fined is very small.<br />

Table 7-1 shows these elements. They are classified in terms of the element<br />

functionality. The table also shows the type of RTOS function that replaces<br />

the SystemC elements. The specific function <strong>de</strong>pends on the selected RTOS.<br />

The library could be ma<strong>de</strong> in<strong>de</strong>pen<strong>de</strong>nt of the RTOS by using a generic API<br />

(e.g.: EL/IX [19]).<br />

At algorithmic level, the system can be co-simulated. In or<strong>de</strong>r to do that,<br />

an RTOS-to-SystemC kernel interface is nee<strong>de</strong>d. This interface mo<strong>de</strong>ls the<br />

relation between the RTOS and the un<strong>de</strong>rlying HW plat<strong>for</strong>m (running both<br />

over the same host).

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

Saved successfully!

Ooh no, something went wrong!