Tải bản đầy đủ (.pdf) (90 trang)

Triển khai hệ thống nhúng trên NIOS và điều khiển thiết bị qua máy tính

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.73 MB, 90 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
PHẠM ĐỨC THUẬN

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN

Ket-noi.com chia se
PHẠM ĐỨC THUẬN

<TÊN ĐỀ TÀI>

TRIỂN KHAI HỆ THỐNG NHÚNG TRÊN NIOS
VÀ ỨNG DỤNG ĐIỀU KHIỂN THIẾT BỊ
QUA MÁY TÍNH

ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

2014

HƯNG YÊN - 2014


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN

PHẠM ĐỨC THUẬN

TRIỂN KHAI HỆ THỐNG NHÚNG TRÊN NIOS
VÀ ỨNG DỤNG ĐIỀU KHIỂN THIẾT BỊ
QUA MÁY TÍNH
NGÀNH: CÔNG NGHỆ THÔNG TIN
CHUYÊN NGÀNH: CÔNG NGHỆ MÁY TÍNH



ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
NGƯỜI HƯỚNG DẪN
Th.S LÊ TRUNG HIẾU

HƯNG YÊN - 2014


Triển khai hệ thống nhúng trên NIOS và điều khiển thiết bị qua máy tính

MỤC LỤC
MỤC LỤC ...................................................................................................... 3
DANH SÁCH HÌNH VẼ ................................................................................ 6
DANH SÁCH BẢNG BIỂU ........................................................................... 9
DANH SÁCH TỪ VIẾT TẮT ...................................................................... 10
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI ................................................... 11
1.1

Lý do chọn đề tài ......................................................................... 11

1.2

Mục tiêu của đề tài ...................................................................... 12

1.3

Giới hạn và phạm vi của đề tài .................................................... 12

1.4


Nội dung thực hiện ...................................................................... 12

1.5

Phương pháp tiếp cận .................................................................. 13

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

Tổng quan về FPGA .................................................................... 14

2.1.1

FPGA là gì? .............................................................................. 14

2.1.2

Tóm tắt lịch sử phát triển của FPGA ......................................... 14

2.1.3

Tại sao cần sử dụng FPGA ........................................................ 15

2.1.4

Các ứng dụng của FPGA ........................................................... 16

2.1.5

Cấu trúc của FPGA ................................................................... 16


2.2.

KIT Altera DE2. ........................................................................ 18

2.3.

Phần mềm Quartus II................................................................... 21

2.3.1. Giới thiệu Quartus II ................................................................. 21
2.3.2. Thiết kế dự án bằng Quartus II. ................................................. 23
2.3.3. Xây dựng hệ thống bằng SoPC( Qsys) trên Quartus II ............... 30

3


Triển khai hệ thống nhúng trên NIOS và điều khiển thiết bị qua máy tính
2.4.

Phần mềm lập trình NIOS II ........................................................ 35

2.5.

Truyền thông qua máy tính .......................................................... 39

2.6.

Avalon Bus ................................................................................. 43

2.6.1. Avalon Bus Module .................................................................. 45

2.6.2. Các thiết bị ngoại vi Avalon ...................................................... 46
CHƯƠNG 3: NỘI DUNG THỰC HIỆN..................................................... 48
3.1

Sơ đồ tổng quát hệ thống ............................................................. 48

3.2

Chi tiết thiết kế hệ thống ............................................................. 50

3.2.1. NIOS II Processor – nios2_qsys_0 .............................................. 50
3.2.2. JTAG Debug Module – jtag_uart_0........................................... 51
3.2.3. Rs232 – UART( Rs232 Serial Port) ........................................... 51
3.2.4. SRAM On Chip – onchip_memory2_0 ...................................... 52
3.2.5. EFAN ........................................................................................ 52
3.2.6. LCD .......................................................................................... 53
3.2.7. LED Controler – pio_0 – led_green ........................................... 56
3.2.8. Avalon Bus ............................................................................... 56
3.3

Thiết kế giao diện điều khiển trên máy tính. ................................ 59

