Sunteți pe pagina 1din 29

ARHITECTURA SISTEMELOR DE CALCUL

Curs 1

INFORMAII ADMINISTRATIVE

Organizare disciplin
cod: CTI.DID.207
3 ore curs, 3 ore laborator
6 credite, evaluare final: examen

Titular curs

.l. dr. ing. Andrei STAN, andreis78@yahoo.com

Titulari laborator
.l. dr. ing. Andrei STAN
.l. dr. ing. George VIERIU, vieriu_george@yahoo.com.au

Platforma Moodle a Departamentului de Calculatoare

https://moodle.cti.ace.tuiasi.ro/

Plan de desfurare al disciplinei

Folosii platforma Moodle

DE CE ASC?
http://bit.ly/1otPod7
http://bit.ly/1mNDJV7

Visual Studio demo limbaj asamblare

NIVELE DE ABSTRACTIZARE
Probleme
Specificare clar, fr ambiguitate
Algoritmi
Secven finit de operaii ce pot fi executate de un calculator

Arhitectura
Sistemelor de
Calcul

Limbaje de programare / programe


Limbaje de nivel nalt sau de nivel sczut; productivitate vs eficien

Arhitecturi (ISA Instruction set architecture)


Interfaa dintre programe i hardware (Macroarhitectur)
Microarhitecturi
Implementarea ISA

Circuite logice
CBB-D, NAND, NOR,
Dispozitive
Tranzistoare: CMOS, Bipolar,

LIMBAJUL VERILOG HDL

Abordare pragmatic:

Prezentare aspecte eseniale


Permite acomodarea cu limbajul Verilog
Permite scrierea imediat de cod pentru experimentare
Dezvoltatorul capt ncredere
Uneori prezentare incomplet

Amnarea prezentrii aspectelor avansate ale limbajului

Este mai facil dup acomodare

LIMBAJUL VERILOG HDL

Descrierea de sisteme digitale se poate face prin:

Scheme cu pori logice sau tranzistoare

Problem: Complexitatea!

Textual
Avantaj: Prelucrare automat
Prin
limbaje de descriere hardware (HDL Hardware
Description Language)
Verilog (Very-logic), VHDL
Realizarea sistemului cu cost minim , ntr-un timp scurt
Evitarea erorilor de proiectare

HDL nu este un limbaj de programare pentru c


nu descrie programe rulate de un procesor.

LIMBAJUL VERILOG HDL

Limbajul Verilog este folosit pentru


Proiectarea circuitelor logice digitale
Simularea circuitelor logice digitale
Verificarea circuitelor logice digitale

Unele construcii ale limbajului nu sunt sintetizabile!


Nu pot fi translatate (direct) n structuri hardware!
Acestea pot fi folosite doar n simulare!

LIMBAJUL VERILOG HDL

Metodologie proiectare circuite integrate digitale:

LIMBAJUL VERILOG HDL

Verilog are caracteristici conceptual diferite de cele


ale limbajelor de programare (software):

Aspectul temporal
Timp de propagare
Variabilele (semnalele) Verilog modeleaz srmele de
interconexiune
assign #1 sNegat = ~s;

Concurena evenimentelor
Programele software sunt prin excelen secveniale
Sistemele hardware sunt concurente.

Fiecare poart logic i execut propria funcie


logic n mod independent de existena altor pori
logice.

LIMBAJUL VERILOG HDL

Modelele Verilog pot fi dezvoltate pe diferite nivele


de abstractizare:
Algoritmic (Behavioral Level) prin construcii de nivel
nalt ale limbajului
RTL (Register Transfer Level) prin descrierea modului
n care datele circul ntre registre
Nivel de poart logic prin descriere porilor logice i
conexiunile dintre pori
Nivel de comutator prin descrierea tranzistoarelor i
conexiunile dintre ele

LIMBAJUL VERILOG HDL

Modelele Verilog pot fi descrise:

Structural prin enumerarea componentelor i a


conexiunilor dintre acestea

Se precizeaz din ce componente este fcut un modul

Comportamental prin descrierea modului de


funcionare

Se precizeaz algoritmul de funcionare a unui modul; cum


transform datele de intrare i cum genereaz valorile ieirilor

LIMBAJUL VERILOG HDL

Testarea unui model de sistem digital se face ntr-un


mediu de simulare (ModelSim,
www.edaplayground.com) care cuprinde:
Modelul sistemului de studiat (testat)
Modele de generatoare de stimuli (similare generatoarelor
de semnal)
Modele de monitorizare i verificare (similare aparatelor de
msur i control)

LIMBAJUL VERILOG HDL

Exemplu: modelare multiplexor 1 din 4


C.1 Descriere comportamental varianta 1
C.2 Descriere comportamental varianta 2
S Descriere structural

Vezi proiectul ataat.

LIMBAJUL VERILOG HDL


Case sensitive
Comentarii

Pe o singur linie
Pe mai multe linii

module CPU(clk, data, address);


// specificaii
endmodule

//
/* */

Entitatea principal este modulul


n afara modulului nu pot exista dect directive de
compilare
Conine:

Descrierea interfeei cu mediul exterior (alte module)


Comportamentul sau structura sa

Toate declaraiile fcute ntr-un modul sunt locale acelui


modul nu exist obiecte (semnale) globale!

LIMBAJUL VERILOG HDL

Structur ierarhic a modulelor

