1.
Explicati in cadrul synthesis:
-> resource allocation
-variabilele sunt alocate in registri sau elemente de memorie
-operatorii sunt alocati in unitati functionale ( mai multi
operatori pot fi implementati intr-o unitate functionala )
-> schedulling
- operatiunile sunt atribuite la intervale de timp pentru
executarea lor într-o implementare sincron
->Control FSM synthesis
se adauga registre aditionale daca operatiile dureaza mai mult
de un ciclu de tact
-> Ce este critical-path-> metode de optimizare
-critical path = calea ce creeaza cea mai lunga intarziere
-o metoda de optimizare a caii critice ar fi dezactivarea
resource sharing si folosirea metodei pipeline
2. Explicati: Modul de evaluare si dif dintre specificatiile VHDL:
-> intertial delay
-> transport delay
Pentru o intarziere se foloseste cuvantul rezervat "after".
delay inertial: a<= b xor c after 1ns
transport delay: d <= transport e after 1ns
Folosim functia de delay cand avem mai multe clockuri iar pentru
sincronizare, introducem un delay
ca unele operatii sa se faca dupa un anumit timp.
Modelul inertial e simulat in conformitate cu propagarea semnalelor
care au o "inertie" suficienta iar intarzierile
dintre 2 pasi de simulare nu apar.
Folosind intarziere de tip transport putem pastra fronturile de
propagare iar toate semnalele de intarziere vor fi pastrate.
[Link] forma generala si util. constructului VHDL
-> Configuration construct
configuration identifier of entity_name is
libraries
components
hierarchy
end configuration.
Constructul configuration are sarcina de a specifica
exact setul de entitati si arhitecturi folosite in cadrul
unei simulari sau sinteze.
4. Explicati functia si modul de evaluare a functier de rezolutie (rezolution function)
O functie de rezolutie defineste cum valorile mai multor surse
sau drivere sunt rezolvate intr-o singura valoare
'U', -- Uninitialized
'X', -- Forcing Unknown
'0', -- Forcing 0
'1', -- Forcing 1
'Z', -- High Impedance
'W', -- Weak Unknown
'L', -- Weak 0
'H', -- Weak 1
'-' -- Don't care
5. Explicati la RISC :
->Dynamic branch prediction
-> Static branch prediction
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
alta 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.