1. Trang chủ
  2. » Giáo Dục - Đào Tạo

THỰC HÀNH HỆ THỐNG NHÚNG

90 702 2

Đ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 6,02 MB

Nội dung

HƯỚNG DẪN Giới thiệu phần mềm Quartus II: Quartus II là công cụ phần mềm phát triển của hãng Altera, cung cấp môi trường thiết kế toàn diện cho các thiết kế SOPC hệ thống trên 1 chip kh

Trang 1

THỰC HÀNH

KS Bùi Hữu Hiên

www.hutech.edu.vn Tài Liệu Lưu Hành Tại HUTECH

Trang 2

THỰC HÀNH HỆ THỐNG NHÚNG

Ấn bản 2013

Trang 4

MỤC LỤC

MỤC LỤC I HƯỚNG DẪN II

BÀI 1: MỘT HỆ THỐNG MÁY TÍNH ĐƠN GIẢN 1

BÀI 2: CHƯƠNG TRÌNH ĐIỀU KHIỂN XUẤT/NHẬP 21

BÀI 3: CHƯƠNG TRÌNH CON VÀ NGĂN XẾP 41

BÀI 4: HỎI VÒNG VÀ NGẮT 54

BÀI 5: GIAO TIẾP BUS 60

TÀI LIỆU THAM KHẢO 84

Trang 5

HƯỚNG DẪN

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

Quartus II là công cụ phần mềm phát triển của hãng Altera, cung cấp môi trường thiết kế toàn diện cho các thiết kế SOPC (hệ thống trên 1 chip khả trình - system on a programmable chip) Đây là phần mềm đóng gói tích hợp đầy đủ phục vụ cho thiết kế logic với các linh kiện logic khả trình PLD, FPGA của Altera, gồm các dòng APEX, Cyclone, FLEX, MAX, Stratix Quatus ii cung cấp các khả năng thiết kế sau:

 Môi trường thiết kế gồm các bản vẽ, sơ đồ khối, công cụ soạn thảo các ngôn ngữ: AHDL, VHDL, và Verilog HDL

 Thiết kế LogicLock

 Là công cụ mạnh để tổng họp logic

 Khả năng mô phỏng chức năng và thời gian

 Phân tích thời gian

 Phân tích logic nhúng với công cụ phân tích SignalTap® II

 Cho phép xuất, tạo và kết nối các file nguồn để tạo ra các file chương trình

 Tự động định vị lỗi

 Khả năng lập trình và nhận diện linh kiện

 Phần mềm Ọuartus II sử dụng bộ tích hợp NativeLink® với các công cụ thiết

kế cung cấp việc truyền thông tin liền mạch giữa Quartus với các công cụ thiết kế phần cứng EDA khác

 Quartus II cũng có thể đọc các file mạch (netlist) EDIF chuẩn, VHDL và Verilog HDL cũng như tạo ra các file netlist này

 Quartus II có môi trường thiết kế đồ họa giúp nhà thiết kế dễ dàng viết mã, biên dịch, soát lỗi, mô phỏng

Với Quartus có thế kết hợp nhiều kiểu file trong 1 dự án thiết kế phân cấp Có thể dùng bộ công cụ tạo sơ đồ khối (Quartus Block Editor) để tạo ra sơ đồ khối mô tả thiết kế ở mức cao, sau đó dùng các sơ đồ khối khác, các bản vẽ như: AHDL Text

Trang 6

