EDA/SW/T&M
SoC TESTING
47
- ELETTRONICA OGGI 468 - MARZO 2018
mostrato in figu-
ra 5. Notare che
questo vincolo è
identificato come
‘dynamic’; ciò si-
gnifica che esso
viene applicato
solo dopo esse-
re stato attivato
all’interno
del
grafo – in questo
caso, ciò avviene
quando si deci-
de di accedere a
un registro di tipo DMA. Sebbene questi vincoli siano
stati ora creati manualmente, essi potrebbero essere
agevolmente generati sulla base di una descrizione
dei registri espressa in una sintassi interpretabile da
un algoritmo, come ad esempio IP-XACT, SystemRDL
e così via.
Una volta integrato il grafo di accesso ai registri con
tutte le porzioni relative a DMA, UART e TCM, si ottiene
il grafo mostrato in figura 6. Questo può essere inter-
pretato come un diagramma di flusso; innanzitutto, si
decide a quale IP accedere, poi sulla base di tale sele-
zione si scende lungo un ramo del grafo e si effettuano
alcune scelte specifiche di quel ramo. Ad esempio, il
ramo presente sulla sinistra del grafo contiene deci-
sioni specifiche dell’accesso a DMA.
Indirizzamento dei test
È evidente che, se già il nostro piccolo SoC di esem-
pio possiede oltre 250 registri, un SoC reale ne pos-
siede una quantità enormemente maggiore. Si vorrà
garantire che il test acceda a tutti tali registri, e che
vi acceda in un qualche ordine di tipo casuale. Inoltre
si potrebbe desiderare di focalizzare maggiormente il
test – ad esempio, limitandolo ai registri della UART.
Lo strumento Questa inFact consente di utilizzare in
modo combinato i vincoli e gli obiettivi di copertura
del grafo per focalizzare l’attività sugli obiettivi di te-
sting desiderati. I vincoli specificano quali test posso-
no essere generati, mentre gli obiettivi di copertura
indirizzano le priorità espresse verso la generazione
sistematica di alcuni specifici test. Ad esempio, si
potrebbe utilizzare un vincolo per specificare che la
UART non è attualmente pronta per essere testata. Un
obiettivo di copertura potrebbe invece indicare che la
priorità di un certo test è costituita dal motore DMA,
sebbene anche le altre IP presenti debbano essere
sollecitate, ma solo dopo aver raggiunto l’obiettivo fis-
sato per il target primario.
L’obiettivo di copertura (l’area evidenziata con sfon-
do azzurro), mostrato in figura 7, indica che, per il test
corrente, l’attività di test dovrà focalizzarsi sui registri
DMA. A fronte di ciò, Questa inFact genererà dapprima
dei dati di test che accederanno sistematicamente ai
registri DMA in ordine pseudo-casuale e successiva-
mente genererà un mix di accessi a DMA, UART e TCM.
Mappatura verso l’ambiente UVM
La descrizione della procedura di testing per l’ac-
cesso ai registri che è stata fin qui creata è del tutto
indipendente da qualsiasi ambiente di verifica. Sarà
ora necessario inserire un po’ di logica ulteriore, che
consenta di collegare il grafo di test a uno specifico
ambiente in cui poter eseguire concretamente la ve-
Fig. 5 – Vincolo per la selezione dell’indi-
rizzo di un registro DMA
Fig. 6 – Semplice Grafo per l’accesso ai registri di un SoC
Fig. 7 – Obiettivo di copertura focalizzato sulla DMA