Tài liệu Xử lý tín hiệu số (DSP) và ứng dụng của DSP trên công nghệ FPGA: Chương 2
xử lý tín hiệu số (dsp) và ứng dụng của DSP
trên công nghệ FPGA
2.1 Khái quát chung về xử lý tín hiệu số DSP.
Các bộ xử lý tín hiệu được xây dựng xuất phát từ nhu cầu giải quyết các bài toán xử lý tín hiệu số, trong đó chủ yếu thực hiện các phép tính tổng và tích hai thừa số.
Vấn đề quan trọng nhất của DSP là đảm bảo hoạt động của hệ thống trong thời gian thực- nghĩa là thực hiện các phép tính của thuật toán xử lý tín hiệu số trong thời gian nhỏ hơn chu kỳ rời rạc hoá tín hiệu. Để đạt được tốc độ tính toán nhanh cần thiết, các bộ DSP cần có thiết bị thực hiện các phép tính xử lý tín hiệu số trong một chu kỳ lệnh nhờ sử dụng kiến trúc phần cứng cải tiến. Đặc điểm cấu trúc của DSP là phân chia không gian bộ nhớ thành hai vùng, bộ nhớ chương trình và bộ nhớ dữ liệu với khả năng trao đổi trực tiếp dữ liệu giữa chúng. Điều đó cho phép tổ chức xử lý lệnh theo kiểu đường ống ba tầng song song là nhận lệnh, giải mã lệnh và thực hiện lệnh một cách có hiệu quả. Sự trao đổi giữ...
28 trang |
Chia sẻ: hunglv | Lượt xem: 2415 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Xử lý tín hiệu số (DSP) và ứng dụng của DSP trên công nghệ FPGA, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Chương 2
xử lý tín hiệu số (dsp) và ứng dụng của DSP
trên công nghệ FPGA
2.1 Khái quát chung về xử lý tín hiệu số DSP.
Các bộ xử lý tín hiệu được xây dựng xuất phát từ nhu cầu giải quyết các bài toán xử lý tín hiệu số, trong đó chủ yếu thực hiện các phép tính tổng và tích hai thừa số.
Vấn đề quan trọng nhất của DSP là đảm bảo hoạt động của hệ thống trong thời gian thực- nghĩa là thực hiện các phép tính của thuật toán xử lý tín hiệu số trong thời gian nhỏ hơn chu kỳ rời rạc hoá tín hiệu. Để đạt được tốc độ tính toán nhanh cần thiết, các bộ DSP cần có thiết bị thực hiện các phép tính xử lý tín hiệu số trong một chu kỳ lệnh nhờ sử dụng kiến trúc phần cứng cải tiến. Đặc điểm cấu trúc của DSP là phân chia không gian bộ nhớ thành hai vùng, bộ nhớ chương trình và bộ nhớ dữ liệu với khả năng trao đổi trực tiếp dữ liệu giữa chúng. Điều đó cho phép tổ chức xử lý lệnh theo kiểu đường ống ba tầng song song là nhận lệnh, giải mã lệnh và thực hiện lệnh một cách có hiệu quả. Sự trao đổi giữa các vùng bộ nhớ cho phép tính toán khối lượng lớn các hệ số từ bộ nhớ chương trình vào bộ nhớ dữ liệu.
2.1.1 Hệ thống xử lý tín hiệu số.
Hệ thống xử lý tín hiệu số (DSP) gồm các thành phần cơ bản sau: Bộ lọc thấp tần, bộ biến đổi ADC, bộ DSP, bộ biến đổi DAC, bộ lọc là phẳng.
y(t)
x(t)
Lọc chống chồng phổ
ADC
DSP
DAC
Bộ lọc là phẳng
Hình 2.1 Sơ đồ hệ thống xử lý tín hiệu số DSP
Hình 2.2 Hiệu ứng chồng phổ
fd
f
f
fv=fd/2 fd
Phổ tín hiệu
tương tự
Phổ tín hiệu
rời rạc
chồng
phổ
|A|
|A|
Tín hiệu đầu vào cần xử lý là tín hiệu liên tục có dạng bất kỳ theo miền tần số hoặc miền thời gian. Đây là tín hiệu có độ dài hữu hạn theo thời gian và vô hạn theo tần số. Trước khi đưa vào xử lý ở bộ DSP thì tín hiệu tương tự cần phải được biểu diễn dưới dạng số. Để có dạng số của tín hiệu cần phải qua bộ biến đổi tương tự-số ADC.
Đầu vào của mạch có bộ lọc chống chồng phổ để hạn chế các tín hiệu ngoài dải chồng lên tín hiệu trong dải trong quá trình lấy mẫu. Sau đó, tín hiệu được lấy mẫu, lượng tử hoá nhờ ADC. ở đầu ra của bộ biến đổi ADC ta có tín hiệu số với n = 0, 1, 2, ...(N-1) là một chuỗi nhị phân bậc m (hay được gọi là độ phân giải của bộ biến đổi ADC).
Chuỗi các giá trị x(n) biểu diễn dưới dạng nhị phân m bit được đưa tới bộ DSP. Bộ DSP đảm nhiệm nhiều chức năng quan trọng, trong đó có hai chức năng đặc trưng là lọc số và phân tích phổ. Các quá trình này được thực hiện một cách độc lập.
a) Lọc số
Hệ thống rời rạc tuyến tính (HTRRTT) với tham số cố định phổ biến nhất được mô tả trong miền thời gian bởi phương trình vi sai dạng:
(2.1)
Trong đó:
- hệ số xác định thuộc tính của HTRRTT.
- giá trị rời rạc của tín hiệu đầu vào và đầu ra.
- hằng số xác định độ phức tạp của HTRRTT.
- giá trị rời rạc của các tín hiệu đầu vào và đầu ra được giữ chậm tại các chu kỳ rời rạc hoá và tương ứng.
Phương trình (2.1) mô tả HTRRTT đệ quy nếu mỗi giá trị đọc thứ của tín hiệu đầu ra là tổ hợp tuyến tính của giá trị thứ hiện tại của tín hiệu đầu vào các giá trị giữ chậm trước đó của tín hiệu đầu vào với 1, 2, ..., (N-1) và (M-1) giá trị giữ chậm của tín hiệu ra với 1, 2, ... (M-1). Lớp phương trình (2.1) có thể được sử dụng để thực hiện bộ lọc đáp ứng xung vô hạn IIR. Trong trường hợp này, theo các yêu cầu đặt ra với bộ lọc cần thiết kế (tần số giới hạn, độ lệch dải tần...) người ta cần phải tính các giá trị cho từng bộ lọc riêng rẽ. Việc tính toán được thực hiện trên máy tính PC nhờ các gói phần mềm chuẩn. Sau đó trên cơ sở phương trình (2.1) người ta có thể tiến hành lọc số ở bộ DSP bằng chương trình lọc số.
Trên cơ sở HTRRTT không đệ quy, nghĩa là với theo phương trình (2.1) người ta có thể tiến hành thiết kế bộ lọc có đặc tính xung hữu hạn FIR. Lớp phương trình như vậy có dạng:
(2.2)
Cũng như đối với hệ thống tuyến tính bất kỳ, đáp ứng ở đầu ra của HTRRTT liên hệ với tác động đầu vào theo mối quan hệ kiểu giảm bậc:
(2.3)
Với - Đặc tính xung của HTRRTT.
Phương trình (2.3) và phương trình (2.1) mô tả HTRRTT trong miền thời gian. Từ đó có thể thấy rằng, các phép toán cơ sở đối với bộ DSP là phép nhân, phép cộng và các phép kết hợp giữa chúng (phép nhân tích luỹ) còn các phép dịch và phép chuyển thực hiện việc giữ chậm.
b) Phân tích phổ
Một trong những bài toán phức tạp nhất của XLTHS là phân tích thuộc tính các tín hiệu để có thể nghiên cứu chúng không những trong miền thời gian mà cả trong miền tần số. Trong xử lý tín hiệu số để biểu diễn trong miền tần số các tín hiệu rời rạc tuần hoàn với chu kỳ N hoặc có độ dài hữu hạn N thì phải sử dụng biến đổi Fourier rời rạc DFT (Discrete Fourier Transformation). Biểu thức tính toán DFT có dạng:
khi k = 0, 1, 2, ...., (N-1) (2.4)
Trong đó : x(n) với n = 0, 1, 2, 3,.........(N - 1) là các giá trị của tín hiệu rời rạc (tuần hoàn theo chu kỳ N hoặc có độ dài hữu hạn N).
X(k) với k = 0, 1, 2, 3..........(N = 1) là DFT của tín hiệu x(n) là chuỗi tuần hoàn có giá trị phức cách đều nhau trong miền tần số (các hệ số phức chuỗi Fourier) với chu kỳ N và khoảng cách giữa chúng là:
là thừa số lặp và bằng
(2.5)
giá trị tuyệt đối và đối số của chuỗi phức X(k) với k = 1, 2, 3....,(N = 1) chính là biên độ và pha của thành phần DFT tương ứng.
Cần lưu ý rằng, ý nghĩa của DFT đối với tín hiệu rời rạc tuần hoàn và các tín hiệu có độ dài hữu hạn là khác nhau.
Đối với tín hiệu rời rạc tuần hoàn với chu kỳ N thì DFT (tập hợp các hệ số Fourier phức) ứng với phổ tuần hoàn rời rạc của tín hiệu đó. Giá trị tuyệt đối và đối số các hệ số phức X(k) được gọi là phổ biên độ và phổ pha.
Đối với tín hiệu rời rạc có độ dài hữu hạn thì DFT (N hệ số Fourier phức) ứng với N các giá trị rời rạc cách đều nhau của phổ trong chu kỳ. Phổ của tín hiệu đã cho xác định rằng biến đổi DFT của nó là hàm tần số tuần hoàn liên tục, tuy nhiên theo N giá trị rời rạc cách đều nhau của phổ nghĩa là theo DFT sẽ đảm bảo khả năng phục hồi chính xác phổ liên tục. Như vậy, thực chất mối quan tâm về DFT được giải thích bởi các lý do sau: thứ nhất DFT hoàn toàn đặc trưng cho phổ tín hiệu có độ dài hữu hạn, và thứ hai là để tính toán trên máy tính PC các hàm liên tục (trong trường hợp này là phổ tín hiệu) cần phải rời rạc hoá chúng.
Trong cả hai trường hợp thì muốn phục hồi chính xác tín hiệu liên tục từ các giá trị rời rạc x(n) của nó cần phải sử dụng biến đổi Fourier ngược IDFT (Inverse Discrete Fourier Transformation).
(2.6)
Từ (2.4) và (2.6) ta thấy rằng các phép toán cơ sở khi thực hiện DFT và IDFT là phép nhân và phép cộng các số phức.
ở đầu vào DSP (Hình 2.1) ta có tín hiệu ra y(n) là kết quả của xử lý số tín hiệu đầu vào x(n) và chính là chuỗi N các số nhị phân N bit (trong trường hợp tổng quát thì N và M có thể thay đổi). Tín hiệu này được đưa tới bộ biến đổi DAC để tạo ra tín hiệu liên tục bậc thang.
Hiệu ứng bậc thang có thể gây ra méo tín hiệu và được loại trừ bằng cách sử dụng bộ lọc là phẳng tần thấp.
2.1.2 Cấu trúc cơ bản của bộ DSP.
Cấu trúc cơ bản của các bộ DSP như hình vẽ. Các bộ ghi trì hoãn nối ra (Tapped delay register) vi là các ô nhớ kế tiếp trong RAM 1, còn các đáp ứng xung hi (các hệ số hay số nhân) được lưu giữ trong RAM 2. Ngoài ra còn có ROM để chứa chương trình của thuật toán lọc.
hi .vi
y
vi
Bus
x
v3
v2
v1
v0
h3
h2
h1
h0
y
X
+
y
RAM 1
RAM 2
ROM
Vào
hi
MAC
Ra
Hình 2.3 Cấu trúc cơ bản của các bộ DSP
`
Gánh nặng của các bộ DSP là phần nhân và tích luỹ (MAC), tức nơi tín hiệu thực hiện các phép nhân và cộng (số nguyên hoặc số chấm động tuỳ thuộc bộ DSP).
Một lệnh như vậy mất khoảng vài chục ns. Lọc bậc N có N+1 lối ra cần khoảng N+1 lệnh, ngoài ra còn phải cộng thêm các thời gian khác (nhập, xuất, dịch chuyển…). Các bộ DSP hiện đại có cấu trúc sao cho giảm tối đa thời gian thực hiện lệnh.
2.2 Vai trò của FPGA trong các hệ xử lý tín hiệu số DSP
Trước đây, các giải thuật xử lý tín hiệu số (DSP) được thực hiện bằng các chíp DSP đa dụng (general-purpose) dùng cho các ứng dụng có tần số thấp hoặc các chíp DSP chuyên dụng và các mạch tích hợp chuyên dụng (ASIC) cho các ứng dụng có tần số cao hơn. Sự tiến bộ trong FPGA ngày nay đã cho phép các kỹ sư thiết kế các hệ thống DSP nhiều sự lựa chọn hơn. FPGA vẫn đảm bảo lợi thế của các chức năng như một IC chuyên dụng (ASIC) mà lại tránh được chi phí phát triển cao, và có thể thay đổi được thiết kế sau khi sản xuất. FPGA linh hoạt hơn trong khi thiết kế, tận dụng thiết bị tốt nhất, trong khi vẫn đảm bảo được không gian bo mạch và nguồn cung cấp cho hệ thống. Trong trường hợp thiết kế yêu cầu sử dụng một bộ DSP, hay trong trường hợp yêu cầu thời gian nhanh tới thị trường, hay trong trường hợp tính tương thích được đẩy lên cao, việc sử dụng FPGA có thể sẽ là giải pháp tốt hơn.
FPGA sử dụng SRAM rất phù hợp cho xử lý số học, bao gồm cả các chức năng DSP nâng cao MAC. Một loạt các chức năng DSP (như FFT, tích chập, và các giải thuật khác) có thể được tích hợp với các mạch tích hợp ngoại vi xung quanh. FPGA cũng có thể được tái cấu hình khi chạy để thực hiện một chức năng nào đó ở mức hệ thống.
Khi xây dựng một hệ thống xử lý tín hiệu số (DSP) bằng FPGA, người thiết kế có thể tận dụng các cấu trúc song song, các giải thuật số học, để giảm thiểu các tài nguyên và tăng hiệu năng của DSP. Số học phân bố (Distributed Arithmetic) được sử dụng trong kỹ thuật nhân mảng trong FPGA là một cách để tăng dải thông và thông lượng dữ liệu (so với các giải pháp XLTHS trước đây).
Thiết kế FPGA ít đòi hỏi kiến thức về các phần cứng chuyên dụng như là các chíp DSP và ASIC. Do đó, các nhóm thiết kế nhỏ hơn, với ít kỹ sư có kinh nghiệm hơn, cũng có thể thiết kế các hệ thống lớn hơn, phức tạp hơn các nhóm kỹ sư giàu kinh nghiệm và hiểu biết nhiều về các phần cứng chuyên dụng trước đây. Các nhóm thiết kế FPGA bây giờ có thể thiết kế, kiểm tra, và sẵn sàng cho một hệ thống xử lý tín hiệu số phức tạp trước khi đưa vào sản xuất ngay trong thời gian ngắn.
Các bộ máy trong hệ thống DSP thường là các hệ thống máy tính xử lý tuần tự phân kênh theo thời gian thực hiện liên tục các phép xử lý toán học. Trong khi các bộ DSP có thể thực hiện nhiều chỉ lệnh trong một chu kỳ đồng hồ, thì toàn bộ quá trình xử lý được thực hiện theo các chuỗi gồm 3 bước: 1-đọc từ bộ nhớ; 2-xử lý; 3-ghi trở lại bộ nhớ. Tiến trình này tương đương với một loạt các giải thuật tuần tự độc lập (a modified Von Neuman Architeature). Bộ DSP trở nên không hiệu quả khi một giải thuật phụ thuộc vào một hoặc nhiều các điều kiện khác trong quá khứ, hoặc hiện tại, hoặc tương lai. Đây là nguyên nhân cơ bản của cấu trúc song song hoặc hồi đáp (Feed-back) của luồng dữ liệu cần xử lý với các trạng thái đợi bổ sung trong các bộ DSP.
a. FPGA tăng sự linh hoạt
Giống như một DSP đa dụng, các FPGA có khả năng lập trình và dễ thay đổi. Người thiết kế có thể thay đổi rất nhanh mà không tăng giá thành và quy trình sản xuất lâu như một ASIC.
Khi tính đến nhân tố hiệu năng, nhiều người thiết kế hướng về công nghệ ASIC. Công nghệ ASIC cung cấp một khả năng thiết kế các kiến trúc tuỳ chỉnh để tối ưu hoá mục đích ứng dụng.
Hình 2.4 Một ví dụ bộ lọc FIR 256 Tap
Ví dụ, một bộ lọc số điển hình yêu cầu nhiều chu kỳ MAC - một chu kỳ MAC cho mỗi Tap lọc. Một DSP thông thường chỉ có một MAC đơn, bởi vậy mỗi Tap lọc phải được thực hiện tuần tự, nên làm giảm toàn bộ sự thực hiện của hệ thống.
Đối với bộ lọc FIR 256 Tap đòi hỏi 256 phép toán (MACs) trên mỗi dữ liệu lấy mẫu trước khi xử lý mẫu tiếp theo.
Sự thực hiện FPGA đã vượt quá 128 tỉ phép toán MACs/giây, cao hơn đáng kể so với DSP thông thường. Với VitexII, sự thực hiện sẽ là 600 tỉ MACs/giây. FPGA đạt được điều này bởi việc sử dụng một kiến trúc song song để xử lý tín hiệu vào. Dùng kiến trúc này, mỗi mẫu trong bộ lọc FIR 256 Tap có thể được xử lý trong một chu kỳ đồng hồ đơn, do đó cải thiện đáng kể sự thực thi và hiệu quả của DSP.
b. Tăng sự thực hiện với các FPGA
Kiến trúc DSP ảnh hưởng trực tiếp đến sự thực hiện của hệ thống. Bởi vì đa số các hàm DSP đều dựa trên phép nhân/tích luỹ, sự thực thi của MAC là chủ yếu. Mỗi bộ xử lý có khả năng thực hiện các giải thuật DSP bởi vì mỗi bộ xử lý có thể thực hiện các phép cộng và các phép nhân. Sự khác nhau duy nhất giữa một DSP đa dụng và một bộ vi xử lý là cách mà chúng thực hiện chức năng này.
Ví dụ, bộ xử lý Pentium yêu cầu 11 chu kỳ đồng hồ để thực hiện một thao tác nhân/cộng đơn trong khi đa số các bộ xử lý DSP chỉ yêu cầu một chu kỳ đơn. Một DSP điểm cố định 50MHz thực hiện một chu kỳ nhân/tổng chỉ trong 20 ns trong khi một bộ xử lý Pentium 133MHz yêu cầu 1.3 ms để thực hiện cùng một chức năng. Như vậy kết quả, một bộ xử lý Pentium 133MHz chỉ bằng 24% công suất xử lý DSP của một DSP 50MHz cho chức năng lọc thể hiện trong hình 2.5.
Hình 2.5 So sánh hiệu quả thực hiện của bộ lọc FIR
FPGA đưa ra một kiến trúc hoàn toàn thích hợp với ứng dụng đặc biệt. Bởi vì FPGA thiết kế rất linh hoạt, hàm DSP có thể được ánh xạ trực tiếp đến các tài nguyên có sẵn trên một FPGA. Sự thực thi FPGA không những nhanh hơn đa số các DSP, nó cho phép kết hợp tốt nhất giữa mật độ và hiệu năng của hệ thống. Hình 2.5 biểu diễn mối quan hệ của các sự thực hiện khác nhau của một bộ lọc FIR 8-bit, 16-Tap, thường thực hiện với bộ xử lý DSP điểm cố định 50 MHz. Hiệu quả nhất của sự thực thi FPGA thể hiện bằng 68% đối với một XC4003E-3 FPGA, hoặc xấp xỉ 1500 cổng. Sự thực thi hiệu quả là sử dụng thuật toán “phân bố tuần tự” SDA (Sequential Distributed Arithmetic). Các hàm nhân được ánh xạ vào trong các hàm tạo của FPGA, các bộ cộng và tích luỹ sử dụng logic nhớ nhanh (fast carry logic) và các thanh ghi dịch nối tiếp được xây dựng một cách hiệu quả trên chíp RAM.
Hiệu quả lớn nhất của sự thực thi FPGA sử dụng khoảng 75% của một XC401E-2 FPGA, hoặc khoảng 9750 cổng. Mặc dù chiếm diện tích lớn hơn nhưng sự thực hiện nhanh hơn 22 lần so với một DSP 50 MHz đối với ứng dụng này. Nó sử dụng giải thuật phân bố song song (PDA). Thậm chí có thể thực thi nhanh hơn nếu ứng dụng có thể chấp nhận góc trễ dữ liệu xẩy ra do kiến trúc đường ống. Sự thực hiện cũng được tăng lên nếu bộ lọc được tích hợp với mạch logic khác trên cùng một chíp do đó bỏ qua được các độ giữ chậm vào/ra.
Hình 2.6 Hiệu năng của các giải thuật phân bố đối với bộ lọc FIR
Với khả năng thực hiện FPGA trong một dải rộng, sự kết hợp tốt nhất giữa mật độ và hiệu năng đối với các giải thuật khác nhau được thể hiện trong hình 2.6. Mỗi sự thực hiện hoàn toàn thích hợp với tốc độ, mật độ, và giá thành yêu cầu của mục đích ứng dụng. Tuần tự nối tiếp là hiệu quả nhất, nhưng cũng là chậm nhất. PDA là nhanh nhất, nhưng cũng sử dụng nhiều mạch lôgic nhất. SDA là một sự dung hoà tốt nhất của tốc độ và mật độ, tuỳ thuộc vào hệ thống yêu cầu.
Trong nhiều ứng dụng, một FPGA hoàn toàn thay thế được một DSP chuyên dụng. Các ứng dụng này là quá trình xử lý nhúng hoặc là các chức năng lọc điển hình với tần số lấy mẫu dữ liệu từ 100 kHz đến 70 MHz.
Trong dải từ 1 kHz đến 100 kHz, một hàm DSP - cộng với tất cả các hệ thống logic khác - là phù hợp với một FPGA đơn, giá thành thấp. Phương pháp này sử dụng giải thuật tuần tự nối tiếp (SSDA) như trình bày ở hình 2.6, nhưng hiệu năng thấp.
c. FPGA nâng cao khả năng của DSP đa dụng
FPGA không bao giờ thay thế hoàn toàn các bộ xử lý DSP đa dụng. Các DSP đa dụng vẫn còn có ảnh hưởng lớn đến sự thực hiện điểm dấu phẩy động. Hơn nữa, các bộ xử lý DSP đa dụng sử dụng các phần mềm quen thuộc. Người thiết kế thực hiện một thuật toán DSP sử dụng một ngôn ngữ lập trình như “C” và biên dịch mã cho bộ xử lý DSP chuyên dụng. Trong nhiều ứng dụng, một bộ vi xử lý DSP nhanh và rất đắt được sử dụng để điều khiển sự thực hiện tối đa từng phần mã nhỏ. Một thuật toán DSP điển hình chứa đựng nhiều vòng lặp phản hồi và các cấu trúc song song như trình bày trên sơ đồ dòng dữ liệu cho bộ lọc FIR 16-Tap trong hình 2.7.
Hình 2.7 Sơ đồ khối bộ lọc FIR 16-Tap với hệ số nhân đối xứng
Mã phần mềm cho các giải thuật như vậy không được thực thi hiệu quả trong các kiến trúc DSP đa dụng. Điển hình sử dụng khoảng 20-40% của mã lệnh và 60-80% khả năng xử lý của DSP. Một phương pháp phổ biến để tăng khả năng thực hiện DSP là sử dụng nhiều DSP mắc song song cùng với bộ nhớ tốc độ cao. Ví dụ, giải pháp 4-DSP thể hiện ở hình 2.5 theo lý thuyết sự thực hiện bằng 4 lần so với giải pháp sử dụng DSP-đơn. Tuy nhiên, giá thành của nó lại tăng hơn 4 lần. Những thiết kế DSP nhiều chíp này nhìn chung yêu cầu không gian bo mạch lớn và các bộ nhớ chấp hành cao hơn làm tăng thêm giá thành.
Ngoài ra, giải pháp tốt nhất cho các ứng dụng này có thể là một bộ xử lý DSP, bộ vi xử lý hoặc bộ vi điều khiển với một FPGA đồng xử lý. Bộ xử lý DSP đa dụng sử dụng các hàm điều khiển hệ thống và hàm di chuyển dữ liệu. FPGA cung cấp một bộ đồng xử lý DSP tuỳ chỉnh thích hợp để sử dụng tối đa chức năng xử lý.
Quá trình phân tích giải thuật DSP sẽ khám phá ra các cấu trúc song song và các vòng lặp để sử dụng tố đa hiệu quả DSP. Việc đặt các hàm này trong FPGA làm tăng sự thực hiện toàn bộ.
2.3 Một số trường hợp ứng dụng
2.3.1 Bộ giải mã Viterbi
Một bộ giải mã Viterbi là một ví dụ giải thích làm thế nào một FPGA có thể tăng tốc độ một chức năng. Thiết kế ban đầu sử dụng hai thiết bị DSP lập trình được 66 MHz để thực thi một giải thuật. Giải thuật đã sử dụng để tính toán các đầu ra “New_1” và “New_2”, thể hiện ở hình 2.7, yêu cầu 17 chu kỳ đồng hồ tính toán, cộng thêm 7 chu kỳ đồng hồ bổ sung do trạng thái đợi (wait-state) đối với bộ nhớ SRAM bên ngoài của DSP. Bộ nhớ này là bắt buộc đối với DSP để lưu trữ dữ liệu, Do đó thuật toán Viterbi Decoder yêu cầu 360 ns [(24-clock cycles).(15 ns)] tổng thời gian xử lý. Thuật toán Viterbi Decoder tận dụng khoảng 80% của toàn bộ thời gian xử lý. Chú ý rằng điều này không chứa đựng sự tính toán của các đầu ra “Diff_1” và “Diff_2”. Các đầu ra này có thể yêu cầu một sự bổ sung 7 chu kỳ đồng hồ. Bảy từ dữ liệu vào/ra được dồn kênh trên một Bus vào/ra chung với tốc độ lớn nhất là 33 MHz.
Hình 2.8 Sơ đồ bộ giải mã Viterbi
MSB
MSB
I / O Bus
I / O Bus
New _ 1
New _ 2
Diff_1
Diff_2
Bit
Prestate Buffer
1
0
24-Bit
24-Bit
24-Bit
M
U
X
M
U
X
Old _1
INC
Old _2
Có hai giới hạn trong thiết kế này : Thứ nhất là trạng thái đợi gắn liền với bộ nhớ SRAM mở rộng yêu cầu hai chu kỳ đồng hồ 15 ns cho mỗi lần truy cập bộ nhớ. Do đó mỗi lần thực hiện cần 30 nsec, và tốc độ lớn nhất của Bus vào/ra là 30 nsec . Thứ hai là mỗi lượt cộng/trừ (Add/Subtract) và phân kênh (MUX) phải được thực hiện tuần tự với sự bổ sung thêm các trạng thái đợi. Mỗi lượt cộng/trừ (Add/Subtract) yêu cầu 4 phép toán bổ sung với nhiều chỉ thị lệnh cho một phép toán.
* Giải mã Viterbi dựa trên cơ sở FPGA và DSP
Thuật toán này là rất phù hợp cho FPGA. Chúng ta có thể lợi dụng khả năng xử lý song song các kênh dữ liệu bên trong FPGA cho các cấu trúc song song của 4 khối cộng/trừ trong tầng thứ nhất và hai khối cộng/trừ trong tầng thứ hai. Khả năng ghi và lưu các dữ liệu vào cho hai khối MUX mà không cần bộ nhớ ngoài hoặc các chu kỳ đồng hồ bổ sung như trong bộ phân kênh thông thường.
Hình 2.9 Sơ đồ khối bộ giải mã Viterbi sử dụng FPGA
MSB
MSB
I / O Bus
I / O Bus
Bit
Prestate Buffer
1
0
24-Bit
24-Bit
24-Bit
R
E
G
R
E
G
Old _ 1
Old _ 2
INC
New _ 1
New _ 2
Diff_1
Diff_2
R
E
G
R
E
G
R
E
G
R
E
G
M
U
X
R
E
G
M
U
X
R
E
G
Các thanh ghi đường ống
Hình 5: Sơ đồ khối giải mã Viterbi sử dụng FPGA
Sự thay đổi thiết kế cho kết quả là: Giải mã Viterbi dựa trên công nghệ FPGA yêu cầu 135 ns [(9-clock cycle).(15 nsec)] của toàn bộ thời gian xử lý (bao gồm tất cả các đầu ra) so sánh với 360 ns cho bộ phân kênh thông thường, bằng 37.5% thời gian xử lý của bộ DSP thông thường. Các Bus dữ liệu vào /ra đồng thời cũng hỗ trợ tốc độ truyền 66 MHz, gấp đôi so với thông lượng cũ. Việc thực hiện bằng FPGA đã thay thế một bộ DSP và 3 chíp SRAM.
Hình 2.10 Hiệu quả của hai sự thực thi bộ giải mã Viterbi.
Trên đây là một ví dụ minh hoạ dùng FPGA có thể tăng tốc một hàm DSP. Để sử dụng FPGA trong một thiết kế DSP, cần xác định các luồng dữ liệu song song và/hoặc các phép toán yêu cầu nhiều chu kỳ đồng hồ.
2.3.2 Bộ lọc số.
Cơ chế xử lý của đa số các thuật toán lọc là một hàm nhân và cộng (MAC). Các thiết kế bộ lọc có thể khác nhau nhiều theo số lượng các bộ MAC, từ 1 đến hàng nghìn. Khi số các bộ MAC tăng lên, thuật toán trở nên phức tạp hơn cho các kiến trúc dựa trên CPU. Do đó giải thuật trở nên nặng về tính toán hơn bất kỳ bộ xử lý tín hiệu số nào.
Hàm MAC có thể được thực thi hiệu quả với các kỹ thuật số học phân bố (DA) hơn là với các phương pháp số học thông thường. Số học phân bố (DA) có thể tận dụng triệt để các bảng tra Look-up (LUTs) để thực hiện các hàm xử lý tín hiệu số (DSP) trong các FPGA.
a. Các bộ lọc số dùng FPGA
Khi xây dựng bộ lọc số dùng FPGA, thiết kế có thể tận dụng các kiến trúc song song và các thuật toán số học phân bố (DA) để tăng hiệu năng xử lý. Do FPGA không có các bộ nhân dành riêng, việc sử dụng số học phân bố (DA) trong các phép nhân mảng trong FPGA là một kỹ thuật dùng để thực hiện và tăng độ rộng dải tần và thông lượng.
Một ví dụ về thuật toán số học phân bố nối tiếp (SDA) là bộ lọc FIR 16-Tap, 8-Bit. Thiết kế SDA-FIR hỗ trợ một chíp tốc độ dữ liệu vào/ra trên 8 triệu mẫu/giây [(13.7 ns x (8-Bits + 1))/ 16-Taps = 7.71 ns/Tap] khi sử dụng 68 khối Logic có khả năng định cấu hình (CLBs) trong một XC4000E-3 FPGA. Chú ý rằng việc tăng số lượng các khối MAC hoặc các Taps ảnh hưởng không đáng kể đến tốc độ lấy mẫu khi dùng số học phân bố nối tiếp (SDA). (h2.3)
Ví dụ này cũng có thể được thực hiện bằng cách sử dụng nhiều bit, với số học phân bố song song (PDA) để nhận được các tốc độ lấy mẫu dữ liệu vào/ra lớn hơn, có thể vượt quá 55 triệu mẫu/giây (khi dùng 400 CLBs trong một XC4000E-3). Chú ý rằng hai ví dụ này đều có thể làm việc được với cấu hình 16-Tap, 8-Bit bất kỳ. Việc tối ưu hoá thiết kế cho một cấu hình cụ thể thường giảm số CLBs tới 20%.
b. Bộ lọc FIR 16-Tap sử dụng FPGA
FPGA có thể dùng để thực hiện một chức năng lọc FIR sử dụng một vài kỹ thuật DA (Distributed Arithmetic), tuỳ theo yêu cầu thực hiện. Các kỹ thuật này có thể được sử dụng để tối ưu hoá nhiều yêu cầu xử lý dữ liệu khác nhau hoặc các thuật toán áp dụng cho các bộ MAC. Các kỹ thuật số học phân bố song song (PDA) được sử dụng để đạt tốc độ lấy mẫu nhanh nhất, trong khi tốc độ chậm hơn có thể chấp nhận được với các kỹ thuật số học phân bố “nối tiếp” hoặc “nối tiếp-tuần tự” để giảm tài nguyên ít nhất (sử dụng ít CLB hơn).
Vấn đề đáng quan tâm nhất trong các thiết kế là khả năng thực hiện hay chính là tần số mẫu của bộ lọc. Thiết kế phải hoạt động ở tần số đó, nếu không nó chẳng có giá trị gì cả.
2.3.3 Số học phân bố nối tiếp
Số học phân bố chỉ khác số học truyền thống ở cách thức thực hiện các phép toán. Lấy ví dụ một hàm MAC 4-tích sử dụng kỹ thuật cộng và nhân tuần tự để nhân 4 cặp số và cộng tổng lại với nhau. Mỗi nhân tử tạo thành các tích riêng lẻ (trong MAC ở hình 2.11), sau đó được cộng với nhau qua 3 phép cộng. Quá trình nhân được mô tả như hình 2.12.
SUM
PD
PC
PA
A
Y0
Ai
REG
1/2
MAC Block
MS
LS
P
SHIF-REG
D
Di
S-REG
C
MAC
MAC
MAC
Y1
Y2
Y3
B
Bi
S-REG
Ci
S-REG
PB
Hình 2.11 Kỹ thuật 4-MAC truyền thống
Mỗi nhân tử tạo thành các tích riêng lẻ (trong MAC ở hình 2.11), sau đó được cộng với nhau qua 3 phép cộng. Quá trình nhân được mô tả như hình 2.12.
Hình 2.12 Biễu diễn quá trình nhân trong MAC
P
A
Y
Ai
REG
1/2
MAC Block
MS
LS
P
SHIF-REG
Ao*( Y3 Y2 Y1 Y0 ) {Cycle=0}
+ A1*( Y3 Y2 Y1 Y0 ) {Cycle=1}
+ A2*( Y3 Y2 Y1 Y0 ) {Cycle=2}
+ A3*( Y3 Y2 Y1 Y0 ) {Cycle=3}
LET A = A3A2A1A0 and Y = Y3Y2Y1Y0 THEN, A*Y = P is ,
{Star}
{End}
P7 P6 P5 P4 P3 P2 P1 P0
Bốn phép nhân được thực hiện riêng biệt , sau đó cộng kết quả lại. Quá trình này đòi hỏi n chu trình đồng hồ cho mẫu dữ liệu n-bits. Do đó tốc độ đồng hồ bằng tốc độ dữ liệu chia cho số bit dữ liệu. Trong mỗi chu kỳ đồng hồ, 4 bộ nhân tạo ra 4 kết quả (trong hình là PA, PB, PC, PD), và kết quả này sau đó được cộng lại để tới đầu ra. Số học phân bố sẽ thực hiện việc cộng này ngay trong các chu kỳ đồng hồ, chứ không phải để tính tích xong mới cộng.
Hình 2.13 Số học phân bố nối tiếp cho 4-MAC
Ai
Y3
Y2
PC
Y1
Y0
B
Bi
S-REG
C
Ci
S-REG
D
Di
S-REG
A
S-REG
LS
MS
REG
P
1/2
1 – Bit Scaling
Accumulator
SUM
PD
PB
PA
ơ
Sử dụng số học phân bố, như thể hiện ở hình 2.13, thứ tự các phép toán được thay đổi. Kỹ thuật này giúp giảm các phép dịch-và-cộng (shift-and-add) xuống bằng một, chứ không thay đổi số các phép cộng thông thường.
Kết quả là đầu ra các hàm AND và 3 bộ cộng trong hình 2.13 chỉ phụ thuộc số bit của 4 đầu vào từ các thanh ghi dịch. Thay thế các hàm AND và các bộ cộng bằng một bảng LUT 4-bit (16-words) tạo nên bộ MAC số học phân bố nối tiếp hiệu quả nhất (hình 2.14).
Hình 2.14 Số học phân bố nối tiếp dựa trên bảng LUT cho một 4-MAC
LOOK-
UP
TABLE
Ai
B
Bi
S-REG
C
Ci
S-REG
D
Di
S-REG
A
S-REG
LS
MS
REG
P
1/2
1 – Bit Scaling
Accumulator
SUM
Dữ liệu LUT, xem hình 2.15, được tạo nên từ các tổng thành phần của các đầu vào Y0, Y1, Y2, Y3. Nếu tất cả các bit dữ liệu bằng 1, tổng của bảng LUT là tổng của Y0, Y1, Y2, Y3. Nếu một bit nào đó bằng 0, hệ số hệ số nhân tương ứng được loại bỏ khỏi tổng. Bởi vì địa chỉ của các bảng LUT chứa tất cả các tổ hợp của 1 và 0, dựa theo các đầu vào , đầu ra bảng LUT chứa tất cả 16 tổng của các hệ số nhân có thể xẩy ra.
Hình 2.15 Nội dung của bảng LUT 16-word
LOOK-
UP
TABLE
Ai
B
Bi
S-REG
C
Ci
S-REG
D
Di
S-REG
A
S-REG
ADDR_0
ADDR_1
ADDR_2
ADDR_3
O
U
T
P
U
T
Look – Up Table
LUT Imputs LUT Output
Partial Sum
0000.....0
YA
YB
YB + YA
YC
YC + YA
YC + YB
YC+YB+YA
YD
YD + YA
YD + YB
YD+YB+YA
YD + YC
YD + YC + YA
YD + YC + YB
YD+YC+YB+YA
Trong ví dụ 4-MAC trên, độ rộng của bảng tra LUT thường lớn hơn các hệ số nhân là 2-bit. Mạch đòi hỏi nhiều nhất 2-bit vì nó thực hiện cộng tối đa 4 hệ số nhân. cũng có thể dùng ít bit hơn mà vẫn đủ trong trường hợp tổ hợp các hệ số nhân tạo nên giá trị kết quả có ít bit hơn. Nếu thực hiện nhiều hơn 4 hệ số nhân, đòi hỏi có thêm nhiều bit bổ sung. Tổng quát người ta đã chứng minh là số bit thêm vào ít nhất bằng log2(số các hệ số nhân). Bạn chỉ có thể dùng ít bit hơn trong trường hợp có một số hệ số nhân đã biết, và bảng tra LUT đã được tính sẵn.
Khi số các hệ số nhân tăng lên, kích thước bảng LUT tăng theo. Để tránh phải dùng các bảng LUT lớn, người ta có thể chia mạch thành các nhóm nhỏ hơn và thực hiện từng phần. Chi phí phát sinh khi sử dụng thêm các bộ cộng rẻ hơn nhiều so với chi phí cho một bảng LUT lớn.
Trong ví dụ bộ lọc FIR 16-Tap, mạch có thể đòi hỏi một bảng LUT 16-bit. Nếu kiến trúc FPGA sử dụng 4 đầu vào, cách phân chia tối ưu là dùng một bảng tra LUT cho 4-tích. Bộ cộng và nhân 16-Tap có thể được chia như hình 2.16.
Thay vì tăng kích thước bảng LUT, dùng 4 bảng LUT với cùng kích cỡ như trong hình 2.14. Chúng ta cần dùng thêm 3 bộ cộng ở đây. Mỗi bộ cộng chiếm khoảng không gian tương đương một bộ LUT 4-bit. Do đó hệ số tăng là khoảng 6 đến 7. Trong các thiết kế sử dụng SDA, với các bảng LUT 4 đầu vào, mỗi thiết kế được cấu hình tương tự như đã trình bày với các thiết kế một bảng LUT 4 đầu vào.
Hình 2.16 Giải thuật số học phân bố nối tiếp dùng bảng LUT
SUM
LS
MS
REG
P
1/2
1 – Bit Scaling
Accumulator
DC
D8
D4
D3
S-REG
D2
S-REG
D1
S-REG
D0
S-REG
LUT
D7
S-REG
D6
S-REG
D5
S-REG
S-REG
LUT
DB
S-REG
DA
S-REG
D9
S-REG
S-REG
LUT
DF
S-REG
DE
S-REG
DD
S-REG
S-REG
LUT
16-MAC
Sử dụng số học phân bố dựa trên bảng LUT 4-bit
Sự khác nhau duy nhất giữa một mạch MAC và một mạch FIR là cách thức xử lý dữ liệu (hình 2.17). MAC có một loạt các chuyển đổi song song thành nối tiếp, trong khi bộ lọc FIR chỉ có một thanh ghi dịch bit dài (bit-wide). Chỉ có từ đầu tiên là được nạp vào song song. Thanh ghi dịch đầu tiên hoạt động bằng cách nạp song song mẫu dữ liệu mới vào. Sau đó dịch bit nối tiếp, mỗi lần một bit. Kết quả từ thanh ghi dịch được điền lần lượt vào bảng LUT, cho đến khi bit có trọng số lớn nhất được nạp. Khi quá trình dịch bit kết thúc, thanh ghi dịch dữ liệu đầu tiên sẽ trống, và sẵn sàng nạp dữ liệu mới để thực hiện tiếp mẫu dữ liệu khác.
Đầu ra của thanh ghi dịch đầu tiên sẽ là đầu vào của thanh ghi dịch vào/ra nối tiếp. Mỗi Tap thêm vào cũng có thể dùng một thanh ghi dịch vào/ra nối tiếp với các đầu vào được tạo ra bởi các Tap trước đó sắp xếp chéo nhau. Chú ý rằng luồng dữ liệu có thể được thay đổi để phù hợp với đặc tính đầu vào.
Thanh ghi vào song song-ra nối tiếp thứ nhất, các thanh ghi dịch còn lại có thể được tạo nên bằng các thanh ghi thông thường, hoặc thực hiện hiệu quả hơn bằng các thanh ghi sử dụng RAM đồng bộ hoá.
Dữ liệu trong các thanh ghi dịch bit làm bằng RAM được sử dung trong các phép nhân với hệ số nhân tra trong bảng LUT trong vòng xử lý tiếp theo. Mẫu dữ liệu cũ nhất (Tap cuối cùng), sau khi đã được thực hiện sẽ bị xoá đi sau mỗi vòng xử lý.
Hình 2.17 Bộ lọc FIR 16-Tap sử dụng số học phân bố nối tiếp dùng bảng LUT
SUM
LS
MS
REG
P
1/2
1 – Bit Scaling
Accumulator
D0
S-REG
LUT
LUT
LUT
LUT
S-RAM
S-RAM
S-RAM
S-RAM
S-RAM
S-RAM
S-RAM
S-RAM
S-RAM
S-RAM
S-RAM
S-RAM
S-RAM
S-RAM
S-RAM
REG
REG
REG
REG
REG
REG
REG
Bộ lọc FIR 16-Tap
Dùng số học phân bố nối tiếp
Đầu ra mỗi bảng LUT và bộ cộng có thể được ghi vào cùng một khối CLB. Bằng việc bổ sung thêm các thanh ghi đường ống, thiết kế có thể cho hiệu quả tốt hơn nữa. Ví dụ với bộ lọc FIR 16-Tap, các thanh ghi đường ống tạo nên dòng hiệu quả liên tục với độ giữ chậm là 4 chu kỳ lấy mẫu.
Nếu bộ lọc là đối xứng, chúng ta còn có thể giảm bớt các tài nguyên hơn nữa trong các thiết kế. Trong bộ lọc FIR đối xứng, số các bảng tra LUT (hoặc MAC) có thể giảm theo thừa số của 2. Bằng cách bổ sung dữ liệu vào với một hệ số nhân trước phép nhân. Điều này được thực hiện trong các bộ cộng nối tiếp. Cách làm này cũng giảm số các giai đoạn cộng trong thiết kế như trong hình 2.19
Hình 2.18 Biểu đồ vào/ra của bộ cộng nối tiếp
B
C_IN
CLK
C_OUT
A + B
A+B+C_IN
REG
REG
A
SUM
Khi dùng các bộ cộng nối tiếp để giảm số lượng MAC trong một giải thuật SDA(số học phân bố nối tiếp), cần bổ sung thêm một xung đồng hồ để đẩy các giá trị Carry_out khỏi tổng hai bit tận cùng (bit có trọng số lớn nhất) của dữ liệu đầu vào. Tốc độ hoạt động có thể tính bằng cách chia tần số mẫu cho số bit mẫu cộng thêm1.
Một bộ lọc thực hiện bằng FPGA sử dụng SDA cho hiệu năng cao với số các CLB tối thiểu. SDA sử dụng ít nhất các CLB trong khi vẫn xử lý dữ liệu mẫu (Tap) song song.
Hình2.19 Bộ lọc FIR 16-Tap đối xứng sử dụng SDA dựa trên bảng LUT
SUM
T8
T7
T9
T6
T10
T5
T11
T4
T12
T3
T13
T2
T14
T1
T15
T0
A0
A1
LUT
A2
A3
A0
A1
LUT
A2
A3
MS
LS
REG
P
1/2
1 – Bit Scaling
Accumulator
REG
REG
REG
D0
S-REG
S-RAM
S-RAM
S-RAM
S-RAM
S-RAM
S-RAM
S-RAM
S-RAM
S-RAM
S-RAM
S-RAM
S-RAM
S-RAM
S-RAM
S-RAM
SERIAL ADD
SERIAL ADD
SERIAL ADD
SERIAL ADD
SERIAL ADD
SERIAL ADD
SERIAL ADD
SERIAL ADD
Bộ lọc FIR 16-Tap đối xứng sử dụng giải thuật phân bố nối tiếp
Một kỹ thuật “số học phân bố tuần tự nối tiếp” (SSDA) có thể sử dụng ở tốc độ dữ liệu thấp hơn để bảo vệ các CLB. Quá trình này được thực hiện nối tiếp từng bit, tuần tự từng từ . Kỹ thuật này sử dụng một RAM cổng kép hoặc một FIFO để phân kênh theo thời gian. Tốc độ được tính bằng tần số dữ liệu lớn nhất của số bit dữ liệu đã cho các bit dữ liêu chia cho số Tap. Kỹ thuật này thường dùng cho tần số mẫu dữ liệu dưới 1 MHz.
2.3.4 Số học phân bố song song (PDA)
Số học phân bố song song (PDA) được sử dụng để tăng hiệu năng của số học phân bố nối tiếp (SDA). Với PDA, số bit có thể xử lý trong mỗi chu kỳ tăng lên. Chú ý rằng việc tăng các bit lấy mẫu ảnh hưởng đáng kể đến số lượng CLB. Do vậy, số bit song song lấy mẫu thường phải tăng để đáp ứng yêu cầu khả năng thực hiện.
Việc tăng các bit xử lý từ 1-bit trong trường hợp SDA đến 2-bit trong trường hợp PDA có thể giảm số chu kỳ đồng hồ cần xử lý xuống còn một nữa. Do vậy PDA 2-bit cho thông lượng gấp đôi PDA 1-bit. Với PDA 2-bit, các thanh ghi dịch nối tiếp, mỗi thanh được thay bằng 2 thanh ghi dịch 1-bit. Hai thanh ghi dịch song song được tách ra, một thanh lưu các bit hàng chẵn, một thanh lưu các bit hàng lẻ. Các mẫu dữ liệu song song 2-bit cần sử dụng số lượng gấp đôi các bảng LUT. Ngoài ra còn thêm bộ cộng scalling 1-bit, dùng để cộng hai tổng bộ phận nhận được từ các bit lấy mẫu song song. Bus dữ liệu vào của nó đòi hỏi phải mở rộng để phù hợp với tổng thành phần lớn hơn.
Hình 2.20 Giải thuật PDA 2-Bit dùng bảng LUT cho MAC 4-tích
LS
PS_BIT_1
PS_BIT_1
BIST[(n-1),...,5,3,1]
D
A
B
C
Di
LOOK-
UP
TABLE
Ai
Bi
S-REG
Ci
S-REG
S-REG
S-REG
BIST[(n-1),...,5,3,1]
D
A
B
C
Di
LOOK-
UP
TABLE
Ai
Bi
S-REG
Ci
S-REG
S-REG
S-REG
1/2
R
E
G
MS
LS
REG
P
1/2
2 – Bit Scaling
Accumulator
SUM
Một bộ lọc thiết lập bằng FPGA với PDA 2-Bit cho kết quả xử lý gấp đôi so với nếu chỉ dung SDA. Các PDA 2-Bit dùng ít các CLBs hơn SDA, trong khi xử lý toàn bộ dữ liệu song song, và với tần số gấp đôi so với SDA.
Kết luận chương 2
Xử lý tín hiệu số là phương pháp xử lý tín hiệu có những đặc điểm vượt trội so với phương pháp xử lý tương tự truyền thống, bởi sự mềm dẻo của tính khả trình cho phép thực hiện các thuật toán xử lý tinh tế và phức tạp với những chi phí phần cứng không cao. Vấn đề dáp ứng thời gian thực của các bộ xử lý số cũng được giải quyết nhờ các bộ xử lý số tín hiệu DSP hay công nghệ FPGA.
Khi xây dựng một hệ thống xử lý tín hiệu số (DSP) bằng FPGA, người thiết kế có thể tận dụng các cấu trúc song song, các giải thuật số học, để giảm thiểu các tài nguyên và tăng hiệu năng của DSP. Số học phân bố (Distributed Arithmetic) được sử dụng trong kỹ thuật nhân mảng trong FPGA là một cách để tăng dải thông và thông lượng dữ liệu (so với các giải pháp XLTHS trước đây).
Trong các chương sau sẽ trình bày cơ sở lý thuyết, thực hiện xây dựng, tạo cấu hình các bộ DSP phục vụ xử lý tín hiệu rađa trên công nghệ FPGA.
Các file đính kèm theo tài liệu này:
- Chuong2 DSP va ung dung cua DSP tren cong nghe FPGA.doc