Design Files (.tdf) EDIF Input Files (.edfh VHDL Design Files (.vhd) and Verilog HDL Design Files đế tạo ra thành phần thiết kế mức thấp

Quartus II cho phép làm việc với nhiều file ở cùng thời điểm, soạn thảo file thiết kế trong khi vấn có thế biên dịch 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ế mạnh 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ự động và các bàn tin cảnh báo khiến việc phát hiện và sửa lỗi trở nên đơn giản hơn

Sau khi cài Quartus II, giao diện như hình vẽ:

Giao diện Quartus II

Trang 8

BÀI 1: MỘT HỆ THỐNG MÁY TÍNH ĐƠN

GIẢN

1.1 MỤC ĐÍCH YÊU CẦU:

Mục đích của bài tập này là để tìm hiểu làm thế nào để tạo ra và sử dụng một hệ thống máy tính đơn giản Hệ thống sẽ bao gồm một bộ xử lý Altera NiosII và một chương trình ứng dụng Chúng tôi sẽ sử dụng phần mềm Quartus II và SoPC Builder

để tạo ra phần cứng của hệ thống Chúng tôi sẽ sử dụng phần mềm Altera Debug Client để biên dịch, tải và chạy các chương trình ứng dụng

1.2 PHẦN I:

Trong bài tập này, bạn sẽ sử dụng Builder SoPC để tạo ra hệ thống như trong hình, trong đó bao gồm một bộ xử lý Nios II/e và một khối bộ nhớ Bộ vi xử lý Nios II/e xử lý dữ liệu Khối bộ nhớ lưu trữ chương trình và dữ liệu

Hệ thống Nios II trong SoPC Builder

Các bước thực hiện như sau:

Trang 9

1.2.1 Tạo một dự án Quartus II mới Chọn Cyclone IIEP2C35F672C6 như chip mục

tiêu, đó là FPGA chip trên board DE2 Altera

 Trước tiên, ta phải tạo project trên Quartus trước, Chọn chip Cyclone II EP2C35F672C6, đó là chip FPGA trên mạch Altera DE2

giao diện thiết lập New Project

 Sau đó, ta tạo một file mới block diagram cho toàn bộ hệ thống Đặt tên file là nios_2.pdf

Tạo file pdf cho hệ thống

 Tạo hệ thống Nios II sử dụng Altera SoPC Builder:

Click vào biểu tượng SoPC Builder để tạo hệ thống Nios II

Trang 10

SoPC Builder

Giao diện SoPC Builder

Trang 11

1.2.2 Sử dụng Builder SoPC để tạo ra một hệ thống có tên là hệ thống nios_system,

trong đó bao gồm các thành phần sau:

 On-chip memory – RAM: Bộ nhớ trên chip, chế độ RAM với kích thước bộ nhớ là

32 Kbytes và độ rộng dữ liệu là 32 bits

 Trên tab Component Library (bên tay trái của tab System Contents), trong

Memories and Memory Controllers, mở On-Chip, và click vào On-Chip Memory (RAM or ROM)

 Click Add Bảng cấu hình thông số xuất hiện như hình vẽ

 Trong danh sách Block type, chọn Auto

 Trong hộp thoại Total memory size, đánh vào 30 để có 30 KB, chọn data with 32

Giao diện cấu hình tham số on-chip memory

Trang 12

 Bộ xử lý Nios II/e với JTAG Debug Module Level 1

 Trong tab Component Library, mở Processors, và click vào Nios II

Processor

 Click Add Xuất hiện hộp thoại cấu hình thông số cho Nios II như hình vẽ

 Dưới phần Select a Nios II core, chọn Nios II/e

 Trong danh sách Hardware multiplication type, chọn Embedded Multipliers

 Tắt mục Hardware divide

 Trong phần Reset Vector chọn onchip_mem

 Trong phần Exception Vectorchọn onchip_mem

 Các mục khác để mặc định

Giao diện cấu hình tham số CPU Nios II /s Core

Trang 13

Giao diện cấu hình tham số JTAG Debug Module

 Click Finish Quay trở lại tab SoPC System Contents, và một con CPU Nios II

đã xuất hiện trong bảng system contents

1.2.3 Từ menu System, chọn Auto-Assign Base Addresses Bây giờ bạn có hệ thống

như trong hình vẽ:

Hệ thống Nios II hoàn chỉnh

Trang 14

1.2.4 Tạo ra hệ thống, thoát khỏi Builder SoPC và trở về phần mềm Quartus II

 Click vào tab System Generation

 Chọn None cho Create simulation model

 Click Generate Click Save và chờ hệ thống hoàn tất Nếu hệ thống yêu cầu đặt

tên thì đánh nios

 Click Exit Quay trở lại giao diện thiết kế của quartus

1.2.5 Tích hợp hệ thống SoPC Builder vào project Quartus II:

Trong phần này, chúng ta sẽ phải thực hiện các bước sau để hoàn thành thiết kế hardware

 Tích hợp SoPC system vào project quartus II

 Gán chân

 Compile project

 Tích hợp SoPC system vào project

 Để tích hợp hệ thống SoPC vào hệ thống quartus bdf, thực hiện các bước sau:

 Chọn hộp thoại Symbol trên thanh công cụ

 Dưới mục Libraries, mở Project

 Chọn nios2_sys Hộp thoại Symbol sẽ hiển thị symbol nios2_sys như hình vẽ

Symbol nios

Trang 15

 Click OK Quay trở lạ bdf schematic Symbol nios2_sys sẽ nằm trong không gian

thiết kế của quartus

 Nối các chân ngõ vào với các chân của Nios Đưa chuột tới gần chân để nối dây

từ chân đó

 Lưu lại file bdf hoàn chỉnh, clickSave trên menu File

Hệ thống hoàn chỉnh

1.2.6 Gán chân:

 Để gán chân FPGA, Thực hiện các bước sau:

 Trong menu Processing, Vào Start, và click chọn Start Analysis & Elaboration

 để chuẩn bị cho việc gán chân Quá trình này có thể mất vài phút và kết thúc khi

có hộp thoại xác nhận xuất hiện

 Click OK

 Trên menu Assignments, click Pin Planner Bảng Quartus II Pin Planner xuất hiện

 gán chân như hình vẽ

 clk - PIN N2 (đó là chân xung clock 50 MHz)

 reset n - PIN G26 (đó là chân nút nhấn KEY0)

Trang 16

Hộp thoại Pin Planner

 Trên menu Assignments, click Device Bảng hội thoại Device xuất hiện

 Click Device and Pin Options, Bảng hội thoại Device and Pin Options xuất hiện

 Click vào trang Unused Pins

 Trong danh sách Reserve all unused pins , chọn As input tri-stated with

weak

 pull-up Với lựa chọn này, tất cả các chân không dùng trên thiết bị FPGA sẽ có

trạng thái tổng trở cao Chú ý, luôn luôn dùng option này để tránh làm hư các chân

IO và linh kiện trên board do các chân không dùng có mức điện áp xung đột

 Click OK để đóng các hộp thoại

 Biên dịch hệ thống và kiểm tra timing:

Chúng ta phải biên dịch hệ thống để tạo ra file sof mà có thể download xuống board Sau khi biên dịch xong, chúng ta phải kiểm tra timing của thiết kế có làm việc dưới điều khiện của phần cứng hay không Để đảm bảo thiết kế đạt yêu cầu về timing.ta thực hiện các bước sau:

 Trên menu File, click New

 Trong danh sách file, Chọn Synopsys Design Constraints File (*.sdc)

 Đặt tên là hw_leo.sdc và click OK Mở file trong chương trình Editor

Trang 17

 Thêm dòng lệnh create_clock: create_clock -name sopc_clk -period 20 [get_ports CLK]

 Click Save

 Trong menu Assignments , chọn Settings

 Trong mục Timing Analyzer Setting ,chọn TimeQuest Timing Analyzer

 Browse file hw_leo.sdc và nhấn add để thêm vào danh sách

 Bật mục Enable multicorner timing analysis during compilation như hình

vẽ:

Time Quest Timing Analyzer

 Click OK và bắt đầu biên dịch

Trang 18

Sau khi biên dịch xong sẽ hiện ra bảng thông báo như hình vẽ:

Compilation Report

Đến đây, chúng ta đã hoàn tất thiết kế và sẵn sàng nạp chương trình xuống board DE2 để thử nghiệm

1.2.7 Biên dịch các dự án Quartus II:

Trong phần này, chúng ta sẽ download file sof xuống board DE2 Thực hiện các bước sau:

 Kết nối board DE2 với máy tính host bằng cáp USB-Blaster, Sau đó cắm nguồn vào board

 Trên menu Tools của phần mềm Quartus II, click Programmer Công cụ Quartus

II Programmer xuất hiện với file cấu hình mặc định (nios_2.sof) như hình vẽ:

Trang 19

 Màn hình Welcome có thể xuất hiện Đóng nó bằng cách nhấn vào"Workbench" mũi tên ở góc trên bên phải

 Vào menu File - New - Project

Trang 21

 Chọn "Nios IIC/ C + +Application" và nhấp "Next"

 Đặt tên cho chương trình

 Trong mục select target hardware chọn đường dẫn tới file nios.ptf vừa tạo ở

phần trên

 Trong mục select project template chọn Blank project

 Click Next

 Chọn Create a new system library name Click finish

 Vào menu File, chọn New, chọn Source File

Trang 22

 Đặt tên lab1.s, click Finish

Trang 23

Assembly-language code that counts consecutive ones

Type đoạn code chương trình trong hình trên vào cửa sổ như hình bên dưới:

Trang 24

Thực hành đoạn code theo các bước sau:

 Mở và cấu hình Altera Debug Client để sử dụng hệ thống đã tạo ở Phần I với code trong hình 2

 Biên dịch và chạy chương trình

 Hãy xem quy trình thay đổi dữ liệu thanh ghi của bộ xử lý Lưu ý rằng khi kết

thúc chương trình, ở thanh ghi r16 phải có giá trị là 4

 Gán 0x00000008 cho Program Counter Điều này cho phép thực thi chương trình một lần nữa (ở bước 6), mặc dù bỏ qua hai bước đầu

 Lúc này thêm một điểm ngắt tại địa chỉ 0x28 Chương trình sẽ tự động dừng khi thực hiện xong

Gán 0xabcdef90 cho thanh ghi r7 Nhấn F3 và quan sát có bao nhiêu bit 1 liên

tiếp?

1.4 PHẦN III

Hướng dẫn biểu diễn chuỗi số 1 và số 0, tương tự như dữ liệu Trong phần này, chúng ta sẽ khảo sát quy trình được thực hiện như thế nào

Thực hiện như sau:

 Chạy lại chương trình (bằng cách chọn Actions > Load) để xóa các chỉnh sửa bộ nhớ đã thực hiện trong phần II Sau đó, thực thi chương trình chỉ một lần

 Sử dụng Nios II Processor Reference Handbook có sẵn trên trang web của Altera

để biểu diễn ngôn ngữ chương trình máy theo ngôn ngữ Assembly: and r3, r7, r16;

sra r7, r7, r3

 Sử dụng chức năng memory-fill của Altera Debug Client để đặt hai chỉ thị tại vị trí bộ nhớ 0 và 4 Chúng ta nên lưu ý rằng sẽ không nhìn thấy những giá trị này được cập nhật trong giao diện của Debug Client

 Đặt 0x00000000 cho Program Counter Điều gì sẽ xảy ra thời gian này? Là để xác minh câu trả lời mà bước trước đã hướng dẫn bạn đặt ở địa chỉ 0 và 4 (để xem kết quả của chúng) và sau đó thì thực hiện phần còn lại của chương trình

Trang 25

 Sử dụng chức năng memory-fill để thay đổi nhánh cuối cùng để trở về đầu chương trình thay thế Điều này sẽ loại bỏ các chỉnh sửa thủ công Program Counter

 Chạy lại chương trình cho đến khi số 1 và các dữ liệu đang được thử nghiệm vẫn không đổi

 Bây giờ lặp lại các bước từ 1 - 6 , nhưng sử dụng chỉ dẫn srl r7, r7, r3 thay vì

sra r7, r7, r3 Sự khác biệt ở đây là gì?

1.5 PHẦN IV

Trong hầu hết các chương trình ứng dụng, nhiều thành phần code sẽ được thực thi nhiều lần từ các vị trí khác nhau trong một chương trình Code có thể được thực thi như một chương trình con Một chương trình con có thể chạy từ bất cứ nơi nào trong chương trình bằng cách sử dụng một lệnh gọi Sau khi thực thi hoàn thành chương trình con, chương trình chính quay trở lại thực hiện các lệnh tiếp sau vị trí gọi chương trình con Bây giờ chúng ta sẽ tạo ra một chương trình con để tính toán số bit 1 liên tiếp, và sử dụng nó để tính toán số bit 1 và số bit 0 liên tiếp trong một thông tin dữ liệu nhất định

Bắt đầu với chương trình Phần II và chỉnh sửa nó như sau:

 Dùng code tính toán số bit 1 liên tiếp và tạo một chương trình con Sử dụng

thanh ghi r4 để nhận dữ liệu đầu vào và thanh ghi r2 để xuất kết quả

 Gọi chương trình con vừa tạo hai lần, một lần để tính toán số lượng bit1 liên tiếp

và một lần để tính toán số lượng bit 0 liên tiếp Để tính toán số lượng bit 0 liên tiếp các dữ liệu đầu vào phải đảo trước khi chạy chương trình con

 Ghi số lượng bit 1 liên tiếp vào thanh ghi r16 và số lượng bit 0 liên tiếp vào thanh ghi r17

1.6 PHẦN V

Đôi khi chúng ta quan tâm đến các chuỗi xen kẽ 1 và 0 dài nhất Ví dụ, số nhị phân 101101010001 có một chuỗi gồm 6 số xen kẽ giữa 1và 0, được đánh dấu ở đây:

101101010001 Sử dụng chương trình con được tạo ra trong Phần IV để đếm số

lượng các bit xen kẽ 1 và 0 liên tiếp Ghi kết quả vào thanh ghi r18 Giả định rằng hai

Trang 26

bit cuối cùng có thể là một phần của chuỗi dài nhất Ví dụ, 1010 có 4 bit xen kẽ 1 và

0 liên tiếp (Gợi ý: Điều gì xảy ra khi dịch sang phải hoặc trái 1 và XOR với số ban đầu)

1.7 PHẦN VI

Thực hiện các phần trước của bài tập này bằng cách sử dụng ngôn ngữ lập trình C Tạo một hàm có tên là count_ones, dùng hàm này đếm số bit 1 liên tiếp

Trang 27

BÀI 2: CHƯƠNG TRÌNH ĐIỀU KHIỂN

XUẤT/NHẬP

2.1 MỤC ĐÍCH YÊU CẦU:

Mục đích của bài tập này là nghiên cứu việc sử dụng các thiết bị cung cấp khả năng nhập và xuất cho bộ xử lý, và được điều khiển bởi phần mềm Chúng ta sẽ khảo sát các hoạt động I/O chương trình điều khiển từ cả hai quan điểm phần cứng và phần mềm Chúng ta sẽ sử dụng giao diện song song, PIOs, trong một hệ thống Nios

II thực hiện trên một board Altera DE2 Các kiến thức cơ bản cần thiết để làm bài tập

này có thể thu được từ hướng dẫn: Giới thiệu về bộ xử lý mềm Altera Nios II và Giới thiệu về Altera SoPC Builder, có thể được tìm thấy trong phần chương trình Đại học

của trang web Altera Giao diện PIO được sử dụng trong bài tập này, đó là một bộ phận có thể được tạo ra bằng cách sử dụng các Builder SoPC để truyền nhận dữ liệu

Ta có thể thiết lập cho chúng là đầu vào hoặc đầu ra ( hoặc cả hai hướng) Việc truyền nhận được thực hiện song song và nó có thể bao hàm từ 1 đến 32 bit Số lượng bit, n, và hướng truyền dẫn được quy định bởi người sử dụng thông qua SoPC Builder Altera Giao diện PIO có thể chứa bốn thanh ghi thể hiện trong hình vẽ

Trang 28

Mỗi thanh ghi có độ dài là n bit Những thanh ghi có mục đích sau đây:

 Thanh ghi dữ liệu (Data register) chứa n bit dữ liệu được chuyển giao giữa các

giao diện PIO và bộ vi xử lý Nios II Nó có thể được thực hiện như một đầu vào, đầu

ra, hoặc thanh ghi hai chiều bởi SoPC Builder

 Thanh ghi trực tiếp (Direction register) xác định hướng chuyển giao cho mỗi bit

dữ liệu n khi một giao diện hai chiều được tạo ra

 Thanh ghi Interrupt-mask được sử dụng để cho phép ngắt từ dòng đầu vào kết

nối với PIO

 Thanh ghi Edge-capture cho biết khi có một sự thay đổi của giá trị logic được

phát hiện trong các tín hiệu trên đường dây đầu vào kết nối với PIO

Không phải tất cả các thanh ghi này được tạo ra trong một giao diện PIO nhất định Ví dụ thanh ghi Direction được bao gồm chỉ khi một giao diện hai chiều được định rõ

Những thanh ghi PIO có thể truy cập như thể chúng là bộ nhớ tọa độ Bất kỳ địa chỉ cơ sở có ít nhất bốn - bit có ý nghĩa bằng 0 có thể được giao cho một PIO (điều này có thể được thực hiện tự động bởi SoPC Builder) này trở thành địa chỉ của thanh ghi dữ liệu Địa chỉ của ba thanh ghi còn lại có hiệu số của 4, 8, hoặc 12bytes ( 1, 2, hoặc 3 từ) Mô tả đầy đủ của các module PIO có thể được tìm thấy trong các tài liệu PIO Core with Avalon Interface Mỗi một giao diện đó đều có sẵn trong phần tài liệu của trang web Altera

Nhiệm vụ ứng dụng trong bài tập này bao gồm thêm cùng một tập hợp các số 8 - bit đã được nhập thông qua các thiết bị chuyển mạch chuyển đổi trên board DE2 Altera Kết quả tổng được hiển thị trên đèn LED đơn và LED 7 đoạn

2.2 PHẦN I: XÂY DỰNG HARDWARE

Sử dụng 8 công tắc đảo chiều, SW7-0, ở đầu vào để nhập số Sử dụng đèn màu xanh, LEDG7-0, để hiển thị số được xác định bởi các công tắc đảo chiều Sử dụng 16 đèn đỏ, LEDR15-0, để hiển thị tổng tích lũy Một hệ thống Nios II, trong đó bao gồm

ba giao diện PIO, là phần cứng cần thiết cho công việc của chúng ta Một mạch PIO kết nối với các công tắc đảo chiều, sẽ cung cấp các dữ liệu đầu vào có thể được đọc bởi bộ xử lý Hai mạch PIO còn lại, kết nối với đèn màu xanh và đỏ, sẽ đảm nhiệm

Trang 29

như giao diện đầu ra để cho phép hiển thị số lựa chọn các thiết bị chuyển mạch và tổng tích lũy tương ứng

Thực hiện các yêu cầu phần cứng bằng cách thực hiện một hệ thống Nios II trên board DE2, như sau:

 (1) Tạo một dự án Quartus II mới Chọn Cyclone II EP2C35F672C6 như chip mục tiêu, đó là chip FPGA trên bảng Altera DE2

 (2) Sử dụng Builder SoPC để tạo ra các mạch mong muốn, được gọi là

nios_system, trong đó bao gồm:

 Bộ xử lý Nios II/s với JTAG Debug Module Level 1, chọn các tùy chọn sau:

- Embedded Multipliers for Hardware Multiply

- Hardware Divide

 Bộ nhớ On-chip - chế độ bộ nhớ RAM và kích thước 32 Kbytes

 Một mạch PIO 8 - bit đầu vào

 Một mạch PIO 8 - bit đầu ra

 Một mạch PIO 16 - bit đầu ra

SoPC Builder sẽ tự động gán các tên như Pio_0 , Pio_1 và Pio_2 đến ba thành phần PIO Ta có thể thay đổi các tên này thành một tên khác có ý nghĩa hơn trong khi thiết kế Ví dụ, chúng ta có thể chọn new_number, green_LEDs và red_LEDs

 (3) Từ menu System, chọn Auto - Assign Base Addresses Nó sẽ gán địa chỉ cho tất cả các thành phần trong hệ thống được thiết kế Kết quả sẽ là một hệ thống như thể hiện trong Hình vẽ

 (4) Khởi tạo Nios_system tạo file Verilog/VHDL, xác định các yêu cầu kết nối

cho thiết bị chuyển mạch và đèn LED trên kit DE2

 (5) Xác định các chân cần thiết để làm các kết nối cần thiết, bằng cách nhập

các tập tin pin - assignment thư mục DE2_pin_assignments_csv

 (6) Biên dịch dự án Quartus II

 (7) Lập trình và cấu hình FPGA Cyclone II trong board DE2 để khởi tạo hệ thống

Trang 30

Hệ thống NIOS II được tạo bởi SoPC Builder

2.2.1 Bước 1: Tạo project trên Quartus II

 Tạo Project mới

Mở phần mềm > Chọn “Create a New Project”

 Đặt tên Project

Trang 31

Trong công cụ Quartus II  chọn File  New Project Wizard, đặt tên project là

“lab2” (lưu ý: đường dẫn đến thư mục lưu project không chứa khoảng trắng)

Vào File > New > Chọn “Block Diagram/Schematic File”

 Chọn FPGA là Cyclone II EP2C35F672C6

Project sau khi tạo xong có giao diện như hình vẽ

Trang 32

2.2.2 Bước 2: Tạo hệ thống SoPC

Trong công cụ Quartus II  chọn Tools  SoPC Builder hoặc nhấn vào biểu

tượng

Trong công cụ Altera SoPC Builder  Đặt System Name là nios_system, Targer HDL là Verilog Altera SoPC Builder gồm 2 tabs System Contents và System Generation Tab System Contents có giao diện như hình vẽ

 (1) Component Library: chứa các IP Cores đã được thiết kế sẵn của Altera

 (2) chứa các IP Cores dùng được tích hợp vào hệ thống

 (3) Target/Clock Settings: chứa các thông số hệ thống

Trang 33

Thêm CPU NIOS II vào hệ thống bằng cách gõ “nios” vào khung tìm kiếm, chọn Nios II

Processor  Add  chọn NIOS II/s  Finish Thông số cấu hình được minh

họa như hình vẽ

Thêm bộ nhớ On-chip Memory vào hệ thống bằng cách gõ “On-chip Memory” vào

khung tìm kiếm, chọn On-chip Memory  Add  chọn Total Memory size là 32

KB  Finish Thông số cấu hình được minh họa như hình vẽ

Trang 34

Thêm giao tiếp JTAG UART vào hệ thống bằng cách gõ “JTAG UART” vào khung tìm

kiếm, chọn JTAG_UART  Add  Finish

Cài đặt lại thông số cho Nios II Processor bằng cách double-click vào cpu_0  chọn Reset Vector và Exception Vector trỏ vào on-chip_memory2_0  Finish

Thông số cấu hình được minh họa như hình vẽ

Thêm vào hệ thống giao tiếp IO đơn giản PIO bằng cách vào tab System Content

 Peripherals  Microcontroller Peripherals  PIO (Parallel I/O) hoặc gõ chữ

“PIO” vào khung tìm kiếm  trong tab Basic Settings  chọn độ dài thanh ghi là 8

bits  Direction là  Finish

Tương tự cho 8-bit PIO output và 16 - bit PIO output

Trang 35

Sau khi add khối PIO, tại cột Module Name, nhấn R để đổi tên pio_0, pio_1 và

pio_2 lần lượt thành new_number, green_LEDs và red_LEDs như hình vẽ

2.2.3 Bước 3: gán địa chỉ tự động và gán IRQs

Chọn System  Auto - Assign Base Addresses và Auto - Assign IRQs

Hệ thống SoPC sau khi thiết lập xong được minh họa như hình dưới

 Cột Use báo hiệu thành phần nào được kết nối vào hệ thống SoPC

 Cột Connection mô tả kết nối master/slave giữa các thành phần trong hệ thống

 Cột Description mô tả tên gọi và kết nối của các thành phần trong hệ thống

 Cột Clock báo hiệu xung clock cấp cho từng thành phần trong hệ thống

 Cột Base, End báo hiệu địa chỉ bắt đầu và kết thúc của các thành phần trong hệ thống

 Cột IRQ mô tả ngắt (interrupt) được sử dụng trong hệ thống Các ngắt được đánh số từ 0 trở đi Ngắt 0 có mức ưu tiên cao nhất, rồi đến ngắt 1, 2, …

Trang 36

Kiểm tra hệ thống SoPC còn lỗi hay không thông qua cửa sổ

Information

2.2.4 Bước 3a: Tổng hợp hệ thống SoPC

Chọn Tab System Generation  nhấn vào nút Generate  Save Nếu Generate

hoàn tất sẽ hiện ra thông báo

Sau khi thành công kiểm tra thư mục sẽ sinh ra file nios_system_inst.v hoặc xxx_yyy_inst.v Đây là mẫu sử dụng file top module chính của cả hệ thống

Trong bước tạo SoPC cũng sinh ra file sopcinfo đây là khai báo cấu hình phần cứng dùng để tạo driver phần mềm trong NIOS II IDE

2.2.5 Bước 4: Tích hợp hệ thống SoPC vào Project quartus

Trong Quartus chọn File> New…> Verilog HDL File Mở xxx_yyy_inst.v và copy

toàn bộ nội dung vào trong file mới tạo trong quartus:

Trang 37

Set file này thành top module

2.2.6 Bước 5: Gán chân

Gán chân (pin) cho FPGA bằng cách vào Assignments  Import Assignements

…  Add file DE2_pin_assignments.csv vào

2.2.7 Bước 6: Tổng hợp và biên dịch hệ thống SoPC để nạp xuống FPGA

Tiến hành biên dịch và tổng hợp bằng cách vào Processing  Start Compilation

hoặc nhấn Ctrl+L

2.2.8 Bước 7: Nạp xuống FPGA

Khi compile xong sẽ sinh ra file sof, nạp file này xuống board

Chúng ta đã có một con vi điều khiển hoàn chỉnh, giờ chỉ cần viết phần mềm nữa

Trang 38

 (1) Viết chương trình đọc nội dung của thiết bị chuyển mạch, hiển thị giá trị tương ứng trên các LED màu xanh, thêm con số này vào tổng tích lũy, và hiển thị số tổng trên các đèn LED màu đỏ

 (2) Sử dụng phần mềm Altera Debug Client để cài đặt và tải về chương trình

 (3) Bước đơn thông qua các chương trình và xác minh tính chính xác của nó bằng cách nhập vào một vài số Lưu ý rằng bước đơn thông qua chương trình sẽ cho phép chúng ta thay đổi các con số đầu vào mà không đọc cùng một số nhiều lần

Sử dụng phần mềm của Altera có tên Nios II Software Build Tools for Eclipse (gọi tắt Nios II)

a Mở Nios II

b Chọn: File… > New > Nios II App and BSP from template

c Hiện hộp thoại

Trang 39

Như nói ở trên trong mục

Trỏ đến file sopcinfo được tạo trong PART 1, trong thư mục project

d Chọn Next

Trang 40

BSP (Board Support Package!) đây là project chứa một số driver cho một số IP core có sẵn trên hệ thống, cũng chứa thông tin cấu hình hệ thống ở dạng code C, project này được tạo tự động

Chọn Finish

Thấy rõ điều này trong Project Explorer

Ngày đăng: 15/03/2015, 21:20

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w