Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 179 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
179
Dung lượng
728,7 KB
Nội dung
Trang MỤC LỤC MỤC LỤC - HÌNH MỤC LỤC - BẢNG 11 PHẦN I - GIỚI THIỆU 12 1.1 ĐẶT VẤN ĐỀ 12 1.2 NỘI DUNG ĐỀ TÀI 13 1.3 PHƯƠNG PHÁP GIẢI QUYẾT 13 1.4 CÁC THÀNH TỰU ĐÃ CÓ 13 PHẦN II - PHƯƠNG PHÁP GIẢI QUYẾT VÀ TỔNG QUAN VỀ PHẦN MỀM MAX+PLUS II 16 2.1 TỔNG QUAN VỀ NGÔN NGỮ MÔ TẢ PHẦN CỨNG VHDL 16 2.1.1 CÁC ĐẶC ĐIỂM CUÛA VHDL 16 2.1.2 PHƯƠNG PHÁP LUẬN THIẾT KẾ DỰA VÀO VHDL 18 2.1.3 PHẦN MỀM MAX+PLUS II Error! Bookmark not defined 2.2 TOÅNG QUAN VỀ THIẾT KẾ TOP-DOWN 20 2.3 PHƯƠNG PHÁP THIẾT KẾ CORES 24 2.3.1 LUỒNG THIẾT KẾ CORES 24 2.3.2 QUÁ TRÌNH PHÁT TRIỂM CORES 25 2.3.3 NGUYÊN TẮC MÃ HOÁ RTL 26 2.4 TỔNG QUAN VỀ PHẦN MỀM MAX+PLUS II 26 2.4.1 CÁC ĐẶC ĐIỂM CỦA PHẦN MỀM MAX+PLUS II 26 2.4.2 LUỒNG THIẾT KEÁ TRONG MAX+PLUS II 28 2.4.3 CỬA SỔ QUẢN LÝ MAX+PLUS II 29 2.4.4 CÁC ỨNG DUÏNG MAX+PLUS II 30 2.4.5 DESIGN FILES, ANCILARY FILES VAØ PROJECTS 31 2.4.6 DESIGN ENTRY 32 2.4.7 BIỂU DIỄN PHÂN CẤP PROJECT 32 2.4.8 BIÊN DỊCH PROJECT 33 2.4.9 KIEÅM TRA PROJECT 35 2.4.9.1 SIMULATOR 36 2.4.9.2 TIMING ANALYZER 36 2.4.10 POGRAMMER 37 2.5 PHẦN CỨNG LẬP TRÌNH 39 2.5.1 ALTERA PROGRAMMING UNIT (APU) 39 2.5.2 ALTERA STAND-ALONE PROGRAMMER 39 2.5.3 LOGIC PROGRAMMER CARD 39 2.5.4 MASTER PROGRAMMER UNIT 40 2.5.5 PROGRAMMING ADAPTERS 40 Trang 2.5.6 MASTERBLASTER DOWNLOAD CABLE 40 2.5.7 BYTEBLASTERMV PARALLEL DOWNLOAD CABLE 41 2.5.8 KIT LAÄP TRÌNH UP2 42 PHẦN III – THƯ VIỆN TTL VAØ 10 IC LOGIC TTL 45 3.1 THƯ VIỆN TTL 45 3.2 10 IC LOGIC TTL – 74XXX 66 3.2.1 7400 66 3.2.2 7420 67 3.2.3 7472 68 3.2.4 7477 70 3.2.5 7490 71 3.2.6 7495 75 3.2.7 74138 78 3.2.8 74147 80 3.2.9 74162 83 3.2.10 74378 86 PHẦN IV - THIẾT KẾ BỘ ĐIỀU KHIỂN GIAO TIẾP SONG SONG 89 4.1 ĐẶC TẢ BỘ ĐIỀU KHIỂN GIAO TIẾP SONG SONG 89 4.1.1 MÔ TẢ CHỨC NĂNG CỦA CÁC ĐƯỜNG TÍN HIỆU 89 4.1.2 MÔ TẢ CÁC KHỐI CHỨC NĂNG 91 4.1.3 CÁC CHẾ ĐỘ HOẠT ĐỘNG 95 4.1.3.1 CHẾ ĐỘ HOẠT ĐỘNG MODE (VÀO/RA CƠ BẢN) 95 4.1.3.2 CHẾ ĐỘ HOẠT ĐỘNG MODE (STROBED INPUT/OUTPUT) 96 4.1.3.3 CHẾ ĐỘ HOẠT ĐỘNG MODE (STROBED BIDERECTTIONAL BUS I/O)………… 99 4.1.4 TỪ TRẠNG THÁI 102 4.2 THIẾT KẾ CÁC THÀNH PHẦN CỦA PIO 102 4.2.1 THƯ VIỆN PIO 103 4.2.2 KHỐI ĐIỀU KHIỂN XUẤT/NHẬP 111 4.2.3 DATA BUS BUFFER 113 4.2.4 THANH GHI ĐIỀU KHIỂN 114 4.2.5 THANH GHI TRẠNG THÁI 117 4.2.5.1 IBF F/F (INPUT BUFFER FFULL F/F) 118 4.2.5.2 OBF F/F (OUTPUT BUFFER FULL F/F) 119 4.2.5.3 INTR F/F(INTERRUPT REQUEST) 120 4.2.6 PORT DỮ LIEÄU 126 4.2.6.1 DATA_PORT_BUFFER 127 4.2.6.2 MẠCH CHỐT NGÕ VAØO 128 Trang 4.2.6.3 MẠCH CHỐT NGÕ RA 130 4.2.6.4 BỘ DỒN KÊNH 131 4.2.7 PORT ĐIỀU KHIỂN 134 4.2.7.1 PC0 (LINE_PC0) 136 4.2.7.2 PC1 (LINE_PC1) 138 4.2.7.3 PC2 (LINE_PC2) 139 4.2.7.4 PC3 (LINE_PC3) 141 4.2.7.5 PC4 (LINE_PC4) 143 4.2.8 HIỆN THỰC PIO 148 4.3 CÁC KẾT QUẢ 152 4.3.1 KẾT QUẢ SỬ DỤNG TÀI NGUYÊN 153 4.3.2 GIAÛN ĐỒ XUNG MÔ PHỎNG ĐƯC 154 4.3.3 CÁC THÔNG SỐ THỜI GIAN 156 4.4 KẾT NỐI CÁC PIO_CORE VỚI NHAU 157 PHẦN V – THIẾT KẾ BOARD ỨNG DỤNG KIỂM TRA PIO 162 PHẦN VI – KẾT LUẬN 165 CÁC PHỤ LỤC 166 TÀI LIỆU THAM KHẢO 182 MUÏC LUÏC - HÌNH Hình 2.1 - Đặc tả giao diện kiến trúc…………………………………………………………………………………………………19 Hình 2.2 - Khai báo gói…………………………………………………………………………………………………………………………………19 Hình 2.3 - Khai báo thư viện, cấu hình………………………………………………………………………………………………….19 Hình 2.4 - Thủ tục phân hoạch đệ quy…………………………………………………………………………………………………….20 Hình 2.5 - Phân tích top-down thực bottom-up…………………………………………………………………….21 Hình 2.6 - Kiểm tra mức phân hoạch…………………………………………………………………………….21 Hình 2.7 - Kiểm tra thực phần cứng SSC1 SSC2………………………………………………….22 Hình 2.8 - Kiểm tra thiết kế cuối cùng……………………………………………………………………………………………………22 Hình 2.9 - Kiểm tra thực phần cứng SSC3………………………………………………………………………….23 Hình 2.10 - Kiểm tra thiết kế sau cùng……………………………………………………………………………………………………23 Hình 2.11 - Quá trình thiết kế cores…………………………………………………………………………………………………………24 Hình 2.12 - Môi trường thiết kế MAX+PLUS II…………………………………………………………………………………26 Hình 2.13 - Các ứng dụng MAX+PLUS II…………………………………………………………………………………27 Hình 2.14 - Cửa sổ MAX+PLUS II………………………………………………………………………………………28 Hình 2.15 - Menu MAX+PLUS II cửa sổ quản lý MAX+PLUS II………………………………… 29 Hình 2.16 - MAX+PLUS II design entry methods…………………………………………………………………………… 32 Hình 2.17 – Biểu diễn phân cấp MAX+PLUS II…………………………………………………………………….33 Hình 2.18 – Bộ biên dịch MAX+PLUS II………………………………………………………………………………………………33 Hình 2.19 – Kiểm tra project MAX+PLUS II………………………………………………………………………………………35 Trang Hình 2.20 – MAX+PLUS II Programmer………………………………………………………………………………………………38 Hình 2.21 – Phương pháp luận lập trình thiết bị…………………………………………………………………………………38 Hình 2.22 – Sơ đồ khối kit lập trình UP2………………………………………………………………………….………… 43 Hình 3.1 – Cổng đảo, invate……………………………………………………………………………………………………………………….45 Hình 3.2 – Cổng AND ngõ vào , and2input………………………………………………………………………………………46 Hình 3.3 – Cổng AND ngõ vào , and3input………………………………………………………………………………………47 Hình 3.4 – Cổng AND ngõ vào , and4input……………………………………………………………………………………….48 Hình 3.5 – Cổng AND ngõ vào , and6input……………………………………………………………………………………….49 Hình 3.6 – Cổng NAND ngõ vào , nand2input…………………………………………………………………………………49 Hình 3.7 – Cổng NAND ngõ vào , nand3input……………………………………………………………………………… 50 Hình 3.8 – Cổng NAND ngõ vào , nand4input……………………………………………………………………………… 51 Hình 3.9 – Cổng OR ngõ vào, or2input ….………………………………………………………………………………………….52 Hình 3.10 – Cổng OR ngõ vào, or3input ….……………………………………………………………………………………….53 Hình 3.11 – Cổng OR ngõ vào, or4input ….……………………………………………………………………………………….54 Hình 3.12 – Cổng OR ngõ vào, or6input ….……………………………………………………………………………………….55 Hình 3.13 – Cổng NOR ngõ vào, nor2input ……………….……………………………………………………………………56 Hình 3.14 – Cổng NOR ngõ vào, nor3input ……………….……………………………………………………………………57 Hình 3.15 – Cổng NOR ngõ vào, nor4input ……………….……………………………………………………………………58 Hình 3.16 – Cổng NOR ngõ vào, nor6nput ………………………………………………………………………………………59 Hình 3.17 – Cổng XOR ngõ vào, xor6nput ………………………………………………………………………………………59 Hình 3.18 – Mạch cài, d_latch ………………………………………………………………………………………………………………….60 Hình 3.19 – D flip-flop, d_flipflop ………………………………………………………………………………………………………… 62 Hình 3.20 – D flip-flop với ngõ vào cho phép, de_flipflop ….……………………………………………………….63 Hình 3.21 – JK flip-flop, jk_flipflop ……………………………………………………………………………………………………….64 Hình 3.22 – JK flip-flop với ngõ vào cho phép, jke_flipflop ……………….………………………………………66 Hình 3.23 – 7400…………………………………………………………………………………………………………………………………………… 67 Hình 3.24 – 7420…………………………………………………………………………………………………………………………………………… 68 Hình 3.25(a) – Sơ đồ chân 7472……………………………………………………………………………………………………… 69 Hình 3.25(b) – Hiện thực VHDL Của 7472…………………………………………………………………………………………70 Hình 3.26(a) – Sơ đồ chân 7477…………………………………………………………………………………………………………70 Hình 3.26(b) – Hiện thực VHDL 7477……………………………………………………………………………………………71 Hình 3.27(a) – Ký hiệu logic 7490……………………………………………………………………………………………………71 Hình 3.27(b) - Sơ đồ kiến trúc 7490…………………………………………………………………………………………………73 Hình 3.27(c) – Hiện thực VHDL 7490……………………………………………………………………………………………75 Hình 3.28(a) – Sơ đồ kiến trúc 7495……………………………………………………………………………………………….76 Hình 3.28(b) – Hiện thực VHDL 7495………………………………………………………………………………………… 78 Hình 3.29(a) - Sơ đồ kiến trúc 74138…………………………………………………………………………………………… 79 Hình 3.29(b) – Hiện thực VHDL 74138…………………………………………………………………………………………80 Trang Hình 3.30(a) – Sơ đồ kiến trúc 74147……………………………………………………………………………………………81 Hình 3.30(b) – Hiện thực VHDL 74147…………………………………………………………………………………………83 Hình 3.31(a) – Sơ đồ trạng thái 74162……………………………………………………………………………………………83 Hình 3.31(b) – Sơ đồ kiến trúc 74162…………………………………………………………………………………………….84 Hình 3.31(c) – Hiện thực VHDL 74162…………………………………………………………………………………………86 Hình 3.32(a) – Sơ đồ kiến trúc 74378……………………………………………………………………………….……………87 Hình 3.32(b) – Hiện thực VHDL 74378……………………………………………………………………………………… 88 Hình 4.1 – Minh họa đường tín hiệu……………………………………………………………………………………………… 89 Hình 4.2 – Sơ đồ khối chức PIO…………………………………………………………………………………………….91 Hình 4.3(a) - Định nghóa byte điều khiển chọn mode hoạt động….…………………………………………… 92 Hình 4.3(b)- Định dạng byte điều khiển Set/Reset…………………………………………………………………………….93 Hình 4.4 – Định dạng byte điều khiển xuất………………………………………………………………………………………….94 Hình 4.5 – Dạng sóng thời gian MODE – nhập………………………………………………………………………… 95 Hình 4.6 – Dạng sóng thời gian MODE – xuất……………………………………………………………………………96 Hình 4.7 – Các đường tín hiệu MODE – nhập…………………………………………………………………………97 Hình 4.8 – Dạng sóng thời gian MODE 1-Nhập…………………………………………………………………………98 Hình 4.9 – Các đường tín hiệu MODE – xuất………………………………………………………………………….98 Hình 4.10 – Dạng sóng thời gian MODE 1-Xuất……………………………………………………………………….99 Hình 4.11 – Các đường tín hiệu MODE 2………………………………………………………………………………… 100 Hình 4.12 - Dạng sóng thời gian Mode 2…………………………………………………………………………………………101 Hình 4.13 – Định dạng từ trạng thái………………………………………………………………………………………………………102 Hình 4.14 – Sơ đồ kết nối thành phần PIO……………………………………………………………………… 103 Hình 4.15 – Bộ giải mã sang 4, dec2to4………………………………………………………………………………………….104 Hình 4.16 – Bộ đệm trạng thái, buf3s……………………………………………………………………………………………….106 Hình 14.17 – Bộ đệm bits trạng thái, buffer8bits………………………………………………………………………107 Hình 4.18 – Mạch chốt bits, latch8bits…………………………………………………………………………………………… 109 Hình 4.19 – Bộ dồn kênh sang 1, mux2to1…………………………………………………………………………………… 110 Hình 4.20 – Bộ dồn kênh sang 1, mux4to1…………………………………………………………………………………… 111 Hình 4.21 – Khối điều khiển xuất/nhập, read_write_control…………………………………………………… 113 Hình 4.22 – Data bus buffer, data_bus_buffer………………………………………………………………………………… 114 Hình 4.23(a) –Ký hiệu logic control_reg…………………………………………………………………………………….114 Hình 4.23(b) – Kiến trúc khối ghi điều khiển control_reg……………………………………….115 Hình 4.23(c) – Hiện thực VHDL control_reg…………………………………………………………………………….117 Hình 4.24 - IBF F/F, ibf_flipflop…………………………………………………………………………………………………………… 118 Hình 4.25 – OBF F/F, obf_flipflop…………………………………………………………………………………………………………119 Hình 3.26 – INTR trường hợp nhập, input_intr………………………………………………………………………………….121 Hình 3.27 – INTR trường hợp xuất, output_intr……………………………………………………………………………… 123 Hình 4.28(a) – Sơ đồ chân ghi trạng thái……………………………………………………………………… 123 Trang 10 Hình 4.28(b) – Kiến trúc status_reg………………………………………………………………………………………………124 Hình 4.28(c) – Hiện thực VHDL ghi trạng thái……………………………………………………………126 Hình 4.29 – Sơ đồ khối port liệu………………………………………………………………………………………………126 Hình 4.30 – Data port buffer, data_port_buffer….…………………………………………………………………………….124 Hình 4.31 – Mạch chốt ngõ vào, input_latch…………………………………………………………………………………… 130 Hình 4.32 – Mạch chốt ngõ ra, output_latch………………………………………………………………………………………131 Hình 4.33(a) – Ký hiệu logic dồn kênh data_port_mux………………………………………………….132 Hình 4.33(b) – Kiến trúc data_port_mux…………………………………………………………………………………….132 Hình 4.33(c) – Hiện thực VHDL data_port_mux…………………………………………………………………….133 Hình 4.34 – Hiện thực VHDL data_port…………………………………………………………………………………… 134 Hình 4.35 – Sơ đồ chân control_port…………………………………………………………………………………………….136 Hình 4.36(a) – Sơ đồ chân LINE_PC0……………………………………………………………………………………… 136 Hình 4.36(b) – Kiến trúc LINE_PC0…………………………………………………………………………………………….137 Hình 4.36(c) – Hiện thực VHDL LINE_PC0…………………………………………………………………………….138 Hình 4.37(a) – Ký hiệu LINE_PC1……………………………………………………………………………………………….138 Hình 4.37(b) – Kiến trúc LINE_PC1…………………………………………………………………………………………….139 Hình 4.37(c) – Hiện thực VHDL LINE_PC1…………………………………………………………………………….139 Hình 4.38(a) – Ký hiệu LINE_PC2……………………………………………………………………………………………….140 Hình 4.38(b) – Kiến trúc LINE_PC2…………………………………………………………………………………………….141 Hình 4.38(c) – Hiện thực VHDL LINE_PC2…………………………………………………………………………….142 Hình 4.39(a) – Ký hiệu LINE_PC3……………………………………………………………………………………………….142 Hình 4.39(b) – Kiến trúc LINE_PC3…………………………………………………………………………………………….143 Hình 4.39(c) – Hiện thực VHDL LINE_PC3…………………………………………………………………………….143 Hình 4.40(a) – Ký hiệu LINE_PC4……………………………………………………………………………………………….144 Hình 4.40(b) – Kiến trúc LINE_PC4…………………………………………………………………………………………….144 Hình 4.40(c) – Hiện thực VHDL LINE_PC4…………………………………………………………………………….145 Hình 4.41(a) – Sơ đồ kết nối thành phần port điều khiển………………………………………… 146 Hình 4.41(b) – Hiện thực VHDL port điều khiển…………………………………………………………………….147 Hình 4.42(a) – Ký hiệu logic dồn kênh cbus_mux………………………………………………………… 148 Hình 4.42(b) – Hiện thực VHDL cbus_mux………………………………………………………………………………149 Hình 4.43(a) – Sơ đồ kết nối thành phần PIO………………………………………………………………… 150 Hình 4.43(b) – Hiện thực VHDL PIO………………………………………………………………………………………… 152 Hình 4.44 – Kết mô phỏng……………………………………………………………………………………………………………….156 Hình 4.45 – Hiện thực VHDL pio_core1…………………………………………………………………………………….159 Hình 4.46(a) – Sơ đồ kết nối thành phần pio_system…………………………………………………….160 Hình 4.46(b) – Hiện thực VHDL pio_system…………………………………………………………………………….161 Hình 5.1 – Kết nối pio_system LED đoạn bàn phím…………………………………………….163 Trang 11 MỤC LỤC - BẢNG Bảng 2.1 - Mô tả ứng dụng MAX+PLUS II………………………………………………………………………….30 Bảng 3.1 - Bảng thật cổng đảo…………………………………………………………………………………………………….45 Bảng 3.2 - Bảng thật cổng AND ngõ vào, and2input…………………………………………………… 46 Bảng 3.3 - Bảng thật cổng NAND ngõ vào, nand2input……………………………………………… 49 Bảng 3.4 -Bảng thật cổng OR ngõ vào, or2input…………………………………………………………… 51 Bảng 3.5 - Bảng thật cổng NOR ngõ vào, nor2input……………………………………………………….55 Bảng 3.6 - Bảng thật XOR ngõ vào, xor2input…………………………………………………………………59 Bảng 3.7 - Bảng thật mạch cài, d_latch……………………………………………………………………………………60 Bảng 3.8 - Bảng thật D flip-flop, d_flipflop………………………………………………………………………… 61 Bảng 3.9 - Bảng thật D flip-flop với ngõ vào cho phép, de_flipflop……………………………62 Bảng 3.10 - Bảng thật J-K flip-flop, jk_flipflop……………………………………………………………………63 Bảng 3.11 - Bảng thật J-K flip-flop với ngõ vào cho phép, jke_flipflop…………………….65 Bảng 3.12 – Bảng thật 7472………………………………………………………………………………………………………….68 Bảng 3.13 – Bảng chân trị 7477……………………………………………………………………………………………………… 70 Bảng 3.14(a) – Dãy đếm đếm BCD 7490.……………………………………………………………………………………72 Bảng 3.14(b) – Dãy đếm bi-quinary 7490.………………………………………………………………………………… 72 Bảng 3.14(c) – Chức reset/đếm 7490.…………………………………………………………………………………74 Bảng 3.15 - Bảng thật 7495………………………………………………………………………………………………………… 75 Bảng 3.16 - Bảng thật 74138……………………………………………………………………………………………………… 78 Bảng 3.17 – Bảng thật 74147……………………………………………………………………………………………………….80 Bảng 3.18 – Bảng chọn chế độ hoạt động 74162.…………………………………………………………………… 83 Bảng 4.1 – Bảng giải mã địa chọn port PIO…………………………………………………………………………90 Bảng 4.2 - Bảng thật mạch giải mã sang 4, dec2to4…………………………………………………….104 Bảng 4.3 – Bảng thật đệm trạng thái, buf3s………………………………………………………………105 Bảng 4.4 – Bảng thật IBF F/F, ibf_flipflop………………………………………………………………………….117 Bảng 4.5 – Bảng thật OBF F/F, obf_flipflop……………………………………………………………………….118 Bảng 4.6 – Bảng thật INTR- Nhập, input_intr…………………………………………………………………….120 Bảng 4.7 – Bảng thật INTR – Xuất, output_intr…………………………………………………………………122 Bảng 4.8 – Bảng thật data port buffer, data_port_buffer……………………………………………….127 Bảng 4.9 – Bảng thật mạch chốt ngõ vào, input_latch…………………………………………………….129 Bảng 4.10 – Bảng thật mạch chốt ngõ ra, output_latch………………………………………………… 130 Bảng 4.11 – nh xạ tên tín hiệu PIO vị trí chân thiết bi…………………………… 150 Bảng 4.12 – Các thông số thời gian PIO…………………………………………………………………………………… 156 Bảng 5.1 – nh xạ tên tín hiệu pio_system số chân thiết bị…………………… 163 Trang 12 PHẦN I - GIỚI THIỆU Phần khái quát công nghệ sử dụng thiết kế vi mạch, kế khái quát nội dung đề tài phương pháp giải vấn đề cuối thành tựu có giới liên quan đến việc sử dụng công nghệ SoC 1.1 ĐẶT VẤN ĐỀ Công nghệ silicon ngày cho phép xây dựng chip chứa khoảng mười triệu transistors Công nghệ hứa hẹn tích hợp nhiều mức hệ thống lại với chip đơn, phát sinh nhiều thách thức đáng kể mà nhà thiết kế chip phải đối mặt Vì vậy, nhiều nhà phát triền ASIC (Application Specific Integrated Circuit) nhà cung cấp silicon kiểm tra lại phương pháp thiết kế công nghệ mình, họ tìm kiếm cách sử dụng hiệu số lượng lớn cổng có sẵn Các nhà thiết kế nhận thấy công cụ công nghệ thiết kế không thích hợp cho việc phát triển ASICs chứa hàng triệu cổng từ ban đầu Tái sử dụng thiết kế – sử dụng lại cores thiết kế sơ kiểm tra sơ - hội hứa hẹn lấp chỗ trống tổng số cổng có sẵn hiệu suất nhà thiết kế Luận văn nghiên cứu phương pháp thiết kế hiệu để tạo thiết kế tái sử dụng lại phương pháp thiết kế System-on-a-chip (SoC) Công nghệ silicon công cụ hỗ trợ phát triển nhanh giải pháp vónh cửu giải toán mang tính động Vì vậy, luận văn cố gắng để nắm bắt thực tế tốt công nghệ, sử dụng thực tế thiết kế Ở phần giới thiệu có đề cập đến khái niện SoC core Vậy khái niện gì? Công nghệ ASCI tiến triển từ khoa học chip-set đến khái niệm SoC vào thập niên 90 Chúng ta định nghóa SoC IC, thiết kế cách kết nối nhiều VLSI (Very Large Scale Integration) chuẩn lại với nhằm cung cấp đầy đủ chức cho ứng dụng Định nghóa SoC rõ ràng nhấn mạnh đến mô đun chức phức tạp (complex functions) thiết kế sẵn mô đun coi cores, chúng dùng nhiều ứng dụng Các cores sau thiết kế đưa vào thư viện sử dụng lại thiết kế khác Trong thiết kế SoC, cores thư viện thành phần thiết yếu, hệ thống chip chứa nhiều tổ hợp cores thư viện Các nhà sản xuất ASIC, thiết kế SoC dùng thư viện core thiết kế sử dụng từ nguồn thiết kế khác nhà thiết kế khác Tính uyển chuyển việc sử dụng core phụ thuộc vào dạng core có sẵn Có ba dạng định nghóa core gồm: soft core, firm core, hard core Trong đề tài xây dựng Trang 13 firm core đề tài xem xét phương pháp thiết kế cho firm core Firm core khối sử dụng lại, tối ưu mặt cấu trúc hình dạng, vị trí kích thước khối xác định 1.2 NỘI DUNG ĐỀ TÀI Đề tài nguyên cứu triển khai ứng dụng công nghệ SoC để xây dựng firm core cho điều khiển giao tiếp song song(PIO: Parallel Input Output) Việc xây dựng firm core, chẳng hạn firm core PIO, để dùng thiết kế SoC vấn đề không nước phát triển giới, nước ta chưa tìm thấy đề tài liên quan đến vấn đề Thực chất đề tài nguyên cứu để triển khai vấn đề có số nước giới vào nước ta Nếu làm việc giúp cho việc chế tạo vi mạch đươc hiệu hơn, hy vọng cạnh tranh với nước khu vực giới lónh vực chế tạo vi mạch sản xuất đồ điện tử 1.3 PHƯƠNG PHÁP GIẢI QUYẾT Phương pháp luận thiết kế top-down ngôn ngữ mô tả phần cứng VHDL dùng làm phương pháp giải vấn đề Theo phương pháp thiết kế top-down, từ thiết kế ban đầu phân hoạch đệ quy thành thành phần con, đến phân hoạch tạo với nút thành phần quản lý Những thành phần quản lý thực phần cứng phải kiểm tra Cuối tích hợp chúng lại với tiến hành kiểm tra tính đắn toàn thiết kế Quá trình thiết kế hoàn thành Phương pháp thiết kế top-down VHDL nói rõ phần sau 1.4 CÁC THÀNH TỰU ĐÃ CÓ Theo kết thẩm định đề tài Trung Tâm Tin Học Khoa Học & Công Nghệ chưa có đơn vị đề tài nghiên cứu nước sản phẩm ứng dụng liên quan đến công nghệ SoC giới Trên giới có nhiều công ty, tổ chức nghiên cứu phát triển ứng dụng công nghệ SoC vào thiết kế hệ thống, chip mô đun,…từ đơn giản đến phức tạp Có nhiều đơn vị vậy, phần điểm qua công trình khoa học giới số đơn vị điển hình Công ty S3 (Silicon & Software System) Là công ty thiết kế điện tử tầm cở giới thành lập vào năm 1986, chuyên phân phối giải pháp thiết kế IP Công ty S3 chuyên thiết kế hệ thống số, hệ thống không dây, hệ thống mạng thiết bị dùng y tế Trang web tham khảo: http:/www.s3group.com.design/ic/chip Trang 14 Công ty NEC Electronics America NEC công ty đưa công nghệ SoC vào sản xuất truyền hình kỹ thuật số, công ty dùng giải pháp SoC việc giải mã audio/video cho dual-processor nhằm đáp ứng yêu cầu chất lượng ứng dụng media số cao cấp Vào năm 1998 NEC dẫn đầu việc áp dụng giải pháp SoC: tích hợp tất core thành phần xử lý mặt sau (backend) vào Set-Top Box NEC nghiên cứu thành công giải pháp chip đơn mạnh triển khai rộng rãi sản xuất Set-Top Box với giá thành thấp, sản xuất truyền hình kỹ thuật số với chất lượng cao Tập đoàn IBM Vào đầu thập kỷ 90 IBM thành công lónh vực công nghệ VLSI ASIC Họ nghiên cứu áp dụng công nghệ vào sản phẩm điển hình năm 1999 họ đưa sản phẩm dựa công nghệ SoC xử lý PowerPc Nó bao gồm logic mạch nhớ tích hợp mạch silicon Với giải pháp xử lý đáp ứng nhiều yêu cầu người cho phép vận hành cách hiệu Trang web tham khảo: http://www.research.ibm.com IPWireless, Inc Là công ty đầu việc sản xuất sản phẩm không dây băng rộng sử dụng công nghệ SoC Công ty hợp tác với công ty Flextronics Semiconductor việc phát triển sản xuất sản phẩm không dây băng rộng công nghệ SoC Bằng cách đẩy mạnh thiết kế SoC hai công ty cung cấp cho thị trường sản phẩm máy tính xách tay có chứa cards modem băng rộng, modem ngoại gateways băng rộng nhiều sản phẩm không dây băng rộng khác với giá thành thấp Trang web tham khảo: http://www.3g.co.uk/PR/April2002/3175.htm Công ty Altera Công ty Altera chuyên cung cấp: -Các sản phẩm phần mềm hỗ trợ nhà thiết kế việc xây dựng phân tích mạch tích hợp, Quartus II, PowerFit, MAX+PLUS II -Các thiết bị lập trình (PLDs: programmable logic devices) - Intellectural Property (IP) cores giúp công ty giảm thời gian đưa sản phẩm thị trường… Trang 169 Y : out std_logic); end component; component and3input is port ( A, B, C : in std_logic; Y : out std_logic); end component; component and4input is port ( A, B, C, D : in std_logic; Y : out std_logic); end component; component and6input is port ( A, B, C, D, E, F : in std_logic; Y : out std_logic); end component; component nand2input is port ( A, B : in std_logic; Y : out std_logic); end component; component nand3input is port ( A, B, C : in std_logic; Y : out std_logic); end component; component nand4input is port ( A, B, C : in std_logic; Y : out std_logic); end component; component or2input is port ( A, B : in std_logic; Y : out std_logic); end component; component or3input is port ( A, B, C : in std_logic; Y : out std_logic); end component; component or4input is port ( A, B, C, D : in std_logic; Y : out std_logic); Trang 170 end component; component or6input is port ( A, B, C, D, E, F : in std_logic; Y : out std_logic); end component; component nor2input is port ( A, B : in std_logic; Y : out std_logic); end component; component nor3input is port ( A, B, C : in std_logic; Y : out std_logic); end component; component nor4input is port ( A, B, C, D : in std_logic; Y : out std_logic); end component; component nor6input is port ( A, B, C, D, E, F : in std_logic; Y : out std_logic); end component; component xor2input is port ( A, B : in std_logic; Y : out std_logic); end component; component d_flipflop is port(D, CLK, CLRN, PRN : in std_logic; Q : out std_logic); end component; component de_flipflop is port (D, CLK, CLRN, PRN, ENA : in std_logic; Q : out std_logic); end component; component dec2to4 is port (A, B, G : in std_logic; Y0, Y1, Y2,Y3 : out std_logic); end component; Trang 171 component buf3s is port ( IO: inout std_logic ; I : in std_logic; O : out std_logic; C : in std_logic); end component; component buffer8bits is port ( IO: inout std_logic_vector(7 downto 0); I : in std_ulogic_vector(7 downto 0); O : out std_ulogic_vector(7 downto 0); C : in std_ulogic); end component; component latch8bits is port ( I: in std_logic_vector(7 downto 0); O: out std_logic_vector(7 downto 0); CLK: in std_logic; EN: in std_logic; RS: in std_logic); end component; component mux2to1 is port (I1, I2 : in std_logic; S : in std_logic; O : out std_logic); end mux2to1; component mux4to1 is port (I1, I2, I3, I4 : in std_logic; S1 : in std_logic; S2 : in std_logic; S3 : in std_logic; S4 : in std_logic; O : out std_logic); end mux4to1; component read_write_control is port (A0, A1, nRD, nWR, nCS, Reset : in std_logic; RD, WR, RS1, DBB_EN, DP_EN, CP_EN, SR_EN, CR_EN : out std_logic); end component; Trang 172 component data_bus_buffer is port ( D: inout std_logic_vector(7 downto 0); I : in std_ulogic_vector(7 downto 0); O : out std_ulogic_vector(7 downto 0); EN : in std_ulogic); end component; component control_reg is port ( I : in std_logic_vector(7 downto 0); O : out std_logic_vector(7 downto 0); WR_CLK : in std_logic; RS : in std_logic; EN : in std_logic; RS2 : out std_logic); end component; component ibf_flipflop is port( RD : in std_logic; nSTB : in std_logic; RS : in std_logic; ENa : in std_logic; IBF : out std_logic); end ibf_flipflop; component obf_flipflop is port( WR : in std_logic; nACK : in std_logic; RS : in std_logic; ENa : in std_logic; nOBF : out std_logic); end component; component input_intr is port( RD : in std_logic; nSTB : in std_logic; IBF : in std_logic; INTE : in std_logic; RS : in std_logic; ENa : in std_logic; INTR : out std_logic); end component; Trang 173 component output_intr is port( WR : in std_logic; nACK : in std_logic; nOBF : in std_logic; INTE : in std_logic; RS : in std_logic; ENa : in std_logic; INTR : out std_logic); end component; component status_reg is port ( RD: in std_logic; WR: in std_logic; nSTB: in std_logic; nACK: in std_logic; INTE1: in std_logic; INTE2: in std_logic; M1_IN: in std_logic; M1_OUT: in std_logic; M2: in std_logic; ENa: in std_logic; RS: in std_logic; O : out std_logic_vector(7 downto 0)); end component; component data_port_buffer is port ( PA: inout std_logic_vector(7 downto 0); I : in std_ulogic_vector(7 downto 0); O : out std_ulogic_vector(7 downto 0); M1 : in std_ulogic; IO : in std_ulogic; nACK : in std_ulogic); end component; component input_latch is port ( I: in std_logic_vector(7 downto 0); O: out std_logic_vector(7 downto 0); M0: in std_logic; M1: in std_logic; IO: in std_logic; Trang 174 nSTB_CLK: in std_logic; RS: in std_logic); end component; component output_latch is port ( I: in std_logic_vector(7 downto 0); O: out std_logic_vector(7 downto 0); WR_CLK: in std_logic; EN: in std_logic; RS: in std_logic); end component; component data_port_mux is port ( I1, I2 : in std_logic_vector(7 downto 0); M0, M1 : in std_logic; O : out std_logic_vector(7 downto 0)); end data_port_mux; component data_port is port (PA: inout std_logic_vector(7 downto 0); I : in std_logic_vector(7 downto 0); O : out std_logic_vector(7 downto 0); M0 : in std_logic; M1 : in std_logic; IO : in std_logic; EN : in std_logic; RS : in std_logic; WR : in std_logic; nSTB : in std_logic; nACK : in std_logic); end component; component line_pc0 is port ( PC0 : inout std_logic; I0 : in std_logic; INTR : in std_logic; WR : in std_logic; M0_OUT : in std_logic; M1_IN: in std_logic; M1_OUT : in std_logic; M2: in std_logic; Trang 175 EN : in std_logic; RS : in std_logic; O0 : out std_logic); end component; component line_pc1 is port ( PC1 : inout std_logic; I1 : in std_logic; O1 : out std_logic; WR : in std_logic; M0_OUT : in std_logic; M1_OUT_OUT: in std_logic; EN : in std_logic; RS : in std_logic); end component; component line_pc2 is port (PC2 : inout std_logic; I2 : in std_logic; O2 : out std_logic; IBF : in std_logic; WR : in std_logic; M0_OUT : in std_logic; M1_OUT_OUT: in std_logic; M1_IN : in std_logic; M2: in std_logic; EN : in std_logic; RS : in std_logic); end component; component line_pc3 is port ( PC3 : inout std_logic; I3 : in std_logic; O3 : out std_logic; WR : in std_logic; M0_OUT : in std_logic; M1_IN_OUT: in std_logic; EN : in std_logic; RS : in std_logic); end component; Trang 176 component line_pc4 is port ( PC4 : inout std_logic; I4 : in std_logic; O4 : out std_logic; nOBF : in std_logic; WR : in std_logic; M0_OUT : in std_logic; M1_IN_OUT: in std_logic; M1_OUT : in std_logic; M2: in std_logic; EN : in std_logic; RS : in std_logic); end component; component control_port is port ( PC : inout std_logic_vector(4 downto 0); I : in std_logic_vector(4 downto 0); O : out std_logic_vector(4 downto 0); INTR: in std_logic; IBF: in std_logic; nOBF: in std_logic; WR : in std_logic; M0_OUT : in std_logic; M1_IN: in std_logic; M1_IN_OUT: in std_logic; M1_OUT: in std_logic; M1_OUT_OUT : in std_logic; M2 : in std_logic; EN : in std_logic; RS : in std_logic); end component; component cbus_mux is port ( I1 : in std_logic_vector(7 downto 0); I2 : in std_logic_vector(7 downto 0); I3 : in std_logic_vector(7 downto 0); I4 : in std_logic_vector(7 downto 0); S1 : in std_logic; S2 : in std_logic; Trang 177 S3 : in std_logic; S4 : in std_logic; O : out std_logic_vector(7 downto 0)); end component; component pio_core1 is port ( I : in std_logic_vector(7 downto 0); O : out std_logic_vector(7 downto 0); PA : inout std_logic_vector(7 downto 0); PC : inout std_logic_vector(4 downto 0); A0 : in std_logic; A1 : in std_logic; nRD : in std_logic; nWR : in std_logic; nCS : in std_logic; Reset : in std_logic); end component; end pio_core_pkg; • Phụ lục 3: Giới thiệu mã nguồn chương trình nạp lên vi điều khiển AT89C51 Thủ tục GET_KEY làm công việc quét hàng cột bàn phím để xác định có phím nhấn hay không Nếu phím nhấn trở với C=0 Nếu có phím nhấn trở với C=1 mã HEX phím nhấn chứa ghi A Thủ tục IN_HEX gọi thủ tục GET_KEY đến 50 lần trở với C=1 Bất kỳ gọi GET_KEY trở với C=0 xem nhiễu reset đếm Sau xác định có phím nhấn thực sự, IN_HEX đợi 50 lần gọi GET_KEY trở với C=0 Điều đảm bảo phím nhả trước gọi GET_KEY Thủ tục SHOW_RES chuẩn bị liệu xuất liệu port PA PIO Dữ liệu xuất thứ tự HEX phím nhấn Thủ tục DELAY50US DELAY1S trực trì hoãn khoảng 50 μs 1s ORG 0000H SETB P3.6 ;nWR SETB P3.7 ;nRD CLR P3.3 ;nCS LCALL DELAY1S ;********************************************** ;Khởi động PA: Xuất, PCH: Xuất ;********************************************** SETB P3.0 SETB P3.1 CLR P3.2 Trang 178 MOV A,#11110000B MOV P0,A CLR P3.6 JB P3.6,$ SETB P3.6 JNB P3.6,$ ;********************************************** ;Khởi động PB: Xuất, PCL: Nhập ;********************************************** SETB P3.0 ;A0 SETB P3.1 ;A1 SETB P3.2 ;A2 MOV A,#11110001B MOV P0,A CLR P3.6 JB P3.6,$ SETB P3.6 JNB P3.6,$ LCALL DELAY1MS MAIN: LCALL IN_HEX LCALL SHOW_RES SJMP MAIN ;********************************************** ;IN_HEX: Quét bàn phím để xác định phím nhấn Nếu có ; phím nhấn, thực trì hoãn 50 lần cho trường hợp ; key press vaø key release ;********************************************** IN_HEX: MOV R3,#50 BACK: LCALL GET_KEY JNC IN_HEX DJNZ R3,BACK PUSH ACC BACK2: MOV R3, #50 BACK3: CALL GET_KEY JC BACK2 DJNZ R3, BACK3 POP ACC RET Trang 179 ;********************************************** ;GET_KEY:- xác định trạng thái bàn phím ; -trở với C=0 phím nhấn ; -trở với C=1 thứ tự phím nhấn chứa ACC ; có phím nhấn ;********************************************** GET_KEY: MOV A,#0FEH MOV R6,#4 TEST: SETB P3.0 CLR P3.1 CLR P3.2 MOV R7,A MOV P0,A CLR P3.6 JB P3.6,$ SETB P3.6 JNB P3.6,$ LCALL DELAY50US SETB P3.0 CLR P3.1 SETB P3.2 CLR P3.7 MOV P0,#0FFH JB P3.7,$ MOV A,P0 SETB P3.7 JNB P3.7,$ ANL A,#0FH CJNE A,#0FH,KEY_HIT MOV A,R7 RL A DJNZ R6,TEST CLR C SJMP EXIT KEY_HIT: MOV R7,A MOV A,#4 CLR C Trang 180 SUBB A,R6 MOV R6,A MOV A,R7 MOV R5,#4 AGAIN: RRC A JNC DONE INC R6 INC R6 INC R6 INC R6 DJNZ R5,AGAIN DONE: SETB C MOV A,R6 EXIT: RET ;********************************************** ;SHOW_RES: hiển thị thứ tự phím nhấn ;********************************************** SHOW_RES: ANL A,#0FH CJNE A,#00H,S1 MOV A,#00111111B SJMP DISPLAY S1: CJNE A,#01H,S2 MOV A,#00000110B SJMP DISPLAY S2: CJNE A,#02H,S3 MOV A,#01011011B SJMP DISPLAY S3: CJNE A,#03H,S4 MOV A,#01001111B SJMP DISPLAY S4: CJNE A,#04H,S5 MOV A,#01100110B SJMP DISPLAY S5: CJNE A,#05H,S6 MOV A,#01101101B SJMP DISPLAY S6: CJNE A,#06H,S7 MOV A,#01111101B Trang 181 S7: S8: S9: SA: SB: SC: SD: SE: SF: SS: DISPLAY: SJMP CJNE MOV SJMP CJNE MOV SJMP CJNE MOV SJMP CJNE MOV SJMP CJNE MOV SJMP CJNE MOV SJMP CJNE MOV SJMP CJNE MOV SJMP CJNE MOV SJMP MOV CLR CLR CLR MOV CLR JB SETB JNB RET DISPLAY A,#07H,S8 A,#00000111B DISPLAY A,#08H,S9 A,#01111111B DISPLAY A,#09H,SA A,#01101111B DISPLAY A,#0AH,SB A,#01110111B DISPLAY A,#0BH,SC A,#01111100B DISPLAY A,#0CH,SD A,#00111001B DISPLAY A,#0DH,SE A,#01011110B DISPLAY A,#0EH,SF A,#01111001B DISPLAY A,#0FH,SS A,#01110001B DISPLAY A,#11111111B P3.0 P3.1 P3.2 P0,A P3.6 P3.6,$ P3.6 P3.6,$ Trang 182 DELAY1S: PUSH PUSH PUSH MOV L3: MOV L4: MOV DJNZ DJNZ DJNZ POP POP POP RET DELAY1MS: PUSH PUSH PUSH MOV L6: MOV L7: MOV DJNZ DJNZ DJNZ POP POP POP RET DELAY50US:PUSH MOV L5: DJNZ POP RET END 07H 06H 05H R7,#15 R6,#250 R5,#250 R5,$ R6, L4 R7, L3 05H 06H 07H 07H 06H 05H R7,#15 R6,#15 R5,#15 R5,$ R6, L7 R7, L6 05H 06H 07H 06H R6,#12 R6,L5 06H TÀI LIỆU THAM KHẢO Rochit Rajsuman, “System-on-a-chip: Design and Test”, Advantest America R&D Center, Inc., 2000 Michael Keating and Pierre Bricaud, “Reuse methodology manual for system-on-achip”, Kluwer Academic Publishers, 1999 Trang 183 Zainallabedin Navabi, “VHDL-Analysis and Modeling of Digital System”, McGrawHill 1998 Scott MacKenzie, “The 8051 microcontroller”, Prentice – Hall Inc, 1995 Taøi liệu: 82C55A - CHMOS programmable peripheral interface, Intel Nguyễn QuốcTuấn, “VHDL để thết kế vi mạch”, Khoa công nghệ thông tin Trường Đại học Bách Khoa TP.HCM, 3/2000 Dương Minh Trí, “Sơ đồ chân linh kiện bán dẫn”, Nhà xuất khoa học kỹ thuật, 1998 ... 83 3.2.10 74378 86 PHAÀN IV - THIẾT KẾ BỘ ĐIỀU KHIỂN GIAO TIẾP SONG SONG 89 4.1 ĐẶC TẢ BỘ ĐIỀU KHIỂN GIAO TIẾP SONG SONG 89 4.1.1 MÔ TẢ CHỨC NĂNG CỦA CÁC ĐƯỜNG TÍN HIỆU... cứu, tìm tòi phương pháp công nghệ Một nghững công nghệ đưa công ty giới đến thành công công nghệ SoC Những kiến thức cần nắm bắt thiết kế hệ thống áp dụng công nghệ SoC ngôn ngữ đặc tả phần... Firm core khối sử dụng lại, tối ưu mặt cấu trúc hình dạng, vị trí kích thước khối xác định 1.2 NỘI DUNG ĐỀ TÀI Đề tài nguyên cứu triển khai ứng dụng công nghệ SoC để xây dựng firm core cho điều khiển