1. Trang chủ
  2. » Luận Văn - Báo Cáo

thực hiện các ứng dụng nhúng cơ bản trên board altera de2 115

90 2K 6

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 90
Dung lượng 3,91 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

iii LỜI CAM ĐOAN Đề tài “Thực hiện một số ứng dụng nhúng cơ bản trên board Altera DE2-115” được thực hiện trên board DE2-115 Development and Education, nhằm hướng đến việc thiết kế mộ

Trang 1

i

TRƯỜNG ĐẠI HỌC CẦN THƠ

KHOA CÔNG NGHỆ

BỘ MÔN ĐIỆN TỬ VIỄN THÔNG

LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

THỰC HIỆN CÁC ỨNG DỤNG NHÚNG

CƠ BẢN TRÊN BOARD ALTERA DE2-115

Sinh viên thực hiện: Cán bộ hướng dẫn:

Lê Thảo Quyên MSSV: 1118006 ThS Trương Phong Tuyên Huỳnh Đặng Hoàng Quyên MSSV: 1118005

Ngành: Kỹ Thuật Máy Tính

Cần Thơ, tháng 5 năm 2015

Trang 2

ii

TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ

BỘ MÔN ĐIỆN TỬ VIỄN THÔNG

Luận văn được thực hiện bởi:

1 Họ tên: Huỳnh Đặng Hoàng Quyên, MSSV: 1118005, Lớp: Kỹ thuật máy tính

2 Họ tên: Lê Thảo Quyên, MSSV: 1118006, Lớp: Kỹ thuật máy tính

Tựa đề Luận văn (Hay tên đề tài): Thực hiện một số ứng dụng nhúng cơ bản trên

board Altera DE2-115

Luận văn đã nộp và báo cáo tại Hội đồng chấm bảo vệ Luận văn tốt nghiệp Đại học Cần Thơ ngành Điện tử Truyền thông/ Kỹ thuật máy tính, Bộ môn Điện tử Viễn thông vào ngày 19 tháng 5 năm 2015 (Quyết định thành lập Hội đồng số: 133/QĐ-CN ngày 24 tháng 4 năm 2015 của Trưởng Khoa Công Nghệ)

Kết quả đánh giá: _

Chữ ký của các thành viên Hội đồng:

Thành viên Hội đồng 1 (CBHD): ThS Trương Phong Tuyên Thành viên Hội đồng 2: TS Lương Vinh Quốc Danh Thành viên Hội đồng 3: ThS Võ Ngọc Lợi

Trang 3

iii

LỜI CAM ĐOAN

Đề tài “Thực hiện một số ứng dụng nhúng cơ bản trên board Altera

DE2-115” được thực hiện trên board DE2-115 Development and Education, nhằm hướng

đến việc thiết kế một số bài thí nghiệm hệ thống nhúng Đồng thời qua đó góp phần vào nguồn tư liệu cho các nghiên cứu về sau trong cùng lĩnh vực Do đó đề tài đã được chúng em chọn để thực hiện Luận văn tốt nghiệp trong thời gian này

Trong quá trình thực hiện đề tài, có thể còn nhiều thiếu sót do kiến thức hạn chế nhưng những nội dung trình bày trong quyển báo cáo này là những hiểu biết và thành quả của chúng em đạt được dưới sự giúp đỡ của giảng viên hướng dẫn là Thạc sĩ Trương Phong Tuyên

Chúng em xin cam đoan rằng: những nội dung trình bày trong quyển báo cáo Luận văn tốt nghiệp này không phải là bản sao chép từ bất kỳ công trình đã có trước nào Nếu không đúng sự thật, em xin chịu mọi trách nhiệm trước nhà trường

Cần Thơ, ngày 10 tháng 05 năm 2015

Nhóm sinh viên thực hiện:

Lê Thảo Quyên Huỳnh Đặng Hoàng Quyên

Trang 4

iv

LỜI CẢM ƠN

Đầu tiên, chúng em xin cảm ơn Thầy Trương Phong Tuyên đã quan tâm, hướng dẫn tận tình, truyền đạt những kinh nghiệm quý báu và kịp thời hướng dẫn giúp chúng em tìm ra con đường đúng đắn để giải quyết những khó khăn Thầy cũng tận tình giúp đỡ, động viên chúng em về mặt tinh thần để chúng em tự tin thực hiện luận văn trên cơ sở phát huy khả năng tự tìm tòi, học hỏi

Quý thầy cô trong Bộ môn Điện tử- Viễn thông đã tạo điều kiện, tận tình giúp đỡ, cho chúng em những kiến thức quý báu trong suốt quá trình học ở đây

Các bạn cùng khóa đã nhiệt tình hợp tác, đóng góp, giúp đỡ, ủng hộ chúng

em trong suốt quá trình hoàn thành luận văn

Cuối cùng chúng em xin chân thành cảm ơn gia đình, nhất là cha mẹ, đã tạo mọi điều kiện thuận lợi về vật chất và tinh thần Gia đình đã tạo cho chúng em tâm thế thoải mái, luôn khuyến khích để chúng em vững tin vượt qua mọi trở ngại trong suốt quá trình hoàn thành luận văn

