Tải bản đầy đủ (.docx) (71 trang)

THIẾT kế bộ lọc NHIỄU để KHÔI PHỤC ẢNH TRÊN nền CÔNG NGHỆ FPGA (có code)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.73 MB, 71 trang )

ĐỒ ÁN TỐT NGHIỆP

THIẾT KẾ BỘ LỌC NHIỄU ĐỂ KHÔI
PHỤC ẢNH TRÊN NỀN CÔNG NGHỆ
FPGA


DANH MỤC CÁC TỪ VIẾT TẮT
FPGA

Field Programmable Gate Array

ADC

Analog to Digital Converter

AMBA

Advanced Microcontroller Bus Architecture

ASIC

Application Specific Integrated Circuit

BUS

Bus System

CLB

Configurable Logic Blocks



CPU

Central Processing Unit

VHDL

VHSIC Hardware Description Language

VHSIC

Very High Speed Integrated Circuit


ĐỒ ÁN TỐT NGHIỆP
Trang 3/71

CHƯƠNG 1. KHÁI QUÁT VỀ ĐỀ TÀI
1.1 Giới thiệu
Thiết kế bộ lọc nhiễu để khôi phục ảnh trên nền công nghệ FPGA.
 Nghiên cứu về công nghệ FPGA:
-

Kiến trúc của FPGA.

-

Phân biệt các loại FPGA.

-


Công nghệ FPGA có các đặc tính lập trình như thế nào?

-

Sự khác nhau giữa các công nghệ khác với FPGA.

 Tìm hiểu về hình ảnh:
- Khái quá về hình ảnh.
- Nguyên nhân gây ra nhiễu.
- Phân biệt các loại nhiễu ảnh.
- Cách xử lý nhiễu ảnh.
 Áp dụng công nghệ FPGA để tạo chip xử lý ảnh nhiễu.

1.2 Phương thức nghiên cứu:
- Tìm hiểu chung về hình ảnh.
-

Các nhiễu ảnh thường gặp.

-

Cách xử lý nhiễu ảnh.

-

Sử dụng phần mền Quatus II.

-


Sử dụng ngôn ngữ lập trình VHDL.

-

Sử dụng Matlab và KIT DE2-115 mô phỏng.

Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục
Ảnh Trên Nền Công Nghệ FPGA


ĐỒ ÁN TỐT NGHIỆP
Trang 4/71

CHƯƠNG 2. ẢNH SỐ
2.1

Một số khái niệm về ảnh số:

2.1.1 Điểm ảnh:
Mọi hình ảnh ta nhìn thấy đều là những tín hiệu tương tự, nhưng ta thu lại và
chuyển đổi thành tín hiệu số để xử lý bằng máy tính, điều này ta gọi là số hóa. Số
hóa ảnh là biến đổi sự liên tục của hình ảnh thành những tập hợp điểm ảnh rời rạt
phù hợp với với ảnh thật về không gian và độ sáng. Khoảng cách của các điểm ảnh
phải được xử lý sao cho mắt người không thể thấy được ranh giới giữa các điểm
ảnh. Một điểm ảnh như vậy ta gọi là một Pixel (PEL: Picture Element). Trong
không gian ảnh hai chiều, mỗi pixel ứng với cặp tọa độ (x, y).

Hình 2-1: Một pixel trong một khung ảnh[5].

Mỗi điểm ảnh là một phần tử của ảnh số tại tọa độ (x, y) với độ xám và màu nhất

định. Khoảng các và kích thước mỗi điểm ảnh phải được chọn sao cho phù hợp đê
mắt người nhìn thấy không bị mất cảm nhận về sự liên tục của bức ảnh về không
gian hay màu sắc so với ảnh thật. Mỗi phần tử trng ma trận ảnh được gọi là phần tử
ảnh.

Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục
Ảnh Trên Nền Công Nghệ FPGA


ĐỒ ÁN TỐT NGHIỆP
Trang 5/71

2.1.2 Độ phân giải ảnh:
Độ phân giải (Resolution) của ảnh là mật độ điểm ảnh được phân bố trên một
tấm ảnh số.
Chúng ta định nghĩa, khoảng các giữa các điểm ảnh phải lụa chọn sao cho khi
xem ảnh vẫn thấy được sự liện tục của tấm ảnh. Việc lựa chọn khoảng cách thích
hợp, phân bố mật độ theo trục x và y trong không gian hai chiều tạo nên độ phân
giải của bức ảnh.

Hình 2-2: Ba độ phân giải phổ biến của một khung ảnh hiện nay[5].

2.1.3 Mức xám của ảnh:
Chúng ta định nghĩa cường độ ánh sáng tại một điểm ảnh là mức xám của điểm
ảnh đó. Hiện nay chúng ta thường có những thang đo mức xám phổ biến như: 16,
32, 64, 128, 256. Hiện nay chúng ta thường dùng 1 byte (8 bit) để biển diễn mức
xám, nên mức 256 là mức được dung phổ biến nhất hiện nay.
Mức xám và vị trí (x, y) trong một không gian ảnh là những đặc trưng cơ bản
của một điểm ảnh.
2.1.4 Quan hệ giữa các điểm ảnh:

