Luận văn Kỹ thuật FPGA áp dụng thực hiện cho bộ mã FEC trong hệ DVB

Việc tổng hợp mã điểm cố định được sử dụng như là dạng mầu đối với hoạt động phần cứng. Các công cụ thiết kế Graphical như là HDL Designer dễ dàng đạt được các thiết kế rộng lớn. Các module riêng có thể được tự tạo mã trong VHDL. Tuy nhiên, như chỉ ra trên hình p-6, vài khối (bộ cân bằng được rất phức tạp. Ví dụ khối cân bằng bao gồm bộ phân giải khoá của bộ cân bằng và bộ lọc. Ở đây bộ phân giải khoá bao gồm các ma trận nghịch đảo hoặc FFT.

pdf89 trang | Chia sẻ: lylyngoc | Lượt xem: 3332 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Luận văn Kỹ thuật FPGA áp dụng thực hiện cho bộ mã FEC trong hệ DVB, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
hợp lệ kế tiếp được lấy mẫu, tiếp đó, một chu kỳ ghi được bắt đầu, trong trường hợp này với kích thước blog N. Hoạt động của lõi là không được chỉ rõ, trên một FD hợp lệ, một kích thước khối không hợp lệ được lấy mẫu, hoặc RFFD được lấy mẫu ở mức Low (Core là không sẵn sàng cho khối mới). Nếu một trong hai điều kiện đó xảy ra, lõi phải được reset bằng việc thiết lập SCLR. Kết cuối mắt lưới Khi tuỳ chọn Multiplexed Tail Bits được lựa chọn, như trong trường hợp các hệ thống 3GPP, các bit kết cuối mắt lưới của RSC1 và RSC2 được ghép kênh lại, qua 4 chu kỳ xung nhịp, trên các cổng đầu ra RSC1_SYSTEMATIC, RSC1_PARITY0 and RSC2_PARITY0. Các bit đó sau đó được truyền theo chuỗi sau : 50 -------------------------------------------------------------------------------------------------------- ' 3 ' 3 ' 2 ' 2 ' 1 ' 133211 ,,,,,,,,,,  nnnnnnnnnnn ZXZXZXZXZZX Khi tuỳ chọn Multiplexed Tail Bits không được lựa chọn, dữ liệu bit đuôi RSC2 sẽ được chuyển sang đầu ra RSC1_SYSTEMATIC và, vì thế ghi đè lên các giá trị RSC1_SYSTEMATIC. Thông thường đầu ra song song của các bit chẵn lẻ và có thứ tự từ mỗi bộ mã hoá sẽ được tuần tự hoá trước khi truyền dẫn. Cũng vậy, tổng quát, dữ liệu RSC2_SYSTEMATIC chỉ được truyền trong khoảng chu kỳ bit đuôi, vì thế bằng việc ghép kênh dữ liệu RSC2_ SYSTEMATIC vài cổng RSC1_ SYSTEMATIC, người dùng có thể loại bỏ cổng RSC2_ SYSTEMATIC. Tuy nhiên, nó được sử dụng để cung cấp tính mềm dẻo tốt nhất. Các tín hiệu điều khiển đầu ra Tín hiệu RDY được thiết lập mức High để chỉ ra rằng có dữ liệu hợp lệ trên các cổng chẵn lẻ và theo thứ tự. Thêm vào đó các đầu ra RSC1_TAIL và RSC2_TAIL được cung cấp để chỉ ra kết cuối sơ đồ mắt lưới của RSC1 và RSC2 tương ứng. Mức High trên RSC1_TAIL chỉ ra rằng các bit đuôi RSC1 là đầu ra và mức High trên RSC2_TAIL chỉ ra rằng các bit đuôi RSC2 là các đầu ra. Giản đồ thời gian đầu ra cho các bit đuôi được ghép kênh tuân theo chuẩn 3GPP được mô tả trong hình 2.20. Giản đồ thời gian cho đầu ra song song tuỳ chọn của các bit đuôi được mô tả trong hình 2.21. Hình 2. 20 Định thời đầu ra (Bits đuôi) Hình 2. 21 Định thời đầu ra ( Không bit đuôi) Trong đó: 51 -------------------------------------------------------------------------------------------------------- x1, x2,…..xn: là các bits đầu vào không xen rẽ, độ trễ cho kích thước khối là n. x’1, x’2,….x’n: là các bits đầu vào xen rẽ. z1……zn+3 là các bits đầu ra RSC Parity1. z’1…..z’n+3 là các bits đầu ra RSC parity0. Luồng điều khiển ở phía đầu ra có thể được thực hiện với cổng đầu vào tuỳ chọn RFD_IN. Nếu cổng RFD_IN được lấy mẫu mức Low trên biên xung lên kích thích, các cổng đầu ra RSC, RDY, và các mạch nội liên kết với các đầu ra đó sẽ bị đóng băng Phía đầu vào của lõi không bị ảnh hưởng trực tiếp bởi cổng RFD_IN. Tuy nhiên, nếu RFD_IN không được xác nhận đủ, thời gian để đưa ra một block có thể mở rộng bị mở rộng làm xác nhận của RFFD (hoạt động để bảo vệ việc chạy quá mức ở phía đầu vào) bị trễ. Nếu tỉ lệ 1/5 được lựa chọn, các đầu ra RSC1_PARITY1 và RSC2_PARITY1 sẽ được phép. Chúng có cùng một giản đồ thời gian tương ứng như RSC1_PARITY0 và RSC2_PARITY0. Chú ý : - Độ rộng của bus dữ liệu bộ nhớ bằng số kênh. - Độ rộng bus địa chỉ bộ nhớ là 13 nếu bộ tạo địa chỉ là nội, hoặc bằng độ rộng bộ tạo địa chỉ ngoài. - Cổng B chỉ là đọc, vì thế cổng WEB cho cả hai RAM ngoài nên được kết nối đến logic 0, và các cổng DINB có thể không được kết nối. Sử dụng tài nguyên và hiệu suất Bảng 2.3: Sử dụng tài nguyên và hiệu suất Mô tả Tài nguyên Notes Virtex-4 XCVLX160- 12 Vùng (các lát) 1,2 367 Câc bộ nhớ khối 4 MULT18x18s hoặc DSP48s 4 Tốc độ (MHz) 1,3 200 Thông lượng, cho kích cớ khối 40/5114 (Mbits/s) 4 118.9//199.8 Kênh đơn, RAM trong, Bộ sinh địa chi nội. CE, SCLR, ACLR, RDF_IN, ND, RDF, BLOCK_SIZE_VALID. Rate = 1/3. Góc trễ cho các khỗi cỡ k, min/max (các chu kỳ) 5 K+4/67 Vùng (các lát) 1,2 329 Câc bộ nhớ khối 4 MULT18x18s hoặc DSP48s 4 Tốc độ (MHz) 1,3 212 Thông lượng, cho kích cớ khối 40/5114 (Mbits/s) 4 126.6//211.8 Kênh đơn, RAM trong, Bộ sinh địa chi nội. Rate = 1/3. Góc trễ cho các khỗi cỡ k, min/max (các chu kỳ) 5 K+4/67 52 -------------------------------------------------------------------------------------------------------- Vùng (các lát) 1,2 323 Câc bộ nhớ khối 4 MULT18x18s hoặc DSP48s 4 Tốc độ (MHz) 1,3 209 Thông lượng, cho kích cớ khối 40/5114 (Mbits/s) 4 121.1//208.8 Kênh đơn, RAM trong, Bộ sinh địa chi nội. Rate = 1/3. Góc trễ cho các khỗi cỡ k, min/max (các chu kỳ) 5 K+4/69 2.3.2. Bộ giải mã TCC 2.3.2.1. Giới thiệu: Lõi của bộ giải mã TCC được sử dụng kết hợp với một bộ mã hóa TCC để cung cấp một phương pháp rất hiệu quả trong việc truyền dẫn dữ liệu tin cậy trên các kênh dữ liệu nhiễu, và được thiết kế để phù hợp với các đặc điểm kỹ thuật của hệ thống thông tin di động 3GPP. 2.3.2.2. Đặc tính: + Xây dựng dựa trên cấu trúc module cho Virtex + Thực hiện các đặc điểm kỹ thuật của 3GPP/UMTS. + Lõi bao gồm các bộ đan xen 3GPP đầy đủ. + Hỗ trợ đầy đủ dải kích thước của khối 3GPP từ 40 đến 5114. + Có khả năng lựa chọn động số bước lặp (1-15). + Miêu tả toán học: là phân số của hai thành phần sau: - Đầu vào dữ liệu: các bit số nguyên 2 hoặc 3, và các bit ¼. - Tính toán đầu vào: các bit số nguyên 6 hoặc 7, và các bit ¼. + Tùy chọn kết cuối nhanh. + Hỗ trợ đầu vào được mã hóa tỷ lệ 1/3 hoặc 1/5. + Khả dụng đối với phiên bản Xilinx Core… và các phiên bản sau. 2.3.2.3. Ứng dụng Lõi bộ mã hóa TCC được thiết kế để phù hợp với các đặc điểm kỹ thuật của hệ thống thông tin di động 3GPP. 2.3.2.4. Mô tả chung Bộ giải mã TCC được sử dụng với một bộ mã hóa TCC để cung cấp một phương pháp truyền dẫn dữ liệu tin cậy rất hiệu quả trên các kênh dữ liệu nhiễu. Bộ giải mã Turbo này hoạt động rất tốt dưới các điều kiện có tỷ lệ tín hiệu trên tạp âm thấp và cung cấp một hiệu năng gần với hiệu năng tối ưu theo lý thuyết được xác định bởi giới hạn Shannon. Khi một hoạt động giải mã bắt đầu, thì bộ lõi xác nhận kích thước khối và số bước lặp từ hai cổng đầu vào. Tiếp đến là một giai đoạn tải dữ liệu khối, trong khi đó, dữ 53 -------------------------------------------------------------------------------------------------------- liệu chẵn lẻ và dữ liệu hệ thống được đọc vào bộ lõi một cách song song dựa trên xung đồng hồ được lưu trữ trong bộ nhớ RAM. Sau đó bộ lõi bắt đầu tiến trình giải mã và thực hiện số bước lặp được yêu cầu. Hoạt đông giải mã có thể kết thúc sớm hơn nếu như khối kết cuối nhanh được tích hợp. Cuối cùng, các bit được giải mã được đưa ra một cách tuần tự. Hoạt động này được điều khiển tự động bởi một tín hiệu FD_IN đơn và yêu cầu không có sự can thiệp của người sử dụng. Tất cả hoạt động đan xen được yêu cầu trong đặc điểm kỹ thuật 3GPP được xử lý một cách tự động bên trong lõi. Bộ lõi đòi hỏi các số phân số bổ sung của hai như các đầu vào và đồng thời sử dụng dạng thức này cho các tính toán bên trong. Mỗi số đầu vào phân số miêu tả thuật toán giống nhất (LLR) được tách ra làm 2 phần cho mỗi bit đầu vào. Giá trị LLR có thể được xem như là các mức tin cậy, đó là một bit đặc biệt 1 hoặc 0. Người dùng có thể thay đổi tỷ lệ tương phản chính xác và sự phức tạp bằng cách lựa chọn độ chính xác bằng số được yêu cầu. Dữ liệu đầu vào có thể có 2 hoặc 3 bit số nguyên và giữa 1 và 4 bit phân số. Độ chính xác của các tính toán bên trong có thể được điều khiển với 6 hoặc 7 bit số nguyên và giữa 1 và 4 bit phân số. (Số bit phân số đầu vào phải ít hơn hoặc bằng số bit phân số được tính toán bên trong). Thuật toán: Thuật toán người giải mã TCC đầy đủ đòi hỏi nhiều sự tính toán, vì thế các phép tính xấp xỉ phải được tạo ra để thực hiện thuật toán trong thực tiễn. Thuật toán sử dụng trong lõi này là MAX SCALE. Tỷ lệ mã hóa Lõi có thể được cấu hình theo tỷ lệ 1/3 (như tiêu chuẩn 3GPP) hoặc 1/5 dữ liệu sẽ được sử dụng như đầu vào. Bất kỳ tỷ lệ nào phù hợp với thuật toán nên được thực hiện bên ngoài tới lõi này và kết quả đầu vào tới người giải mã TCC phải được định dạng trong tỷ lệ 1/3 hoặc 1/5. Các bit đầu vào punctured nên được thay thế bằng một giá trị 0 (cho thấy tỷ lệ xuất hiện bit 1 và 0 bằng nhau trong dạng thức LLR), trong khi các bit đầu vào được lặp lại được nối với nhau một cách phù hợp (ví dụ: Thêm và làm bão hòa độ rộng đầu yêu cầu). Cần chú ý rằng mặc dù một cấu hình bộ lõi dùng các đầu vào với dạng thức phù hợp với tỷ lệ mã hóa 1/5 sẽ hỗ trợ tỷ lệ 1/3 bằng cách đánh thủng một cách thích hợp các giá trị chẵn lẻ đầu vào, nó sẽ là một yêu cầu bộ nhớ cộng thêm quan trọng để lưu trữ dữ liệu ở tỷ lệ 1/5. Kết thúc nhanh Số bước lặp được xác định bằng cách đọc cổng ITERATIONS tại lúc bắt đầu của mỗi quy trình giải mã mới. Một bộ lặp đầy đủ bao gồm hai nửa bộ lặp, nửa thứ nhất sử dụng dữ liệu thường, nửa thứ hai sử dụng dữ liệu ghép xen. Bộ giải mã thường tiếp tục lặp lại việc giải mã các số trên lý thuyết. Tuy nhiên, kết quả trung gian từ mỗi bước lặp có thể được nghiên cứu để xác địch mức độ chính xác trong việc giải mã được thực hiện có đảm bảo hay không và việc đưa ra hành động giải mã tiếp hay không phụ thuộc vào kết quả chính xác này. Điều này thường được xem như là Fast Termination (or Early Termination). Dạng cơ bản nhất của Fast Termination sử dụng các kết quả quyết định dữ liệu không đổi trên mỗi nửa bộ lặp và so sánh tương phản với những kết quả của nửa bộ lặp trước. Sau khi số đếm của các nửa bộ lặp liên tiếp cho dữ liệu phù hợp đạt đến một ngưỡng giới hạn, hoặc số bước lặp tối đa trên lý thuyết đạt được, thì hoạt động giải mã được kết thúc và dữ liệu được giải mã được đưa ra. Chức năng được 54 -------------------------------------------------------------------------------------------------------- thực hiện như một module tùy chọn trong bộ lõi và được tạo ra có sẵn cho người dùng bằng cách thay đổi một thông số của bộ lõi. Mức giới hạn được đọc từ cổng FT_THRES tại điểm bắt đầu của mỗi hoạt động giải mã khối và có thể được thay đổi một cách linh hoạt nếu được yêu cầu. 2.4. Kết luận Chương đã trình bày về một số ứng dụng của FPGA trong máy thu – phát 3G- UMTS, về một số hoạt động của vi mạch thực tế trong bộ mã Turbo. Kiến trúc phần cứng của bộ dò người dùng dựa trên bậc của bộ lọc tương thích (CF-MUD) cho hệ thống WCDMA được phát triển. CF-MUD dựa trên FIR sử dụng một quá trình tương thích LMS thể hiện một lựa chọn tối ưu nhằm vào các thiết bị FPGA. Ta khai thác tính ưu việt thực thi của thuật toán và các đặc tính riêng của thiết bị Xilinx. Tính cân đối và đệ quy của thuật toán CF-MUD cung cấp cơ hội để tối đa hóa hệ số sử dụng tài nguyên của thiết bị FPGA. Sử dụng một thực thi thời gian thực và đưa vào tính toán tất cả ràng buộc UMTS, Chứng minh một hệ số sử dụng tài nguyên xấp xỉ 100% để tối đa hóa quan hệ song song của thuật toán CF-MUD. Những kiến trúc chuyên dụng đó có thể được sử dụng sau khi lõi IPv6 tối ưu thực hiện các chức năng MUD. Kiến trúc phần cứng hiện thời là tương đối logic. 55 -------------------------------------------------------------------------------------------------------- CHƯƠNG 3: KỸ THUẬT FPGA ÁP DỤNG THỰC HIỆN CHO BỘ MÃ FEC HỆ DVB 3.1. Mở đầu Mục tiêu của chương là tìm hiểu và trình bày về bộ mã hóa FEC, trình bày về hệ DVB, đưa ra ví dụ mô phỏng áp dụng kĩ thuật FPGA với những kết quả đo đạc và hiển thị. Chương được tổ chức trình bày như sau:  Bộ mã hoá FEC, hệ DVB.  Sơ đồ mô phỏng bộ mã hoá giải mã FEC trong hệ DVB.  Các kết quả đo đạc 3.2. Bộ mã hoá và giải mã FEC, hệ DVB 3.2.1. Tổng quan về FEC Mã hóa FEC thuộc dạng mã hóa kênh, gồm mã khối (block coding) như mã RS (Reed-solomon), BCH, Hamming…và mã chập (convolutional coding), viterbi decoding. RS và CC có nhiệm vụ sửa sai cho tín hiệu thu được. RS vì là thuộc mã khối tốc độ cao cho nên khi kết hợp với mã chập sẽ giúp tăng khả năng sửa sai cho mã chập. RS cũng là mã BCH cho nên các giá trị của các hệ số lấy từ trường Galois field (GF) (ví dụ về GF: chúng ta dùng số thập phân thì ta gọi là GF(10) chỉ gồm các số từ 0 đến 9, số nhị phân thì có GF(2) gồm các số 0,1. RS thì có GF(2^8) nên gọi là GF(2) mở rộng). Cho nên khi sử dụng Matlab để mã hóa RS thì dữ liệu ra sẽ là một dạng ma trận trường GF. FEC – Forward Error Control - được sử dụng để đảm bảo cho hệ thống hoạt động tối ưu. Việc sửa lỗi này dựa vào mã hoá vòng gọi là mã hoá Reed – Solomon thay cho thiết lập các khối byte và sửa các lỗi khối. Thuật toán mã hoá Reed – Solomon thực hiện theo Galois Field (GF 256) và cho phép tới 16 byte lỗi trong một từ mã 255 bytes được sửa. Khả năng sửa lỗi của thuật toán này có thể tăng lên trong trường hợp các cụm lỗi dạng xung nhờ xen kẽ các lỗi vào các từ mã gần kề. Mã hoá Reed – Solomon được sử dụng vì có độ lợi mã hoá với lỗi ngẫu nhiên (khoảng 3 dB nếu được sử dụng đúng) và sử dụng phương pháp chèn cho phép sửa các cụm lỗi lớn gây ra do tác động xung. Mã hoá RS có các ký hiệu là byte chứ không phải là bit, vì thế nên nó phức tạp hơn mã hoá nhị phân. Chúng là các mã hoá có khả năng sửa lỗi mạnh được biết và có thể ứng dụng với độ phức tạp vừa phải. Mã hoá RS sử dụng một số chẵn byte, 2t cho phép sửa lỗi t byte và phát hiện 2t byte bị lỗi. Khi kênh cung cấp hiển thị là các ký hiệu, kênh đầu ra có thể bị lỗi thì mã hoá RS có thể sửa lỗi cho 2t byte có thể bị lỗi đó. Mã hoá Reed – Solomon là trường hợp đặc biệt của phương pháp được gọi chung là mã hoá vòng. Trong mã hoá vòng, các từ mã thêm vào có thể được tìm thấy bằng việc trượt vòng (n-1) của bất kỳ từ mã đầu tiên nào được đưa ra. Xét về một góc độ nào đó điều này làm giảm tính phức tạp của không gian từ mã một cách đáng tin cậy cho phép giải mã đơn giản hơn. 56 -------------------------------------------------------------------------------------------------------- Tất cả các thuật toán trong mã hoá Reed – Solomon đối với ADSL là kiểu byte nằm trong trường GF256 hữu hạn. GF256 là trường mở rộng của thuật toán nhị phân. Trong ADSL, Reed – Solomon FEC là bắt buộc, R= 2t và các byte kiểm tra thoả mãn 0≤R≤16 với đa thức 1R2R 2R 1 1R 0 cZc...ZcZc)Z(C    được thêm vào từ mã gồm có K byte với đa thức (K≤256) 1K2K 2K 1 1K 0 cZm...ZmZm)Z(M    trong đó 0m là byte được truyền đầu tiên và 0c là byte được truyền đầu tiên của các bit chẵn lẻ được thêm vào. Một byte dữ liệu gồm 8 bit [ 01,...7 d,d,d ] và được kết hợp với phần tử GF256  0177 dd...d  và  là nghiệm của đa thức nhị phân 1xxxx 2348  . Đa thức byte kiểm tra thoả mãn )Z(GZ).Z(M)Z(C R trong đó )Z()Z(G i Trong ADSL, phương pháp xoắn được sử dụng khi chọn chiều sâu chèn từ L=0 đến 64. Khi số byte thông tin K là lẻ, độ sâu chèn L=K+2t là đồng nguyên tố và do đó lỗi có thể được phân tán. Khi K chẵn, byte giả được chèn vào phần cuối của từ mã để tạo K lẻ (nhưng không được truyền đi mà chỉ được thêm vào ở máy thu khi giải mã) Các tiêu chuẩn FEC. Hiện SMPTE đã ban hành tiêu chuẩn SMPTE 2022 cho việc dùng FEC trên các mạng gói. DVB cũng có một số khuyến cáo trong mô tả FEC. Điều quan trọng là dùng FEC được chuẩn hóa nếu bạn muốn các khả năng sửa lỗi hoạt động đúng khi liên hoạt giữa các nhà sản xuất thiết bị khác nhau. 3.2.1.2. Tổng quan về truyền hình số mặt đất Hiện tại trên thế giới tồn tại 3 tiêu chuẩn phát sóng truyền hình số là :  DVB ( Châu Âu - tính đến năm 2000 có 54% số nước đang sử dụng ) .  ISDBT ( Nhật - " 8 % " )  ATSC ( Mỹ - " 38 % ) ATSC, DiBEG vốn được thiết kế cho kênh 6 MHz. DVB-T được thiết kế cho kênh 8 MHz. Tuy nhiên cho đến nay cả 3 tiêu chuẩn đều được sử dụng trên các kênh 6, 7, 8 MHz. Lợi ích của truyền hình số mặt đất:  Truyền hình số có độ phân giải cao (HDTV).  Nhiều chương trình truyền hình trên một kênh RF  Dịch vụ truyền hình đa phương tiện, truyền hình tương tác  Thu di động ( Tiêu chuẩn DVB-T, DiBEG)  Phân cấp chất lượng (HDTV, SDTV)  Mạng đơn tần – SFN  Công suất máy phát nhỏ hơn (6dB~4 lần) Tiêu chuẩn phát sóng số mặt đất ATSC: Advanced Television System Committee [5].  Điều chế 8-VSB (Vestigial Sideband):  Dòng dữ liệu vào: MPEG 2 tốc độ 19.39 Mb/s  Mỗi gói có 188 Byte dữ liệu+ 20 Byte RS. 57 --------------------------------------------------------------------------------------------------------  Dữ liệu được truyền theo từng khung gồm nhiều đoạn  Mỗi đoạn dữ liệu = SYMBOL đồng bộ + SYMBOL dữ liệu.  Các SYMBOL được điều chế theo phương thức nén sóng mang.  Tín hiệu Q không mang thông tin.  Thông tin chứa trong thành phần I (-7÷ +7) Hình 3. 1 Máy thu VSB Ưu điểm của ATSC:  Ngưỡng dưới cho phép của tỷ số S/N tốt hơn DVB-T 4dB(công suất nhỏ hơn khoảng 2.5 lần).  Dung lượng bit/kênh 6MHz lớn (19,3 Mb/s).  Khả năng chống nhiễu đột biến tốt hơn DVB-T. Tiêu chuẩn DIGEG: (Digital Broadcasting Expert Group) [5]  Năm 1997 Nhật Bản ban hành tiêu chuẩn DIBEG hay còn gọi là tiêu chuẩn ISDB-T (Intergrated Service Digital Broadcasting-Terestrial) Hoặc là ARIB (Association of Radio Industries and Businesses).  Phát sóng thử nghiệm từ 1998 2003 và từ 2003 2006 chính thức phát sóng tại một số thành phố (Tokyo, Osaka, Nagova…). Dự kiến năm 2010 sẽ chấm dứt truyền hình tương tự  Tiêu chuẩn DiBEG:  Sử dụng kỹ thuật BST-OFDM (Band Segmented OFDM).  Sử dụng phương pháp điều chế số khác với từng đoạn dữ liệu:QPSK, 16 QAM, 64QAM.  Tín hiệu truyền đi gồm 13 khối OFDM, mỗi khối có dải phổ: 432 KHz.  Độ rộng kênh RF: 6 MHz (7 hoặc 8).  Trên thực tế là một biến thể của DVB-T. Tiêu chuẩn phát sóng số mặt đất DVB-T: Digital Video Broadcasting- Terrestrial 58 -------------------------------------------------------------------------------------------------------- Hình 3. 2 Sơ đồ khối và giao diện đo trong hệ thống DVB-T Chuẩn DVB được sử dụng ở Châu Âu, Úc và một số nước châu Á. 1995 các nước châu Âu nghiên cứu và thử nghiệm DVBT. Đến 2/1997 ban hành chính thức bởi ESTI.truyền tải tín hiệu Video số nén theo chuẩn MPEG-2 qua cáp, vệ tinh và phát truyền hình mặt đất. Chuẩn DVB có một số đặc điểm như sau [5]:  Mã hoá Audio tiêu chuẩn MPEG-2 lớp II.  Mã hoá Video chuẩn MP @ ML.  Ðộ phân giải ảnh tối đa 720 x 576 điểm ảnh.  Dự án DVB không tiêu chuẩn hoá dạng thức HDTV nhưng hệ thống truyền tải chương trình có khả năng vận dụng với dữ liệu HDTV.  Hệ thống truyền hình có thể cung cấp các cỡ ảnh 4:3; 16: 9 và 20: 9 với tốc độ khung 50 Mhz.  Tiêu chuẩn phát truyền hình số mặt đất dùng phương pháp ghép đa tần trực giao (COFDM). COFDM: kỹ thuật mã hoá kênh và kỹ thuật ghép kênh phân chia theo tần số trực giao. OFDM+ Mã hoá kênh truyền = COFDM.  DVB-T được thiết kế dựa trên ý tưởng chống can nhiễu phản xạ đa đường, phù hợp với các vùng thành phố, các vùng có địa hình đồi núi phức tạp. Dự án DVB:  DVB-S: Hệ thống truyền tải qua vệ tinh. Hệ thống DVB-S sử dụng phương pháp điếu chế QPSK, mỗi sóng mang cho một bộ phát đáp.  DVB-C: Hệ thống cung cấp tín hiệu truyền hình số qua mạng cáp, sử dụng các kênh cáp có độ rộng băng thông từ 7 đến 8 Mhz và phương pháp điều chế 64- QAM. DVB-C có mức tỉ số tín hiệu trên tạp âm cao và điều biến kí sinh thấp.  DVB-T: Hệ thống truyền hình mặt đất với các kênh 8, 7 hoặc 6 Mhz. Sử dụng phương pháp ghép đa tần trực giao có mã (COFDM).  DVB-H: Hệ thống truyền hình di động. Truyền đúp dữ liệu: Trong các hệ thống truyền số, thường sử dụng hai lớp mã sửa sai: “mã trong” (Inner Code) và “mã ngoài” (Outer Code). Mã trong được thiết kế để sửa những lỗi ngắn. Mã ngoài để sửa những lỗi dài Hệ thống thu phát truyền hình số mặt đất [5] 59 -------------------------------------------------------------------------------------------------------- Hình 3. 3 Hệ thống thu phát truyền hình số mặt đất Hình 3. 4 DVB-T Equipment by ITIS Hình 3. 5. Sơ đồ khối và giao diện đo phía máy thu DVB-T Ưu điểm của DVB-T [5]:  Khả năng thu di động.  Khẳ năng chống lại phản xạ nhiều đường.  Mạng đơn tần và phủ sóng lõm (Single Frequency Network- SFN)  Nhiều khả năng lựa chọn các thông số cho phù hợp với điều kiện của mỗi nước 60 -------------------------------------------------------------------------------------------------------- Thế hệ máy phát số DVB-T ra đời đã khắc phục được các nhược điểm của thế hệ máy phát tương tự như khả năng mang nhiều chương trình trong một kênh RF, hỗ trợ khả năng thu tín hiệu đa đường và thu di động... Về cấu trúc máy phát số DVB-T và máy phát hình tương tự giống nhau nhưng điểm khác biệt là phần điều chế. Sơ đồ khối của bộ điều chế DVB-T [1] Hình 3. 6 Sơ đồ khối của bộ điều chế DVB-T 3.3. Sơ đồ mô phỏng bộ mã hoá giải mã FEC trong hệ DVB 3.3.1. Sơ đồ khối chung Hình 3. 7 Sơ đồ khối mô phỏng bộ mã và giải mã FEC cho DVB với kênh giả nhiễu trắng 3.3.2. Bộ mã hoá 61 -------------------------------------------------------------------------------------------------------- Hình 3. 8 Sơ đồ khối mã hoá Bộ mã hoá bao gồm bộ trễ, mã hoá ngoài, mã chập, mã hoá trong, bộ đục lỗ. 3.3.2.1 Bộ trễ Bộ trễ dùng cho tín hiệu 2 đầu vào trong FPGA Hình 3. 9 Bộ trễ 3.3.2.2 Bộ mã hoá ngoài Bộ mã hoá ngoài sử dụng khối có sẵn trong thư viện của Xilinx, bộ này có chức năng kéo xuống theo chuẩn DVB. Khối tiền phân tích Reinterpet1 tại đầu vào của khối mã hóa RS, làm nhiệm vụ chuyển đầu vào FIX8_6 thành UFIX8_0. Rfd được lấy ra từ bộ RS. Bộ mã hoá được sử dụng cho chế độ bắt tay để tránh trường hợp tính hiệu đầu vào bị ngắt khi khối mã hoá RS đang phát tín hiệu thành phần. Khối mã hoá RS đồng bộ tín hiệu đầu ra với tín hiệu hợp lệ đầu tiên nhận được từ đầu vào. . Hình 3. 10 Khối mã hoá ngoài 3.3.2.3 Khối mã hoá chập Khối mã hoá chập có 12 nhánh với độ chênh lệch giữa các nhánh là 17 dịch thanh ghi. Mã hoá chập dựa trên cấu trúc kiểu Forney. Khốí mã hoá chập đồng bộ tín hiệu đẩua với tín hiệu đầu vào. 62 -------------------------------------------------------------------------------------------------------- Hình 3. 11 Khối mã hoá chập 3.3.2.4 Khối mã hoá trong Khối P2S chuyển tín hiệu đầu vào từ UFIX8_0 thành UFIX1_0. Hình 3. 12 Khối mã hoá trong 3.3.2.5 Khối đục lỗ Khối đục lỗ tín hiệu sử dụng khối đục lỗ để triển khai mã chập cho nhánh mã 0 của bộ mã hoá chập. Khối đồng bộ ra truyền tín hiệu hợp lệ sử dụng cho việc đồng bộ bộ mã hoá. Đầu ra của khối nàyu được tạo gấp đôi bằng cách sử dụng hP2S chuyển tín hiệu đầu vào từ UFIX8_0 thành UFIX1_0. Hình 3. 13 Khối đục lỗ 63 -------------------------------------------------------------------------------------------------------- 3.3.3. Bộ giải mã Hình 3. 14 Sơ đồ khối bộ giải mã Bộ giải mã bao gồm bộ giải mã ngoài, giải mã chập, giải mã trong, giải đục lỗ. 3.3.3.1 Bộ giải mã hoá ngoài Bộ mã hoá ngoài sử dụng khối có sẵn trong thư viện của Xilinx, bộ này có chức năng kéo xuống theo chuẩn DVB. Khối tiền phân tích Reinterpet1 tại đầu vào của khối mã hóa RS, làm nhiệm vụ chuyển đầu vào UFIX8_0 thành FIX8_6. Thông tin đàu ra từ khối giải mã RS được sử dụng để đánh dấu ký hiệu thông tin giải mã. Khối giải mã RS đồng bộ đầu ra của nó với tín hiệu đầu vào. Khối giải mã RS cũng có đầu ra fail và err_cnt để đánh dấu các khung giải mà không thành công và số lượng lỗi đã sửa được. . Hình 3.9: Khối giải mã hoá ngoài 3.3.3.2 Khối giải mã hoá chập Khối giải mã hoá chập có 12 nhánh với độ chênh lệch giữa các nhánh là 17 dịch thanh ghi. Mã hoá chập dựa trên cấu trúc kiểu Forney. Khốí mã hoá chập đồng bộ tín hiệu đẩua với tín hiệu đầu vào. 64 -------------------------------------------------------------------------------------------------------- Hình 3.10: Khối giải mã hoá chập 3.3.3.3 Khối giải mã hoá trong Khối P2S chuyển tín hiệu đầu vào từ UFIX1_0 thành 0UFIX8_0 . Hình 3.11: Khối giải mã hoá trong 3.3.2.3 Khối giải đục lỗ Hình 3.12: Khối giải đục lỗ 3.4. Thực hiện và kết quả thu được 3.4.1. Các bước thực hiện 3.4.1.1 Thực hiện trong phần mềm Math lab - Cấu hình cho System Generator 65 -------------------------------------------------------------------------------------------------------- - Tạo ra mã nguồn từ sơ đồ mô phỏng bằng cách thực hiện generate trong cửa sổ system generator. 3.4.1.1 Thực hiện trong ISE - Dùng phần mềm ISE của Xilinx để biên dịch chương trình - Gán chân cho các tín hiệu vào ra cụ thể là gán các chân của hai bộ DAC của KIT Virtex 4. - Thực hiện quá trình tổng hợp (Synthesis) - Thực hiện (ánh xạ) thiết kết vào FPGA - Tạo ra bitfile từ ISE (file này sẽ được nạp vào FPGA) 3.4.1.1 Thực hiện trong FUSE - Lựa chọn đúng phiên bản phần cứng trong cửa sổ giao diện của FUSE. - Mở card (mở giao tiếp giữa máy tính và FPGA) - Cấu hình clock cho KIT thông qua thao tác gán file và nạp file định nghĩa clock FPGA sẽ thực hiện trong thiết kế. - Gán Bitfile và nạp thiết kế vào trong FPGA. - 3.4.1. Kết quả thu được cho bộ mã hoá 3.4.1.1 Đầu vào mã hoá Sử dụng máy đo tín hiệu ta thu được một số kết quả như sau: Hình 3.13: Đầu vào mã hoá 3.4.1.2 Đầu ra sau khi mã hoá Hình 3.14: Đảu ra sau khi mã hoá 3.4.1. Kết quả thu được cho bộ giải mã 3.4.1.2 Đầu ra sau khi giải mã hoá 66 -------------------------------------------------------------------------------------------------------- Hình 3. 15 Đầu ra sau khi giải mã hoá 3.4.1.2 Đầu ra giải mã sẵn sàng FIFO 67 -------------------------------------------------------------------------------------------------------- KẾT LUẬN Đồ án đã đạt được một số mục tiêu sau:  Trình bày tổng quan về FPGA, JHDL, JHDLBits, các cải tiến của Jbits, các công trình có liên quan tới VTsim, và các công cụ ảnh hưởng tới VTsim.  Trình bày về ứng dụng của FPGA trong việc tính toán ô. Theo đó trình bày bốn kiến trúc tính toán ô thực hiện cho việc nghiên cứu và trình bày phần cứng FPGA mức cao dùng cho mỗi kiến trúc.  Trình bày về ứng dụng cả FPGA trong 3G WCDMA, nêu ra một số lý do căn bản mà FPGA được lựa chọn cho trạm gốc 3G, một số tính năng chính của FPGA trong trạm gốc 3G, sơ đồ MUD và hoạt động cụ thể của vi mạch thực tế cho bộ mã Turbo.  Trình bày tổng quan về FEC và DVB, đưa ra được một ví dụ mô phỏng về FEC trong DVB áp dụng kỹ thuật FPGA, với các sơ đồ khối, sơ đồ mô phỏng, kết quả thu được. 68 -------------------------------------------------------------------------------------------------------- LỜI CẢM ƠN Em xin chân thành cảm ơn giảng viên TS. Trịnh Anh Vũ lời cảm ơn sâu sắc nhất, thầy đã tận tình hướng dẫn em trong quá trình học tập, tìm hiểu và nghiên cứu để hoàn thành đồ án này. Xin cảm ơn bạn bè và người thân đã giúp đỡ, động viên em trong quá trình học tập và nghiên cứu. 69 -------------------------------------------------------------------------------------------------------- TÀI LIỆU THAM KHẢO Tiếng Việt [1]. TS. Phạm Đắc Bi, KS. Lê Trọng Bằng, KS. Đỗ Anh Tú (2007), “Các đặc điểm cơ bản của máy phát số DVB-T” [2]. TS. Nguyễn Phạm Anh Dũng (2004), “Giáo trình thông tin di động thế hệ ba”, nhà xuất bản bưu điện, Hà Nội. [3]. Hồ Quốc Thái, Daniel Massicotte, và Adel-Omar Dahmane (12-2005), “FPGA Implementation of an MUD Based on Cascade Filrers for a WCDMA System”. [4]. Lê Đức Thuận (2008), “FPGA và ứng dụng cho 3G-WCDMA”, Luận văn thạc sỹ khoa học. [5]. TS. Ngô Thái Trị (2007), “Bài giảng Truyền hình số mặt đất”. Tiếng Anh [6]. Kenneth J.Morgan, 19-10-2004, “Design and Analysis of Four Architectures for FPGA-Based Cellular Computing”, Luận văn thạc sỹ khoa học máy tính . [7]. Peter Wilson, Jun.2007, “Design Recipes for FPGAs”, www.book.elsevier.com. Website [8]. www.xilinx.com [9]. www.accelchip.com [10]. www.wikipedia.org [11]. [12]. www.dvb.org 70 ------------------------------------------------------------------------------------------------------- PHỤ LỤC 1.Liên hệ giữa Matlab và FPGA 1.1. Tích hợp thuật toán Matlab vào trong thiết kế FPGA. Có hai kiểu người trong thiết kế điện tử: những người nghĩ dưới dạng từ ngữ, và những người nghĩ dưới dạng hình ảnh. Sự phân nhóm này rõ ràng nhất trong DSP. Một số nhà thiết kế thích phát triển các thuật toán dưới dạng ngôn ngữ, trong khi một số khác lựa chọn vẽ ra các biểu đồ khối để mô tả các dòng dữ liệu. Cho đến bây giờ, mỗi phương pháp sử dụng các công cụ khác nhau nhưng tại sao phải có sự lựa chọn? Xilinx System Generator cho DSP được thiết kế như một công cụ hữu ích cho việc tạo ra các phác họa DSP sử dụng các phương pháp đồ họa. Với một môi trường lập trình visual, System Generator đáp ứng các yêu cầu của người tạo ra hệ thống (để hợp nhất các thành phần phác họa) và người thiết kế phần cứng (tối ưu sự bổ sung). Nhiều nhà phát triển thuật toán DSP thấy rằng ngôn ngữ MATLAB đáp ứng tốt nhất dạng phát triển ưa thích của họ. Với hơn 1000 chức năng cũng như các mở rộng chức năng cho xử lý tín hiệu, truyền thông, và xử lý wavelet, MATLAB cung cấp một môi trường phong phú cho việc phát triển thuật toán và gỡ rối. Cộng thêm các chức năng IP cung cấp trong MATLAB, MATLAB là ngôn ngữ duy nhất thông thạo vector và ma trận trên cơ sở dữ liệu dạng sóng tại trung tâm của thuật toán trong các trình ứng dụng như truyền thông không dây, theo dõi rada/ hồng ngoại, và xử lý ảnh. Công cụ AccelChip DSP Synthesis được phát triển cho các chuyên viên thiết kế thuật toán và những nhà xây dựng DSP, đó là những người đi theo một language-based flow. Với AccelChip, bắt đầu với các MATLAB M-file để thực hiện việc tạo ra các kích thích, ước lượng thuật toán và xử lý bổ sung. Ta có thể tải các M-file vào trong công cụ AccelChip, chúng trở thành “nguồn vàng” cho dạng thiết kế sản xuất các sự bổ sung tối ưu trong Xilins FPGAs. Thống nhất từ ngữ và hình ảnh Trong phần trước, các nhóm thiết kế đã tìm hiểu kỹ System Generator và AccelChop DSO Synthesis như các các công cụ thiết kế riêng biệt, nhưng được yêu cầu truy cập các khía cạnh tốt nhất của mỗi công cụ. AccelChip và phép chia DSP tại Xilinx cộng tác trong việc nỗ lực kết hợp các công cụ của AccelChip với System Generator. Kết quả cho phép kết hợp phác họa thuật toán dựa trên cơ sở ngôn ngữ trong MATLAB và phác họa hướng đến khối giao diện đồ họa trong Simulink như hình p-1. 71 ------------------------------------------------------------------------------------------------------- Hình p- 1 Bộ tạo hệ thống, giao diện AccelChip Công cụ tổng hợp DSP của AccelChip làm tăng System Generator bằng cách cung cấp một hướng tích hợp không có đường nối cho người thiết kế thuật toán, cho phép tạo ra các khối IP một cách mau lẹ, chính xác từ M-file, làm tăng khối Xilinx tạo ra trong System Generator. Hơn nữa, AccelChip có các bộ dụng cụ AccelWare tùy chọn bổ sung System Generator với các lõi IP được tối ưu cho các lõi Xilinx. Các bộ dụng cụ AccelWare bao gồm các khối xâu dựng toán học, xử lý tín hiệu, truyền thông và toán học tiên tiến để bổ sung các chức năng đại số tuyến. Ví dụ phác họa Kalman Filter Để minh họa phương pháp này, hãy làm một thuật toán nâng cao viết bằng MATLAB, sử dụng AccelChip để tổng hợp phác họa, và sau đó hợp nhất nó vào mô hình System Generator. Ví dụ là một bộ lọc Kalman – một phép đệ quy, bộ lọc thích ứng phù hợp để kết hợp các tín hiệu nhiễu vào một tín hiệu clear. Các bộ lọc Kalman gắn vào một mô hình toán học của một đối tượng )như máy bay thương mại được theo dõi bởi rada mặt đất) và sử dụng một mô hình để dự báo các hoạt động trong tương lai. Sau đó các bộ lọc Kalman sử dụng các tín hiệu đo để hiệu chỉnh dự báo định kỳ. function [S] = simple_kalman(λ) DIM = size(λ,2); persistent p p_cap if isempty(p_cap) p_cap = [8 0 0; 0 8 0; 0 0 8]; p = ones(DIM,1)/2; end; I = eye(DIM); R = [128 0 0; 0 128 0; 0 0 128]; # estimate step: 72 ------------------------------------------------------------------------------------------------------- #p_est = p; p_cap_est = p_cap+I; # correction step: K = p_cap_est * inv(p_cap_est+R); p = p + K * (λ' - p); p_cap = (I - K)*p_cap_est; S = p'; Ví dụ M-file cho bộ lọc Kalman, cho biết MATLAB M-file mô tả bộ lọc Kalman. Thuật toán định nghĩa ma trận R và I. Đó là 2 ma trận mô tả số liệu thống kê của tín hiệu đo và hoạt động được dự báo. Chín dòng cuối của thuật toán là mã dự báo và hiệu chỉnh ước lượng. Thuật toán minh họa tính linh động và ngắn gọn của ngôn ngữ MATLAB. Các hoạt động thông thường như phép cộng và phép trừ thực hiện đa dạng như hai ma trận thứ nguyên A và P_cap mà không phải viết các vòng lặp, giống như phải làm trong các ngôn ngữ khác. Tính nhân của 2 ma trận thứ nguyên này được thực hiện tự động như tính nhân ma trận ngoại trừ các diễn giải đặc biệt. Các hoạt động MATLAB như sự hoán vị ma trận cho phép mã MATLAB cô đọng và dễ đọc. Và các hoạt động phức tạp như phép nghịch đảo ma trận được hoàn thành sử dụng các khả năng đại số tuyến rộng của MATLAB. Với AccelChip, bước đầu tiên trong việc tổng hợp một thuật toán hoàn chỉnh là tạo ra các lõi chủ yếu được tham chiếu, trong trường hợp này, phép nghịch đảo ma trận được chỉ báo bời chức năng gọi inv(P_cap_est+R). Nhưng có thế thực hiện một phép nghịch đảo ma trận bằng nhiều cách; sử dụng phương pháp nào phụ thuộc vào kích cỡ, cấu trúc và giá trị của ma trận. Sử dụng phép nghịch đảo ma trận lõi IP từ bộ dụng cụ AccelWare, có thể lựa chọn từ các kiểu cấu trúc vi mô được thiết kế cho các ứng dụng khác nhau. Những kiểu cấu trúc vi mô này có thể được tối ưu cho tốc độ, vùng, nguồn điện hoặc âm thanh. Trong trường hợp này, một hướng thích hợp nhất là sử dụng lõi phép nghịch đảo ma trận AccelWare QR. Tổng hợp RTL với AccelChip Với MATLAB M-file được tải vào AccelChip, bước tiếp theo là kích thích phác họa điểm di động để thiếp lập một đường cơ sở. Sau đó sử dụng AccelChip để chuyển đổi bản phác họa thành phép toán hỗn hợp điểm, xác minh nó trong MATLAB được biểu diễn trong hình p-3. AccelChip cung cấp một ma trận của các công cụ nhằm giúp sắp xếp các đoạn từ bản phác họa và xác minh các hiệu quả phác họa điểm hỗn hợp như bão hòa và làm tròn số. AccelChip hỗ trợ quy trình này bằng cách truyền bit tăng trong suốt quá trình mô phỏng và để cho sử dụng lời chỉ dẫn để thiết lập các ràng buộc vào độ rộng của bit. Sự khảo sát mô phỏng thuật toán này cho phép đạt được sự lượng tử hóa lý tưởng tối thiểu hóa độ rộng bit trong khi điều khiển tràn hoặc hụt bộ nhớ, … 73 ------------------------------------------------------------------------------------------------------- Hình p- 2 Kiến trúc bộ lọc ước tính Kalman Khi đạt được sự lượng tử hóa thích hợp, bước tiếp theo là tạo ra RTL cho dụng cụ Xilins. Tại điểm này, có thể sử dụng AccelChip GUI để tạo ra các ràng buộc vào các phác họa sử dụng lời chỉ dẫn phác họa theo sau để đạt được sự tối đa hóa cao hơn. + Cuộn lại hoặc mở ra các vòng lặp FOR. + Mở rộng phép cộng hoặc phép nhân vector và ma trận. + Bộ nhớ RAM/ROM ánh xạ của các vector và ma trận 2 thứ nguyên. + Sự chèn đường ống dẫn. + Ánh xạ dịch chuyển thanh ghi. Sử dụng các chỉ dẫn thiết lập phần cứng trên cơ sở kiểm soát bản phác họa, cho phép đội phác họa cải tiến chất lượng kết quả. Trong việc tổng hợp RTL, AccelChip đánh giá phác thảo tổng hợp và sắp xếp thuật toán tổng hợp, thực hiện sự tối ưu hóa đường biên cần thiết trong quy trình. Hình p- 3 Sơ đồ khối bộ lọc Kalman 74 ------------------------------------------------------------------------------------------------------- AccelChip duy trì một môi trường xác minh không thay đổi thông qua một cuộc tự kiểm tra; các vector đầu vào/ đầu ra được tạo ra khi xác minh mô phỏng MATLAB điểm hỗn hợp được sử dụng để xác minh RTL được tạo ra. Bước xác minh RTL cũng đưa cho AccelChip thông tin cần thiết để tính toán thông lượng và góc trễ của bộ lọc Kalman. Đó là thông tin cần thiết để đánh giá cho việc thiết kế kỹ thuật và là đáp ứng quan trọng để đạt được trong chu kỳ mô phỏng chính xác. Chuyển từ AccelChip tới System Generator Mặc dù việc xác minh RTL là một bước quan trọng nhưng các nhà thiết kế muốn xem thuật toán chạy trong phần cứng. Các giao diện cùng mô phỏng phần cứng trong vòng lặp của System Generator tạo ra một hướng push-button, cho phép mang toàn bộ khả năng của MATLAB và các chức năng phân tích Simulink để xác minh phần cứng. Bây giờ chạy xác minh RTL trong AccelChip, sẵn sàng để xuất khẩu phác họa AccelChip đến System Generator bằng cách “Export” bảng chọn pull-down trong AccelChip GUI và lựa chọn “System Generator”. Sau đó, AccelChip tạo ra một khối System Generator vòng chính xác hỗ trợ sự mô phỏng và sự tạo ra mã RTL. Lúc này, chuyển tiếp hướng phác họa tới System Generator, nơi một khối mới cho bộ lọc Kalman có sẵn trong trình duyệt thư viện Simulink. Chỉ cần lựa chọn khối bộ lọc Kalman và kéo nó vào trong mô hình đích để sát nhập bộ lọc Kalman được tạo ra AccelChip vào trong một phác họa System Generator. Hình p-4 cho ta thấy biểu đồ cho bộ lọc Kalman. Ở trung tâm của biểu đồ System Generator là bộ lọc Kalman, và xung quanh nó là các khối gateway cần thiết cho phác họa System Generator. Khi phác họa System Generator bao gồm khối tạo ra AccelChip, có thể thực hiện hoàn chỉnh mô phỏng mức hệ thống của vòng chính xác, các mô hình bit thực để xác minh rằng hệ thống đáp ứng các yêu cầu kỹ thuật. Có thể sử dụng các khối được tạo ra AccelChip cho System Generator cùng với bộ khối Xilinx. Khi bước xác minh mức hệ thống hoàn thành, bước tiếp theo trong hướng System Generator là tiến đến thực hiện phác họa. Bước “Generate” trong System Generator tuân theo phác họa vào phần cứng. Các tùy chọn kiểm chứng Tất cả các file thiết kế mà AccelChip tạo ra, bao gồm các file System Generator được xuất ra, và được kiểm chứng lại từ nguồn Matlab M-file. Phương pháp xác minh của AccelChip dựa trên cơ sở việc tạo ra một cuộc thử nghiệm từ nguồn MATLAB – cuộc thử nghiệm này được áp dụng tại mức RTL bên trong AccelChip và có thể được áp dụng trong System Generator để xác minh độ chính xác của bản thiết kế. Một khi được kiểm tra trong môi trường System Generator, có thể xác minh khối tạo ra AccelChip sử dụng các phương pháp được hỗ trợ của System Generator, bao gồm mô phỏng HDL và phần cứng trong vòng lặp tăng nhanh tới 10 và 100 lần. Kết luận Sự tích hợp AccelChip với Xilinx System Generator là giải pháp đầu tiên để kết hợp thuật toán tổng hợp trên cơ sở MATLAB được ưu thích bởi các chuyên viên thiết kế thuật toán với hướng phác họa giao diện đồ họa được sử dụng bởi người thiết kế hệ thống và chuyên viên thiết kế phần cứng. Nó sử dụng ngôn ngữ MATLAB và các bộ 75 ------------------------------------------------------------------------------------------------------- dụng cụ hướng dẫn để tạo ra các khối IP System Generator của các thuật toán DSP phức tạp. Bằng cách cùng sử dụng các công cụ này, đội phác họa có thể tận dụng các biện pháp hữu ích nhất của phần cứng cho việc thực hiện, bao gồm đầy đủ các chuyên viên thiết kế thuật toán trong quá trình phác họa FPGA và hoàn thành các phác họa có chất lượng cao hơn với thời gian nhanh hơn. 1.2. Matlab một môi trường phát triển cho thiết kế FPGA Thiết kế luồng dựa trên cơ sở MATLAB Trong những năm gần đây Matlab trở thành công cụ đắc lực cho việc mô phỏng, nó rút ngắn khoảng cách giữa việc nghiên cứu và phát triển hệ thống. Với cả người phát triển hệ thống và người nghiên cứu, đang làm việc trong cùng một lĩnh vực, thì thời gian để chuyển đổi một bài viết nghiên cứu hoặc đặc điểm kỹ thuật vào chi tiết kỹ thuật. có thể được giảm thiểu đáng kể. Trước đây, việc phân tích điểm cố định được thực hiện bằng tay và yêu cấu sự cần cù chăm chỉ. Thì hiện nay đang được chuyển đổi mã matlab chung sang mặt phẳng m-mã. Sự khác nhau phải được kiểm tra và được xác nhận cho các độ dài từ yêu cầu. Nói cách khác, m-code có thể được chuyển đổi tới mã cố định điểm C/C++. C-code có thể được tích hợp trong mô phỏng Matlab và được xác nhận. Tuy nhiên, các công cụ khác nhau có thể hỗ trợ chức năng điểm cố định. Mặc dù được điều khiển thủ công, việc chuyển đổi một m-code từ điểm động tới loại dữ liệu điểm cố định, yêu cầu sự thay đổi đơn giản. Một ưu điểm là các thực hiện khác nhau có giao diện tương tự nhau tạo cho nó ễ dàng hơn đối với cả người nghiên cứu và người phát triển. Bất kỳ sự thay đổi nào trong thuật toán có thể gây ra đánh giá trong kiến trúc điểm cố định. Ưu điểm khác nữa là sự tổng hợp mã Matlab điểm cố định hoặc mã C-code có thể được xem như là một chi tiết kỹ thuật của phần cứng hoặc sự thực hiện của bộ xử lý tín hiệu số (DSP). Roating-pc Matlab/C Roating-pc Matlab/C Fixed-pc Flat Matlab/C Fixed-pc C Matlab/C Ý tưởng nghiên cứu Các đặc tả hệ thống Các đặc tả chức năng Algorithm Implementation Spec Chuẩn Matlab Test-bed Dòng thiết kế phát triển RTL RTL Test Bench interface Hình p- 4 Hệ thống Matlab công cụ đánh giá thuật toán 76 ------------------------------------------------------------------------------------------------------- Hình p-4 Mô tả các tầng khác nhau về sự phát triển thuật toán đến một thiết kế luồng Matlab cơ sở. Matlab có thể được sử dụng hiệu quả như một công cụ để đánh giá thuật toán hoặc hiệu năng hệ thống, tại các tầng khác nhau của phát triển thuật toán. C-Code có thể được tích hợp trong môi trường Matlab sử dụng công cụ MEX và trong hình p-4 nó có thể được xem như là một phần tích hợp trong matlab. Hình p- 5 Matlab trên cơ sở RTL thiết kế luồng cho FPGA Bất kể mục đích gì, các thiết kế luồng yêu cầu việc thực hiện điểm cố định C/C++ chung của thuật toán như là điểm bắt đầu đối với việc thực hiện phần cứng của thuật toán thông tin băng cơ sở. Ở đây, ta xem xét thiết kế luồng phù hợp đối với Prototyping nhanh. Phần lớn các phương pháp tạo thiết kế phần cứng cho FPGA đang sử dụng ngôn ngữ mô tả phần cứng truyền thống (HDL) như là VHDL hoặc Verilog. Phương pháp thiết kế HDL đòi hỏi HDL được viết bằng tay hoặc công cụ thiết kế hình tượng như là như hệ thống thiết kế phần cứng (HDS) từ bộ thiết kế Cadence và HDL của Mentor Graphics. Các công cụ thiết kế hình tượng nắm bắt các mô hình và tự động tạo HDL và là cách chung, dễ sử dụng. Tuy nhiên, cách sắp đặt HDL là thủ công và yêu cầu kiến trúc phần cứng phải được tưởng tượng trước. Đối với thuật toán phức tạp, sự so sánh kiến trúc khác nhau và kế hoạch thực hiện, sự đánh giá về cân bằng giữa phạm vi và thời gian trở lên khó khăn và chi phối thời gian. Gần đây các công cụ như Precision-C từ Mentor Graphics đã được thử để giải quyết vấn đề sử dụng mức lập lịch C/C++. Công cụ hợp với hầu hết các loại thiết kế sử dụng mã C/C++ và tạo HDL. Công cụ rất hiệu quả đối với việc thực hiện các thuật toán phức tạp yêu cầu nhiều khối chức năng. Nó được tổ chức dễ hiều hơn đối với mức hệ thống và cấu trúc mức pipeline. Hơn nữa, trong trường hợp thuật toán phức tạp, mã phải được phân đoạn thích hợp trước khi nó được sử dụng trong thiết kế luồng Precision C. Nhưng nó vẫn tiện hơn đối với hoạt động tại mức C. Hơn nữa, vì nó là mã C/C++, do đó có thể được mô tả cùng với Matlab test-bed, vì vậy nhận dạng code. Do đó có sự liên hệ giữa Matlab và HDL. Hình p-5 mô tả thiết kế luồng RTL sử dụng Matlab tại mức đầu. Thiết kể luồng tích hợp Matlab tại tầng khác nhau của RTP mở rộng và sự thực hiện phần cứng. Matlab được sử dụng như là phương pháp kiểm tra cho mô hình C/C++ điểm cố định. 77 ------------------------------------------------------------------------------------------------------- Hơn nữa, Matlab được tạo vector kiểm tra cũng được sử dụng cho xác nhận sự thực thi của VHDL. Sự thực thi VHDL có thể được cấu hình thủ công hoặc có thể tự động dựa trên các công cụ như HDL Designer hoặc Precision C. Nghiên cứu: hệ thống HSDPA.  Tổng quan hệ thống HSDPA Chúng ta thực hiện phương pháp thiết kế dựa trên Matlab cho mẫu hệ thống HSDPA. HSDPA trong phương pháp của hệ thống WCDMA đem lại tốc độ truy nhập cao thông qua mạng 3G. HSDPA nâng cao hiệu năng liên kết và khả năng của hệ thống thông qua các đặc tính như là tương thích liên kết và H-ARQ nhanh. Hình 3 trình bày sơ đồ khối các kênh chia sẻ dữ liệu tốc độ cao(HS-DSCH) có khả năng mang gói dữ liệu. Kênh được ghép theo kiểu thời gian và chia sẻ mã giữa các người dùng khác nhau. Ở đây khối đồng bộ trong bộ phát thực hiện thu nhận thời gian, thu nhận tần số sóng mang và kỹ thuật hiệu chỉnh đồng hồ. Chúng ta bỏ qua việc xét đến điều khiển luồng cho dễ hiểu.  Phát triển thuật toán HSDPA Việc thực thi hệ thống trong tiến trình Matlab với các chuẩn. Các thuật toán khác nhau được thực hiện trong Matlab hoặc C. Mã –C được tích hợp trong chuỗi mô phỏng sử dụng công cụ C-mex. Hơn nữa, các thuật toán khác nhau được đánh giá (Rake, cân bằng, ước lượng kênh) với các tham số khác nhau. Tiếp theo, các thuật toán được chuyển đổi sang mã-m và sau đó đến mã điểm cố định. Việc chuyển đổi điểm cố định được thực hiện thủ công. Thời gian yêu cầu đối với việc chuyển đổi và thực hiện điểm cố định phụ thuộc vào độ phức tạp của thuật toán, hoạt động liên quá tới như là kỹ năng cá nhân. Đối với thuật toán như là đồng bộ hoặc ước lượng kênh, bao gồm hoạt động tích luỹ nhiều lần (MAC), việc chuyển đổi điểm cố định được thực hiện dễ hiểu hơn. Mặt khác bộ cân bằng chip được tính toán đòi hỏi nhiều thuật toán và bao gồm nhiều ma trận nghịch đảo. Nó yêu cầu việc phân tích điểm cố định tỉ mỉ và thời gian giành cho việc chuyển đổi điểm cố định có thể là khá cao. Bit từ lớp MAC CRC Bộ mã hóa Turbo Rate Matching Bộ trộn Kênh hoa tiêu Nhiễu người dùng khác Kênh đồng bộ Tx Diversity Encoding Điều chế và Trải phổ Tx power Allocation Scrambler Pulse shape DAC/ RF Mã dài 78 ------------------------------------------------------------------------------------------------------- RF/ ADC Pulse Match Synchronize & Down-Sample RAKE/ Chip Equalizer Giải module và giải phân tập phát Giải bộ trộn Rate De- Matching Giải mã Turbo Bộ đệm HARQ Kênh và ước tính SNR Dữ liệu được giải mã Hình p- 6 Chuỗi phát- thu HSDPA Việc tổng hợp mã điểm cố định được sử dụng như là dạng mầu đối với hoạt động phần cứng. Các công cụ thiết kế Graphical như là HDL Designer dễ dàng đạt được các thiết kế rộng lớn. Các module riêng có thể được tự tạo mã trong VHDL. Tuy nhiên, như chỉ ra trên hình p-6, vài khối (bộ cân bằng được rất phức tạp. Ví dụ khối cân bằng bao gồm bộ phân giải khoá của bộ cân bằng và bộ lọc. Ở đây bộ phân giải khoá bao gồm các ma trận nghịch đảo hoặc FFT. Như đề nghị trong Precision – C có thể được tận dụng để thực thi các thuật toán phức tạp cần lập lịch nhanh. Precision C cho phép rất mềm dẻo trong việc định giá kiến trúc và thiết kế thích hợp tại mức –C. Precision C có thể giảm thiểu đáng kể thời gian đối với phát triển RTL và tạo tất cả các thiết kế luồng thích hợp. Tuy nhiên, Precision C yêu cầu chuyển đổi mã –m điểm cố định sang mã –C điểm cố định. Một bước quan trọng trong việc phát triển RTL là kiểm tra chức năng và xác nhận. Việc thiết kế RTL phải được xác nhận với thiết kế Matlab sử dụng test-vector được tạo bởi Matlab test-bed . Chúng ta sử dụng giao diện file dữ liệu để chuyển test-vector và dữ liệu đầu ra đến hoặc đi tới Matlab test-bed. Việc thiết kế RTL được mô phỏng sử dụng ModelSim®. Các mô hình này đơn giản hơn và độc lập với việc thiết kế luồng chính. Đây là sự khó khăn, đặc biệt khi các trường hợp kiểm tra có sự khác nhau nhiều khi tiến hành mô phỏng. Vài công cụ thiết kế như hệ thống-C cung cấp khả năng thực hiện cả mô phỏng phần cứng/phần mềm. Đây là lợi điểm để giảm thiểu toàn bộ thời gian phát triển. Gần đây, các công cụ mô phỏng có thể cùng thiết kế với Matlab test- bed, sử dụng Matlab với liên kết ModelSim.  Ưu nhược điểm Vì Matlab là công cụ được ưu chuộng cho việc nghiên cứu, Matlab tích hợp trong thiết kế luồng RTL cho phép chuyển giao nhanh từ nghiên cứu thuật toán thực hiện. Tất cả thời gian thiết kế từ khởi tạo Matlab tới thực hiện phần cứng có thể được giảm thiểu đáng kể. Việc tích hợp Precision – C tron thiết kế luồng dựa trên Matlab, quá trình phát triển phần cứng được thúc đầy nhanh chóng. Việc thiết kế luồng được thuận lợi cho các ứng dụng chúng minh các khái niệm, bởi vì nó là chiếc cầu nối giữa việc nghiên cứu thuật toán và phát triển thuật toán. Hơn nữa, bằng việc cung cấp khái niệm mức – C trong định giá kiến trúc, các liên kết chặt chẽ có thể đạt được giữa các thuật toán Matlab gốc và việc thực hiện thiết kế RTL. Nghẽn cổ chai nghiêm trọng trong thiết kế luồng được chuyển dẫn từ điểm Matlab di động tới Matlab điểm cố định. Để đạt được mã điểm Matlab cố định, vài hoạt động 79 ------------------------------------------------------------------------------------------------------- vector phải tránh. Hơn thế, trong sự vắng mặt của điểm cố định các kiểu dữ liệu bổ sung mã hóa được yêu cầu làm sao tránh được sự tràn lụt và bảo đảm các điểm cố định chính xác. Điều này thường mang lại kết quả là tốc độ mô phỏng sẽ giảm xuống. Một nhiệm vụ giới hạn khác của đề xuất thiết kế luồng là phiên dịch từ mã-m cố định điểm sang mã-C cố định điểm. Kết luận Một luồng thiết kế hiệu quả được đặt đúng trung tâm trên Matlap để minh họa cho tạo nguyên mẫu nhanh chóng. Đề xuất thiết kế luồng tốt sẽ đáp ứng cho thực thi FPGA và rút gọn thời gian phát triển thuật toán. Sự tích hợp Matlab và Precision-C trong cùng thiết kế luồng sẽ tạo cho nó sự linh hoạt và năng suất truyền dẫn nhanh tới VDHL.

Các file đính kèm theo tài liệu này:

  • pdfLUẬN VĂN-KỸ THUẬT FPGA ÁP DỤNG THỰC HIỆN CHO BỘ MÃ FEC TRONG HỆ DVB.pdf