3.4

Lưu đồ thuật toán ........................................................................ 61

3.4.1. Quá trình gửi ............................................................................... 61
3.4.2. Quá trình nhận ........................................................................... 62
3.5


Sơ đồ nguyên lý. ......................................................................... 64

3.5.1. Kết nối chân tín hiệu điều khiển ngoại vi..................................... 64
3.5.2. Sơ đồ ghép nối Rs232................................................................ 65
3.5.3. Sơ đồ module màn hình LCD .................................................... 66
4


Triển khai hệ thống nhúng trên NIOS và điều khiển thiết bị qua máy tính
3.5.4. Sơ đồ nguyên lý Relay 4 kênh ................................................... 67
3.6

Hình ảnh module thực tế ............................................................. 69

CHƯƠNG 4: KẾT LUẬN .......................................................................... 70
4.1

Kết quả đạt được của đề tài ......................................................... 70

4.2

Hạn chế của đề tài ....................................................................... 71

4.3

Hướng phát triển của đề tài.......................................................... 71

TÀI LIỆU THAM KHẢO ............................................................................. 72
PHỤ LỤC ..................................................................................................... 73


5


Triển khai hệ thống nhúng trên NIOS và điều khiển thiết bị qua máy tính

DANH SÁCH HÌNH VẼ
Hình 2-1: Cấu trúc tổng thể của FPGA ......................................................... 16
Hình 2-2: Khối logic FPGA ......................................................................... 17
Hình 2-3: KIT Altera DE2............................................................................ 19
Hình 2-4: Các thành phần trên KIT Altera DE2............................................ 19
Hình 2-5: Giao diện chính ............................................................................ 21
Hình 2-6: Design Flow ................................................................................. 22
Hình 2-7: Khởi tạo dự án.............................................................................. 23
Hình 2-8: Đường dẫn, tên dự án, tên thực thể chính. .................................... 24
Hình 2-9: Add file. ....................................................................................... 24
Hình 2-10: Chọn Device .............................................................................. 25
Hình 2-11: Công cụ thiết kế, mô phỏng. ....................................................... 26
Hình 2-12: Kết thúc...................................................................................... 26
Hình 2-13: New Source ................................................................................ 27
Hình 2-14: Trình soạn thảo trên Quartus II ................................................... 27
Hình 2-15: Cửa sổ Assignment Editor dùng để gán chân .............................. 28
Hình 2-16: Cửa sổ Programer ....................................................................... 29
Hình 2-17: Đường dẫn đến thư mục Usb-Blaster Driver............................... 30
Hình 2-18: Chọn hệ thống SoPC dựa trên ngôn ngữ Verilog hoặc VHDL ... 31
Hình 2-19: Chọn NIOS II processor ............................................................ 32
Hình 2-20: Chọn Debug level....................................................................... 32
Hình 2-21: Tạo bộ nhớ hệ thống. .................................................................. 33
Hình 2-22: JTAG UART .............................................................................. 34
6



Triển khai hệ thống nhúng trên NIOS và điều khiển thiết bị qua máy tính
Hình 2-23: Hệ thống SoPC tối thiểu. ............................................................ 34
Hình 2-24: Tạo thêm I/O cần thiết cho hệ thống NIOS II ............................. 35
Hình 2-25: Chọn workspace cho dự án. ........................................................ 36
Hình 2-26: Giao diện chương trình phần mềm NIOS II ................................ 36
Hình 2-27: Tạo dự án mới với NIOS II ........................................................ 37
Hình 2-28: Trình soạn thảo .......................................................................... 38
Hình 2-29: Nạp xuống KIT .......................................................................... 38
Hình 2-30: Rs232 Pin table .......................................................................... 41
Hình 2-31: Sơ đồ khối một Avalon bus module trong thiết kế ...................... 46
Hình 3-1: Sơ đồ tổng quát hệ thống .............................................................. 48
Hình 3-2: Chọn phiên bản NIOS II/e ............................................................ 50
Hình 3-3: Component Jtag_uart ................................................................... 51
Hình 3-4: Component Rs232 ........................................................................ 51
Hình 3-5: SRAM On Chip............................................................................ 52
Hình 3-6: EFAN........................................................................................... 52
Hình 3-7: Lcd_data ...................................................................................... 53
Hình 3-8: Lcd_rw ......................................................................................... 54
Hình 3-9: Lcd_rs .......................................................................................... 54
Hình 3-10: Lcd_e ......................................................................................... 55
Hình 3-11: Led control ................................................................................. 56
Hình 3-12: Giao tiếp giữa cổng Slave và Avalon Bus Module trong quá trình
đọc từ Slave .................................................................................................. 57
Hình 3-13: Thời gian trong quá trình đọc dữ liệu từ cổng slave .................... 57

