Vous êtes sur la page 1sur 284

CALCULATOARE

NUMERICE

CURS

Structura cursului
Scurt istoric privind dezvoltarea echipamentelor de prelucrare a
datelor;
Verilog HDL (hardware description language) - limbaj utilizat
pentru descrierea sistemelor numerice (calculatoare, componente
ale acestora, alte structuri care manipuleaza informatia numeric);
Notiuni de teoria informatiei;
Elemente introductive privind operarea si organizarea unui sistem
numeric; conventii de proiectare;
Intarzierea in circuite combinationale, sincronizarea elementelor de
memorare a informatiei, calculul perioadei ceasului;
Arii / Retele / Tablouri de porti programabile (Field Programmable
Gate Arrays - FPGAs)

Structura cursului
Modalitati de reprezentare a calculatoarelor : reprezentarea
functional/comportamentala; arhitectura calculatorului numeric;
reprezentarea structurala a unui calculator;
Bazele aritmetice ale calculatoarelor numerice: reprezentarea
informatiei numerice in calculatoare; erorile de calcul;
Operatii aritmetice : implementare, algoritmul lui Booth
Unitati de executie si comanda integrata (AMD 2901, AMD 2909)
Limbajul VHDL (Very High Speed Integrated Circuit (VHSIC)
Hardware Description Language)
Masini Virtuale si GPU

Scurt istoric

Etape in dezvoltarea dezvoltarea echipamentelor de calcul:


- etapa instrumentelor de calcul;
- etapa masinilor mecanice de calcul;
- etapa masinilor electromecanice de calcul;
- etapa masinilor electronice de calcul cu program memorat;
Evolutia generatiilor de calculatoare si a telecomunicatiilor
- generatiile I, II, III, IV, V
Niveluri de abstractizare in calculatoarele conventionale
- nivelul PMS (Processor, Memory, Switches)
- nivelul programelor
- nivelul proiectarii
- nivelul circuitelor

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

Modulele reprezinta parti hardware, care pot fi de la simple porti


pana la sisteme complete cum ar fi un microprocesor.

Verilog HDL

Verilog HDL

Notiuni de teoria informatiei


Definirea i masurarea informaiei;
Codificarea informaiei: coduri de lungime fixa, coduri de lungime
variabila si eficiena codificarii;
Detectarea i corectarea erorilor.

Domeniul ingineriei consider ca informaia inlatura/elimina


incertitudinea. Informaia este, in mod natural, ceea ce nu se poate
prezice.

In cadrul procesului de edificare a domeniului teoriei informatiei sau dat si precizat o serie de definitii formale privind continutul
informational al unui mesaj (Hartley - 1928, Kolmogorov - 1942,
Wiener - 1948, Shannon - 1949 ). Sub forma cea mai generala,
informatia este considerata ca o inlaturare/eliminare a incertitudinii.

Notiuni de teoria informatiei

Notiuni de teoria informatiei

Elemente introductive priving operarea si


organizarea unui sistem numeric
Elementele calculatorului dupa principiile lui von Neumann;
Exemplu: algoritmul MAX

Conventii de proiectare
Transferurile ntre registre
Componente combinaionale
Componente secveniale

Principiile lui J. von Neumann

Intarzierea in circuite combinationale,


sincronizarea elementelor de memorare a
informatiei, calculul perioadei ceasului

NTRZIERILE N CIRCUITELE COMBINAIONALE


- Tehnologia CMOS
- Calculul ntrzierilor

CONVENII PENTRU SINCRONIZAREA SISTEMELOR


NUMERICE

ELEMENTE DE MEMORARE CU INTRARE DE CEAS

CALCULUL PERIOADEI CEASULUI N CONDIIILE COMENZII


PE FRONT

COMPONENTELE UNITII DE EXECUIE

Arii / Retele / Tablouri de porti programabile


(Field Programmable Gate Arrays - FPGAs)

FPGA definire

Structura ariilor de pori programabile

