0% au considerat acest document util (0 voturi)
7 vizualizări7 pagini

VLSI

Documentul detaliază obiectivele și etapele sintezei VHDL, inclusiv organizarea designului pentru simulare și utilizarea mașinilor cu stări finite. De asemenea, sunt discutate caracteristicile microcontrolerului PicoBlaze și arhitectura ARM, precum și metodele de testare și verificare a hardware-ului. Informațiile sunt esențiale pentru implementarea eficientă a circuitelor digitale și optimizarea performanței acestora.

Încărcat de

Radu B
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOCX, PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
7 vizualizări7 pagini

VLSI

Documentul detaliază obiectivele și etapele sintezei VHDL, inclusiv organizarea designului pentru simulare și utilizarea mașinilor cu stări finite. De asemenea, sunt discutate caracteristicile microcontrolerului PicoBlaze și arhitectura ARM, precum și metodele de testare și verificare a hardware-ului. Informațiile sunt esențiale pentru implementarea eficientă a circuitelor digitale și optimizarea performanței acestora.

Încărcat de

Radu B
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOCX, PDF, TXT sau citiți online pe Scribd

Principalele Obiectivele de sinteză sunt:

- Traducerea descrierea HDL într-o implementarea tehnologica


- Optimizarea implementării circuitului în funcție de utilizarea criteriilor stabilite
- Utilizarea biblioteci de tehnologie țintă în proces
- Revizuirea caracteristicile de performanță ale circuitului
- Detectare de căi critice în circuit și să adopte soluții
- Crearea fișiere *.end pentru instrumente de implementare SI.

VHDL Synthesis –principalele etape

Graph Builder- inregistreaza rezultatele de parsing in ceea ce priveste:


dependente explicite de date, de control si de ordin de executie
Scheduling- interactiv unitățile funcționale ale unui proces la un moment dat și
legat în control și timp
Registrul de alocare – datele care trec de un control in altul, trebuie stocate intr-
un registru
Controller synthesis – starea controllerului este pusa intr-o masina cu stari finite

Organizarea unui design VHDL pentru simulare

O descriere VHDL poate consta din mai multe entități de proiectare, fiecare cu
mai multe arhitecturi, și organizate într-o ierarhie de design.
Configuratia spune exact setul de entitatii si arhitecturi folosite intr-o anumita
simulare
Configuratia face 2 lucruri:
- Specifica entitatile de design care trebuie folosite in
locul fiecarei component
- În al doilea rând o configurație specifică arhitecturii să
fie utilizate pentru fiecare entitate de design
Formatul general al configuratiei

[ use declarations ] -- Selection of packages in Libraries


[ for declarations ] -- Selection of components
[ for declarations ] -- Trace selection in hierarchy
[ use declarations ]
[end for ]
…………..
end configuration.

Masina cu stari finite


Masina cu stari finite (Finite State Machines FSM’s) sunt folosite in general ca si
controllere in scheme digitale
Partitionarea FSM-ului se face cu 2 procese vhdl:
- Primul proces: Un process sincronizat, se ocupa cu clock
si celelalte elemente asociate cu storage-ul.
- Al doilea proces: Se ocupa cu Next State Decoder si
Output Decoder

FSM State En-Coding


Exista doua tipuri de state encoding:
One Hot’ encoding cazul in care fiecarui state i se atribuie un flip-flop care
inregistreaza “true-one” pe cand celelalte inregistreaza “false-zero”
Enumerated encoding – un set de registrii organizate ca un counter de
numarul encoded in fiecare state.

Timing model in design simulation


Timpul de propagare intr-un circuit electric este modelata standard cu
cuvinte rezervate : after “time_value”

VHDL process construct

Un process ca un intreg este o instructiune concurenta intr-o descriere


VHDL
Instrucțiuni secvențiale poate fi utilizat numai în cadrul unui proces.
Declarațiile sunt executate "secvențial", în cadrul unui proces până când procesul
este suspendat, fie printr-o declarație "wait" sau până când nu există mai multe
declarații care urmează să fie executate.
Signal assignments sunt permise în ultimul timp în interiorul unui
[Link] trebuie să fie scrise cu grijă, deoarece în simulare și sinteză este
"ordonat" și evaluate secvențial!

Câteva reguli pentru procese

- În cazul în care un proces are o listă de sensibilitate, atunci acesta nu poate


conține o declarație "wait".
- Un proces cu o listă de sensibilitate este întotdeauna declanșată la momentul 0,
deoarece toate semnalele au întotdeauna un eveniment inițial pus pe ele la
momentul 0.
- Un proces fără o listă de sensibilitate este întotdeauna declanșată la momentul
0 inițial.
- În cazul în care un proces fără o listă de sensibilitate "falls out the bottom",
imediat revine sus pana se loveste de „wait”
Reguli Signal Assignment
Signal Assignment intr-un proces va adauga o pereche ordonata a timpului
de asteptare.
Se poate sa avem atribuiri la acest semnal:
Daca noul timp este AFTER, atunci perechea noua de atribuire se
adauga la sfarsitul listei
Orice perechi ordonate pentru acest semnal pe lista de atribuiri care
avea momente mai târzii de nouă misiune sunt eliminate din timp

