I H C QU C GIA HÀ N I
TR
NG
I H C CỌNG NGH
PH M
C HI U
CỌNG NGH L P TRÌNH FPGA VĨ
NG D NG X
Lụ D
LI U A PH
LU N V N TH C S
HƠ N i ậ 2016
NG TI N
I H C QU C GIA HÀ N I
TR
NG
I H C CỌNG NGH
PH M
C HI U
CỌNG NGH L P TRÌNH FPGA VĨ
NG D NG X
Lụ D
LI U A PH
NG TI N
Ngành: Công ngh thông tin
Chuyên ngành: K thu t ph n m m
Mã s : 60480103
NG
IH
NG D N KHOA H C: TS. LÊ QUANG MINH
HƠ N i 2016
III
DANH M C CÁC Kụ HI U, T VI T T T
T vi t t t
Ngh a ti ng anh
FPGA
: Field-Programmable Gate Array
DSP
: Digital Storage Oscilloscop
RAM
: Ramdom Access Memory
ROM
: Read ậ only Memory
DLL
: Delay Locked Loop
ADC
: Analog-to-Digital Converter
ASIC
: Application-Specific Integrated Circuit
CPLD
: Complex Programmable Logic Device
DAC
: Digital - to - Analog Converter
DRAM
: Dynamic Ramdom Access Memory
EEPROM
: Electrically Erasable Programmable Read ậ Only Memory
FIFO
: First In First Out
HDL
: Hardware Description Language
I/O
: Input/Output
LAB
: Logic Array Block
LUT
: Look Up Table
PLA
: Programmable Logic Array
SPLD
: Simple Programmable Devices
SRAM
: Static Ramdom Access Memory
VHDL
: VHSIC hardware description language
VHSIC
: Very High Speed Itergrated Circuit
RTL
: Register Transfer Level
Avalon-ST
: Avalon Streaming
IV
DANH M C B NG
B ng 1-1
Các đ c tính c a công ngh l p trình
B ng 3-1
B ng mô t các tín hi u vƠo ra theo chu n Avalon-ST
V
M CL C
L I CAM OAN................................................ Error! Bookmark not defined.
L I C M N ..................................................... Error! Bookmark not defined.
Danh m c các ký hi u, t vi t t t ........................................................................ III
Danh m c b ng.................................................................................................... IV
DANH M C HÌNH ............................................ Error! Bookmark not defined.
M C L C ............................................................................................................ V
L IM
CH
U ....................................................................................................... 1
NG I: TỌNG QUAN V CỌNG NGH FPGA ....................................... 3
1.1. L ch s ra đ i FPGA .................................................................................. 3
1.2. S phát tri n c a FPGA ............................................................................. 3
1.2.1. C u trúc FPGA .................................................................................... 5
1.2.2. Phơn lo i FPGA................................. Error! Bookmark not defined.
1.2.3. Các công ngh l p trình FPGA ......... Error! Bookmark not defined.
1.3. Các l nh v c ng d ng c a công ngh FPGAError!
defined.
Bookmark
not
1.4. Qui trình thi t k FPGA ........................... Error! Bookmark not defined.
1.5. Ngôn ng l p trình trong FPGA............... Error! Bookmark not defined.
1.5.1. Ngôn ng VHDL ............................... Error! Bookmark not defined.
1.5.2. Ngôn ng Verilog.............................. Error! Bookmark not defined.
CH
NG II: M t s k thu t x lý nh ............ Error! Bookmark not defined.
2.1. K thu t nơng c p nh .............................. Error! Bookmark not defined.
2.1.1. Toán t đi m ..................................... Error! Bookmark not defined.
2.1.2 Toán t không gian ........................... Error! Bookmark not defined.
2.2. M t s k thu t l c nhi u ......................... Error! Bookmark not defined.
2.2.1. K thu t l c trung bình ..................... Error! Bookmark not defined.
2.2.2. K Thu t l c trung v ........................ Error! Bookmark not defined.
2.3. K thu t phơn ng
ng .............................. Error! Bookmark not defined.
2.3.1. K thu t phơn ng
ng t đ ng ......... Error! Bookmark not defined.
2.3.2. K Thu t s d ng các đi m biên....... Error! Bookmark not defined.
2.4. B l c mƠu bayer pattern vƠ thu t toán DemosaicError! Bookmark not
defined.
2.5. Ma tr n s a mƠu ....................................... Error! Bookmark not defined.
CH
PH
NG III: NG D NG CỌNG NGH FPGA X Lụ D LI U A
NG TI N d ng nh .................................. Error! Bookmark not defined.
3.1. Thi t l p bƠi toán th nghi m: ................. Error! Bookmark not defined.
3.2. L a ch n ph n c ng vƠ công c th nghi m:Error!
defined.
Bookmark
not
3.2.1. Gi i thi u kit DE2: ............................ Error! Bookmark not defined.
3.2.2. Gi i thi u ph n m m Quartus II ....... Error! Bookmark not defined.
3.3. Xơy d ng th nghi m............................... Error! Bookmark not defined.
3.3.1. Cách ti n hƠnh ................................... Error! Bookmark not defined.
3.3.2. Th c hi n Demo trên Kit DE2. ......... Error! Bookmark not defined.
3.3.3. ánh giá k t qu : .............................. Error! Bookmark not defined.
K T LU N ......................................................... Error! Bookmark not defined.
PH L C ............................................................ Error! Bookmark not defined.
TÀI LI U THAM KH O ..................................................................................... 6
1
L IM
U
Trong nh ng n m g n đơy v i s phát tri n c a công ngh bán d n trong
vi c t o ra nh ng b vi x lý vƠ vi đi u khi n, các h th ng đo l
khi n ngƠy cƠng thông minh h n, gi i quy t đ
ng vƠ đi u
c nhi u bƠi toán ph c t p h n.
Tuy nhiên các h th ng ngƠy cƠng hoƠn thi n h n, thông minh h n thì vi x lý
vƠ vi đi u khi n ch a th đáp ng h t nhu c u. S xu t hi n các thi t b có th
l p trình nh FPGA (Filed Progammable Gate Array đƣ t o ra b
c đ t phá. V i
công ngh FPGA đƣ có r t nhi u công trình nghiên c u gi i quy t các bƠi toán
l n nh bƠi toán x lý tín hi n s , m t mƣ vƠ nh n d ng. Các nghiên c u hi n
nay ch y u đi theo h
th
ng k t h p các b FPGA v i nh ng b x lý thông
ng trong m t chip t o ra h th ng m i RCS (reconfigurable Computing
System).
ơy lƠ m t mô hình m i trong thi t k các h th ng có kh n ng tính
toán r t m nh, thay th đ
c cho nh ng máy tính l n. Không nh ng th , các
thi t b nƠy có kh n ng tái l p trình nên các h th ng nƠy có đ linh ho t cao,
có th thay đ i l i c u hình đ đáp ng nhi u thu t toán hay các yêu c u khác
nhau v ph n c ng trong quá trình h th ng đang ho t đ ng.
Cùng v i s bùng n c a các m ng internet, m ng di đ ng lƠ các nhu c u
gi i trí, truy n thông đa ph
đa ph
ng ti n.
t ng ch t l
ng ti n thì vi c x lý các d li u đa ph
nay các gi i pháp x lý d li u đa ph
ng d ch v c a các d ch v
ng ti n lƠ r t c n thi t. Hi n
ng ti n đ u có chi phí r t cao. Do v y
m c đích c a nghiên c u nƠy lƠ ng d ng công ngh FPGA vƠo vi c x lý d
li u đa ph
ng ti n m t cách hi u qu .
Trong nh ng n m g n đơy, giám sát t đ ng lƠ môt trong nh ng l nh v c
đ
c quan tơm vƠ phát tri n r ng rƣi. M t trong nh ng lý do khi n giám sát t
đ ng phát tri n m nh m lƠ do s ti n b c a khoa h c vƠ kh n ng ng d ng
r ng kh p c a h th ng. Tuy nhiên, các h th ng s d ng các camera giám sát
do các đi u ki n khách quan nh ánh sáng thay đ i, ầ mƠ các hình nh, video
thu đ
c th
ng xu t hi n các nhi u vƠ ch t l
v y, m t h th ng x lý nơng cao ch t l
ng hình nh không đ
c t t. Vì
ng d li u hình nh, video thu đ
ct
2
camera lƠ c n thi t giúp cho h th ng giám sát ho t đ ng hi u qu h n. Do đó,
lu n v n l a ch n xơy d ng th nghi m h th ng x lý nh trên công ngh
FPGA nh m nơng cao ch t l
it
ng hình nh trong h th ng camera giám sát.
ng vƠ ph m vi nghiên c u:
1. Công ngh FPGA: các l nh v c ng d ng, các công c phát tri n
2. K thu t x lý nh.
3.
ng d ng công ngh FPGA x lý d li u hình nh
Nh ng n i dung chính: N i dung c a lu n v n g m ph n đ t v n đ , 3
ch
ng, k t lu n vƠ tƠi li u tham kh o.
Ch
ng I: T ng quan v công ngh FPGA
Ch
ng nƠy trình bƠy t ng quan v công ngh FPGA, các l nh v c ng
d ng c a công ngh nƠy vƠ các công c phát tri n, h tr l p trình trên FPGA.
Ch
ng II M t s k thu t x lý hình nh
Ch
ng nƠy trình bƠy các khái ni m c b n v hình nh, các lo i nhi u vƠ
gi i thi u m t s ph
ph
ng pháp x
lý hình nh, đánh giá hi u qu c a các
ng pháp x lý d li u hình nh.
Ch
ng III
ng d ng công ngh FPGA x lý d li u đa ph
ng ti n d ng
nh
Th c hi n thi t k lõi IP x lý nơng cao ch t l
ng hình nh, c th lõi IP
s xác đ nh các đi m nh b l i vƠ s a chúng, xác đ nh mƠu b ng ph
ng pháp
n i suy, s a ma tr n mƠu.
Ph n k t lu n c a lu n v n trình bƠy các k t qu đ t đ
ch c a lu n v n, h
c vƠ nh ng h n
ng phát tri n c a lu n v n trong các nghiên c u ti p theo.
3
CH
NG I: T NG QUAN V CỌNG NGH FPGA
1.1. L ch s ra đ i FPGA
N m 1984 Ross Freeman lƠ ng
ng
l
i đ u tiên thi t k PFGA vƠ c ng lƠ
i sáng l p công ty Xilinx. Ki n trúc m i c a FPGA cho phép tích h p s
ng l n các ph n t bán d n vƠo m t vi m ch so v i ki n trúc tr
c đó lƠ
CPLD. FPGA có kh n ng ch a t 100.000 đ n vƠi t c ng logic, trong khi
CPLD ch ch a t 10.000 đ n 100.000 c ng logic, con s nƠy đ i v i PAL vá
PLA còn th p h n r t nhi u ch đ t vƠi nghìn đ n 10.000 c ng logic.
SPLD th
ng lƠ m t m ng logic AND/OR l p trình đ
xác đ nh vƠ ch a m t s l
c có kích th
c
ng h n ch các ph n t nh đ ng b (clocked
register). C u trúc nƠy h n ch kh n ng th c hi n nh ng hƠm ph c t p vƠ
thông th
ng hi u xu t lƠm vi c c a vi m ch ph thu c vƠo c u trúc c th c a
vi m ch h n lƠ vƠo yêu c u bƠi toán.
Ki n trúc c a FPGA lƠ ki n trúc m ng các kh i logic, kh i logic nh h n
nhi u n u đem so sánh v i m t kh i SPLD, u đi m nƠy giúp FPGA có th ch a
nhi u h n các ph n t logic vƠ phát huy t i đa kh n ng l p trình c a các ph n
t logic vƠ h th ng m ch k t n i, đ đ t đ
c m c đích nƠy thì ki n trúc c a
FPGA ph c t p h n nhi u so v i CPLD. M t đi m khác bi t v i CPLD lƠ trong
nh ng FPGA hi n đ i đ
c tích h p nhi u nh ng b logic s h c đƣ s b t i u
hóa h tr RAM, ROM t c đ cao, hay các b nhơn.
NgoƠi kh n ng tái c u trúc vi m ch toƠn c c, FPGA hi n t i còn h tr
tái c u trúc m t b ph n riêng l trong khi v n đ m b o ho t đ ng bình th
ng
cho các b ph n khác.
1.2. S phát tri n c a FPGA
Các thi t b l p trình đ
c, g i chung lƠ các thi t b kh trình, có vai trò
r t quan tr ng trong thi t k ph n c ng s . Chúng lƠ các chíp đa d ng có th
đ
c c u hình theo nhi u cách cho nhi u ng d ng khác nhau.
4
+ Lo i đ u tiên c a thi t b kh
trình đ
c s
d ng r ng rƣi lƠ
Programmable read-only Memory-PROM. PROM lƠ thi t b l p trình ch đ
c
m t l n g m m t dƣy các ô nh ch đ c. PROM có th th c hi n b t k m t hƠm
logic theo b ng s th t nƠo đó, b ng cách s d ng các đ
ngõ nh p vƠo vƠ ngõ xu t đ
ng đ a ch nh các
c xác đ nh n i dung các bít nh . Có hai lo i
PROM c b n lƠ Mask-Programmable vƠ Field-Programmable.
- Mask-Programmable lƠ lo i thi t b đ
chíp nƠy th
b đ
c l p trình b i nhƠ s n xu t. Các
ng s n xu t các chíp lôgíc t c đ cao vì các k t n i bên trong thi t
c th c hi n b ng ph n c ng ngay t khi s n xu t.
- Field-Programmable lƠ thi t b đ
c l p trình b i ng
i dùng. Các k t
n i bên trong c a Field-Programmable luôn c n đ n m t s chuy n m ch l p
trình đ
c (c u chì, transistor truy n…) vì v y t c đ truy n ch m h n c a thi t
b n i c ng ( Mask-Programmable). Tuy nhiên nó có nhi u u đi m nh :
. Các chíp Field-Programmable có th l p trình trong th i gian ng n
(kho ng vƠi phút hay vƠi gi đ ng h ) còn các chíp Mask-Programmable khi
s n xu t ph i th c hi n trong th i gian dƠi (hƠng tu n hay hƠng tháng).
. Các chíp Field-Programmable r
Programmable khi s n xu t v i s l
h n nhi u so v i Mask-
ng nh .
Hai bi n th c a PROM lƠ EPROM chúng đ u có chung u đi m lƠ có kh
n ng xoá vƠ l p trình l i nhi u l n.
Ti p đ n lƠ các thi t b PLD, chúng thông th
các c ng AND đ
ng có c u t o g m m t dƣy
c n i v i m t dƣy các c ng OR. Lo i c b n c a PLD lƠ
PAL, PAL g m m t kh i các c ng AND l p trình đ
c n i đ n các kh i c ng
OR c đ nh. M t lo i n a c a PLD linh ho t h n PAL lƠ PLA. PLA c ng có c u
trúc gi ng PAL nh ng các k t n i kh trình. Trong PLA c ng có hai lo i lƠ
Mask-Programmable vƠ Field-Programmable.
C hai lo i PLD trên cho phép th c hi n các m ch logic có t c đ cao tuy
nhiên c u trúc đ n gi n c a chúng ch cho phép th c hi n đ
c nh .
c các m ch logic
5
Lo i thi t b kh trình t ng quát nh t g m dƣy các ph n t r i r c có th
k t n i v i nhau theo mô t c a ng
i s d ng, đ
c g i lƠ Mask-Programmable
Gate Array (MPGA) chúng có c u trúc c b n nh t lƠ g m các hƠng transistor
có th đ
c k t n i v i nhau đ th c hi n các m ch logic. Các k t n i do ng
dùng đ nh ngh a nƠy có th trong c hƠng vƠ c c t.
i
u đi m chính c a MPGA
so v i PLD lƠ nó cung c p các ki n trúc t ng quát cho phép th c hi n các m ch
logic l n h n. Vì c u trúc c a chúng có th m r ng l n h n cùng v i s l
ng
logic l n h n.
FPGA đƣ k t h p kh n ng l p trình c a PLD vƠ k t c u n i có th m r ng
c a MPGA. Do đó các thi t b l p trình lo i nƠy có m t đ logíc cao h n. FPGA
đ
c công ty Xilinx gi i thi u l n đ u tiên vƠo n m 1985 vƠ đ n nay đƣ có nhi u
công ty phát tri n nh : Actel, Altera, Plessey, Plus logic, Quick...
1.2.1. C u trúc FPGA
Hình 1-1. C u trúc FPGA
6
TĨI LI U THAM KH O
[1]. PGS.V Quý
i m (ch biên), Ph m V n Tuơn, Nguy n Thúy Anh,
Lê Phú, Nguy n Ng c V n ậ C s k thu t đo l
ng đi n t - NXB Khoa
H c vƠ K Thu t 2006.
[2]. Tr n Ng c Ph ng, Tr n Th
i m, Cao Tr n B o Th
ng, Hu nh
H u Thu n, - th c hi n m t s thu t toán dò tìm chuy n đ ng trên FPGA - H i
Ngh Khoa H c Tr
ng
i H c KHTN l n 5, (2006).
[3] Mani B. Srivastava. VHDL tutorial. UCLA ậ EE.
[4] System Generator for DSP (Getting started Guide, Reference Guide,
User Guide). Xilinx.
[5] Nguy n Tr ng H i - Bài gi ng Verilog -
H K thu t công ngh
TPHCM.
[6] Nguy n Vi t Kính, Tr nh Anh V - Thông tin s - NXBGD.
[7] Jim Lewis, Coding a 40x40 Pipelined Multiplier in VHDL (version
online: />MAPLD_2002_S_BW.pdf)
[8] ISO/IEC 15444-1,Information Technology-JPEG2000 Image Coding
System, Part 1: Core Coding System, 2000
[9] PENG Zhou, ZHAO Bao-jun, High-throughout hardware architecture
of MQ arithmetic coder, International Conference on Signal Processing (ICSP),
October, 2010, pp. 430-433
[10] Michael Dyer, David Taubman, Saeid Nooshabadi, Improved
throughput arithmetic coder for JPEG2000, International Conference on Image
Processing, vol. 4, October, 2004, pp. 2817-2820
[11] Manjunath Gangadhar, Dinesh Bhatia, FPGA based EBCOT
architecture for JPEG 2000, International Conference on Field-Programmable
Technology (FPT), December, 2003, pp. 228-233
7
[12] Taoufik Saidani, Mohamed Atri, Rached Tourki, Implementation of
JPEG 2000 MQ-Coder, International Conference on Design and Technology of
Integrated Systems in Nanoscale Era, March, 2008, pp. 1-4
[13] Kai Liu, Yu Zhoub,Yun Song Li,Jian Feng Ma, A high performance
MQ encoder architecture in JPEG2000, the VLSI Journal, vol. 43, no. 3, June,
2010, pp. 305-317
[14] Minsoo Rhu, In-Cheol Park, Optimization of Arithmetic Coding for
JPEG2000, IEEE Transactions on Circuits and Systems for Video Technology,
vol. 20, no. 3, March, 2010, pp. 446-451 118 T p chí Khoa h c vƠ K thu t H c vi n KTQS s 153 (4-2013)
[15] Tinku Acharya, Ping-Sing Tai, JPEG2000 Standard for Image
Compression: Concepts, Algorithms and VLSI Architectures, New Jersey,
U.S.A: John Wiley & Sons, chapter 5, 2005, pp. 185-195
[16] Wael M. El-Sharkasy, Mohamed E. Ragab, Hardware modelling of
JPEG2000 MQ-encoder, International Conference on Intelligent and Advanced
Systems (ICIAS), vol. 2, June, 2012, pp. 707-712
[17] Altera, Avalon Interface Specifications, California, U.S.A, 2011, pp.
35 - 44
[18] Altera, Stratix III Device Handbook, California, U.S.A, 2011
[19] Lê Quang Minh, TƠi li u bƠi gi ng môn “Công ngh l p trình
nhúng”, K20-CNPM, Tr
ng
i h c Công ngh - HQGHN.
[20] Giáo trình: Công ngh ph n m m nhúng, Nguy n Ng c Bình, NXB
HQGHN, HƠ N i, 2013.