300 likes | 437 Views
Projektowanie cyfrowych systemów w oparciu o układy (VLSI i) PLD. Ernest Jamro Kat. Elektroniki AGH, Kraków Układy mnożące, konwolwery. 1. 0. 0. 1. X. 1. 0. 1. 1. 1. 0. 0. 1. 1. 0. 0. 1. 0. 0. 0. 0. +. 1. 0. 0. 1. 1. 1. 0. 0. 0. 1. 1. Mnożenie. 9 x 11= 99.
E N D
Projektowanie cyfrowych systemów w oparciu o układy (VLSI i) PLD Ernest Jamro Kat. Elektroniki AGH, Kraków Układy mnożące, konwolwery
1 0 0 1 X 1 0 1 1 1 0 0 1 1 0 0 1 0 0 0 0 + 1 0 0 1 1 1 0 0 0 1 1 Mnożenie 9 x 11= 99
Wallace Tree Multiplier(with Carry Save Adders) W układach FPGA nie zaleca się stosowania CSA
Szybkie mnożenie w układach FPGA 26·(2·a7 ·b + a6 ·b)
Układy mnożące w FPGA (a7 and bi) xor (a6 and bi+1) Przykład: G4 - a7 G3 - bi G2 - a6 G1 - bi+1 F4 – a7 F3 – bi-1 F2 – a6 F1 – bi Fragment of Virtex Configurable Logic Block (CLB)
Mnożenie liczb ze znakiem Reprezentacja: Znak, Moduł: Mnożenie modułów jak liczb bez znaku Znak= Znak1 XOR Znak2 Reprezentacja w kodzie uzupełnień do dwóch: Zwykła operacja mnożenia liczb dodatnich C. R. Baugh and B. A.Wooley, “A two’s complement parallel array multiplication algorithm,” IEEE Trans. Comput., vol. C-22, pp. 1045–1047, Dec. 1973.
Mnożenie przez stały współczynnikZastosowanie pamięci Look UpTable (LUT) Przykład mnożenia przez stałą wartość C= 5 Adres Dana 0 0 1 5 2 10 3 15 ...
Układy z wykorzystaniem pamięci LUT: mnożenie przez stały współczynnik CY = CA = CA(0:3) + 24 CA(4:7)
Zastosowanie różnych pamięci ROMprzykład: szerokość wejściowa= 6
Bardziej skomplikowany przykład Virtex: 161, 321, 4k1, 2k2, 1k4, 5128, 25616szerokość wejścia i współczynnika mnożącego= 14
Migracja z CLB do BRAM CLB BRAM
ekwiwalentny koszt 1 BSR tylko CLB, skala 1:10 liczna użytych BSR Koszt [CLB] dla różnych szerokości K wejścia i współczynnika mnożenia
MM (Multiplierless Multiplication)Mnożenie przez stały współczynnik • Binary Representation, example B= 14= 11102 • M= AB= (A<<1)+(A<<2)+(A<<3) • Sub-structure Sharing (SS) example B= 27= 110112 • tmp= A + (A<<1) • M= AB= tmp + (tmp<<3) • Canonic Sign Digit (CSD) • set {0, 1, -1} (0 – no operation, 1 – addition, -1 – subtraction) • example: B= 7 = 1112 B= 100-1CSD • M=B·A= (A<<2) + (A<<1) + A M= (A<<3)-A
BINARNIE CSDinsert symbol ‘-1’ only if the total number of operation is reduced Standard Modified
1 1 -1 2 1 -2 1 1 -1 0 2 1 0 4 -8 0 2 1 1 1 1 2 2 1 1 1 1 Przykłady filtrów FIR 2D Dolno-przepustowy Sobel Laplace’a
8 z-1 In 4 4 4 4 LUT M0 LUT L0 LUT M1 LUT L1 12 12 12 12 12 12 12 12 4 Adder1 Adder0 Adder1 Adder0 4 13 13 13 9 Multiplier 1 Multiplier 2 Adder2 Adder2 4 Adders Block 14 18 18 Filtr FIR N=2 z układami mnożącymi LUT
FIR, Arytmetyka w innej kolejności(Parallel) Distributed Arithmetic different bits of the input input coefficient
Arytmetyka Rozproszona (Distributed Arithmetic) The same input bit weight (smaller LUT widths)
Filtry FIR z liniową fazą (symetryczne: h(0)=h(N-1), h(1)=h(N-2), ...)
Przykład dzielenia wspólnej podstruktury H(z)= 5 + 13z-1 + 5z-2 = 1012 + 11012z-1 + 1012z-2 Przykład 1: A= 5 = 1012- zmienna pomocnicza H(z)= A + (1000 + A)z-1 + Az-2 Przykład 2: A= 1 + z-1 H(z)= 5A + 8z-1 + 5z-2