Sunteți pe pagina 1din 24

1. Precizati nivelurile de abstractizare in calculatoarele conventionale.

Nivelul PMS( processor, memory, switches)


Niv. Programelor (L2) – software
Niv.Proiectarii (L1) – set instructiuni
Niv.Circuitelor (L0) – hardware

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.

3. Ce reprezinta Verilog HDL?

Verilog HDL reprezintă un limbaj utilizat pentru descrierea sistemelor


numerice. Sistemele numerice pot fi calculatoare, componenete
ale acestora sau alte structuri care manipuleaza informaţie
numeric.
Limbajul Verilog descrie un sistem numeric ca un set de module.
Fiecare dintre aceste module are o interfata cu alte module, pentru a
specifica maniera in care sunt interconectate. Modulele opereaza
concurent.
4. Descrieti stilul de proiectare bottom-up / top-down.

Bottom-up: metoda traditionala; proiectul este realizat la nivel de


porti → dificultate in a reprezenta structuri de milioane de
tranzistori → se grupeaza elementele la macronivel

Top-down: metoda actuala; se pleaca de la specificatiile de sistem


si se detaliaza in jos pana la componentele de sistem;
Exista avantaje in ceea ce priveste schimbarea tehnologiilor,
proiectarea structurata.
5. Indicati modalitatile de reprezentare hardware.

Printr-o abordare ierarhica, un system hardware complex poate fi descris sub aspect comportamental, structural,
fizic si abstract pe mai multe niveluri:

6.Descrieti nivelurile ierarhice in modalitatea de reprezentare comportamentala, structurala, fizica, abstracta.


7.Descrieti schematic fluxul de proiectare Verilog HDL.
8.Ce presupune etapa de specificatii de proiectare / proiectare la nivel inalt / proiectarea la nivel scazut /
codificare RTL / verificare si simulare / sinteza / plasare si rutare / validare postfabricare.

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.

Proiectarea la nivel înalt:

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 la nivel scăzut:

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 :

A.Indicati structura unui cod; semnificatia blocurilor initial si always:

- Modul main (de test);


- Modul sau module top-level;
- Submodul 1;
………………
- Submodul n;

B.Ce reprezinta un modul de test;

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ă.

C. Semnificatia simbolului # ; functiile pot contine intarzieri?

- simbolul # reprezinta un control al intarzierii; așteaptă trecerea unor unități de timp

- functiile nu pot contine intarzieri;


D.Cand folosim registrii (reg) si cand folosim fire (wire) ?
Firele sunt utilizate pentru legături între module și pentru asignarea de rezultate parțiale în circuite combinaționale.

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ă.

10.Aplicatii ale teoriei informatiei. Definiti entropia lui Shanon.

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 (…).

unde b este 2; xi = evenimetul Ai ; p(xi) = prob de aparitie; n= numarul


de evenimente;

12.Descrieti arborele lui Huffman pentru secventa de evenimente 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;

1)Se ordoneaza evenimentele/simbolurile crescator dupa 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;

4) Se repeat pasii 2 si 3 pana cand in lista ramane un singur nod;

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);

13.Stabiliti dimensiunea medie a codului pentru secventa de evenimente urmatoare (…).

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:

Ex.: 1101 este replicat de 3 ori → 110111011101


Daca se receptioneaza un cod cu un bit modificat intruna din secvente, eroarea poate fi detectata si corectata.

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.

Cyclic redundancy check:


Este bazat pe o functie tip hash non-secure; se imparte un polinom fixat la polinoame generate de datele de input, iar restul
devine rezultat;

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) .

15.Operarea si organizarea si unui sistem numeric. Principiile lui von Neumann.


16.Ce este un algoritm? Descrieti principalele elemente ale unui algoritm.

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

19.Descrieti sistemele de tip latch SR cu porti NAND, JK latch, D latch.

SR
NAND
Latch

JK

D Latch
20.Descrieti modificarea starilor intr-un T flip-flop, JK flip-flop.

21.Functionarea unui tranzistor PMOS/CMOS, cu canal existent/indus.

Î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.

25.Diagrama temporala a unui latch / bistabil.

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 :

28.Ce reprezinta notiunea de clock skew / jitter.

29.Exemple de retele de distributie a ceasului.

SAU
30.FPGA. Definitie. Avantaje. Structura

31.Prin ce difera familiile de FPGA-uri ?


32.FPGA – tipuri de conexiuni, temporare si permanente.
33.FPGA – Caracteristicile arhitecturilor de interconectare (Xilinx, Actel, Altera).

34.Prezentati reprezentarea functional/comportamentala a unui calculator.


35.Arhitectura procesorului Intel 8080. Registrii cu caracter specializat.
36.Structura generala a unui sistem de calcul. Unitatea de executie. Unitatea de comanda.
37.Instructiuni. Categorii. Campuri. Tipuri de adresare.
38.Reprezentarea normalizata in cazul numerelor reale.

39.Definiti urmatoarele notiuni: precizie, acuratete, gama, rezolutie, trunchiere, rotunjire, depasire.
40.Efectuati o scadere folosind complementul lui 2 (exemplu 11-2=9).

11 + (-2) = 9; Bit de semn : 0 = pozitiv(+), 1 = negative(-)

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 .

Pas 2 : Se aduna cele doua numere binare obtinue ;

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.

41.Efectuati o inmultire folosind algoritmul lui Booth.

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 ) ;

Conditii : 1) Q0 =Q-1 -> shiftare la dreapta (shift)

2) Q0=1 , Q-1=0 -> A= A – M ; shift

3) Q0=0 , Q-1=2 -> A= A+M ; shift

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)

42.Limbaje de asamblare: MIPS

Structura unei instructiuni;

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.

Structura unui cod MIPS;

Codul propriu zis (programul) trebuie sa apara dupa directiva de asamblare ".text"

main este o functie globala (.globl main)

Eticheta "main" este punctul de incepere a executiei programului (main: )

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;

li: load immediate – incarca valoarea imediat intr-o variabila/registru

la: load address – copiaza adresa din ram a unei valori intr-un registru

ls: load single

lb: load byte – se incarca un singur byte in registru de la adresa specificata

lw: load word - un word se incarca in registru de la adresa specificata

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

Instructiuni de salt conditionat: ble, bge etc;

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