TÓM TẮT LUẬN VĂN THẠC SĨKết quả hiện thực các nhiệm vụ của luận án được đúc kết trong cuốn luận văn tốt nghiệp dày 126 trang không kể các phần phụ lục, bố cục thành 7 chương , được tóm t
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA
-
NGUYỄN PHAN TRUNG
THIẾT KẾ CORE MẠCH ĐIỀU KHIỂN
MÀN HÌNH ĐƠN SẮC
Chuyên ngành: Công Nghệ Thông Tin
LUẬN VĂN THẠC SĨ
TP HỒ CHÍ MINH, tháng 12 năm 2004
Trang 2CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
Cán bộ hướng dẫn khoa học: TS Phạm Tường Hải
Cán bộ chấm nhận xét 1: TS Đinh Đức Anh Vũ
Cán bộ chấm nhận xét 2: PGS TS Nguyễn Hữu Phương
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 29 tháng 12 năm 2004
Trang 3PHÒNG ĐÀO TẠO SĐH Độc Lập – Tự Do – Hạnh Phúc
TP HCM, ngày tháng năm 200
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ và tên học viên NGUYỄN PHAN TRUNG Phái : Nam
Ngày, tháng, năm sinh : 02 / 02 / 1959 Nơi sinh : Hà nội
Chuyên ngành : Công Nghệ Thông Tin MSHV: CNTT12 - 029
I- TÊN ĐỀ TÀI : Thiết Kế Core Mạch Điều Khiển Màn Hình Đơn Sắc
II- NHIỆM VỤ VÀ NỘI DUNG :
III- NGÀY GIAO NHIỆM VỤ: 02 / 02 / 2004
IV- NGÀY HOÀN THÀNH NHIỆM VỤ: 30 / 11 / 2004
V- CÁN BỘ HƯỚNG DẪN: TS Phạm Tường Hải
QL CHUYÊN NGÀNH
Nội dung và đề cương luận văn thạc sĩ đã được Hội Đồng Chuyên Ngành thông qua
Ngày tháng năm
Trang 4Lời Cảm Ơn
Trong thời gian vừa qua tôi đã được nhà trường trang bị thêm một số kiến thức quí báu trong lĩnh vực công nghệ thông tin Nhờ những kiến thức đó và đặc biệt là sự chỉ dẫn của thầy TS PHẠM TƯỜNG HẢI tôi đã thực hiện được bản luận văn cao học này Tôi xin chân thành cảm ơn thầy Hải và các thầy cô trong khoa công nghệ thông tin TRƯỜNG ĐẠI HỌC BÁCH KHOA TP HCM
Tôi cũng cảm ơn các bạn trong nhóm làm luận văn cao học đã hỗ trợ tôi giải quyết một số vướng mắc gặp phải trong khi thực hiện
Cuối cùng tôi cũng cảm ơn những người thân trong gia đình luôn tạo điều kiện về vật chất cũng như tinh thần để tôi có thể hoàn thành bản luận văn
Ngày 20 tháng 10 năm 2004
Nguyễn Phan Trung
Trang 5TÓM TẮT LUẬN VĂN THẠC SĨ
Kết quả hiện thực các nhiệm vụ của luận án được đúc kết trong cuốn luận văn tốt nghiệp dày 126 trang (không kể các phần phụ lục), bố cục thành 7 chương , được tóm tắt như sau:
Chương I mở đầu về nhu cầu thực tế và phương pháp giải quyết
Chương II tổng thuật về các công trình liên quan đến đề tài
Chương III cơ sở lý thuyết (ngôn ngữ mô tả phần cứng, công cụ thiết kế Max + PlusII ) và phương pháp lý thuyết để triển khai đề tài
Chương IV lý thuyết hiển thị ảnh trên màn hình CRT
Chương V mô tả các chức năng của MC6845
Chương VI Thiết kế và thực hiện mạch trên FPGA (dùng board UP2)
Chương VII kết luận về đề tài thực hiện
Trang 6CHƯƠNG I MỞ ĐẦU 1
I.1 NHU CẦU THỰC TẾ: 1
I.2 PHƯƠNG PHÁP GIẢI QUYẾT: 2
CHƯƠNG II TỔNG THUẬT CÁC CÔNG TRÌNH CÓ LIÊN QUAN ĐẾN ĐỀ TÀI 3
II.1 tại Việt Nam: 3
II.2 Trên thế giới: 3
CHƯƠNG III CƠ SỞ LÝ THUYẾT VÀ PHƯƠNG PHÁP TRIỂN KHAI ĐỀ TÀI 5
III.1 Kiến thức chung: 5
III.1.A Ngôn ngữ VHDL: 5
III.1.B Tài liệu thiết kế : 6
III.1.B.1 CÁC ĐẶC ĐIỂM CỦA PHẦN MỀM MAX+PLUS II 6
III.1.B.2 THIẾT KẾ TRONG MAX+PLUS II 7
III.1.B.3 CỬA SỔ QUẢN LÝ MAX+PLUS II 8
III.1.B.4 CÁC ỨNG DỤNG MAX+PLUS II 9
III.1.B.5 DESIGN FILES, ANCILLARY FILES VÀ PROJECTS 10
III.1.B.6 BIỂU DIỄN PHÂN CẤP PROJECT 11
III.1.B.7 BIÊN DỊCH PROJECT 12
III.1.B.8 KIỂM TRA PROJECT 14
III.1.B.9 PHẦN CỨNG LẬP TRÌNH 17
III.2 Phương pháp triển khai đề tài: 21
III.2.A Tổng quan về phương pháp top-down: 21
III.2.B Qui trình thiết kế: 24
III.2.B.1 Kiểm tra hệ thống thiết kế: 25
III.2.B.2 cÁC mỨC trừu tưỢNG cỦA cÁC giai đoạn thiẾT kẾ: 25
III.2.C PHƯƠNG PHÁP THIẾT KẾ CORES 26
III.2.C.1 LUỒNG THIẾT KẾ CORES 26
III.2.C.2 QUÁ TRÌNH PHÁT TRIỂM CORES 27
CHƯƠNG IV CÁC BỘ PHẬN HIỂN THỊ BẰNG MÀN HÌNH CRT 29
IV.1 Các phương pháp tạo ảnh trên CRT 29
IV.1.A Quyét mành (Raster Scan) 29
IV.1.B Quyét vector 31
IV.2 Hiển thị thông tin chữ_ số và nửa đồ họa: 32
IV.3 Thiết bị cuối của màn hình chữ – số 33
IV.3.A Làm tươi theo phương pháp DMA 34
IV.3.B Làm tươi dùng bộ nhớ chuyên dùng (Delicated Memory); 35
CHƯƠNG V ĐẶC TẢ CHỨC NĂNG MẠCH ĐIỀU KHIỂN CRT ĐƠN SẮC 36
Trang 7V.2 MIÊU TẢ HỆ THỐNG GIAO DIỆN CỦA CRTC 40
V.3 MIÊU TẢ CHÂN 42
V.3.A Mạch ghép nối với bộ xử lý 42
V.3.B ĐIỀU KHIỂN MÀN HÌNH 43
V.3.C TẠO CÁC ĐỊA CHỈ ĐỂ QUÝET BỘ NHỚ HIỂN THỊ 43
V.3.D CÁC CHÂN KHÁC (OTHER PIN) 43
V.4 MIÊU TẢ CRTC 44
V.4.A CÁC MIÊU TẢ FILE THANH GHI 47
V.4.A.1 Thanh ghi địa chỉ: 47
V.4.A.2 Thanh ghi định thời R0 – R9 47
V.4.B ĐIỀU KHIỂN CON TRỎ 52
V.4.C CÁC THANH GHI KHÁC 53
V.5 HOẠT ĐỘNG CỦA CRTC 54
V.5.A BIỂU ĐỒ ĐỊNH THỜI CÁC TÍNH HIỆU MẠCH GHÉP NỐI MÀN HÌNH 54
BẢNG V-7 CÁC GIÁ TRỊ LẬP TRÌNH VÀO CÁC THANH GHI CRTC 54
V.5.B CÁC ỨNG DỤNG CRTC THÊM VÀO 54
V.5.C Bảng tính crtc 57
V.6 TÓM TẮT 58
CHƯƠNG VI THIẾT KẾ MẠCH 59
VI.1 đặc tả và Phân tích core mạch điều khiển màn hình đơn sắc: 60
VI.1.A Khối các thanh ghi: 62
VI.1.B Mạch định thời ngang: 62
VI.1.C Mạch xen kẽ và định thời dọc: 63
VI.1.D Mạch Address Generator 63
VI.1.E Mạch cursor 63
VI.1.F Mạch Light Pen 64
VI.2 THIẾT KẾ CORE MẠCH TẠO TÍN HIỆU ĐIỀU KIỂN MÀN HÌNH ĐƠN SẮC 64
VI.2.A Mạch điều khiển và các thanh ghi: 65
VI.2.B Mạch đinh thời ngang 68
VI.2.C mạch xen kẽ và định thời dọc: 70
VI.2.C.1 Mạch địa chỉ dòng và xen kẽ: 70
VI.2.C.2 Mạch định thời dọc 74
VI.2.C.3 Tích hợp 75
VI.2.D Mạch tạo địa chỉ: 77
VI.2.E Mạch điều khiển cursor 79
VI.2.F Mạch Light Pen 82
VI.2.G crtc_core 84
VI.3 Thư viện linh kiện cho crtc_core 88
VI.3.A inv_1: 88
VI.3.B Họ mạch and 89
VI.3.B.1 and_2: 89
VI.3.B.2 And_3: 90
VI.3.B.3 And_4 : 90
VI.3.B.4 And_6: 90
Trang 8end behavior; 91
VI.3.C Họ mạch nand 91
VI.3.C.1 nand_2: 91
VI.3.C.2 nand_3: 92
VI.3.D Họ mạch OR 92
VI.3.D.1 OR_2: 92
VI.3.D.2 OR_3: 93
VI.3.D.3 OR_6: 93
VI.3.E Họ mach NOR 94
VI.3.E.1 NOR_2: 94
VI.3.E.2 nor_6: 94
VI.3.F d_latch: 95
VI.3.G Họ mạch Flipflop 96
VI.3.G.1 cl_jk : 96
VI.3.G.2 RSFF_NOR2 : 97
VI.3.H thanh ghi rEG(n): 98
VI.3.I họ so sánh 99
VI.3.I.1 Comparator 99
VI.3.I.2 comparato_1 100
VI.3.I.3 comparator_2 101
VI.3.J họ counter 101
VI.3.J.1 Counter 101
VI.3.J.2 COUNTER_1: 102
VI.3.J.3 counter_a3 103
VI.3.J.4 counter_load 104
VI.3.J.5 coun_cus 105
VI.3.K Mod_N 106
VI.3.L mux1_2n 107
VI.3.M mux_cus 107
VI.3.N decoder 108
VI.3.O bus3s 109
VI.4 chương trình mô phỏng 110
VI.4.A Lý thuyết liên quan: 110
VI.4.A.1 Giao diện VGA 110
VI.4.A.2 Cách hoạt động của thiết bị VGA 110
VI.4.B Phần hiện thực mô phỏng 112
VI.5 Kinh nghiệm tìm ra trong quá trình lập trình VHDL trong môi trường Max+Plus 116
CHƯƠNG VII KẾT LUẬN 117
TÀI LIỆU THAM KHẢO……… 124
CHÚ GIẢI CÁC TỪ VIẾT TẮT………125
Trang 9MỤC LỤC HÌNH
HÌNH III-1 MÔI TRƯỜNG THIẾT KẾ MAX + PLUS II 6
HÌNH III-2 CÁC ỨNG DỤNG TRONG MAX + PLUS II 7
HÌNH III-3 CỬA SỔ CHÍNH CỦA MAX + PLUS II 8
HÌNH III-4 MENU TRONG CỬA SỔ QUẢN LÝ MAX + PLUS II 9
HÌNH III-5 MAX + PLUS II DESIGN ENTRY METHODS 11
HÌNH III-6 BIỂU DIỄN PHÂN CẤP TRONG MAX + PLUS II 11
HÌNH III-7 BỘ BIÊN DỊCH MAX + PLUS II 12
HÌNH III-8 KIỂM TRA PROJECT MAX+PLUS II 14
HÌNH III-9 MAX + PLUS II PROGRAMMER 16
HÌNH III-10 PHƯƠNG PHÁP LUẬN LẬP TRÌNH THIẾT BỊ 17
HÌNH III-11 SƠ ĐỒ KHỐI CỦA KIT LẬP TRÌNH UP2 21
HÌNH III-12 THỦ TỤC ĐỆ QUI 22
HÌNH III-13 THIẾT KẾ TOP-DOWN VÀ HIỆN THỰC BOTTOM-UP 22
HÌNH III-14 KIỂM TRA MỨC ĐẦU TIÊN CỦA PHÂN HOẠCH 23
HÌNH III-15 KIỂM TRA HIỆN THỰC PHẦN CỨNG CỦA SSC1 VÀ SSC2 23
HÌNH III-16 KIỂM TRA HIỆN THỰC PHẦN CỨNG CỦA SSC3 23
HÌNH III-17 KIỂM TRA THIẾT KẾ CUỐI CÙNG RÚT GỌN HƠN 24
HÌNH III-18 QUI TRÍNH THIẾT KẾ HỆ THỐNG SỐ 24
HÌNH III-19 KIỂM TRA MỖI GIAI ĐOẠN THIẾT KẾ BẰNG VIỆC MÔ PHỎNG ĐẦU RA CỦA NÓ 26
HÌNH IV-1 ỐNG HÌNH TIA CATHODE CRT 29
HÌNH IV-2 MONITOR ỐNG HÌNH 31
HÌNH IV-3 NGUYÊN LÝ QUÝET MÀNH 31
HÌNH IV-4 A TẠO ẢNH BẰNG QUÉT VECTOR B TẠO MẦU BẰNG CÁCH THAY ĐỔI ĐIỆN ÁP TĂNG TỐC 31
HÌNH IV-5 THỂ HIỆN KÝ TỰ BẰNG MA TRẬN ĐIỂM 5×7 32
HÌNH IV-6 CHUYỂN ĐỔI SONG SONG SANG NỐI TIẾP CÁC KÝ TỰ 33
HÌNH IV-7 CÁC CHỨC NĂNG CỦA THIẾT BỊ CUỐI CRT 33
HÌNH IV-8 LÀM TƯƠI MÀN HÌNH THEO PHƯƠNG PHÁP DMA 34
HÌNH IV-9 SƠ ĐỒ KHỐI THIẾT BỊ CUỐI CRT LÀM TƯƠI BẰNG DMA 34
HÌNH IV-10 SƠ ĐỒ KHỐI THIẾT BI CUỐI CRT THEO BỘ NHỚ CHUYÊN DÙNG 35
HÌNH V-1 KHỐI ĐIỀU KHIỂN MÀN HÌNH BẰNG 6845 37
HÌNH V-2 ĐỊNH THỜI ĐỌC BUS(ĐỌC THÔNG TIN TỪ CRTC) 38
HÌNH V-3 ĐỊNH THỜI GHI BUS( GHI THÔNG TIN VÀO CRTC) 38
HÌNH V-4 SƠ ĐỒ ĐỊNH THỜI CỦA CRTC 39
HÌNH V-5 SƠ ĐỒ ĐỊNH THỜI CỦA CLK, MA0-MA13, LPSTB 40
HÌNH V-6 A.HỆ THỐNG QUÉT MÀNH KHÔNG XEN KẼ .B, HỆ THỐNG QUÉT MÀNH XEN KẼ 40 HÌNH V-7 THỂ HIỆN KÝ TỰ LÊN MÀN HÌNH VÀ TÍN HIỆU VIDEO 41
HÌNH V-8 TRONG SUỐT ĐỊNH THỜI CẤU HÌNH BỘ NHỚ HIỂN THỊ DÙNG MPU HỌ M6845 42
HÌNH V-9 SƠ ĐỒ KHỐI CỦA CRTC 6845 46
HÌNH V-10 MINH HỌA ĐỊNH DẠNG MÀN HÌNH CRT 48
HÌNH V-11 ĐỊNH THỜI NGANG CỦA CRTC 49
HÌNH V-12 ĐỊNH THỜI DỌC CỦA CRTC 50
HÌNH V-13 QUI ĐỊNH VỀ XEN KẼ 52
HÌNH V-14 ĐIỀU KHIỂN CON TRỎ 53
HÌNH V-15 GIAO TIẾP CỦA BÚT QUANG 54
HÌNH V-16 ĐỊNH THỜI CON TRỎ 55
HÌNH V-17 SƠ ĐỒ TẦNG ĐỊA CHỈ CỦA BỘ NHỚ HIỂN THỊ 56
HÌNH VI-1 SƠ ĐỒ KHỐI CỦA CRTC-CORE 60
HÌNH VI-2 SƠ ĐỒ PHÂN TÍCH CRTC_CORE 61
HÌNH VI-3 KIẾN TRÚC TỔNG QUÁT CỦA CRTC_CORE 61
Trang 10HÌNH VI-4 SƠ ĐỒ TỔNG QUÁT CỦA KHỐI THANH GHI 62
HÌNH VI-5 SƠ ĐỒ KHÁI QUÁT MẠCH ĐỊNH THỜI NGANG 62
HÌNH VI-6 SƠ ĐỒ XEN KẼ VÀ ĐỊNH THỜI DỌC 63
HÌNH VI-7 SƠ ĐỒ KHÁI QUÁT MẠCH ADDRESS GENERATOR 63
HÌNH VI-8 SƠ ĐỒ KHÁI QUÁT CỦA MẠCH CURSOR 64
HÌNH VI-9 SƠ ĐỒ KHÁI QUÁT CỦA MẠCH LIGHT PEN 64
HÌNH VI-10 SƠ ĐỒ CẤU TRÚC KHỐI THANH GHI 65
HÌNH VI-11 MÔ PHỎNG KHÁI QUÁT KHỐI THANH GHI 68
HÌNH VI-12 SƠ ĐỒ CẤU TRÚC MẠCH ĐỊNH THỜI NGANG 69
HÌNH VI-13 MÔ PHỎNG MẠCH ĐỊNH THỜI NGANG 70
HÌNH VI-14 SƠ ĐỒ KHỐI MẠCH ĐỊA CHỈ DÒNG VÀ XEN KẼ 70
HÌNH VI-15 SƠ ĐỒ KIẾN TRÚC CỦA MẠCH ĐỊA CHỈ DÒNG VÀ XEN KẼ 71
HÌNH VI-16 CHẾ ĐỘ THƯỜNG (KHÔNG XEN KẼ) 73
HÌNH VI-17 CHẾ ĐỘ ĐỒNG BỘ XEN KẼ 73
HÌNH VI-18 CHẾ ĐỘ XEN KẼ VÀ VIDEO 74
HÌNH VI-19 SƠ ĐỒ KHỐI MẠCH ĐỊNH THỜI DỌC 74
HÌNH VI-20 KIẾN TRÚC CỦA MẠCH ĐỊNH THỜI DỌC 75
HÌNH VI-21 KIẾN TRÚC CỦA MẠCH XEN KẼ VÀ ĐỊNH THỜI DỌC 76
HÌNH VI-22 MÔ PHỎNG MẠCH XEN KẼ VÀ ĐỊNH THỜI DỌC 77
HÌNH VI-23 KIẾN TRÚC MẠCH SINH ĐỊA CHỈ LUẬN LÝ 78
HÌNH VI-24 MÔ PHỎNG MẠCH ADDRESS GENERATOR 79
HÌNH VI-25 MẠCH ĐIỀU KHIỂN CURSOR 80
HÌNH VI-26 MÔ PHỎNG MẠCH TẠO CURSOR 82
HÌNH VI-27 SƠ ĐỒ KIẾN TRÚC MẠCH LIGHT PEN 82
HÌNH VI-28 MÔ PHỎNG MẠCH LIGHT PEN 83
HÌNH VI-29 MÔ PHỎNG TOÀN CẢNH CRTC_CORE 86
HÌNH VI-30 MÔ PHỎNG RÕ GIÁ TRỊ NẠP CÁC THANH GHI R10, R11, R12, R13, R14, R15, R16 87
HÌNH VI-31 MÔ PHỎNG GIÁ TRỊ TRONG R16, R17 VÀ THỂ HIỆN R10,R11,R12,R13,R14,R15 87
HÌNH VI-32 CỔNG ĐẢO INV_1 89
HÌNH VI-33 CỔNG AND_2 89
HÌNH VI-34 CỔNG AND_3 90
HÌNH VI-35 CỔNG AND_4 90
HÌNH VI-36 CỔNG AND_6 91
HÌNH VI-37 CỔNG NAND_2 91
HÌNH VI-38 CỔNG NAND_3 92
HÌNH VI-39 CỔNG OR_2 92
HÌNH VI-40 CỔNG OR_3 93
HÌNH VI-41 CỔNG OR_6 93
HÌNH VI-42 CỔNG NOR_2 94
HÌNH VI-43 CỔNG NOR_6 94
HÌNH VI-44 MẠCH CÀI D_LATCH 95
HÌNH VI-45 FLIPFLOP CL_JK 96
HÌNH VI-46 RSFF_NOR2 97
HÌNH VI-47 THANH GHI REG(N) 98
HÌNH VI-48 MACH COMPARATOR 99
HÌNH VI-49 MẠCH COPARATOR_1 100
HÌNH VI-50 MẠCH COPARATOR_2 101
HÌNH VI-51 KÝ HIỆU CỦA COUNTER 102
HÌNH VI-52 KÝ HIỆU CỦA MẠCH COUNTER_1 102
HÌNH VI-53 KÝ HIỆU COUNTER_3 103
HÌNH VI-54 KÝ HIỆU COUNTER_LOAD 104
HÌNH VI-55 KÝ HIỆU MẠCH COUN_CUS 105
Trang 11HÌNH VI-56 KÝ HIỆU CỦA MOD_N 106
HÌNH VI-57 KÝ HIỆU CỦA MUX1_2N 107
HÌNH VI-58 KÝ HIỆU MẠCH MUX_CUS 107
HÌNH VI-59 KÝ HIỆU DECODER 108
HÌNH VI-60 KÝ HIỆU CỦA BUS3S 109
HÌNH VI-61 MÀN HÌNH VGA 111
HÌNH VI-62 HORIZONTAL REFRESH CYCLE 111
HÌNH VI-63 VERTICAL REFRESH CYCLE 111
HÌNH VI-64 TẠO TÍN HIỆU VIDEO 113
Trang 12MỤC LỤC BẢNG
BẢNG III-1 MÔ TẢ CÁC ỨNG DỤNG TRONG MAX + PLUS II 10
BẢNG V-1 CÁC ĐẶC TÍNH ĐỊNH THỜI CỦA BUS 37
BẢNG V-3 CÁC ĐẶC ĐIỂM ĐỊNH THỜI CỦA CRTC (THAM KHẢO HÌNH V-4, V-5) 39
BẢNG V-4 CHẾ ĐỘ HOẠT ĐỘNG CỦA CRTC 44
BẢNG V-5 CHỈ ĐỊNH CÁC THANH GHI BÊN TRONG CRTC 47
BẢNG V-6 THANH GHI CHẾ ĐỘ XEN KẼ 51
BẢNG V-7 THANH GHI DÒNG ĐẦU CON TRỎ( CURSOR START) 53
BẢNG V-8 CÁC GIÁ TRỊ LẬP TRÌNH VÀO CÁC THANH GHI CRTC 54
BẢNG VI-1 SO SÁNH ĐỊNH THỜI BUS CỦA CRTC_CORE VỚI CÁC MC6845 88
BẢNG VI-2 SO SÁCH ĐỊNH THỜI MC6845 VỚI CRTC_CORE 88
BẢNG VI-3 BẢNG SỰ THẬT CỦA INV_1 89
BẢNG VI-4 BẢNG SỰ THẬT CỦA AND_2 89
BẢNG VI-5 BẢNG SỰ THẬT CỦA NAND_2 91
BẢNG VI-6 BẢNG SỰ THẬT CỦA OR_2 92
BẢNG VI-7 BẢNG SỰ THẬT CỦA NOR_2 94
BẢNG VI-8 BẢNG SỰ THẬT CỦA D_LATCH 95
BẢNG VI-9 BẢNG SỰ THẬT CỦA FLIPFLOP CL_JK 96
BẢNG VI-10 BẢNG SỰ THẬT CỦA RSFF_NOR2 97
BẢNG VI-11 BẢNG CHÂN TRỊ CỦA BUS3S 109
BẢNG VI-12 CÁC NỐI KẾT CỦA D-SUB 110
BẢNG VI-13 CÁC THÔNG SỐ CHU KỲ LÀM TƯƠI NGANG 111
BẢNG VI-14 CÁC THÔNG SỐ CỦA CHU KỲ LÀM TƯƠI DỌC 112
BẢNG VI-15 KẾT QUẢ GÁN CHÂN CHO CHƯƠNG TRÌNH MÔ PHỎNG 116
Trang 13I.1 NHU CẦU THỰC TẾ:
Vào giữa thập niên 1990, việc thiết kế và sản xuất ASIC đã có một bước phát triển vượt bậc nhờ ứng dụng công nghệ SoC Công nghệ SoC là sự tích hợp của nhiều Core độc lập có những
chức năng khác nhau vào trong một chip nhằm cung cấp cho một ứng dụng xác định nào đó Công nghệ SoC là một bước chuyển tiếp trong quá trình phát triển của khoa hoc máy tính Không giống như những chip lớn dùng chủ yếu với các cổng logic, SoC được thiết kế như là nền tảng lập trình được mà có thể kết hợp được hầu hết chức năng của sản phẩm cuối vào trong một chip đơn Ngày nay, nhiều khối chức năng khác nhau chẳng hạn như các khối logic, khối bộ nhớ, khối analog.v.v có thể được tích hợp vào trong một chip để xây dựng nên một hệ thống mà trước đây phải được thi công trên cả một mạch in Đặc tính này của SoC đã giúp làm tăng độ ổn định, thu nhỏ diện tích board mạch, giảm công suất tiêu thụ, đơn giản việc thiết kế và tăng tốc độ từ đó dẫn đến việc giảm giá thành
Khả năng tạo ra SoC là kết qủa của những kỹ thuật chế tạo mới mà:
o có khả năng tạo ra những transistor rất nhỏ so với những transistor hiện tại
o kết nối nhiều transistor như vậy vào trong một chip đơn,
o sự phát triển của những dụng cụ mới mà làm cho công việc thiết kế và kiểm tra đánh giá những thiết bị phức tạp như vậy được thực hiện tự động
Các sản phẩm SoC đang cố gắng mang lại cho kỹ nghệ với các giải pháp mạch tích hợp theo trình độ phát triển khoa học hiện tại thông qua cách tiếp cận độc đáo của nó hướng vào năng lượng thấp, chất lượng cao, thiết kế hệ thống mang tính tích hợp cao trong việc xử lý tín hiệu số và tín hiệu tương tự, tín hiệu kết hợp (mixed signal), và trong các lĩnh vực thông tin
Công ty nghiên cứu In-Stat dự đoán thị trường phát triển cho công nghệ SoC tăng khoảng 31% một năm Tuy nhiên, đối với nước ta thì công nghệ này còn là mới mẻ., việc sản xuất chip trong nước còn hạn chế chủ yếu là nhập khẩu Đó là nguyên nhân dẫn đến sự yếu kém Để ngành công nghiệp điện tử Việt Nam có thể cạnh tranh và từng bước đuổi kịp, sánh vai được với các nước khác chúng ta cần phải đưa công nghệ SoC vào việc sản xuất chip ở Việt Nam
Tuy nhiên, độ phức tạp sản phẩm và áp lực thời gian tiếp cận thị trường lại là các thách thức mà chúng ta sẽ gặp phải và đương đầu với chúng
Hướng phát triển hệ thống phần cứng theo công nghệ SoC tại các nước tiên tiến đã trở thành vấn đề công nghệ, và đã được áp dụng cả một thập kỷ nay Hơn nữa, khuynh hướng phát triển này hiện nay đã trở thành một hướng chính trong ngành công nghiệp điện tử- viễn thông hiện đại
Theo trung tâm Thông tin Khoa học và Công Nghệ thuộc Sở Khoa học, Công nghệ và Môi
trường, trên thế giới có rất nhiều đơn vị tham gia nghiên cứu, phát triển và ứng dụng công nghệ SoC vào việc thiết kế các bản mạch từ đơn giản đến phức tạp như công ty S3, IBM, HP, Altera
…, nhưng không tìm được những đề tài trong nước liên quan đến công nghệ trên
Như vậy, để ứng dụng công nghệ SoC, ta có thể xem việc thiết kế Core mạch điều khiển
màn hình đơn sắc là cần thiết với hai mục tiêu cụ thể như sau:
- Thứ nhất, quá trình thực hiện đề tài này chính là quá trình thiết kế core mạch điều khiển màn hình đơn sắc theo công ngệ SoC
Trang 14- Thứ hai, kết quả của đề tài sẽ là thư viện mà có thể được sử dụng trong việc thiết kế hệ thống hiển thị màn hình sau này
I.2 PHƯƠNG PHÁP GIẢI QUYẾT:
Phương pháp thiết kế của đề tài này là dùng phương pháp top-down (trên-xuống) Với
phương pháp này sẽ phân chia hệ thống thành các thành phần con cho đến khi tất cả các thành phần con này là những thành phần đã có sẵn trong thư viện linh kiện ảo Các linh kiện ảo này có thể được xây dựng từ các sở hữu trí tuệ (IP) core của các nhà sản xuất thứ ba Khi thiết kế sử dụng lại các IP core để tăng cường khả năng thiết kế, và các thiết kế trước đó cũng có thể được dùng lại trong các thiết kế hiện hành Tuy nhiên, việc dùng linh kiện ảo không do mình thiết kế nên lưu ý một số trở ngại sau:
Những phần tử linh kiện ảo được dùng có thể không đáp ứng được những yêu cầu của thiết kế Điều này dẫn đến là người thiết kế phải xây dựng lại linh kiện đó hoặc chấp nhận kết quả thiết kế kém tối ưu do thiết kế phải phụ thuộc vào linh kiện ảo đã có
Khi thay đổi qui mô thiết kế, cần phải sử dụng nhiều công cụ thiết kế của nhiều hãng cung cấp khác nhau Lý do là có thể không có sự tương thích giữa công cụ thiết kế của hãng này với linh kiện ảo của hãng khác Điều này dẫn đến tăng chi phí đầu tư cho công cụ sản xuất
Giá thành từng phần tử linh kiện cũng là một vấn đề cần phải nghĩ đến
Do đó việc xây dựng các phần tử linh kiện ảo là cần thiết bởi nó có những thuận lợi sau:
o Thư viện các linh kiện ảo do chúng ta tự viết lấy có độ mềm dẻo cao và có thể sử dụng được với các công cụ thiết kế của nhiều hãng khác
o Số lượng các linh kiện ảo trong các thư viện được tích lũy dần, làm cho khả năng tái sử dụng của các thư viện càng cao và thời gian thiết kế vi mạch được rút ngắn lại Tính hiệu quả của các thiết kế theo đó sẽ tăng lên, làm tăng khả năng cạnh tranh Việc chọn phương pháp top-down còn do nó có các đặc điểm sau:
¾ quá trình thiết kế top-down có dạng phân cấp từ trên xuống dưới, từ tổng quan đến chi tiết, và từ đơn giản đến phức tạp
¾ mô hình top-down giúp cho việc quản lý các sự thay đổi, giải quyết các mâu thuẫn nảy sinh trong quá trình phát triển tăng dần độ phức tạp của thiết kế,và giúp cho việc tiên đoán trước thời gian cần thiết để xây dựng một hệ thống
¾ phương pháp kiến trúc top-down có thứ bậc cho phép các nhóm, các bộ phận có thể đồng thời tiến hành công việc trên các phần khác nhau một cách độc lập
¾ giúp tăng tính mở và làm tăng khả năng quản lý cho các hệ thống lớn nhờ vào khả năng, dung lượng của các công cụ hỗ trợ thiết kế
Trang 15CHƯƠNG II TỔNG THUẬT CÁC CÔNG TRÌNH CÓ LIÊN QUAN ĐẾN ĐỀ TÀI
Theo báo cáo ASP DAC 2003 của Austria Micro System, SoC hiện đại có thể giảm đi năng lượng tiêu thụ rất nhiều trong toàn bộ thời gian làm việc
Theo Loel Rosenberg, Giám đốc sản xuất công ty Atmel về các sản phẩm SLI lập trình thì hiện tại có 02 kỹ thuật lập trình mới được áp dụng triển khai công việc SoC: Kỹ thuật thứ nhất
liên quan đến việc triển khai việc thiết kế theo phương pháp FPGA mật độ cao truyền thống, và kỹ thuật thứ hai được ứng dụng trong các chip hệ thống có khả năng lập trình như FPSLIC
Một thiết bị FPSLIC đơn được tạo ra từ các khối hệ thống nhúng bao gồm bộ xử lý, ngoại vi, bộ nhớ, logic lập trình và các core IP (đặc tính thông minh) khác
Dưới đây là tổng quan về các công trình nghiên cứu và ứng dụng các cơ quan, công ty trên thế giới nói chung, Việt Nam nói riêng có sử dụng công nghệ SoC
II.1 TẠI VIỆT NAM:
Sự nghiên cứu thiết kế phần cứng dựa trên các ngôn ngữ đặc tả phần cứng cũng đã có từ cách đây nhiều năm Nhưng việc áp dụng những công nghệ này vào thiết kế các hệ thống cụ thể còn rất hạn chế, trong đó có rất nhiều vấn đề hầu như còn bỏ ngỏ, chẳng hạn như việc xây dựng các linh kiện ảo, mà nếu chúng ta đặt hàng từ các công ty IP chuyên thiết kế, xây dựng các thư viện này thì chi phí sẽ rất cao, và cũng không thể tối ưu chúng trong nhửng hệ thống ứng dụng cụ thể.Trước tình hình đó, việc nghiên cứu ứng dụng công nghệ SoC vào thiết kế một hệ thống cụ thể là rất cần thiết, vì nó là cơ sở ban đầu phục vụ cho việc xây dựng các hệ thống lớn sau này Công nghệ SoC chỉ thật sự được bàn đến từ vài năm nay, chủ yếu thông qua các hội nghị, hội thảo Đến nay, đã có vài đơn vị (ví dụ như phân viện công nghệ thông tin Hà nội) đã tiếp cận nghiên cứu, triển khai ứng dụng công nghệ trên nhưng chưa được phổ biến
II.2 TRÊN THẾ GIỚI:
Trên thế giới đã có rất nhiều đơn vị tham gia nghiên cứu, phát triển và ứng dụng công nghệ SoC vào việc thiết kết các bản mạch từ đơn giản đến phức tạp Sau đây là một số đơn vị điển hình đã thực hiện công nghệ SoC
1 Công ty Altera:
được thành lập năm 1983 là một công ty hàng đầu trong các lĩnh vực sau:
¾ Thiết bị luận lý lập trình được PLD, mật độ cao và hiệu suất cao
¾ Cung cấp các giải pháp về SOCP
¾ Phát triển các công cụ hỗ trợ thiết kế
¾ Gia công các khối IP core
¾ Cung cấp dịch vụ hỗ trợ thiết kế Hãng này có những phần mềm như Quartus II, MAX+PLUS II
Ta có thể tham khảo các thông tin về sản phẩm phần mềm hổ trợ các nhà thiết kế trong việc xây dựng và phân tích các mạch tích hợp tại website:
http://www.altera.com/products/software/system/products/sys-products.html
Trang 162 Công ty Silicon & Software Systems (S3)
Công ty này ở thủ đô Dublin (Ai-len), chuyên cung cấp các thiết kế sử dụng công nghệ SoC theo yêu cầu của khách hàng Công ty S3 thiết kế các hệ thống số, hệ thống không dây, xử lý mạng và các thiết bị dùng trong y học S3 là một công ty thiết kế điện tử có tầm cở quốc tế, nó được thành lập vào năm 1986, nhân viên của công ty khoảng 300 người Sự thành công của S3 là dựa trên sự kết hợp vi mạch, chuyên môn cao trong lĩnh vực thiết kế và chế tạo phần mềm và
phần cứng Địa chỉ tham khảo http://www.s3group.com/design/ic/chip
Cung cấp các thông tin tham khảo về các hàm và các module được xây dựng sẵn bằng ngôn ngữ đặc tả phần cứng Verilog hỗ trợ cho việc xây dựng các thư viện ảo liên quan đến công nghệ SoC Những hàm mô tả một số mạch logic như AND, NAND, OR, NOR, XOR, XNOR, NOT, D-Flip-Flop, JK-Flip-Flop, RS-Flip-Flop, T-Flip-Flop, và những hàm khác
Cung cấp những thông tin mới về các sản phẩm và những ứng dụng liên quan đến công nghệ SoC trên thế giới
5 Công ty Monterey Design System Đã có một số bài báo nghiên cứu về cách áp dụng
phương pháp top-down sao cho kết quả tốt nhất Thông tin về bài báo tại:
http://www.us.design-reuser.com/news/news4952.html
6 Công ty IBM
Ngày 23-1-1999 họ đã tuyên bố những sản phẩm của họ dựa trên SoC bao gồm các mạch nhớ trên một mảnh silicon được sử dụng trong các thế hệ mới của bộ xử lý PowerPc Công ty này tin rằng việc làm này sẽ làm cho các bộ xử lý đáp ứng được nhiều hơn yêu cầu của con người và cho phép vận hành một cách hiệu quả hơn Các board mạch được tạo ra với những mạch điện rất nhỏ có kích thước nhỏ hơn 1/600 đường kính sợi tóc của con người Nó là đơn vị dẫn đầu trong ngành kinh doanh ASIC Về chi tiết phương pháp thiết kế SoC của công ty được trình bầy trong một bài báo tại địa chỉ sau:
SiSoCKit, chứa những khối chức năng Các chương trình của các đối tác với các kỹ thuật hàng
đầu trong công việc thiết kế điện tử đánh giá cao mục đích của nhóm để cung cấp cho người tiêu dùng với những giải pháp tốt nhất
Trang 17CHƯƠNG III CƠ SỞ LÝ THUYẾT VÀ PHƯƠNG PHÁP TRIỂN KHAI ĐỀ TÀI III.1 KIẾN THỨC CHUNG:
Đề tài được thực hiện dựa trên các lý thuyết cơ bản về các lĩnh vực liên quan đến kỹ thuật số bao gồm: logic lập trình, kỹ thuật mạch số, kỹ thuật điện tử cơ bản và nâng cao, thiết kế hệ thống điện tử, thiết kế hệ thống thông tin, công nghệ thiết kế SoC, phương pháp luận thiết kế top-down Các phương pháp trình bày có liên quan đến ngôn ngữ đặc tả phần cứng HDL, cụ thể là VHDL
III.1.A NGÔN NGỮ VHDL:
Sau đây là một số đặc điểm chính trong ngôn ngữ VHDL:
- Đặc tính tổng quát: VHDL có thể được sử dụng để lập tài liệu thiết kế, thiết kế mức độ
cao, mô phỏng tổng hợp và kiểm tra phần cứng Nó cho phép mô tả phần cứng từ mức hệ thống đến mức cổng, hỗ trợ tính đồng thời nghĩa là các thành phần nhỏ đến lớn hoạt động tại một thời điểm
- Hỗ trợ phân cấp thiết kế: Đây là đặc tính thiết yếu của ngôn ngữ phần cứng đa cấp
Thiết kế chứa một mô tả giao diện và một số phần độc lập để mô tả hoạt động Hoạt động của hệ thông có thể được đặc tả dựa trên chức năng hoặc dựa trên cấu trúc của các thành phần nhỏ hơn của chúng Đặc tả cấu trúc của các thành phần có thể thực hiện ở tất cả các cấp thiết kế
- Có thự viện hỗ trợ: Ngôn ngữ cung cấp cơ chế để truy cập tới nhiều thư viện khác
nhau Thư viện không chỉ chứa đặc tả giao diện của thiết kế mà còn chứa một số đặc tả hoạt động của hệ thống Các đặc tả và các mẫu có thể dựa vào thư viện sau khi được dịch bởi chương trình dịch
- Có lệnh tuần tự: Khi người thiết kế phân chia hệ thống thành những thành phần con,
tiếp đó người thiết kế có thể mô tả chi tiết hoạt động bên trong bằng những cấu trúc ngôn ngữ
lập trình tuần tự như các lệnh case, if-then-else, loop, Các lệnh tuần tự cung cấp phương
pháp đơn giản để tạo ra các thành phần phần cứng dựa trên chức năng của chúng
- Thiết kế tương thích chung: Để thiết kế tổng quát, ngôn ngữ cho phép người thiết kế đặc cấu hình mô tả thành phần có thông số chung trong thiết kế Mô tả tương thích chung có thể thay đổi kích thước, đặc tính vật lý, định thời, đặc tính tải, và môi trường hoạt động của thiết kế
- Khai báo kiểu và cách dùng: Ngôn ngữ VHDL cho phép mô tả các kiểu std_logic, boolean, integer, floating-point, kiểu liệt kê, kiểu dãy, bản ghi Ngoài ra còn hỗ trợ các kiểu do người sử dụng định nghĩa Ngôn ngữ cũng cho phép định nghĩa lại các toán tử của ngôn ngữ
- Sử dụng các chương trình con: Cho phép định nghĩa, sử dụng các hàm, thủ tục là một đặc điểm của ngôn ngữ VHDL Chương trình con có thể sử dụng để biến đổi kiểu, định nghĩa đơn vị luận lý, định nghĩa lại toán tử, định nghĩa toán tử mới, và các ứng dụng khác trong ngôn ngữ lập trình
- Điều khiển định thời: Một đặc điểm nữa của ngôn ngữ VHDL là cho phép đặc tả định thời ở tất cả các cấp Nó cho phép người thiết kế đặt giá trị của tín hiệu, thời gian giữ
Trang 18chậm (delay), định nghĩa tín hiệu đồng bộ, đặt độ rộng xung, các ràng buộc thời gian khác
nhau,
- Đặc tả cấu trúc: Ngôn ngữ có các cấu trúc để đặc tả phân rã cấu trúc của phần cứng
ở tất cả các cấp
III.1.B TÀI LIỆU THIẾT KẾ :
Dùng tài liệu của hãng ALTERA để thiết kế cụ thể đó là phần mềm MAX+plus II và board UP2
MAX+PLUS II là phần mềm đa chức năng thực hiện thiết kế tổng hợp mạch cho một số loại CPLDs và FPGAs của hãng Altera Nó hỗ trợ các chức năng như: biên dịch, mô phỏng, phân tích định thời và tổng hợp mạch cho một số thiết bị Nó giúp tạo ra vi mạch có thể lập
trình được theo công nghệ SoC được gọi là SOPC
Phần mềm lập trình:
Phần mềm MAX+PLUS II cung cấp một môi trường thiết kế thân thiện có thể chạy được trên nhiều hệ điều hành khác nhau, đáp ứng được các nhu cầu thiết kế cụ thể MAX+PLUS II đưa ra các phần tử thiết kế dễ sử dụng, xử lý nhanh,
Phần mềm phát triển MAX+PLUS II (xem hình 3-1), là một gói tích hợp đầy đủ các ứng dụng cho việc thiết kế và tải dữ liệu lên các thiết bị logic lập trình được của hãng Altera, gồm các họ thiết bị như: Classic, MAX 5000, MAX7000, MAX9000A, FLEX10K
HÌNH III-1 MÔI TRƯỜNG THIẾT KẾ MAX + PLUS II
Hệ thống phần mềm MAX+PLUS II tích hợp gồm 11 ứng dụng Trong MAX+PLUS II một thiết kế logic bao gồm nhiều thiết kế con (subdesign) gọi là một đề án (project), xem hình 3-2
Nhiều đặc điểm (features) như: mở file, gán thiết bị, gán chân (pin), gán các tế bào logic, và lập trình hoặc cấu hình thiết bị là giống nhau và được dùng chung trong hầu hết các
Trang 19ứng dụng của MAX+PLUS II Một thự viện lớn cung cấp nhiều megafunctions và macrofunctions, bao gồm các hàm trong thư viện LPM (Library of Parameterized Module)
Chúng ta có thể làm việc đồng thời trên các ứng dụng khác nhau của MAX+PLUS II Ví dụ chúng ta có thể mở nhiều file thiết kế và trao đổi thông tin với nhau trong khi đang biên dịch hoặc mô phỏng một project khác
HÌNH III-2 CÁC ỨNG DỤNG TRONG MAX + PLUS II
Quá trình thiết kế một project mới, từ khái niện ban đầu cho đến hoàn thành gồm các bước sau:
1 Tạo mới một file thiết kế bằng một trong các bộ soạn thảo của MAX+PLUS II, như: bộ soạn thảo Graphic, bộ soạn thảo Text, bộ soạn thảo Waveform
2 Qui định tên file thiết kế mức đỉnh (top-level) như là tên của project
3 Gán một họ thiết bị cho project Chúng ta chọn một thiết bị cụ thể, hoặc để cho trình biên dịch tự động thiết bị
4 Mở cửa sổ trình biên dịch chọn nút lệnh Start để biên dịch project Chúng ta có thể chọn môđun Timing SNF Extractor để tạo ra một netlist file dùng trong mô phỏng timing hoặc phân tích timing
5 Khi project biên dịch thành công, chúng ta có thể mô phỏng hoặc phân tích timing của project này:
Trang 20a Để phân tích timing Mở cửa sổ MAX+PLUS II Timing Analyzer, chọn chế độ phân tích, chọn nút Start Sẽ nói rõ ở phần sau
b Để mô phỏng, trước hết phải tạo một Simulator Channel File (.scf) bằng bộ soạn thảo Waveform hoặc Vector File (.vec) bằng bộ soạn thảo Text Sau đó mở cửa sổ MAX+PLUS II Simulator, chọn nút Start Sẽ nói rõ ở phần sau
6 Mở cửa sổ MAX+PLUS II Programmer, chèn thiết bị cần lập trình vào phần cứng lập trình
7 Chọn nút Program để lập trình một thiết bị dựa vào công nghệ EPROM, EEPROM, FLASH hoặc chọn nút Configure để lập trình cho thiết bị dựa vào công nghệ SRAM
HÌNH III-3 CỬA SỔ CHÍNH CỦA MAX + PLUS II
Cửa sổ chính của phần mềm MAX+PLUS II đước minh họa ở hình 3-3 Cửa sổ quản lý MAX+PLUS II sẽ mở tự động khi chúng ta bắt đầu ứng dụng MAX+PLUS II Từ menu MAX+PLUS II chúng ta có thể mở các ứng dụng MAX+PLUS II Xem hình III-4
Tất cả các thao tác là giống nhau trong các ứng dụng của MAX+PLUS II Ví dụ: mở 1 file, biên dịch và mô phỏng một project hiện hành hoặc chuyển sang một project khác là giống
nhau trong tất cả ứng dụng của MAX+PLUS II
Trang 21HÌNH III-4 MENU TRONG CỬA SỔ QUẢN LÝ MAX + PLUS II
Phần mềm MAX+PLUS II có tất cả 11 chương trình ứng dụng Bảng III-1 chỉ ra cụ thể Hierarchy Display Biểu diễn sự phân cấp hiện hành của các file giống như một cây phân cấp
mà các nút lá là các thiết kế con
Graphic Editor Cho phép chúng ta cho vào các thiết kế logic ở dạng đồ họa
Symbol Editor Cho phép chúng ta soạn thảo một symbol đang tồn tại hoặc tạo mới chúng Text Editor Cho phép tạo mới hoặc soạn thảo một file thiết kế văn bản viết dưới dạng
AHDL hoặc VHDL
Waveform Editor Vừa là một công cụ thiết kế vừa là một công cụ tạo file vector đầu vào
nhằm mục đích mô phỏng và xem kết quả mô phỏng
Floorplan Editor Cho phép chúng ta gán logic đến các chân vật lý của thiết bị ở môi trường
đồ họa Chúng ta có thể thay đổi vị trí các chân của thiết bị
Compiler Biên dịch logic project tạo ra output files dùng để nạp vào các họ thiết bị
như: Altera Classic, MAX 5000, MAX 7000, MAX 9000, FLEX 8000, FLEX 10K Nó thực hiện hầu hết các công việc một cách tự động
Simulator Cho phép chúng ta kiểm tra các hoạt động logic và timing của mạch logic
Gồm mô phỏng chức năng và mô phỏng timing
Trang 22Timing Analyzer Phân tích hiệu suất của mạch logic sau khi nó đã được tổng hợp và tối ưu bởi
Compiler
Programmer Cho phép chúng ta lập trình, kiểm tra và thử các thiết bị Altera
Message Processor Biểu diễn lỗi, cảnh báo và thông báo trạng thái của project và cho phép xác
định tự động vị trí lỗi ở file thiết kế gốc, ancillary file
BẢNG III-1 MÔ TẢ CÁC ỨNG DỤNG TRONG MAX + PLUS II
Trước khi bắt đầu làm việc với MAX+PLUS II chúng ta cần biết sự khác nhau giữa Design files, Ancillary files và projects
• Design files: Một file thiết kế (design file) là một file đồ họa (graphic), file văn bản
(text) hoặc file dạng sóng (waveform) được tạo ra từ bộ soạn thảo Graphic, Text hoặc Waveform Nó chứa logic về một MAX+PLUS II project và được biên dịch bởi Compiler Compiler có thể xử lý tự động các design files như sau:
-Graphic Design Files (.gdf)
-Text Design Files (.tdf)
-Waveform Design files (wdf)
-VHDL Design Files (.vhd)
-OrCAD Schematic Files (sch)
-EDIF Input Files (.edf)
-Xilinx Netlist Format Files (.xnf)
-Altera Design Files (.adf)
-State Design Files (.sdf)
• Ancillary Files: Ancillary file là file tương thích với MAX+PLUS II nhưng không phải là
một thành phần của cây phân cấp Hấu hết các ancillary file không chứa các thiết kế logic Một vài file được tạo ra tự động từ ứng dụng MAX+PLUS II, một số khác do người dùng tạo ra Ví dụ: Các file sau đây là ancillary file: Assignments & Configuration Files (.acf), Symbol Files (.sym), Report files (.rpf), Vector Files (.vec)
• Projects: Gồm tất cả các file trong cây phân cấp, kể cả các ancillary input, output files
Tên project là tên của file thiết kế mức đỉnh (top-level) không có phần mở rộng MAX+PLUS II thực hiện kiểm tra để phát hiện lỗi, biên dịch, mô phỏng (chức năng hoặc timing), phân tích timing, tạo ra các file dùng để lập trình thiết bị
Mỗi project nên đặt vào một thư mục riêng của thư mục làm việc \max2plus (trên hệ thống
UNIX thư mục này là thư mục con của thư mục /usr)
DESIGN ENTRY
MAX+PLUS II đẩy nhanh tốc độ thiết kế bằng một tập hợp các hàm logic chuẩn có sẵn bao gồm primitives, megafunctions, các hàm LPM, …
Trang 23MAX+PLUS II cung cấp ba loại bộ soạn thảo design entry là: bộ soạn thảo Graphic, bộ soạn thảo Text, và bộ soạn thảo Waveform; và hai bộ soạn thảo phụ là Symbol và Floorplan
Trong một project phân cấp chúng ta có thể tổ hợp Graphic Design Files (.gdf), Text Design Files (.tdf), VHDL Design Files (.vhd), EDIF Input Files (.edf) và OrCAD Schematic Files (.sch) với nhau tại bất cứ mức nào của cây phân cấp Tuy nhiên Waveform Design Files (.wdf), Xilinx Netlist Format Files (.xnf), Altera Design Files (.adf) và State Machine Files (.smf) phải ở mức thấp nhất của cây phân cấp hoặc chỉ là file thiết kế trong một project một cấp Xem hình III-5
HÌNH III-5 MAX + PLUS II DESIGN ENTRY METHODS
Trang 24Biểu diễn phân cấp trong MAX+PLUS II chỉ ra một thiết kế logic phân cấp giống như một cây phân cấp với các file thiết kế ở mức thấp hơn là các nhánh của cây Xem hình III-6
Khi chúng ta mở biển diễn phân cấp, nó chỉ ra sự phân cấp đầy đủ của các file thiết kế – gọi là một cây phân cấp Khi một hoặc nhiều files trong cây phân cấp mở thì đỉnh của biểu tượng của file này sẽ sáng lên
Trong cây phân cấp chúng ta sẽ dễ dàng di chuyển qua lại giữa các kiểu files khác nhau
Ví dụ khi chúng ta mở hoặc đóng một hoặc nhiều file trong cây phân cấp thì các bộ soạn thảo tương ứng cũng sẽ tự động mở hoặc đóng
Bộ biên dịch project bao gồm nhiều môđun và tiện ích nhằm mục đích kiểm tra lỗi, tổng hợp logic, fit project vào một hoặc nhiều thiết bị Altera, và tạo các output files dùng để mô phỏng, phân tích timing và lập trình thiết bị Hình 3-7 minh họa cửa sổ của bộ biên dịch MAX+PLUS
II
HÌNH III-7 BỘ BIÊN DỊCH MAX + PLUS II Trình biên dịch dùng nhiều kỹ thuật để tối ưu project, nếu project quá lớn không fit vừa một thiết bị thì trình biên dịch sẽ tự động phân hoạch project thành nhiều thiết bị thuộc cùng họ File báo cáo (.rpt) cho biết project được hiện thực vào một hay nhiều thiết bị
Sau khi chúng ta đã thiết lập các chọn lựa, chúng ta bắt đầu biên dịch project Chúng ta có thể bắt đầu biên dịch project từ bất cứ trình ứng dụng nào hoặc từ cửa sổ Compiler (chọn từ menu MAX+PLUS II) Trình biên dịch sẽ xử lý tất cả các input file của project hiện hành và chúng ta có thể giám sát quá trình biên dịch ở cửa sổ Compiler
Trang 25Các môđun của trình biên dịch và các output files như sau:
• Compiler Netlist Extrator: Biến đổi mỗi file thiết kế thành một hoặc nhiều file nhị
phân Compiler Netlist Files (.cnf) Do Compiler Netlist Extrator phân tích giá trị của mọi tham số dùng trong các hàm có tham số nên nội dung của file CNF thay đổi khi giá trị của tham số thay đổi Compiler Netlist Extrator còn tạo ra Hierarchy Interconnect File (.hif), ghi lại các kết nối phân cấp giữa các files trong project, cung cấp thông tin cần thiết để chỉ ra cây phân cấp trong biểu diễn phân cấp Ngoài ra Compiler Netlist Extrator còn tạo ra Node Database File (.ndb) chứa tên các node của project
• Database Builder: Database Builder dùng HIF để liên kết các CNFs thành một cơ sở dữ
liệu đơn Cơ sở dữ liệu này lưu trữ kết nối điện của project Khi tạo ra cơ sở dữ liệu, Database Builder sẽ kiểm tra tính toàn vẹn của project, kết nối biên và lỗi cứ pháp
• Logic Synthesizer: Môđun Logic Synthesizer sử dụng nhiều giải thuật nhằm làm giảm
sự sử dụng tài nguyên và loại bỏ logic dư thừa để đảm bảo cấu trúc tế bào logic càng hiệu quả càng tốt Ngoài ra Logic Synthsizer còn tìm kiếm các nodes treo (không kết nối) để loại bỏ các primitives tương ứng với các node treo này
• Partitioner: Nếu một project không fit vừa vào một thiết bị thì môđun Partitioner sẽ
chia cơ sở dữ liệu được cập nhật ở môđun Logic Synthesizer thành nhiều thiết bị thuộc cùng họ
• Fitter: Sử dụng dữ liệu được cập nhật ở Partitioner làm phù hợp giữa các yêu cầu của
project và các tài nguyên của một hoặc nhiều thiết bị Fitter sẽ gán các hàm logic đến vị trí tế bào logic tốt nhất và chọn các đường kết nối và gán chân phù hợp với yêu cầu của project Fitter làm phù hợp giữa sự gán tài nguyên (như: chân, tế bào logic, tế bào I/O, chip, thiết bị, timing, gán chân trong file ACF của project) với các tài nguyên có sẵn Fitter còn tạo ra file báo cáo (.rpf) ghi lại thông tin fit về sự phân cấp project, tên các chân input và output, project timing, và các tài nguyên chưa sử dụng của một thiết bị trong một project
• Functional SNF Extractor: Tùy chọn Functional SNF Extractor tạo ra functional
Simulator Netlist File (.snf) dùng để mô phỏng chức năng Compiler sẽ tạo file này trước khi nó tổng hợp project, do đó nó chứa tất cả các node có trong files thiết kế gốc SNF chức năng không chứa thông tin timing File này chỉ được tạo khi biên dịch project không có lỗi
• Timning SNF Extractor: Tùy chọn Timing SNF Extrator tạo ra timing Simulator Netlist
File (.snf) dùng để mô phỏng timing và phân tích timing File này chỉ được tạo khi biên dịch project không có lỗi
• Assembler: Biến đổi các tế bào logic, chân, gán thiết bị được cập nhật ở môđun Fitter
thành một hoặc nhiều files nhị phân Programer Object Files (.pof) hoặc SRAM Object Files (.sof) là những files hình ảnh (images) để tải lên thiết bị Đối với một vài thiết bị, Compiler tạo
ra JEDEC Files (.jed), Tabular Text Files (.ttf), và Hexadecimal Files (.hex) Các file POF, SOF và JEDEC sau đó được xử lý bởi Programmer, hoặc Programmer chuẩn công nghiệp khác, để tạo ra các thiết bị làm việc được Các files HEX và TTF có thể được dùng để cấu hình các thiết
bị FLEX 8000 và FLEX 10K Assembler chỉ tạo ra các files này khi Compiler biên dịch không lỗi
Trang 26III.1.B.8 KIỂM TRA PROJECT
MAX+PLUS II cung cấp ba ứng dụng-MAX+PLUS II Simulator, Timing Analyzer, Waveform Editor- giúp chúng ta kiểm tra logic của project đã được biên dịch Xem hình 3-8
• Mô phỏng chức năng: Khi MAX+PLUS II Compiler tạo ra SNF chức năng, nó tạo SNF
trước khi tổng hợp project Ở mô phỏng chức năng tất cả các nodes có thể được mô phỏng Trong mô phỏng chức năng, Simulator sẽ bỏ qua tất cả độ trễ lan truyền Các mức logic đầu ra sẽ thay đổi tại cùng thời điểm với các mức logic đầu vào
• Mô phỏng timing: Khi MAX+PLUS II Compiler tạo ra timing SNF sau khi project đã
được tổng hợp và tối ưu Do đó timing SNF chỉ chứa những nodes nào mà không bị loại ra trong quá trình tổng hợp logic Simulator sẽ dùng thông tin từ SNF, nó chứa thông tin phần cứng, để mô phỏng project Khi project được phân hoạch thành hai thiết bị hoặc nhiều hơn, Compiler sẽ tạo ra SNF cho project và mô phỏng timing sẽ thực hiện cho cả project
HÌNH III-8 KIỂM TRA PROJECT MAX+PLUS II
Trang 27BỘ SOẠN THẢO WAVEFORM:
Bộ soạn thảo waveform được dùng để tạo ra input vectors và xem kết quả mô phỏng Chúng ta tạo Channel Simulator Files (.scf) chứa input vectors cho mục đích mô phỏng SCF chứa các dạng sóng của các input vectors và tên các nodes đầu ra Bộ soạn thảo waveform có thể dùng Simulator Netlist Files (.snf) để tạo ra SCF mặc nhiên chứa một vài hoặc tất cả có nodes và các nhóm trong project Bằng bộ soạn thảo dạng sóng, chúng ta có thể xem kết quả đầu ra của sự mô phỏng CNF sẽ được cập nhật trong quá trình mô phỏng và các dạng sóng của các nodes đầu
ra được tạo ra theo các mức logic của các dạng sóng đầu vào
TIMING ANALYZER
Với Timing Analyzer chúng ta có thể phân tích hiệu suất của project sau khi nó đã được tổng hợp bởi Compiler Chúng ta có thể vạch ra tất cả các đường (path) tín hiệu trong project, xác định những đường tốc độ tới hạn cũng như những đường làm hạn chế hiệu suất của project Timing Analyzer sử dụng timing SNF được tạo ra trong quá trình biên dịch, cũng như thông tin phần cứng thiết bị DMF của các thiết bị sử dụng trong project Timing Analyzer gồm ba dạng phân tích:
• Delay Matrix: Phân tích các đường trì hoãn lan truyền giữa các nodes nguồn và đích
trong project và biểu diễn chúng ở dạng matrix, chỉ ra đường ngắn nhất và dài nhất giữa chúng
• Setup/hold Matrix: Tính thời gian setup và hold nhỏ nhất từ các chân đầu vào đến các
đầu vào Data, Clock Enable, Latch Enable của các mạnh fliplops, latchs, và RAM bất đồng bộ
• Regiterd performance Matrix: Phân tích độ trì hoãn hạn chế hiệu suất, chu kỳ Clock
ngắn nhất và tần số mạch lớn nhất
Timing Analyzer cho phép chúng ta tự chọn các nodes nguồn và đích bằng cách đánh dấu nodes nguồn và đích cần có trong sự mô phỏng Chúng ta cũng có thể đánh dấu trực tiếp các nodes này trong các files thiết kế ở dạng Graphic, Text, Waveform và ở dạng project floorplan bằng bộ soạn thảo floorplan Chúng ta có thể dùng đánh dấu timing mặc nhiên cho các nodes nguồn và đích cho mỗi kiểu Analysis do Timing Analyzer cung cấp
Timing Analyzer cũng cho phép chúng ta có thể loại trừ các đường tín hiệu khỏi sự phân tích thời gian bằng cách đánh dấu các nodes này là cut off Khi một node được đánh dấu là cut off, tất cả các tín hiệu liên quan đến node này sẽ được bỏ qua trong quá trình phân tích Chúng
ta cũng có thể xác định độ trì hoãn ngắn nhất và dài nhất của các đường được chỉ ra trong biểu diễn Delay Matrix
POGRAMMER
MAX+PLUS II Programmer, xem hình III-9, dùng các files được tạo ra trong quá trình biên dịch bởi Compiler để lập trình các thiết bị Altera Cho phép chúng ta lập trình và kiểm tra chức năng thiết bị
Programmer chấp nhận các định dạng file lập trình sau để lập trình hoặc cấu hình cho một hoặc nhiều thiết bị:
• Programmer Object File (.pof) dùng lập trình các thiết bị như: Altera Classic, MAX
5000, MAX 7000 và MAX 9000 và cấu hình các thiết bị FLEX 8000 và FLEX 10K
Trang 28• SRAM Object File (.sof) dùng cấu hình thiết bị FLEX 8000 và FLEX 10K
• JEDEC File (.jed) dùng để lập trình thiết bị Altera Classic, các thiết bị EPM 5016, EPM
5032 thuộc MAX 5000 và các thiết bị FLASHLogic
JTAG Chain File (.jcf) mô tả thứ tự các file POF và SOF và JEDEC của nhiều thiết bị được lập trình hoặc cấu hình ở dạng chuỗi nhiều thiết bị được kết nối đến chuỗi JTAG
Programmer và Compiler cũng tạo ra Hexadecimal (Intel format) Files (.hex), Tabular Text Files (.ttf), Serial Std_logicstream Files (.sbf) và Raw Binary Files (.rbf) để cấu hình các thiết bị FLEX 8000 và FLEX 10K ở môi trường lập trình khác
Có thể nạp dữ liệu cấu hình vào SRAM cho các thiết bị FLASHlogic, FLEX8000, FLEX 10K qua cáp ByteBlasterMV, hoặc MasterBlaster (các loại cáp này sẽ được nói rõ ở phần sau) Cũng có thể lập trình các thiết bị FLASHlogic, MAX7000, MAX9000 bằng cáp ByteBlasterMV, hoặc MasterBlaster Ngoài ra còn có thể lập trình hoặc cấu hình nhiều thiết bị
ở chuỗi JTAG dùng ByteBlasterMV, hoặc MasterBlaster
HÌNH III-9 MAX + PLUS II PROGRAMMER
Để bắt đầu lập trình và cấu hình lên thiết bị bằng cách chọn nút Program hoặc Configure, nếu có lỗi hoặc có vấn đề gì được phát hiện trong quá trình lập trình hoặc cấu hình thì cửa sổ thông báo lỗi sẽ xuất hiện với thông báo mô tả nội dung lỗi đó Hình 3-10 minh họa phương pháp luận lập trình thiết bị
Trang 29HÌNH III-10 PHƯƠNG PHÁP LUẬN LẬP TRÌNH THIẾT BỊ
Hãng Altera đưa ra nhiều phần cứng để lập trình và cấu hình các thiết bị Bao gồm các phần cứng lập trình như:
• Altera Programming Unit
• Altera Stand-Alone Programmer
• Logic Programmer Card
• Master Programmer Unit
• Programming Adapters
ALTERA PROGRAMMING UNIT (APU)
APU là một môđun phần cứng được dùng cùng với một adapter thích hợp để lập trình các thiết bị Altera APU kết nối với PC qua cổng Universal Serial Bus (USB) và được cấp nguồn từ một adapter nguồn chuẩn Dữ liệu lập trình được truyền từ PC qua kết nối cổng USB đến APU Một đèn báo hiệu trạng thái lập trình trên APU sẽ sáng khi APU tích cực
Khi sử dụng với một Adapter thích hợp APU tự động kiểm tra kết nối giữa thiết bị và socket lập trình trước khi lập trình Nó dùng test vectors để thử chức năng và kiểm tra thiết bị lập trình Test vectors được tạo ở dạng Waveform hoặc Text bằng bộ soạn thảo Waveform hoặc Text; kết quả có thể xem ở dạng Waveform hoặc dạng Text
ALTERA STAND-ALONE PROGRAMMER
Altera Stand-Alone Programmer (PL-ASAP2), cùng với các adapter lập trình chuẩn, cung cấp phần cứng và phần mềm cho việc lập trình các thiết bị dựa vào công nghệ EPROM và EEPROM và cho việc cấu hình các thiết bị dựa vào công nghệ SRAM Gói PL-ASAP2 gồm một Logic Programmer Card và MPU, và phần mềm MAX+PLUS II Programmer
LOGIC PROGRAMMER CARD
Logic Programmer Card (LP6) sinh ra các dạng sóng và điện áp lập trình cho MPU Card điều khiển phần mềm này được cắm vào các khe cắm của các PC của hãng IBM và các máy tính tương thích LP6 đi cùng với PL-ASAP2 hoặc có thể mua riêng
Trang 30MASTER PROGRAMMER UNIT (MPU)
MPU là một môđun phần cứng được dùng cùng với một adapter tương thích để lập trình các thiết bị phần cứng MPU kết nối tới Logic Programmer Card qua một cáp bằng 25-chân MPU nhận nguồn từ Logic Programmer Card và không cần nguồn cung cấp bên ngoài Dữ liệu lập trình được truyền từ Logic Programmer Card qua kết nối cổng USB đến MPU Một đèn báo hiệu trạng thái lập trình trên MPU sẽ sáng khi MPU tích cực
Khi sử dụng với một Adapter thích hợp MPU tự động kiểm tra kết nối giữa thiết bị và socket lập trình trước khi lập trình Nó dùng test vectors để thử chức năng và kiểm tra thiết bị lập trình Test vectors được tạo ở dạng Waveform hoặc Text bằng bộ soạn thảo Waveform hoặc Text; kết quả có thể xem ở dạng Waveform hoặc dạng Text MPU đi cùng với PL-ASAP2 hoặc có thể mua riêng
PROGRAMMING ADAPTERS
Hãng Altera cung cấp ba loại Adapter lập trình: PLM-Prefix Adapters, PLE-Prefix Adapter và adapter tương thích PLAD3-12 Mỗi Adapter chứa một hoặc nhiều socket
• PLM-Prefix Adapters: PLM-Prefix Adapters cắm trực tiếp vào APU hoặc MPU Mỗi
adapter chỉ hỗ trợ các gói thiết bị cụ thể Hầu hết các Adapter loại PLM-Prefix hỗ trợ việc kiểm tra chức năng của các thiết bị được lập trình Adapter loại PLMJ1213 và loại PLMT1064 có thể dùng để cấu hình các thiết bị: APEX II, APEX 20K, ACEX 1K, FLEX 10K, FLEX 8000, FLEX
6000
• PLE-Prefix Adapters: PLM-Prefix Adapters được cắm vào adapter tương thích với
PLAD3-12, Sau đó adapter PLAD3-12 được cắm vào APU hoặc MPU Mỗi PLM-Prefix Adapter hỗ trợ lập trình cho thiết bị Classic cụ thể
• Adapter tương thích PLAD3-12: Adapter tương thích với PLAD3-12 được cắm trực tiếp
vào APU hoặc MPU Các adapters tương thích này cũng cho phép Adapters loại PLM-Prefix dùng với APU
f) MASTERBLASTER DOWNLOAD CABLE
MasterBlaster Download cable là một giao diện phần cứng được kết nối với các máy PC chuẩn hoặc máy tạm UNIX qua cổng RS-232 (còn gọi là cổng ‘COM’ trên máy PC hoặc cổng
‘ttya’ trên máy tạm UNIX) hoặc kết nối với cổng USB Nó cung cấp dữ liệu cấu hình cho các thiết bị: APEX II, APEX 20K, ACEX 1K, FLEX 10K, FLEX 8000, FLEX 6000 và dữ liệu lập trình cho các thiết bị: MAX 9000, MAX 7000S, MAX 3000A, MAX 7000B và MAX 7000A Nguồn hoạt động tại 3.3-V hoặc 5.0-V
Cáp MasterBlaster cung cấp hai chế độ download:
• Chế độ Passive Serial (PS) - Dùng để cấu hình các thiết bị APEX II, APEX 20K, FLEX
• Chế độ JTAG – Là giao diện chuẩn công nghiệp dùng để lập trình các thiết bị MAX có khả năng cài đặt ở chuỗi JTAG và thiết bị cấu hình trình tự, hoặc cấu hình các thiết bị APEX II, APEX 20K, FLEX
Một đầu cái 25-chân trên cáp MasterBlaster kết nối đến cổng RS-232 với một cáp nối tiếp chuẩn Hoặc MasterBlaster có thể kết nối với cổng USB Một đầu cắm cái 10-chân trên
Trang 31cáp MasterBlaster kết nối với thiết bị trên bo mạch qua đầu cắm đực 10-chân Cáp MasterBlaster chứa các đèn chỉ trạng thái lập trình hoặc cấu hình của thiết bị
g) BYTEBLASTERMV PARALLEL DOWNLOAD CABLE
ByteBlasterMV Parallel Download Cable là một giao diện phần cứng kết nối với cổng song song chuẩn (còn gọi cổng máy in) của các máy PC Nó cung cấp dữ liệu cấu hình cho các thiết bị : APEX II, APEX 20K, ACEX 1K, FLEX 10K, FLEX 8000, FLEX 6000 và dữ liệu lập trình cho các thiết bị: MAX 9000, MAX 7000S, MAX 7000B, MAX 7000A, và MAX 3000A Nguồn cung cấp Vcc tại 3.3-V hoặc 5.0-V
Cáp ByteBlasterMV cung cấp hai chế độ download:
• Chế độ Passive Serial (PS) - Dùng để cấu hình các thiết bị APEX II, APEX 20K, Mercury, ACEX 1K, Excalibur, FLEX 10K, FLEX 8000, và FLEX 6000
• Chế độ JTAG – Là giao diện chuẩn công nghiệp dùng để lập trình hoặc cấu hình các thiết bị APEX II, APEX 20K, Mercury, ACEX 1K, Excalibur, FLEX 10K, MAX 9000, MAX 7000S, MAX 7000A, MAX 7000B và MAX 3000A
Cáp ByteBlasterMV có một đầu đực 25-chân được cắm vào cổng máy in của PC và một đầu cái 10-chân cắm vào bo mạch Dữ liệu được tải xuống từ cổng máy in qua cáp ByteBlasterMV đến bo mạch
Để cấu hình hoặc lập trình các thiết bị có điện áp thấp (như: ACEX 20K và MAX 7000B) dùng cáp ByteBlasterMV, kết nối chân Vcc của cáp với điện áp 3.3-V và thiết bị với nguồn điện áp thích hợp
Phần mềm MAX+PLUS II cung cấp chức năng lập trình và cấu hình thiết bị dùng MasterBlaster Download cable Trình tự các bước thực hiện như sau:
A Biên dịch project Trình biên dịch tự động tạo ra file SRAM Obeject File (.sof) cho các thiết bị FLEX 20K, FLEX 8000, và FLEX 6000, hoặc Programmer Object File (.pof) cho các thiết bị MAX 9000, MAX 7000S, MAX 7000A, MAX 7000B và MAX 3000A
B Kết nối cáp đến cổng máy in trên máy PC và cắm đầu cắm cái 10-chân vào bo mạch chứa thiết bị cần lập trình Bo mạch phải cung cấp nguồn tới cáp ByteBlasterMV
C Mở cửa sổ MAX+PLUS II Programmer Vào menu Options -> Hardware Setup để
chọn cáp MasterBlaster và cổng LPT thích hợp
D Phần mềm MAX+PLUS II tự động nạp file lập trình cho project hiện hành (POF hoặc SOF), hoặc file lập trình đầu tiên cho Project nhiều thiết bị Để chọn file lập trình khác,
vào menu File->Select Programming File chọn file cần tải lên thiết bị Đối với thiết
bị FLEX 20K, FLEX 8000, và FLEX 6000 chọn file SOF; đối với các thiết bị MAX
9000, MAX 7000S, MAX 7000A, MAX 7000B or MAX 3000A chọn file POF
E Để lập trình hoặc cấu hình ở chuỗi JTAG hoặc FLEX thực hiện các bước sau: Để lập
trình hoặc cấu hình ở chuỗi JTAG (chuỗi một hoặc nhiều thiết bị) chọn Multi-Devive
JTAG-Chain của menu JTAG và chọn Multi-Device JTAG Chain Setup để cài đặt
chuỗi Multi-Device JTAG
Trang 32F Nếu chuỗi JTAG chỉ gồm các thiết bị FLEX hoặc MAX, cài đặt và chỉ tạo một JTAG Chain Flie (.jcf) Mặt khác nếu chuỗi JTAG gồm hỗp hợp các thiết bị FLEX và MAX, cài đặt và tạo ra hai JCF riêng biệt Một JCF sẽ cấu hình các thiết bị FLEX và một JCF sẽ lập trình các thiết bị MAX
G Để cấu hình nhiều thiết bị ở chuỗi FLEX, chọn Multi-Device FLEX Chain (menu
FLEX) và chọn Multi-Device FLEX Chain Stup để cài đặt chuỗi Multi-Device FLEX
H Chọn nút Program hoặc Configure ở phần mềm MAX+PLUS II để lập trình hoặc cấu
hình các thiết bị, cáp ByteBlasterMV sẽ tải dữ liệu từ file POF hoặc SOF vào các thiết
bị
KIT LẬP TRÌNH UP2
UP2 (University Program UP2 Development Kit) là kit lập trình của hãng Altera được thiết
kế để đáp ứng các nhu cầu dạy và học thiết kế logic số Gói này cung cấp tất cả các công cụ cần thiết cho việc tạo và hiện thực các thiết kế logic số Bo mạch UP có chứa hai thiết bị
EPM7128S và EPF10K70
Thiết bị EPM7128S được chế tạo dựa trên công nghệ EEPROM, trong một gói 84-chân plastic J-lead chip carrier (PLCC) EPM7128S có 128 macrocells Mỗi macrocell có một mảng cổng programmable-AND/fixed-OR và một thanh ghi cấu hình được
Thiết bị EPF10K70 được chế tạo theo công nghệ SRAM, trong một gói 240-chân power quad flat pack (RQFP) EPF10K70 có 3744 logic elements (LEs) và 9 embedded array blocks (EABs) Mỗi LE gồm một LUT bốn ngõ vào và một flipflop lập trình được Mỗi EAB cung cấp
2048 std_logics nhớ
Hai thiết bị này có thể được lập trình hoặc cấu hình dùng phần mềm MAX+PLUS II và ByteBlaster download cable Phần mềm MAX+PLUS II và ByteBlaster II download cable đã được giới thiệu ở trên Hình 3-11 là sơ đồ khối của kit lập trình UP2
Để lập trình và cấu hình các thiết bị trên bo mạch UP2 đòi hỏi phải set các jumbers trên bo mạch và kết nối ByteBlaster download cable đến cổng máy in của máy PC và tới đầu nối JTAG_IN (có ghi rõ trên bo mạch) trên bo mạch UP2
Đầu tiên set các jumbers TDI, TDO, DEVICE, và BOARD trên bo UP2 cho phù hợp với thiết bị cần lập trình hoặc cấu hình
Kết nối trực tiếp cáp ByteBlaster đến cổng máy in của máy PC và tới đầu cắm JTAG_IN trên bo UP2
Các bước thực hiện để lâtrên phần mềm MAX+PLUS II như sau:
a Chọn Multi-Device JTAG Chain (menu JTAG)
b Chọn Multi-Device JTAG Chain Setup (menu JTAG)
c Trong hộp thoại Multi-Device JTAG Chain Setup, chọn tên thiết bị cần lập trình
hoặc cấu hình
d Trong hộp Programming File Name đánh vào tên của file lập trình cho thiết bị được liệt kê trong hộp Device Name
Trang 33e Chọn nút Add để thêm thiết bị và file lập trình tương ứng đến hộp Device Names
& Programming File Names Số bên trái tên thiết bị chỉ ra thứ tự của thiết bị
trong chuỗi JTAG File lập trình tương ứng với thiết bị được biểu diễn cùng dòng với tên thiết bị Nếu file lập trình không tương thích với thiết bị, “<none>” được biểu diễn kế bên tên thiết bị
Nếu lập trình chỉ một loại thiết bị thì bỏ qua bước f còn lập trình hoặc cấu hình cả hai thiết bị thực hiện bước f
f Lập lại các bước từ bước 3 đến bước 5 để thêm thông tin cho mỗi thiết bị trong chuỗi JTAG
g Chọn Detect JTAG Chain Info, để kiểm tra cáp và số thiết bị
h Để lưu cài đặt hiện tại đến JTAG Chain File (.jcf) để dùng lại sau này, chọn Save
JCF Trong hộp thoại Save JCF, đánh vào tên của file vào hộp thoại File Name
sau đó chọn thư mục muốn lưu trong hộp Directories Chọn OK
i Chọn OK để lưu thay đổi
Trong cửa sổ MAX+PLUS II Programmer, Chọn Configure để cấu hình tất cả các thiết
bị EPF10K20 trong chuỗi JTAG Sau đó chọn Program để lập trình tất cả các thiết bị
EPM7128S trong chuỗi JTAG
HÌNH III-11 SƠ ĐỒ KHỐI CỦA KIT LẬP TRÌNH UP2
III.2 PHƯƠNG PHÁP TRIỂN KHAI ĐỀ TÀI:
Phương pháp thiết kế dùng trong đề tài là top-down
III.2.A TỔNG QUAN VỀ PHƯƠNG PHÁP TOP-DOWN:
Thay vì cố gắng thiết kế một hệ thống lớn trong một lần, thì quá trình thiết kế top-down tiến hành phân chia hệ thống thành các thành phần con cho đến khi tất cả các thành phần con đó trở thành những phần có có thể quản lý được Một thành phần quản lý được nếu nó có sẵn trong thư viện linh kiện ảo Quá trình phân chia này là một quá trình đệ qui Hình III-
Trang 3412 là một thủ tục khái quát việc phân chia đệ qui của một thiết kế trong quá trình thiết kế top-down
HÌNH III-12 THỦ TỤC ĐỆ QUI
Thủ tục Partition trên được gọi đệ qui cho đến khi thiết kế của tất cả các thành phần con được hoàn thành bởi thủ tục HardwareMapping Khi sự thực hiện thủ tục Partition kết thúc,
nó sẽ hình thành cây phân hoạch và sự hiện thực phần cứng (cài đặt phần cứng) của các nút lá của cây như trong hình 3-15 Lưu ý rằng quá trình hiện thực là bottom-up, các thành phần phần cứng được nối kết đệ qui theo hướng từ dưới lên để tạo thành liên kết có trật tự của hệ thống hoàn chỉnh
HÌNH III-13 THIẾT KẾ TOP-DOWN VÀ HIỆN THỰC BOTTOM-UP
- SUD: System Under Design
- SSC: System Sub-Component
- Những hình gạch chéo là các thành phần có trong thư viện
Tại mỗi bước của quá trình thiết kế top-down công cụ mô phỏng nhiều mức đóng vai trò quan trọng trong sự hiện thực đúng của thiết kế
Đầu tiên, hệ thống được thiết kế (SUD) phải được mô phỏng để kiểm tra sự hiễu biết vấn đề của người thiết kế Sau mức phân chia đầu tiên, mỗi thành phần con phải được phát triển và được nối kết để tạo ra mô hình kiến trúc phần cứng của SUD Mô phỏng mô hình mới này và so sánh kết quả với mô tả ban đầu của SUD để kiểm tra tính đúng đắn của mức phân chia này Hình III-14 cho thấy sự kiểm tra mức đầu tiên của phân hoạch trên
Trang 35Các vòng tròn chấm chấm trong hình trên biểu diễn sự mô phỏng nhiều mức của các thành phần được bao Các hình chữ nhật có đường viền đậm biểu thị các mô tả của các thành phần được dùng trong việc tạo mẫu mô phỏng
HÌNH III-14 KIỂM TRA MỨC ĐẦU TIÊN CỦA PHÂN HOẠCH Sau khi kiểm tra mức phân chia đầu tiên, sự hiện thực phần cứng của SSC1 và SSC2 phải được kiểm tra Đối với mục đích này, một mô phỏng khác được thực hiện, trong đó các thành phần SSC1 và SSC2 được thay thế bởi các mô hình ở mức phần cứng chi tiết hơn sẽ được thực hiện Hình III-15 trình bày giai đoạn kiểm tra này Trong hình này, các hình chữ nhật gạch chéo biểu thị có sự hiện thực phần cứng của thành phần con và có đặc tính vật lý
HÌNH III-15 KIỂM TRA HIỆN THỰC PHẦN CỨNG CỦA SSC1 VÀ SSC2 Quá trình phân chia và kiểm tra ở trên tiếp tục diễn ra trong suốt quá trình thiết kế Cuối cùng mô hình mô phỏng chứa các đặc tả nối kết các kiểu ở mức phần cứng của các nút lá của cây phân hoạch Thay vì mô phỏng nối kết của tất cả các thành phần phần cứng và so sánh với mô tả ban đầu của SUB, điều này sẽ mất nhiều thời gian, người ta sẽ kiểm tra các phần phụ trong cây phân hoạch độc lập nhau Hình III-16 minh hoạ kiểm tra phần cứng SSC3
HÌNH III-16 KIỂM TRA HIỆN THỰC PHẦN CỨNG CỦA SSC3
Trang 36Sau khi đã kiểm tra, các phần phụ này có thể được dùng tin cậy trong việc tạo mẫu mô phỏng cho sự kiểm tra thiết kế cuối cùng Hình III-17 cho thấy sự kiểm tra thiết kế cuối cùng sư dụng các phần phụ đã kiểm tra
HÌNH III-17 KIỂM TRA THIẾT KẾ CUỐI CÙNG RÚT GỌN HƠN
III.2.B QUI TRÌNH THIẾT KẾ:
Qui trình tổng quát thiết kế hệ thống số được diễn tả trong hình III-18 :
HÌNH III-18 QUI TRÍNH THIẾT KẾ HỆ THỐNG SỐ
Ý tưởng ban đầu:
Rõ ràng để thiết kế hệ thống bất kỳ, người thiết kế phải có một số ý tưởng về hệ thống của mình
Thiết kế hành vi:
Từ ý tưởng thiết kế, ta từng bước định nghĩa cụ thể hơn các yêu cầu, các đặc tả về hệ thống cần thiết kế Khi các đặc tả đã trở nên rõ ràng, người thiết kế có thể xác định được hành vi của hệ thống, mà chúng có thể được biểu diễn dưới dạng sơ đồ khối, lưu đồ, hoặc ngôn ngữ giả
Trang 37Người thiết kế đặc tả toàn bộ các chức năng và ngõ tín hiệu nhập xuất của hệ thống mà không cần trình bày cấu trúc hoặc các chi tiết bên trong hệ thống
Thiết kế đường dữ liệu:
Giai đoạn kế tiếp là thiết kế đường dữ liệu ( data path ) cho hệ thống Người thiết kế phải chỉ ra được các thanh ghi và các đơn vị luận lý cần thiết cho việc xây dựng hệ thống Các thành phần này có thể được kết nối với nhau bằng các bus dữ liệu một chiều, hoặc hai chiều Các thủ tục điều khiển việc truyền dữ liệu giữa các thanh ghi và các đơn vị luận lý thông qua bus sẽ được phát triển cũng cần phải xác định Kết quả của giai đoạn này sẽ là một kiến trúc của hệ thống với các đặc tả dòng điều khiển, nhưng không có thông tin về sự hiện thực bộ điều khiển, về sự nối dây, kỹ thuật mã hoá, hoặc vi lập trình trong giai đoạn này
Thiết kế luận lý:
Kế đến là bước thiết kế luận lý, trong đó người thiêt kế sẽ áp các phần tử cơ bản ( chẳng hạn như các cổng, các flip-flop ) cho việc hiện thực các thanh ghi dữ liệu, các bus, các đơn vị luận lý và phần cứng điều khiển chúng Kết quả của giai đoạn này là một mạng kết nối (netlist) các cổng và các flip-flop Trong netlist này cũng phải có các kết nối giữa các thành phần, nhưng không có các chi tiết kỹ thuật và công nghệ về các cổng, các flip-flop
Thiết kế vật lý:
Chuyển sơ đồ netlist ở giai đoạn trên thành sơ đồ các transistor là giai đoạn tiếp theo Quá trình này liên quan trực tiếp đến việc thay thế các cổng và các flip-flop bằng các transistor hay các phần tử tương đương trong thư viện Giai đoạn này phải xem xét đến chế độ tải và các yêu cầu về thời gian trong quá trình chọn lựa transistor hay các các phần tử thư viện Đây là giai đoạn thiết kế cuối cùng
Xuất xưởng:
Khi quá trình thiết kế đã hoàn tất thì bước tiếp theo là chế tạo chip Trong giai đoạn này, các cầu chì của thiết bị FPGA bị đốt cháy theo cách bố trí các transistor đã thiết kế, hoặc tạo các mặt nạ dùng cho việc sản xuất IC
Qui trình như hình III-19
Ngôn ngữ đặc tả HDL cung cấp một dạng cho đặc tả netlist nhằm vào mục đích kiểm tra lỗi mô phỏng Các ứng dụng thử đánh giá lỗi có thể lập trình trong ngôn ngữ đặc tả phần cứng Một tập con các sóng của ngôn ngữ đặc tả phần cứng được dùng cho việc diễn tả các dữ liệu thử cho ứng dụng thử bởi các công cụ thử hoặc cho việc diễn tả dữ liệu kích thích nhằm phát hiện lỗi mô phỏng
Trong các loại mô tả phần cứng thì mô tả hành vi là ở mức trừu tượng cao nhất, nó cho phép mô tả chức năng của hệ thống dưới dạng các thủ tục, mà không cung cấp chi tiết về cấu trúc của hệ thống trong thiết kế Mức trừu tượng này rất thích hợp trong việc mô phỏng nhanh các
Trang 38đơn vị phần cứng phức tạp để kiểm tra, phân tích về chức năng của các thiết kế, để tạo mẫu các thành phần chuẩn, hoặc để lập tài liệu
Mô tả dòng dữ liệu là sự biểu diễn đồng thời dòng điều khiển và chuyển động của dữ liệu, nó chỉ ra một kiến trúc và một phần cứng duy nhất Các thành phần giao tiếp với nhau thông qua các bus và các kết nối, trong đó phần cứng điều khiển có vai trò là để tạo ra các tín hiệu điều khiển các giao tiếp này Vì mức độ chi tiết của phần cứng trong mô tả dòng dữ liệu là rất lớn, nên người thiết kế sẽ gặp nhiều khó khăn khi dùng cách này để đặc tả hệ thống Do đó mô tả dòng dữ liệu chỉ thích hợp trong việc thiết kế các thành phần được tổng hợp
Cấp thấp nhất trong mô tả phần cứng là mô tả cấu trúc, mà trong đó người thiết kế phải mô tả cấu trúc của hệ thống gồm danh sách các thành phần hoạt động đồng thời và các kết nối giữa chúng Ở một mức độ chi tiết hơn, mô tả này phải chỉ ra được mạng liên kết giữa các cổng luận lý để phục vụ cho việc mô phỏng định thời chi tiết
HÌNH III-19 KIỂM TRA MỖI GIAI ĐOẠN THIẾT KẾ BẰNG VIỆC MÔ PHỎNG ĐẦU RA CỦA NÓ
III.2.C PHƯƠNG PHÁP THIẾT KẾ CORES
Trong thiết kế SoC có sử dụng một tập các cores Các cores này có thể được chọn từ thư viện hoặc thiết kế từ đầu Phần này mô tả quá trình thiết kế các cores mà chúng sẽ được dùng trong thiết kế SoC
Các cores được thiết kế theo luồng tổng hợp EDA RTL Hình III-20 minh họa luồng này
Ở phần đầu tiên, đặc tả của core được định nghĩa, chức năng core liên tục thay đổi và được phân hoạch thành nhiều khối nhỏ hơn Dựa trên những khối nhỏ đã được phân hoạch, mã RTL được phát triển cùng với kịch bản tổng hợp (synthesis script) Phân tích định thời, diện tích, và
Trang 39ước lượng công suất được kiểm tra lại và testbench được phát triển để kiểm tra RTL Trong thời gian tích hợp các khối nhỏ thành thiết kế mức core, netlist ở mức đỉnh được tạo ra và được dùng để kiển tra và tổng hợp chức năng
Nói chung, kịch bản tổng hợp của các cores cung cấp netlist với một hiệu suất và diện tích đặt ra ban đầu Ở nhiều trường hợp, phương pháp “Thiết kế để kiểm tra” cũng được sử dụng ở phần phát triển cores, yêu cầu thiết kế vật lý được xem xét ở thời điểm khi phát triển các khối con Các yêu cầu này bao gồm kết nối bên trong, testbench, toàn bộ định thời và ràng buộc thư viện tế bào (cell)
HÌNH III-20 QUÁ TRÌNH THIẾT KẾ CORES
Trong quá trình phát triển firm cores, các bước đặc tả thiết kế được cần đến Các đặc tả thiết kế tổng quát bao gồm:
1 Các yêu cầu chức năng định rõ mục đích và vận hành của core
2 Các yêu cầu vật lý định rõ gói, diện tích chết, công suất, thư viện kỹ thuật, …
3 Các yêu cầu thiết kế định rõ kiến trúc và sơ đồ khối với luồng dữ liệu
4 Các yêu cầu giao diện định rõ tên tín hiệu, hàm, giản đồ thời gian, và các tham số DC/AC
Đặc tả các chức năng của core (chức năng, giao tiếp, định thời)
Phát triển các mô hình hành vi
và kiểm tra
Phân hoạch thành các khối con Đặc tả chức năng các khối con
Viết RTL Cho khối con Testbench khối con
Tổng hợp
Thiết kế để kiểm tra Đo độ phủ các phép kiểm tra
Tích hợp khối con
Các ràng buộc
về tốc độ, diện
tích, năng lượng
Mô phỏng
Trang 405 Các yêu cầu kiểm tra (Test) và Debug định rõ kiểm tra sản xuất (manufacturing tesing),
phương pháp design-for-test, phương pháp tạo vector kiểm tra, phân loại lỗi, …
6 Các yêu cầu phần mềm định rõ các drivers và mô hình phần mềm cho các khối phần cứng như các thanh ghi mục đích chung của bộ vi xử lý
• Bước đầu tiên trong quá trình thiết kế core là tinh chế các đặc tả chức năng để chúng có thể được phân hoạch thành những khối con độc lập Mục đích chung là để mỗi khối con có thể được thiết kế không cần sự can thiệp/phụ thuộc vào các khối khác, cũng như được viết mã và kiểm tra bởi một người thiết kế Giao diện các khối con nên được định nghĩa thật rõ ràng để khi kết nối các khối con không bị xung đột
Trong nhiều trường hợp, mô hình hành vi được sử dụng như là đặc tả có thể thi hành được cho các core Mô hình này nói chung được dùng trong phát triển testbench Mô hình hành
vi là thiết yếu cho các cores có nội dung thuật toán cao Đối với những cores với nội dung thuật toán thấp, mô hình RTL có thể cung cấp mô tả trừu tượng và hiệu suất mô phỏng tương đương
• Đặc tả khối con được bắt đầu song song với việc phân hoạch mô hình chức năng mức đỉnh Tạo các đặc tả chi tiết cho các khối con cho phép mã hoá RTL hiệu quả Các công cụ EDA (bộ biên dịch bộ nhớ và bộ biên dịch module) có thể được sử dụng để tạo mã RTL nếu khối con chứa các thành phần có cấu trúc như RAMs, ROMs, FIFOs, … Trước khi mã hoá RTL bắt đầu, các ràng buộc định thời và các đặc tả công suất và diện tích cũng được cần đến Các ràng buộc này tại mức khối nên được dẫn xuất từ các đặc tả chức năng mức core
Song song với việc mã hóa RTL, testbench được phát triển để kiểm tra các chức năng cơ bản của các khối Tại tầng này tổng hợp đầu tiên được thực hiện để xác định các ràng buộc về định thời, diện tích, công suất có thỏa đáng hay không Một khi các ràng buộc về định thời, diệân tích và công suất được tối ưu, một kịch bản tổng hợp được phát triển và sẽ được dùng trong tổng hợp các khối con trong thời gian tích hợp
• Một khi thiết kế các khối con đã được hoàn thành, chúng được tích hợp thành một thiết kế và được kiểm tra như một phần của core Trong phần đầu tiên của sự tích hợp, có một vài lỗi (mismatch) có thể xảy ra tại giao diện của các khối con Các lỗi này có thể được kiểm tra bằng mô hình RTL mức core
Dùng một số lượng đủ lớn các cấu hình của core để kiểm tra chức năng của nó Điều này đảm bảo sự vững chắc của thiết kế cuối cùng