Xin nhận ở chúng em lời cảm ơn chân thành và sâu sắc nhất!

Nhóm sinh viên thực hiện:

Lê Thảo Quyên Huỳnh Đặng Hoàng Quyên

Trang 5

v

MỤC LỤC

MỤC LỤC HÌNH vii

DANH SÁCH CÁC TỪ VIẾT TẮT xi

TÓM TẮT 1

ABSTRACT 1

CHƯƠNG 1: TỔNG QUAN 2

1.1 ĐẶT VẤN ĐỀ 2

1.1 LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ 2

1.2 PHẠM VI ĐỀ TÀI 2

1.3 PHƯƠNG PHÁP NGHIÊN CỨU 3

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 4

2.1 GIỚITHIỆUBOARDDE2-115 4

2.2 CẤUHÌNHCYCLONEIVEFPGA[7]: 6

2.3 PHẦNMỀMQUARTUSII V11.0 6

2.3.1 Giới thiệu Quartus II 6

2.3.2 Nios II 32 bit CPU 7

2.3.3 Thiết kế dự án bằng Quartus II 8

2.3.4 Xây dựng hệ thống đơn giản bằng QSys trên Quartus II 10

CHƯƠNG 3: THỰC HIỆN MỘT SỐ ỨNG DỤNG NHÚNG CƠ BẢN TRÊN BOARD ALTERA DE2-115 30

3.1 BÀI THÍ NGHIỆM SỐ 1:QSYS VÀ NIOS II IDE 30

3.1.1 Sơ đồ hệ thống 30

3.1.2 Các bước thực hiện và kết quả 30

3.2 BÀI THÍ NGHIỆM SỐ 2: HỆ THỐNG ĐƠN GIẢN 38

3.2.1 Sơ đồ hệ thống 39

3.2.2 Lưu đồ giải thuật 39

3.2.3 Các bước thực hiện và kết quả 41

3.3 BÀI THÍ NGHIỆM SỐ 3: CHƯƠNG TRÌNH ĐIỀU KHIỂN XUẤT/ NHẬP 48

3.3.1 Sơ đồ hệ thống 48

3.3.2 Lưu đồ giải thuật 49

3.3.3 Các bước thực hiện và kết quả 50

3.4 BÀI THÍ NGHIỆM SỐ 4: CHƯƠNG TRÌNH CON VÀ NGĂN XẾP 57

3.4.1 Sơ đồ hệ thống 57

3.4.2 Lưu đồ giải thuật 58

3.4.3 Các bước thực hiện và kết quả 58

3.5 BÀI THÍ NGHIỆM SỐ 5: LẬP TRÌNH CHO NIOS II SỬ DỤNG NGÔN NGỮ C 67

3.5.1 Sơ đồ hệ thống 68

3.5.2 Các bước thực hiện và kết quả 68

Trang 6

vi

CHƯƠNG 4: KẾT LUẬN 74

4.1 KẾT QUẢ ĐẠT ĐƯỢC 74

4.2 HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 74

TÀI LIỆU THAM KHẢO 75

PHỤ LỤC A 76

Trang 7

vii

MỤC LỤC HÌNH

Hình 2.1 Sơ đồ khối mô tả cấu tạo của board DE2-115 4

Hình 2.2 Hệ thống nạp thông qua JTAG programming 6

Hình 2.3 Hệ thống nạp thông qua AS programming 6

Hình 2.4 Giao diện Quartus II 11.0 7

Hình 2.5 Tạo New project wizard 8

Hình 2.6 Đặt tên cho project 8

Hình 2.7 Thêm file thiết kế 9

Hình 2.8 Chọn thiết bị 9

Hình 2.9 Thiết lập công cụ EDA 10

Hình 2.10 Cửa sổ tóm tắt các thông số đã chọn 10

Hình 2.11 Giao diện sau khi mở QSys 11

Hình 2.12 Tạo Nios II processors 12

Hình 2.13 Giao diện cấu hình CPU Nios II/e 12

Hình 2.14 Giao diện cấu hình JTAG Debug 13

Hình 2.15 Tạo On-chip Memory 13

Hình 2.16 Giao diện cấu hình On-chip Memory 14

Hình 2.17 Tạo JTAG UART 15

Hình 2.18 Giao diện cấu hình JTAG Uart 15

Hình 2.19 Tạo System ID 16

Hình 2.20 Giao diện cấu hình System ID 16

Hình 2.21 Tạo Interval Timer 17

Hình 2.22 Giao diện cấu hình Interval Timer 17

Hình 2.23 Thêm PIO 18

Hình 2.24 Giao diện cấu hình PIO 18

Hình 2.25 Nối các dây clk 19

Hình 2.26 Nối các dây Reset 20

Hình 2.27 Nối các thành phần Avalon Memory Mapped Slave 20

Trang 8

viii

Hình 2.28 Gán bộ nhớ RAM cho CPU 21

Hình 2.29 Gán địa chỉ nền 21

Hình 2.30 Hệ thống sau khi lấy chân external_connection 22

Hình 2.31 Thiết kế hệ thống hoàn tất 22

Hình 2.32 Đặt tên và lưu hệ thống 23

Hình 2.33 Biên dịch hệ thống 23

Hình 2.34 Biên dịch hệ thống thành công 24

