Báo cáo GRADUATION RESEARCH 1
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG BÁO CÁO GRADUATION RESEARCH 1 Giáo viên hướng dẫn: TS. Nguyễn Kim Khánh Sinh viên thực hiện : Nguyễn Trường Giang MSSV: 20100228 Lớp: Việt Nhật IS2 K55 HÀ NỘI, 5/2014 Mục lục 1. Tìm hiểu về DE2i-150 Development Kit .............................................................. 1 1.1. Giới thiệu chung về DE2i-150....................................................................................................... 1 1.2. Cấu tạo của DE2i-150 ................................................................................................................... 1 1.2.1. Sơ đồ khối ............................................................................................................................. 1 1.2.3. Bộ vi xử lý............................................................................................................................. 2 1.2.3. Bộ FPGA................................................................................................................................. 3 1.3.Những điểm ưu việt của DE2i-150 ................................................................................................ 4 2. Tìm hiểu phần mềm Quartus II, ModelSim và ngôn ngữ lập trình VHDL ......... 5 2.1. Quartus II...................................................................................................................................... 5 2.1.1. Giới thiệu về Quartus II ......................................................................................................... 5 2.1.2. Tạo project ............................................................................................................................ 6 2.1.3. Biên dịch và nạp.................................................................................................................... 9 2.2. ModelSim Altera........................................................................................................................ 11 2.2.1. Giới thiệu về ModelSim Altera ........................................................................................... 11 2.2.2. Tạo một project với ModelSim Altera ................................................................................ 11 2.2.3. Biên dịch và chạy mô phỏng. .............................................................................................. 14 2.3. Sử dụng kết hợp Quartus II và ModelSim ................................................................................. 16 2.4. VHDL........................................................................................................................................... 17 2.4.1. Giới thiệu về VHDL .............................................................................................................. 17 2.4.2. Cấu trúc chương trình viết bằng VHDL ............................................................................... 17 2.3.3. Kiểu dữ liệu: ........................................................................................................................ 19 2.3.4. SIGNAL và VARIABLE ........................................................................................................... 20 2.3.4. Toán tử ................................................................................................................................ 20 2.4.5. GENERIC .............................................................................................................................. 21 2.4.6. Mã song song ...................................................................................................................... 22 2.4.7. Mã tuần tự .......................................................................................................................... 22 3.Tìm hiểu về FPGA................................................................................................ 24 3.1. Khái niệm ................................................................................................................................... 24 3.2. So sánh FPGA với các loại vi mạch khác ..................................................................................... 24 3.3. Cấu tạo của FPGA ....................................................................................................................... 24 3.3.1. Logic Blocks ....................................................................................................................... 25 3.3.2. Programmable Interconnects............................................................................................... 26 3.3.3. I/O Blocks ........................................................................................................................... 26 3.3.4. Các khối thiết kế sẵn ........................................................................................................... 27 3.4. Ứng dụng của FPGA ................................................................................................................... 27 4. Hướng nghiên cứu............................................................................................. 28 4.1. Hướng nghiên cứu: .................................................................................................................... 28 4.2. Lí do chọn đề tài: ........................................................................................................................ 28 4.2. Mục tiêu nghiên cứu .................................................................................................................. 28 4.4. Các vấn đề sẽ nghiên cứu........................................................................................................... 28 Danh mục tài liệu tham khảo ..................................................................................... 29 Danh mục hình vẽ Hình 1.1: Sơ đồ khối của kit DE2i-150 ....................................................................... 1 Hình 2.1: Giao diện của Quartus II 12.0 ..................................................................... 5 Hình 3.1: Sơ đồ khối FPGA ...................................................................................... 25 Hình 3.2. Một số ví dụ của logic cell ......................................................................... 25 Hình 3.3. Sơ đồ khối chuyển mạch lập trình được ................................................... 26 Hình 3.4. Cấu trúc PIP ............................................................................................. 26 Hình 3.5. Một ví dụ mô hình I/O cell ......................................................................... 27 1. Tìm hiểu về DE2i-150 Development Kit 1.1. Giới thiệu chung về DE2i-150 DE2i-150 là một nền tảng đột phá, với sự kết hợp của bộ vi xử lí nhúng Intel N2600 và bộ Altera Cyclone IV GX FPGA của hãng Altera. Chính nhờ sự kết hợp này, DE2i150 trở thành một hệ thống máy tính đầy đủ tính năng, và có hiệu năng xử lý rất cao. Đặc biệt, bộ Altera Cyclone IV GX FPGA nằm trên board DE2i-150 có thể tăng tốc khả năng đáp ứng của hệ thống mà vẫn giữ nguyên chi phí giải pháp và hiệu quả năng lượng. DE2i-150 có đến 150.000 phần tử logic, với sự mền dẻo, linh hoạt của khả năng tái cấu trúc phần cứng, nó có thể đáp ứng cho bất cứ nhiệm vụ nào. Bộ vi xử lí của Intel và bộ thiết bị FPGA được liên kết với nhau thông qua 2 luồng PCIe tốc độ cao, đảm bảo cho việc truyền dữ liệu giữa chúng đạt tốc độ cao. Chính nhờ những điều này, DE2i-150 sẽ là một công cụ tuyệt vời để xử lý các tác vụ đặc biệt, cũng như thiết kế phần cứng. 1.2. Cấu tạo của DE2i-150 1.2.1. Sơ đồ khối Hình 1.1: Sơ đồ khối của kit DE2i-150 1 Qua sơ đồ trên, ta có thể nhận thấy, kit DE2i-150 gồm 2 khối: khối bên trái là Intel Atom Processor, khối bên phải là FPGA Altera Cyclone GX. Hai khối liên kết với nhau bởi 2 đường PCIe. 1.2.3. Bộ vi xử lý Các thông số kĩ thuật: CPU : Intel® Atom™ Dual Core Processor N2600( 1M Cache, 1.6GHz ) Intel® Hyper-Threading Technology Intel SpeedStep® Technology Instruction Set : 64-bit Instruction Set Extensions : SSE2, SSE3, SSSE3 Integrated Graphics Graphics Base Frequency : 400MHz Chipset : Intel® NM10 Express Chipset DMI x2 to CPU Intel® High Definition Audio Serial ATA (SATA) 3 Gb/s Universal Serial Bus(USB) Hi-Speed USB 2.0 PCI Express Gen 1 Memory DDR3 SO-DIMM SDRAM Display VGA HDMI 1.3a Intel® Centrino® Wireless-N 135 802.11b/g/n Bluetooth 4.0 Wi-Fi Direct Audio Codec Realtek ALC272VA3-GR BIOS DIP package Bios Flash : GD25Q16 Programming Interface for Bios : Dedi-Prog Interface Debug Interface XDP header Clock System CK505 : 9VRS4339B 32768 Hz RTC crystal 27MHz VGA clock source Ethernet 2 Intel® 82583V GbE Controller 10/100/1000 Mb/s RJ45 3 status indicting LEDs Others Power header for hard-disk Current limit for USB Buzzer Mini PCIE header (Default for Intel® Centrino® Wireless-N 135 WiFi module) mSATA header RTC battery : CR2032 1.2.3. Bộ FPGA Các thông tin chi tiết của bộ FPGA: Featured Devices Cyclone IV EP4CGX150DF31 device 149,760 Les 720 M9K memory blocks 6,480 Kbits embedded memory 8 PLLs FPGA configuration JTAG and AS mode configuration EPCS64 serial configuration device On-board USB Blaster circuitry Memory devices 128MB (32Mx32bit) SDRAM 4MB (1Mx32) SSRAM 64MB (4Mx16) Flash with 16-bit mode SD Card socket Provides SPI and 4-bit SD mode for SD Card access Connectors Ethernet 10/100/1000 Mbps ports High Speed Mezzanine Card (HSMC) 40-pin expansion port VGA-out connector VGA DAC (high speed triple DACs) DB9 serial connector for RS-232 port with flow control Clock Three 50MHz oscillator clock inputs SMA connectors (external clock input/output) 3 Display 16x2 LCD module Switches and indicators 18 slide switches and 4 push-buttons switches 18 red and 9 green LEDs Eight 7-segment displays Other features Infrared remote-control receiver module TV decoder (NTSC/PAL/SECAM) and TV-in connector 1.3.Những điểm ưu việt của DE2i-150 Sự kết hợp giữa bộ vi xử lí Intel Atom và bộ FPGA của Altera giúp cho kit trở thành một hệ thống hoàn chỉnh, mạnh mẽ và đầy đủ các chức năng. Số lượng thành phần logic lớn (150.000 phần tử logic) với khả năng tái cấu trúc linh hoạt, mềm dẻo. Được nhà sản xuất cung cấp các phần mềm, môi trường phù hợp trên cả windown và linux Có đầy đủ các hệ thống vào ra và kết nối mạng 4 2. Tìm hiểu phần mềm Quartus II, ModelSim và ngôn ngữ lập trình VHDL 2.1. Quartus II 2.1.1. Giới thiệu về Quartus II Quartus II là một sản phẩm phần mềm của hãng Altera . Nó cung cấp môi trường thiết kế hoàn thiện, đa nền tảng, dễ dàng đáp ứng các nhu cầu thiết kế cụ thể. Nó là một môi trường toàn diện cho việc thiết kế SOPC(system-on-a-programmable-chip). Quartus II bao gồm các giải pháp cho cả quá trình thiết kế FPGA và CPLD. Quartus II cung cấp các khả năng thiết kế sau: Công cụ soạn thảo: VHDL, AHDL và Verilog HDL. Là công cụ mạnh mẽ trong tổng hợp logic Phân tích thời gian (timming analysis) Tự động định vị lỗi Place & Route Có giao diện đồ họa và giao diện dòng lệnh tiện dụng Tự động nhận diện các linh kiện khi kết nối Phân tích logic nhúng với công cụ phân tích SignalTap II …. Hình 2.1: Giao diện của Quartus II 12.0 5 2.1.2.Tạo project Từ giao diện chính của Quartus II, chọn File > New Project Winzard Chọn Next để tiếp tục, sau đó điền vào nởi lưu trữ project, nhập tên project 6 Chọn next để chọn file cần include vào project nếu có. Nếu không có thể ấn next ngay Sau khi add file thành công, ấn next để tiếp tục thiết lập linh kiện (Family & Device Settings), chọn FPGA mà ta dùng. 7 Ấn next để tiếp tục thiết lập bộ công cụ EDA, thường thì Quartus II sẽ mặc định công cụ mô phỏng là ModelSim-Altera, và ngôn ngữ VHDL. Bạn có thể chọn ngôn ngữ và bộ phỏng tùy ý, ngoài ra còn cung cấp bộ Timming, Symbol … Ấn next để tiếp tục, một màn hình sẽ hiện ra ghi lại những thông số ta đã thiết lập cho project. Ấn Finish để hoàn thành, hoặc back để chỉnh sửa các thông số. 8 Sau khi project được tạo, chọn file > New file để tạo một file mới và bắt đầu lập trình. Ấn file > Save để lưu file. 2.1.3.Biên dịch và nạp Sau khi code xong một file, chỉ định chân pin cho đầu ra và đầu vào. Chọn Processing > Start > Start Analysis & Elaboration. Sau đó chọn Assignments > Pins Planner, chọn các chân cho đầu vào và đầu ra tùy vào từng thiết bị 9 Để biên dịch file ta chọn Processing > Start Compilation. Nếu file có lỗi sẽ hiện thông báo ở dưới như hình dưới. Có thể ấn trực tiếp vào lỗi để hiện thị đọa code bị lỗi. Quá trình biên dịch hoàn thành khi không có lỗi, và ta bắt đầu nạp chương trình chạy vào phần cứng. Trước tiên có thể nạp chương trình chạy vào phần cứng, ta phải kết nối phần cứng với máy tính. Sau đó chọn Tools > Programmer, cửa sổ Programmer xuất hiện. 10 Click vào Hardware Setup, trong mục currently selected hardware chọn USB-Blaster [USB-0] Sau đó click vào Close. Nếu trong Programmer chưa có file cần nạp thì chọn Add file để chọn file. Chọn file cần nạp và ấn Start để bắt đầu nạp vào phần cứng. 2.2. ModelSim Altera 2.2.1. Giới thiệu về ModelSim Altera ModelSim Altera cũng là một sản phẩm phần mềm do hãng Altera cung cấp, là một công cụ vừa có khả năng lập trình phần cứng, vừa có khả năng chạy mô phỏng. 2.2.2. Tạo một project với ModelSim Altera Từ giao diện chính, chọn File>New project, điền tên project và chọn đường dẫ để lưu project. 11 Cửa sổ Add items to the Project hiện ra, yêu cầu thêm đối tượng vào cho Project. Chọn Create New File. 12 Trong cửa sổ Create Project File, nhập tên của file, chọn kiểu file. Sau khi tạo xong file, cửa sổ editor hiện ra, cho phép ta lập trình. 13 2.2.3. Biên dịch và chạy mô phỏng. Sau khi đã tạo xong file, để biên dịch, chọn Compile>Compile All Nếu không có lỗi gì xảy ra trong quá trình biên dịch, ta có thể bắt đầu chạy mô phỏng bằng cách chon Simulate > Start Simulate. 14 Cửa sổ Start Simulation hiện ra, chọn vào tab Design > work > ten_file và ấn OK: Để chọn dạng mô phỏng wave, chọn Add>To Wave>All items in region: 15 Trong tab Wave, chuột phải vào các biến đầu vào,chọn force để thiết lập giá trị, tiếp tục chọn Simulate > Run 100 2.3. Sử dụng kết hợp Quartus II và ModelSim Chúng ta có thể sử dụng kết hợp Quartus II và ModelSim để thiết kế mạch và chạy mô phỏng.Trong đó Quartus II đóng vai trò là công cụ lập trình, và vẽ sơ đồ thiết kế mạch,ModelSim đóng vai trò là công cụ chạy mô phỏng để kiểm tra tính đúng đắn của mạch đã được thiết kế bằng Quartus II. Để sử dụng kết hợp Quartus II và ModelSim, ta cần chọn ModelSim là công cụ mô phỏng trong bước tạo project trong Quartus II(Xem mục 2.1.2.Tạo project) hoặc chuột phải vào thiết bị trong Entity > Settings… > Simulation, trong mục Tool name > ModelSim-Altera. 16 2.4. VHDL 2.4.1. Giới thiệu về VHDL VHDL(Very high speed integrated circuit Hardware Description Language) là một trong các ngôn ngữ mô tả phần cứng được sử dụng rộng rãi hiện nay. VHDL là ngôn ngữ mô tả phần cứng cho các vi mạch tích hợp có tốc độ cao như FPGA, CPLD …VHDL cũng được sử dụng như một ngôn ngữ lập trình song song. VHDL là ngôn ngữ mô phỏng phần cứng được phát triển dùng cho chương trình VHSIC (Very High Speed Intergrated Circuit) của bộ quốc phòng Mỹ. Mục tiêu của việc phát triển VHDL là có được một ngôn ngữ mô phỏng phần cứng tiêu chuẩn và thống nhất cho phép phát triển thử nghiệm các hệ thống số nhanh hơn, cũng như cho phép dễ dàng đưa các hệ thống đó vào ứng dụng trong thực tế 2.4.2. Cấu trúc chương trình viết bằng VHDL Một đoạn Code VHDL chuẩn cần có tối thiểu 3 mục sau: LIBRARY(thư viện): chứa một danh sách của tất cả các thư viện được sử dụng trong thiết kế. Ví dụ: ieee, std, work, … VD: LIBRARY library_name; USE library_name.package_name.package_parts; ENTITYI(thực thể): Mô tả các chân vào ra (I/O pins) của mạch. Cú pháp như sau: ENTITY entity_name IS PORT ( port_name : signal_mode signal_type; port_name : signal_mode signal_type; ...); END entity_name; Signal_mode: có thể là IN, OUT, INOUT, hoặc BUFFER Signal_type: kiểu dữ liệu, có thể là BIT, STD_LOGIC, INTERGER… Port_name: tên của cổng, có thể là bất cứ gì, ngoại trừ các từ khóa của VHDL Vd: ENTITY nand_gate IS PORT (a, b : IN BIT; x : OUT BIT); END nand_gate; ARCHITECTURE(kiến trúc): chứa mã VHDL, mô tả mạch sẽ họat động như thế nào. Cú pháp như sau: 17 ARCHITECTURE architecture_name OF entity_name IS [declarations] BEGIN (code) END architecture_name; [declarations]: phần mô tả, nơi các tín hiệu và các hằng được khai báo Vd: ARCHITECTURE tg OF nand_gate IS BEGIN x [...]... Mảng có thể là mảng 1 chiều (1D), hai chiều (2D), hoặc là mảng 1 chiều của 1 chiều(1Dx1D) và có thể là các mảng có chiều cao hơn Để chỉ định một kiểu mảng mới: TYPE type_name IS ARRAY (specification) OF data_type; Để tạo sử dụng kiểu mảng mới: SIGNAL signal_name: type_name [:= initial_value]; Mảng cổng Kiểu bản ghi: tương tự như mảng, nhưng chứa những kiểu giá trị khác nhau 19 TYPE birthday IS... Các cách tạo mã song song: Sử dụng các toán tử Mệnh đề WHEN Vd: With WHEN/ELSE outp New project, điền tên project và chọn đường dẫ để lưu project 11 Cửa sổ Add items to the Project hiện ra, yêu cầu thêm đối tượng vào cho Project Chọn Create New File 12 Trong cửa sổ Create Project File, nhập tên của file, chọn kiểu file Sau khi tạo xong file, cửa sổ editor hiện ra, cho phép ta lập trình 13 2.2.3 Biên dịch và chạy mô phỏng Sau khi đã tạo xong file, để biên dịch, chọn... có thể bắt đầu chạy mô phỏng bằng cách chon Simulate > Start Simulate 14 Cửa sổ Start Simulation hiện ra, chọn vào tab Design > work > ten_file và ấn OK: Để chọn dạng mô phỏng wave, chọn Add>To Wave>All items in region: 15 Trong tab Wave, chuột phải vào các biến đầu vào,chọn force để thiết lập giá trị, tiếp tục chọn Simulate > Run 10 0 2.3 Sử dụng kết hợp Quartus II và ModelSim Chúng ta có thể sử dụng... STD_ULOGIC_VECTOR: là mở rộng của STD_LOGIC và STD_LOGIC_VECTOR, thêm một giá trị logic là ‘U’ Các kiểu dữ liệu người dùng định nghĩa: Vd: TYPE integer IS RANGE - 214 7483647 TO + 214 7483647; định nghĩa kiểu interger TYPE my_logic IS ('0', '1' , 'Z'); Một tập con của std_logic mà người dùng định nghĩa Các kiểu con: là kiểu dữ liệu đi kèm theo điều kiện dàng buộc Vd: SUBTYPE natural IS INTEGER RANGE... sử dụng kết hợp Quartus II và ModelSim, ta cần chọn ModelSim là công cụ mô phỏng trong bước tạo project trong Quartus II(Xem mục 2 .1. 2.Tạo project) hoặc chuột phải vào thiết bị trong Entity > Settings… > Simulation, trong mục Tool name > ModelSim-Altera 16 2.4 VHDL 2.4 .1 Giới thiệu về VHDL VHDL(Very high speed integrated circuit Hardware Description Language) là một trong các ngôn ngữ mô tả phần cứng... GENERIC) => (dùng cho các thành phần vector và các giá trị kiểu khác) 20 Vd: SIGNAL x : STD_LOGIC; VARIABLE y : STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL w: STD_LOGIC_VECTOR(0 TO 7); x