predavanje za podiplomce 2008 · 3 5 huffmanovo kodiranje/dekodiranje (vld) Črka verjetnost koda k...
TRANSCRIPT
1
NAČRTOVANJE KOMPLEKSNIH DIGITALNIH SISTEMOV V TEHNOLOGIJI
FPGA VEZIJ NA PRIMERU VIDEO DEKODIRNIKA
MPEG-4
Matjaž Verderber, AsystelectronicTrzin, Slovenija
[email protected]@asystelectronic.si
2
Vsebina predstavitve• Zasnovali bomo kompleksen digitalni sistem video
dekodirnika MPEG-4 (QCIF-144x176 video format, 8-bitni elementi slike, frekvenca slik 25 Hz, ciljna bitna hitrost 64 kb/s).
• MPEG-4 dekodirnik bomo realizirali v FPGA vezju kot kombinacijo RISC mikroprocesorja in strojnih pospeševalnikov (koprocesorjev).
• Spoznali bomo potek načrtovanja (opisa sistema in simulacije strojnega/programskega dela sistema dekodirnika).
• Sistem bomo realizirali v enem samem FPGA vezju in preizkusili njegovo delovanje.
2
3
MPEG-4 dekodirnik (ISOIEC 14496-2 )
4
MPEG-4 dekodirnik (ISOIEC 14496-2 )
- Y
- U , V
0, 229 0,587 0,1140,1687 0,3313 0,50,5 0,4187 0,0813
Y RU GV B
⎡ ⎤ ⎡ ⎤ ⎡ ⎤⎢ ⎥ ⎢ ⎥ ⎢ ⎥= − −⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎢ ⎥− −⎣ ⎦ ⎣ ⎦ ⎣ ⎦
3
5
Huffmanovo kodiranje/dekodiranje (VLD)Črka Verjetnost Koda K 0.05 10101 l 0.2 01 u 0.1 100 w 0.05 10100 e 0.3 11 r 0.2 00 ? 0.1 1011
Korak 1 korak 2 korak 3 korak 4 korak 5 korak6 k 0.05 e 0.3 e 0.3 e 0.3 e 0.3 l,r 0.4 k,w,?,u,e 0.6 l 0.2 l 0.2 l 0.2 l 0.2 k,w,?,u 0.3 e 0.3 l,r 0.4 u 0.1 r 0.2 r 0.2 r 0.2 l 0.2 k,w,?,u 0.3 w 0.05 u 0.1 u 0.1 k,w,? 0.2 r 0.2 e 0.3 ? 0.1 ? 0.1 u 0.1 r 0.2 k 0.05 k,w 0.1 ? 0.1 w 0.05
w
?
r
0
l e
u
k
0
0
0
0
0
1
1
1
1
1
1
Začetek kode
Korak 1
Korak 2
Korak 3
Korak 4
Korak 5
Korak 6
∑= iipovprecna plL *Ideja: simbole z večjo verjetnostjo pojavljanja kodiramo z manj biti, simbole z manjšo verjetnostjo pa z več biti. Postopek: kodiranje začnemo pri simbolih z najmanjšo verjetnostjo. V posameznih korakih simbole združujemo v dvojice po naraščajoči verjetnosti.
Entropija z Huffmanovim kodiranjem
Entropija brez Huffmanovega
kodiranja 2.6 3 (dolzina
vsakega od sedmih simbolov
bi morala biti najmanj 3)
L - Entropija li – dolžina kodiranega simbola, pi – verjetnost simbola
6
Kvantizacija in urejanje podatkov
• Zmanjšanje števila bitov • Kvantizacijska napaka• Skaliranje kvant. koraka Q –
uravnavanje komresije
Cik cak zaporedje – ugodnejše razmere za kodiranje s spremenljivo dolžinoMatrika -> VektorUrejanje po frekvenčni razdelitvi posamezne slike (nizke frekvence so zbrane na vrhu vektorja, pomik proti desnemu spodnjemu kotu pomeni višjo frekvenco)
( , ) ...
( , ) ...
( , ) ...
( , )( , )( , )
F u v vrednost pred kvantizacijo
QF u v vrednost po kvantizaciji
Q u v kvantizacijski korak
F u vQF u v roundQ u v
=
4
7
DCT/IDCT8x8 točk
DCT
DCT:
1 1
0 0
2 (2 1) (2 1)( , ) ( ) ( ) ( , ) cos cos2 2
N N
u v
x u y vf x y C u C v F u vN N N
π π− −
= =
+ +⎛ ⎞ ⎛ ⎞= ⎜ ⎟ ⎜ ⎟⎝ ⎠ ⎝ ⎠
∑∑
( ) ( )1 1
0 0
2 1 2 12 ( ) ( )( , ) ( , ) cos cos2 2
N N
x y
x u y vC u C vF u v f x yN N N
π π− −
= =
+ +⎛ ⎞ ⎛ ⎞= ⎜ ⎟ ⎜ ⎟
⎝ ⎠ ⎝ ⎠∑∑
IDCT:
N=8, C(u), C(v) = 1/√2 za u, v = 0, sicer 1
8
Zasnova dekodirnika MPEG-4
Strojna izvedba VLD dekodirnika (Lei-Sun)
Strojni koprocesor
Strojna izvedba IDCT (Chen)
Strojni koprocesor
RISC procesor(izvajanje programske kode za osrednji
del dekodirnika in prenos izvajanjakompleksnejših delov na strojne
koprocesorje )
Ločitev sistema na:
- programski del (SW)
- strojni del (HW)
5
9
Zasnova na nivoju FPGA vezja
Strojna pospešitev
Izpis napak in stanja
dekodiranja
Boot-up sekvenca in
kodiran MPEG-4 niz
Delovnispomin
Dostop donaprav izven FPGA vezja
Shranjevanjeprogramske
kode dekodirnika
Prikazdekodiranih
slik
- programski del (SW)
- strojni del (HW)
Programski deldekodirnika-
SWMPEG-4 decoder
10
Implementacija v FPGA vezju
Sporočila o napakah in opozorila
'DEBUG' 'UART''MC' enota za upravljanje s pomnilnikom
'VGA'
'IDCT' 'DEMUX''VLD'
WISHBONE POVEZOVALNO
OMREŽJE
VHODNO/IZHODNI PRIKLJUČKI
'JTAG' VMESNIK
CPU
D_W
B_S
CPU
I_W
B_S
UART_WB_M
CPE/DSP
'IMMU'
Upravljanje napajanja
DB I/F
'DEBUG'
ČASOVNIK
'PIC' 'DMMU'
WB_
I_M
'Dcache'16 KB
'Icache'16 KB
WB_
D_M
MC_WB_M VGA_WB_M
'CLKGEN'
UART_WB_S MC_WB_S VGA_WB_SRISC_DBG
DEM
UX_
WB_
S
SRAMvmesnikD
EMU
X_W
B_M
IDCT_WB_M MV-VLD_WB_M
MV-VLD_WB_SIDCT_WB_S
GO
SPO
DAR
VO
DIL
A
SUŽNJI VODILA
SUŽN
JI VOD
ILA
SUŽNJI VODILA
OR1200
MPEG-4DEKODIRNIK
Strojni del
Programski delDelovni spomin
Dostop do zunanjih naprav
Prikaz dekodiranihsekvenc
Kodiran MPEG-4 bitni niz
6
11
Zgradba FPGA vezja
IO Pads
IO P
ads
IO P
ads
IO Pads
Boundary Scan TAP Controller
Embedded System Bus
MemoryArray
CPUcore
IPCore
CustomCore
ICON
ILA
ILA
ILA
IBACustomLogic
ILA
Jedro predstavlja množica t.i. Slice-ov2x Slice na CLB2x LUT na CLB
Vgrajena logika/pomnilnik:Možnost uporabe že razvitih IP jeder
(primer: komun. Vmesnika za RS232, CRT)Možnost razvoja lastnih jeder
(koprocesorja za IDCT, VLD)Uporaba procesorskih elementov
(primer: RISC)Vgrajen/distriburiran pomnilnik
Do 128-bitni Block/LUT RAMMožnost verifikacije direktno na FPGA vezju
Virtex 2 PRO
CIN
SwitchMatrix
TBUFTBUFCOUTCOUT
Slice S0
Slice S1
Fast Connects
Slice S2
Slice S3
CIN
SHIFTCLBjedro
12
Zgradba FPGA vezja
7
13
• Prototipni FPGA sistem proizvajalca Flextronics
• Množica strojnih struktur (procesorska jedra, UART, VGA, MEMC) in
pomnilniških elementov (FLASH, SDRAM, SRAM).
• Uporabljen MPEG-4 video model MoMuSys.
• Opis in implementacija strojnih arhitektur v programskih paketih Synplify(Synplicity) in ISE Foundation (Xilinx).
VIRTEX 1600E BG560
- 2188742 sistemskih vrat
- 72x108 (7776) CLB blokov
- 724 vhodno/izhodnih blokov
- 589824 bitov RAM pomnilnika
Razvojno FPGA okolje
4 Mbyte SRAM
Xilinx Virtex 1600E (2188742 systemgates, 72x108 CLBs, 589824 bits of RAM, ...)
64 Mbyte SDRAM
32 Mbyte Flash
14
Postopek načrtovanja sistema
C/C++ prevajalnik
Povezovalnik (linker)
Vnos izvorne kode
Razhroščevanje (debugger)
Arhitekturni simulator
HW verifikacija
Orodja za opisStrojnega in
programskega dela
Potek načrtovanja programskega dela sistema
Potek načrtovanja strojnegadela sistema
FPGA prototipni sistem
Simulacija
Implementacija
Sinteza
HDL opis
Simulacijakode na
simulatorju? ?
Prenos v FPGA vezje Prenos v FPGA vezje
8
15
Načrtovanje strojnega dela sistema
Primer sinteze dekodirnika MPEG-4 s programskim paketom SynplifyPro
Hierarhičen pogled na sistem dekodirnika
z najvišjega nivoja
Sinteza dekodirnika izvisokonivojskega opisa(VHDL, Verilog, ...) na
nivo logičnih vrat – RTL nivo
16
Načrtovanje strojnega dela sistema
Primer sinteze dekodirnika MPEG-4 s programskim paketom SynplifyPro
Analiza maksimalnihzakasnitev na nivoju
logičnih vrat
9
17
Načrtovanje strojnega dela sistema
Vhodni RTL opis dekodirnika MPEG-4
(dekodirnik sintetiziran s paketom Synplify)
Prevajanje, mapiranje in povezovanje
z osnovnimi gradniki FPGA vezja
Programiranje FPGA vezja preko
JTAG protokola
Pregled porazdelitvedekodirnika znotraj FPGA
vezja
18
Načrtovanje strojnega dela sistema
Vpogled v porazdelitev dekodirnika MPEG-4 znotraj FPGA vezja
Osrednji-programski del dekodirnika MPEG-4
(RISC procesor)
Vezje strojnega koprocesorja
Hufmannovegadekodiranja
10
19
Načrtovanje strojnega dela sistema
Vpogled v porazdelitev dekodirnika MPEG-4 znotraj FPGA vezja
Podroben vpogled v
poljuben gradnik FPGA vezja
20
Načrtovanje strojnega dela sistema
Časovna/funkcijska simulacija sistema dekodirnika s programskim paketom ModelSim SE
11
21
Načrtovanje strojnega dela sistema
• Orodje ChipScope Pro razvijalcu omogoča dostop do poljubnega signala znotraj FPGA vezja
• Uporablja se za časovno spremljanje razmer v vezju
• Deluje po sistemu vzorčenja internih signalov FPGA-ja z internim/externimurinim signalom
• Ima vse osnovne značilnosti logičnih analizatorjev
Target Connection
IO Pads
IO P
ads
IO P
ads
IO Pads
Boundary Scan TAP Controller
Embedded System Bus
MemoryArray
PPC405Core
IPCore
CustomCore
ICON
ILA
ILA
ILA
IBACustomLogic
ILA
Prikaz verifikacije FPGA vezja v realnem času s programskim paketom ChipScope Pro proizvajalca Xilinx
22
Razvoj programskega dela sistema
Zagon razhroščevalnika
Prikaz orodja EDK za razvoj programske kode na vgrajenih mikroprocesorjih proizvajalca Xilinx
Zagon arhitekturnegasimulatorja
mikroprocesorja
Zagon prevajalnika,zbirnika, povezovalnika, ...
12
23
Rezultati
• 40% izkoristek FPGA vezja Virtex 1600E• Maksimalna frekvenca delovanja 66 MHz
N um ber of: R ISC 1200 ID C T V LDS LIC E s 22% 8% 10%
B lockR A M s 12% 0 0IO B s 90% 20% 6%
G C LK s 75% 75% 25%G C LK IO B s 90% 25% 25%
Rezultati implementacije dekodirnika MPEG-4 decoder
• Uporabljena ločena programska orodja za sintezo strojnega dela (Synplicity SynplifyPro za sintezo in Xilinx ISE Foundation software za končno FPGA implementacijo) in razvoj programskega dela dekodirnika (GNU GCC prevajalnik, povezovalnik, …)
• Celoten sistem smo opisali le v enem programskem jeziku (Verilog)
24
Koristne povezave
Brezplačen program za opis, sintezo in celovito implementacijo FPGAsistema proizvajalca XILINX - ISE WebPACK:http://www.xilinx.com/products/design_resources/design_tool/
Brezplačen program za funkcionalno in časovno simulacijo FPGA sistemaproizvajalca Mentor Graphics – ModelSim SE:http://www.model.com/products/60/downloads.asp
Gradivo o postopkih načrtovanja, opisa sistema, simulacije inimplementacije FPGA sistemov, na straneh LNIV:http://lniv.fe.uni-lj.si/education.html