Interconectarea blocurilor

FPGA organizare structural

Fluxul proiectrii cu circuite FPGA

Modalitati de reprezentare a calculatoarelor

Reprezentarea funcional/comportamental

Arhitectura calculatorului numeric

Reprezentarea structural a unui calculator

Instruciunile calculatorului

Modalitati de reprezentare a calculatoarelor

Bazele aritmetice ale calculatoarelor


numerice

Sisteme de numeraie

Reprezentarea informaiei numerice n calculatoare

Terminologia folosit n legtur cu erorile de calcul

Reprezentarea numerelor reale

Standardul IEEE 754 pentru reprezentarea numerelor n virgul


mobil

Coduri alfanumerice

Coduri detectoare de erori

Operatii aritmetice

Procesorul aritmetic
Operaii aritmetice n virgul fix:
- Sumatoare performante
- Implementarea nmulirii
- Algoritmul lui Booth

Operatii aritmetice

Unitati de executie si comanda integrata

Uniti de execuie integrate (AMD 2901)

Uniti de comand integrate (AMD 2909)

Microprogramare

Limbajul VHDL

Concepte de baza ale limbajului

Metodologii de proiectare

Exemple coduri VHDL

Masini Virtuale
Graphics Processing Units GPU

Scurt istoric
Un calculator modern reprezint un sistem complex, care
nglobeaz n construcia sa tehnologii diverse: electronice,
magnetice, electromecanice, electrono-optice etc.

Evoluia calculatoarelor este strns legat de progresele


nregistrate de aceste tehnologii.

Calculatoarele moderne reprezint rezultatul unui ndelungat


proces de cutri ale unor mijloace tehnice adecvate pentru
mecanizarea i automatizarea operaiilor de calcul. n evoluia
mijloacelor de tehnic de calcul se pot evidenia mai multe etape.

Generatii de calculatoare

Generatii de calculatoare

Generatii de calculatoare

Generatii de calculatoare

Generatii de calculatoare

* ISA instruction set architecture


* RTL register-transfer level

Niveluri de abstractizare

Niveluri de abstractizare

Niveluri de abstractizare

Verilog HDL
- curs 2, 3 -

Verilog HDL
- Istoric;
- Structura unui program;
- Conventii lexicale, tipuri de date;
- Constructii de control (for, while) si procedurale (initial,
always);
- Task-uri si functii;
- Controlul intarzierii;
- Exemple;

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

Modulele reprezinta parti hardware, care pot fi de la simple porti


pana la sisteme complete cum ar fi un microprocesor.

Verilog HDL Repere istorice


- Verilog : soft dezvoltat pentru a combina diferite niveluri
de simulare;
- 1980 : existau simulatoare la nivel de comutare, porti sau
functionale; majoritatea erau limbaje secventiale
dificultati in modelarea concurentei circuitelor digitale;
- 1984 : limbajul Verilog - inventat de Phil Morby de la
Automated Integrated Design Systems (redenuminta
Gateway Design Automation - GDA)
- 1987 : extins si redenumit Verilog-XL
- imprumuta elemente de la limbajele existente:
- concurenta de la Modula si Simula;
- sintaxa de la C;
- nivel de abstractizare de la HiLo

Verilog HDL Repere istorice


- 1987 : GDA cumparata de Cadence Verilog ajunge in
domeniul public alte companii dezvolta tool-uri laternative,
ceea ce ajuta la popularizarea limbajului;
- In paralel, in 1981, Departamentul American al Apararii
sponsorizeaza un workshop 1983 se dezvolta VSIC HDL
(Very High Speed Integrated Circuits HDL, VHDL)
1987devine standard IEEE 1076
- 1991: Cadence organizeaza Open Verilog International (OVI)
- 1995: Verilog-HDL devine stnadard comercial IEEE-1364,
referit ca Verilog-95
- 2001: apare Verilog-2001
- 2005: Verilog-2005, System Verilog; prin includerea suportului
de modelare analogic si mixt devine Verilog AMS

