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.