Hình 2.35 Add file 24

Hình 2.36 Add file nios_sys.qip 25

Hình 2.37 Kết quả sau khi Add file nios_sys.qip 25

Hình 2.38 Hộp thoại New 26

Hình 2.39 Giao diện sơ đồ khối hệ thống 26

Hình 2.40 Gán chân cho hệ thống 27

Hình 2.41 Giao diện thiết kế hoàn tất 27

Hình 2.42 Set as Top-Level Entity cho nios_sys.qip 27

Hình 2.43 Biên dịch hệ thống thành công 28

Hình 2.44 Add file HUONG_DAN.sof 28

Hình 2.45 Giao diện Hardware Setup 28

Hình 2.46 Nạp file xuống board thành công 29

Hình 3 1 Sơ đồ hệ thống ứng dụng 30

Hình 3.2 Sơ đồ hệ thống 32

Hình 3.3 Sơ đồ hệ thống hoàn tất 32

Hình 3.4 Nios II Software Build Tools for Eclipse 33

Hình 3.5 Giao diện Workspace Launcher 33

Hình 3.6 Tạo project mới cho hệ thống 34

Hình 3.7 Giao diện cấu hình Nios II Application and BSP for Eclipse 34

Hình 3.8 Hoàn thành tạo project mới 35

Hình 3.9 Giao diện cài đặt Nios II BSP Properties 35

Trang 9

ix

Hình 3.10 Code mẫu Hello World Small 36

Hình 3.11 Giao diện Run As/Run Configurations 36

Hình 3.12 Giao diện cài đặt New_configuration 37

Hình 3.13 Kết quả chạy chương trình 38

Hình 3.14 Sơ đồ khối hệ thống ứng dụng 39

Hình 3.15 Lưu đồ giải thuật xác định chuỗi bit 1 liên tiếp lớn nhất 39

Hình 3.16 Lưu đồ giải thuật của chương trình đếm số bit 0 liên tục và bit 1 liên tục lớn nhất 40

Hình 3.17 Lưu đồ giải thuật chương trình con tính số bit 1 và bit 0 liên tiếp 41

Hình 3.18 Sơ đồ hệ thống 42

Hình 3.19 Giao diện tạo project mới 45

Hình 3.20 Chọn file hệ thống 46

Hình 3.21 Chọn ngôn ngữ lập trình 46

Hình 3.22 Giao diện Add file s 46

Hình 3.23 Giao diện cài đặt thông số hệ thống 46

Hình 3.24 Kết quả chương trình đếm 4 bit 1 liên tiếp 47

Hình 3.25 Kết quả chương trình đếm 4 bit 1 liên tiếp bằng chương trình con 47

Hình 3 26 Sơ đồ khối hệ thống ứng dụng 48

Hình 3.27 giải thuật (giá trị nhập được lưu vào r16 và cộng dồn vào giá trị đang có tại r17, lưu kết quả tại r17) 49

Hình 3.28 Lưu đồ giải thuật 50

Hình 3.29 Sơ đồ hệ thống 52

Hình 3.30 Sơ đồ khối hệ thống hoàn tất 52

Hình 3.31 Giao diện sau khi nạp chương trình ứng dụng 54

Hình 3.32 Kết quả chạy chương trình khi cho 0+1 54

Hình 3.33 Kết quả chạy chương trình cho 1+129 55

Hình 3.34 Lưu giá trị 8 vào thanh ghi r16 56

Hình 3.35 Kết quả sau khi nhấn key0 56

Hình 3.36 Sơ đồ khối hệ thống ứng dụng 57

Trang 10

x

Hình 3.37 Lưu đồ giải thuật chương trình con và ngăn xếp 58

Hình 3.38 Sơ đồ hệ thống 59

Hình 3.39 Sơ đồ khối hệ thống 60

Hình 3.40 Giao diện tab Memory 62

Hình 3.41 Load file into memory 62

Hình 3.42 Danh sách trước khi sắp xếp 62

Hình 3.43 Kết quả sau khi sắp xếp tăng dần 63

Hình 3.44 Danh sách sau khi sắp xếp giảm dần 63

Hình 3.45 Add file Lab5_part3.s 66

Hình 3.46 Kết quả sắp xếp tăng dần bằng chương trình con 67

Hình 3.47 Sơ đồ khối hệ thống ứng dụng 68

Hình 3.48 Sơ đồ hệ thống 69

Hình 3.49 Giao diện Workspace Launcher 70

Hình 3.50 Giao diện tạo project mới 70

Hình 3.51 Cửa sổ Nios II Application and BSP for Eclipse 71

Hình 3.52 Giao diện cài đặt Nios II BSP Properties 71

Hình 3.53 Run As/Run Configuratons 72

Hình 3.54 Giao diện cài đặt New_configuration 73

Hình 3.55 Kết quả chạy chương trình 73

Trang 11

xi

DANH SÁCH CÁC TỪ VIẾT TẮT

FPGA: Field-Programmable Gate Array

CPU: Central Processing Unit

MMU: Memory Management Unit

MPU: Memory Protection Unit

RAM: Random Access Memory

ROM: Read Only Memory

SoC: System on a Chip