7


Triển khai hệ thống nhúng trên NIOS và điều khiển thiết bị qua máy tính

Hình 3-14: Các tín hiệu giao tiếp và thời gian trong khi ghi dữ liệu ra cổng
slave.............................................................................................................. 58
Hình 3-15: Giao diện chương trình chính ..................................................... 60
Hình 3-16: Giao diện chương trình điều khiển ............................................. 60
Hình 3-17: Lưu đồ thuật toán quá trình gửi dữ liệu ...................................... 61
Hình 3-18: Lưu đồ thuật toán quá trình nhận dữ liệu .................................... 63
Hình 3-19: Connect to GPIO1( DE2 KIT) .................................................... 64
Hình 3-20: Mạch chuẩn giao tiếp Rs232 dùng IC Max232 ........................... 65
Hình 3-21: Sơ đồ module màn hình LCD ..................................................... 66
Hình 3-22: Sơ đồ nguyên lý Module Relay 4 kênh ....................................... 68
Hình 3-23: Module Relay 4 kênh - 5V-220V/10A ........................................ 69

8


Triển khai hệ thống nhúng trên NIOS và điều khiển thiết bị qua máy tính

DANH SÁCH BẢNG BIỂU
Bảng 3-1: Chân kết nối tín hiệu điều khiển GPIO1....................................... 65
Bảng 3-2: Rs232 pin assignments................................................................. 66
Bảng 3-3: LCD Module pin assignment ....................................................... 67

9


Triển khai hệ thống nhúng trên NIOS và điều khiển thiết bị qua máy tính

DANH SÁCH TỪ VIẾT TẮT
Từ viết tắt
ASIC


Từ đầy đủ
Application-Specific Integrated

Giải thích
Vi mach tích hợp chuyên dụng

Circuit
CPLD

Complex Programmable Logic

Thiết bị logic có thể lập trình

Device

được.

DE

Development and Education

FPGA

Field programmable gate array

Vi mạch dùng cấu trúc mảng
phần tử logic lập trình được

LUT


Look Up Table

Bảng tìm kiếm

PLA

Programmable Logic Array

Mảng logic khả trình

SOPC

System on a Programmable Chip

Xây dựng hệ thống trên một

Builder

CHIP

VHSIC Hardware Description

Ngôn ngữ lập trình phần cứng

VHDL

Language

10



Triển khai hệ thống nhúng trên NIOS và điều khiển thiết bị qua máy tính

CHƯƠNG 1:

TỔNG QUAN VỀ ĐỀ TÀI

Trong chương này sẽ trình bày tổng quan về đề tài bao gồm lý do chọn đề tài,
mục tiêu, giới hạn, phạm vi nghiên cứu, nội dung thực hiện và phương pháp tiếp
cận của đề tài.
1.1

Lý do chọn đề tài
Trong những năm gần đây, xu hướng của thế giới là phát triển mạnh công