Verilog HDL Stiluri de proiectare


Verilog permite ca la orice alt limbaj de descriere hardware,
utilizarea ambelor metodologii: bottom-up si top-down
Bottom-up: metoda traditionala; proiectul este realizat la nivel de
porti dificultate in a reprezenta structuri de milione de
tranzistori se grupeaza elementele la macronivel

Verilog HDL Stiluri de proiectare


Top-down: metoda actuala; se pleaca de la specificatiile de
system si se detaliaza in jos pana la componentele de sistem;
Exista avantaje in ceea ce priveste schimbarea tehnilogiilor,
proiectarea structurata.

Verilog HDL Reprezentari


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

Verilog HDL Fluxul de proiectare

Verilog HDL Fluxul de proiectare


Specificaiideproiectare:
Este etajul n care se definesc parametrii de proiectare
sistem. Astfel, se specific scopul proiectrii, modurile de func io
nare, tipurile de date i funcii, etc. n acest scop se pot folosi edi
toare de texte.
Proiectarealanivelnalt:
Acesta este etajul n care se precizeaz blocurile func ionale
ale sistemului de proiectat, intrrile i ieirile n/din sistem,
forme de und precum i modul de comunicare dintre blocurile
funcionale. n acest scop se pot folosi editoare de text i de form
e de und.

Verilog HDL Fluxul de proiectare


Proiectarealanivelsczut:
Proiectarea aceasta se mai numete i microproiectare i
este faza n care proiectantul descrie implementarea fiecrui
bloc. Ea conine detalii despre maina de tranziii de stri
i despre blocurile funcionale.
CodificareaRTL:
n aceast faz, microproiectarea este convertit n cod Verilog
utiliznd constructorii sintetizabili ai limbajului. Se utilizeaz edito
are HDL separate sau cele din cadrul tool-urilor folosite
la proiectare.

Verilog HDL Fluxul de proiectare


Verificareaisimularea:
Aceast etap este procesul de verificare funcional la orice
nivel de abstractizare. Se utilizeaz simulatoare adecvate. Pentr
u a testa dac codul RTL ndeplinete cerinele funcionale din s
pecificaiile de proiectare, trebuie s se scrie programe de test (
testbench) cu care se va verifica funcional codul RTL proiectat
pe baza studiului formelor de und obinute n urma
simulrii. Se pot utiliza simulatoare/compilatoare separate
sau incluse n diferite tooluri de proiectare, precum
Modelsim, ISE Xilinx, Veriwell, Icarus, etc. Pentru a verifica simul
area ntrzierilor pentru sincronizare (att la nivel de por i, ct i l
a nivel de fire),
Dupa faza de sintez, se mai realizeaza o simulare la nivel de
porti sau SDF (Standard Delay Format).

Verilog HDL Fluxul de proiectare


Sinteza:
Este procesul prin care tool-urile de sinteza precum
XST, Ahdl sau Synplify iau codul RTL i, innd cont de
tehnologie i constrngeri ca intrri, l mapeaz n primitive
tehnologice la nivel de pori. Toolul de sinteza, dup
mapare, realizeaz i o analiz minimal a ntrzierilor
pentru a verifica cerinele de sincronizare.
Plasareairutarea:
Lista de legturi la nivel de pori generat de tool
ul de sintez este luat i importat n toolul de plasare i
rutare n format list de legturi Verilog. Mai nti toate
porile i bistabilii sunt plasai iar semnalele de ceas i iniializare
sunt rutate, dup care fiecare bloc este rutat obinndu-se
ca ieire un fiier GDS utilizat la fabricarea circuitelor ASIC
(Application Specific Integrated Circuit).

Verilog HDL Fluxul de proiectare