Một ảnh số sẽ được biểu diễn trong không gian ảnh 2 chiều bằng hàm toán học
f(x, y). Tập hợp con các điểm ảnh là S. quan hệ giữa các cặp điểm ảnh được gọi là
p, q. Thì các lân cận của điểm ảnh sẽ được xét như sau:
Giả sử điểm ảnh p tại tọa độ (x, y). Thì lân cận p có 4 điểm theo chiều đứng và
ngang:
N4(p) = {(x - 1, y); (x + 1, y); (x, y - 1); (x, y + 1)}

Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục
Ảnh Trên Nền Công Nghệ FPGA


ĐỒ ÁN TỐT NGHIỆP
Trang 6/71

Và 4 điểm lân cận theo phương chéo:
ND(p) = {(x - 1, y - 1); (x - 1, y + 1); (x + 1, y -1); (x + 1, y + 1)}
Từ đó ta suy ra được tập kết hợp 8 điểm lân cận p là:
N8(p) = N4(p) + ND(p)

(X-1, Y+1)

(X, Y+1)

(X+1, Y+1)

(X-1, Y)

(X, Y)

(X+1, Y)


(X, Y-1)

(X+1, Y-1)

(X-1, Y-1)
Hình 2-3: : Các lân cận của điểm ảnh.

2.1.5 Ảnh nhị phân:
Là ảnh có chỉ có hệ thống màu đơn giản
nhất chỉ được mô tả hai màu đen và trắng
trong một pixel, nên chỉ cần biểu diễn bằng
một bit là 21 mức khác nhau, nói các khác
mỗi điểm ảnh của ảnh nhị phân chỉ có thể là 0
hoặc 1. Ảnh nhị phân thường thấy là ảnh văn
bản, kiến trúc hoặc dấu vân tay...
2.1.6 Ảnh Gay sacle:
Là ảnh có một hệ thống màu đơn giản. với

Hình 2-4: Ảnh nhị phân[5].

256 cấp độ xám biến thiên từ màu đen đến màu trắng. Người ta chia mức đen trắng
đó thành L mức. Nếu được sử dụng số bit là B = 8bits để mã hóa mức xám thì L
được xác định như sau:
L = 2B = 28 = 256 mức
Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục
Ảnh Trên Nền Công Nghệ FPGA


ĐỒ ÁN TỐT NGHIỆP

Trang 7/71

Như vậy mỗi pixel được biểu diễn. bằng 1byte hoặc 8bits. Ảnh này thường được
sử dụng trong công nghiệp in ấn lẫn trong y khoa (ảnh X-ray).
2.1.7 Ảnh màu:
Trong thế giới màu sắc chúng ta. thường lấy 3 màu đỏ, lục, lam (red, green,
blue: RGB) làm màu cơ bản để tạo nên thế giới màu, trong. ảnh số chúng được tập
hợp lại thành khối lập phương đơn vị, trên đường chéo chính thể hiện cấp độ tỷ lệ
tương đương của 3 màu sắc cơ bản ứng với mức độ xám từ đen (0, 0, 0) đến trắng
(1, 1, 1).

Hình 2-5: Mô hình màu RGB.

Biểu diễn ảnh màu:
Ảnh màu được biểu diễn bằng 3. vector 3 chiều gồm fR (x, y), fG (x, y), fB(x, y)
thể hiện màu RGB của một pixel tại vị trí (x,y):
f(x, y) = { fR(x, y), fG(x, y), fB(x, y)}
Màu sắc còn có thể biễu. diễn với các mô hình khác như:
• Mô hình HSV (Hue - Saturation – Value) là mô hình dựa trên HSV là
không. gian màu được dùng nhiều trong việc chỉnh sửa ảnh, phân tích
ảnh và một phần của lĩnh vực thị giác máy tính. Hệ không gian này
dựa vào 3 thông số sau để mô. tả màu sắc H = Hue: màu sắc, S =
Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục
Ảnh Trên Nền Công Nghệ FPGA


ĐỒ ÁN TỐT NGHIỆP
Trang 8/71

Saturation: độ đậm đặc, sự bảo hòa, V = value: giá trị cường độ sáng.