nghệ bán dẫn. Một chip có thể tích hợp trên nó nhiều cổng logic có thể ứng dụng
trong nhiều lĩnh vực. Ngày nay, ngành công nghiệp chế tạo phần cứng luôn có
những đột phá không ngừng. Từ các mạch điện đơn giản đến các mạch số, mạch
tích hợp, kiến trúc mạch ngày một trở nên phức tạp hơn.
Các hệ thống nhúng được phát triển trên FPGA đang được sử dụng rộng rãi
cho các nghiên cứu, ứng dụng, và đào tạo hiện nay bởi đặc tính linh hoạt cho các
thiết kế thiết bị trên FPGA. Đặc tính có thể cấu hình lại của FPGA cho phép tạo ra
phiên bản thiết kế của một thiết bị mong muốn cho các ứng dụng khác nhau. Nhờ sử
dụng các ngôn ngữ mô phỏng phần cứng VHDL, Verilog và một số công cụ thiết
kế, mô phỏng, ngày nay, ở phòng thí nghiệm, cơ sở đào tạo, hay một cá nhân có thể
đưa ra ý tưởng, một mẫu thiết kế một bộ xử lý mong muốn, và thực thi nó trên
FPGA. Với những ứng dụng rộng rãi trong nhiều ngành công nghiệp đa dạng, hầu
hết các hệ nhúng hiện nay đều được phát triển trên công nghệ FPGA. Mặt khác,
FPGA được 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, phát triển các ứng dụng điều khiển trên FPGA kết nối
với các thiết bị ngoại vi.
Để có được bước đầu làm quen và nghiên cứu về công nghệ FPGA từ đó có
thể nghiên cứu sâu hơn về công nghệ nên Em đã chọn đề tài nghiên cứu: “ Triển
khai hệ thống nhúng trên nios và điều khiển thiết bị qua máy tính” làm đề tài
tốt nghiệp Đại học của mình.

11


Triển khai hệ thống nhúng trên NIOS và điều khiển thiết bị qua máy tính
Trong quá trình thực hiện đề tài này, do còn hạn chế về kiến thức và thời
gian nên không tránh được những thiếu sót. Em kính mong quý thầy cô
thông cảm và bỏ qua đồng thời em cũng mong nhận được những góp ý và
chỉ bảo thêm của quý thầy cô.
1.2

Mục tiêu của đề tài


Tạo bước đầu cho Sinh Viên nghiên cứu ứng dụng của Altera DE2 Cylone
II nói riêng và FPGA nói chung.



Nắm được trình tự thiết kế một ứng dụng sử dụng NIOS trên DE2: Cách
lập trình, thiết kế phần cứng, cũng như cách vận hành giao tiếp giữa Kit
DE2 với các thiết bị ngoại vi.




Thiết kế hệ thống nhúng trên NIOS và ứng dụng điều khiển thiết bị qua
máy tính.


1.3

Rèn luyện khả năng tư duy, sáng tạo và kinh nghiệm làm việc trong thực tế.
Giới hạn và phạm vi của đề tài



Nghiên cứu FPGA của Altera. nguyên lý hoạt động của Kit Altera DE2
Cylone II. Tìm hiểu về các cổng vào ra của Kit DE2, kết nối với máy tính
và các thiết bị ngoại vi.



Đưa ra được giải pháp và chức năng của sản phẩm, thiết kế mạch và lập
trình đạt được yêu cầu đặt ra của hệ thống điều khiển.



Nghiên cứu và phát triển hệ thống nhúng trên FPGA của hãng Altera.



Viết chương trình điều khiển trên máy tính kết nối với FPGA điều khiển
thiết bị ngoại vi.


1.4

Nội dung thực hiện


Tìm hiểu, nghiên cứu nguyên lý hoạt động của Kit Altera DE2 Cylone II.



Tìm hiểu về các cổng vào ra của Kit DE2, kết nối với máy tính và các thiết
bị ngoại vi.

12


Triển khai hệ thống nhúng trên NIOS và điều khiển thiết bị qua máy tính


Đưa ra được giải pháp và chức năng của sản phẩm, thiết kế mạch và lập
trình đạt được yêu cầu đặt ra của hệ thống điều khiển.



Sử dụng tốt công cụ lập trình NIOS tạo ứng dụng điều khiển thiết bị qua
máy tính.



Lắp đặt, chạy thử và hoàn thiện hệ thống.