SOPC: System on a Programmable Chip Builder

JTAG: Joint Test Action Group

LCD: Liquid Crystal Display

UART: Universally Asynchronous Receiver-Transmitter

USB: Universal Serial Bus

PLD: Programmable Logic Device

Trang 12

1

TÓM TẮT

Hiện nay, hệ thống nhúng đã được ứng dụng trong hầu hết các lĩnh vực của cuộc sống từ giải trí đến giáo dục, y tế, quân sự, Các hệ thống nhúng được phát triển trên FPGA đang được sử dụng để nghiên cứu, ứng dụng và đào tạo khá rông rãi Với đặc tính có thể cấu hình lại, người dùng có thể tạo ra phiên bản thiết kế mong muốn cho các ứng dụng khác nhau FPGA cũng hổ trợ rất nhiều các thiết bị ngoại vi tạo điều kiện thuận lợi cho việc phát triển hệ thống nhúng Do đó để có bước đầu làm quen và nghiên cứu về hệ thống nhúng trên FPGA chúng em chọn đề tài “Thực hiện các ứng dụng nhúng cơ bản trên board Altera DE2-115” làm đề tài luận văn tốt nghiệp Mục tiêu của đề tài là nghiên cứu và xây dựng các bài thí nghiệm hệ thống nhúng trên board DE2-115 Kết quả dự kiến là xây dựng hoàn chỉnh 5 bài thí nghiệm, qua đó góp phần vào nguồn tư liệu tham khảo cho học phần

11 The result is complete 5 exercise, thereby contributing to reference resources for embedded system modules

Keyword: DE2-115, Embedded system, FPGA

Trang 13

2

CHƯƠNG 1: TỔNG QUAN

Chương này sẽ giới thiệu những nội dung chính sau:

 Đặt vấn đề, giới thiệu đề tài, mục đích của đề tài

Tuy nhiên môn học hệ thống nhúng chỉ mới được đưa vào giảng dạy ở các trường học trong vài năm trở lại đây Đề tài “Thực hiện một số ứng dụng nhúng cơ bản trên board Altera DE2-115” được thực hiện trên board DE2-115 sẽ nghiên cứu một số bài thí nghiệm nhằm phục vụ cho nhu cầu học tập cũng như làm tài liệu tham khảo sau này

Việc xây dựng và phát triển hệ thống nhúng đã không còn là lĩnh vực quá mới mẻ với một số quốc gia Nhiều công ty, trường đại học trên thế giới cũng đã nguyên cứu và đạt được nhiều thành công trong lĩnh vực này như công ty Terasic, Altera, trường đại học Cornell … Và việc phát triển hệ thống nhúng để thực hiện các công việc đồ họa máy tính cũng đã được quan tâm rất lớn

Tuy nhiên tại Việt Nam, các công ty và các trường đại học cũng chỉ mới tiếp cận với lĩnh vực này khoảng vài năm trở lại đây Vì vậy, việc nghiên cứu và phát triển trong lĩnh vực này là chưa nhiều và còn gặp nhiều khó khăn Do đó

những đề tài về hệ thống nhúng hoàn thành chưa được như mong muốn hoặc với số lượng còn hạn chế

Đề tài được thực hiện trên board Altera DE2-115 Development and Education do Terasic sản xuất, kết hợp với các phần mềm như Quartus II, Nios II, Altera Monitor Program Ngôn ngữ Assembly và C được lựa chọn để thực hiện việc xây dựng ứng dụng

Đề tài xây dựng các bài thí nghiệm Hệ thống nhúng nhằm phục vụ cho nhu cầu tham khảo, học tập và giảng dạy sau này

Trang 14

3

1 Tìm hiểu board DE2-115 Development and Education

2 Thiết kế và xây dựng hệ thống bằng công cụ QSys

Trang 15

4

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

Chương này sẽ trình bày các vấn đề:

 Giới thiệu tổng quan về board DE2-115

 Giới thiệu phần mềm Quartus II

 Hướng dẫn tạo một dự án trong Quartus II và tạo hệ thống trong QSys

Board DE2-115 Development and Education của Terasic có nhiều chức năng cho phép người dùng thực hiện một loạt các mạch thiết kế, từ các mạch đơn giản cho đến các dự án đa phương tiện khác nhau

Sơ đồ khối của board DE2-115

Hình 2.1 Sơ đồ khối mô tả cấu tạo của board DE2-115 [7]

Bằng cách cấu tạo sơ đồ khối như bên trên, người sử dụng có thể tạo ra hệ thống và sử dụng hệ thống đó một cách tối ưu

Chip FPGA Cyclone IV EP4CE115F29

o 114,480 LEs

o 432 M9K memory blocks

o 3,888 Kbits embedded memory

Trang 16

5

o 4 PLLs

o JTAG and AS mode configuration

o EPCS64 serial configuration device

o On-board USB Blaster circuitry

o Two Ethernet 10/100/1000 Mbps ports

o High Speed Mezzanine Card (HSMC)

o Configurable I/O standards (voltage levels:3.3/2.5/1.8/1.5V)

o USB type A and B

 Provide host and device controllers compliant with USB 2.0

 Support data transfer at full-speed and low-speed

 PC driver available