Không gian màu này thường được biểu. diễn dưới dạng hình trụ hoặc
hình nón.
• Mô hình CMY (Cyan – Magenta - Yellow) là không gian màu được sử
dụng phổ biến trong ngành công. nghiệp in ấn. Ý tưởng cơ bản của hệ
không. gian này là dùng 4 màu sắc cơ bản để phục vụ cho việc pha
trộn mực in. Trên thực tế, người ta dùng 3 màu là C=Cyan: xanh lơ,
M=Magenta: hồng xẫm, và Y=Yellow: vàng để biểu diễn các màu sắc
khác nhau.
2.2 Khái niệm về một số loại nhiễu trong ảnh:
Như chúng ta đã biết, ở mọi nơi truyền thông. tin đều có nhiễu. Nhiễu ảnh
hưởng đến độ chính xác và tin cậy của thông tin. Trong hình ảnh cũng vậy, nhiễu
ảnh hưởng đến chất lượng của hình ảnh, làm sai lệch về màu sắc làm cho bức ảnh
truyền tải đến người xem không rõ. Một số loại nhiễu chúng ta thường gặp là:
2.2.1 Nhiễu Gauss:
Nhiễu Gauss được gọi là nhiễu. điện tử vì nó gây ra trong các bộ khuếch đại
hoặc máy dò. Nhiễu Gauss là nhiễu cộng và độc lập. Nhiễu phân tán Gauss được
diễn tả bởi độ lệch chuẩn hoặc phương sai. Mỗi pixel trong ảnh có giá trị đúng và
ngẫu nhiên, vì vậy nhiễu Gauss phân bố đều và ngẫu nhiên. Những dao . động ngẫu
nhiên của tín hiệu có mực độ xác suất là:

Nếu ta có ảnh I, nhiễu Gauss
là N, ảnh nhiễu là N + I.
Với:

g là cường độ.
µ là giá trị. trung bình.
σ là độ lệch chuẩn.
σ 2 là phương sai của g.
Hình 2-6: Hàm mật độ xác suất
nhiễu Gauss


Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục
Ảnh Trên Nền Công Nghệ FPGA


ĐỒ ÁN TỐT NGHIỆP
Trang 9/71

2.2.2 Nhiễu Rayleigh:
Khoảng cách và vận. tốc truyền ảnh của
radar chứa nhiễu có thể được thể hiện bởi
phân bố Rayleigh [6].

Trị trung bình:

Hình 2-7: Hàm biểu diễn nhiễu Rayleigh.[6]

Phương sai:

2.2.3

Nhiễu Gamma (Erlang):
Nhiễu Gamma thường. thấy xảy ra
trong các thiết bị máy chiếu. Nó tuân
theo phân phối Gamma.
[6]

Hình 2-8: Hàm mật độ xác suất nhiễu Erlang.[6]

2.2.4

h

N
i

ễn Exponentical:
Đây là trường hợp đặc biệt của nhiễu Erlang
khi b=1.

2.2.5 Nhiễu Photon (nhiễu Poisson):

Hình 2-9: Hàm biểu diễn nhiễu
Exponentical.[6]

Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục
Ảnh Trên Nền Công Nghệ FPGA


ĐỒ ÁN TỐT NGHIỆP
Trang 10/71

Nhiễu này thường xuất hiện do sóng điện. từ như tia X, ánh sáng nhìn thấy hay
tia gamma. Các nguồn phát tia X, tia gamma sẽ phát ra số lượng photon trên một
đơn vị thời gian. Trong các máy ảnh tia X và tia. gamma y tế, những tia này được
đưa vào cơ thể bệnh nhân từ nguồn phát xạ. Những nguồn này có sự dao động ngẫu
nhiên của các photon. Kết quả thu thập hình ảnh có ngẫu nhiên không gian và thời
gian. Nhiễu này còn được gọi là nhiễu lượng tử (photon) hoặc nhiễu bắn. Nhiễu này
tuân theo phân phối Poisson sau:

2.2.6 Nhiễu xung (nhiễu muối tiêu):

Một trong các loại nhiễu thường làm hỏng hình. ảnh kỹ thuật số nhiễu xung.
Nhiễu xung có thể được phân thành hai loại: nhiễu xung có giá trị cố định và nhiễu
xung ngẫu nhiên. Nhiễu xung có giá trị cố định còn được gọi là nhiễu muối tiêu mà
độ xám của pixel có ảnh hưởng bởi nhiễu là tối thiểu. hoặc tối đa theo độ xám của
ảnh. Độ xám của các điểm ảnh bị ảnh hưởng nhiễu bởi nhiễu xung ngẫu nhiên có độ
xám được phân bố đồng đều trong khoảng [0,255] của ảnh, mật độ xác suất là:
P(z) =
Nếu b > a cường độ b sẽ hiện ra như các chấm trắng
trong ảnh. Ngược lại cường độ a sẽ hiện các chấm đen.
Nếu Pa hoặc Pb là 0 thì nhiễu này được gọi là nhiễu đơn
cực. Nếu xác suất khác 0 và chúng gần bằng nhau thì
nhiễu xung sẽ tương ấn có các hạt muối và tiêu được phân bố theo xác suất ngẫu
nhiêu trên hình.
2.3 Bộ lọc median:
Hình 2-10: Hàm mật độ nhiễu muối tiêu. Lọc trung vị là lọc phi tuyến. Một phép. lọc
[6]