Validarepostfabricare:
O dat ce circuitul este gata de fabricaie, este necesar
ca el s fie pus n condiii de mediu real de func ionare i
testat nainte de a fi lansat pe pia. Aceasta deoarece
viteza de simulare a RTL este sczut i exist posibilitatea gsi
rii unor buguri la testarea waferelor de Siliciu.

Verilog HDL Sintaxa si semantica


Conventiilexicale:
Sunt similare cu cele ale limbajului C. Verilog este un
limbaj casesensitive n care toate cuvintele
cheie sunt cu litere mici.
Spaiile albe pot conine caractere precum: spaii (/b blank), c
aractere tab (/t), caractere linie nou (/n), caractere sfrit de
linie (Carriage Return <CR>), sfrit de paragraf i sfrit de
fiier (EOF End Of File).
Aceste caractere sunt ignorate cu excepia cnd servesc la
separarea altor convenii sau n cadrul irurilor.

Verilog HDL Sintaxa si semantica


Comentarii
Exist dou moduri de a introduce comentarii:
- Comentarii pe o singur linie, care ncep cu // i sfresc cu
<CR>
- Comentarii pe linii multiple, care ncep cu /* i sfresc cu */
Identificatori
- Identificatorii sunt nume date pentru un obiect, precum
un registru, o funcie sau un modul, astfel nct s poat
fi referit din alte pri ale descrierii RTL.
-Identificatorii trebuie s nceap cu un caracter alfabetic
sau caracterul underscore (_). Ei pot conine caractere
alfabetice, caractere numerice, _ i $. De asemenea, ei
pot avea o lungime de pn la 1024 caractere.

Verilog HDL Structura unui program


Structuraunuiprogramesteurmatoarea:
- Modul main (de test);
- Modul sau module top-level;
- Submodul 1;
....
- Submodul n;
ProgramHelloWorld:

Verilog HDL

Verilog HDL

Verilog HDL

Verilog HDL

Verilog HDL

Verilog HDL

Verilog HDL

Verilog HDL

Verilog HDL Tipuri de date fizice

Verilog HDL Tipuri de date fizice

Obiectele reg si wire pot lua


urmatoarele valori:
- 0 valoarea logica zero / fals
- 1 valoarea logica 1 / adevarat
- x valoarea logica necunoscuta
- z impedanta ridicata a unei porti
tristate

Verilog HDL Tipuri de date fizice

Verilog HDL Tipuri de date

Verilog HDL Tipuri de date abstracte

Verilog HDL Tipuri de date abstracte

Verilog HDL Constructii de control


1. Selectia

Verilog HDL Constructii de control


2. Repetitia instructiunile for, while, repeat

Verilog HDL Alte instructiuni

Verilog HDL Alte instructiuni

Verilog HDL initial / always

Verilog HDL Exemple

www.iverilog.com

Verilog HDL task-uri si functii


O funcie Verilog:
- asemanatoare cu un task, cu putine diferente:
- functia nu poate avea decat o singura iesire;
- functiile nu pot contine intarzieri;
- o functie incepe cu cuvantul cheie function si se termina cu
endfunction;
- functiile sunt definite in modulul in care sunt utilizate; este
posibil ca functiile sa fie definite in fisiere separate si sa se
foloseasca directiva de compilare include

Verilog HDL functii


Sintaxa unei functii:

Verilog HDL functii


Caracteristici:
- functiile trebuie sa aibe cel putin o intrare si nu pot avea
iesiri sau inout-uri;
- nu pot contine sincronizari de tip tip posedge, negedge,
#,@ sau wait functiile se executa cu intarziere zero;
- variabilele declarate intr-o functie sunt variabile locale;
- functiile pot manipula si variabile globale : in acest caz,
variabilele sunt definite inaintea functiei, in modulul in care
se defineste functia;
- functiile pot apela alte functii insa nu si task-uri;
- functiile pot fi utilizate pentru a modela doar logica
combinationala;

Verilog HDL functii

Verilog HDL functii

Verilog HDL Controlul sincronizarii

Verilog HDL Controlul sincronizarii