Un modul poate conine instane ale altor module

Setul de valori
0: valoare logic 0 sau condiie fals
1: valoare logic 1 sau condiie adevrat
x: valoare logic necunoscut
z: stare de nalt impedan

Tipuri de constante
Numere ntregi
Numere reale
iruri

caractere de subliniere (_) poate apare n scrierea constantelor

LIMBAJUL VERILOG HDL

Numere ntregi
Exprimate implicit n baza 10
Numerele negative exprimate n complement fa de 2
Sintax

[dimensiune] '<baza_de_numeratie> <valoare>

Baza de numeraie: B, O, D, H

4'b1011
16'hACE0
16b1001_0110_1011_0011
8'b101

3'b0110_0101

8'b00000101
3'b101

LIMBAJUL VERILOG HDL

Verilog are dou grupe de tipuri de date:

Tipul net
Modelealz o conexiune fizic ntre elementele structurale
Valoarea este determinat de sursa sa, care poate fi o specificaie
de atribuire continu (assign) sau o instaniere de component.
Valoarea implicit: z.
Cel mai uzual obiect de tip net: wire

wire out;
assign out = in1 ^ in2;

LIMBAJUL VERILOG HDL

Verilog are dou grupe de tipuri de date:

Tipul register
Modeleaz un element abstract de stocare a datelor
Valorile obiectelor de acest tip pot fi atribuite din interiorul
specificaiilor always i initial.
Valoarea implicit: x.

reg state;
initial begin
state = 1;

end

LIMBAJUL VERILOG HDL

Att srmele de tip net, ct i cele de tip reg pot fi


extinse pe una sau dou dimensiuni (doar att!)
O dimensiune
bus (magistral)
Dou dimensiuni matrice de date (memorie?)
wire [7:0] bus;
reg [4:0] state;
reg [15:0] mem [255:0];
assign bus = 8hCD;
initial begin
state = 4hF;
mem[128] = bus;
end

LIMBAJUL VERILOG HDL

Primitive

and, or, xor, nand, nor, xnor

(1output, 1-or-moreinputs)

buf, not

(1-or-moreoutputs, 1input)

wire in1, in2, out;


and i1(out,in1,in2);

LIMBAJUL VERILOG HDL

Operatori unari
+
!
~
&
~&
^
~^
|
~|

Operator unar pentru numr pozitiv


Operator unar pentru numr negativ
Operator unar pentru negare logic
Operator unar pentru negare pe bii
Operator de reducere AND
(aplicat unui vector produce un bit)
Operator de reducere NAND
Operator de reducere XOR
Operator de reducere XNOR
Operator de reducere OR
Operator de reducere NOR

LIMBAJUL VERILOG HDL

Operatori binari
*
/
%
+
<<
>>

Operator binar de multiplicare


Operator binar de mprire
Operator binar modulo
Operator binar de adunare
Operator binar de scdere
Operator binar de deplasare stnga
Operator binar de deplasare dreapta

LIMBAJUL VERILOG HDL

Operatori binari
<
<=
>
>=
==
!=
===
!==

Operator binar de comparare "mai mic"


Operator binar de comparare "mai mic sau egal"
Operator binar de comparare "mai mare"
Operator binar de comparare "mai mare sau egal"
Operator binar de egalitate logic
Operator binar de inegalitate logic
Operator binar de egalitate cu selecie
Operator binar de inegalitate cu selecie

LIMBAJUL VERILOG HDL

Operatori binari
&

Operator binar logic AND pe bii


(aplicat unor operanzi vectori produce un vector)
^
Operator binar logic XOR pe bii
~^ Operator binar logic XNOR pe bii
|
Operator binar logic OR pe bii
&& Operator binar AND logic
(aplicat unor expresii, produce o valoare de adevr
a unei condiii)
|| Operator binar OR logic

?:

Operator ternar condiional

LIMBAJUL VERILOG HDL

Dimensiunea rezultatului operaiilor aritmetice


depinde de
Dimensiunea celui mai mare operand
Dimensiunea i tipul obiectului destinaie

Poate aprea
Trunchiere
Extindere

LIMBAJUL VERILOG HDL

Operatori de concatenare i replicare


Alturare a biilor ntr-un bus
Se folosesc caracterele
{

reg [31:0] shReg;


wire [31:0] data;
shReg = {data[30:0], 1'b0};
shReg = {4{8hBC}}; // 32hBCBCBCBC

LIMBAJUL VERILOG HDL

Specificaii concurente
Se execut n paralel indiferent de poziia n care apar n
codul surs
Au semnificaie proprie
Se execut asincron

assign
initial
always

atribuire continu
bloc executat o singur dat
bloc executat repetitiv, la infinit

LIMBAJUL VERILOG HDL

Specificaii secveniale
Se mai numesc i procedurale
Pot aprea doar n corpul specificaiilor concurente initial
sau always
Se execut strict n ordinea n care apar n codul surs
Pot fi grupate ntr-un bloc prin delimitarea sa prin
cuvintele cheie begin i end

if
case
casex, casez

specificaie condiional
specificaie de selecie
specificaie de selecie

LECTUR RECOMANDAT

D. Nicula, Gh. Toace, Electronic digital, vol. II


1.1, 1.2, 1.3.1, 1.3.2
2.1, 2.2, 2.3, 2.3.1, 2.4 (parial), 2.5, 2.6, 2.7(parial)

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