phi tuyến là một kết quả không thể thu được

từ một tổng trọng số của các điểm ảnh (Pixel) lân cận. Sau khi đã định nghĩa kích
thước vùng lân cận, giá trị điểm ảnh (Pixel) trung tâm được thay bằng trung vị tức
là giá trị chính giữa của tất cả các giá trị của các điểm trong vùng lân cận.

Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục
Ảnh Trên Nền Công Nghệ FPGA


ĐỒ ÁN TỐT NGHIỆP
Trang 11/71


Cho một dãy số X1, X2, X3, ..., Xn được sắp xếp theo thứ tự tăng dần hoặc giảm
dần. Khi đó XM được tính bởi công thức:
Nếu n lẻ:

Nếu n chẵn:
Trong khóa luận này chúng ta sẽ thiết kế bộ lọc trung vị để lọc nhiễu cho



ảnh, vì bộ lọc này thích hợp để lọc nhiễu muối tiêu.
2.4 Tỷ số tín hiệu trên nhiễu (PSNR):
Tỷ số tín hiệu trên nhiễu thường được gọi là PSNR. (Peak signal-to-noise ratio)
được dùng để so sánh sự ảnh hưỡng của nhiễu so với ảnh góc. Công thức tính là:
Với: MSE (Mean squared error) là bình. phương trung bình của lỗi được tính
như sau:
MAXI là số pixel tối đa có thể có của ảnh:

Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục
Ảnh Trên Nền Công Nghệ FPGA


ĐỒ ÁN TỐT NGHIỆP
Trang 12/71

CHƯƠNG 3. TÌM HIỂU FIELD-PROGRAMMABLE GATE ARRAY
(FPGA)
3.1 Khái quát về FPGA:
Field-programmable. gate array (FPGA) là một loại mạch tích hợp dùng. cấu
trúc mảng phần tử logic mà người dùng có thể lập. trình được mà không phụ thuộc
vào dây chuyền sản xuất phức tạp của nhà máy bán dẫn.

Bộ nhớ tĩnh đầu tiên. dựa trên FPGA (thường được gọi là SRAM trên nền
FPGA) được đề xuất bởi Wahlstrom vào năm 1967. Sau đó bản thương. mại của
FPGA được Xilinx giới thiệu vào năm 1984. Lúc này nó gồm có một mảng. của các
khối logic có thể tái cấu hình – Configurable Logic Blocks (CLBs) và các đầu vào
ra – I/O (input/output). Chip FPGA đầu tiên chứa. 64 CLBs và 58 I/Os. Ngày nay,
FPGA có thể chứa khoảng 330,000 CLBs và khoảng 1100 I/Os. Phần lớn các sản
phẩm FPGA trên thị trường hiện nay đều dựa trên công nghệ. SRAM với 2 hãng sản
xuất lớn nhất là Xilinx và Altera. Ngoài ra còn có các hãng khác sản xuất FPGA
nhưng với mục đích chuyên dụng (Atmel, Actel, Lattice, SiliconBlue...).

(b)

(a)

Hình 3-11: (a) Spartan XC3S400 của hãng Xilinx, có 400.000 cổng và tần số 50MHz-80Mhz.
(b) Dòng FPGA Stratix của hãng Altera[4].

Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục
Ảnh Trên Nền Công Nghệ FPGA


ĐỒ ÁN TỐT NGHIỆP
Trang 13/71

FPGA là một loại. vi mạch bán dẫn ASIC, nhưng FPGA không đựợc tối ưu như
ASIC, và hạn chế trong khả năng thực hiện. những tác vụ đặc biệt phức tạp, tuy vậy
FPGA ưu việt hơn ở chỗ có thể tái cấu trúc lại khi đang sử dụng, công đoạn thiết kế
đơn giản do vậy chi phí giảm, rút ngắn thời. gian đưa sản phẩm vào sử dụng.
So với các dạng vi mạch bán dẫn lập trình được dùng cấu trúc mảng phần tử
logic như PLA, PAL, CPLD thì FPGA ưu. việt hơn như: việc tái lập trình thực hiện

đơn giản hơn, khả năng lập trình linh động hơn, đặt biệt là kiến trúc của FPGA cho
phép nó có khả năng chứa khối lượng lớn cổng logic (logic gate) so với các vi mạch
bán dẫn lập trình có trước nó.
Thiết kế hay lập trình cho FPGA được thực. hiện chủ yếu bằng các ngôn ngữ mô
tả phần cứng HDL như VHDL, Verilog, AHDL.
3.1.1 Cấu trúc của FPGA:
FPGA được thiết kế bởi 3 thành phần chính: Configurable Logic Blocks (CLBs)
là khối logic thực hiện các chức năng logic, chúng ta có thể lập trình cấu trúc được,
Programmable Interconnect có thể lập trình. để kết nối các đầu vào và đầu ra của
các CLB và các khối I/O bên trong, I/O Blocks cung cấp giao tiếp giữa các ngoại vi
với các tín hiêu bên trong.