Variabile și Semnale
Variabile:
-Poate fi declarata numai în cadrul proceselor
- Nu sunt vizibile în afara unui proces
- Variabile păstrează valorile între execuții de proces
- Atribuirea de variabilă are loc imediat

Semnale:
- Semnalele trebuie să fie declarate în afara proceselor
- Semnalele sunt vizibile pentru toate procesele și sunt folosite pentru a
transporta informații între procese

PicoBlaze

Caracteristici generale
PicoBlaze ™ microcontroler este un cost-eficient pe deplin integrat 8-bit
RISC core microcontroler optimizat pentru Spartan ™ -3, Virtex ™-II, și Virtex-II Pro
™ familii FPGA.
PicoBlaze este un microcontroler de control și simplu de prelucrare a
datelor.
Un singur bloc de memorie RAM FPGA stochează până la 1024
instrucțiunile de program, care sunt încărcate automat, în timpul configurării
FPGA.
Microcontroler PicoBlaze efectuează un respectabil 44 până la 100 milioane de
instructiuni pe secunda (MIPS)

Microprocessor Architecture – ARM

ARMv6 Arhitectura prevede pentru o performanță îmbunătățită:

* Media de prelucrare extensii


- 2x mai repede MPEG4 codifica / decodifica
- 2x mai repede DSP audio

* Îmbunătățirea cache arhitectura


- Fizic cache adresate
- Reducerea culoare cache / reumplere
- Aeriene de redusă în context switch-uri

* Excepție îmbunătățită și de tratare a întreruperii


- Important pentru îmbunătățirea performanțelor în timp real sarcini

Arhitectura:
Depozitare: Matrice redundantă de Discuri ieftine (RAID) s-au dovedit a
oferi cele mai bune metode de depozitare.
Pipeline: Structura Highly-pipelined poate afecta eficienta prin introducerea
intarzierilor in sistem. Un pipeline lung inseamna ca executia unor instructiuni
poate fi amanata/intarziata pentru ca depinde de rezultatele instrunctiunilor
anterioare. ARM11 evita aceste intarzieri prin utilizarea extensiva a transmiterii in
cadrul pipeline. Un procesor cu un pipeline lung poate pierde performanta atunci
cand se intampla ca ceva sa intrerupa fluxul de date.

Gestioanrea instructiunilor Branches


Instrucțiuni Branch sunt, de obicei, instrucțiuni condiționale. Au nevoie de
anumite conditii pentru a fi testate - cum ar fi examinarea unui registru cod de
stare, inainte de a sari la o alt instructiune.
In primul rand dynamic branch preditor foloseste un istoric pentru a vedea
daca branch-ul a mai fost folosit anterior si daca e cel mai frecvent utilizat

Daca dynamic prediction a fost intalnit inainte, o predictive se face pe baza


datelor anterioare: Strongly Taken -- Weakly Taken
Strongly not Taken -- Weakly not Taken
Static branch prediction preia controlul
Static branch se uita la fiecare branch pentru a vedea daca continua sau nu: Daca
este backwards, presupune ca e o bucla si preia branch-ul; daca este forward nu
preia branch-ul.

Cache L1 este proiectat pentru a reduce nevoia de curatare a cache-ului.


Cache poate fi organizată ca un sistem de instruire la Harvard, cu instructiuni
separat și cache de date, sau ca un singur camp von Neumann cache.
TCM este o zonă fizic cu adresa de memorie Scratchpad.

Organizarea memoriei

Numai în cazul în care trei ratări de date succesive sunt întâlnite, pipeline-ul va
sta. Pentru cele mai multe aplicații, aceasta se intampla foarte rar.
Sistemele cuplate ruleaza mai rapid, memorile de nivel 1 nu au timp de asteptare
In practica, acestea limiteaza dimensiunea memoriei care poate fi suportata de
clock.

Hardware verification

Testare si verificare
Testare = aplicarea vectorilor de test la intrările unui dispozitiv și
compararea ieșirilor cu valorile corecte
● Scop: detecția de componente defecte, reducerea apariției defectelor
● Când se face: în momentul în care dispozitivul există
● Metodologie: dezvoltarea de teste care să acopere scenariile de utilizare și să
demonstreze corectitudinea funcționării

Verificare = demonstrarea că un design (sistem, dispozitiv, unitate


funcțională) funcționează conform specificațiilor
● Scop: detectarea erorilor și corectarea acestora
● Când se face: în fiecare etapă a proiectării și realizării
● Metodologie:
– Generarea de stimuli
– Aplicarea acestora la intrările designului
– Capturarea răspunsurilor (ieșirilor)
– Verificarea ca acestea sunt conforme specificațiilor
– Măsurarea gradului de acoperire a
specificațiilor

Testare cu stimuli pseudo-aleatori (constrained-random testing)


● Testare directată (directed testing)
● Acoperire funcțională (functional coverage)
● Mediu de testare (testbench) cu mai multe nivele bazat pe tranzacții
● Un singur mediu de testare pentru toate testele
● Separarea testelor de testbench

Arhitectura de testbench

S-ar putea să vă placă și