77 Trang 9 DANH MỤC CÁC CHỮ VIẾT TẮTTT Chữ viết tắt Ý Nghĩa 1 CLB Configurable Logic Blocks 2 CPLD Complex Programmable Logic Devices 3 CN Công nghiệp 4 CNTT Công nghệ thông tin 5 CONL
Trang 1CÔNG NGHỆ FPGA VÀ ỨNG DỤNG GIẢNG DẠY MÔN ĐIỆN
TỬ SỐ TẠI TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP VIỆT -HUNG
LUẬN VĂN THẠC SĨ SƯ PHẠM KỸ THUẬT
CHUYÊN NGÀNH: LÝ LUẬN VÀ PHƯƠNG PHÁP DẠY HỌC
CHUYÊN SÂU: SƯ PHẠM KỸ THUẬT ĐIỆN TỬ
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-
PHÙNG TOÀN THẮNG
CÔNG NGHỆ FPGA VÀ ỨNG DỤNG GIẢNG DẠY MÔN ĐIỆN TỬ SỐ
TẠI TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP VIỆT- HUNG
LUẬN VĂN THẠC SĨ SƯ PHẠM KỸ THUẬT CHUYÊN NGÀNH: LÝ LUẬN VÀ PHƯƠNG PHÁP DẠY HỌC
CHUYÊN SÂU: SƯ PHẠM KỸ THUẬT ĐIỆN TỬ
NGƯỜI HƯỚNG DẪN KHOA HỌC :
2 TS PHẠM NGỌC NAM
Trang 3LỜI CẢM ƠN
Sau một thời gian nghiên cứu và làm việc khẩn trương cùng với sự giúp đỡ
và chỉ bảo tận tình của PGS.TS Phí Hòa Bình và Ts Phạm Ngọc Nam luận văn với đề tài: “Công nghệ FPGA và ứng dụng giảng dạy môn điện tử số tại trường Đại học công nghiệp Việt-Hung” đã hoàn thành
Tác giả xin bày tỏ lòng biết ơn sâu sắc tới:
Các thầy giáo hướng dẫn PGS.TS Phí Hòa Bình và Ts Phạm Ngọc Nam
đã tận tình chỉ dẫn, giúp đỡ tác giả hoàn thành luận văn này
Viện Đào Tạo Sau Đại Học, Ban chủ nhiệm và các thầy Khoa Sư Phạm Kỹ Thuật, Khoa Điện Tử Viễn Thông, tập thể các thầy cô giáo trường ĐHBK Hà Nội, Ban Giám Hiệu, tập thể giáo viên Khoa Điện Điện tử CNTT trường ĐHCN Việt - - – Hung đã tạo mọi điều kiện thuận lợi cho việc học tập, nghiên cứu và tiến hành luận văn của tác giả
Toàn thể bạn bè đồng nghệp, gia đình và người thân đã quan tâm, động viên giúp đỡ để tác giả hoàn thành luận văn này
Mặc dù đã rất cố gắng tuy nhiên luận văn này không tránh khỏi những thiếu sót Rất mong được sự đóng góp ý kiến của thầy cô giáo, bạn bè đồng nghiệp để luận văn của tác giả được hoàn thiện hơn
Xin chân thành cám ơn!
Hà Nội, ngày15 tháng 01 năm 2012
Tác giả
Phùng Toàn Thắng
Trang 4LỜI CAM ĐOAN
Tôi xin cam đoan những gì viết trong luận văn này là do tìm hiểu, nghiên cứu của bản thân cùng với sự hướng dẫn chỉ bảo tận tình của PGS.TS Phí Hòa
Bình và Ts Phạm Ngọc Nam Mọi kết quả nghiên cứu cũng như ý tưởng của tác
giả khác nếu có đều được trích dẫn cụ thể
Luận văn này cho đến nay chưa được ai bảo vệ tại bất kỳ một hội đồng nào cũng như chưa từng được công bố trên bất kỳ phương tiện thông tin nào
Tôi xin hoàn toàn chịu trách nhiệm về những lời cam đoan trên
Hà Nội, ngày 15 tháng 01 năm 2012
Tác giả
Phùng Toàn Thắng
Trang 5MỤC LỤC
LỜI CẢM ƠN 1
LỜI CAM ĐOAN 2
DANH MỤC CÁC CHỮ VIẾT TẮT 7
DANH MỤC CÁC BẢNG BIỂU 8
DANH MỤC CÁC HÌNH VẼ 9
MỞ ĐẦU 11
1 LÝ DO CHỌN ĐỀ TÀI 11
1.1 Xuất phát từ định hướng cơ bản về mục tiêu đào tạo 11
1.2 Xuất phát từ nhiệm vụ, đặc điểm đặc trưng của môn học 12
1.3 Xuất phát từ thực trạng dạy học môn điện tử số tại trường đại học công nghiệp Việt-Hung 12
2 MỤC ĐÍCH, NHIỆM VỤ CỦA ĐỀ TÀI 12
2.1 Mục đích 12
2.2 Nhiệm vụ của đề tài 12
3 GIẢ THIẾT KHOA HỌC 13
4 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU 13
4.1 Đối tượng nghiên cứu 13
4.2 Phạm vi nghiên cứu 13
5 PHƯƠNG PHÁP NGHIÊN CỨU 13
6 CẤU TRÚC CỦA LUẬN VĂN 14
CHƯƠNG 1: CÔNG NGHỆ FPGA 15
1.1 GIỚI THIỆU VỀ CÔNG NGHỆ FPGA 15
1.1.1 Sự phát triển của các vi mạch lập trình được 15
1.1.2 Cấu trúc cơ bản của FPGA 18
1.1.2.1.Cấu trúc tổng quát của FPGA 19
1.1.2.2 Mô tả chức năng logic 19
Trang 61.1.3 Một số công nghệ lập trình sử dụng trong công nghệ FPGA 25
1.1.3.1 Cấu trúc tế bào SRAM 25
1.1.3.2 Cấu trúc Antifuse 26
1.2 QÚA TRÌNH THIẾT KẾ CƠ BẢN TRÊN FPGA VÀ ỨNG DỤNG CỦA FPGA 26
1.2.1 Giới thiệu về quá trình thiết kế 26
1.2.2 Ứng dụng của FPGA 27
1.3 GIỚI THIỆU VỀ BOARD SPANRTN 3E CỦA XILINX 29
1.4 KẾT LUẬN CHƯƠNG 1 34
CHƯƠNG 2: NGÔN NGỮ MÔ TẢ PHẦN CỨNG VHDL 35
2.1 GIỚI THIỆU VỀ VHDL 35
2.2 CÁC THUẬT NGỮ CỦA VHDL 36
2.3 CẤU TRÚC CỦA MỘT CHƯƠNG TRÌNH VHDL 36
2.4 CÁC ĐƠN VỊ THIẾT KẾ TRONG VHDL 38
2.4.1.Gói (Package) 38
2.4.2 Thực thể (Entity) 40
2.4.3 Kiến trúc (ARCHITECTURE) 41
2.4.3.1 Mô tả kiến trúc bằng hành vi 42
2.4.3.2 Mô tả kiến trúc bằng cấu trúc 43
2.4.4 Cấu hình (CONFIGURATION) 45
2.5 CÁC KIỂU DỮ LIỆU TRONG VHDL 46
2.5.1 Các đối tượng dữ liệu 46
2.5.1.1 Hằng 46
Trang 72.7 CÁC LỆNH TUẦN TỰ TRONG VHDL 49
2.7.1 Câu lệnh gán cho biến 49
2.7.2 Câu lệnh gán tín hiệu 50
2.7.3 Câu lệnh if 50
2.7.4 Câu lệnh Case 51
2.7.5 Các lệnh vòng lặp 51
2.7.6 Câu lệnh Null 52
2.8 CÁC LỆNH SONG SONG TRONG VHDL 52
2.8.1 Các quá trình Process 53
2.8.2 Các phép gán tín hiệu song song 54
2.8.3 Phép gán tín hiệu có điều kiện 55
2.8.4 Phép gán tín hiệu theo lựa chọn 56
2.8.5 Khối 57
2.9 Kết luận chương 2 58
CHƯƠNG 3: ỨNG DỤNG CÔNG NGHỆ FPGA VÀO GIẢNG DẠY MÔN ĐIỆN TỬ SỐ TẠI TRƯỜNG ĐHCN VIỆT-HUNG 59
3.1 VÀI NÉT VỀ ĐẠI HỌC CÔNG NGHIỆP VIỆT HUNG 59
3.1.1 Quá trình hình thành và phát triển 59
3.1.2 Nhiệm vụ của nhà trường 60
3.1.3 Cơ cấu tổ chức 61
3.1.4 Về quy mô và loại hình đào tạo 62
3.1.5 Đội ngũ cán bộ, giảng viên, công nhân viên 65
3.1.6 Cơ sở vật chất 65
3.1.7 Lịch sử hình thành ngành công nghệ kỹ thuật điện tử 66
3.2 THỰC TRẠNG GIẢNG DẠY MÔN ĐIỆN TỬ SỐ TẠI TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP VIỆT-HUNG 67
3.2.1 Chương trình đào tạo 67
3.2.2 Giảng viên 74
Trang 83.2.4 Đánh giá chương trình 76
3.2.5 Kết luận chung 76
3.3 ỨNG DỤNG CÔNG NGHỆ FPGA GIẢNG DẠY THỰC HÀNH MÔN ĐIỆN TỬ SỐ TẠI TRƯỜNG ĐẠI HỌC CN VIỆT – HUNG 77
3.3.1 Xây dựng chương đào tạo thực hành 77
3.3.2 Thực nghiệm sư phạm 85
3.3.2.1 Mục đích thực nghiệm 85
3.3.2.2 Nội dung thực nghiệm 85
3.3.2.3 Kế hoạch thực nghiệm 97
3.3.2.4 Kết quả thực nghiệm 97
KẾT LUẬN VÀ KIẾN NGHỊ 105
Kết luận 105
Một số kiến nghị: 105
TÀI LIỆU THAM KHẢO 107
PHỤ LỤC 108
Trang 9DANH MỤC CÁC CHỮ VIẾT TẮT
6 EPROM Erasable Programmable Read Only Memory
7 EEPROM Electrically Erasable Programmable Read Only Memory
9 IEEE Institute of Electrical and Electronic Engineers
15 FPGA Field-Programmable Gate Array
16 FLEX Flexible Logic Element Matrix
21 TEGAS Test Generation and Simulation
23 VHSIC Very High Speed Itergrated Circuit
Trang 10DANH MỤC CÁC BẢNG BIỂU
Bảng 1.1: Sự kết nối của VGA tới Spartan 3E FPGA
Bảng 1.2: Bảng mã màu
Bảng 1.3: Sự kết nối của PS/2 với Spartan 3 FPGA
Bảng 3.1: Quy mô đào tạo từ năm 2007 đến 2010
Bảng 3.2: Quy mô đào tạo được giao năm 2011
Bảng 3.11: Mức độ hài lòng của sinh viên khi thực hành bài 1Bảng 3.12: Điểm kiểm tra sinh viên thực hành bài 6
Bảng 3.13: Mức độ hài lòng của sinh thực hành trên bài 6
Bảng 3.14: Điểm kiểm tra sinh viên khi thực hành bài 4
Bảng 3.15: Mức độ hài lòng của sinh viên khi thực hành bài 4 Bảng 3.16: Điểm kiểm tra sinh viên thực hành bài 9
Bảng 3.17: Mức độ hài lòng của sinh viên thực hành bài 9
Trang 11DANH MỤC CÁC HÌNH VẼ
Hình 1.1: Cấu trúc của PAL
Hình 1.2: Cấu trúc của PLA
Hình 1.3: Cấu trúc của CPLD
Hình 1.4: Cấu trúc chung của FPGA
Hình 1.5: Tạo hàm 3 đầu vào bằng MUX
Hình 1.6: Bảng tìm kiếm LUT 3 đầu vào
Hình 1.7: Tạo hàm 3 đầu vào bằng LUT
Hình 1.8: Cấu trúc của môt LC trong FPGA của Xilinx
Hình 1.9: CLB gồm có 4 Slice của FPGA
Hình 1.10: Ma trận kết nối dùng Transitor truyền trong FPGA Hình 1.11: Các loại kết nối trong FPGA
1.12 Một số công nghệ lập trình sử dụng trong công nghệ FPGA Hình 1.13: Cấu trúc tế bào SRAM của Xilinx
Hình 1.14: Cấu trúc tế bào OTP sử dụng Antifuse
Hình 1.15: Quá trình thiết kế trên FPGA
Hình 1.16: Mặt trên của board Spartan 3E
Hình 1.17: Bốn công tắc trượt có điện trở Pullup
Hình 1.18: Bốn công tắc nút ấn và công tắc xoay
Hình 1.19: Dạng công tắc nút ấn có điện trở Pull-Down
Hình 1.20: Hai chuyển mạch xoay có điện trở Pullup
Hình 1.21: Tám led đơn và các chân được gán
Hình 1.22: Cổng hiển thị VGA 3 bit , 8 màu
Hình 1.23: Cổng RS232
Hình 1.24: PS/2DIN Connector
Hình 1.25: Sơ đồ chân LCD 16x2
Hình 2.1: Cấu trúc chung của chương trình VHDL
Hình 2.2: Quan hệ giữa các đơn vị thiết kế
Trang 12Hình 2.5: Sơ đồ của trigo RS
Hình 3.1: Mô hình thực hiện quá trình dạy học
Hình 3.2:Kết quả phỏng vấn giảng viên trong khoa Điện Điện tử- -CNTT Hình 3.3: Kết quả điều tra sinh viên về chuẩn bị cho bài kiểm tra
Hình 3.4: Kết quả học tập của sinh viên thực hành bài 1
Hình 3.5: Mức độ hài lòng của sinh viên thực hành bài 1
Hình 3.6: Kết quả học tập của sinh viên thực hành bài 6
Hình 3.7: Mức độ hài lòng của sinh viên khi thực hành bài 6
Hình 3.8: Kết quả học tập của sinh viên thực hành bài 4
Hình 3.9: Mức độ hài lòng của sinh viên khi thực hành bài 4
Hình 3.10: Kết quả học tập của sinh viên thực hành bài 9
Hình 3.11: Mức độ hài lòng của sinh viên khi ứng bài 9
Trang 13MỞ ĐẦU
1 LÝ DO CHỌN ĐỀ TÀI
1.1 Xuất phát từ định hướng cơ bản về mục tiêu đào tạo
Đào tạo nguồn nhân lực có tay nghề cao là một khâu rất quan trọng trong sự nghiệp công nghiệphóa, hiện đại hóa của bất cứ quốc gia nào
Để thích ứng với sự thay đổi của nền kinh tế trong giai đoạn mới, công tác đào tạo nguồn nhân lực cần được mềm hóa, đa dạng hóa nhằm phù hợp với nhu cầu của thị trường lao động và nhu cầu của người học
Đặc biệt trong điều kiện nước ta hiện nay, nền kinh tế đang trên đà phát triển nhiều cơ hội và cũng nhiều thách thức Nền công ghiệp của nước nhà còn thiên về ngia công và lắp ráp, các lĩnh vực công nghệ cao đang hình thành và sẽ phát triển; việc định hướng đào tạo theo quan điểm nào đó là một việc làm vô cùng cần thiết Việc đưa những công nghệ mới vào các chương trình đào tạo nhằm nâng cao chất lượng nguồn nhân lực, giúp người học tìm kiếm công việc sau đào tạo một cách tốt hơn hoặc để nâng cao năng suất lao động đang là nhu cầu bức bách của toàn xã hội
-Xác định được yêu cầu đó trong chiến lược giá dục 2001 2010 đã khẳng định cần Tạo bước chuyển biến về chất lượng giáo dục theo hướng tiếp cận trình “
độ tiên tiến của thế giới, phù hợp với thực tiễn ở Việt Nam, phục vụ thiết thực cho
sự phát triển kinh tế xã hội của đất nước; nâng cao chất lượng đào tạo nguồn nhân lực góp phần nâng cao sức cạnh tranh của nền kinh tế; Đổi mới mục tiêu, nội dung, phương pháp chương trình giáo dục các bậc học các trình độ đào tạo…”.,
-Để đáp ứng nhu cầu trên, đã có nhiều trường cao đẳng, đại học trong cả nước
đã triển khai các công nghệ mới trong chương trình đào tạo của mình và giảng dạy cho sinh viên Tuy nhiên tại trường đại học công nghiệp Việt- Hung việc đưa các công nghệ mới vào các chương trình đạo tạo còn rất hạn chế, công nghệ FPGA gần như chưa được đề cập tới
Trang 141.2 Xuất phát từ nhiệm vụ, đặc điểm đặc trưng của môn học
Nhiệm vụ của môn học Điện tử số là trang bị cho sinh viên những hiểu biết
về khái niệm tín hiệu số, các bài toán về mạch tổ hợp, mạch logic dãy từ đó sinh viên biết cách ứng dụng, lựa chọn, lắp ráp tạo ra các mạch số cơ bản
Đặc trưng của môn học Điện tử số là môn học có tính tư duy trừu tượng cao,
có tính ứng dụng cao đối với người học chuyên nghành kỹ thuật điện tử Điều này đòi hỏi giảng viên, sinh viên phải nghiên cứu tìm tòi để có thể vận dụng các kiến thức đã học vào thực tiễn có hiệu quả
1.3 Xuất phát từ thực trạng dạy học môn điện tử số tại trường đại học công nghiệp Việt-Hung
g
Là một iảng viên giảng dạy môn học Điện tử số tại trường Đại học công nghiệp Việt-Hung, tác giả nhận thấy: Phần học lý thuyết thường tách rời với thực hành, trang thiết bị thực hành còn hạn chế, các bài thực hành chỉ tiến hành trên các
IC cỡ nhỏ cho các bài tập Việc triển khai thiết kế các ứng dụng từ IC cỡ nhỏ đã gặp nhiều khó khăn, từ đó không gây hứng thú cho người học, làm mất dần đi tính tích cực, chủ động và sáng tạo trong học tập, nghiên cứu của sinh viên
Từ những tồn tại nêu trên, được sự đồng ý của PGS.TS Phí Hòa Bình và
Ts Phạm Ngọc Nam, tác giả chọn đề tài “Công nghệ FPGA và ứng dụng giảng dạy môn điện tử số tại trường Đại học công nghiệp Việt-Hung(FPGA and its
applications in teaching digital electronics in Viet-Hung industrial university)”
2 MỤC ĐÍCH, NHIỆM VỤ CỦA ĐỀ TÀI
2.1 Mục đích
Ứng dụng cộng nghệ FPGA và kiến thức ngôn ngữ mô tả phần cứng VHDL
để xây ựng bài giảng thực hành ứng dụng công nghệ FPGAd , nhằm nâng cao
Trang 15- Nghiên cứu lý thuyết về công nghệ FPGA, ngôn ngữ mô tả phần cứng VHDL
- Nghiên cứu thực trạng giảng dạy môn học điện tử số tại trường
- Đề xuất một số giải pháp để đổi mới việc biên soạn chương trình và thực hiện giảng dạy theo hướng ứng dụng công nghệ mới FPGA
- Xây dựng bài giảng thực hành ứng dụng công nghệ FPGA của Xinlinxcho
hệ đào cao đẳng và đại học tại trường ĐHCN Việt-Hung
- Tiến hà h thực nghiệm một số bài học ứng dụng côn nghệ FPGAn g
3 GIẢ THIẾT KHOA HỌC
Trong những năm qua việc giảng dạy môn điện tử số còn nhiều hạn chế, tình trạng thiếu những trang thiết bị, nhất là các công nghệ mới như FPGA đã chưa được đưa vào nghiên cứu, giảng dạy tại trường nhằm phát huy tích tích cực chủ động củangười học trong học tập, nghiên cứu Việc triển khai các ứng dụng từ các linh kiện
cỡ nhỏ còn có nhiều hạn chế, gặp nhiều khó khăn khi triển khai nhất là các hệ thống quy mô lớn Vì vậy việc nghiên cứu đề tài đề xuất các giải pháp hợp lý sẽ góp phần nâng cao chất lượng dạy học môn điện tử số làm tiền đề cho sinh viên lĩnh hội tốt nhất những môn học thuộc chuyên ngành điện tử tại trường ĐHCN Việt-Hung
4 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU
4.1 Đối tượng nghiên cứu
Ứng dụng công nghệ FPGA trong giảng dạy môn điện tử số tại trường ĐHCN Việt – Hung
4.2 Phạm vi nghiên cứu
Đề tài tập trung nghiên cứu về công nghệ FPGA êu ra thực trạng giảng dạy , nmôn điện tử số, đề xuất một số giải pháp và ứng dụng công nghệ FPGA vào giảng dạy trong môn học tại tr ng ĐHCN Việtườ -Hung
5 PHƯƠNG PHÁP NGHIÊN CỨU
Phương pháp phân tích tổng hợp nghiên cứu lý thuyết Nghiên cứu dựa
Trang 16giới Nhằm phân tích, tổng hợp, hệ thố g hóa, khái quát hóa các tri thức đãn có trong tài liệu, đưa ra cơ sở lý luận của các vấn đề nghiên cứu
Phương pháp điều tra khảo sát: Là phương pháp khảo sát một số lượng
lớn các đối tượng nghiên cứu vào một hay nhiều thời điểm Điều tra khảo sát nhằm thu thập rộng rãi các số liệu, hiện tượng để từ đó phát hiện các vấn đề cần giải quyết, xác định tính phổ biến, nguyên nhân chuẩn bị c o các nghiên cứu tiếp theo h
Phương pháp lấy ý kiến chuyên gia: Là phương pháp thông tin khoa học,
nhận định, đánh giá một sản phẩm khoa học bằng cách sử dụng trí tuệ một đội ngũ chuyên gia giáo dục có trình độc cao, ý kiến từng người bổ sung lẫn nhau, kiểm tra lẫn nhau cho người nghiên cứu một ý kiến đa số, khách quan về một vấn đề
Phương pháp thực nghiệm sư phạm: Thực nghiệm sư phạm là phương
pháp thu nhận thông tin về sự thay đổi số lượng, chất lượng trong nhận thức và hành vi của các đối tượng giáo dục do người nghiên cứu tác động bằng một tác nhân điều khiển và đã được kiểm tra
Nghiên cứu chủ động tác động vào đối tượng và qúa trình diễn biến sự kiện
mà đối tượng tham gia, để hướng dẫn sự phát triển của chúng theo mục tiêu dự kiến của mình
6 CẤU TRÚC CỦA LUẬN VĂN
Ngoài phần mở đầu và kết luận, nội dung chính thể hiện ở 3 chương:
Chương 1: Công nghệ FPGA
Chương 2: Ngôn ngữ mô tả phần cứng VHDL
Chương 3: Ứng dụng công nghệ FPGA vào giảng dạy môn điện tử số tại trường ĐHCN Việt –Hung
Ngoài ra còn thêm phần tài liệu tham khảo và phụ lục
Trang 17CHƯƠNG 1: CÔNG NGHỆ FPGA
Chương này tác giả trình bày về công nghệ FPGA, giới thiệu lịch sử phát triển của các vi mạch lập trình được, cấu trúc của công nghệ FPGA và mô tả chức năng của FPGA Tác giả trình bày các khối cơ bản Board SPANRTN 3E của Xinlinx sẽ được ứng dụng để xây dựng cho bài thực hành môn điện tử số tại trường đại học CN Việt-Hung
1.1 GIỚI THIỆU VỀ CÔNG NGHỆ FPGA
Công nghệ chế tạo mạch vi điện tử ngày nay đang có một sự thay đổi lớn: Từ một mạch tính hợp vi điện tử với cơ sở thiết bị công nghệ tiên tiến chế tạo ra với số lượng lớn chuyển dần sang các mạch chuyên dụng sản xuất với lô nhỏ tại các cơ sở
có điều kiện công nghệ chưa phát triển Sự thay đổi đó được hình thành nhờ các công cụ thiết kế tự động Động lực chính của quá trình thay đổi này là giảm thời gian thiết kế, chế tạo vi mạch và tăng tính linh hoạt cho ngừời thiết kế lập trình với những ứng dụng riêng biệt
FPGA (Field-Programmable Gate Array), là mạch tích hợp cỡ lớn trong đó cho phép người lập trình thay đổi các thiết kế của mình mà không phải sử dụng bất
kỳ một công cụ chế tạo mạch tích hợp nào FPGA là công nghệ tiên tiến nhất hiện nay của ngành công nghệ chế tạo IC (Integrated Circuit) chuyên biệt
1.1.1 Sự phát triển của các vi mạch lập trình được
Các vi mạch lập trình được đóng vai trò quan trọng, lâu dài trong thiết kế các
vi mạch với những ứng dụng riêng biệt trong ngành điện tử viễ- n thông Chúng là các chíp đa dụng có thể được cấu hình theo nhiều cách cho ứng dụng Các loại vi mạch lập trình đơn giản đầu tiên được sử dụng rộng rãi là PROM (Programmable Read Only Memory) PROM là thiết bị lập trình chỉ được một lần gồm một dãy các
ô nhớ chỉ đọc
Hai biến thể của PROM là EPROM (Erasable Programmable Read Only Memory) và EEPROM (Electrically Erasable Programmable Read Only Memory) chúng điều có chung một ưu điểm là có thể xoá và lập trình nhiều lần
Trang 18Một loại vi mạch lập trình được khác được thiết kế đặc biệt để thể hiện các mạch lôgíc là PLD (Programmable Logic Device )
Một PLD thông thường gồm một dãy các cổng AND được nối với một dãy các cổng OR Có 2 loại cơ bản nhất của PLD là PAL (Programmable Array Logic), PLA (Programmable Logic Array)
- PAL gồm một khối các cổng AND lập trình được nối đến một khối các cổng OR cố định [7]
Hình 1.1: Cấu trúc của PAL
Theo hình 1.1 các chân đầu vào được nối vào các đường theo chiều đứng, các đường nằm ngang được nối với các cổng AND OR Cấu trúc này có các mắt – lưới của các đường nối theo chiều ngang và chiều đứng Tại mỗi điểm giao nhau là một cầu chì, với sự trợ giúp của các công cụ phần mềm, người thiết kế có thể lựa chọn mối nối nào không được nối thì huỷ cầu chì Điều này được thực hiện bởi một
bộ nạp chương trình
- PLA cũng có cấu trúc giống PAL nhưng tất cả các kết nối là lập trình được
Trang 19Hình 1.2: Cấu trúc của PLA
.Cả hai loại PAL và PLA cho phép thực hiện các mạch lôgíc tốc độ cao, tuy nhiên cấu trúc đơn giản của chúng chỉ cho phép thực hiện các mạch lôgíc cỡ nhỏ
Để thực thi các mạch yêu cầu nhiều đầu vào và nhiều đầu ra có nhiều chíp tinh vi hơn gọi là thiết bị lôgíc lập trình phức hợp CPLD (Complex Programmable Logic Devices)
CPLD là kết hợp vài PLA vào trong một IC đơn để tạo ra các thiết bị logic phức hợp lập trình được [7]
Hình 1.3: Cấu trúc của CPLD
Trang 20Các CPLDs cực kỳ thích hợp trong việc mô tả các cổng logic phức tạp với tốc độ lớn 200 Mhz Khuôn mẫu thời gian cho CPLD rất dễ tính toán, bởi thế trước khi bắt đầu thiết kế chúng ta có thể tính toán các tốc độ từ đầu vào đến đầu ra của mình dựa trên khuôn mẫu này CPLDs đưa ra cách đơn giản nhất để thực hiện một thiết kế, một thiết kế có thể được mô tả bởi các sơ đồ hoặc bằng một ngôn ngữ mô
tả phần cứng, đơn giản khi sử dụng các công cụ phát triển để tối ưu hoá, nạp và mô phỏng thiết kế Các công cụ thiết kế tạo ra một file chương trình mà file này được dùng để đưa các chuẩn logic vào trong một chip CPLD cùng với chức năng mong muốn Giả sử nếu cần có một một sự thay đổi về thiết kế, chúng ta có thể đưa sự thay đổi thiết kế đó vào trong công cụ phát triển CPLD và thực thi trên nó sau đó có thể kiểm tra lại ngay thiết kế CPLD có mức tích hợp rất cao và được đóng gói trong một khuôn dạng rất nhỏ Điều này đã cung cấp một giải pháp tuyệt vời cho những người thiết kế cần sản phẩm của mình được đóng gói nhỏ gọn với diện tích bo mạch
bị giới hạn về khoảng không
1.1.2 Cấu trúc cơ bản của FPGA
FPGA được công ty Xilinx giới thiệu lần đầu vào năm 1985 nhằm tạo ra một thiết bị lập trình có mật độ tích hợp cao Kể từ đó cho đến nay có rất nhiều các hãng thiết kế và cung cấp các loại FPGA như Xilinx, Altera, Actel, Plus Logic…
Trang 211.1.2.1.Cấu trúc tổng quát của FPGA
Hình 1.4: Cấu trúc chung của FPGA
1.1.2.2 Mô tả chức năng logic
FPGA bao gồm một mảng các CLB(Configurable Logic Blocks) được đặt trong một ma trận của các kênh kết nối( Programmable Iterconnects) Đầu vào và đầu ra của các tín hiệu nhận được thông qua một sự thiết lập của các khối I/O Blocks xung quanh CLB và các kênh kết nối
- Các khối logic (logic block): Kiến trúc của khối logic có thể được thiết kế
theo nhiều cách khác nhau CLB có thể chỉ là các cổng NAND 2 đầu vào, có thể nó
là một bộ dồn kênh (multiplexer), hay các bảng tìm kiếm LUT (Luck-Up Table) Trong một số loại FPGA các khối logic có thể có cấu trúc hoàn toàn giống như PAL Các khối logic chứa một số loại flip flop để hỗ trợ cho việc thực hiện các -mạch tuần tự
CLB được sử dụng để thực hiện hầu hết các chức năng logic trong FPGA
Cấu trúc củacác CLB được trình bày như sau:
hình 1.5 + Cấu trúc CLB là một bộ dồn kênh (multiplexer) [8]
Trang 22Hình 1.5: Tạo hàm 3 đầu vào bằng MUX
-+ Cấu trúc CLB là một bảng tìm kiếm LUT (Luck Up Table) hay được dùng trong FPGA, hình 1.6 mô tả LUT với 3 đầu vào[8]
Hình 1.6: Bảng tìm kiếm LUT 3 đầu vào
LUT thực hiện chức năng tạo hàm 3 đầu vào được mô tả như hình 1.7
CLB
Trang 23Hình 1.7 : Tạo hàm 3 đầu vào bằng LUT
Ví dụ FPGA của Xilinx CLB gồm các : logic cell(LC), FPGA của hãng Altera gồm các logic element (LE), tuy nhiên LC và LE không khác nhau nhiều
Mỗi logic celllà một LUT 4 đầu vào được mô tả như hình 1.8
Mỗi LC chứa 1 flip flop dùng làm thanh ghi (lưu trữ) các đầu ra của bộ tạo hàm, flip-flop và bộ tạo hàm có thể được sử dụng độc lập hờ đầu vào e thông qua n
-bộ chọn đường MUX, Flip Flop được đồng -bộ bởi xung clock, xung nhịp cho phép clock enable và tín hiệu điều khiển set/reset
-Hình 1.8: Cấu trúc của môt LC trong FPGA của Xilinx
Trang 24Bộ tạo chức năng của FPGA thực hiện như LUT có bốn đầu vào Mỗi một LUT có thể cung cấp một RAM 16x1bit đồng bộ Hơn nữa hai LUT trong một Slice
có thể được kết hợp để tạo RAM 16x2 bit hoặc 32x1 bit đồng bộ
Hình 1.9: CLB gồm có 4 Slice của FPGA
- Các nguồn tài nguyên kết nối: Các nguồn kết nối trong FPGA được gọi là
kiến trúc routing (routing architecture) Kiến trúc routing gồm các đoạn dây nối và các chuyển mạch lập trình được Các chuyển mạch lập trình được có thể có nhiều cấu tạo khác nhau như : Transitor truyền (pass transitor) được điều khiển bởi- cell SRAM, cầu chì nghịch (anti - fuse), EPROM transitor và EEPROM transitor
Các đường dây ngang và dọc, đơn và đôi giao nhau trong một một ma trận chuyển mạch chương trình Mỗi Ma trận kết nối gồm chương trình có thể lập trình được thông qua transistor sử dụng để thiết lập kết nối giữa các đường như hình 1.10
Trang 25+ Kết nối giữa các CLB : Các kết nối giữa các CLB thông qua các ma trận kết nối
để nối các CLB với nhau chạy dọc theo mỗi hàng và mỗi cột của mảng CLB Các cách kết nối với nhau được mô tả trong hình 1.11
Các đường dây nối đơn:
Các đường chiều dài đơn cung cấp kết nối thông một cách mềm dẻo nhất và đem lại sự định đường nhanh giữa các khối kề cận Có 8 đường đơn dài dọc và 8 đường đơn dài ngang được kết hợp với từng CLB Nó được kết nối với ma trận chuyển mạch mà ma trận chuyển mạch này thì được định vị trong từng hàng và từng cột của CLB(hình 1.11 b)
Các đường dây nối đôi:
có Đường dài đôi chứa một lưới các đoạn kim loại độ dài bằng hai lần dây đơn Chúng chạy qua hai CLB trước khi vào một ma trận chuyển mạch Đường đôi được gộp trong một cặp xoắn với ma trận chuyển mạch và được đảo từng đường đi qua một ma trận chuyển mạch trong từng hàng, cột của CLB( hình 1.11 c)
Có 4 đường đôi ngang và 4 đường đôi dọc được kết nối với từng CLB.Các đường này cung cấp sự định đường tín hiệu nhanh hơn vượt khoảng cách trung gian, trong khi duy trì sự định đường mềm dẻo
Các đường dây nối dài:
Các đường dây nối dài có dạng lưới gồm các đoạn dây dẫn kim loại kết nối bên trong theo chiều ngang hoặc chiều dọc của mảng Đường dây dài dành cho các đầu ra cao, các mạng tín hiệu đồng bộ thời gian hoặc các mạng được phân bố với khoảng cách dài ( hình 1.11 a)
+ Kết nối giữa các IOB: Các kết nối ở IOB có dạng một vòng chạy xung quanh bên
ngoài của mảng CLB Kết nối I/O với các kênh kết nối CLB bao gồm 8 đường đôi
và 4 đường đơn, đáp ứng hoàn toàn khả năng trao đổi chân, thiết kế lại mà không ảnh hưởng tới vẽ mạch
Trang 26Hình 1.11: Các loại kết nối trong FPGA
1.1.2.3 Các khối vào ra(IOB)
Người sử dụng có thể đặt cấu hình các khối vào ra IOB để tạo giao diện giữa các chân đóng vỏ bên ngoài với chức năng logic bên trong Mỗi IOB điều khiển một chân đóng vỏ và có thể đặt cấu hình cho đầu I/O hoặc tín hiệu 2 chiều Hình 1.12 minh hoạ chức năng đơn giản của IOB
Tín hiệu vào IOB có thể được đưa vào trực tiếp từ các kết nối(thông qua I1 I2 ở hình 1.12) hoặc từ đầu vào thanh ghi Đầu vào thanh ghi có thể lập trình như
Trang 27Hình 1.12: IOB của FPGA
1.1.3 Một số công nghệ lập trình sử ụng trong công nghệ FPGAd
1.1.3.1 Cấu trúc tế bào SRAM
- SRAM xác định kết nối
- SRAM định nghĩa logic trong bảng tìm kiếm LUT
- Có thể lập trình lại, dữ liệu bị mất khi mất nguồn nuôi
Trên hình 1.13 tế bào SRAM là sáu kết hợp khác nhau của bốn yếu tố đầu vào xác định giá trị của bit SRAM đầu ra được sử dụng để làm cho các kết nối
EC
Q CLK
EC
D
Delay
Package pad
INPUT BUFFER
OUTPUT DRIVER
y
Trang 28Hình 1.13: Cấu trúc tế bào SRAM của Xilinx
1.1.3.2 Cấu trúc Antifuse
- Cấu trúc Antifuse là dạng cầu trì ngược giống như một công tắc
- Lập trình một lần, không mất dữ liệu khi mất nguồn nuôi
Hình 1.14: Cấu trúc tế bào OTP sử dụng Antifuse
Hnhf 1.14 mô tả tế bào logic OTP(One – time programmable)sử dụng
Antifuse Các tế bào OTP tương tự như trong PLDs với cổng logic và flipflops
Trang 29bắt đầu ch thiết kế là mạch lôgic ban đầu Bước này cần một sơ đồ biểu diễn mạch, o
hay một mô tả VHDL hoặc một đặc tả các biểu thức Boolean Từ các đầu vào như vậy, chúng được chuyển thành dạng chuẩn như là các biểu thức Boolean Các biểu thức Boolean này được xử lý bằng công cụ tối ưu lôgíc (rút gọn các biểu thức), mục đích của việc này là để tối ưu về diện tích và tốc độ của mạch thiết kế Sau khi đã được tối ưu, các biểu thức Boolean được chuyển tới mạch lôgíc block của FPGA thông qua chương trình ánh xạ công nghệ (technology mapping), bộ ánh xạ sẽ tối thiểu số khối được dùng và giảm đường dẫn để tối ưu về giữ chậm Sau khi ánh xạ mạch vào các logic block thì cần phải quyết định đặt mỗi khối ở đâu, công việc này
do chương trình Placement giải quyết Bước cuối cùng trong hệ thống CAD là nối kết do phần Rounting thực hiện, chúng ấn định các đoạn dây FPGA và chọn các chuyển mạch có thể lập trình phù hợp với các kết nối trong logic block Sau khi thực hiện xong bước này, kết quả của CAD sẽ được nạp vào đơn vị lập trình tạo ra chip FPGA cuối cùng
3 Thay thế các chíp tích hợp nhỏ cho mạch ngẫu nhiên: Các mạch trong các sản phẩm thương mại thường chứa nhiều chíp SSI (Small Scale Integrated) Trong nhiều trường hợp các chip SSI này có thể được thay thế bằng FPGA và kết quả là giảm diện tích của bo mạch đi đáng kể
4 Chế tạo mẫu: FPGA rất lý tưởng cho các ứng dụng tạo sản phẩm mẫu Giá thành thực hiện thấp, thời gian ngắn
Trang 305 Máy tính dựa trên FPGA: Một loại máy tính mới có thể được chế tạo với các FPGA có thể tái lập trình ngay trên mạch FPGA Các máy này có một bo mạch chứa các FPGA mà các chân nối với các chip lân cận giống như thông thường.
Trang 311.3 GIỚI THIỆU VỀ BOARD SPANRTN 3 CỦA XILINXE
Hình 1.16: Mặt trên của board Spartan 3E
Thực tế có nhiều loạiFPGA trên thị trường, tác giả đã chọn FPGA của Xilinx, cụ thể là Board Spanrtn-3E làm thực nghiệm của luận văn
Một số phần tử của Board được giới thiệu như sau:
1 Xilinx XC3S500E FPGA
- Gồm 320 chân
- 10.000 tế bào lôgic
- 232 chân tín hiệu vào ra
2 Công tắc trượt(Slide Switches)
Board Spanrtn-3E gồm 4 công tắc trượtmô tả như hình 1.17:
Trang 32Hình 1.17: Bốn công tắc trượt có điện trở Pullup
3 Công tắc nút bấm
Hình 1.18: Bốn công tắc nút ấn và công tắc xoay
- Năm công tắc nút ấn (BTN_NORTH, BTN_EAST, BTN_SOUTH, BTN_WEST, ROT_CENTER ) có điện trở Pull Down ở chân đầu vào của FPGA.-
Hình 1.19: Dạng công tắc nút ấn có điện trở Pull-Down
- Hai công tắc xoay (ROT_A, ROT_B) có dạng như hình 1.20
Trang 33Hình 1.20: Hai chuyển mạch xoay có điện trở Pullup
4 Tám LED đơn Katot chung, Anode tích cực ở mức thấp
Hình 1.21: Tám led đơn và các chân được gán
5 VGA
Cổng hiển thị VGA 3 bit , 8 màu như hình 1.22
Trang 34Bảng 1.1 Sự kết nối của VGA tới Spartan 3: E FPGA Signal
Red (R) Green (G) Blue(B) Horizontal
Sync (HS)
Vertical Sync (VS)
Bảng 1.2: Bảng mã màu
6 Hai cổng RS232
Hai cổng nối tiếp có chín chân như hình 1.23
Trang 35Hình 1.24: PS/2DIN Connector
Bảng 1.3 Sự kết nối của PS/2 với Spartan 3 FPGA:
Trang 36Ngoài ra Board Spartan-3E còn có nhiều phần mạch với những chức năng khác nhau như: Phần nguồ các đèn chỉ thị nguồnn, …
- Nếu được đưa vào giảng dạy trong các trường cao đẳng, đại học sẽ nâng cao được chất lượng đào tạo, năng lực nghiên công nghệ cho sinh viên
Trang 37CHƯƠNG 2: NGÔN NGỮ MÔ TẢ PHẦN CỨNG VHDL
Chương này tác giả giới thiệu về ngôn ngữ VHDL, trình bày các đơn vị thiết
kế cơ bản của ngôn ngữ VHDL, Các kiểu dữ liệu, phép toán và các câu lệnh trong ngôn ngữ VHDL
2.1 GIỚI THIỆU VỀ VHDL
VHDL ( VHSIC- Hardware Description Language là một ngôn ngữ mô tả )
hệ thống điện tử số, mạch tích hợp tốc độ cao Nó được dùng để mô phỏng phần cứng được phát triển dùng trong chương trình VHSIC (Very High Speed Itergrated Circuit) của bộ quốc phòng mỹ năm (1980) Mục tiêu của việc phát triển VHDL là
có được một ngôn ngữ phần cứng tiêu chuẩn, ho phép phát triển, thử nghiệm các c
hệ thống số nhanh hơn cũng như dễ dàng cho phép các hệ thống đó vào những ứng dụng trong thực tế Được quy định trong chuẩn IEEE 1076 từ năm 1983 [6]
VHDL được thiết kế để cải thiện một số vấn đề trong quá trình thiết kế:
Thứ nhất, nó cho phép mô tả cấu trúc của một thiết kế, làm thế nào để chia thành hai phần (sub designs) và làm thế nào để hai phần đó được kết nối lại.-
Thứ hai, nó cho phép các đặc điểm kỹ thuật của chức năng các thiết kế được
sử dụng giống như chuẩn ngôn ngữ lập trình
Thứ ba, như một kết quả nó cho phép một thiết kế được thử nghiệm trước khi sản xuất
Vì thế các nhà thiết kế có thể nhanh chóng so sánh và kiểm tra kết quả [6]
Trang 382.2 CÁC THUẬT NGỮ CỦA VHDL
Thực thể (Entity): Tất cả các thiết kế đều được biểu diễn dưới dạng các thực thể Một thực thể là một khối xây dựng sẵn cơ bản nhất trong một thiết kế Mức cao nhất của thiết kế là thực thể mức đỉnh (top level entiny) Nếu thiết kế có thứ bậc, mô
tả mức đỉnh sẽ có các mô tả mức thấp hơn chứa bên trong Những mô tả mức thấp hơn này sẽ là các thực thể mức thấp hơn chứa trong mô tả thực thể mức đỉnh
Kiến trúc (Architecture): Tất cả các thực thể có thể được mô phỏng đều có một mô tả kiến trúc Kiến trúc mô tả chức năng của thực thể Một thực thể đơn có thể có nhiều kiến trúc Một kiến trúc có thể ở mức chức năng (behavioral) trong khi một kiến trúc khác có thể mô tả ở mức cấu trúc của thiết kế
Cấu hình (Configuration): Một cấu hình được sử dụng để làm kết nối một thể hiện thành phần với một cặp thực thể kiến trúc Một cấu hình có thể được khảo sát giống như một danh sách các phần của một thiết kế
Gói (package): Một gói là một tập các chương trình con và các kiểu dữ liệu phổ biến được sử dụng trong một thiết kế
Thuộc tính ( Attribute): Thuộc tính là dữ liệu được gán cho các đối tượnghoặc dữ liệu được tiền định nghĩa liên quan đến các đối tượng trong VHDL
Generic: Generic là thuật ngữ của VHDL dùng cho một thông số, thông tin này chuyển thông tin tới thực thể
Quá trình (Process): Một quá trình là một đơn vị thực thi cơ bản trong VHDL Tất cả các thao tác được thực hiện trong khi mô phỏng mô tả VHDL đều được chia nhỏ trong một hay nhiều quá trình
2.3 CẤU TRÚC CỦA MỘT CHƯƠNG TRÌNH VHDL
Cấu trúc của một chương trình VHDL được minh họa như hình 2.1.[10]
Trang 39
Hình 2.1: Cấu trúc chung của chương trình VHDL
Các đơn vị thiết kế là các thành phần chính của mô tả VHDL, bao gồm các đơn vị sau:
Khai báo các gói
Khai báo thư viện sử dụng
Thực thể (Entity)
C ác tiến trình
C l ác ệnh tuần ự t
Trang 40Hình 2.2: Quan hệ giữa các đơn vị thiết kế
2.4 CÁC ĐƠN VỊ THIẾT KẾ TRONG VHDL
Các mô tả VHDL chứa các đơn vị thiết kế sơ cấp và các đơn vị thiết kế thứ cấp Các đơn vị thiết kế sơ cấp là thực thể và gói, các đơn vị thiết kế thứ cấp là kiến trúc và thân của gói Các đơn vị thiết kế thứ cấp luôn luôn gắn liền với một đơn vị thiết kế sơ cấp Các thư viện thiết kế là các tập của các đơn vị thiết kế sơ cấp và thứ cấp Một thiết kế điển hình thường chứa một hay nhiều thư viện các đơn vị thiết kế.2.4.1.Gói (Package)
Mục đích chính của gói là tập hợp các phần tử có thể dùng chung giữa hai hay nhiều đơn vị thiết kế Một ‘Package’ chứa các định nghĩa về hằng số, khai báo component, các kiểu dữ liệu của người sử dụng, các chương trình con viết bằng
PACKAGE
ENTITY
CONFIGURATION PROCESS ARCHITECTURE