Hình 3-12: Kiến trúc tổng quan của FPGA[4].

Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục
Ảnh Trên Nền Công Nghệ FPGA


ĐỒ ÁN TỐT NGHIỆP
Trang 14/71

Lập trình khối logic trong FPGA nhầm cung. cấp các tính toán và các phần tử
nhớ cơ bản được sử dụng trong hệ thống số. Một phần tử logic cơ bản gồm một .
mạch tổ hợp có thể lập trình, một Flip-Flop hoặc một chốt (latch). Ngoài khối logic
cơ bản đó, nhiều Chip FPGA còn có một hỗn hợp các khối khác nhau dùng cho các
chức năng cụ thể, chẳng hạn như các khối bộ nhớ. chuyên dụng, các bộ nhân
(multipliers) hoặc các bộ ghép kênh (multiplexers). Cấu hình bộ nhớ được sử dụng
trên tất cả các khối logic để điều khiển. các chức năng cụ thể của mỗi phần tử bên
trong khối đó.


Hình 3-13: Ví dụ về một CLBs được thiết kế[4].

 Programmable Interconnect:
Các liên kết trong một FPGA dùng để. liên kết các khối logic và I/O lại với
nhau để tạo thành một thiết kế. Bao gồm bộ ghép kênh, các transistor và cổng
đệm ba trạng thái. Nhìn chung, các transistor và bộ ghép kênh được dùng
trong một cụm logic để kết nối các phần tử logic lại với nhau, trong khi đó cả
ba đều được dùng cho các cấu trúc định tuyến. bên trong FPGA. Một số FPGA
cung cấp nhiều kết nối đơn giản giữa các khối logic, một số khác cung cấp ít
kết nối hơn nên định tuyến phức tạp hơn.
 I/O Blocks:

Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục
Ảnh Trên Nền Công Nghệ FPGA


ĐỒ ÁN TỐT NGHIỆP
Trang 15/71

I/O cung cấp giao tiếp giữa các khối logic và kiến trúc định tuyến đến các
thành phần bên ngoài. Một trong những vấn đề quan trọng nhất trong thiết kế
kiến trúc I/O là việc lựa chọn các tiêu chuẩn điện áp cung cấp và điện áp tham
chiếu sẽ được hỗ trợ.
Theo thời gian, các kiến trúc FPGA. cơ bản càng được phát triển hơn thông
qua việc bổ sung các khối chức năng đặc biệt có thể lập trình, như bộ nhớ
trong (Block RAMs), logic số học (ALU), bộ nhân, DSP-48 và thậm chí là bộ
vi xử lý nhúng được thêm vào do nhu cầu của các nguồn tài nguyên cho một
ứng dụng. Kết quả là nhiều FPGA ngày nay có nhiều nguồn tài nguyên hơn so
với các FPGA trước đó.
3.1.2 Phân loại FPGA

FPGA có rất nhiều loại khác nhau với cấu trúc. và đặc tính riêng được phát triển
theo từng hãng sản xuất, tuy nhiên chúng đều được phát triển từ bốn cấu trúc chính
sau: mảng đối xứng (Symmetrical Array), PLD phân cấp (hierachircal PLD), cấu
trúc hàng (Row base) và đa cổng (Sea of Gate) như hình 3-4.

Hình 3-14: Phân loại FPGA [4]

3.1.3 Công nghệ lập trình FPGA:
 Công nghệ lập trình dùng RAM tĩnh:

Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục
Ảnh Trên Nền Công Nghệ FPGA


ĐỒ ÁN TỐT NGHIỆP
Trang 16/71

-

Công nghệ lập trình dùng RAM tĩnh (SDRAM) sử dụng công nghệ CMOS
tiêu chuẩn. Các kết nối lập trình được điều khiển bằng các transistor khác
trên chip hoặc bật (On) các transistor. truyền dẫn cũng như các cổng
transistor để tạo một kết nối hay tắt (Off) để ngắt kết nối. Trong các FPGA sử
dụng công nghệ lập trình SRAM, các khối logic có thể được kết hợp với
nhau qua cách kết hợp cả bộ dồn kênh (Multiplexer) và cổng truyền dẫn

-

(pass-gate).
Vì SRAM là bộ nhớ bay hơi, các FPGA này phải được tái cấu hình mỗi khi

cấp nguồn cho chip. Vì vậy ta cần bộ phận lưu trữ riêng như ROM hay đĩa

-

từ.
Các chip được thực hiện theo công nghệ SDRAM có diện tích khá lớn, bởi vì
cần ít nhất 5 transistor cho mỗi RAM Cell cũng như các transistor cần thêm
cho cổng truyền dẫn hay. bộ dồn kênh. Ưu điểm của kỹ thuật này là cho phép
FPGA có thể được tái cấu hình ngay trên mạch rất nhanh và nó có thể được

