UKAADY CYFROWE
UKAADY CYFROWE
Tadeusz Auba (p. 472)
luba@tele.pw.edu.pl
Mariusz Rawski (p. 481)
rawski@tele.pw.edu.pl
1
Organizacja
Organizacja
T. Auba, pok. 472
T. Auba, pok. 472
dr M. Rawski, pok. 481
dr M. Rawski, pok. 481
dr M. Nowicka, pok. 483
dr P. Tomaszewicz, pok. 481
dr K. Mroczek, pok. 441
dr K. Jasiński, pok.480
d
a
Å‚
k
y
W
t
k
e
j
o
r
P
Egzamin...
Egzamin...
Projekt 40 pkt.
Egzamin 60 pkt
Oceny tradycyjnie
3
Literatura
Literatura
4
Literatura dla zainteresowanych
U. Meyer Baese, Digital Signal Processing with FPGAs,
Springer, Berlin 2001
K. K. Parchi, T. Nishitani, Digital Signal Processing for
Multimedia Systems, Marcel Dekker, Inc. New York 1999
5
6
Mało kto zdaje sobie sprawę z tego, że to głównie
Mało kto zdaje sobie sprawę z tego, że to głównie
telekomunikacja jest motorem napędowym techniki
telekomunikacja jest motorem napędowym techniki
cyfrowej
cyfrowej
7
DSP w telekomunikacji
DSP w telekomunikacji
Telewizja wysokiej Kompresja obrazów
rozdzielczości, telewizja cyfrowa
Kompresja sygnałów audio i
Telefonia komórkowa
mowy ludzkiej
Usługi szerokopasmowe (wideo
Rozpoznawanie mowy
na żądanie, wideokonferencje,
Kryptografia
szybki dostęp do Internetu,
e-commers, e-banking, podpis Modulacja, demodulacja i
elektroniczny, telepraca,
equalizacja w modemach
telenauczanie)
Cyfrowa eliminacja echa
Systemy szybkiego dostępu
Modemy telefoniczne
abonenckiego techniki xDSL
Transmisja światłowodowa
Abonencki dostęp radiowy i
satelitarny
8
FPGAs are on the verge of
revolutionizing digital signal
processing in the manner that
programmable digital signal
processors (PDSPs) did nearly
two decades ago.
9
Układy cyfrowe
Układy cyfrowe
33
3
25
3
1
2
11
5
12
4 2
4
22
Układ cyfrowy
Programowalne moduły logiczne
Języki opisu sprzętu
(AHDL, VHDL)
1234126632 772
213 8732 13 88312
Synteza sprzętowo-programowa
78233 838
Przykłady projektowania
10
Układy programowalne
Układy programowalne
Osiągają pojemność pozwalającą
realizować w jednym układzie systemy
o złożoności odpowiadającej
milionom bramek logicznych
Układy mające możliwość
reprogramowania i rekonfiguracji
' Fabryka na biurku SOPC
'
11
Układy programowalne&
CPLD
FPGA
charakteryzujÄ… siÄ™ ziarnistÄ… budowÄ…
12
Struktury programowalne MAX
Struktury programowalne MAX
I/O OUTPUT ENABLE
SYSTEM CLOCK
PRESET
P
D Q
TO
I/O
ARRAY CLOCK
CONTROL
C
BLOCK
CLEAR
From From Expander I/O and
inputs PIA Product Macrocell
Terms Feedback
8
macro
cell
AND
8
macro
Array
cell
8
macro
cell
PLD
13
Struktury programowalne FLEX
Struktury programowalne FLEX
I/O Element
IOE IOE IOE
(IOE) IOE IOE IOE
Fast Track
Interconnect
IOE
IOE
IOE
IOE
Embedded
Array
Logic Element
Block
(LE)
Cascade Out
IOE
IOE
IOE
DATA1
IOE
Look-Up
LE Out
DATA2
Cascade
PR
Table
Q
DATA3
Embedded
Chain
(LUT)
Logic Array Block
Array DATA4
(LAB)
Block
CLR Programmable
C scade In
a
Register
Carry IN
Carry Out
Carry Chain
Logic
Array
IOE IOE IOE
IOE IOE IOE Preset
Clear
Clock
14
Układy FPGA firmy Xilinx
Układy FPGA firmy Xilinx
Configurable
Logic blocks
(CLBs)
.di
DATA IN
0
MUX D Q
F
DIN 1
G
RD QX .X
QX
.a
F
F
.b
LOGI C CLB
.c CO MBINATIONAL
VARIABLES
.d
FUNCTION OUTPUTS
.e G
G .Y
QY
QY
F
0
DIN
G MUX D Q
1
RD
.ec
ENABLE
clk
"1" (ENABLE)
.k
clk
.rd
RESET
"0" (I NH IBIT)
(GLOBAL RESET)
15
Jakość projektu ...
Jakość projektu ...
Komórka
logiczna
We/wy
Kanały
połączeniowe
... określa liczba zajętych komórek
16
Projektowanie wspomagane
Projektowanie wspomagane
komputerowo
komputerowo
Specyfikacja Weryfikacja
projektu
i programowanie
KOMPILACJA
Edytor
graficzny
Symulator
abcde
abcde
abcde
Wykresy
czasowe
Edytor
Programator
Analizator
tekstowy
opóznień
Standard CAE
Standard CAE
Synteza logiczna
i
odwzorowanie technologiczne
17
Edytor graficzny
18
Edytor tekstowy
Edytor tekstowy
specyfikujemy układ w języku HDL
specyfikujemy układ w języku HDL
19
Przetwarzanie projektu - kompilator
Przetwarzanie projektu - kompilator
20
& projektowanie jest proste
& projektowanie jest proste
Ograniczenia
Język opisu
projektowe
sprzętu
Synteza
automatyczna
Szczęśliwy inżynier
21
Wyzwania dla projektanta systemu
Ogromna złożoność oraz
struktur PLD/FPGA, niedoskonałość
ich różnorodność kompilatorów
Niedoskonałość kompilatorów można pokazać na bardzo prostych,
standardowych przykładach!
22
Konwerter Bin2BCD
Konwerter Bin2BCD
BIN/BCD
Wyjście
Wejście
(00100111)BCD
(00011011)BIN
0 d" liczby d" 99
23
Synteza strukturalna (najprostsze ujęcie)
Synteza strukturalna (najprostsze ujęcie)
Licznik
Rejestr
Najpierw składamy
Odwzorowanie technologiczne
układ
z bloków
funkcjonalnych
24
F
B
u
l
n
o
k
c
k
j
i
o
n
a
l
n
e
Konwerter Bin2BCD
Konwerter Bin2BCD
Altera
INPUT
LB[7..0]
r3_v r2_v r1_v
IN OUT IN OUT LB[7..0] OUT
DA[3..0] DB[3..0] RB[7..0]
LOAD LOAD LOAD
INPUT
CK CK CK
CK
OUTPUT
CLOK
Us_v
Lk_v
INPUT
CLK CLOK
CK L[3..0]
CLK OUTPUT
LOAD
START
STOP
LOAD STOP
START
INPUT
STOP
r4_v
STOP]
LD[7..0] LD[7..0]
CLK
QDB[3..0]
OUTPUT
QDA[3..0]
25
Bin2BCD specyfikacja
Bin2BCD specyfikacja
behawioralna w języku AHDL
behawioralna w języku AHDL
SUBDESIGN bin2bcd
(
lb[7..0], start, zegar : INPUT;
ld[7..0], koniec : OUTPUT;
)
VARIABLE
lda[3..0], ldb[3..0] : DFF;
lb_r[7..0], lk[3..0] : DFF;
ld[7..0], koniec : DFF;
BEGIN
(lda[], ldb[], lb_r[], lk[]).clk = zegar;
(ld[], koniec).clk = zegar;
IF start THEN
lb_r[] = lb[];
lk[] = 8;
ELSE
IF lk[] > 0 THEN
IF ldb[] >= 5 THEN
lda[] = (lda[2..0], B"1"); -- bit lb[3] = 1
ldb[] = (ldb[2..0] + 3, lb_r[7]);
ELSE
lda[] = (lda[2..0], B"0"); -- bit lb[3] = 0
ldb[] = (ldb[2..0], lb_r[7]);
END IF;
lb_r[] = (lb_r[6..0], B"0"); -- przesun w lewo
lk[] = lk[] - 1; -- zmniejsz lk
ELSE
lda[] = lda[];
ldb[] = ldb[];
ld[] = (lda[], ldb[]);
koniec = B"1";
END IF;
END IF;
26
END;
Konwerter Bin2BCD na poziomie
Konwerter Bin2BCD na poziomie
.type fr
logicznym
logicznym
.i 9
.o 8
.p 100
000000000 0000 0000
000000001 0000 0001
AHDL/VHDL
000000010 0000 0010
000000011 0000 0011
000000100 0000 0100
000000101 0000 0101
000000110 0000 0110
MAX+PLUSII 131komórek
000000111 0000 0111
000001000 0000 1000
000001001 0000 1001
000001010 0001 0000
000001011 0001 0001
DEMAIN
000001100 0001 0010
000001101 0001 0011
* * *
001100001 1001 0111
DEMAIN 13 komórek (!!!)
001100010 1001 1000
001100011 1001 1001
.e
27
Struktury FPGA znalazły
Struktury FPGA znalazły
szczególne zastosowanie w układach
szczególne zastosowanie w układach
cyfrowego przetwarzania sygnałów
cyfrowego przetwarzania sygnałów
Zastosowania ... od multimediów ....
do medycyny
28
Mnożenie z akumulowaniem
Mnożenie z akumulowaniem
-1
N
= = Å" = + + + - -
y c, x c[n] x[n] c[0]x[0] c[1]x[1] ... c[N 1]x[N 1]
"
=
n 0
Shift register Multiplier Accumulator
X[N-1] X[1] X[0]
×
×
×
×
C[N-1] C[1] C[0]
+R
29
Arytmetyka rozproszona
Arytmetyka rozproszona
B-1 N -1 B-1
= Å" " = Å" Å"
x[n] " xb[n] 2b , where xb[n] [0,1] y " c[n] " xb[n] 2b
= = =
b 0 n 0 b 0
= + + +
y c[0](xB-1[0]2B-1 xB-2[0]2B-2 ... x[0]20 )
+ + + +
c[1](xB-1[1]2B-1 xB-2[1]2B-2 ... x[1]20 )
.
.
+ - - + - + + -
c[N 1](xB-1[N 1]2B-1 xB-2[N 1]2B-2 ... x[N 1]20 )
= + + + - -
(c[0]xB-1[0] c[1]xB-1[1] ... c[N 1]xB-1[N 1])2B-1
+ + + + - -
(c[0]xB-2[0] c[1]xB-2[1] ... c[N 1]xB-2[N 1])2B-2
.
.
+ + + + - -
(c[0]x0[0] c[1]x0[1] ... c[N 1]x0[N 1])20
30
Distributed Arithmetic
Distributed Arithmetic
Implementacja
Implementacja
- -
B 1 N 1
= Å"
y 2b f (c[n], xb [n])
""
= =
b 0 n 0
Shift register Multiplier Accumulator
X[N-1] X[1] X[0]
×
×
×
×
C[N-1] C[1] C[0]
+R
31
Distributed Arithmetic
Distributed Arithmetic
Implementacja
Implementacja
- -
B 1 N 1
= Å"
y 2b f (c[n], xb [n])
""
= =
b 0 n 0
Shift register DA logic Accumulator
XB-1[0] X1[0] X0[0]
XB-1[1] X1[1] X0[1]
LUT
+R
XB-1[N-1] X1[N-1] X0[N-1]
32
Synteza filtrów cyfrowych
Synteza filtrów cyfrowych
Logic Cells
FIR DA table inputs/outputs
DA without decomposition decomposed DA
F4 7 / 8 12 9
F5 11 / 11 45 32
F6 11 / 11 66 45
F7 11 / 12 48 35
F8 15 / 12 136 64
F9 19 / 16 279 159
" 586 344
% 100 58
33
Synteza filtrów cyfrowych
Synteza filtrów cyfrowych
Circuit without Circuit with decomposed DA
Adder
decomposition logic
FIR
tree
LCs (FFs) fmax [MHz] LCs (FFs) fmax [MHz]
288 (194) 51.28 264 (194) 53.76 pipel.
F4
224 (71) 25.25 204 (71) 26.60 comb.
642 (271) 47.62 530 (271) 52.36 pipel.
F5
527 (106) 21.05 444 (106) 22.03 comb.
808 (274) 38.61 632 (274) 41.49 pipel.
F6
710 (106) 19.27 551 (106) 19.61 comb.
680 (286) 47.62 560 (286) 47.85 pipel.
F7
576 (107) 20.62 476 (107) 20.96 comb.
1404 (323) 42.74 834 (323) 48.31 pipel.
F8
1314 (140) 22.73 746 (140) 22.73 comb.
2624 (410) 31.25 1672 (410) 38.61 pipel.
F9
2533 (175) 14.47 1564 (175) 20.92 comb.
" 12330 8477
% 100 68
34
Układy kryptograficzne
Układy kryptograficzne
8-bit Data Bus 8-bit Data Bus
Altera Byte Blaster Header Altera Byte Blaster Header
Texas Texas Texas Texas
Instrument Instrument Instrument Instrument
9x1024x2 9x1024x2 CE 9x1024x2 9x1024x2 CE
FIFO FIFO FIFO FIFO
Motorola Altera Xilinx Motorola Altera Xilinx
DE DE
MC68HC16Z1 MAX-9320 XC4025E MC68HC16Z1 MAX-9320 XC4025E
Micro-controller PLD OV FPGA Micro-controller PLD OV FPGA
Texas Texas Texas Texas
Instrument Instrument Reset Instrument Instrument Reset
9x1024x2 9x1024x2 9x1024x2 9x1024x2
FIFO FIFO FIFO FIFO
Texas Texas 16-bit Data Bus Texas Texas 16-bit Data Bus
Instrument Instrument Instrument Instrument
E E 9x1024x2 9x1024x2 E E 9x1024x2 9x1024x2
P P FIFO FIFO P P FIFO FIFO
R R Data Bus D0-D15 R R Data Bus D0-D15
O O Address A0-A15 Serial Bit Stream O O Address A0-A15 Serial Bit Stream
Texas Texas M M Texas Texas
M M Instrument Instrument Instrument Instrument
9x1024x2 9x1024x2 9x1024x2 9x1024x2
FIFO FIFO FIFO FIFO
64-bit Data Bus 64-bit Data Bus
Halo Halo
" OSCAR
F@*q~
35
X ilin x Xch ecker Head er
X ilin x Xch ecker Head er
Układy kryptograficzne
Układy kryptograficzne
Podstawowe operacje kryptograficzne:
Podstawowe operacje kryptograficzne:
Podstawienie
Mnożenie
Rotacja
Permutacja
36
Podstawienie
Podstawienie
S-box n x m
S-box n x m
n-bitowy adres
n
Logika kombinacyjna
y
x1
2n słów1
y2
S ROM
x2
ym
xn
m
m-bitowe wyjście
37
...
...
Schemat blokowy rundy
Schemat blokowy rundy
algorytmu DES
algorytmu DES
Runda
S1
S2
R
E
S3
S4
K P
S5
S6
S7
S8
L
38
Skrzynki podstawieniowe
Skrzynki podstawieniowe
Bez dekompozycji
S1 S2 S3 S4 S5 S6 S7 S8
Liczba komórek 55 74 77 80 68 73 77 81
Maks.
28,1 31,6 33,5 34,0 28,4 30,4 34,3 31,4
opóznienie
Po dekompozycji
Liczba
25 20 22 24 25 22 23 23
komórek
Maks.
19,5 17,2 16,7 19,0 19,0 19,4 17,7 17,6
opóznienie
Razem 184 komórki w porównaniu do 585 komórek
w realizacji wcześniejszej (ponad trzykrotnie mniej)
z maksymalnym opóznieniem 19,5 ns w porównaniu
do 34,3 ns.
39
Ścieżka przepływu danych
Ścieżka przepływu danych
algorytmu DES
algorytmu DES
Altera
Altera
709 logic cells
P = 28,8 MHz / 16 x 64 bits = 115 Mbit/s
Altera + DEMAIN
Altera + DEMAIN
296 logic cells
P = 51,5 MHz / 16 x 64 bits = 206 Mbit/s
40
Realizacje Rijndaela porównanie
Realizacje Rijndaela porównanie
przepustowości (Mb/s) dla FLEX 10K200
przepustowości (Mb/s) dla FLEX 10K200
800
752 TSI/TUKE TSI France & Technical
Unversity of Koaice, Slovakia
700
600
GMU - George Mason Univeristy, USA
500 451
MUT Military University of Technology, Poland
400
316
WUT - Warsaw University of Technology, Poland
248
300
200
100
0
TSI/
GMU MUT WUT
TUKE
41
Nowe możliwości
Nowe możliwości
Reprogramowalne
Języki opisu sprzętu
układy PLD/FPGA
+
MILIONY BRAMEK !!!
MILIONY BRAMEK !!!
42
Technika produktów wirtualnych
Technika produktów wirtualnych
Układy reprogramowalne oraz języki opisu sprzętu stały
siÄ™ postawÄ… koncepcji produktu wirtualnego - systemu,
funkcji lub układu, który nie istnieje w rzeczywistości
materialnej, ale potencjalnie może być zrealizowany w
każdej chwili.
Rynek własności intelektualnej IP
(Intellectual Property) zawartej
w układach zaprojektowanych
i oferowanych do sprzedaży w
postaci
kodów zródłowych języków HDL.
43
Firmy i stowarzyszenia projektujÄ…ce wirtualne
układy dla urządzeń reprogramowalnych
- TILAB
- ALTERA MEGAFUNCTION
- inSILICON CORPORATION
PARTNERS PROGRAM
- SIBER CORE TECHNOLOGIES
- XILINX ALLIANCE CORE
- DIGITAL COMMUNICATION
- COMMON LICENSE
TECHNOLOGIES
CONSORTIUM
- ARC CORES
- IP CATALYST PROGRAM
- VIRTUAL IP GROUP INC.
- EXEMPLAR LOGIC-VENDOR
- IP SEMICONDUCTORS
INCENTIVE PROGRAM (VIP)
- ALCATEL TECHNOLOGY
- D & R DESIGN-REUSE.
LICENSING
W Polsce: - DIGITAL CORE DESIGN
44
Oferta IP dla potrzeb DSP
Oferta IP dla potrzeb DSP
Digital Signal Processing Math Functions
Building Blocks Accumulators
Correlators Adders & Subtracters
Demodulation Arithmetic & Logic Unit
DSP Processors Comparators
DSP ProtoType & Complementers
Development Hardware
Dividers & Reciprocal
Products
Functions
Filters
Format Conversions
Modulation
Integrator
Transforms
Multipliers
Trig Functions
Square Root
45
Wyzwania i szanse
Wyzwania i szanse
Realizacje różnych układów np.
kryptograficznych, DSP, w strukturach
PLD/FPGA (jako produkty własności
intelektualnej), z zastosowaniem
nowoczesnych metod syntezy logicznej,
a w szczególności
Uniwersyteckich Systemów Syntezy Logicznej,
to - ze względu na dynamikę rozwoju
technologii mikroelektronicznych i metod
komputerowej syntezy - szanse przede
wszystkim dla aktualnie studiujÄ…cych!
46
Układy programowalne przez użytkownika
FPLD
(C)PLD
FPGA
PLA LOOK-UP MUX
PAL
TABLE
GAL XPLA (ACTEL)
Classic EPLD
XC 3000
XC 4000
MAX, ACEX
Spartan
ispLSI
Virtex
MACH
AT40
XC9500
APEX
AT6000
FLEX
47
Struktura FPGA
Struktura FPGA
ROM FIFO
RAM
48
Komputerowe
Komputerowe
projektowanie&
projektowanie&
SP ECYFIKACJA
SIEĆ
FUNKCJONALNA
LOGICZNA
(HDL)
OPTYMALIZACJA
S YNTEZA
LOGICZNA
FUNKCJONALNA
ODWZOROWANIE
OPIS RTL
BIBLIOTEKA
TECHNOLOGICZNE
KOMÓREK
TRANS LACJE
SYNTEZA
SPECYFIKACJI
FIZYCZNA
49
Wyszukiwarka
Podobne podstrony:
ex uc prtadrpt1ex uc subsc1ucuc inst04WST IPv6?resacja pptwst giHughes, Susanna The Chaste Legacy [UC]WST?zpieczenstwo sieci IP v2 pptWarsztaty AVR Programowanie uCHenry Kuttner Exit the Professor UCWST Organizacja globalnej sieci teleinf pptAshe, Aran The Forest Of Bondage [UC]wst p do prawoznawstwa normy a przepisy prawa wyk ? morwięcej podobnych podstron