Verilog HDL Controlul sincronizarii

Verilog HDL Circuite combinationale


- descriere structurala / modul // NOT gate
module NOT(A, F);
input A;
output F;
reg F;
// remaining details omitted
endmodule
// 2-input AND gate
module AND2(A, B, F);
input A;
input B;
output F;
reg F;
// remaining details omitted
endmodule

// 2-input OR2 gate


module OR2(A, B, F);
input A;
input B;
output F;
reg F;
// remaining details omitted
endmodule
// Circuit1
module Circuit1(X, Y, Z, Fout);
endmodule

Verilog HDL Circuite combinationale


- descriere structurala / modul // Circuit1
module Circuit1(X, Y, Z, Fout);
input X, Y, Z;
output Fout;
reg Fout;
endmodule

Verilog HDL Circuite combinationale


- descriere structurala / modul // Circuit1
module Circuit1(X, Y, Z, Fout);
input X, Y, Z;
output Fout;
reg Fout;
AND2 AND2_1();
NOT NOT_1();
OR2 OR2_1();
endmodule

Verilog HDL Circuite combinationale


- descriere structurala / modul // Circuit1
module Circuit1(X, Y, Z, Fout);
input X, Y, Z;
output Fout;
reg Fout;
wire w1, w2;
AND2 AND2_1();
NOT NOT_1();
OR2 OR2_1();
endmodule

Verilog HDL Circuite combinationale


- descriere structurala / modul -

// Circuit1
module Circuit1(X, Y, Z, Fout);
input X, Y, Z;
output Fout;
reg Fout;
wire w1, w2;
AND2 AND2_1(X, Y, w1);
NOT NOT_1(Z, w2);
OR2 OR2_1(w1, w2, Fout);
endmodule

Verilog HDL Circuite combinationale


- descriere structurala / testbench -

module Testbench;
endmodule

module Testbench;
reg X_t, Y_t, Z_t;
wire Fout_t;
endmodule

Verilog HDL Circuite combinationale


- descriere structurala / testbench -

module Testbench;
reg X_t, Y_t, Z_t;
wire Fout_t;
Circuit1 Circuit1_1(X_t, Y_t,
Z_t, Fout_t);
endmodule

Verilog HDL Circuite combinationale


- descriere structurala / testbench -

module Testbench;
reg X_t, Y_t, Z_t;
wire Fout_t;
Circuit1 Circuit1_1(X_t, Y_t,
Z_t, Fout_t);
initial
begin
//case 0
X_t <= 0; Y_t <= 0; Z_t <= 0;
end
endmodule

Verilog HDL Circuite combinationale


- descriere structurala / testbench -

module Testbench;
reg X_t, Y_t, Z_t;
wire Fout_t;
Circuit1 Circuit1_1(X_t, Y_t,
Z_t, Fout_t);
initial
begin
//case 0
X_t <= 0; Y_t <= 0; Z_t <= 0;
#1 $display("Fout_t = %b",
Fout_t);
end
endmodule

Verilog HDL Circuite combinationale


- descriere structurala / testbench module Testbench;
reg X_t, Y_t, Z_t;
wire Fout_t;
Circuit1 Circuit1_1(X_t, Y_t,
Z_t, Fout_t);
initial
begin
//case 0
X_t <= 0; Y_t <= 0; Z_t <= 0;
#1 $display("Fout_t = %b",
Fout_t);
//case 1
X_t <= 0; Y_t <= 0; Z_t <= 1;
#1 $display("Fout_t = %b",
Fout_t);
end
endmodule

Verilog HDL Circuite combinationale


- descriere comportamentala / modul // Circuit1_BHV
module Circuit1_BHV(X, Y, Z, Fout);
endmodule

// Circuit1_BHV
module Circuit1_BHV(X, Y, Z, Fout);
input X, Y, Z;
output Fout;
reg Fout;
endmodule

Verilog HDL Circuite combinationale