chế tạo bằng công nghệ CMOS chuẩn.
 Các thiết bị lập trình cầu chì nghịch (Anti-fuse):
- Công nghệ lập trình anti-fuse được sử dụng trong các FPGA của Actel-Corp,
-

Quick Logic và Cross Point Solution.
Tuy anti-fuse được sử dụng trong các loại FPGA này có cấu tạo khác nhau,

-

nhưng chức năng của chúng là như nhau.
Một anti-fuse bình thường sẽ ở trạng thái cao, nhưng có thể bị “nóng chảy”
thành trạng thái điện trở. thấp khi được lập trình ở điện thế cao.

Ứng dụng của công nghệ FPGA là thế hệ .sau của IC khả trình nên chúng có thể
ứng dụng trong hầu hết các ứng dụng hiện nay đang dùng MPGA, PLD và các mạch
tích hợp loại nhỏ (SSI).
-

Các mạch tích hợp là ứng dụng đặc biệt FPGA là thiết bị tổng quát nhất để

thực hiện các mạch lôgic số. Chúng đặc biệt thích hợp cho các mạch tích hợp

-

chuyên dụng đặc biệt (ASIC) như bộ cộng, bộ điều khiển logic Flip-Flop...
Thiết kế mạch ngẫu nhiên mạch logic ngẫu nhiên thường được thực hiện
bằng PAL. Nếu tốc độ của mạch không. đòi hỏi khắt khe (các PAL nhanh

Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục
Ảnh Trên Nền Công Nghệ FPGA


ĐỒ ÁN TỐT NGHIỆP
Trang 17/71

hơn hầu hết các FPGA) thì mạch có thể thực hiện bằng FPGA. Hiện nay một
FPGA cần từ 10 đến 20 PAL.
Bảng 3-1 Các đặc tính của công nghệ lập trình [2]
Công nghệ lập

Tính bay

Có thể lập

trình

hơi

trình




Trong mạch

Static RAM
Cell
PLICE Antifuse
ViaLink Anti-

Diện tích chíp

R(Kohm)

C(pf)

Lớn

1-2

10-20

300-500

3-5

50-80

1-3

Anti-fuse nhỏ

Không

Không
Số transistor lớn
Anti-fuse nhỏ

Không

Không

EPROM

Không

Ngoài mạch

Nhỏ

2-4

10-20

EEPROM

Không

Trong mạch

2xEPROM


2-4

10-20

fuse

-

Số transistor lớn

Thay thế các chip SSI bằng FPGA để giảm diện tích bo mạch.
Giá thành thực hiện thấp và thời. gian thiết kế vật lý ngắn, cung cấp các ưu
điểm hơn nhiều so với các phương tiện truyền thống khác để chế tạo mẫu
phần cứng. Các mẫu ban đầu có thể thực. hiện rất nhanh và những thay đổi

-

sau đó được thực hiện rất nhanh và ít tốn kém.
Một loại máy tính dựa trên FPGA có thể tái lập trình ngay trên FPGA. Các
máy này có một bo mạch chứa các FPGA với các chân nối với các chip lân
cận giống như thông thường. Ý tưởng là một chương trình phần mềm có thể
được “biên dịch” (sử dụng kỹ thuật. tổng hợp mức cao, mức logic và mức sơ
đồ bằng tay) vào ngay phần cứng. Phần cứng này sẽ được thực hiện bằng
cách lập trình bo mạch FPGA. Lợi ích là không cần quá trình lấy lệnh như
các bộ xử lý truyền thống vì phần cứng đã gộp cả lệnh nên tốc độ có thể tăng

Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục
Ảnh Trên Nền Công Nghệ FPGA



ĐỒ ÁN TỐT NGHIỆP
Trang 18/71

lên hàng trăm lần và môi trường tính toán có thể thực hiện song song mức
-

cao, làm tăng tốc thêm nữa.
Tái cấu hình thành phần trực tiếp. FPGA cho phép có thể thay đổi theo mong
muốn cấu trúc của một máy đang hoạt động.

3.1.4 So sánh FPGA với các công nghệ khác
 FPGA với CPLD

Bảng 3-2 So sánh FPGA và CPLD [3]
FPGA

CPLD

Đều là loại vi mạch. logic lập trình được.
Giống nhau

Đều được là cell logic.
Đều được kết hợp từ khối logic và Flip-Flop.

Là linh kiện fine-grain
Có nhiều cell logic với
các khối logic nhỏ.

Giống RAM


Là linh kiện "coarsegrain", nghĩa là có rất ít
cell logic so với FPGA
các khối logic lớn.
Giống EEPROM

Khác nhau
Có nhiều tài nguyên
định tuyến đặc biệt để
thực hiện. các chức
năng toán học như các

Không có.

bộ đếm, bộ cộng, bộ so
sánh, v.v…
 FPGA với ASIC

