Sunteți pe pagina 1din 16

Proiect: 4.

Algoritm de împărțire cu restaurare (numere pozitive)

Profesor: Sef lucr.dr.ing Traian TULBURE


Nume student: Bularca Ioan-Paul
Program de studii: Electronica Aplicata
An: IV
Grupa: 4LF281-A

An universitar:
2021-2022
Simbolul împărțitorului:

1
Descrierea porturilor:

Denumire port Sens Dim [biti] Semnificație

op1 in 4 Primul operand

op2 in 4 Al doilea operand

rezultat out 8 Rezultatul (cât și rest pe câte 8 biți)

start in 1 Semnalul pentru startul operției de împărțire

valid out 1 Rezultat valid al operației de împărțire

reset_n in 1 Reset sincron, activ in 1

ck in 1 Semnal de ceas

Constângeri:

Sistemul se va modela ca un sistem riguros sincron. Semnalul ck va fi primit de către toate


registrele din sistem. Se vor evita circuitele de divizare a frecvenței semnalului de tact. 
Se vor folosi, eventual, circuite de generare a semnalelor de activare (enable).

2
Descrierea sistemului se va face în întregime în VHDL. În descrierea de nivel înalt se vor
instanția două componente:

 cale de date și
 cale de control

4. Algoritm de împărțire cu restaurare (numere pozitive):

 resetează P (n+1 biți)


 încarcă deîmpărțitul în A (n biți)
 încarcă împărțitorul în B (n biți)
 repeta de n ori
o deplasează cu o poziție stânga {P, A} (LSb P = MSb A)
o P <= P – B
o dacă P este negativ (MSb P = 1)
 LSb A = 0
 P <= P + B (restaurare P)
o – altfel
 LSb A = 1
 P conține REST
 A conține CÂT

Tabel cu denumirile și semnificațiile semnalelor interne:

Denumire semnal intern Semnificațiile

op_a Valoarea care este încărcată în registrul reg_a

op_b Valoarea care este încărcată în registrul reg_b

result Valoarea rezultatului citită din registrul reg_r

clk Semnalul de ceas

reset Semnal activ pe ‘1’ cu rol de trecere a sistemului în starea ințială

load_op Semnal de încărcare a valorii în registrele reg_a, reg_b, reg_p, reg_r

3
end_op Semnal de finalizare a operației de înmulțire

shift_a Semnal de comandă pt. deplasarea valorii la stânga a registrului reg_a

shift_p Semnal de comandă pt. deplasarea valorii la stânga a registrului reg_p

add_p_b Semnal de comandă a adunarii în registrul reg_p a valorii registrului reg_b

msb_a Valoarea celui mai semnificativ bit din registrul reg_a

a Semnal de prelucrare a semnalului op_a

b Semnal de prelucrare a semnalului op_b

p Semnal de prelucrare a semnalului op_p

r Semnal prelucrat r este preluat de result

start Semnal activ in ‘1’ cu rol de trecere în starea SETUP

ready Semnal care comandă finalizarea corectă a operației finale

curenta Are ca valoare starea curentă în care se află sistemul

urmatoare Are ca valoare starea viitoare în care trece sistemul

valid Semnalul prelucrat care este trimis la ready

count Numărul de iterații pe care le face sistemul

Codul vhdl folosit:

1. Divider.vhd:

4
5
6
2. Divider_cd.vhd:

7
8
3. Divider_cc.vhd:

9
10
4. Divider_test.vhd:

11
Simularea codului vhdl în ModelSim:

12
Simularea în Alliance:

Calea de date si de control:

13
Core-ul:

14
Comenzi Alliance:

Conversie:

15
vasy -I vhd -a -p -o divider divider

vasy -I vhd -a -p -o divider_cd divider_cd

vasy -I vhd -a -p -o divider_cc divider_cc

-I pentru formatul fisierului de intrare

-a - Alliance ca si iesire

-p pentru adaugarea conectorilor de alimentare

-o pentru suprascrierea fisierelor deja existente

Sinteza:

boog divider_cd divider_cd

boog divider_cc divider_cc

Simulare:

asimut -zd divider divider r1

-zd pentru a nu avea delay

xpat r1

Plasare si rutare:

ocp -ring divider divider

-ring pentru crearea conectorilor pe margini

nero -V divider divider

-V pentru mai multe detalii

graal divider

16

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