Bộ tài liệu thực hành thiết kế hệ thống số được soạn thảo nhằm mục đích hỗ trợ sinh viên chuyên ngành Hệ thống nhúng và điều khiển tự động tiếp xúc với ngôn ngữ mô tả phần cứng (VHDL hoặc Verilog) và hỗ trợ cho môn học Thiết kế hệ thống số. Đây là môn học mang tính thực hành cao nên trong cấu trúc chương trình sẽ dành nhiều thời gian hơn cho thực hành thí nghiệm cũng như bắt buộc sinh viên khi kết thúc môn học phải thực hiện các đồ án bài tập thiết kế cỡ vừa và lớn theo nhóm dưới dạng bài tập lớn. Kiến thức và kỹ năng sinh viên thu được ở môn học Thiết kế hệ thống số sẽ giúp ích rất nhiều cho các bài toán chuyên ngành và Đồ án tốt nghiệp sau này bởi các ứng dụng xử lý số đang dần chiếm vai trò quan trọng trong các hệ thống kỹ thuật. Bên cạnh các công cụ truyền thống là vi xử lý, vi điều khiển và máy tính thì thiết kế phần cứng trên FPGA hoặc trên các nên tảng tương tự đang là hướng phát triển mới triển vọng hơn, mang lại hiệu quả vượt trội. Tài liệu này bao gồm xx bài, tương ứng với 5 buổi thực hành. Nội dung chủ yếu hướng đến việc hướng dẫn sinh viên sử dụng ngôn ngữ VHDL để lập trình và mô phỏng trên các phần mềm chuyên dụng của hãng Xilinx như Vivado và ISE 14.7, đồng thời thao tác trên board phát triển Spartan 6 SP601 và ARTY A7– 35T.
HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA ĐIỆN TỬ VIỄN THÔNG THỰC HÀNH THIẾT KẾ HỆ THỐNG SỐ GIẢNG VIÊN/SINH VIÊN BỘ MƠN ĐIỆN TỬ MÁY TÍNH HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA ĐIỆN TỬ VIỄN THÔNG TÀI LIỆU THỰC HÀNH CHUYÊN NGÀNH: HỆ THỐNG NHÚNG VÀ ĐIỀU KHIỂN TỰ ĐỘNG MÔN HỌC: THIẾT KẾ HỆ THỐNG SỐ Giới thiệu Bộ tài liệu thực hành thiết kế hệ thống số soạn thảo nhằm mục đích hỗ trợ sinh viên chuyên ngành Hệ thống nhúng điều khiển tự động tiếp xúc với ngôn ngữ mô tả phần cứng (VHDL Verilog) hỗ trợ cho môn học Thiết kế hệ thống số Đây môn học mang tính thực hành cao nên cấu trúc chương trình dành nhiều thời gian cho thực hành thí nghiệm bắt buộc sinh viên kết thúc môn học phải thực đồ án tập thiết kế cỡ vừa lớn theo nhóm dạng tập lớn Kiến thức kỹ sinh viên thu môn học Thiết kế hệ thống số giúp ích nhiều cho tốn chun ngành Đồ án tốt nghiệp sau ứng dụng xử lý số dần chiếm vai trò quan trọng hệ thống kỹ thuật Bên cạnh công cụ truyền thống vi xử lý, vi điều khiển máy tính thiết kế phần cứng FPGA nên tảng tương tự hướng phát triển triển vọng hơn, mang lại hiệu vượt trội Tài liệu bao gồm xx bài, tương ứng với buổi thực hành Nội dung chủ yếu hướng đến việc hướng dẫn sinh viên sử dụng ngơn ngữ VHDL để lập trình mơ phần mềm chuyên dụng hãng Xilinx Vivado ISE 14.7, đồng thời thao tác board phát triển Spartan SP601 ARTY A7– 35T Vì thời gian hạn chế mơn học trình biên soạn tài liệu hướng dẫn thực hành chắn không tránh khỏi sai sót Vì mong tiếp tục nhận ý kiến đóng góp từ phía thầy khoa bạn sinh viên chuyên ngành Hệ thống nhúng điều khiển tự động Mọi ý kiến đóng góp gửi Bộ mơn Điện tử Máy tính – Học viên Kỹ thuật Mật mã vào hòm thư điện tử nguyenhuuson@actvn.edu.vn Chân thành cảm ơn Mục lục Bài Tổng quan phần mềm thiết kế ISE 14.7 FPGA I Giới thiệu Board phát triển Spartan SP601 Xilinx II Cài đặt phần mềm thiết kế ISE Xilinx III Chương trình ISE design suite 10 Bài Tổng quan phần mềm thiết kế Vivado FPGA 19 I Giới thiệu Board phát triển ARTY A7-35T 19 II Cài đặt phần mềm thiết kế Vivado Xilinx 20 III Chương trình Vivado design suite 21 Bài 3: Bộ cộng Full – Adder 4bits 29 I Mục đích 29 II Chuẩn bị thực 29 III Nội dung 29 Bài 4: Điều khiển hình thị số LED 33 I Mục đích 33 II Chuẩn bị thực 33 III Nội dung 33 Bài 5: Điều khiển hiển thị ma trận LED 39 I Mục đích 39 II Chuẩn bị thực 39 III Nội dung 39 Bài 6: Điều khiển hiển thị VGA 43 I Mục đích 43 II Chuẩn bị thực 43 III Nội dung 43 Bài 7:Thiết kế hệ thống đèn tín hiệu giao thơng đơn giản 47 I Mục đích 47 II Chuẩn bị thực 47 III Nội dung 47 Bài 8:Thiết kế xử lý logic số học (ALU) đơn giản 53 I Mục đích 53 II Chuẩn bị thực 53 III Nội dung 53 Bài 9: Điều khiển Led RBGs, xung clock, PWM board ARTY A7-35T 58 I Mục đích 58 II Chuẩn bị thực 58 III Nội dung 58 Bài 10: Thiết kế chia tần số đơn giản 62 I Mục đích 62 II Chuẩn bị thực 62 III Nội dung 62 Bài 11: Mở rộng điều khiển VGA board ARTY A7-35T 65 I Mục đích 65 II Chuẩn bị thực 65 III Nội dung 65 PHỤ LỤC 69 Bài Tổng quan phần mềm thiết kế ISE 14.7 FPGA Mục tiêu: Làm quen với board phát triển Spartan SP601 Cài đặt làm quen với phần mêm thiết kế ISE 14.7 I Giới thiệu Board phát triển Spartan SP601 Xilinx Giới thiệu Board phát triển SP601 hãng sản xuất thiết bị tiếng Xilinx sử dụng chip FPGA XC6SLX16 thuộc họ Spartan-6 Các thơng số tính kỹ thuật SP601 phù hợp với kỹ sư hay sinh viên bắt đầu tìm hiểu mơi trường phát triển FPGA Board SP601 có tính bật xử lý nhớ DDR2, parallel flash, ethernet 10/100/1000, cổng GPIO kết nối UART Các tính bổ sung thêm vào thơng qua cổng kết nối mở rộng VITA 57.1.1 Thành phần, thông số kỹ thuật Board phát triển SP601 cung cấp tính đây: Spartan-6 XC6SLX16-2CSG324 FPGA Bộ nhớ DDR2 128 MB SPI x4 Flash Linear Flash BPI 10/100/1000 Tri-Speed Ethernet PHY IIC Bus 8Kb NV memory External access 2-pin header VITA 57.1 FMC-LPC connector Clock Generation Oscillator (Differential) Oscillator Socket (Single-Ended, 2.5V or 3.3V) SMA Connectors (Differential) VITA 57.1 FMC-LPC Connector 10 LEDs trạng thái FPGA_AWAKE INIT DONE 13 Cổng I/O LEDs Công tắc DIP Nút nhấn pushbuttons Header GPIO đực 14 FPGA_PROG_B Pushbutton Switch 15 Configuration Options SPI x4 Flash (both onboard and off-board) Linear Flash BPI JTAG Configuration 16 Power Management AC Adapter and 5V Input Power Jack/Switch Onboard Power Supplies Sơ đồ khối ngoại vi SP601: Mô tả chi tiết: Các thành phần hiển thị hình thích theo bảng đây: STT Tên Chú thích Spartan-6 FPGA XC6SLX-2CSG324 DDR2 SPIx4 flash headers Linear Flash BPI 10/100/100 Ethernet GMII Marvell Alaska RS232 UART (USB bridge) Sử dụng kết nối CP2103 Serial-to-USB IIC Kết nối đến chân cắm VITA 57.1 FMC Clock, socket, SMA VITA 57.1 FMC-LPC Tín hiệu LVDS, clocks, PRSNT 10 Leds Led trạng thái Ethernet PHY 11 LED, Header FPGA awake led, header ngắt Elpida EDE1116ACBG Gb DDR2 SDRAM SPI chân cắm StrataFlash 8-bit (J3 device), pins shared w/ SPI x4 12 13 LEDs FPGA INIT, DONE LED I/O (tích cực mức cao) Cơng tắc DIP switch I/O (tích cực mức cao) Nút nhấn PushButton I/O, CPU_RESET (tích cực mức cao) Header 12-chân (8 chân I/O) Header đực 6x2, 08 chân I/O (tích cực mức cao) 14 Nút nhấn Pushbutton FPGA_PROG_B 15 USB JTAG Đầu nối USB-to-JTAG, cáp nạp 16 Module nguồn Cung cấp nguồn cho board SP601 II Cài đặt phần mềm thiết kế ISE Xilinx Giới thiệu phần mêm thiết kế ISE design suite ISE (Intergrated Synthesis Environment) công cụ đề xuất Xilinx để tổng hợp phân tích thiết kế HDL Bộ design suite giúp lập trình viên việc biên dịch thiết kế, kiểm tra mơ hình RTL đồng thời cơng cụ mô mạnh mẽ ISE design suite Xilinx khuyến nghị sử dụng cho sản phẩm hãng dịng Spartan®-6 Virtex®-6 trở xuống Phần mềm hoạt động ổn định hệ điều hành Window XP/7/Server Linux, riêng phiên ISE 14.7 có hỗ trợ thêm Window 10 Với dịng sản phẩm Virtex®-7, Kintex®-7, Artix®-7, and Zynq®-7000, Xilinx đề nghị sử dụng phần mềm Vivado® Design Suite Mơn thiết kế hệ thống số với mục đích giúp sinh viên chuyên ngành hệ thống nhúng điều khiển tự động bước đầu làm quen với FPGA ngôn ngữ mô tả phần cứng VHDL nên sử dụng Board Spartan SP601 phần mềm ISE 14.7 Ở học kỳ sau với môn chuyên ngành chuyên sâu hơn, khoa Điện tử Viễn thông cung cấp cho sinh viên Board phát triển Artix®-7, and Zynq®-7000 phần mềm Vivado® Design Suite Cài đặt File cài đặt ISE design suite 14.7 tải trang chủ Xilinx theo đường link sau: https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadN av/vivado-design-tools/archive-ise.html Sinh viên lựa chọn phiên thích hợp với hệ điều hành máy tính Cấu hình đề xuất để desktop Laptop chạy ổn định ISE là: begin case(ALU_Sel) is when "0000" => Cộng ALU_Result Trừ ALU_Result Nhân ALU_Result Chia ALU_Result Logical shift left ALU_Result Logical shift right ALU_Result Rotate left ALU_Result Rotate right ALU_Result Logic and ALU_Result Logic or ALU_Result Logic xor ALU_Result Logic nor ALU_Result Logic nand ALU_Result Logic xnor ALU_Result So sánh if(A>B) then ALU_Result ALU_Sel, ALU_Out => ALU_Out, Carryout => Carryout ); Stimulus process stim_proc: process begin hold reset state for 100 ns A