Bảng 3-3: So sánh FPGA và ASIC [3]
Time to market

FPGA
Ngắn

Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục
Ảnh Trên Nền Công Nghệ FPGA

ASIC
Dài



ĐỒ ÁN TỐT NGHIỆP
Trang 19/71

NRE
Thiết kế
Khả năng lập trình lại
thiết kế
Tái sử dụng
Công suất
Giá cả thị trường
Tốc độ
Công cụ thiết kế

3.2

Không. có
Đơn. giản


Phức tạp

Dễ. dàng

Khó khăn

Được
Lớn
Đắt
Chậm hơn
Rẻ


Không
Nhỏ
Thấp
Nhanh. hơn
Đắt

Kit DE2-115:

3.2.1 Giới thiệu:
Board DE2 là board mạch phục vụ cho việc nghiên. cứu. và phát triển về các lĩnh
vực luận lý số học (digital logic), tổ chức máy tính (computer organization) và
FPGA.
Kit DE2 cung cấp cho người sử dụng nhiều đặc điểm linh. hoạt để học tập và có thể
phát triển nhiều dự án đa phương tiện khác nhau. Chúng được thiết kế không những
phù hợp cho môi trường họp tập ở các trường. đại học và cao đẳng mà còn phù hợp
với cả trong môi. trường làm việc công nghiệp. Các khối thiết kế ứng dụng trên KIT
được chọn lọc dựa trên những thiết kế phổ. biến nhất trong các sản phẩm đa phương
tiện như DVD, VCD, MP3 player và nhiều ứng dụng điều khiển khác... Kit DE2
cho phép người dùng nhanh chóng thấu hiểu được những thủ thuật để thiết kế các
dự án công nghiệp. Ngoài ra nó còn cung cấp một nền tảng kiến thức cơ bản cho
người dùng đam mê trong lĩnh vực thiết kế vi mạch. như phát triển những hệ thống
kỹ thuật số tinh vi.

Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục
Ảnh Trên Nền Công Nghệ FPGA


ĐỒ ÁN TỐT NGHIỆP
Trang 20/71


Hình 3-15: Kit DE2-115[5].

3.2.2 Cấu tạo:
Board DE2 cung cấp khá nhiều tính. năng hỗ trợ cho việc nghiên cứu và phát triển,
dưới đây là thông tin chi tiết của một board DE2:
• FPGA:
- Vi mạch FPGA Altera Cyclone IV E.
- Vi mạch Altera Serial Configuration – EPCS16.
• Các thiết bị xuất nhập:
- USB Blaster cho lập trình và. điểu khiển API của người dùng; hỗ trợ
cả 2 chế độ lập trình JTAG và AS.
- Bộ điều khiển Cổng 10/100 Ethernet.
- Cổng VGA-out.
- Bộ giải mã TV và cổng nối TV-in.
- Bộ điều khiển USB Host/Slave. với cổng USB kiểu A và kiểu B.
- Cổng nối PS/2 chuột/bàn phím.
- Bộ giải mã/mã hóa âm thanh 24-bit chất lượng đĩa quang với jack
cắm line-in, line-out, và microphone.
- 2 Header mở rộng 40-pin với lớp bảo vệ diode.
- Cổng giao. tiếp RS-232 và cổng nối 9-pin.
- Cổng giao. tiếp hồng ngoại.

Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục
Ảnh Trên Nền Công Nghệ FPGA


ĐỒ ÁN TỐT NGHIỆP
Trang 21/71


Hình 3-16: Sơ đồ khối Kit DE2-115[5].

• Bộ nhớ:
- SRAM 512-Kbyte.
- SDRAM 8-Mbyte.
- Bộ. nhớ flash 4-Mbyte (1 số mạch là 1-Mbyte).
- Khe SD card.
• Switch, các đèn led, LCD, xung clock.
- 4 nút nhấn, 18 nút gạt.
- 18 LED đỏ, 9 LED xanh, 8 Led 7 đoạn.
- LCD 16x2
- Bộ dao động 50-MHz và 27-MHz cho đồng hồ nguồn.
Trong khóa luận này, những khối. sẽ được sử dụng là: USB Blaster, Vi mạch FPGA
Altera Cyclone IV E, Cổng giao tiếp RS-232, nút nhấn, LED và Bộ dao động 50MHz. Là những khối được viền đỏ như hình 3-6.
3.2.3

Một vài ứng dụng kit DE2[5]
• Ứng dụng làm TV box:

Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục
Ảnh Trên Nền Công Nghệ FPGA


ĐỒ ÁN TỐT NGHIỆP
Trang 22/71

Hình 3-17: Ứng dụng TV box. [5]

• Ứng dụng USB Paint Brush:


Hình 3-18: Ứng dụng USB Paint Brush.[5]

• Ứng dụng USB Device:

Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục
Ảnh Trên Nền Công Nghệ FPGA


