(Đề tài NCKH) Thiết kế và thi công bộ truyền nhận theo giao thức SPIWishbone(Đề tài NCKH) Thiết kế và thi công bộ truyền nhận theo giao thức SPIWishbone(Đề tài NCKH) Thiết kế và thi công bộ truyền nhận theo giao thức SPIWishbone(Đề tài NCKH) Thiết kế và thi công bộ truyền nhận theo giao thức SPIWishbone(Đề tài NCKH) Thiết kế và thi công bộ truyền nhận theo giao thức SPIWishbone(Đề tài NCKH) Thiết kế và thi công bộ truyền nhận theo giao thức SPIWishbone(Đề tài NCKH) Thiết kế và thi công bộ truyền nhận theo giao thức SPIWishbone(Đề tài NCKH) Thiết kế và thi công bộ truyền nhận theo giao thức SPIWishbone(Đề tài NCKH) Thiết kế và thi công bộ truyền nhận theo giao thức SPIWishbone(Đề tài NCKH) Thiết kế và thi công bộ truyền nhận theo giao thức SPIWishbone(Đề tài NCKH) Thiết kế và thi công bộ truyền nhận theo giao thức SPIWishbone(Đề tài NCKH) Thiết kế và thi công bộ truyền nhận theo giao thức SPIWishbone(Đề tài NCKH) Thiết kế và thi công bộ truyền nhận theo giao thức SPIWishbone(Đề tài NCKH) Thiết kế và thi công bộ truyền nhận theo giao thức SPIWishbone(Đề tài NCKH) Thiết kế và thi công bộ truyền nhận theo giao thức SPIWishbone(Đề tài NCKH) Thiết kế và thi công bộ truyền nhận theo giao thức SPIWishbone(Đề tài NCKH) Thiết kế và thi công bộ truyền nhận theo giao thức SPIWishbone(Đề tài NCKH) Thiết kế và thi công bộ truyền nhận theo giao thức SPIWishbone
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TPHCM BÁO CÁO TỔNG KẾT ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN THIẾT KẾ VÀ THI CÔNG BỘ TRUYỀN NHẬN THEO GIAO THỨC SPI-WISHBONE MÃ SỐ : SV2022-178 Thuộc nhóm ngành khoa học: Khoa học kỹ thuật SV thực hiện: Võ Thiện Tùng Giới tính: Nam Dân tộc: Kinh Lớp, Khoa: 18161CLVT1A, Khoa đào tạo chất lượng cao Năm thứ: /Số năm đào tạo: Ngành học : Điện tử - Viễn thông Người hướng dẫn: TS Đỗ Duy Tân TP Hồ Chí Minh, 06/2022 MỤC LỤC DANH MỤC HÌNH ẢNH .4 DANH MỤC BẢNG .6 CÁC TỪ VIẾT TẮT .7 MỞ ĐẦU .12 I Tổng quan .12 II Lý chọn đề tài 12 III Mục tiêu đề tài 13 IV Phương pháp nghiên cứu .13 V Đối tượng phạm vi nghiên cứu 13 CƠ SỞ LÝ THUYẾT 14 1.1 Giới thiệu FPGA 14 1.1.1 Kiến trúc FPGA 15 1.1.2 Sơ đồ phát triển phần mềm hệ thống FPGA 16 1.1.3 Khối logic .16 1.2 Thanh ghi dịch 17 1.2.1 Phần tử nhớ 17 1.2.2 Thanh ghi dịch sử dụng Flip-Flop D .18 1.3 Giới thiệu SPI 18 1.3.1 Cấu tạo SPI .19 1.3.2 Hoạt động SPI 20 1.3.3 Sơ đồ kết nối giao thức SPI 23 1.4 Wishbone bus 25 1.4.1 Giới thiệu 25 1.4.2 Cấu trúc kết nối Wishbone bus .26 1.5 Giới thiệu phần mềm 27 1.5.1 Ngôn ngữ mô tả phần cứng 27 1.5.2 Phần mềm Questasim 10.2 27 1.5.3 Phần mềm Quartus Prime Lite 28 THIẾT KẾ HỆ THỐNG 29 2.1 Sơ đồ khối tổng quát hệ thống 29 2.2 Sơ đồ khối chi tiết .31 2.2.1 Chế độ Master .31 2.2.2 Chế độ Slave 32 2.2.3 Mô tả ghi .33 2.3 Thiết kế chi tiết 36 2.3.1 Khối truyền liệu TX chế độ MASTER 36 2.3.2 Khối truyền liệu TX chế độ SLAVE 37 2.3.3 Khối nhận liệu RX chế độ MASTER 38 2.3.4 Khối nhận liệu RX chế độ SLAVE 39 2.3.5 Thanh ghi điều khiển 40 2.3.6 Thanh ghi trạng thái 41 2.3.7 Tín hiệu báo ngắt 42 MÔ PHỎNG VÀ ĐÁNH GIÁ 44 3.1 Mô hoạt động 44 3.1.1 Sơ đồ kết nối tổng quát test case .44 3.1.2 Test case 1: Master truyền – Slave nhận 46 3.1.3 Test case 2: Master nhận – Slave truyền 50 3.1.4 Đánh giá kết mô 50 3.2 Tài nguyên sử dụng .51 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 53 4.1 Kết luận .53 4.2 Hướng phát triển 53 4.3 Kiến nghị .54 TÀI LIỆU THAM KHẢO .55 DANH MỤC HÌNH ẢNH Hình 1.1: Kiến trúc phần cứng FPGA .15 Hình 1.2: Sơ đồ khối phần mềm hệ thống FPGA 16 Hình 1.3: Kiến trúc khối logic FPGA .17 Hình 1.4: Flip-Flop D 17 Hình 1.5: Thanh ghi dịch sử dụng phần tử nhớ 18 Hình 1.6: Sơ đồ khối giao thức SPI .19 Hình 1.7: Sơ đồ nguyên lý truyền nhận liệu SPI 21 Hình 1.8: Sơ đồ nguyên lý chi tiết sử dụng ghi đệm 21 Hình 1.9: Các trạng thái CPOL CPHA tác động tới liệu 22 Hình 1.10: Một Master kết nối với Slave .23 Hình 1.11: Một thiết bị Master nhiều thiết bị Slave chế độ độc lập 24 Hình 1.12: Một thiết bị Master nhiều thiết bị Slave chế độ dây chuyền .25 Hình 1.13: Giao diện Master Slave Wishbone [13] 26 Hình 2.1: Sơ đồ khối tổng quát hệ thống .29 Hình 2.2: Sơ đồ chi tiết module chế độ Master 31 Hình 2.3: Sơ đồ chi tiết module chế độ Slave 32 Hình 2.4: Mạch điều khiển trình truyền liệu TX_MASTER .36 Hình 2.5: Mạch điều khiển trình truyền liệu TX_SLAVE 37 Hình 2.6: Mạch điều khiển trình nhận liệu RX_MASTER .38 Hình 2.7: Mạch điều khiển trình nhận liệu RX_SLAVE 39 Hình 2.8: Mạch điều khiển liệu truyền đến DAT_O 40 Hình 2.9: Mạch ghi điều khiển 40 Hình 2.10: Mạch ghi trạng thái 41 Hình 2.11: Mạch tín hiệu báo ngắt 42 Hình 3.1: Sơ đồ kết nối kiểm tra hoạt động 44 Hình 3.2: Dạng sóng mơ q trình cài đặt cho trình truyền nhận Master 46 Hình 3.3: Dạng sóng mơ q trình truyền liệu Master 48 Hình 3.4: Dạng sóng mơ q trình truyền liệu Master 49 Hình 3.5: Dạng sóng mơ trình nhận liệu Slave đưa Wishbone .49 Hình 3.6: Dạng sóng mơ q trình Master nhận – Slave truyền 50 DANH MỤC BẢNG Bảng 1.1: Bảng mơ tả chức chân tín hiệu Wishbone bus 27 Bảng 2.1: Chức chân module 30 Bảng 2.2: Mô tả sơ lược ghi dùng module 33 Bảng 2.3: Chức bit ghi Status .34 Bảng 2.4: Các chức bit ghi Control .35 Bảng 3.1: Bảng tóm tắt hoạt động test case 45 Bảng 3.2: Tài nguyên logic sử dụng 51 Bảng 3.3: Tần số hoạt động tối đa thiết kế .52 Bảng 3.4: Công suất tiêu tốn thiết kế 52 CÁC TỪ VIẾT TẮT Từ viết tắt Từ tiếng Anh Nghĩa tiếng việt ASIC Application-Specific Integrated Vi mạch tích hợp có tính ứng Circuit dụng CLB Configurable Logic Block Các phần tử logic CLK Clock Xung đồng hồ CPHA Clock Phase Pha xung clock CPOL Clock Polarity Cực xung clock EEPROM Electrically Erasable Programmable Bộ nhớ không bay Read-Only Memory FPGA Field-Programmable Gate Array Mạch tích hợp cỡ lớn dùng cấu trúc mảng phần tử logic HDL Hardware Description Language Ngôn ngữ mô tả phần cứng I2C Inter-Integrated Circuit Mạch tích hợp giao tiếp thiết bị MISO Master Input Slave Output Master truyền Slave nhận MMD Multi Media Card Thẻ nhớ có nhớ flash chuẩn MOSI Master output Slave Input Master nhận Slave truyền RTC Real Time Clock Modules Mạch thời gian thực RTL Register Transfer Level Chuyển đổi mã nguồn thành mức cổng logic SD Secure Digital Thẻ nhớ nhớ không bay SPI Serial Peripheral Interface Giao diện Ngoại vi nối tiếp SS Slave Select Lựa chọn Slave UART Universal Asynchronous Receiver- Bộ truyền nhận nối tiếp bất Transmitter đồng Very Large-Scale Integration Tích hợp vi mạch với mật độ VLSI lớn BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TPHCM THÔNG TIN KẾT QUẢ NGHIÊN CỨU CỦA ĐỀ TÀI Thông tin chung: - Tên đề tài: THIẾT KẾ VÀ THI CÔNG BỘ TRUYỀN NHẬN THEO GIAO THỨC SPI-WISHBONE - Chủ nhiệm đề tài: Võ Thiện Tùng - Lớp: 18161CLVT1A Mã số SV: 18161178 Khoa: Đào tạo chất lượng cao - Thành viên đề tài: STT Họ tên MSSV Lớp Võ Thiện Tùng 18161178 18161CLVT1A Thái Dương Tuấn Thành 18161146 18161CLVT1A Đặng Lê Ngọc Hòa 18161076 18161CLVT1A Võ Phan Mẫn Đạt 18119065 18119CL1A Nguyễn Văn Thương 18161161 18161CLDT1A Khoa Đào tạo chất lượng cao Đào tạo chất lượng cao Đào tạo chất lượng cao Đào tạo chất lượng cao Đào tạo chất lượng cao - Người hướng dẫn: TS Đỗ Duy Tân Mục tiêu đề tài: Đề tài thực hướng tới mục tiêu sau: Nắm lý thuyết, có nhìn tổng qt chuẩn truyền thông SPI, cách hoạt động truyền tải liệu Master Slave, từ thiết kế nên module SPI sử dụng ngôn ngữ mô tả phần cứng Verilog Đồng thời kết hợp chuẩn bus Wishbone vào module giúp điều khiển trình truyền nhận Thiết kế đánh giá dựa kết mô tài nguyên hệ thống sử dụng Tính sáng tạo: Chuẩn truyền thông SPI phát triển ứng dụng rộng rãi, tác giả đưa thiết kế chuẩn giao thức SPI kèm với giao thức bus hệ thống khác OPB (On-Chip Peripheral Bus), APB (Advanced Peripheral Bus) Wishbone Tuy nhiên, thiết kế tác giả trình cách đơn giản, chưa làm rõ nhiều vấn Tín hiệu báo ngắt gửi mà tín hiệu thỏa mãn từ ghi điều khiển trạng thái báo liệu lỗi có tín hiệu báo lỗi nhận tải liệu “reg_roe” “reg_iroe” mức logic “1” có tín hiệu báo lỗi truyền liệu tải “reg_toe” “reg_itoe” mức logic “1” trường hợp muốn ngắt phải có thêm tín hiệu “reg_e” lúc tín hiệu ngắt gửi Tín hiệu báo ngắt cịn phụ thuộc vào tín hiệu báo ngắt khối khơng liên quan tới q trình truyền không ghi địa trỏ tới “reg_trdy” “reg_itrdy” lúc có tín hiệu ngắt truyền Cuối có tín hiệu báo ngắt cịn phụ thuộc vào tín hiệu báo ngắt khối khơng liên quan tới q trình nhận khơng ghi địa trỏ tới “reg_rrdy” “reg_irrdy” lúc có tín hiệu ngắt truyền 43 CHƯƠNG MÔ PHỎNG VÀ ĐÁNH GIÁ Trong chương này, chạy mô phần mềm QuestaSim 10.2 Từ đó, đánh giá kết sau trình chạy mơ 3.1 Mơ hoạt động 3.1.1 Sơ đồ kết nối tổng quát test case Hoạt động module nhóm kiểm tra mơ phần mềm QuestaSim 10.2 Mơ hình kiểm tra Hình 3.1 thiết kế cách cấu hình module SPI thành module Master module Slave, hai module giao tiếp truyền nhận với thông qua giao thức SPI Bên phía Master Slave có bus Wishbone điều khiển tương đương với việc xử lý trung tâm điều khiển Master Slave thông qua Wishbone Hình 3.1: Sơ đồ kết nối kiểm tra hoạt động Nhóm tập trung kiểm tra hoạt động thiết kế thơng qua hai test case là: Master truyền – Slave nhận Master nhận – Slave truyền Các test case theo thứ tự thực hiện, mô tả tổng quát hoạt động test case trình bày Bảng 3.1 Dữ liệu truyền chọn gồm byte: 8’hda, 8’hf7 44 Bảng 3.1: Bảng tóm tắt hoạt động test case Test case Master truyền – Slave nhận Master Slave - Cấu hình ghi Control (0x0c): Master - Cấu hình ghi nhận địa 0x0c, cho phép truy cập vào Control (0x0c): ghi Control Master nhận liệu từ Master nhận địa SPI_DAT_I đưa vào Control 8’h8b 0x0c, cho phép truy - Cấu hình ghi SS_MASK (0x10) chọn cập vào ghi Slave giao tiếp: Master nhận địa 0x10, Control Master nhận cho phép truy cập vào ghi SS_MASK liệu từ SPI_DAT_I Master nhận liệu từ SPI_DAT_I đưa vào đưa vào Control SS_MASK 8’h01 8’h0b - Thanh ghi TXDATA (0x04): Master nhận - Thanh ghi địa 0x04, cho phép truy cập vào RXDATA (0x00): ghi TXDATA Dữ liệu đưa vào TXDATA từ Nhận liệu từ SPI_DAT_I, truyền qua Slave Master, đưa đến - Kết thúc: Truy cập SS_MASK, xoá liệu Wishbone Slave ghi để ngắt kết nối với Slave Master nhận – Slave truyền - Cấu hình ghi Control (0x0c): Master - Cấu hình ghi nhận địa 0x0c, cho phép truy cập vào Control (0x0c): ghi Control Master nhận liệu từ Master nhận địa SPI_DAT_I đưa vào Control 8’h8b 0x0c, cho phép truy - Cấu hình ghi SS_MASK (0x10 chọn cập vào ghi Slave giao tiếp: Master nhận địa 0x10, Control Master nhận cho phép truy cập vào ghi SS_MASK liệu từ SPI_DAT_I Master nhận liệu từ SPI_DAT_I đưa vào đưa vào Control SS_MASK 8’h01 8’h0b - Thanh ghi RXDATA (0x00): Nhận liệu - Thanh ghi từ Slave, đưa đến Wishbone Master TXDATA (0x04): Slave nhận liệu từ 45 - Kết thúc: Truy cập SS_MASK, xoá liệu Wishbone cách ghi để ngắt kết nối với Slave nhận địa 0x04 truy cập TXDATA, liệu đưa vào TXDATA, truyền đến Master 3.1.2 Test case 1: Master truyền – Slave nhận Hình 3.2 Hình 3.3 bên dưới, dạng sóng mơ tả q trình truyền byte liệu từ vi điều khiển sang Master Master chuyển byte liệu cho Slave Xung clock điều khiển q trình lấy từ Wishbone, mơ xung clock có tần số 50Mhz Hình 3.2: Dạng sóng mơ q trình cài đặt cho q trình truyền nhận Master Hình 3.2, trình bước cài đặt ban đầu cho trình truyền Master Đầu tiên, Master nhận địa “8’h0c” ứng với ghi Control từ ADR_I để cần quyền truy cập vào ghi Control Đồng thời, nhận liệu “8’b10001011” từ DAT_I để đưa liệu vào ghi Tín hiệu STB_I WE_I cần bật phép Master nhận liệu Dữ liệu “8’b10001011” mang chức tham khảo từ Bảng 2.4 sau: 46 - Giữ liên kết trình truyền nhận liệu khối SPI Master SPI Slave, sau trao đổi liệu xong kết thúc việc kết nối - Ngắt hoạt động khối khác khối truyền trạng thái sẵn sang truyền liệu - Yêu cầu ngắt trình truyền liệu bị tải - Yêu cầu ngắt trình nhận liệu bị tải Slave cấu hình với bước tương tự với Master, liệu cấu hình ghi Control “8'b00001011” với chức tương ứng: - Ngắt hoạt động khối khác khối truyền trạng thái sẵn sang truyền liệu - Yêu cầu ngắt trình truyền liệu bị tải - Yêu cầu ngắt trình nhận liệu bị tải Sau đó, Master nhận địa “8’h08” yêu cầu đọc trạng thái từ ghi Status Tiếp theo, Master nhận địa “8’h10” ứng với yêu cầu truy cập ghi SS_MASK đưa liệu “8’h01” mang thông tin Slave thứ vào ghi Cuối cùng, Kết thúc trình cài đặt ban đầu cách đọc trạng thái từ ghi Status Master nhận địa “8’h08” Hình 3.3, bên hiển thị dạng sóng kết mơ hoạt động truyền byte liệu “8’hda” từ Wishbone sang Master 47 Hình 3.3: Dạng sóng mơ q trình truyền liệu Master Xung CLK_I cấp vào trình truyền nhận liệu, với tác động xung cạnh lên Tín hiệu STB_I tín hiệu WE_I lên mức “1” phép Master nhận liệu từ Wishbone gửi tới thông qua DAT_I Chân ADR_I truyền tới giá trị “8’h04” địa trỏ tới ghi REG_TXDATA cho phép thực ghi liệu vào ghi Dữ liệu truyền tới “8’hda” thông qua chân DAT_I Sau Master nhận liệu “8’hda” tín hiệu ACK_O lên “1” trả cho Wishbone báo hiệu liệu nhận đủ Để dễ quan sát liệu đầu ra, “mosi_dataout” đảm nhiệm vai trò ghi nhận tất bit liệu mà “MOSI_MASTER” gửi tới Quan sát Hình 3.3, sau chu kỳ xung SCLK, “mosi_dataout” sau nhận đủ bit “8’hda” trùng khớp với liệu ban đầu DAT_I đưa vào Tương tự, truyền “8’hf7” từ Wishbone sang Master mơ tả Hình 3.4, “mosi_dataout” nhận “8’hf7” khớp với liệu ban đầu 48 Hình 3.4: Dạng sóng mơ q trình truyền liệu Master Như vậy, liệu từ Wishbone truyền thành cơng sang Master Hình 3.5 bên biểu thị kết Slave nhận liệu từ Master Tại hình này, Slave nhận liệu “8’hda” gửi từ Master sang, tín hiệu STB Slave bật lên WE kéo xuống mức thấp phép hồn tồn q trình nhận liệu Khi đó, chân liệu ngõ Slave DAT_O xuất “8’hda” tới Wishbone Quá trình diễn tương tự với liệu “8’hf7” Hình 3.5: Dạng sóng mơ q trình nhận liệu Slave đưa Wishbone 49 3.1.3 Test case 2: Master nhận – Slave truyền Các bước cấu hình cho Master Slave test case tương tự test case Master truyền – Slave nhận Hình 3.6 bên mơ tả dạng sóng q trình Slave nhận liệu từ Wishbone Tiếp đến, liệu truyền cho Master Hình 3.6: Dạng sóng mơ q trình Master nhận – Slave truyền Với byte liệu Wishbone truyền “8’hda” “8’hf7”, lúc Slave bật tín hiệu STB WE phép khối nhận liệu từ Wishbone Sau chu kỳ xung SCLK, liệu truyền chân MISO_SLAVE Thuận tiên cho việc quan sát, “miso_dataout” với độ dài bit chịu trách nhiệm ghi lại liệu mà MISO_SLAVE gửi đến Tại Hình 3.6, thấy “miso_dataout” thành cơng nhận byte “8’hda” “8’hf7” Đồng thời, Slave nhận liệu, Master bật STB lên mức cao kéo WE mức thấp phép trình nhận liệu từ Slave Dữ liệu mà Master nhận gửi đến DAT_O Master Tại Hình 3.6, thấy DAT_O Master thành công gửi byte “8’hda” “8’hf7” 3.1.4 Đánh giá kết mô Thông qua mô kiểm tra hoạt động module việc cấu hình thành Master SPI Slave SPI, song song đối chiếu kết so với lý thuyết, nhóm thực rút kết đánh sau: 50 - Tại test case 1: cấu hình thành cơng ghi Control SS_MASK trình nhận byte địa yêu cầu truy cập - truy cập ghi – đưa liệu vào ghi Master nhận thành công hai byte liệu 8’hda 8’hf7 từ Wishbone Master gửi thành công đến Wishbone Slave - Tại test case 2: cấu hình thành cơng ghi Control SS_MASK trình nhận byte địa yêu cầu truy cập ghi - truy cập ghi – đưa liệu vào ghi Slave sau nhận thành công hai byte liệu 8’hda 8’hf7 từ Wishbone gửi thành công đến Wishbone Master 3.2 Tài nguyên sử dụng Thiết kế đề tổng hợp phần mềm Quartus Prime Lite với cấu hình board Cyclone V GT FPGA Development Kit để đánh giá tài nguyên logic cần sử dụng trình bày bảng 3.1, tần số hoạt động tối đa mà thiết kế đáp ứng trình bày Bảng 3.2, ước lượng công suất tiêu thụ thiết kế trình bày Bảng 3.3 Trong đó, tần số hoạt động tối đa (Fmax) Bảng 3.1 thiết kế cải thiện lần so với thiết kế SPI với bus AMBA APB trình bày báo [2], đồng thời thiết kế đề xuất đòi hỏi tài nguyên nhỏ (