- descriere comportamentala / modul -

// Circuit1_BHV
module Circuit1_BHV(X, Y, Z, Fout);
input X, Y, Z;
output Fout;
reg Fout;
always @ (X or Y or Z)
begin
F = (X & Y) | ~Z;
end
endmodule

Verilog HDL Circuite combinationale


- descriere comportamentala / testbench module Testbench;
endmodule
module Testbench;
reg X_t, Y_t, Z_t;
wire Fout_t;
endmodule
module Testbench;
reg X_t, Y_t, Z_t;
wire Fout_t;
Circuit1 Circuit1_1(X_t, Y_t,
Z_t, Fout_t);
endmodule

Verilog HDL Circuite combinationale


- descriere comportamentala / testbench module Testbench;
reg X_t, Y_t, Z_t;
wire Fout_t;
Circuit1 Circuit1_1(X_t, Y_t, Z_t,
Fout_t);
initial
begin
//case 0
X_t <= 0; Y_t <= 0; Z_t <= 0;
#1 $display("Fout_t = %b", Fout_t);
//case 1
X_t <= 0; Y_t <= 0; Z_t <= 1;
#1 $display("Fout_t = %b", Fout_t);
end
endmodule

Teoria informatiei
- curs 4 -

Teoria informatiei istoric, aplicatii


- A fost dezvoltata de ClaudeE.Shanon si avand ca scop aflarea limitelor
fundamentale cu privire la procesareasemnalelor,comprimarea,stocareasi
comunicareadatelor;
- O modalitate de masura a informatiei este entropia, prin care se evalueaza
incertitudinea in prezicerea unei valori corespunzatoare unei variabile aleatoare;
Exemplu: specificarea rezultatului la aruncarea unei monezi reprezinta infomatie
mai putina decat specificarea rezultatului la aruncarea unui zar;
- Aplicatii:
- lossless data compression (e.g. zip)
- lossy data compression (MP3, JPEG)
- channel coding (noisy channel coding theorem)

Teoria informatiei istoric, aplicatii


- Conceptele de baza se regasesc in comunicarea umana;
1). Cuvintele mai des folosite (un, o , the etc) ar trebui sa fie mai scurte
decat cuvintele care nu sunt atat de des folosite (imputernicire, mecanism
etc); aceasta repartitie a lungimilor cuvintelor in functie de frecventa de aparitie
sta la baza compresiei de date si reprezinta aspectul esential din source
coding;
2). Al doilea aspect este legat de fpatul ca, in prezenta zgomotului, mesajul
trebuie sa fie rectionat cu cat mai mare acuratete; includerea unui grad suficient
de robustete in transmisia mesajelor este esential in comunicare se realizeaza
in channelcoding;
Observatie:
- in teoria informatiei nu se discuta importanta sau semnitificatia mesajelor
mesajelor; spre exemplu ma duc sa ma plimb sau cheama o ambulanta sunt
mesaje de marimi similare, insa cu importanta diferita.
- asadar, nu se urmareste calitatea mesajelor, cat cantitatea si capacitatea
de a intelege mesajele;

Teoria informatiei istoric, aplicatii


- Fondata de Shanon in 1948 prin lucrarea "A Mathematical Theory of
Communication"
- Paradigma centrala: transferul informatiei printr-un canal cu zgomot
- Rezultatele fundamentale ale teoriei:
- sourcecodingtheorem : numarul de biti necesar pentru a reprezenta
rezultatul unui eveniment incert este dat de entropie;
- noisy-channelcodingtheorem : comunicatie robusta este posibila pe
canale cu zgomot, daca rata comunicarii se face sub un anumit prag, numit
capacitate a canalului;
In prezent, teoria informatiei este strans legata si alte discipline:
- sisteme adaptative;
- inteligenta artificiala;
- sisteme complexe;
- cibernetica ;
- informatica etc;

Notiuni de teoria informatiei


