Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Mnożenie dwóch liczb 64-bitowych przy zastosowaniu automatu synchronicznego Mnożenie dwóch liczb 64-bitowych przy zastosowaniu automatu synchronicznego.

Podobne prezentacje


Prezentacja na temat: "Mnożenie dwóch liczb 64-bitowych przy zastosowaniu automatu synchronicznego Mnożenie dwóch liczb 64-bitowych przy zastosowaniu automatu synchronicznego."— Zapis prezentacji:

1 Mnożenie dwóch liczb 64-bitowych przy zastosowaniu automatu synchronicznego Mnożenie dwóch liczb 64-bitowych przy zastosowaniu automatu synchronicznego Orkiszewski Marcin Orkiszewski Marcin

2 Wykorzystanie automatu synchronicznego Wykorzystanie automatu synchronicznego Wpisywanie danych w postaci liczb 16-bitowych Wpisywanie danych w postaci liczb 16-bitowych Przechowywanie danych w wewnętrznych rejestrach układu Przechowywanie danych w wewnętrznych rejestrach układu Założenia projektowe:

3 Algorytm mnożenia: Algorytm mnożenia: A B C D A B C D * v x y z * v x y z Az Bz Cz Dz Az Bz Cz Dz Ay By Cy Dy Ay By Cy Dy Ax Bx Cx Dx Ax Bx Cx Dx + Av Bv Cv Dv + Av Bv Cv Dv …

4 Opis algorytmu: A B = (a a a a4) (b b b b4)

5 Akumulator[31..0] = a4 b4, Akumulator[48..16] = a3 b4 + Akumulator[31..16], Akumulator[49..16] = a4 b3 + Akumulator[48..16], Akumulator[64..32] = a3 b3 + Akumulator[49..32], Akumulator[65..32] = a2 b4 + Akumulator[64..32], Akumulator[66..32] = a4 b2 + Akumulator[65..32], Akumulator[80..48] = a1 b4 + Akumulator[65..48], Akumulator[81..48] = a4 b1 + Akumulator[80..48], Akumulator[82..48] = a2 b3 + Akumulator[81..48], Akumulator[83..48] = a3 b2 + Akumulator[82..48], Akumulator[96..64] = a1 b3 + Akumulator[83..64], Akumulator[97..64] = a3 b1 + Akumulator[96..64], Akumulator[98..64] = a2 b2 + Akumulator[97..64], Akumulator[ ] = a1 b2 + Akumulator[98..80], Akumulator[ ] = a2 b1 + Akumulator[ ], Akumulator[ ] = a1 b1 + Akumulator[ ]. Opis algorytmu:

6 Wykonywanie operacji na podzielonych danych umożliwia sekwencyjną realizację algorytmu. Wykonywanie operacji na podzielonych danych umożliwia sekwencyjną realizację algorytmu. Akumulacja danych w jednym rejestrze zmniejsza liczbę potrzebnych zasobów (wymagana odpowiednia kolejność dodawań). Akumulacja danych w jednym rejestrze zmniejsza liczbę potrzebnych zasobów (wymagana odpowiednia kolejność dodawań). Zastosowanie mniejszych układów mnożących i sumujących. Zastosowanie mniejszych układów mnożących i sumujących. Możliwość wykonywania kilku operacji w jednym takcie zegara. Możliwość wykonywania kilku operacji w jednym takcie zegara. Możliwość wykonywania operacji już podczas wpisywania danych. Możliwość wykonywania operacji już podczas wpisywania danych. Opis algorytmu:

7 Realizacja:

8 Wersja 1: wykonywanie jednego mnożenia i sumowania wykonywanie jednego mnożenia i sumowania w jednym stanie automatu w jednym stanie automatu automat 19-to stanowy (4 stany przeznaczone na wpis danych) automat 19-to stanowy (4 stany przeznaczone na wpis danych) 8 rejestrów 16-to bitowych 8 rejestrów 16-to bitowych 1 rejestr 128-to bitowy 1 rejestr 128-to bitowy mnożenia i dodawania wykonywane asynchronicznie mnożenia i dodawania wykonywane asynchronicznie Realizacja:

9 Symulacja: FFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFF = FFFFFFFFFFFFFFFE

10 Działa !! Wyniki kompilacji (dla układu Cyclone II): 36,28 MHz 36,28 MHz 2559 LE's 2559 LE's uuuu….. uuuu….. Realizacja:

11 Wersja 2: jak poprzednio jak poprzednio mnożenia i dodawania wykonywane synchronicznie (16 multiplikatorów) mnożenia i dodawania wykonywane synchronicznie (16 multiplikatorów) MHz MHz 1292 LE's 1292 LE's lepiej…. lepiej…. Realizacja:

12 Wersja 3: obliczenia wykonywane w zależności od stanu następnego (next_state) obliczenia wykonywane w zależności od stanu następnego (next_state) 130,89 MHz 130,89 MHz 1288 LE's 1288 LE's szybciej… szybciej… Realizacja:

13 Wersja 4: automat jako multiplekser automat jako multiplekser 1 multiplikator, 1 sumator! 1 multiplikator, 1 sumator! 155,62 MHz 155,62 MHz 427 LE's !! 427 LE's !! Realizacja:

14 Symulacja: Błędne wpisywanie danych (?)

15 Opóźnienia wynikają ze zbyt długiego czasu wpisywania danych t SU Opóźnienia wynikają ze zbyt długiego czasu wpisywania danych t SU Wersja 5 : rejestr przed multiplekserem wejściowym Wersja 5 : rejestr przed multiplekserem wejściowym Wersja 6: dane wpisywane poprzez rejestr przesuwający (co 16 bitów) Wersja 6: dane wpisywane poprzez rejestr przesuwający (co 16 bitów) Realizacja:

16 Realizacja:LEs CLK (MHz) t SU (ns) Rejestr przesuwający BALANCED ,024,551 Rejestr przesuwający AREA ,144,771 Demultiplekser za rejestrem wejściowym ,734,728 Demultiplekser przed rejestrem wejściowym ,624,983

17 automat 5 stanowy (4 stany wpis danych, 1 stan obliczeń) automat 5 stanowy (4 stany wpis danych, 1 stan obliczeń) układ mnożący 128 bitów x 128 bitów układ mnożący 128 bitów x 128 bitów 260 MHz 260 MHz 828 LE's 828 LE's Inna realizacja:

18 Podsumowanie: LEs CLK (MHz) Wersja ,28 Wersja Wersja ,89 Wersja ,62 Wersja ,73 Wersja 6 BALANCED ,02 Wersja 6 AREA ,14 Mnożenie 128 x


Pobierz ppt "Mnożenie dwóch liczb 64-bitowych przy zastosowaniu automatu synchronicznego Mnożenie dwóch liczb 64-bitowych przy zastosowaniu automatu synchronicznego."

Podobne prezentacje


Reklamy Google