o 40-pin expansion port

 Configurable I/O standards (voltage levels:3.3/2.5/1.8/1.5V)

o VGA-out connector

 VGA DAC (high speed triple DACs)

o DB9 serial connector for RS-232 port with flow control

o PS/2 mouse/keyboard

Xung Clock

o Three 50MHz oscillator clock inputs

o SMA connectors (external clock input/output)

Âm thanh (Audio)

o 24-bit encoder/decoder (CODEC)

o Line-in, line-out, and microphone-in jacks

Display

o 16x2 LCD module

Switches and indicators

o 18 slide switches and 4 push-buttons switches

o 18 red and 9 green LEDs

o Eight 7-segment displays

Other features

o Infrared remote-control receiver module

o TV decoder (NTSC/PAL/SECAM) and TV-in connector

Power

o Desktop DC input

o Switching and step-down regulators LM3150MH

Trang 17

6

Phần mềm Quartus II của Altera được dùng để cấu hình phần cứng cho chip FPGA Có hai cách cấu hình như sau:

 JTAG programming: Trong cách thức này thì dữ liệu cấu hình phần cứng được nạp trực tiếp xuống Cyclone IV E FPGA Chip FPGA sẽ duy trì cấu hình được lập trình trong khi nó được duy trì nguồn nuôi Các thông tin về cấu hình sẽ mất khi nguồn điện bị mất Chức năng của

MAX II EPM 240 là nạp cấu hình hệ thống FPGA từ Flash

Hình 2.2 Hệ thống nạp thông qua JTAG programming

 AS programming: Ở cách thức này gọi là Acive Serial programming Dữ liệu dùng để cấu hình phần cứng sẽ được nạp xuống chip Altera EPCS64 Do nó là một thiết bị lưu trữ không bay hơi, nên thông tin sẽ vẫn được duy trì ngay khi nguồn điện bị mất Khi board được cấp nguồn, thì dữ liệu cấu hình lưu trên chip EPCS64 sẽ tự động nạp xuống chip FPGA

Hình 2.3 Hệ thống nạp thông qua AS programming

2.3.1 Giới thiệu Quartus II

Quartus II là công cụ phần mềm phát triển bởi hãng Altera, cung cấp môi trường thiết kế toàn diện Đây là phần mềm đóng gói tích hợp đầy đủ phục vụ cho các thiết kế logic với các linh kiện logic khả trình PLD của Altera, gồm các dòng APEX, CYCLONE, MAX, PLEX,

Quartus II cho phép làm việc với nhiều file ở cùng một thời điểm, soạn thảo file thiết kế trong khi vẫn có thể mô phỏng hay chạy mô phỏng các dự án khác Công cụ biên dịch Quartus II nằm ở trung tâm hệ thống, cung cấp quy trình thiết kế cho phép tùy biến để đạt được thiết kế tối ưu trong dự án Công cụ định vị lỗi tự

Trang 18

7

động và các bản tin cảnh báo khiến cho việc phát hiện và sửa lỗi trở nên đơn giản hơn

Hình 2.4 Giao diện Quartus II 11.0

2.3.2 Nios II 32 bit CPU

Nios II là một kiến trúc vi xử lý 32-bit được thiết kế chuyên cho các dòng chip FPGA của Altera Nios II tích hợp nhiều tính năng tiên tiến và thích hợp cho nhiều ứng dụng từ DSP cho tới điều khiển Kiến trúc của Nios II là kiến trúc RISC soft-core, nghĩa là Nios II được tạo thành hoàn toàn bằng các phần tử logic (logic element) và các memory block của Altera FPGA Kiến trúc soft-core của vi xử lý Nios cho phép người thiết kế hệ thống có thể tùy biến lõi CPU Nios II theo mục đích thiết kế, ngoài ra, người thiết kế có thể mở rộng khả năng của CPU bằng cách thêm các tính năng như quản lý bộ nhớ MMU hoặc các lệnh tùy biến (custom

instruction) …

Có 3 dạng nhân đặc trưng của bộ xử lý Nios II

 Nios II/f được dùng trong các phần thiêt kế cần hiệu suất cao và có một

số chức năng sau:

o Tùy chọn MMU (Memory Management Unit) và MPU (MicroProcessor Unit)

o Truy cập lên đến 2GB không gian địa chỉ bên ngoài

o Tùy chọn liên kết bộ nhớ cho instruction và data

Trang 19

8

o Module sửa lỗi JTAG

 Nios II/s được dùng để duy trì cân bằng giữa hiệu suất và chi phí, có một số chức năng sau:

o Caches Instruction

o Rẽ nhánh tĩnh

o Nhiều lớp, phân chia và thay đổi phần cứng

o Module sửa lỗi JTAG

Nios II/e được dùng trong các ứng dụng nhỏ

2.3.3 Thiết kế dự án bằng Quartus II

Double click vào biểu tượng Quartus II trên màn hình, sau khi xuất hiện

giao diện, vào File chọn New project wizard…

Hình 2.5 Tạo New project wizard

Chọn Next sẽ được giao diện như sau, chọn vị trí lưu dự án, đặt tên dự án

Hình 2.6 Đặt tên cho project

Ở bước tiếp theo có thể chèn thêm file bằng cách chọn biểu tượng dẫn

