Thiết bị logic lập trình được PLDs đã cung cấp một giải pháp về phần cứng cho cấu trúc xử lý tín hiệu với yêu cầu tốc độ thực thi cao và tính linh hoạt.. Với việc thực thi cấu trúc wavel
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA NGÀNH KỸ THUẬT ĐIỆN TỬ
LUẬN VĂN THẠC SĨ
CẤU TRÚC VLSI CHO BIẾN ĐỔI WAVELET RỜI RẠC
VLSI ARCHITECTURES FOR THE DISCRETE WAVELET TRANSFORM
GVHD : TS LÊ TIẾN THƯỜNG HVTH : TRƯƠNG QUANG VINH
TP HCM Tháng 07 năm 2002
Trang 2Lời Cảm Ơn
Luận án tốt nghiệp là một bước ngoăïc then chốt quan trọng nhất trong mỗi học viên Nó là chiếc cầu nối vô hình giữa lý thuyết và thực tế
Em xin gởi đến thầy Lê Tiến Thường lời cảm ơn chân thành với sự trân trọng và lòng biết ơn sâu sắc về sự hướng dẫn đầy chu đáo và nhiệt tình của Thầy đã dẫn dắt em trong suốt thời gian thực hiện đề tài luận văn này_ một kết tinh của những kiến thức nền tảng quý giá
Và em cũng xin chân thành gởi lời cảm ơn rất nhiều đến các thầy cô trong Khoa Điện - Điện tử đã rất tận tình, hết lòng chỉ bảo và truyền đạt cho
em những kiến thức vô cùng quý giá để góp phần rất lớn trong quá trình từng bước hoàn chỉnh luận văn
Nhân dịp này, em xin gởi đến gia đình, bạn bè, đồng nghiệp một lời cảm ơn chân tình_ những người đã hết lòng giúp đỡ, động viên, tạo mọi điều kiện thuận lợi trong suốt thời gian qua để em có được cơ hội hoàn thành luận án tốt nghiệp
Trang 3Multirate signal processing is a sophisticated technology that brings DSP techniques to applications required low-cost and high sample rates Programmable logic devices (PLDs) provide system-level hardware solutions for signal processing architectures demanded both high-performance and flexibility The thesis provides VLSI architechtures for Discrete Wavelet transform (DWT) These architechtures represente Mallat’s pyramid algorithm for the Wavelet Haar By implementing of the wavelet based structures with Field Programmable Gate Arrays (FPGA) using Hardware Describe Language (HDL), the report will show a powerful tool to develop hardware for digital signal processings (DSPs)
TÓM TẮT
Xử lý tín hiệu đa tần là một công nghệ ứng dụng kỹ thuật DSP vào những vấn đề đòi hỏi phải đạt tốc độ cao với giá thành rẻ Thiết bị logic lập trình được (PLDs) đã cung cấp một giải pháp về phần cứng cho cấu trúc xử lý tín hiệu với yêu cầu tốc độ thực thi cao và tính linh hoạt Luận án này sẽ trình bày một số cấu trúc VLSI hiệu quả để thực hiện biến đổi Wavelet rời rạc (DWT) Cấu trúc VLSI này thực hiện thuật toán thuật toán hình tháp của Mallat cho Wavelet Haar Với việc thực thi cấu trúc wavelet trên FPGA bằng ngôn ngữ mô tả phần cứng HDL, luận án này sẽ cho thấy một công cụ phát triển phần cứng mạnh mẽ cho các hệ thống xử lý số tín hiệu
Trang 4Lời Cảm Ơn
Abstract
1 Giới thiệu……… 1-1
1.1 Tổng quan về đề tài……… 1-2 1.2 Tổ chức của báo cáo luận án……… 1-3 1.3 Những công việc liên quan……… 1-3
2 Wavelets……… 2-1
2.1 Khai triển chuỗi tín hiệu và các loại vector hàm cơ sở ……… 2-2 2.1.1 Khai triển chuỗi của tín hiệu……….… 2-3 2.1.2 Các loại vector hàm cơ sở……… 2-3 2.1.3 Xử lý tín hiệu đa tần……… 2-5 2.2 Cơ sở Wavelets rời rạc……… … 2-9 2.2.1 Đặc điểm cơ sở Wavelets rời rạc ….…… 2-9 2.2.2 Khai triển chuỗi của tín hiệu rời rạc …… 2-10 2.3 Bộ lọc hai kênh … …… 2-18 2.3.1 Phân tích bộ lọc ……… 2-19 2.3.2 Phân tích theo khía cạnh thời gian ………… ….…… 2-19
3 Thiết kế số hiện đại với VHDL……… 3-1
3.1 Khuynh hướng phát triển của ngành thiết số……….… 3-2 3.2 Những công cụ hỗ trợ thiết kế số……… 3-3 3.2.1 Các thiết bị logic lập trình được……… 3-3 3.2.2 Ngôn ngữ mô tả phần cứng……… 3-4 3.2.3 Phần mềm hỗ trợ thiết kế số……… 3-5
Trang 53.3.4 Các công nghệ lập trình chip……… 3-14 3.3.5 Các loại FPGA……… 3-20
3.4.1 Khái quát về VHDL……… 3-22 3.4.2 Cấu trúc ngôn ngữ VHDL……… 3-25 3.4.3 Các kiểu dữ liệu……… 3-46 3.4.4 Các toán tử……… 3-59
4 Cấu trúc VLSI cho biến đổi Haar Wavelets ……… 4-1
4.1 Mô tả thuật toán……… 4-2 4.1.1 Hàm cơ sở rời rạc của Haar Wavelets ……… 4-2 4.1.2 Biểu diễn khai triển Haar Wavelets bằng bộ lọc phân tích…… 4-2 4.1.3 Khôi phục khai triển Haar Wavelets bằng bộ lọc tổng hợp…… 4-3 4.1.4 Thực hiện bộ lọc Haar Wavelets bằng cấu trúc số……… 4-4 4.2 Các cấu trúc khai triển Haar Wavelets ……….… 4-5 4.2.1 Cấu trúc song song……… 4-64.2.2 Cấu trúc nối tiếp……… 4-12 4.2.3 Cấu trúc dùng dual-port RAM……… 4-17 4.3 Cấu trúc khôi phục khai triển Haar Wavelets ……… 4-20 4.3.1 Cấu trúc khôi khai triển Haar Wavelets song song……… 4-20 4.3.2 Ứng dụng cấu trúc khôi phục khai triển Wavelets để
triệt nhiễu tín hiệu (denoise)……… 4-23
5 Thiết kế phần cứng với FPGA……… 5-1
5.1 Ý tưởng thiết kế……… 5-2
5.2 Phần cứng hỗ trợ_ Kit UP1 của Altera……….… 5-3 5.2.1 Giới thiệu……… 5-3
Trang 65.3.1 Vài nét cơ bản về cổng máy in……… 5-11 5.3.2 Sơ đồ mạch giao tiếp……… 5-14 5.4 Mạch biến đổi AD_DA……… 5-17 5.4.1 Khối biến đổi AD……… 5-17 5.4.2 Khối biến đổi DA……… 5-24 5.4.3 Sơ đồ chi tiết mạch AD_DA……… 5-26 5.5 Thiết kế chi tiết của mô hình……… 5-28
5.5.2 Mô hình 2……… 5-29
6 Thực hiện biến dổi Wavelets trên FPGA……… 6-1
6.1 Thử nghiệm mô hình 1……… 6-2 6.1.1 Thiết lập cấu hình phần cứng……… 6-2 6.1.2 Kết quả thử nghiệm……… 6-3 6.2 Thử nghiệm mô hình 2……… 6-6 6.2.1 Thiết lập cấu hình phần cứng……… 6-6 6.2.2 Kết quả thử nghiệm……… 6-7
7 Đánh giá kết quả và hướng phát triển……… 7-1
7.1 Đánh giá kết quả……….……… 7-2 7.2 Hướng phát triển……… 7-3
Tài liệu tham khảo
Phụ lục
Trang 71
GIỚI THIỆU
1.1 Tổng quan về đề tài……… 1-2
1.2 Tổ chức của báo cáo luận án….… … 1-3
1.3 Các công việc liên quan … … 1-3
Trang 81.1 Tổng quan về đề tài:
Trong những thập niên gần đây, biến đổi wavelets đã được rất nhiều nhà
khoa học quan tâm, đặc biệt là sau khi thuật toán biến đổi wavelets rời rạc
(DWT) được phát triển bởi Mallat ra đời DWT có thể được xem như phương
pháp phân tích tín hiệu với độ phân giải đa tần Điều này có nghĩa là nó
phân tích tín hiệu thành những thành phần trong dải tần số khác nhau Biến
đổi DWT ngược sẽ tái tạo lại được chính xác tín hiệu gốc Những ứng dụng
của phép biến đổi này rất đa dạng, như lọc nhiễu, xử lý ảnh hay nén tín
hiệu…
Trên thế giới hiện nay, có rất ít công trình thực hiện DWT trên VLSI Cấu
trúc phần cứng đầu tiên để tính toán DWT được thiết kế bởi Knowles Cấu
trúc này không phù hợp tốt cho VLSI vì nó sử dụng nhiều bộ multiplexor
cho các chương trình con tính các kết quả trung gian Sau đó Lewis và
Knowles đã thiết kế phần cứng để tính 2-D DWT Mặt hạn chế chính của
cấu trúc này là nó phụ thuộc nhiều vào tính chất của dạng wavelets
Daubechies 4-tap Thực sự nó đã không cần bộ nhân trong phần cứng, nhưng
nó lại không thích hợp cho các dạng wavelets khác Hãng Aware Inc đã cho
ra đời thế hệ chip gọi là bộ xử lý biến đổi wavelets ( WTP – Wavelet
Transform Processor) Nó bao gồm một bộ lọc 4- tap (chính là 4 tế bào nhân
tích lũy), bộ nhớ ngoài , và bộ điều khiển Bộ xử lý này không có đặc điểm
nổi bật nào về cấu trúc phần cứng tính toán DWT mà chỉ dựa chủ yếu vào
phần mềm để tính DWT Gần đây, Parhi và Nishitani đã phát minh ra cấu
trúc “cuộn” và cấu trúc chuỗi số cho 1-D DWT Cấu trúc này không tỉ lệ với
kích thước bộ lọc và số lần tính toán theo bậc mũ 2
Đề tài luận văn này sẽ trình bày một cấu trúc VLSI cho biến đổi wavelets
rời rạc với thuật toán hình tháp đệ quy kết hợp với cấu trúc bộ lọc đa tần tối
ưu để đạt được tính xử lý thời gian thực Mô hình biến đổi wavelets sẽ được
thi công để minh hoạ cho đề tài này
Trang 91.2 Tổ chức của báo cáo luận án:
Chương 1 giới thiệu tổng quan về đề tài luận án, các công trình khoa học đã
được thực liên quan đến đề tài
Chương 2 trình bày khái quát kiến thức về Wavelets, các đặc tính, ứng dụng
và phương pháp phân tích Wavelets dùng bộ lọc 2 kênh
Trong chương 3, báo cáo luận án giới thiệu phương pháp thiết kế số hiện đại
với ngôn ngữ VHDL kết hợp với các công cụ phần cứng FPGA Chương này
cho thấy một cái nhìn mới về thiết kế số
Chương 4 trình bày các các thiết kế cho cấu trúc biến đổi Haar Wavelets
Chương này trình bày 3 cấu trúc biến đổi wavelet là cấu trúc song song, nối
tiếp và cấu trúc dùng RAM Các cấu trúc đều được minh hoạ trên phần
mềm Max+plusII
Chương 5 trình bày thiết kế mô hình thi công minh hoạ cho đề tài, bao gồm
hai mô hình phần cứng với những sơ đồ mạch chi tiết
Chương 6 mô tả các thử nghiệm trên hai mô hình Mô hình phần cứng được
kiểm tra và ghi nhận lại kết quả
Chương 7 trình bày các kết luận, đánh giá và hướng phát triển đề tài Các
kết quả sau khi chạy thực nghiệm (bằng mô hình phần cứng) và chạy mô
phỏng (bằng phần mềm Max+plusII) sẽ được tổng hợp để đánh giá
1.3 Các công việc liên quan
Ngoài nhiệm vụ chính của Luận án là thiết kế cấu trúc VLSI cho biến đổi
Wavelets, tác giả còn nghiên cứu thiết kế các mạch giao tiếp analog –
digital và mạch giao tiếp với máy tính để thực hiện mô hình thi công minh
hoạ cho đề tài Để thực thi cấu trúc Wavelet trên FPGA, tác giả phải hiểu rõ
về FPGA và ngôn ngữ VHDL để lập trình cho thiết bị Công cụ chính để
thực hiện mô hình là phần mềm Max+plus II và phần cứng KIT UP1 của
hãng Altera, một hãng nổi tiếng về công nghệ FPGA
Trang 102
WAVELETS
2.1 Khai triển chuỗi tín hiệu và các loại vector hàm cơ sở 2-2
2.1.1 Khai triển chuỗi của tín hiệu……… 2-2
2.1.2 Các loại vector hàm cơ sở……… 2-3
2.1.3 Xử lý tín hiệu đa tần……… 2-5
2.2 Cơ sở Wavelets rời rạc……… … 2-9
2.2.1 Đặc điểm cơ sở Wavelets rời rạc ….… 2-9
2.2.2 Khai triển chuỗi của tín hiệu rời rạc … 2-10
2.3 Bộ lọc hai kênh … … 2-18
2.3.1 Phân tích bộ lọc ……… 2-19
2.3.2 Phân tích theo khía cạnh thời gian ………… … 2-19
Trang 112.1 KHAI TRIỂN CHUỖI TÍN HIỆU VÀ CÁC LOẠI VECTƠ HÀM CƠ
SỞ
Trong toán học cũng như thực tiễn áp dụng, chúng ta cần tìm tập hợp những
hàm cơ sở của một không gian, sao cho có thể biểu diễn tín hiệu ở dạng tổ
hợp tuyến tính của các hàm cơ sở Biến đổi Fourier sử dụng những hàm cơ
sở tuần hoàn cosine và sine Wavelets cũng là một loại hàm cơ sở khai triển
tín hiệu Tuy nhiên cơ sở wavelet đa dạng, phức tạp hơn nà vẫn đang được
những nhà toán học quan tâm nghiên cứu phát triển
2.1.1 Khai triển chuỗi của tín hiệu
Cho trước tín hiệu x trong không gian S; S có kích thước hữu hạn (ví
dụ không gian thực n chiều Rn, không gian phức n chiều Cn) hay kích
thước vô hạn (ví dụ không gian L2(Z), không gian L2(R) ), chúng ta
cần tìm tập hợp những hàm cơ sở { ϕi(t) } (i∈ Z) của S sao cho có thể
biểu diễn tín hiệu x ở dạng tổ hợp tuyến tính của các hàm cơ sở
{ϕi(t)} (i∈ Z), nghĩa là
∑
=
i i i
Ta biết , những hàm cơ sở { ϕi(t) } (i∈ Z) được gọi là đầy đủ đối với
S, nếu mọi tín hiệu x∈S đều có thể khai triển theo dạng tổ hợp tuyến
tính như trên Trong trường hợp đó, cũng tồn tại những hàm cơ sở đối
ngẫu { ϕi-(t) } (i∈ Z) thuộc S, sao cho những hệ số khai triển αi có thể
được tính như sau:
• Nếu x và ϕi- là những hàm rời rạc, trị thực thì:
x n
x
i i
i ϕ~[ ] [ ] ϕ~,
• Nếu x và ϕi- là những hàm liên tục, trị thực thì:
x dt
t x
Trang 12Chú ý: Những công thức tính hệ số khai triển tín hiệu αI trên đây,
chính là tích vô hướng của vector cơ sở đối ngẫu {ϕ~i}(i∈Z) với vector
tín hiệu x
2.1.2 Các loại vector hàm cơ sở
Những loại vector hàm cơ sở quan trọng trong khai triển tín hiệu,
được quan tâm nghiên cứu là :
1 Những vector hàm cơ sở {ϕi(t)} (i ∈ z) của không gian S thỏa
mãn tính chất:
+ Đầy đủ và độc lập tuyến tính + Trực giao lẫn nhau và có độ dài bằng đơn vị +Những vector {ϕi } (i ∈ Z) đồng nhất với {ϕ~i } (i ∈ Z)
Khi đó ta gọi hàm cơ sở {ϕi (t)} (i ∈ Z) là cơ sở trực chuẩn
• Độc lập tuyến tính nhưng không trực giao lẫn nhau
Những vector hàm cơ sở đối ngẫu {ϕ~i } (i ∈ Z) là cặp cơ sở trực giao
(biorthogonal basis), hoặc nói gọn là cặp trực giao
3 Những vector hàm cơ sở {ϕ~i } (i ∈ Z) của không gian S thỏa
mãn tính đầy đủ nhưng không độc lập tuyến tính với nhau, ta gọi là một cơ sở khung (frame) hoặc nói gọn là khung
Trang 13Ví dụ : Trong mặt phẳng R2 có cơ sở Euclide chuẩn là e0 = [1 0] và e0
= [0 1]
(1) Hình vẽ sau mô tả cơ sở trực
chuẩn
1 1
0 0
~2/]11
[
~2/]11
[
ϕϕ
ϕϕ
e0
ϕ0
ϕ1
H 2.1 : Cơ sở trực chuẩn
(2) Hình vẽ sau mô tả cơ sở trực giao
0 0 1
0 0
0
~2/]11[
]11
ϕϕ
e1=
ϕ~ 1
2 / 1
2 / 1
−
2/1
ϕ0= e0
ϕ1
ϕ~
1
H 2.2 : Cặp cơ sở trực giao
(3) Hình vẽ sau mô tả một khung
] 2 / 3 2
/ 1 [ 3 2
~
] 2 / 3 2
/ 1 [ 3 2
2
~
: :
] 2 / 3 2
/ 1 [
] 2 / 3 2
/ 1 [
2
1
0 0
2
1
0 0
ϕ0 = e0
2 3
−
ϕ2
ϕ1
-1/2 1
Trang 14Wavelets có 03 loại hàm cơ sở Hiện nay, người ta quan tâm nhiều
đến nghiên cứu 2 loại là wavelets trực chuẩn_orthonornal wavelets
(như wavelets Haar, wavelets sinc, wavelet Daubechies … ) và
wavelet cặp trực giao_biorthogonal wavelets (như wavelets B-spline)
Trong phần sau khi nói đến wavelet tức là 02 loại vừa nêu
2.1.3 Xử lý tín hiệu đa tần
Xử lý tín hiệu đa tần là đề cập tới việc xử lý tín hiệu rời rạc được lấy
mẫu ở những tần số khác nhau Người ta có thể lấy mẫu lại ở những
tần số khác nhau từ tín hiệu thời gian liên tục, nhưng thông thường
việc thay đổi tần số lấy mẫu có thể được làm trong miền thời gian rời
rạc Đó là kỹ thuật Downsampling và Upsampling sẽ được trình bày
sau đây:
Downsampling và Upsampling một chuỗi tín hiệu x[n] bởi tham số N
(N là số tự nhiên) sẽ tạo ra kết quả là một chuỗi y[n] cho bởi:
Nghĩa là, tất cả các mẫu có chỉ số khác không là bội số của N đều bỏ
Trong miền Fourier, ta có:
) (
1 ) (
N
k
N k j j
e X N e
Vậy, phổ tín hiệu đã bị kéo dài ra N lần, và N-1 thành phần chập phổ
(aliased) ở những đoạn 2π xuất hiện Chúng được gọi là aliased bởi vì
chúng là bản sao của phổ tín hiệu gốc (đã kéo dài N lần), nhưng dịch
đi một đoạn tần số Do vậy, những thành phần tần số thấp sẽ lặp lại ở
những đoạn tần số ωi = 2πi/N Một số thành phần tần số cao sẽ bị
chập với thành phần tần số thấp và như vậy những thành phần đó sẽ
không còn điều hòa với thành phần tần số tín hiệu gốc Điều này sẽ
gây ra nhiễu trong những ứng dụng audio Đôi khi nó lại hữu ích khi
mở rộng quan hệ trên trong miền biến đổi Z
Trang 15=
0 k
N / 1 k
W ( X N
1 ) z (
Ở đây, WN = e-j2π/N Để chứng minh công thức trên, hãy xét tín hiệu
x’[n] bằng với tín hiệu x[n] ở các chỉ số n là bội số của N còn các
thành phần khác bằng không Nếu x[n] có biến đổi Z là X(z) thì X’(z)
k
N z ) W ( X N
1 ) z ( '
Sử dụng tính chất ta có y[n] từ x’[n] bằng cách
bỏ những dãy số không ở giữa đoạn có khoảng cách N Điều này có
được bằng cách thay z bằng z
Wkn N
)(WNkz X ej( k2 /N
Trang 16Hình 2.4: Downsampling 3 lần trong miền tần số (a) phổ tín hiệu gốc
(b) 3 thành phần chập phổ và tổng Y(ejω)
Xét một ví dụ sau, với trường hợp N = 3 Điều hiển nhiên là để tránh
hiện tượng chập phổ downsampling N lần phải được thực hiện sau
một bộ lọc thông thấp lý tưởng với tần số cắt π/N (xem hình) Đáp
ứng xung của nó cho bởi:
∫
π π
ω
π
π
=ωπ
en
/
/sin2
1]
Quá trình ngược lại của Downsampling là Upsampling M lần Nghĩa
là, để có một chuỗi mới, đơn giản chỉ là chèn M-1 số 0 giữa các mẫu
0
,]
/[][
Trong miền Fourier, ta có:
Y(ejω) = X(ejMω) (2.9) Tương tự như vậy trong miền Z ta có:
Trang 17Khi upsampling, phổ tín hiệu sẽ rút lại M lần Bên cạnh những thành
phổ cơ bản ở những đoạn 2π, còn có những ảnh phổ do quá trình chèn
các số 0 vào trong khi upsampling Để loại bỏ những ảnh phổ này,
phải có một bộ lọc thông thấp với tần số cắt là π/M được cho ở hình
Hình 2.5: Thay đổi tần số lấy mẫu
(a) Downsampling N lần với phía trước là bộ lọc thông thấp lý tưởng
tần số cắt π/N
(b) Upsampling M lần với phía sau là bộ lọc thông thấp lý tưởng tần
số π/M
(c) Thay đổi tần số lấy mẫu M/N lần, với bộ lọc ở giữa có tần số cắt
là min(π/M, π/N)
Trang 182.2 CƠ SỞ WAVELETS RỜI RẠC
2.2.1 Đặc điểm cơ sở Wavelets rời rạc:
Cơ sở wavelet rời rạc có một số đặc điểm chính như :
• Cơ sở wavelets rời rạc gồm 02 hàm cơ sở cơ bản, cụ thể là :
9 Trường hợp cơ sở trực chuẩn:
Cơ sở phân tích tín hiệu trùng với cơ sở tổng hợp tín hiệu
Và cơ sở gồm 2 hàm cơ sở cơ bản là : ϕ0[n] và ϕ1[n]
9 Trường hợp cặp cơ sở trực giao:
Cơ sở phân tích tín hiệu khác với cơ sở tổng hợp tín hiệu
Cơ sở phân tích gồm 02 hàm cơ sở là : ϕ0[n] và ϕ1[n]
Cơ sở tổng hợp gồm 02 hàm cơ sở là : ϕ~
0[n] và ϕ~
1[n]
• Dãy bộ lọc – 2 kênh (2 – channel filter bank):
Theo các định lý toán học đã được chứng minh (sách [1], 2 hàm
cơ sở của wavelet rời rạc chính là những hệ số của 02 bộ lọc
thông thấp và bộ lọc thông cao có tần số cắt là (π/2), cho nên
trong phần sau, khi nói đến wavelet rời rạc có nghĩa là nói đến 02
bộ lọc đó Người ta gọi 2 bộ lọc tương ứng 2 hàm cơ sở của
wavelet rời rạc là dãy bộ lọc băng – 2 kênh (two – chanel filter
bank) hay nói gọn bộ lọc 2 kênh
9 Bộ lọc – 2 kênh phân tích : Bộ lọc – 2 kênh phân tích có đáp ứng xung là h0[n] và h1[n],
tương ứng bằng với các hàm cơ sở phân tích nhưng đảo trục thời
gian, nghĩa là :
h0[n] = ϕ0[-n] và h1[n] = ϕ1[-n] (2.11)
9 Bộ lọc – 2 kênh tổng hợp :
Trang 19Bộ lọc – 2 kênh tổng hợp có đáp ứng xung là g0[n] và g1[n], tương
ứng bằng với các hàm cơ sở tổng hợp, nghĩa là :
+ Trường hợp cơ sở trực chuẩn:
Cơ sở rời rạc wavelets khi dùng phân tích và tổng hợp tín hiệu
x[n] sẽ tương ứng 04 bộ lọc là h0[n] , h1[n], g0[n] và g1[n] Có thể
biểu diễn quá trình đó như sau :
x[n]
G 0 (z)
2.2.2 Khai triển chuỗi tín hiệu rời rạc
Giả sử {ϕk}là một cơ sở trực chuẩn của l2(Z) , khai triển trực chuẩn
của dãy rời rạc {x[n]}∈l2(Z) theo {ϕk} là:
k k Z
>
ϕ
<
=ϕ
=
=ϕ
k k Z
k
k k
~
Z k
k
~ k
Trang 20Trong chương này, ta sẽ tìm cách xây dựng các cơ sở trực chuẩn {ϕk}
đầy đủ trong l2(Z) đồng thời tổng quát hóa với cặp cơ sở song trực
giao
Cơ sở được xây dựng cần thỏa mãn hai yêu cầu mâu thuẫn sau: đạt
được độ phân giải tốt trên phương diện tần số, có tính địa phương về
mặt thời gian Đồng thời để phục vụ mục đích tính toán và cài đặt
thuật giải, cơ sở cần có cấu trúc, nghĩa là các hám trong hệ cơ sở có
thể suy diễn từ một số hữu hạn các phần tử trong cơ sở đó, từ đó ta
có khái niệm bộ lọc (filter banks) để cài đặt các khai triển có tính
chất như trên
2.2.2.1 Khai triển Haar của tín hiệu rời rạc
Cho {ϕk} là một dãy hàm rời rạc được định nghĩa như sau:
n k
0
1 2k,2k n
2 / 1 ] [ 2
12kn21/
-2kn2/1][
Cơ sở {ϕk} địng nghĩa như trên (2.16) được gọi là cơ sở Haar và
khai triển tương ứng gọi là khai triển Haar là:
])1k2[x]k2[x(2
1x,
])1k2[x]k2[x(2
1x,
X2k+1 = ϕ2k+1 = − + (2.17) Công thức khai triển còn gọi là công thức khôi phục là:
k
X]
n[
Trang 21Hơn nữa , cơ sở Haar {ϕk} là một cơ sở có cấu trúc, vì các hàm cơ
sở với chỉ số chẵn là tịnh tiến của nhau, do đó, tất cả các hàm cơ
sở đều có thể được suy diễn từ 2 hàm cơ sở ϕ0,ϕ1
]k2n[]n
1 k
ϕ +
2.2.2.1.1 Biểu diễn khai triển Haar bằng bộ lọc
Hệ cơ sở Haar là hệ cơ sở có cấu trúc, trong đó, các hàm cơ sở có
thể được suy diễn từ hai hàm cơ sở ϕ0,ϕ1 ta sẽ tìm cách biểu diễn
khai triển Haar bằng tích chập, từ đó có thể dùng bộ lọc
Xét lọc h0 và h1 với hàm đáp ứng xung:
n 0
0 , 1 2
/ 1 ] n [
1n21/
-n 02
/1]n[
thì X2k có thể biểu diễn bằng tích chập của h0 và x vì:
k 2 Z
k 0
2
1]k2[x2
1]l[x.1k2[h]
k2)[
x
*h
k 1
2
1]k2[x2
1]l[x]
k2[h]
k2)[
x
*h
∈
=+
Trang 22y0[k] là tích chập của h0 và x lấy tại các số chẵn
y1[k] là tích chập của h1 và x lấy tại các số lẽ
do đó y0 và y1 là kết quả của phép lọc tín hiệu x qua hai lọc h0 và
h1, sua đó lấu mẫu xuống bởi 2, ta gọi bộ lọc (h0,h1) là bộ lọc hai
kênh , lọc qua kênh h0 ta được y0,lọc qua kênh h1 ta được y1
Ta gọi bộ lọc ứng với hai hàm đáp ứng xung h0, h1 là bộ lọc phân
tích (analysis filter bank)
Nhận xét rằng, các hàm đáp ứng xung là bản sao đảo nguọc thời
gian của các hàm đầu tiên trong cơ sở trực chuẩn:
h0[n]=ϕ0[-n] (2.26)
h1[n]=ϕ1[-n] (2.27) các lọc địng nghĩa ở (3.1.5) là không nhân quả (vì h0[-1], h1[-1]≠0)
và ta có thể thấy rõ hệ quả của điều này trong các tính toán của
X2k có thành phần x[2k+1], nghĩa là một tín hiệu tương lai
Phép tính tín hiệu xuất y0,y1 qua hai bộ lọc h0,h1 có thể biểu diễn
dưới dạng ma trận
O
48476
43421
48476
43421O
]2[x
]1[x
]0[x
]1[h]0[h
]1[h]0[h
]1[h]0[h
]1[h]0[h
XXXX
]1[y
]1[y
]0[y
]0[y
] n [
] n [ 1 1
0 0
] n [
] n [ 1 1
0 0
3 2 1 0
1 0 1 0
2
3
0
Nếu ta tịnh tiến tín hiệu qua một số chẵn, nghĩa là đặt
x’[n]=x[n-2l], ta sẽ được tín hiệu kết quả được tịnh tiến :
1'
Trang 23( ) ( ) 2k 1 2l
1 k
2
1]1k2['x]k2['x2
1'
2.2.2.1.2 Khôi phục tín hiệu bằng bộ lọc tổng hợp
Ta định nghĩa bộ lọc (g0,g1) với hàm đáp ứng xung tương ứng với
hai hàm cơ sở ϕ0,ϕ1
−
=ϕ
+ϕ
=
Z
1 1 0
0 1
k 2 1 Z
k
k 2
như vậy, tín hiệu được tổng hợp bằng cách lấy tổng tín hiệu tổng
hợp từ hai kênh, ở kênh i (i=0,1) ta lấy mẫu lên yi bởi 2 rồi lọc qua
lọc gi, ta goiï (g0,g1) là bộ lọc tổng hợp
a)
Tổng hợp Phân tích
Trang 24Hình 2.7: bộ lọc hai kênh với các lọc phân tích h0,h1 và lọc tổng
hợp g0,g1 nếu bộ lọc là trực chuẩn thì gi[n]=hi[-n]
(a) sơ đồ khối (b) phổ phân tích bởi bộ lọc
2.2.2.1.3 Các đặc điểm của tín hiệu khai triển Haar
Các lọc Haar có đạc trưng ssau cũng đúng trong các trường hợp
ứng với bộ lọc trực chuẩn tổng quát
- Hàm đáp ứng xung của các bộ lọc tổng hợp chính là hàm cơ sở
đầu tiên trong hệ cơ sở trực chuẩn
gi[n]=ϕi[n] i=0,1 (2.33)
- Hàm đáp ứng xung của các bộ lọc phân tích là phiên bản đảo
ngược thời gian của lọc tổng hợp
hi[n]=gi[-n] i=0,1 (2.34) từ công thức (2.29) ta thấy kênh 0 cho giá trị là giá trị trung bình
và kênh 1 cho sự sai biệt của hai mẫu liên tiếp Ta gọi hai lọc
tương ứng là lọc cho băng thấp qua và lọc cho băng cao qua Lọc
cho băng thấp qua cho phiên bản trung bình, hay phiên bản thô
của x[n], lọc cho băng cao qua cho sự sai biệt hay chi tiết thên vào
cần thiết để khơi phục tín hiệu x[n] từ phiên bản thô Gọi hai
phiên bản thô và chi tiết là x0,x1 thì :
( x [ 2 k ] x [ 2 k 1 ])
2
1 ] 1 k 2 [ x ] k 2 [
x0 = 0 + = + + (2.35)
Trang 25
]k2[x]1k2[x
])1k2[x]k2[x(2
1]k2[x
1 1
1
−
=+
+
−
=
gọi V1 là không gian con sinh bởi {ϕ2k} và W1 là không gian sinh
bởi {ϕ2k+1} thì V1 và W1 trực giao và tổng của chúng chính là
l2(Z), x0 là hình chiếu của x lên không gian V1 sinh bởi {ϕ2k}, x1 là
hình chiếu của x lên không gian W1 sinh bởi {ϕ2k+1} và tổng của
hai hình chiếu x0,x1 khôi phục x
l2(Z)=V1⊕W1 (2.36)
x0=prpjV1x
x1=projW1x
x=x0+x1
Khai triển Haar có ưu điển là đơn giản, nhưng độ phân giải tần số
của các hàm cơ sở không tốt :
) 2 / sin(
je 2 ) e ( G
) 2 / cos(
e ) e ( G
) 2 / ( j j
1
) 2 / ( j j
ω
− ω
(2.37)
2.2.2.2 Khai triển sinc của tín hiệu rời rạc
Khai triển sinc tasẽ trình bày sau đây có độ chọn lọc tần số lý
tưởng, các tín hiệu có tần số ngoài dải thông lọc sẽ bị loại bỏ hoàn
toàn, nhưng tính cục bộ về thời gian thì không tốt (chỉ giảm tuyến
tính theo thời gian)
Ta chọn lọc tổng hợp g0 là lọc nữa băng thấp qua lý tưởng có biến
đổi Fourier là hàm tuần hoàn chu kỳ 2π
⎩
⎨
⎧
π π
∈ ω
π π
−
∈ ω
= ω
] 2 / 3 , 2 / [ 0
] 2 / , 2 / [ 2
) e (
hàm đáp ứng xung tương ứng là:
2/n
2/nsin2
1de2
2]n[g
2 /
2 /
n j
π
=ωπ
= π∫
π
Trang 26Chọn lọc băng cao qua là:
g1[n]=(-1)ngo[n+1] (2.40) Các hàm cơ sở được định nghĩa như sau:
Phân tích kết quả khai triển sinc:
Các hàm đáp ứng xung g0,g1 của lọc tổng hợp có biến đổi Fourier
] 2 / , 2 / [ 2
) e (
∈ω
−
ππ
−
∈ω
− ω
− ω
− ω
]2/3,2/[2
e
]2/,2/[0
)e(Ge)e(Ge)e(G
j
) ( j 0 j j
0 j j
1
Vậy lọc băng thấp qua g0 loại bỏ hoàn toàn các tín hiệu có tần số
cao ω∈[π/2;3π/2] vì =0 trên khoảng này , đồng thời cho
qua hoàn toàn không làm biến dạng thành phần tín hiệu có tần số
thấp ω∈[-π/2;π/2]
)e(
G0 jω
Tương tự, lọc băng cao qua g1 loại bỏ hoàn toàn các tín hiệu có
tần số thấp ω∈[-π/2 ; π /2] vì =0 trên khoảng này , đồng
thời cho qua hoàn toàn không làm biến dạng thành phần tín hiệu
có tần số cao ω∈(π/2;3π/2] (⏐ ⏐=
)e(
0 ω
)e(
G0 jω 2 trên (π/2;3π/2 ))
Trang 27Vì vậy khai triển sinc tương ứng với sự chọn lọc tần số lý tưởng
Nói cách khác ta có được phân giản tần số hoàn hảo Tuy nhiên
khai triển này có tính cục bộ về thời gian không tốt
2/n
2/nsin2
1]0[
{ϕ2k+1}k∈Z 1 là không gian con của l2(Z) sinh bởi { thì hai
không gian con trực giao và tổng của chúng chính là l
}k Z
1 k
ϕ
2(Z)
1 1
Hiển nhiên x0 là phiên bản thô xấp xỉ tần số thấp của tín hiệu,
còn x1 chúc n hững thành phần tần số cao cần thiết để hồi phục
x từ x0
Trong cả hai trường hợp Haar và sinc, khai triển không bất biến
theo thời gian, nhưng biến đổi tuần hoàn theo thời gian Mệnh đề
sau đây cho thấy ta khai triển trực chuẩn bất biến theo thời gian
chỉ có thể cho ra độ phân giải thông thường, nghĩa là không có
tính chọn lọc
Mệnh đề 2.3 :
Mọi khai triển tín hiệu trực chuẩn bất biến theo thời gian đều
không có sự chọn lọc tần số (không có độ phân giải theo tần số)
Như vậy, biến thiên theo thời gian là một đặc tính quan trọng của
khai triển thực giao
2.3 BỘ LỌC HAI KÊNH
Khai triển Haar và khai triển sinc là các trường hợp đặc biệt của khai triển
tín hiệu rời rạc có thể được cài đặt bằng bộ lọc hai kênh Trong phần này ta
sẽ tổng quát hóa vấn đề và nghiên cức chi tiết bộ lọc hai kênh Ta gọi các
bộ lọc mà tín hiệu nhập có thể được khôi phục hoàn hảo sau khi phân tích
và tổng hợplà bộ lọc khôi phục hoàn hảo tín hiệu (perfect reconstruction
Trang 28filter bank) Bộ lọc khôi phục hoàn hảo tương ứng với hệ thống khôi phục
hoàn hảo Lọc Haar và lọc sinc là các bộ lọc khôi phục hoàn hảo, với khai
triển chuổi tương ứng là khai triển trực giao và các hàm cơ sở là phiên bản
tịnh tiến của các đáp ứng xung Ta sẽ xem xét bộ lọc hai kênh trong trường
hợp tổng quát, trực chuẩn và song trực giao, và bộ lọc khôi phục hoàn hảo
sẽ cho phép cài đặt các cơ sở để khai triển tín hiệu thành chuổi như trong
trường hợp Haar và sinc
2.2.1 Phân tích bộ lọc
Ta sẽ tìm cách thiết lập các bộ lọc tạo ra cặp cơ sở song trực giao để
khai triển tín hiệu thành chuỗi, sao cho tín hiệu có htể được khôi phục
hoàn hảosau khi được phân tích, tổng hợp
Trong hình 2.1, bên cạnh phép lọc, để tính toán hệ số khai triển dùng
lọc ta còn phải sử dụng phép lấy mẫu xuống và lấy mẫu lên Các
phép lấy mẫu này bao hàm thay đổi tốc độ lấy mẫu và phép lấy mẫu
xuống làm cho hệ thống tuyến tính và biến đổi tuần hoàn theo thời
gian Ta sẽ phân tích các hệ thống biến đổi tuần hoàn theo thời gian
như trên từ 3 khía cạnh thời gian, điều chế, đa pha
Gọi h0,h1 là hàm đáp ứng xung tương ứng với hai lọc phân tích băng
thấp và băng cao g0,g1 là hai hàm đáp ứng xung tương ứng cho lọc
tổng hợp
Ta xét hệ thống lọc hai kênh như hình 2.1, trong đó tín hiệu nhập sẽ
được phân tích bằng lọc qua hai kênh 0 và 1 bởi h0 và h1, lấy mẫu
xuống, lấy mẫu lên rồi được tổng hợp bằng hai lọc g0 và g1 Ta tìm
điều kiện cần và đủ để hệ thống là khôi phục hoàn hảo, nghĩa là tín
hiệu sau khi tổng hợp cũng chính là tín hiệu nhập Ta gọi bộ lọc như
vậy là bộ lọc khôi phục hoàn hảo
2.2.2 Phân tích theo khía cạnh thời gian
Tín hiệu x sau khi loc qua hai kênh và tổng hợp có thể được biểu diễn
dưới dạng tích ma trận vô hạn
Trang 29]1[x
]0[x
XXXX
]1[y
]1[y
]0[y
]0[y
3 2 1 0
1 0 1
0
trong đó, các hệ số sau khi biến đổi X1 được viết thành
y0[k] = X2k y1[k] = X2k + 1 Nói cách khác, ta biểu diễn liệu X sau khi phân tích như hai băng
thông con thấp và cao y0, y1
Giả sử lọc có chiều dài L = 2K với giá trị khác 0 từ hi[0], ,hi[L-1], i
M M
M
K K
K K
K K
K K
K
M M
M M
M M
] 0 [ h ] 1 [ h ] 2 [ h ]
1 L [ h 0
0
] 0 [ h ] 1 [ h ] 2 [ h ]
1 L [ h 0
0
0 0
] 0 [ h ]
3 L [ h ] 2 L [ h ] 1 L [ h
0 0
] 0 [ h ] 3 L [ h ] 2 L [ h ] 1 L [ h
T
1 1 1
1
0 0
0 0
1 1
1 1
0 0
0 0
M
K K
K
K K
K
M M M
M
1 k 2 k 1
1 k 1
0 a
A A A
0
0 0 A A
]i21K2[h]i21K2[hA
1 1
0 0
i
Hệ số khai triển là Xk = ϕk[ n ], x [ n ]
xét trên từng kênh :
] n [ x ], n k [ h X
] k [ y
] n [ x ], n k [ h X
] k [ y
1 1 k 1
0 k 0
(2.46)
do đó, các hàm trong cơ sở có dạng :
Trang 30=ϕ
]nk[h]n[
1 1
k
0 k
để tổng hợp, ta dùng cơ sở đối ngẫu, ma trận tổng hợp T, sao cho hệ
thống phân tích tổng hợp thỏa điều kiện khôi phục toàn hảo
M M
K K
M M
K K
K
K K
K
M M
M M
M M
] 1 ' L [ g ] 2 ' L [ g ] 3 ' L [ g ]
0 [ g
] 1 ' L [ g ] 2 ' L [ g ] 3 ' L [ g ]
0 [ g
0 0
] 1 ' L [ g ]
2 [ g ] 1 [ g ] 0 [ g
0 0
] 1 ' L [ g ]
2 [ g ] 1 [ g ] 0 [ g T
1 1
1 1
0 0
0 0
1 1
1 1
0 0
0 0
M
K K
K K
M M M
M
T 1 ' k T 2 ' k T
0
T 0 T
0 T 0 T
s
S S S
0
0 S S
=
]1i2[g]1i2[g
]i2[g]
i2[gS
1 0
1 0
−
=ϕ
+[n] g [n 2k]
]kn[g]n[
1 1
k
0 k
(
(
(2.51) điều kiện cần và đủ để có khôi phục toàn hảo là :
Đưa về hàm trong cơ sở song trực giao, điều kiện trên tương ứng với :
]lk[, 1
Trang 31viết dưới dạng của hàm đáp ứng xung :
] j i [ ] l k [ ] l n [ g ], n k
[
hi − j − = δ − δ − i,j 0,1 (2.54)
trong ma trận Ta, nếu ta xét kênh i, thì y1[k] là kết quả của phép lọc
qua kênh i và lấy mẫu xuống bời, gọi Hi là toán tử tương ứng với lọc
bởi hi rồi lấy mẫu xuống thì y1 có thể được viết là :
3214
444444444
4444444444
KKKKK
K
M
M
x i
H i
y
]1[x
]0[x]0[h]1[h]2[h]
1L[h0
0
]0[h]
3L[h]2L[h]1L[h]
i i
i i
i i
M
KKK
KM
M
KM
KK
]1'L[g0
]2'L[g0
]3'L[g]1'L[g
]0[g
0]1[g
0]0[g
G
i i
i i
I i
i
thì xuất liệu của hệ thống được viết là :
(G0H0 + G1H1)x (2.57) Như vậy, để tổng hợp được tín hiệu nhập (điều kiện khôi phục toàn
bảo) ta phải có :
G1H0 + G1H1 = I (2.58) Bằng cách xen kẽ các dòng của H0 và H1 ta được Ta bằng cách xen
kẽ các cột của G0 và G1, ta được Ts
Trang 32Hệ { ϕk,ϕ(k}định nghĩa từ h0, h1, g0, g1 và các phiên bản tịnh tiến tạo
thành hệ song trực giao, hơn nữa chúng đầy đủ Thật vậy, giả sử có x
∈ l2(Z), x ≠ 0 sao cho khai triển là 0, nghĩa là X = 0
vì : X = Tax
ta có : T a x =0 Tax = 0
nhưng Ta không suy biến vì có toán tử đảo là Ts do đó
X TsTax = 0 Vô lý Vậy, hệ { ϕk,ϕ(k} tạo thành các cặp cơ sở song trực giao trong l2(Z)
Tóm lại, một bộ lọc hai kênh thỏa điều kiện khôi phục toàn hảo nếu
và chỉ nếu các hàm cơ sở suy diễn từ các hàm đáp ứng xung và các
phiên bản tịnh tiến qua một số chẵn tạo thành một cặp cơ sở song trực
giao Nói cách khác điều kiện khôi phục toàn hảo (của bộ lọc) tương
đương với điều kiện song trực giao (của cặp cơ sở)
Trang 333
THIẾT KẾ SỐ HIỆN ĐẠI VỚI VHDL
3.1 Khuynh hướng phát triển của ngành thiết số……….…… 3-2
3.2 Những công cụ hỗ trợ thiết kế số……… 3-3
3.2.1 Các thiết bị logic lập trình được……… 3-3 3.2.2 Ngôn ngữ mô tả phần cứng……… 3-4 3.2.3 Phần mềm hỗ trợ thiết kế số……… 3-5
3.3 Công nghệ FPGA……… 3-6
3.3.1 Giới thiệu FPGA……… 3-6 3.3.2 Sự phát triển của các thiết bị lập trình được……… 3-7 3.3.3 Cấu trúc FPGA ……… 3-9 3.3.4 Các Công nghệ lập trình chip……… 3-14 3.3.5 Các loại FPGA……… 3-20
3.4 Ngôn ngữ VHDL……… 3-22
3.4.1 Khái quát về VHDL……… 3-22 3.4.2 Cấu trúc ngôn ngữ VHDL……… 3-25 3.4.3 Các kiểu dữ liệu……… 3-46 3.4.4 Các toán tử……….… 3-59
Trang 343.1 Khuynh hướng phát triển của ngành thiết kế số:
Với sự phát triển nhanh chóng của PLD (Programmable Logic Device) và ASIC (Application Specific Intergrated Circuit), quá trình thiết kế phần cứng có những thay đổi rất lớn trong những năm gần đây Không giống như những kỹ thuật thiết kế trước, các board mạch bao gồm rất nhiều chip SSI (Small Scale Intergration) chứa các cổng cơ bản, hiện nay hầu hết các thiết kế đều sử dụng chip mật độ cao Điều này không chỉ đúng trong trường hợp mạch dùng các bộ vi xử lý hoặc bộ nhớ mà còn đúng cho cả mạch số như các bộ điều khiển máy trạng thái (state machine controllers), mạch đếm, thanh ghi và mạch giải mã Khi các mạch số như vậy cần được sử dụng trong các board mạch với số lượng lớn thì người ta có khuynh hướng tích hợp chúng trong các mảng cổng (gate arrays) mật độ cao Vì lý do đó, hầu hết các sản phẩm trên thị trường hiện nay được xây dựng trên cơ sở:
• Với các sản phẩm có số lượng không lớn lắm hoặc trung bình đều theo phương pháp sử dụng PLD Những ưu điểm chính của PLD là: đầu tư ban đầu thấp, rủi ro tài chánh thấp, và dễ dàng thay đổi thiết kế (vì người dùng có thể lập trình lại được)
• Với sản phẩm có số lượng lớn, nhà sản xuất đầu tư thiết kế vi mạch chuyên dùng ASIC Những đặc điểm chính của ASIC là: khi đã
ra thành phẩm thì giá thành thấp mặc dù đầu tư chi phí ban đầu rất cao và thời gian chế tạo mẫu thử rất lâu
Để có được một IC hoàn chỉnh thực hiện được nhiệm vụ của nhà sản xuất, người ta phải thực hiện qua nhiều giai đoạn, nhưng giai đoạn cơ bản và quan trọng nhất là:
Tổng hợp (synthesis)
Mô phỏng (simulation)
Kiểm tra (verification)
Các giai đoạn này đòi hỏi người sử dụng phải có một kiến thức chuyên môn sâu rộng về lĩnh vực điện tử và kinh nghiệm phong phú Giai đoạn này cũng
Trang 35yêu cầu người sử dụng có các công cụ chuyên nghiệp đủ mạnh để giải quyết một cách nhanh chóng hiệu quả và chính xác
3.2 Những công cụ thông dụng hỗ trợ việc thiết kế số
Với những nhu cầu phát triển mạch số ngày càng phức tạp, lần lượt các công cụ ra đời hỗ trợ đắc lực trong việc thiết kế số
3.2.1 Các thiết bị logic lập trình được
Thiết bị logic lập trình được (PLD – Programmable Logic Design) là chip LSI hoặc VLSI chứa các cấu trúc mảng mà cho phép các nhà thiết kế có thể tùy biến theo từng thiết kế riêng biệt Nói cách khác PLD có thể được lập trình bởi người sử dụng cho những chức năng cụ thể Cấu trúc mảng trong PLD bao gồm các tế bào (cells) được hình thành từ tập hợp các cổng logic
Hình minh hoạ một cấu trúc CPLD CLB: configurable logic block
PSM: programmable switch matrice Có các dạng thiết bị logic lập trình được chức năng giống như PLD như là PLA (Programmable Logic Array) , CPLD (Complex PLD),
Trang 36FPGA (Field Programmable Gate Array) Với công nghệ số hiện nay, các nhà sản xuất đã cho ra đời các các PLD với mức độ tích hợp cao với số cổng logic lên đến vài chục ngàn cổng
3.2.2 Ngôn ngữ mô tả phần cứng
Ngôn ngữ mô tả phần cứng (HDL - Hardware Description Language) là một trong những nền tảng quan trọng trong lĩnh vực thiết kế số hiện đại Hiện nay có 2 ngôn ngữ được xem là thông dụng nhất: VHDL và Verilog HDL Những ngôn ngữ này cho phép các nhà thiết kế mô tả các mạch logic phức tạp và có thể đưa sản phẩm ra thị trường một cách nhanh chóng Chúng còn hỗ trợ việc tạo ra các thư viện chứa các mẫu thiết kế sẵn Với những mẫu thiết kế bằng ngôn ngữ cấp cao này, các nhà sản xuất có thể áp dụng vào các thiết bị logic lập trình được như PLD, CPLD, FPGA VHDL đã được công nhận là một chuẩn IEEE vào năm 1987, còn Verilog HDL vào năm
1995
VHDL, viết tắt từ chữ VHSIC HDL (VHSIC-Very High Speed Intergrated Circuit), là một sản phẩm của chương trình VHSIC của Bộ quốc phòng Mỹ vào thập niên 70 và 80 Khi lần đầu tiên được công bố, VHDL chủ yếu được sử dụng như ngôn ngữ mô tả các mạch số có thể được xử lý bởi một phần mềm với mục đích mô phỏng Ngày nay VHDL là một ngôn ngữ chuẩn để mô tả, mô phỏng, tổng hợp cho các mạch và hệ thống số Thị trường các sản phẩm phần mềm sử dụng VHDL tăng với tốc độ nhanh chóng cho thấy đóng góp to lớn của nó cho ngành thiết kế số
Verilog HDL, một ngôn ngữ khác được xem là ngắn gọn hơn VHDL, lần đầu tiên được giới thiệu vào năm 1985 bởi hãng Gateway Design System Corporation, bây giờ là một phần của Cadence Design Systems, Inc.’s Systems Division Verilog HDL cho phép các nhà thiết kế phần cứng mô tả mạch số ở mức cấp cao như cấu trúc
Trang 37architectural hay cấu trúc behavioral hoặc cấp thấp như cấu trúc cổng Cùng với VHDL, Verilog HDL cũng góp phần vào nền phát triển công nghệ số hiện đại
3.2.3 Phần mềm hỗ trợ thiết kế số
Để lập trình cho FPGA hay CPLD đòi hỏi cần phải có phần mềm hỗ trợ thiết kế (CAD – computer aided design) để cho phép thiết kế trên máy tính , kiểm tra, mô phỏng, và nạp (download) vào chip Phần mềm này cho phép các nhà thiết kế có thể vẽ sơ đồ logic hoặc sử dụng ngôn ngữ mô tả phần cứng để tạo các mạch số
Hiện nay, trên thế giới có hai hãng lớn là Altera và Xilinx chế tạo các thiết bị logic lập trình được như PLD, CPLD, FPGA, và đồng thời phát triển các phần mềm CAD có thể thực hiện từ bước thiết kế cho đến thực thi trên phần cứng Sau đây là 2 phần mềm chuyên nghiệp điển hình để thiết kế mạch số
• Maxplus II 10.0 Baseline (của hãng Altera)
Trang 38Phần mềm này hỗ trợ đầy đủ các công cụ: schematic, text editor, simulator, và chỉ phát triển cho các họ CPLD và FPGA của Altera
• Xilinx Foundation Series 2.1 (của hãng Xilinx)
Đây là một sản phẩm của hãng Xilinx có đầy đủ các công cụ hỗ trợ thiết kế số Phần mềm này phát triển cho họ CPLD và FPGA của Xilinx
3.3 CÔNG NGHỆ FPGA
3.3.1 Giới thiệu FPGA
Các phần trước trình bày về môi trường thiết kế phần cứng, về phương pháp luận để thiết kế mạch & mối quan hệ hữu cơ giữa ngôn ngữ VHDL và phần cứng tạo ra Phần này tập trung trình bày các mạch phần cứng được xây dựng trên công nghệ FPGA Đây là công nghệ tiên tiến đã được nghiên cứu rất nhiều và có ứng dụng rộng rãi trên thế giới
Trang 39Công nghệ mạch tích hợp mật độ cao (VLSI) cho phép chế tạo các mạch số phức tạp giá thành thấp có số lượng hàng triệu transistor trên một chip Các chip vi xử lý đượcthực hiện bằng phương pháp Standard Cells và Mask-Programmable Gate Arrays (MPGAs) trên các mạch tích hợp Công nghệ này cần có chi phí ban đầu cao và thời gian sản xuất vài tháng, dẫn đến giá của mỗi đơn vị sản phẩm cao trừ khi được sản xuất với số lượng lớn
Field-Programmable Gate Arrays (FPGAs) đã xuất hiện như giải
pháp cơ bản cho vấn đề tranh thủ thời gian để đưa ra thị trường và rủi
ro tài chính phải gánh chịu trong quá trình nghiên cứu sản phẩm của công nghệ điện tử Nó cho phép chế tạo ngay và giá sản phẩm rất thấp FPGA là một thiết bị cấu trúc logic có thể được người sử dụng lập trình trực tiếp mà không phải sử dụng bất kỳ một công cụ chế tạo mạch tích hợp nào
3.3.2 Sự phát triển của các thiết bị lập trình được
Các thiết bị lập trình được đóng vai trò quan trọng lâu dài trong thiết kế các phần cứng số Chúng là các chip đa dụng có thể được cấu hình theo nhiều cách cho nhiều ứng dụng Loại đầu tiên của thiết bị có thể lập 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ỳ hàm logic theo bản sự thật nào bằng cách sử dụng các đường địa chỉ như các ngõ nhập và ngõ xuất được xác định bởi nội dung các bit nhớ
Có 2 loại PROM cơ bản, một loại chỉ có thể được lập trình bởi nhà sản xuất và một loại có thể được lập trình bởi người dùng Loại thứ nhất được gọi là mask-programmable và loại thứ 2 được gọi là field-programmable Khi sản xuất các hip logic, hiệu suất tốc độ cao có thể đạt được với các chip mask-programmable vì các kết nối bên trong thiết bị được thực hiện bằng phần cứng khi sản xuất Ngược lại, các
Trang 40kết nối của field-programmable luôn cần đến một số loại chuyển mạch lập trình được (cầu chì chẳng hạn) và vì vậy chậm hơn kết nối cứng Tuy nhiên, thiết bị field-programmable chứa đựng các ưu điểm có giá trị hơn sự hạn chế về tốc độ
• Các chip field-programmable rẻ hơn các chip mask-programmable khi sản xuất với số lượng nhỏ
• Các chip field-programmable có thể được lập trình tức thì trong vài phút,trong khi các chip mask–programmable khi sản xuất phải mất hàng tuần hay hàng tháng
Hai biến thể field-programmable của PROM là Erasable Programmable Read-Only Memory (EPROM) và Electrically Erasable Programmable Read- Only Memory (EEPROM) cung cấp một ưu điểm: cả hai có thể được xóa và lập trình lại nhiều lần
Một loại thiết bị lập trình được khác, được thiết kế đặc biệt dểthực hiện các mạch logic là Progammble Logic Device (PLD) Một PLD thông thường gồm một dãy các cổng AND được nối với một dãy các cổng OR Mạch logic có thể được thực hiện trong PLD theo dạng tổng của tích (sum-of-products) Loại cơ bản nhất của PLD là Progammable Array Logic (PAL): PAL gồm một khối các cổng AND lập trình được nối đến một khối các cổng OR cố định Một loại PAL khác linh hoạt hơn là Programmable Logic Array (PLA) PLA cũng có cấu trúc giống PAL nhưng các kết nối là lập trình được PLA có cả 2 loại mask programmable và field programmable
Cả 2 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ác mạch logic nhỏ
Loại thiết bị lập trình được tổng quát nhất gồm một dãy các phần tử rời rạc có thể được kết nối với nhau theo mô tả của người sử dụng Loại thiết bị này được gọi là Mask–Programmable Gate Array (MPGA) Các MPGA phổ biến nhất gồm các hàng transistor có thể