Definirea i masurarea informaiei;
Codificarea informaiei: coduri de lungime fixa, coduri de lungime
variabila si eficiena codificarii;
Detectarea i corectarea erorilor.

Domeniul ingineriei consider ca informaia inlatura/elimina


incertitudinea. Informaia este, in mod natural, ceea ce nu se poate
prezice.

In cadrul procesului de edificare a domeniului teoriei informatiei sau dat si precizat o serie de definitii formale privind continutul
informational al unui mesaj (Hartley - 1928, Kolmogorov - 1942,
Wiener - 1948, Shannon - 1949 ). Sub forma cea mai generala,
informatia este considerata ca o inlaturare/eliminare a incertitudinii.

Notiuni de teoria informatiei

Notiuni de teoria informatiei

Notiuni de teoria informatiei

Notiuni de teoria informatiei

Notiuni de teoria informatiei

Notiuni de teoria informatiei

Notiuni de teoria informatiei

Codificarea informatiei

Codificarea cu lungime fixa

Codificarea cu lungime fixa

Codificarea cu lungime fixa


Codificarea in bazele 8 si 16

Codificarea cu lungime variabila

Codificarea cu lungime variabila

Codificarea cu lungime variabila

Codificarea cu lungime variabila

Eficienta codificarii

Detectia si corectia erorilor - detectia


- Se realizeaza de obicei prin utilizarea functiilor de tip hash sau
printr-un algoritm de checksum;
- Exista o varietate larga a functiilor de tip hash; cateva sunt
foarte raspandite pe motivul simplitatii lor cat si pentru fatul ca
sunt potrivite unor probleme specifice (e.g. cyclic-redundancy
check pentru erori de tip burst)
- Random error-correcting codes pot fi o alternativa la functiile de
tip hash cand se doreste ca detectia unui numar minim de erori
sa fie garantata;
- Exemple de coduri cu capictate de detectie a erorilor: repetition
codes, parity bits, cyclic redundancy check, cryptographic hash
fucntions

Detectia si corectia erorilor - detectia


- Repetitioncodes:
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.
-Paritybits:
Un bit paritate este adaugat mesajului binar; se pot detecta
erori pe un numar impar de biti (1,3,5, ); la un nr. par de erori
bitul paritate va fi calcualt corect.
- Cyclicredundancycheck:
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;

Detectia si corectia erorilor - detectia


- Two-out-five:
Este o schema de codare care utilizeaza 5 biti si in care se
folosesc fix 3 biti 0 si 2 biti 1. Exista 10 variante prin care se
se pot reprezenta cifrele 0-9. Se pot detecta erorile de tip singlebit, sau nr. impar de bits si unele erori cu nr. pare de biti (ex.
Modificarea simultana a celor doi biti 1).
-Hammingcodes:
Prin adaugarea mai multor biti de tip error-correcting se pot
identifica pozitiile bitilor cu erori. Ex: pentru un cod de 7-biti, o
secventa error-correcting pe 3 biti poate localiza si pozitia
erorilor de tip single-bit

Detectarea si corectarea erorilor

Detectarea si corectarea erorilor

Detectarea si corectarea erorilor

Schema de codificare cu 5 biti a erorilor

Aplicatii ale teoriei codurilor

Operarea si organizarea unui sistem numeric.


Conventii de proiectare.
CURS 4

Operarea si organizarea unui sistem numeric.


Conventii de proiectare.

Operarea si organizarea unui sistem numeric.

Operarea si organizarea unui sistem numeric.

Operarea si organizarea unui sistem numeric.

Operarea si organizarea unui sistem numeric.

Operarea si organizarea unui sistem numeric.

Partitionarea unui sistem numeric

Algoritmul MAX

Algoritmul MAX

Algoritmul MAX

Algoritmul MAX

Conventii de proiectare

Circuite bistabile : latches / flip-flops