đường dẫn đến vị trí file cần chèn và chọn Add hoặc có thể bỏ qua bước này, các file cần chèn vào sẽ được chèn thêm sau Nhấn Next để đến bước kế tiếp

Trang 20

9

Hình 2.7 Thêm file thiết kế

Ở bước kế tiếp, chọn Cyclone IV E trong Device Family, trong mục Available devices chọn tên chip là EP4CE115F29C7 Nhấn Next

Hình 2.8 Chọn thiết bị

Trang 21

10

Hình 2.9 Thiết lập công cụ EDA

Ở bước này cho phép cài đặt một số tính năng để phát triển dự án, trong giới hạn phạm vi xây dựng các bài thí nghiệm thì ở bước này để mặc định (Hình 2.9)

Bước tiếp theo là cửa sổ tóm tắt các thông số thiết kế đã lựa chọn ở các bước trước đó

Hình 2.10 Cửa sổ tóm tắt các thông số đã chọn

Cuối cùng chọn Finish để kết thúc quá trình tạo dự án mới

2.3.4 Xây dựng hệ thống đơn giản bằng QSys trên Quartus II

QSys là hệ thống công cụ tích hợp của Altera được sử dụng để thiết kế hệ thống phần cứng kỹ thuật số QSys là thế hệ sau của SoPC Builder được hỗ trợ bởi

Trang 22

11

NoC (Network on a chip), công nghệ mới của FPGA tối ưu hóa cung cấp hiệu suất cao hơn, cải tiến thiết kế tái sử dụng và được xác nhận là nhanh hơn SoPC Builder Công cụ QSys cho phép thiết kế hệ thống số bằng cách kết nối các thành phần như

bộ vi xử lí, bộ nhớ, cổng song song,… lại với nhau

Ưu điểm của QSys:

 Dễ dàng để sử dụng giao diện GUI cho phép tích hợp nhanh giữa các chức năng IP và hệ thống con

 QSys cung cấp hỗ trợ giao diện bộ nhớ ánh xạ đạt được gần gấp đôi hiệu suất của công cụ SOPC Builder Altera, đồng thời nâng cao khả năng mở rộng hệ thống cho các thiết kế FPGA lớn và cho phép hỗ trợ cho các giao diện tiêu chuẩn công nghiệp

 Hỗ trợ các giao diện tiêu chuẩn công nghiệp, vì vậy có thể kết nối các lõi IP của các giao diện khác nhau

 Thiết kế phân cấp, cho phép bạn dễ dàng tái sử dụng các IP, chức năng (như hệ thống con) và cũng để phát triển hệ thống mở rộng

Cách tạo một hệ thống QSys:

Trên thanh công cụ Quartus chọn Tools > QSys hoặc chọn biểu tượng

để mở QSys

Hình 2.11 Giao diện sau khi mở QSys

Thêm Nios II Processors

Trong cửa sổ Component Library, chọn Processors > Nios II Processor

Trang 23

12

Hình 2.12 Tạo Nios II Processor

Sau khi chọn Nios II Processor sẽ có một hộp thoại xuất hiện cho phép ta chọn kiểu Nios II, tùy vào tính năng của hệ thống mà chọn lõi Nios II cho phù hợp Trong ví dụ này ta chọn phiên bản đơn giản nhất là phiên bản Nios II/e

Hình 2.13 Giao diện cấu hình CPU Nios II/e

Trang 24

13

Sau khi chọn Nios II Core ta click vào tag JTAG Debug Mode, đối với các

thiết kế đơn giản ta chọn Level 1, nhấn Finish sau đó đổi tên nios2_qsys_0 thành

CPU để hoàn tất việc tạo CPU

Hình 2.14 Giao diện cấu hình JTAG Debug

Hình 2.15 Tạo On-chip Memory

Trang 25

14

Thêm Onchip Memory (RAM or ROM)

Nios II chỉ là một lõi vi xử lý chứ chưa phải là vi điều khiển do đó nó cần phải có tối thiểu bộ nhớ dữ liệu và bộ nhớ chương trình để có thể hoạt động được

Trong cửa sổ Component Library, chọn Memories and Memory Controllers > On-chip > On-chip Memory (RAM or ROM) để tạo bộ nhớ (Hình

2.15)

 Ở hộp thoại On-Chip Memory(RAM or ROM)

o Tại tag Data width: Chọn 32

o Tại tag Total memory size chọn dung lượng cho bộ nhớ là 32768 (bytes)

o Chọn Finish để hoàn thành việc thiết kế bộ nhớ

o Đổi tên onchip_memory2_0 thành RAM

Hình 2.16 Giao diện cấu hình On-chip Memory

Thêm JTAG UART

JTAG UART có chức năng kết nối dữ liệu từ máy chủ PC với board

DE2-115 thông qua cổng USB Blaster, phương pháp truyền chuỗi ký tự nối tiếp Để tạo

JTAG UART trong cửa sổ Component Library chọn Interface Protocols > Serial > JTAG UART

Trang 26

15

Hình 2.17 Tạo JTAG UART

Trong hộp thoại JTAG UART, ta để mặc định các thông số cài đặt, nhấn

