200 likes | 290 Views
Explore the world of digital system design using PLDs and VLSI architecture. Learn about adders, subtractors, architectures, and implementations to enhance your understanding of digital signal processing. Discover algorithms, designs, and applications in computer arithmetic.
E N D
Projektowanie cyfrowych systemów w oparciu o układy PLD (i VLSI) Ernest Jamro Dodawanie
Literatura • Omondi A.R Computer Arithmetic Systems. Algorithms Architecture and Implementations, Prentice Hall 1994. • Pirsch P., Architectures for Digital Signal Processing, Chichester UK, Wiley 1998. • U.Mayer-Baese Digital Signal Processing with Field Programmable Gate Arrays, Springer, Berlin 2001 • Keshab K. Parhi VLSI Digital Signal Processing Systems, J.Wiley & sons, 1999 • Kazimierz Wiatr Akceleracja Obliczeń w systemach wizyjnych, WNT, W-wa 2003 • E. Jamro, K. Wiatr, Układy mnożące przez stały współczynnik implementowane w układach programowalnych FPGA, http://home.agh.edu.pl/~jamro/2001KCM_pl.pdf • www.xilinx.com • www.altera.com
ci-1\ai,bi ci-1\ai,bi 00 00 01 01 11 11 10 10 0 0 0 0 0 1 1 0 0 1 1 1 0 1 1 0 1 1 1 0 Układ dodający ze skrośną propagacją przeniesienia (Ripple Carry Adder) ai + bi+ci-1 = si + 2·ci si = ai bi ci-1 ci= ai bi + ai ci-1 + bi ci-1= ai bi + ci-1 (ai bi) si ci
ci-1\ai,bi ci-1\ai,bi 00 00 01 01 11 11 10 10 0 0 0 0 1 1 0 0 0 1 1 1 1 1 1 0 1 1 0 0 Odejmowanie (a-b) Odejmowanie bezpośrednie Kod uzupełnień do dwóch U2 ai - bi-ci-1 = si - 2·ci si = ai bi ci-1 Dodanie 1 na najmłodszej pozycji bit znaku negacja każdego bitu si Zamiast odejmowania należy dokonać konwersji do kodu U2 liczby b oraz przeprowadzić zwykłą operację dodawania a+b’ ci na czerwono różnica pomiędzy dodawaniem
Ripple Carry Adders in FPGAs si= ai bi ci-1 Fragment of Virtex Configurable Logic Block (CLB)
Carry Skip Adder (CSA)(sumator z przeskokiem przeniesień) Tn= An + Bn lub też Tn= An xor Bn
Carry Skip Adder Szybkość (czas propagacji - T) Koszt (powierzchnia – A) AT= 1/Wydajność m- wielkość bitowa pojedynczego bloku
Carry Lookahead Adder Si = Ai Bi Ci-1 Ci= Ai Bi + Ai Ci-1 + Bi Ci-1= Ai Bi + Ci-1 (Ai Bi) Gi= Ai Bi – Generate - Propagate Pi= AiBi - Propagate bo: - Generate Si= Pi Ci-1 Ci= Gi + Pi Ci-1 S0= P0 C-1 C0= G0 + P0 C-1 S1= P1 C0 C1= G1 + P1 C0= G1 + P1(G0 + P0 C-1)= G1 + P1G0 + P1P0C-1 S2 = P2 C1 C2= G2 + P2 C1= G2 + P2G1 + P2P1G0 + P2P1P0C-1
RCLA koszt i szybkość Koszt A Czas prop. T AT= 1/Wydajność
Układ Układ Opóźnienie Opóźnienie Koszt Koszt (AT)[104] (AT) [104] tylko Carry Look Ahead tylko Carry Look Ahead 4 4 50624 7392 2.94 20.25 Ripple CLA (m=4) Ripple CLA (m=4) 10 34 1334 336 4.57 0.34 carry select (m=4) carry select (m=4) 6 6 992 2688 1.61 0.6 carry skip carry skip 15 29 960 240 2.50 0.36 2-level carry skip 2-level carry skip 12 28 1140 300 0.36 3.19 Ripple Carry Ripple Carry 31 127 224 896 11.38 0.69 Porównanie układów dodających o szerokości 16 bitów 64 bity
Dodawanie 3-wejściowe z propagacją przeniesieniaCarry Propagate Adder (CPA) S= A + B + C CPA – układ dodający np. ze skrośną propagacją przeniesienia (Ripple Carry), Carry Look Ahead, Carry Select Adder Przykład dla Ripple Carry Adder
Dodawanie 3-wejścioweZachowywanie przeniesienia. Carry Save Adder (CSA) A+B+C= S + 2 ·T Bitowo ai + bi+ci = si + 2·ti+1 si = ai bi ci ti+1= ai bi + ai ci + bi ci= ai bi + ci (ai bi) Nie ma propagacji przeniesienia Bardzo szybki układ dodający przy powierzchni podobnej jak Ripple-Carry Adder
CSA -Dodawanie wielowejściowe 3-wejścia 4-wejścia 6- wejść Uwaga: T ma wagę 2 i dla bitów najmłodszych i najstarszych powyższa struktura jest zakłócona Niestety w układach FPGA ze względu na dedykowane układy dodające stosowanie CSA nie jest zalecana