Đại Học Quốc Gia Tp. Hồ Chí Minh
Đại
Học QuốcĐẠI
Gia HỌC
Tp. Hồ
Chí Minh
TRƯỜNG
BÁCH
KHOA
TRƯỜNG ĐẠI
HỌC BÁCH KHOA
-------------------------------------------------
NGUYỄN MINH KHÁNH NGỌC
NGUYỄN TẤN KIỆT
THIẾT KẾ VÀ HIỆN THỰC IP
VÀ DGPS
GIẢIỐNG
MÃ GPS
VITERBI
TRÊN FPGA
Chuyên ngành: KỸ THUẬT ĐIỆN TỬ
Chuyên ngành: KỸ THUẬT ĐIỆN TỬ
LUẬN
LUẬNVĂN
VĂNTHẠC
THẠCSĨSĨ
TP. HỒ CHÍ MINH, tháng 12 năm 2008
TP. HỒ CHÍ MINH, tháng 7 năm 2009
CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI
TRƯỜNG ĐẠI HỌC BÁCH KHOA
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
Cán bộ hướng dẫn khoa học: 1. TS. PHAN HỒNG PHƯƠNG
2. ThS. HỒ TRUNG MỸ
(Ghi rõ họ tên, học hàm, học vị và chữ ký)
Cán bộ chấm nhận xét 1:
(Ghi rõ họ tên, học hàm, học vị và chữ ký)
Cán bộ chấm nhận xét 2:
(Ghi rõ họ tên, học hàm, học vị và chữ ký)
Luận văn thạc sĩ được bảo vệ tại HỘI ĐỒNG CHẤM BẢO VỆ LUẬN VĂN
THẠC SĨ
TRƯỜNG ĐẠI HỌC BÁCH KHOA, NGÀY THÁNG NĂM
ĐẠI HỌC QUỐC GIA TP. HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
----------------
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc Lập - Tự Do - Hạnh Phúc
---oOo---
Tp. HCM, ngày . . . . . tháng . . . . . năm 2009
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ và tên học viên: NGUYỄN MINH KHÁNH NGỌC
Ngày, tháng, năm sinh: 01 – 09 – 1982
Chuyên ngành: KỸ THUẬT ĐIỆN TỬ
Mã số ngành: 605270
MSHV: 01408378
Khoá (Năm trúng tuyển): 2008
Giới tính: Nữ
Nơi sinh: Đà Nẵng
1- TÊN ĐỀ TÀI: Thiết kế và hiện thực IP giải mã Viterbi trên FPGA.
2- NHIỆM VỤ LUẬN VĂN:
• Tìm hiểu cơ sở lý thuyết Thuật toán Viterbi và cách thức thiết kế một IP
core.
• Mô phỏng giải mã Viterbi trên Matlab.
• Thiết kế lõi IP giải mã Vitrebi trên FPGA. Cài đặt thiết kế lên Kit DE2 của
Altera
• So sánh kết quả giữa mô phỏng Matlab và thi hành trên FPGA, nhận xét và
đánh giá thiết kế.
3- NGÀY GIAO NHIỆM VỤ:
4- NGÀY HOÀN THÀNH NHIỆM VỤ: 06 – 07 – 2009
5- HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN 1: TS. PHAN HỒNG PHƯƠNG
2: ThS. HỒ TRUNG MỸ
Nội dung và đề cương Luận văn thạc sĩ đã được Hội Đồng Chuyên Ngành thông
qua.
CÁN BỘ HƯỚNG DẪN
(Họ tên và chữ ký)
CHỦ NHIỆM BỘ MÔN
QUẢN LÝ CHUYÊN NGÀNH
(Họ tên và chữ ký)
LỜI CẢM ƠN
Đề tài “ Thiết kế và hiện thực IP giải mã Viterbi trên FPGA” đã được hoàn
thành với sự hướng dẫn và giúp đỡ rất tận tình của Cô – Tiến Sĩ Phan Hồng Phương
và Thầy – Thạc Sĩ Hồ Trung Mỹ. Xin ghi nhớ lòng biết ơn sâu sắc và gửi lời cảm
ơn chân tình nhất đến cô thầy.
Xin được gửi lời cảm ơn chân thành nhất đến các Thầy Cô Giáo giảng dạy
chương trình Cao học ngành Kỹ Thuật Điện Tử trường Đại Học Bách Khoa Tp.Hồ
Chí Minh đã cung cấp nhiều kiến thức quý báu và tạo mọi điều kiện thuận lợi cho
em hoàn thành khóa học.
Xin chân thành cảm ơn các bạn học viên cao học khóa 2007 và khóa 2008
ngành Kỹ Thuật Điện Tử trường Đại Học Bách Khoa Tp.Hồ Chí Minh đã nhiệt tình
giúp đỡ trao dồi kiến thức trong quá trình học tập.
Cuối cùng xin được gửi đến gia đình, bạn bè và đồng nghiệp lời cảm ơn chân
thành nhất vì đã tạo mọi điều kiện thuận lợi và giúp đỡ về vật chất lẫn tinh thần
trong quá trình học tập và thực hiện luận văn.
Tp. Hồ Chí Minh, ngày 06 tháng 07 năm 2009
NGUYỄN MINH KHÁNH NGỌC
Mục lục
------------------------------
CHƯƠNG 1:
GIỚI THIỆU........................... 10
1.1. Đặt vấn đề ........................................................................ 10
1.1.1
Viterbi là ai?.......................................................................... 10
1.1.2.
Thuật toán Viterbi................................................................. 12
1.1.3.
Phương thức thiết kế IP ........................................................ 13
1.2. Nội dung nghiên cứu ....................................................... 14
1.3. Ý nghĩa đề tài................................................................... 15
CHƯƠNG 2: LÝ THUYẾT THUẬT TOÁN VITERBI
.......................................................................................... 16
2.1. Vị trí và vai trò của mã hóa kênh................................... 16
2.2. Caáu truùc cuûa boä maõ hoùa tích chaäp ............................... 17
2.3. Giaûi maõ maõ tích chaäp Viterbi ....................................... 20
2.3.1
Giải mã quyết định mềm và quyết định cứng....................... 20
2.3.2.
Thuật toán Viterbi quyết định cứng...................................... 21
2.3.3.
Thuật toán Viterbi quyết định mềm...................................... 29
2.3.4.
Xác suất lỗi ........................................................................... 33
CHƯƠNG 3: GIẢI MÃ VITERBI BẰNG MATLAB 35
5
3.1. Đặt vấn đề ........................................................................ 35
3.2. Sơ đồ khối......................................................................... 35
3.3. Lưu đồ mô phỏng ............................................................ 36
3.3.1. Khối nguồn tạo tín hiệu ............................................................ 38
3.3.2. Khối mã hóa ............................................................................. 38
3.3.3. Khối nhiễu kênh ....................................................................... 38
3.3.4. Khối giải mã ............................................................................. 38
3.4. Giao diện người sử dụng (GUI)...................................... 39
CHƯƠNG 4: THIẾT KẾ VÀ HIỆN THỰC................. 42
IP GIẢI MÃ VITERBI TRÊN FPGA........................... 42
4.1. Tổng Quan Về Board DE2.............................................. 42
4.1.1. Söû duïng Pushbuttons vaø Switches ........................................ 43
4.1.2. Söû duïng LCD Module .......................................................... 44
4.2. Thiết kế bộ giải mã Viterbi trên FPGA......................... 45
4.2.1. Kiến trúc thiết kế ...................................................................... 45
4.2.2. Giải thuật thiết kế ..................................................................... 48
4.2.3. Các thông số của IP core .......................................................... 50
4.2.4. Các tín hiệu ngõ vào và ngõ ra ................................................. 50
4.2.5. Sơ đồ tín hiệu kết nối................................................................ 51
4.2.6. Testbench.................................................................................. 53
6
4.2.7. Mô phỏng và chạy script .......................................................... 54
4.2.8. Hướng dẫn sử dụng Source Code file ...................................... 56
4.2.9. Nhiệm vụ các tín hiệu và thi hành trên Kit DE2 ...................... 57
CHƯƠNG 5: SO SÁNH - NHẬN XÉT - ĐÁNH GIÁ . 58
THIẾT KẾ ....................................................................... 58
5.1.
So sánh kết quả ............................................................ 58
5.2.
Đánh giá thiết kế .......................................................... 58
5.2.1. Quá trình thiết kế ...................................................................... 58
5.2.2. Ưu điểm .................................................................................... 59
5.2.3. Hạn chế ..................................................................................... 60
5.3.
Công việc tương lai ...................................................... 60
BẢNG SỬ DỤNG TÀI NGUYÊN ................................... 61
TÀI LIỆU THAM KHẢO ................................................ 62
PHỤ LỤC......................................................................... 63
1. Testbench file ................................................................................ 63
2. Top level........................................................................................ 68
3. BMP Block .................................................................................... 73
4. TRB Block..................................................................................... 81
7
DANH MỤC HÌNH
Hình 2-1: Sô ñoà khoái toång quaùt cuûa moät heä thoáng thoâng tin soá .........................16
Hình 2-2: Ví duï boä maõ tích chaäp trong ñoù x(i) laø chuøm bit thoâng tin ngoõ vaøo vaø
c(i) laø chuøm bit ñöôïc maõ hoùa ngoõ ra ............................................................17
Hình 2-3: Boä maõ hoùa tích chaäp vôùi k=1, n=2, r=1/2, m=2, vaø K=3 ...................19
Hình 2-4: Bieåu dieãn baèng bieåu ñoà traïng thaùi .....................................................19
Hình 2-5: Biểu đồ trellis ........................................................................................ 20
Hình 2- 6: Giaûi maõ quyeát ñònh cöùng vaø meàm ....................................................21
Hình 2-7: Heä thoáng maõ tích chaäp .......................................................................22
Hình 2-8: Kieåu keânh heä thoáng nhò phaân, trong ñoù p laø xaùc suaát cheùo ...............24
Hình 2-9: Giaûi maõ Viterbi theo ví duï .................................................................29
Hình 3- 1: Sơ đồ khối............................................................................................. 35
Hình 3- 2: Lưu đồ mô phỏng ................................................................................. 37
Hình 3- 3: Giao diện người sử dụng (GUI)............................................................ 40
Hình 4- 1: Board Altera DE2 ................................................................................. 42
Hình 4- 2: Sơ đồ các khối chức năng trên board DE2 ........................................... 43
Hình 4- 3: Maïch Schmitt Trigger .......................................................................44
Hình 4- 4: Gán pin cho màn hình LCD.................................................................. 45
Hình 4- 5: Sơ đồ khối top level bộ giải mã Viterbi ............................................... 46
Hình 4- 6: Ví dụ cho hoạt động của giải mã Viterbi.............................................. 46
Hình 4- 7: Sơ đồ khối BMP ................................................................................... 47
Hình 4- 8: Luồng điều khiển khối traceback ......................................................... 48
Hình 4- 9: Lưu đồ thiết kế giải mã Viterbi trên FPGA.......................................... 49
Hình 4- 10: Sơ đồ tín hiệu khối Viterbi_LCD ....................................................... 52
Hình 4- 11: Sơ đồ tín hiệu khối Viterbi ................................................................. 52
Hình 4- 12: Sơ đồ tín hiệu khối BMP và TRB ...................................................... 53
Hình 4- 13: Kết quả mô phỏng 1 block v = 8 ........................................................ 55
Hình 4- 14: Kết quả mô phỏng 2 block v = 16 ...................................................... 56
8
THUẬT NGỮ TIẾNG ANH
IP
Sở hữu trí tuệ (Intellectual Property)
FPGA
Mảng cổng có thể lập trình được (Field-Programmable Gate Array)
BMP
Xử lý nhánh metric (Branch Metric Processing)
BMC
Tính toán nhánh metric (Branch Metric Calculation)
ACS
Cộng – So sánh – Lựa chọn (Add-Compare-Select)
SUR
Đường tồn tại (Survivor)
TRB
Truy ngược trở về (Tracing back)
9
Luận văn cao học K2007
CHƯƠNG 1:
CBHD: TS. Phan Hồng Phương
ThS. Hồ Trung Mỹ
GIỚI THIỆU
1.1. Đặt vấn đề
1.1.1 Viterbi là ai?
Andrew Viterbi, người phát minh thuật toán giải mã được sử dụng hầu hết
trong các hệ thống thông tin trên các con tàu vũ trụ, tên lửa dẫn đường và các
hệ thống thông tin di động (TTDĐ) tế bào, đồng sáng lập nhiều công ty viễn
thông như Linkabit, Qualcomm. Nhưng ít ai biết được ông đã phải chạy trốn
khỏi Bergamo, Italia cùng cha mẹ khi mới hơn 4 tuổi để sang định cư ở Mỹ với
đôi bàn tay trắng năm ngày trước khi xảy ra thế chiến thứ 2. Những thành công
ở các cương vị khác nhau kỹ sư thiết kế hệ thống, nhà kinh doanh, con đường
khoa học với ông tất cả đều gói gọn trong bốn chữ “Đúng nơi đúng lúc”.
Thời nhỏ cuộc sống của Viterbi rất khó khăn. Năm 10 tuổi, khi ngắm nhìn ngôi
trường đại học công nghệ hàng đầu nước Mỹ, Viện công nghệ Massachusetts
MIT từ bên này sông Charles, Viterbi luôn ao ước rằng mình sẽ phải là một
sinh viên của trường khi tốt nghiệp trung học. Để thực hiện ước mơ đó, ông đã
chọn cho mình một con đường duy nhất đó là làm việc và học tập chăm chỉ.
Quyết tâm học tập của ông đã mang lại cho ông một cơ hội trở thành sinh viên
trường MIT khi ông là một trong bốn học sinh có số điểm cao nhất khi tốt
nghiệp trung học trên tổng số 225 sinh viên. Mặc dù được nhận vào học tại
khoa Kỹ thuật Điện tại Đại học MIT, nhưng Andrew Viterbi vẫn không thể tập
trung toàn bộ thời gian cho học tập, thay vào đó ông đã phải đăng ký học bán
thời gian để có thời gian đi làm việc để kiếm sống. Sau năm năm ông đã có
trong tay bằng đại học và thạc sỹ khoa học cùng một lúc vào năm 1957. Ngay
sau khi tốt nghiệp, ông đã được mời tham gia vào nhóm nghiên cứu về thông
tin liên lạc tại trung tâm nghiên cứu JPL (Jet Propulsion Laboratory) tại
10
Thiết kế IP giải mã Viterbi trên FPGA
HVTH: Nguyễn Minh Khánh Ngọc
Luận văn cao học K2007
CBHD: TS. Phan Hồng Phương
ThS. Hồ Trung Mỹ
California.
Viterbi đã giành rất nhiều thời gian để nghiên cứu về việc bám và bắt tín hiệu
cho hệ thống thông tin của vệ tinh Explore 1 được Mỹ phóng thành công vào
tháng 2 năm 1958. Thời gian đó, Viterbi đã làm việc với thiết bị vòng khóa pha
(phase lock loop) mà sau này đã được dùng phổ biến trong tất cả các hệ thống
thông tin cả tương tự và số. Đối với Viterbi, được tham gia đóng góp vào sự
thành công của Explore 1 là một vinh dự, nhưng lớn hơn nữa là những kinh
nghiệm làm việc tại đây đã cho ông nhiều kinh nghiệm cũng như sự nghiệp mà
sau này ông đã thành công với công nghệ trải phổ ở Qualcomm.
Ngoài cùng với JPL tham gia những dự án tiên phong trong hệ thống thông tin
vũ trụ và tên lửa, Viterbi còn tham gia vào chương trình nghiên cứu sinh bán
thời gian tại khoa Kỹ thuật Điện của trường đại học South California, đây có lẽ
là một trong số ít các trường đại học tư của Mỹ lúc bấy giờ cho các nghiên cứu
sinh ngoài làm nghiên cứu còn có thể đi làm việc cho các hãng. Vào năm 1962,
khi nhận được tấm bằng tiến sỹ ông đã được mời làm trợ giảng tại trường Đại
học California, Los Angeles. Đối với ông, đam mê nghiên cứu bao nhiêu thì ao
ước được giảng dạy cũng nhiều bấy nhiêu. Vì vậy, ông quyết định về giảng dạy
chuyên ngành lý thuyết thông tin và thông tin số tại trường đại học California.
Khi giảng dạy chuyên đề về tách tín hiệu ra khỏi nhiễu, ông thấy rằng nếu
giảng dạy cho sinh viên bằng cách thông thường thì quá phức tạp và khó hiểu.
Lúc đó, ông nảy ra ý định tìm một cách nào đó để có thể giúp sinh viên của
ông tiếp cận vấn đề một cách đơn giản nhất. Theo như ông nói, công trình
nghiên cứu sinh của ông thì không có gì đáng bàn nhưng nó lại mang lại cho
ông một nền tảng vững chắc cho những thành công sau này. Những nền tảng
kiến thức cũng như kinh nghiệm làm việc ở nhiều dự án lớn tại JPL đã giúp
Viterbi tìm ra lời giải cho vấn đề của mình chỉ trong vòng 3 tháng. Lời giải đó
sau này được mang tên ông "Thuật toán Viterbi".
11
Thiết kế IP giải mã Viterbi trên FPGA
HVTH: Nguyễn Minh Khánh Ngọc
Luận văn cao học K2007
CBHD: TS. Phan Hồng Phương
ThS. Hồ Trung Mỹ
1.1.2. Thuật toán Viterbi
Trong bất kỳ một hệ thống truyền dẫn vô tuyến nào từ tương tự đến hệ thống
số, các tín hiệu đều phải được điều chế lên một tần số sóng mang nhất định để
truyền dẫn qua không gian. Do đó, dù là các tàu vũ trụ, các tên lửa hay hệ
thống thông tin tế bào thì vấn đề tách tín hiệu ra khỏi nhiễu đóng vai trò cốt lõi
thể hiện tính ưu việt của mỗi hệ thống thông tin.
Trong vũ trụ, tín hiệu luôn bị chìm sâu vào trong nhiễu do nhiễu vô tuyến từ
các thiên hà hoặc quá trình phát xạ từ mặt trời. Hay như trên mặt đất, tín hiệu
của một máy vô tuyến tế bào bị gây nhiễu bởi rất nhiều máy phát vô tuyến tế
bào khác xung quanh nó. Vậy làm thế nào để có thể tách tín hiệu cần thiết ra
khỏi nhiễu? Để thực hiện điều đó, người ta đã dùng giải pháp mã hóa kênh các
tín hiệu để thêm vào thông tin gốc các bit dư để bảo vệ trước khi chúng được
phát qua kênh truyền có nhiễu. Bằng cách mã hóa kênh như vậy, các bit thông
tin (bit 0 hay 1) có thể được biểu diễn không chỉ biểu diễn bằng một góc dịch
pha (Điều chế khóa pha M-PSK) mà còn có thể được biểu diễn bằng 4, 8 hoặc
nhiều hơn nữa các ký hiệu. Với hệ thống dùng mã hóa kênh, ở phía thu chúng
ta không tách các bit thông tin thực tế mà thay vào đó là các ký hiệu mã hóa để
từ các ký hiệu đó chúng ta có thể khôi phục lại các bit thông tin gốc. Ý tưởng
cơ bản của giải pháp lựa chọn mã hóa kênh là nếu như một trong số các ký
hiệu phát qua kênh bị méo do nhiễu thì những ký hiệu bị ảnh hưởng bởi nhiễu
ít hơn sẽ giúp giải mã các bit thông tin thực tế với độ tin cậy cao hơn.
Trong môi trường nhiễu, có một thực tế là nếu ngay khi nhận được tín hiệu thu
chúng ta thực hiện giải mã các bit 0 hoặc 1 thì hiệu quả sẽ không cao. Thay vào
đó, chúng ta chỉ đánh giá độ tin cậy, (rất tin cậy, tin cậy, tin cậy thấp , tin cậy
rất thấp), khi giải mã bit 1 hoặc bit 0 dựa trên tín hiệu thu được. Với cách giải
mã như vậy người ta gọi là quyết định mềm (soft decision). Những thông tin
thể hiện độ tin cậy của quyết định mềm đó được đưa đến bộ giải mã để tìm ra
12
Thiết kế IP giải mã Viterbi trên FPGA
HVTH: Nguyễn Minh Khánh Ngọc
Luận văn cao học K2007
CBHD: TS. Phan Hồng Phương
ThS. Hồ Trung Mỹ
bit thông tin gốc là 0 hay 1 thông qua việc so sánh kết quả với những bit thông
tin lân cận. Giải thuật mềm như đã nêu ở trên sẽ rất phức tạp, độ phức tạp sẽ
tăng theo hàm mũ khi độ dài các thanh ghi dịch trong bộ tạo mã tăng lên. Công
trình nghiên cứu trong vòng ba tháng của Viterbi đã làm giảm độ phức tạp
thông qua việc kết hợp các quyết định mềm để quyết định chuỗi bit thông tin
nào là giống với chuỗi bit được phát đi nhất. Giải pháp này của Viterbi đã được
chứng minh là cho kết quả giống với kết quả của phương pháp giải mã tối ưu
với độ phức tạp cao. Với ưu điểm đó, JPL ngay lập tức sử dụng thuật toán giải
mã Viterbi trong hệ thống thông tin vệ tinh cũng như vũ trụ của mình. Sau này
các hệ thống thông tin quân sự cũng như các mạng thông tin số như các tuyến
truyền dẫn viba hay hệ thống TTDĐ tế bào GSM, CDMA đều dùng thuật toán
giải mã này giải mã mã xoắn.
1.1.3. Phương thức thiết kế IP
Trong ngành thiết kế vi mạch, một lõi sở hữu trí tuệ bán dẫn (semiconductor
intellectual property core), hay gọi tắt là lõi IP (IP core) là một bộ phận thiết kế
cho phép tái sử dụng (reusable unit). Lõi IP có thể là một thiết kế cho một
mạch logic, một tế bào, hay cho cả một chip. Đứng về quyền sử dụng thì lõi IP
là sở hữu trí tuệ của một cá nhân hay của một công ty nào đó đã tạo ra nó .
Người hoặc công ty làm chủ lõi IP này có thể nhượng quyền sử dụng đến một
công ty hay một cá nhân khác. Khái niệm này được suy ra từ việc nhượng
quyền bằng sáng chế và luật sở hữu mã nguồn trong công nghệ phần mềm.
Trong thiết kế vi mạch số, lõi IP thường được cung cấp dưới dạng netlist của
các cổng tổng quát (generic gate netlists). Netlist là một mô tả dạng đại số
Boolean (gồm các cổng, các tế bào chuẩn) hình thành nên lõi IP, tương tự như
mã hợp ngữ của một chương trình ứng dụng cấp cao. Đồng thời, một số khách
hàng đề nghị cung cấp dạng khả tổng hợp (synthesizable) của lõi IP , tức là
cung cấp dưới dạng ngôn ngữ mô tả phần cứng như Verilog hay VHDL, cho
phép khách hàng có thể sửa đổi ở mức chức năng. Cả netlist và lõi khả tổng
13
Thiết kế IP giải mã Viterbi trên FPGA
HVTH: Nguyễn Minh Khánh Ngọc
Luận văn cao học K2007
CBHD: TS. Phan Hồng Phương
ThS. Hồ Trung Mỹ
hợp đều được gọi là ‘lõi mềm, mà muốn đưa vào thiết kế chip hoàn chỉnh,
khách hàng cần phải tiếp tục thực hiện qui trình thiết kế SPR (synthesis – tổng
hợp, đặt và nối dây – placement and route).
Trong trường hợp thiết kế vi mạch tương tự (analog) hoặc vi mạch hỗn hợp
(mixed-signal) thì khách hàng lại cần một mô tả lõi theo kiểu vật lý, mức thấp.
Do đó, các lõi IP vi mạch tương tự (PLL, DAC, ADC, ...) được cung cấp dưới
dạng layout của transistor (thường là file GDSII). Đôi khi một số lõi IP vi
mạch số cũng có thể được cung cấp ở dạng này. Những lõi IP có dạng như vậy,
kể cả vi mạch tương tự, số hay hỗn hợp, được gọi là ‘lõi cứng’, bởi vì chức
năng ứng dụng của lõi lúc này không thể được sửa đổi bởi khách hàng. Đồng
thời, file layout transistor phải tuân theo luật thiết kế và chế tạo của nhà máy
sản xuất cụ thể nào đó, do đó gần như không thể chuyển lõi IP cứng được thiết
kế cho quy trình của nhà máy này sang nhà máy khác.
Tóm lại, có hai dạng lõi IP:
+ Lõi IP mềm : có tính linh hoạt nhất, cho phép người dùng sửa đổi chức năng
khi cần thiết. Nhưng để đưa vào thiết kế toàn bộ, khách hàng phải thực hiện
các bước tổng hợp, đặt và nối dây...Như vậy, không đảm bảo chắc chắn sẽ đạt
được các luật thiết kế của nhà máy, tối ưu về thời gian, diện tích...
+ Lõi IP cứng: được thiết kế như là một “hộp đen”, khách hàng chỉ việc sử
dụng. Không linh hoạt vì khách hàng không thể sửa đổi. Chỉ ứng dụng với một
qui trình sản xuất của một nhà máy chế tạo cụ thể. Người cung cấp IP đảm bảo
tuân thủ các luật thiết kế của nhà máy, thông báo rõ tần số làm việc, diện tích
chiếm chỗ... của IP do mình tạo ra.
1.2. Nội dung nghiên cứu
Đề tài bao gồm các nội dung nghiên cứu sau:
1. Tìm hiểu cơ sở lý thuyết Thuật toán Viterbi
14
Thiết kế IP giải mã Viterbi trên FPGA
HVTH: Nguyễn Minh Khánh Ngọc
Luận văn cao học K2007
CBHD: TS. Phan Hồng Phương
ThS. Hồ Trung Mỹ
2. Tìm hiểu cách thức thiết kế một IP core
3. Mô phỏng giải mã Viterbi trên Matlab
3. Thiết kế lõi IP cứng giải mã Vitrebi trên FPGA
4. Xây dựng GUI giao diện người sử dụng
5. Xây dựng testbench kiểm tra chức năng IP Viterbi
6. Cài đặt thiết kế lên Kit DE2 của Altera
7. So sánh kết quả giữa mô phỏng Matlab và thi hành trên FPGA, nhận xét và
đánh giá thiết kế.
1.3. Ý nghĩa đề tài
Đề tài đi theo hướng nghiên cứu ứng dụng thuật toán Viterbi, từ đó thiết kế lõi
IP giải mã Viterbi được cài đặt trên FPGA. Kết quả của đề tài có thể được ứng
dụng trong hệ thống thông tin vệ tinh, Wimax, CDMA, nhận dạng tiếng nói…
15
Thiết kế IP giải mã Viterbi trên FPGA
HVTH: Nguyễn Minh Khánh Ngọc
Luận văn cao học K2007
CBHD: TS. Phan Hồng Phương
ThS. Hồ Trung Mỹ
CHƯƠNG 2: LÝ THUYẾT THUẬT TOÁN VITERBI
2.1. Vị trí và vai trò của mã hóa kênh
Hình 2-1 trình baøy sô ñoà khoái toång quaùt cơ bản cuûa moät heä thoáng thoâng tin
soá.
Hình 2-1: Sô ñoà khoái toång quaùt cuûa moät heä thoáng thoâng tin soá
Töø hình 2-1 ta coù theå thaáy ñöôïc vò trí cuûa maõ hoùa keânh (channel coding)
trong heä thoáng thoâng tin soá. Maõ hoùa coù nhieàu loaïi: maõ hoùa nguoàn vaø maõ hoùa
keânh.
Maõ hoùa nguoàn (source coding): muïc ñích laø ñeå laøm giaûm thieåu ñoä dö tin,
töùc loaïi boû nhöõng thoâng tin khoâng caàn thieát, ñeå truyeàn tin theo moät caùch
nhanh nhaát vaø phía thu deã nhaän nhaát.
Maõ hoùa keânh: muïc ñích laø laøm giaûm thieåu xaùc suaát sai thoâng tin khi
truyeàn qua keânh truyeàn.
16
Thiết kế IP giải mã Viterbi trên FPGA
HVTH: Nguyễn Minh Khánh Ngọc
Luận văn cao học K2007
CBHD: TS. Phan Hồng Phương
ThS. Hồ Trung Mỹ
Vieäc giaûm thieåu xaùc suaát sai döïa vaøo vieäc phaùt hieän sai vaø söûa sai coù theå
daãn ñeán vieäc giaûm tæ soá tín hieäu treân nhieãu (SNR) caàn thieát, nhôø ñoù giaûm
ñöôïc coâng suaát, tieát kieäm naêng löôïng. Vieäc söûa sai höõu hieäu vôùi tæ soá SNR
nhoû seõ laøm thuaän lôïi cho vieäc baûo maät, traûi phoå vaø taêng ñoä chính xaùc cuûa
thoâng tin nhaän – muïc ñích quan troïng nhaát cuûa truyeàn thoâng.
Qua đó ta thấy được vò trí vaø vai troø cuûa maõ hoùa keânh trong heä thoáng thoâng
tin số.
Luaän vaên nghieân cöùu veà maõ Vitrebi laø moät maõõ tích chaäp. Vì theá tác giả sẽ
trình baøy ngaén goïn caùc vaán ñeà caên baûn cuûa maõ tích chaäp, laø moät khôûi ñaàu
caàn thieát cho việc tìm hiểu giãi mã Viterbi.
2.2. Caáu truùc cuûa boä maõ hoùa tích chaäp
Moät maõ tích chaäp ñöa caùc bit kieåm tra vaøo chuøm bit döõ lieäu thoâng qua vieäc
söû duïng caùc boä thanh ghi dòch tuyeán tính D nhö trong Hình 2-2.
x(1)
x(2)
D
D
D
D
D
+
c(1)
+
c(2)
+
c(3)
Hình 2-2: Ví duï boä maõ tích chaäp trong ñoù x(i) laø chuøm bit thoâng tin ngoõ vaøo
vaø c(i) laø chuøm bit ñöôïc maõ hoùa ngoõ ra
17
Thiết kế IP giải mã Viterbi trên FPGA
HVTH: Nguyễn Minh Khánh Ngọc
Luận văn cao học K2007
CBHD: TS. Phan Hồng Phương
ThS. Hồ Trung Mỹ
Caùc bit thoâng tin ñöôïc ñöa vaøo caùc thanh ghi dòch vaø caùc bit ñöôïc maõ hoùa
ngoõ ra ñöôïc laáy baèng boä coäng modulo-2 cuûa caùc bit thoâng tin ngoõ vaøo vôùi
noäi dung cuûa caùc thanh ghi dòch.
Toác ñoä maõ hoùa r cuûa maõ tích chaäp ñöôïc ñònh nghóa nhö sau:
r=
k
n
(C- II.1)
trong ñoù k laø soá caùc bit thoâng tin ngoõ vaøo song song vaø n laø soá caùc bit ñöôïc
maõ hoùa ngoõ ra song song taïi moät thôøi ñieåm. Chieàu daøi baét buoäc K
(constraint length) ñoái vôùi maõ tích chaäp ñöôïc ñònh nghóa
(C- II.2)
K = m+1
Trong ñoù m laø soá oâ nhôù lôùn nhaát trong baát cöù boä thanh ghi dòch naøo. Caùc
thanh ghi dòch löu tröõ thoâng tin traïng thaùi cuûa boä maõ hoùa tích chaäp vaø chieàu
daøi baét buoäc lieân keát soá löôïng caùc bit ngoõ ra phuï thuoäc. Ñoái vôùi boä maõ hoùa
tích chaäp trong Hình 2-2, toác ñoä maõ hoùa r=2/3, kích côõ boä nhôù lôùn nhaát
m=3, vaø chieàu daøi baét buoäc K=4
Moät maõ tích chaäp coù theå trôû neân raéc roái khi noù coù caùc toác ñoä maõ hoùa vaø caùc
chieàu daøi baét buoäc bieán ñoåi. Moät maõ tích chaäp ñôn giaûn nhö ôû Hình 2-3 seõ
ñöôïc duøng ñeå laøm ví duï moâ taû caùc ñaëc tính maõ hoùa.
18
Thiết kế IP giải mã Viterbi trên FPGA
HVTH: Nguyễn Minh Khánh Ngọc
Luận văn cao học K2007
CBHD: TS. Phan Hồng Phương
ThS. Hồ Trung Mỹ
c(1)
+
x(1)
D
D
+
c(2)
Hình 2-3: Boä maõ hoùa tích chaäp vôùi k=1, n=2, r=1/2, m=2, vaø K=3
Hình 2-4: Bieåu dieãn baèng bieåu ñoà traïng thaùi
19
Thiết kế IP giải mã Viterbi trên FPGA
HVTH: Nguyễn Minh Khánh Ngọc
Luận văn cao học K2007
CBHD: TS. Phan Hồng Phương
ThS. Hồ Trung Mỹ
Bieåu dieãn baèng bieåu ñoà trellis
Bieåu ñoà trellis cô baûn laø veõ laïi sô ñoà traïng thaùi. Noù bieåu dieãn taát caû söï chuyeån
tieáp traïng thaùi coù theå taïi moãi böôùc thôøi gian. Thoâng thöôøng, coù chuù thích keøm
theo bieåu ñoà trellis ñeå bieåu dieãn caùc söï chuyeån tieáp traïng thaùi vaø ngoõ ra töông
öùng vaø caùc aùnh xaï bit ngoõ ra (x/c).
Hình 2-5: Biểu đồ trellis
2.3. Giaûi maõ maõ tích chaäp Viterbi
2.3.1 Giải mã quyết định mềm và quyết định cứng
Giaûi maõ quyeát ñònh meàm vaø quyeát ñònh cöùng döïa vaøo loaïi löôïng töû hoùa söû
duïng ôû caùc bit nhaän ñöôïc. Giaûi maõ quyeát ñònh cöùng söû duïng löôïng töû hoùa 1bit treân caùc giaù trò keânh nhaän ñöôïc. Giaûi maõ quyeát ñònh meàm söû duïng löôïng
töû hoùa nhieàu-bit treân caùc giaù trò keânh nhaän ñöôïc. Ñoái vôùi giaûi maõ quyeát ñònh
meàm lyù töôûng (löôïng töû hoùa khoâng xaùc ñònh), caùc giaù trò keânh nhaän ñöôïc
20
Thiết kế IP giải mã Viterbi trên FPGA
HVTH: Nguyễn Minh Khánh Ngọc
- Xem thêm -