Finish, sau đó đổi tên jtag_uart_0 thành JTAG_UART để hoàn tất

Hình 2.18 Giao diện cấu hình JTAG Uart

Thêm System ID

Module system ID peripheral cho phép đảm bảo hệ thống được biên dịch tại những thời điểm khác nhau sẽ có số ID khác nhau để đảm bảo phần mềm sẽ được download xuống đúng hệ thống mong muốn Tại cửa sổ Component Library,

chọn Peripherals > Debug and Performance > System ID Peripheral

Trang 27

16

Hình 2.19 Tạo System ID

Trong hộp thoại System ID Peripheral, ta để mặc định các thông số cài đặt,

nhấn Finish, sau đó đổi tên sysid_qsys_0 thành sysid để hoàn tất

Hình 2.20 Giao diện cấu hình System ID

Thêm Interval Timer

Trong cửa sổ Component Library, chọn Peripherals > Microcontroller Peripherals > Interval Timer

Trang 28

17

Hình 2.21 Tạo Interval Timer

Trong hộp thoại Interval Timer, tùy thuộc vào thời gian delay cần thiết kế

mà ta có thể thay đổi giá trị trong Period, đơn vị trong Units (Ở ví dụ này sẽ chọn Period là 500 ms) Ở tag Hardware Options chọn Simple periodic interrupt trong

mục Presets Nhấn Finish và đổi tên timer_0 thành timer để hoàn tất

Hình 2.22 Giao diện cấu hình Interval Timer

Thêm PIO

Trang 29

18

Tại cửa sổ Component Library chọn Peripherals > Microcontroller Peripherals > PIO (Paralllel I/O)

Hình 2.23 Thêm PIO

 Ở hộp thoại PIO (Paralllel I/O):

o Tại cửa sổ PIO có mục Basic Settings gồm 2 tag Width và Direction Ở tag Width ta chọn số bit và tag Direction ta chọn Input hoặc Output tùy vào bài làm (Ở ví dụ này sẽ chọn 8 bit và Input)

o Kết thúc nhấn Finish

o Đổi tên pio_0

Hình 2.24 Giao diện cấu hình PIO

Trang 30

 Nối Avalon Memory Mapped Master của CPU với Avalon Memory

Mapped Slave của các thành phần còn lại (Hình 2.27)

Sau khi nối dây, double click vào CPU để gán bộ nhớ, chọn RAM.s1 trong hai tag Reset vector memory và Exception vector memory Nhấn Finish để hoàn tất (Hình 2.28)

Hình 2.25 Nối các dây clk

Trang 31

20

Hình 2.26 Nối các dây Reset

Hình 2.27 Nối các thành phần Avalon Memory Mapped Slave

Trang 32

21

Hình 2.28 Gán bộ nhớ RAM cho CPU

Ta sẽ phải gán địa chỉ base address cho mỗi thành phần slave trong không gian của nios master , và gán mức ưu tiên ngắt (IRQ) cho JTAG UART và interval timer Chỉ số ngắt càng nhỏ thì mức ưu tiên càng lớn Thực hiện các bước sau để gán không gian địa chỉ và độ ưu tiên của ngắt:

Trên thanh công cụ QSys, chọn System > Assign Base Addresses để

gán địa chỉ nền cho các core đã thiết kế

 Trong tag IQR, click vào IQR 31 để tiến hành gán mức ưu tiên ngắt, nhập 0 cho Interval Timer, 1 cho JTAG_UART

Hình 2.29 Gán địa chỉ nền

Ở cột Export, click vào external_connection tương ứng của SW để lấy

chân thiết bị dùng cho việc gán chân hệ thống ở bước tiếp theo

Trang 33

22

Hình 2.30 Hệ thống sau khi lấy chân external_connection

Hệ thống sau khi thiết kế hoàn tất:

Hình 2.31 Thiết kế hệ thống hoàn tất

Trang 34

23

Lưu hệ thống trước khi biên dịch bằng cách vào File > Save Xuất hiện hộp

thoại Save, đặt tên cho hệ thống là nios_sys

Hình 2.32 Đặt tên và lưu hệ thống

Để biên dịch hệ thống, chọn tag Generation, sau đó chọn Generate

Chờ một khoảng thời gian để biết kết quả biên dịch, kết quả biên dịch thành công được thể hiện ở Hình 2.34 và nếu kết quả sai là do phần cấu hình các core có thể bị lỗi

Hình 2.33 Biên dịch hệ thống

Trang 36

25

Hình 2.36 Add file nios_sys.qip

Hình 2.37 là giao diện sau khi đã add file thành công:

Hình 2.37 Kết quả sau khi Add file nios_sys.qip

Gán chân trực tiếp lên sơ đồ khối hệ thống:

Trong cửa sổ project Quartus’s chọn biểu tượng hoặc chọn vào File > New để mở hộp thoại New Sau đó chọn Block Diagram/Schematic File để mở

cửa sổ gán chân cho hệ thống (Hình 2.38)

Trong cửa sổ gán chân hệ thống, nhấn vào biểu tượng để mở hộp thoại

Symbol, sau đó double click vào nios_sys để tạo sơ đồ khối hệ thống (Hình 2.39)

Trang 37

26

