Układ mnożący - opis systemu

Transkrypt

Układ mnożący - opis systemu
Plik system.vhd zawiera opis systemu przedstawionego na Rys. 1.
shift
A
A
B
mult_seq
Y
0
N-1
load_in
0
AR
BR
N
N
shift
start
B
N-1
reset
control
load_in
Σ
load_in
load_out
shift
N-1
done
reset
N-1
0
N-1
0
R
Rys. 1. Schemat systemu
SR
2N-1
0
Y
load_out
Y
Rys. 2. Schemat mnożarki
Jako blok “mult_seq” wykorzystany został komponent opisany w pliku mult_seq.vhd (umieszczonym wraz z
niezbędnym plikiem sum.vhd). Komponent “mult_seq” modeluje strukturę układu mnożącego przedstawionego na Rys.
2.
Wymagane przebiegi czasowe sygnałów z Rys. 1. i Rys. 2. zaprezentowane są na Rys. 3. Analiza tych przebiegów
pozwala zauważyć, że blok ”control” z Rys. 1. musi realizować maszynę stanową przedstawioną schematycznie na Rys.
4.
IDLE
INIT
CALC
start = ‘1’
FIN RET
start = ‘0’
A
a
B
b
INIT
not N-th cycle
CALC
IDLE
clk
N-th cycle
start
RET
load_in
FIN
reset
shift
Rys. 4. Diagram stanów
N cycles
load_out
Y
a* b
done
Rys. 3. Wymagane przebiegi czasowe
Do zamodelowania stanów z Rys. 4. wykorzystana została następująca definicja typu:
type STATE is (IDLE, INIT, CALC, FINISH, RET);
Zliczanie cykli niezbędnych do wykonania mnożenia realizowane jest za pomocą sygnału typu NATURAL.
Zamieszczone pliki „*_tb.vhd” pozwalają przeprowadzić symulacje potwierdzające poprawność opisanych
komponentów.