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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

4 Chapter 1<br />

of RTOS mo<strong>de</strong>ls is becoming strategic insi<strong>de</strong> hardware/software co-<strong>de</strong>sign<br />

environments.<br />

This work‚ based on Ca<strong>de</strong>nce Virtual Component Co-<strong>de</strong>sign (VCC) environment<br />

[3]‚ shows a <strong>de</strong>sign flow to automatically generate and evaluate<br />

software – including a RTOS layer – <strong>for</strong> a target architecture. Starting from<br />

executable specifications‚ an untimed mo<strong>de</strong>l of an existing <strong>SoC</strong> is <strong>de</strong>fined and<br />

validated by functional simulations. At the same time an architectural mo<strong>de</strong>l<br />

of the target system is <strong>de</strong>fined providing a plat<strong>for</strong>m <strong>for</strong> the next <strong>de</strong>sign phase‚<br />

where system functionalities are associated with a hardware or software<br />

architecture element. During this mapping phase‚ each high-level communication<br />

between functions has to be refined choosing the correct protocol from<br />

a set of pre<strong>de</strong>fined communication patterns. The necessary glue <strong>for</strong> connecting<br />

together hardware and software blocks is generated by the interface synthesis<br />

process.<br />

At the end of mapping‚ software estimations have been per<strong>for</strong>med be<strong>for</strong>e<br />

starting to directly simulate and validate generated co<strong>de</strong> to a board level prototype<br />

including our target chip.<br />

Experimental results show a link to implementation consistency with an<br />

overhead of about 11.8% in term of co<strong>de</strong> execution time. Per<strong>for</strong>mance estimations<br />

compared against actual measured per<strong>for</strong>mances of the target system<br />

show an accuracy error less than 1%.<br />

2. SPEECH RECOGNITION SYSTEM DESCRIPTION<br />

A single-chip‚ processor-based system with embed<strong>de</strong>d built-in speech recognition<br />

capabilities has been used as target in this project. The functional block<br />

diagram of the speech recognition system is shown in Figure 1-1. It is basically<br />

composed by two hardware/software macro-blocks.<br />

The first one‚ simply called front-end (FE)‚ implements the speech acquisition<br />

chain. Digital samples‚ acquired from an external microphone‚ are<br />

processed (Preproc) frame by frame to provi<strong>de</strong> a sub-sampled and filtered<br />

speech data to EPD and ACF blocks. While ACF computes the auto-correlation<br />

function‚ EPD per<strong>for</strong>ms an end-point <strong>de</strong>tection algorithm to obtain<br />

silence-speech discrimination.<br />

ACF concatenation with the linear predictive cepstrum block (LPC) translates<br />

each incoming word (i.e. a sequence of speech samples) into a variablelength<br />

sequence of cepstrum feature vectors [4]. Those vectors are then<br />

compressed (Compress) and trans<strong>for</strong>med (Format) in a suitable memory structure<br />

to be finally stored in RAM (WordRam).<br />

The other hardware/software macro-block‚ called back-end (BE)‚ is the <strong>SoC</strong><br />

recognition engine where the acquired word (WordRAM) is classified comparing<br />

it with a previously stored database of different words (Flash Memory).<br />

This engine‚ based on a single-word pattern-matching algorithm‚ is built<br />

by two nested loops (DTW Outloop and DTW Innerloop) that compute L1 or

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

Saved successfully!

Ooh no, something went wrong!