ĐỒ ÁN TỐT NGHIỆP
Trang 23/71

Hình 3-19: Ứng dụng USB Device.[5]

• Ứng dụng Karaoke:

Hình 3-20: Ứng dụng Karaoke. [5]

3.3

Ngôn ngữ mô tả phần cứng (Hardware Description Language-HDL):
Ngôn ngữ mô tả phần cứng. bao gồm VHDL, Verilog, SystemC và

Handle-C thường được sử dụng để lập trình FPGA. VHDL và Verilog phát
triển như là một chuẩn công nghiệp và là hai ngôn . ngữ phổ biến nhất hiện
nay. Xilinx ISE và Altera Quartus là 2 phần mền đều hỗ trợ VHDL và
Verilog. Trong khóa luận này chúng. ta sử dụng ngôn ngữ VHLD để lập
trình cho Kit DE2 trên phần mền Quartus.

Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục
Ảnh Trên Nền Công Nghệ FPGA



ĐỒ ÁN TỐT NGHIỆP
Trang 24/71

VHDL (VHSIC hardware description language) là một ngôn ngữ lập trình
dùng để diễn tả phần cứng, dùng trong . thiết kế điện tử tự động, để diễn tả
những hệ. thống điện tử dùng trong FPGA và IC.
VHDL là ngôn ngữ mô tả phần cứng cho . các mạch tích hợp tốc độ rất cao,
là một loại ngôn ngữ mô tả phần cứng được phát triển dùng . cho trương
trình VHSIC (Very High Speed Itergrated Circuit) của bộ quốc phòng Mỹ.
Mục tiêu của việc phát triển VHDL là có được một ngôn . ngữ mô phỏng
phần cứng tiêu chuẩn và thống nhất cho phép thử nghiệm các hệ thống số
nhanh hơn cũng như cho phép dễ dàng. đưa các hệ thống đó vào ứng dụng
trong thực tế. Ngôn ngữ VHDL được ba công ty Intermetics, IBM và Texas
Instruments bắt đầu nghiên cứu phát triển vào . tháng 7 năm 1983. Phiên
bản đầu tiên được công bố vào tháng 8-1985. Sau đó VHDL được đề xuất
để tổ chức IEEE xem xét thành một tiêu. chuẩn chung. Năm 1987 đã đưa ra
tiêu chuẩn về VHDL (tiêu chuẩn IEEE-1076-1987).
Cấu trúc mô hình mô tả bằng VHDL:
Thông thường một mô hình VHDL. bao gồm ba phần: thực thể, kiến trúc
và các cấu hình. Đôi khi ta xử dụng các gói (packages) và mô hình kiểm tra
hoạt động của hệ thống (testbench).
Thực thể (entity) của mô hình:
Phần khai báo thực thể chỉ rõ tên và liệt kê các I/O có dạng như sau:
3.3.1.1

Entity <tên thực thể> is
Generic <khai báo Generic>;
Port<khai báo các tín hiệu I/O>;

End<tên thực thể>;

Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục
Ảnh Trên Nền Công Nghệ FPGA


ĐỒ ÁN TỐT NGHIỆP
Trang 25/71

Một thực thể luôn bắt đầu với từ khóa entity, theo sau là tên của thực thể
và từ khóa is. Rồi đến các khai. báo cổng với từ khóa port. Một thực thể
luôn kết thúc với từ khóa end và tên của thực thê.
• Tên thực thể là tên của thực thể người lập trình đặt.
• Các tín hiệu I/O: tên của các . tín hiệu do người lập trình đặt,

ngăn cách bởi dấu phẩy, chỉ ra các tín hiệu nối với bên ngoài.
• Các chế độ của tín hiệu khai. báo trong port chỉ ra chiều của
tín hiệu, có các mode sau:
- in: dùng cho tín hiệu đi vào thực thể.
- out: dùng cho tín hiệu đi ra khỏi thực thể.
- budder: dùng cho tín hiệu đi ra và có thể được đọc cả bên
trong thực thể.
- inout: dùng cho tín. hiệu vào và ra khỏi thực thể.
Kiến trúc của mô hình:
Cấu trúc của nó như thế sau:
3.3.1.2

Achitecture <tên kiến trúc> of <tên thực thể> is
[các phần khai báo: signal, component…]
Begin

[code]
End <tên kiến trúc>;
Trong kiến trúc mô hình chúng ta . có thể khai báo tất cả mọi thứ liên quan
tới chương trình, trong đó có các process, các chương trình con với lời gọi
hàm component, khai báo các signal. và các lệnh port map để kết nối các
thành phần con có trong kiến trúc.
CHƯƠNG 4. THIẾT KẾ BỘ LỌC NHIỄU MEDIAN
4.1

TRÊN CÔNG NGHỆ FPGA

Thiết Kế Bộ Lọc Nhiễu Để Khôi Phục
Ảnh Trên Nền Công Nghệ FPGA


×