- Circuit care are doua stari stabile pentru a stoca
informatia;
- Element de stocare de baza in logica secventiala;
- Schimbarea starii se face pe unul sau mai multe
canale de intrare, avand una sau doua iesiri;
Terminologie:
- simple (transparente sau opace) latches (zavoare)
level-sensitive
- clocked (synchronous / edge triggered) flip-flops
edge sensitive

Latches tip set-reset simple


- Exemple: SR NOR latch, SR NAND latch, JK latch
SR NOR latch:

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

Latches tip set-reset simple


SR NAND latch:

JK latch:
- este un latch SR, in care
se inverseaza valoarea Q
pentru input 11

Gated Latches. Transparenta conditionala.


- Zavoarele (latches) sunt elemente transparente : o
schimbare a semnalului la input cauzeaza imediat o
modificare la output;
- Cand mai multe transparent latches se succed,
semnalele sunt transmise prin toate in acelasi timp;
- Prin elemente de logica aditionala, se pot produce
non-transparent (opaque) latches;
- Se pot asambla scheme master-slave folosind un
latch de tip transparent-high cu unul de tip transparentlow;

Gated SR Latch

E = high semnalele pot trece


transparent
E = low latch closed (opaque)
ramane in starea
curenta

D latch
- D-latch = data, delay latch
Output-ul depinde de ceas:
- clock high : inputul trece in output
- clock low : se mentine output
- Level sensitive and transparent

D latch
- D-latch = data, delay latch
Output-ul depinde de ceas:
- clock high : inputul trece in output
- clock low : se mentine output
- Level sensitive and transparent

D flip-flop
- Inputul depinde de schimbarea frontului de ceas
- front crescator : input output
- altfel : isi pastreaza outputul
- Elementele de tip flip-flop functioneaza pe front
crescator, descrescator sau in scheme de tip masterslave

D latches / flip-flops
Latches

Flip-flops

Master-slave edge triggered D flip-flop


- Realizat prin conectarea a doua elemente de tip gated
D latch;
- al doilea latch in serie (slave) isi modifica outputul ca
raspuns al primului latch (master)

T flip-flop
- T = high flip-flop isi modifica starea (toggle)

JK flip-flop
- Este un flip-flop de tip SR (J=Set, K=Reset), la care se
adauga conditia S=R=1, interpretata ca o comanda de
tip toggle;
- J = 1, K = 0 set flip-flop;
- J = 0, K = 1 reset flip-flop;
- J = K = 1 toggle flip-flop;
- J = K = 0 mentine starea;
- K este complementul lui J D flip-flop
- K = J T flip-flop
JK flip-flop este universal (poate fi configurat in SR, D,
T flip-flop)

JK flip-flop

D and JK flip-flops alte exemple

Positive front!

Negative front!

Verilog descriptions

Verilog descriptions

Verilog descriptions

Intarzierea in circuite combinationale.


Sincronizarea elementelor de memorare a informatiei.
Calculul perioadei ceasului
CURS 5

Subiecte abordate

Intarzierea in circuite combinationale

Elementele flip-flop funcitoneaza corect daca inputul nu se


schimba o perioada de timp inainte (t-setup) si dupa (t-hold)
schimbarea frontului de ceas

Clock skew

Timpul necesar propagarii unui semnal de la D2 la D3 este


t-cQ + t-logic
In plus, semnalul trebuie mentinut la D3 pe durata t-setup

Pentru a preveni setup violations

Pentru ca D2 sa trimita semnalul catre Q2 trebuie lasat


neschimbat pe o perioada t-hold dupa frontul de ceas.
Astfel, in acest timp un semnal de la D1 nu ar trebui sa treaca
prin Comb1 si sa ajunga la D2.

Arii / Retele / Tablouri de Porti Programabile


Field Programmable Gate Arrays - FPGAs
CURS 7

Reprezentarea calculatoarelor
CURS 8

Bazele aritmetice ale calculatoarelor numerice


CURS 9

Operatii aritmetice
CURS 10

Vous aimerez peut-être aussi