Hình 2.38 Hộp thoại New

Hình 2.39 Giao diện sơ đồ khối hệ thống

Vào Pin Tool để lấy ngõ vào Input/Output/Bidir, vào Orthogonal

Trang 38

27

Thực hiện gán chân cho hệ thống tương ứng với ngỏ vào clk_clk là

CLOCK_50 và reset_reset_n là KEY[0] Sau đó vào Assignments > Import Assignments chỉ đến tập tin DE2_115_pin_assignments.csv nhấn OK (Hình 2.40)

Hình 2.40 Gán chân cho hệ thống

Hình 2.41 Giao diện thiết kế hoàn tất

Lưu lại hệ thống với tên HUONG_DAN.bdf Sau đó lần lượt nhấp chuột

phải vào nios_sys.qip và HUONG_DAN.bdf trong cửa sổ Project Navigator chọn Set as Top-Level Entily

Hình 2.42 Set as Top-Level Entity cho nios_sys.qip

Nhấp chuột vào biểu tượng Start Complilation hoặc vào Processing trên

thanh công cụ Quartus chọn Start Complilation để biên dịch, kiểm tra lỗi và gán chân Để kiểm tra các chân được gán có thể vào Assignments/Pin Planner

Trang 39

kế

Hình 2.44 Add file HUONG_DAN.sof

Trong Hardware Setup chọn Hardware là USB-Blaster

Hình 2.45 Giao diện Hardware Setup

Kết thúc nạp ứng dụng bằng cách nhấn vào Start

Trang 40

29

Hình 2.46 Nạp file xuống board thành công

Ngày đăng: 22/12/2015, 13:07

HÌNH ẢNH LIÊN QUAN

Hình 2.12 Tạo Nios II Processor. - thực hiện các ứng dụng nhúng cơ bản trên board altera de2 115
Hình 2.12 Tạo Nios II Processor (Trang 23)
Hình 2.17 Tạo JTAG UART. - thực hiện các ứng dụng nhúng cơ bản trên board altera de2 115
Hình 2.17 Tạo JTAG UART (Trang 26)
Hình 2.19 Tạo System ID. - thực hiện các ứng dụng nhúng cơ bản trên board altera de2 115
Hình 2.19 Tạo System ID (Trang 27)
Hình 2.21 Tạo Interval Timer - thực hiện các ứng dụng nhúng cơ bản trên board altera de2 115
Hình 2.21 Tạo Interval Timer (Trang 28)
Hình 2.22 Giao diện cấu hình Interval Timer - thực hiện các ứng dụng nhúng cơ bản trên board altera de2 115
Hình 2.22 Giao diện cấu hình Interval Timer (Trang 28)
Hình 2.28 Gán bộ nhớ RAM cho CPU - thực hiện các ứng dụng nhúng cơ bản trên board altera de2 115
Hình 2.28 Gán bộ nhớ RAM cho CPU (Trang 32)
Hình 2.36 Add file nios_sys.qip  Hình 2.37 là giao diện sau khi đã add file thành công: - thực hiện các ứng dụng nhúng cơ bản trên board altera de2 115
Hình 2.36 Add file nios_sys.qip Hình 2.37 là giao diện sau khi đã add file thành công: (Trang 36)
Hình 3.4 Nios II Software Build Tools for Eclipse - thực hiện các ứng dụng nhúng cơ bản trên board altera de2 115
Hình 3.4 Nios II Software Build Tools for Eclipse (Trang 44)
Hình 3.11 Giao diện Run As/Run Configurations - thực hiện các ứng dụng nhúng cơ bản trên board altera de2 115
Hình 3.11 Giao diện Run As/Run Configurations (Trang 47)
Hình 3.13 Kết quả chạy chương trình - thực hiện các ứng dụng nhúng cơ bản trên board altera de2 115
Hình 3.13 Kết quả chạy chương trình (Trang 49)
Hình 3.16 Lưu đồ giải thuật của chương trình đếm số bit 0 liên tục và bit 1 - thực hiện các ứng dụng nhúng cơ bản trên board altera de2 115
Hình 3.16 Lưu đồ giải thuật của chương trình đếm số bit 0 liên tục và bit 1 (Trang 51)
Hình 3.17 Lưu đồ giải thuật chương trình con tính số bit 1 và bit 0 liên tiếp. - thực hiện các ứng dụng nhúng cơ bản trên board altera de2 115
Hình 3.17 Lưu đồ giải thuật chương trình con tính số bit 1 và bit 0 liên tiếp (Trang 52)
Hình 3.51 Cửa sổ Nios II Application and BSP for Eclipse - thực hiện các ứng dụng nhúng cơ bản trên board altera de2 115
Hình 3.51 Cửa sổ Nios II Application and BSP for Eclipse (Trang 82)
Hình 3.54 Giao diện cài đặt New_configuration - thực hiện các ứng dụng nhúng cơ bản trên board altera de2 115
Hình 3.54 Giao diện cài đặt New_configuration (Trang 84)
Hình A3.1 Nhập giá trị 00011110 từ SW - thực hiện các ứng dụng nhúng cơ bản trên board altera de2 115
nh A3.1 Nhập giá trị 00011110 từ SW (Trang 88)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w