Quyển báo cáo viết và trình bày theo đúng mẫu quy định.

1.5

Phương pháp tiếp cận
Cách tiếp cận : Nghiên cứu các ngôn ngữ, phần mềm thiết kế hệ thống nhúng

trên nền tảng Altera như VHDL, Verilog, Qsys trên Quartus II và viết phần mềm
trên NIOS II. Lập trình giao diện điều khiển thiết bị trên máy tính bằng Visual
Studio 2010.
Sử dụng các phương pháp nghiên cứu:


Phương pháp đọc tài liệu.



Phương pháp phân tích mẫu.



Phương pháp thực nghiệm.

13


Triển khai hệ thống nhúng trên NIOS và điều khiển thiết bị qua máy tính


CHƯƠNG 2:

CƠ SỞ LÝ THUYẾT

Chương này sẽ trình bày cơ sở lý thuyết của đề tài bao gồm tổng quan về
FPGA, giới thiệu phần mềm, công cụ sử dụng trong đề tài, các bước triển khai hệ
thống, truyền thông qua máy tính.
2.1

Tổng quan về FPGA

2.1.1 FPGA là gì?
Field-programmable gate array( FPGA) là vi mạch dùng cấu trúc mảng
phần tử logic mà người dùng có thể lập trình được.( Chữ field ở đây muốn chỉ đến
khả năng tái lập trình "bên ngoài" của người sử dụng, không phụ thuộc vào dây
chuyền sản xuất phức tạp của nhà máy bán dẫn). Vi mạch FPGA được cấu thành từ
các bộ phận:


Các khối logic cơ bản lập trình được( logic block)



Hệ thống mạch liên kết lập trình được



Khối vào/ra( IO Pads)




Phần tử thiết kế sẵn khác như DSP slice, RAM, ROM, nhân vi xử lý...

2.1.2 Tóm tắt lịch sử phát triển của FPGA
FPGA được thiết kế đầu tiên bởi Ross Freeman, người sáng lập công ty Xilinx
vào năm 1984, kiến trúc mới của FPGA cho phép tích hợp số lượng tương đối lớn
các phần tử bán dẫn vào 1 vi mạch so với kiến trúc trước đó là CPLD. FPGA có khả
năng chứa tới từ 100.000 đến hàng vài tỷ cổng logic, trong khi CPLD chỉ chứa từ
10.000 đến 100.000 cổng logic; con số này đối với PAL, PLA còn thấp hơn nữa chỉ
đạt vài nghìn đến 10.000.
CPLD được cấu trúc từ số lượng nhất định các khối SPLD( Simple
programmable devices, thuật ngữ chung chỉ PAL, PLA). SPLD thường là một mảng
logic AND/OR lập trình được có kích thước xác định và chứa một số lượng hạn chế
các phần tử nhớ đồng bộ( clocked register). Cấu trúc này hạn chế khả năng thực
14


Triển khai hệ thống nhúng trên NIOS và điều khiển thiết bị qua máy tính
hiện những hàm phức tạp và thông thường hiệu suất làm việc của vi mạch phụ
thuộc vào cấu trúc cụ thể của vi mạch hơn là vào yêu cầu bài toán.
Kiến trúc của FPGA là kiến trúc mảng các khối logic, khối logic, nhỏ hơn
nhiều nếu đem so sánh với một khối SPLD, ưu điểm này giúp FPGA có thể chứa
nhiều hơn các phần tử logic và phát huy tối đa khả năng lập trình của các phần tử
logic và hệ thống mạch kết nối, để đạt được mục đích này thì kiến trúc của FPGA
phức tạp hơn nhiều so với CPLD.
Một điểm khác biệt với CPLD là trong những FPGA hiện đại được tích hợp
nhiều những bộ logic số học đã sơ bộ tối ưu hóa, hỗ trợ RAM, ROM, tốc độ cao,
hay các bộ nhân cộng( multiplication and accumulation, MAC), thuật ngữ tiếng
Anh là DSP slice dùng cho những ứng dụng xử lý tín hiệu số DSP.
Ngoài khả năng tái cấu trúc vi mạch toàn cục, một số FPGA hiện đại còn hỗ

