Documente Academic
Documente Profesional
Documente Cultură
2. Detaliati nivelele:
a.Nivelul circuitelor : Hardware-ul. -> circuite electronice, microprocesoare memorii, dispositive de intrare/iesire,
deci obiecte fizice tangibile(circuite integrate, memorii, placi cablate, surse de alimentare). Ansamblul
componentelor fizice si tehnice cu ajutorul carora datele si programele se pot introduce , stoca, prelucra, livra,
transmite. Resursele fizice.
b. Nivelul proiectarii : Face posibil dialogul dintre nivelul hardware(circuitelor) si nivelul software(programelor)
prin setul de instructiuni (Limbajul masina).Pentru a fi posibil ca softwareul sa poata fi executat pe hardwareul
unui computer, acest soft trebuie tradus in limbajul specific setului de instructiuni al acelui calculator. Aceste
instructiuni activeaza componentele hardware.
c.Nivelul programelor : Programe scrise pe baza unor algoritmi. Ansamblul componentelor logice de tipul
programelor, procedurilor, rutinelor, modulelor, care dirijează funcţionarea componentelor hard şi asigură
prelucrarea datelor, cu scopul de a rezolva diverse probleme concrete. Există două tipuri de software: software
de sistem şi software de aplicaţii. Cea mai importantă componentă a software-ului este sistemul de operare, cel
care administrează şi controlează hardware-ul şi furnizează mediul de operare pentru toate programele.
Printr-o abordare ierarhica, un system hardware complex poate fi descris sub aspect comportamental, structural,
fizic si abstract pe mai multe niveluri:
Specificații de proiectare:
Este etajul in care se definesc parametrii de proiectare sistem. Astfel, se specifică scopul proiectării,modurile de
funcționare, tipurile de date şi funcții, etc. In acest scop se pot folosi editoare de texte.
Acesta este etajul in care se precizează blocurile funcționale ale sistemului de proiectat, intrările şi ieşirile in/din
sistem, forme de undă precum şi modul de comunicare dintre blocurile funcționale. In acest scop se pot folosi
editoare de text şi de forme de undă.
Proiectarea aceasta se mai numeşte şi microproiectare şi este faza in care proiectantul descrie implementarea
fiecărui bloc. Ea conține detalii despre maşina de tranziții de stări şi despre blocurile funcționale.
Codificarea RTL:
In această fază, microproiectarea este convertită in cod Verilog utilizand constructorii sintetizabili ai limbajului. Se
utilizează editoare HDL separate sau cele din cadrul “tool”-urilor folosite la proiectare.
Verificarea şi simularea:
Această etapă este procesul de verificare funcțională la orice nivel de abstractizare. Se utilizează simulatoare
adecvate. Pentru a testa dacă codul RTL indeplineşte cerințele funcționale din specificațiile de proiectare, trebuie să
se scrie programe de test (“testbench”) cu care se vaverifica funcțional codul RTL proiectat pe baza studiului
formelor de undă obținute in urma simulării. Se pot utiliza simulatoare/compilatoare separate sau incluse in diferite
“tool”‐uri de proiectare, precum Modelsim, ISE Xilinx, Veriwell, Icarus, etc. Pentru a verifica simularea
intarzierilor pentru sincronizare (atat la nivel de porți, cat şi la nivel de fire), dupa faza de sinteză, se mai realizeaza o
simulare la nivel de porti sau SDF (“Standard Delay Format”).
Sinteza:
Este procesul prin care “tool”-urile de sinteza precum XST, Ahdl sau Synplify iau codul RTL şi, ținand cont de
tehnologie şi constrangeri ca intrări, il mapează in primitive tehnologice la nivel de porți. “Tool”‐ul de sinteza, după
mapare, realizează şi o analiză minimală a intarzierilor pentru a verifica cerințele de sincronizare.
Plasarea şi rutarea:
Lista de legături la nivel de porți generată de “tool”‐ul de sinteză este luată şi importată in “tool”‐ul de
plasare şi rutare in format listă de legături Verilog. Mai intai toate porțile şi bistabilii sunt plasați iar semnalele de
ceas şi inițializare sunt rutate, după care fiecare bloc este rutat obținandu-se ca ieşire un fişier GDS utilizat la
fabricarea circuitelor ASIC (Application Specific Integrated Circuit).
Validare postfabricare:
O dată ce circuitul este gata de fabricație, este necesar ca el să fie pus in condiții de mediu real de funcționare şi
testat inainte de a fi lansat pe piață. Aceasta deoarece viteza de simulare a RTL este scăzută şi există posibilitatea
găsirii unor “bug”‐uri la testarea “wafer”‐elor de Siliciu.
9.Verilog HDL :
Modulele de test sunt folosite pentru verificarea funcționalității unui alt modul sintetizabil.
Un modul de test generic urmărește câteva reguli clare: (optional scrieti si aceste reguli)
pentru fiecare intrare a modulului de testat, se definește o variabilă tip reg, de aceeași dimensiune cu intrarea,
folosite pentru a genera stimuli pentru circuit;
pentru fiecare ieșire a modulului de testat, se definește o variabilă tip wire, de aceeași dimensiune cu ieșirea,
folosite pentru verificarea comportamentului (de obicei prin afișarea de forme de undă);
se instanțiază modulul de testat și se leagă variabilele definite anterior la intrările și ieșirile instanței;
se scrie un generator de stimuli (un bloc initial) în care se programeaza o secvență temporizată de tranziții
pentru intrări;
se folosește un software de simulare pentru a rula testul și a vedea formele de undă.
Registrele sunt utilizate uzual pentru implementarea ciruitelor secvențiale, și atunci ele definesc registre fizice, dar un
element de tip reg nu se translatează neapărat într-un registru fizic. Translatarea lui depinde de modul în care se utilizează.
Aplicatii:
- lossless data compression (e.g. zip)
- lossy data compression (MP3, JPEG)
- channel coding (noisy channel coding theorem)
În teoria informației, entropia Shannon sau entropia informațională măsoară incertitudinea asociată cu o variabilă aleatoare.
Această măsură indică și cantitatea de informație conținută într-un mesaj, exprimată de obicei în biți sau în biți pe simbol.
Când este exprimată în biți, ea reprezintă lungimea minimă pe care trebuie să o aibă un mesaj pentru a comunica
informația.
Ea mai reprezintă și o limită absolută a celei mai bune compresii fără pierderi aplicabilă unor date comunicate: tratând un
mesaj ca pe o serie de simboluri, cea mai scurtă reprezentare posibilă a mesajului are lungimea egală cu entropia Shannon
în biți pe simbol înmulțită cu numărul de simboluri din mesajul original.
11.Calculati informatia medie (in biti) avand in vedere evenimentele A1, A2,..., cu probalitatile de aparitie si codurile
asociate urmatoare (…).
Exemplu: 1-3 , 2-8, 3- 12, 4-15, 5-20, 6-40; unde primul numar reprezinta evenimentul/simbolul, al doilea reprezinta
frecventa de aparitie;
2)Se aleg primele 2 simboluri cu frecventa cea mai mica si se transforma in frunzele unui arbore a caror radacina va fi un
nod cu simbolul egal cu suma frecventelor celor 2 frunze;
Ex: Simbolul 1 si 2 vor avea radacina 11. Unde 11 este frecventa radacinii;
3) Din lista ordonata crescator se scot simbolurile folosite la pasul anterior care au devenit frunze si se adauga radacina
obtinuta in lista astfel incat ordinea frecventelor sa se pastreze;
5)Astfel s-a obtinut un arbore binar cu radacina. Pe ramurile arborelui incepand de la radacina se vor pune 0 (daca faci
stanga in jos ) sau 1 ( daca faci dreapta in jos);
Dimensiunea medie este egala cu : ∑ , unde n = numarul de evenimente; pi = probabilitatea pentru evenimentul i; t
= numarul de biti din codificarea evenimetului i ;
14.Exemple de coduri cu capacitate de detectie a erorilor: repetition codes, parity bits, cyclic redundancy check,
hash functions .
Repetition codes:
Parity bits:
Un bit “paritate” este adaugat mesajului binar astfel incat numarul de biti = 1 sa fie par sau impar in functie de metoda
aleasa. Totusi aceasta metoda nu este mereu corecta deoarece in urma unei erori si bitul de paritate poate fi corupt.
Hash Functions:
O functie hash este orice functie care poate fi folosita pentru a mapa datele de marimi arbitrare la date de marimi fixe.
Valorile returnate de o functie hash se numesc valori hash/cod hash sau simplu hashes. De regula functiile hash sunt
folosite in combinatie cu tabele hash( structure folosite pentru gasirea rapida a datelor) .
17.Descrierea unui sistem numeric prin partitionarea in sectiunea de date/executie si sectiunea de comanda.
18.Descrieti functionarea unui latch set-reset cu porti NOR.
Stare initiala: R = S = 0 ; Q = 1; !Q = 0
- reset → R = 1 → Q = 0; !Q = 1
- R = 0 → neschimbat, Q = 0 ; !Q = 1
- set → S = 1 → Q = 1; !Q = 0
- S = 0 → neschimbat, Q = 1; !Q = 0
SR
NAND
Latch
JK
D Latch
20.Descrieti modificarea starilor intr-un T flip-flop, JK flip-flop.
În funcţie de particularităţile sale constructive, tranzistoarele MOS se împart în două mari categorii: tranzistoare MOS cu
canal indus , tranzistoare MOS cu canal initial/existent.
Principiile de funcţionare ale celor două categorii de tranzistoare MOS cu canal indus, respectiv cele cu canal iniţial sunt
similar existand mici diferente de polaritati.
22.Functionarea inversorului.
Inversorul CMOS este circuitul integrat digital, care realizează funcţia logică de negare.
Simbol
Cand intrarea este high PMOS este inchis, NMOS este deschis si astfel se face legatura cu GND, deci iesirea este LOW.
Cand intrarea este LOW, PMOS se deschide, se face legatura cu VDD si atunci iesirea este HIGH.
23.Se da o poarta NAND / NOR cu doua intrari alcatuita din tranzistori. Indicati principiul de functionare.
24.Descrieti functionarea sistemelor sincrone si asincrone.
26.Indicati restrictia pentru drumul cel mai lung sau calea cea mai lenta.
27.Restrictia pentru drumul cel mai scurt sau calea cea mai rapida
Raspuns 26 + 27 :
SAU
30.FPGA. Definitie. Avantaje. Structura
39.Definiti urmatoarele notiuni: precizie, acuratete, gama, rezolutie, trunchiere, rotunjire, depasire.
40.Efectuati o scadere folosind complementul lui 2 (exemplu 11-2=9).
Pas 1 : Pentru numerele positive, acestea se transforma in echivalentul lor in binar(folosind numar minim de biti <=8). Ex:
11 – 1011 . Se mai adauga in stanga bitul de semn. Ex : 1110 - 10112 -> 010112
Pentru numerele negative, mai intai se transforma in binar modulul numarului folosind acelasi numar de biti ca primul
numar( in cazul nostrum 11 – fara bitul de semn); Ex: |-2| = 210 – 00102 , apoi se adauga bitul de semn ( fiind modul,deci
pozitiv, tot 0); 102 -> 000102 . Apoi se calculeaza complementul fata de doi al numarului -> Se inverseaza toti bitii (inclusiv
bitul de semn si se aduna 1 la final). Ex: inversare biti : 000102 -> 111012 ; +1 : 111012 + 12 = 111102 .
Ex: 010112 +
111102
(1)010012
(1) este carry bit si nu se ia in considerare la rezultatul final. Astfel ca 01001 2 este 910 . Se verifica exuatia.
Ex: 3*4 = 12 ; 3 = M ; 4=Q; Q0= cel mai din dreapta bit a lui Q ; Q-1 = 0 (mereu/initial) ; N = numarul de biti maxim dintre M si
Q ; A=02(nr de biti a lui A = N ) ;
Se repeta de N ori. Rezultatul final este AQ ; Ex : Daca A = 0001 si Q = 1001 ; AQ = 00011001 . Doar ca aceasta forma este
complementara. Pentru a obtine rezultatul corect , se inverseaza toti biti si se aduna 1 la final. (Rezultatului ii lipseste bitul
de semn)
Instructiunile sunt impartite in 3 tipuri : R, I, J . Fiecare instructiune incepe cu un opcode(cod de operare/operation code) de
6 biti. In plus pe langa opcode, instructiunile de tip R mai specifica si 3 registrii, un camp pentru valoarea de shiftare so im
camp pentru functie; instructiunile de tip I specifica 2 registrii si imediat dupa , o valoare de 16 bit.; instructiunile de tip J
adauga dupa opcode un jump target de 26 biti.
Codul propriu zis (programul) trebuie sa apara dupa directiva de asamblare ".text"
Toate structurile de stocat in memorie trebuie plasate dupa directiva de asamblare ".data"
Directiva .word rezerva spatiu in RAM pentru o singura variabila word pe 4-octeti (sau pentru mai multe astfel de variabile)
si atribuie acelei locatii RAM o valoare initiala (sau o lista de valori initiale separate prin virgula)
Ce reprezinta instructiunile: li, la, ls, lw, sw etc;
la: load address – copiaza adresa din ram a unei valori intr-un registru
sw: store word – continutul din registrul oferit este stocat la adresa specificata
http://logos.cs.uic.edu/366/notes/mips%20quick%20tutorial.htm
http://www.mrc.uidaho.edu/mrc/people/jff/digital/MIPSir.html
https://github.com/MIPT-ILab/mipt-mips/wiki/MIPS-Instruction-Set
beq $t0,$t1,target // ramificare catre tinta daca $t0 = $t1 beq = branch equals
blt $t0,$t1,target // ramificare catre tinta daca $t0 < $t1 blt = branch lower than
ble $t0,$t1,target // ramificare catre tinta daca $t0 <= $t1 ble= branch lower or equal
bgt $t0,$t1,target // ramificare catre tinta daca $t0 > $t1 bgt= branch greater than
bge $t0,$t1,target // ramificare catre tinta daca $t0 >= $t1 bge= branch greater or equal
bne $t0,$t1,target // ramificare catre tinta daca $t0 != $t1 bne = branch not equal