trợ tái cấu trúc cục bộ, tức là khả năng tái cấu trúc một bộ phận riêng lẻ trong khi
vẫn đảm bảo hoạt động bình thường cho các bộ phận khác.
2.1.3 Tại sao cần sử dụng FPGA
FPGA cũng được xem như một loại vi mạch bán dẫn chuyên dụng ASIC,
nhưng nếu so sánh FPGA với những ASIC đặc chế hoàn toàn hay ASIC thiết kế
trên thư viện logic thì FPGA không đạt đựợc mức độ tối ưu như những loại này, và
hạn chế trong khả năng thực hiện những tác vụ đặc biệt phức tạp, tuy vậy FPGA ưu
việt hơn ở chỗ có thể tái cấu trúc lại khi đang sử dụng, công đoạn thiết kế đơn giản
do vậy chi phí giảm, rút ngắn thời gian đưa sản phẩm vào sử dụng.
Còn nếu so sánh với các dạng vi mạch bán dẫn lập trình được dùng cấu trúc
mảng phần tử logic như PLA, PAL, CPLD thì FPGA ưu việt hơn các điểm: tác vụ
tái lập trình của FPGA thực hiện đơn giản hơn; khả năng lập trình linh động hơn; và
khác biệt quan trọng nhất là kiến trúc của FPGA cho phép nó có khả năng chứa khối
lượng lớn cổng logic( logic gate), so với các vi mạch bán dẫn lập trình được có
trước nó.

15


Triển khai hệ thống nhúng trên NIOS và điều khiển thiết bị qua máy tính
2.1.4 Các ứng dụng của FPGA
Ứng dụng của FPGA bao gồm: xử lý tín hiệu số DSP, các hệ thống hàng
không, vũ trụ, quốc phòng, tiền thiết kế mẫu ASIC( ASIC prototyping), các hệ
thống điều khiển trực quan, phân tích nhận dạng ảnh, nhận dạng tiếng nói, mật mã
học, mô hình phần cứng máy tính, máy đánh cờ( Máy đánh cờ Hydra có 32 bộ vi xử
lý cộng thêm FPGA đã chiến thắng kiện tướng quốc tế Michael Adams trong năm
2005.
Do tính linh động cao trong quá trình thiết kế cho phép FPGA giải quyết lớp
những bài toán phức tạp mà trước kia chỉ thực hiện nhờ phần mềm máy tính, ngoài
ra nhờ mật độ cổng logic lớn FPGA được ứng dụng cho những bài toán đòi hỏi khối

lượng tính toán lớn và dùng trong các hệ thống làm việc theo thời gian thực.
2.1.5 Cấu trúc của FPGA
Cấu trúc tổng thể của một FPGA được minh họa ở hình sau:

Hình 2-1: Cấu trúc tổng thể của FPGA
16


Triển khai hệ thống nhúng trên NIOS và điều khiển thiết bị qua máy tính
Khối Logic FPGA

Hình 2-2: Khối logic FPGA
Phần tử chính của FPGA là các khối logic(logic block). Khối logic được cấu
thành từ LUT và một phần tử nhớ đồng bộ flip-flop.
LUT( Look up table) là khối logic có thể thực hiện bất kì hàm logic nào từ 4
đầu vào, kêt quả của hàm này tùy vào mục đích mà gửi ra ngoài khối logic trực tiếp
hay thông qua phần tử nhớ flip-flop.
Trong tài liệu hướng dẫn của các dòng FPGA của Xilinx còn sử dụng khái
niệm SLICE, 1 Slice tạo thành từ gồm 4 khối logic, số lượng các Slices thay đổi từ
vài nghìn đến vài chục nghìn tùy theo loại FPGA.
Nếu nhìn cấu trúc tổng thể của mảng LUT thì ngoài 4 đầu vào kể trên còn hỗ
trợ thêm 2 đầu vào bổ sung từ các khối logic phân bố trước và sau nó nâng tổng số
đầu vào của LUT lên 6 chân. Cấu trúc này là nhằm tăng tốc các bộ số học logic.
Hệ thống mạch liên kết
Mạng liên kết trong FPGA được cấu thành từ các đường kết nối theo hai
phương ngang và đứng, tùy theo từng loại FPGA mà các đường kết nối được chia
thành các nhóm khác nhau, ví dụ trong XC4000 của Xilinx có 3 loại kết nối: ngắn,
dài và rất dài. Các đường kết nối được nối với nhau thông qua các khối chuyển
17



Triển khai hệ thống nhúng trên NIOS và điều khiển thiết bị qua máy tính
mạch lập trình được( programmable switch), trong một khối chuyển mạch chứa một
số lượng nút chuyển lập trình được đảm bảo cho các dạng liên kết phức tạp khác
nhau.
Các phần tử tích hợp sẵn.
Ngoài các khối logic tùy theo các loại FPGA khác nhau mà có các phần tử tích
hợp thêm khác nhau, ví dụ để thiết kế những ứng dụng SoC, trong dòng Virtex 4,5
của Xilinx có chứa nhân xử lý PowerPC, hay trong Atmel FPSLIC tích hợp nhân
AVR…, hay cho những ứng dụng xử lý tín hiệu số DSP trong FPGA được tích hợp
các DSP Slide là bộ nhân cộng tốc độ cao, thực hiện hàm A*B+C, ví dụ dòng
Virtex của Xilinx chứa từ vài chục đến hàng trăm DSP slices với A, B, C 18-bit.
Block RAM
Ngoài ra những FPGA của Xilinx còn có block RAM, có thể mường tượng
như là bộ nhớ nhỏ nằm trong FPGA. Những FPGA này tuy nhỏ( khoảng vài chục kí
lô bit cho đến vài triệu bit tùy theo loại FPGA) nhưng có thể dùng để tạo một bộ
nhớ nhỏ như ROM, FIFO.
2.2.

KIT Altera DE2.
DE2( Development and Education ) la một công cụ cho việc thiết kế nâng cao

các thiết bị đa phương tiện, lưu trữ và mạng.
DE2 sử dụng công nghệ state-of- the-art trong cả phần cứng và các công cụ
thiết kế nhờ máy tính giúp mở rộng phạm vi ứng dụng. DE2 có nhiều tính năng phù
hợp với cả việc sử dụng trong các phòng lab và các hệ thống số tinh vi. Altera cung
cấp các công cụ hỗ trợ phù hợp cho DE2, gồm có các hướng dẫn, các bài lab trên
DE2, và các bài minh họa…

18



Triển khai hệ thống nhúng trên NIOS và điều khiển thiết bị qua máy tính

Hình 2-3: KIT Altera DE2
Các thành phần và thông số của KIT

Hình 2-4: Các thành phần trên KIT Altera DE2
19


Triển khai hệ thống nhúng trên NIOS và điều khiển thiết bị qua máy tính


Altera Cyclone II 2C35 FPGA



Altera Serial Configuration device - EPCS16



USB Blaster dùng để lập trình hệ thống từ PC, hỗ trợ các chế độ JTAG cũng
như điều khiển trực tiếp khi sử dụng NIOS II



512 – Kbyte SRAM




8 – Mbyte SDRAM



4 – Mbyte Flash memory



Khe cắm SD Card



4 phím nhấn PushButton KEY[3:0]



18 Switch( cấp mức ‘0’ hay ‘1’)



18 đèn LEDR và 9 đèn LEDG



Có hai nguồn clock là 50 MHz và 27 MHz



Chip giải mã âm thanh 24 bits với các jack cắm line-in, line-out và

microphone



VGA DAC( 10-bit high-speed triple DACs) với cổng VGA



TV Decoder( NTSC/PAL) với TV-in( Video-in)



Cổng 10/100 Ethernet



Bộ điều khiển USB host/slave



RS – 232 với cổng kết nối 9 chân



Cổng PS/2 giao tiếp với chuột và keyboard



Cổng hồng ngoại




40 chân mở rộng



LDC 2x16

20


Triển khai hệ thống nhúng trên NIOS và điều khiển thiết bị qua máy tính
2.3.

Phần mềm Quartus II

2.3.1. Giới thiệu Quartus II
Quartus II là công cụ chính được sử dụng trong quá trinh thực hiện đề tài.
Được cung cấp và cập nhật thường xuyên bởi Altera. Đây là công cụ thiết kế tốt
nhất cho các dòng chip FPGA của Altera bao gồm cả Cyclon II 2C35 có trên DE2.
Là công cụ phân tích và tổng hợp thiết kế HDL, nó cho phép nhà phát triển
thực hiện thiết kế của họ, đồng thời cho phép phân tích thời gian, kiểm tra sơ đồ
RTL, mô phỏng hệ thống và cấu hình sản phẩm một cách phù hợp nhất.

Hình 2-5: Giao diện chính

21


Triển khai hệ thống nhúng trên NIOS và điều khiển thiết bị qua máy tính

Thiết kế FPGA với SoPC( Qsys) trên Quartus II.
Dưới đây là quy trình thiết kế FPGA với các phần mềm thiết kế FPGA nói
chung và Quartus II nói riêng:

Hình 2-6: Design Flow


Design Entry – Mạch sau đã thiết kế sẽ được mô tả bởi các ngôn ngữ mô tả
phần cứng như VHDL hay Verilog, hoặc cũng có thể dùng sơ đồ
Schematic.



Synthesis – Công cụ tổ hợp sẽ tổ hợp mạch tạo ra một file netlist có chứa
các phần tử logic và các kết nối giữa chúng.



Function Simulation – Chức năng của mạch sau tổ hợp sẽ được kiểm định.

22


Triển khai hệ thống nhúng trên NIOS và điều khiển thiết bị qua máy tính


Fitting – Công cụ máy tính sẽ đặt các phần tử logic được định nghĩa trong
file netlist xuống các phần tử logic trong con chip FPGA thực tế. Đồng thời
chọn ra các đường dây để kết nối chúng với nhau.




Timming Analysis – Phân tích trễ truyền dẫn trên các đường dây khác
nhau nhằm đưa ra các chỉ thị giúp cải thiện hiệu năng làm việc của mạch.



Timming Simulation – Kiểm tra đồng thời cả về mặt chức năng lẫn thời
gian của mạch.



Programming and Configuration – Thực hiện mạch trên con chip vật lý
bằng cách cấu hình các phần tử logic trên chip và thành lập các kết nối cần
thiết

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


Tạo dự án, viết source code, biên dịch và nạp xuống KIT trên Quartus II.

Đề tài sử dụng phiên bản phần mềm Quartus 12.0 Web Edition.


Khởi tạo dự án: File  New Project Wizard  Next.

Hình 2-7: Khởi tạo dự án
23



Triển khai hệ thống nhúng trên NIOS và điều khiển thiết bị qua máy tính


Điền đường dẫn lưu dự án, tên dự án và tên thực thể chính của dự án  Next.

Hình 2-8: Đường dẫn, tên dự án, tên thực thể chính.


Thêm file thiết kế vào trong dự án  Next.

Hình 2-9: Add file.
24


Triển khai hệ thống nhúng trên NIOS và điều khiển thiết bị qua máy tính
- Thêm file mới cho dự án: Điền tên file name  Add.
- Thêm file đã có sẵn: Browse đường dẫn đến file đã tạo sẵn và Add.
- Nếu đã tạo xong dự án mà muốn thêm file thiết kế VHDL vào trong dự án:
Ở mục Project Navigator, chuyển sang tab file, click chuột phải vào file 
Add/Remove File in Project  Add.


Chọn dòng thiết bị sử dụng.

Hình 2-10: Chọn Device
Đối với đề tài sử dụng KIT Altera Cyclone II DE2:
-

Family: Cyclone II.


-

Available device: EP2C35F672C6( DE2).

25


×