Nguyen the Hoang,Giao Trinh Thuc Hanh FPGA (2)

29
Khoa CN Điện Tử - ĐHCN TPHCM Thí nghiệm thiết kế FPGA [ Tài liu hưng dn thc hành thiết kế FPGA. Đây là Tài liu chuyên nghành giành cho sinh viên năm 3,4 chuyên ngành Điện Tử - Viễn thông – Tự Động. Tài liệu thuộc chương trình giảng dạy bậc ĐH của khoa Công Nghệ Điện Tử, trường ĐH Công Nghiệp TP HCM ] Rev 1.0 Nguyễn Thế Hoàng

description

giáo trình thực hành FPGA giáo trình thực hành FPGA giáo trình thực hành FPGA giáo trình thực hành FPGA giáo trình thực hành FPGA giáo trình thực hành FPGA giáo trình thực hành FPGA

Transcript of Nguyen the Hoang,Giao Trinh Thuc Hanh FPGA (2)

Page 1: Nguyen the Hoang,Giao Trinh Thuc Hanh FPGA (2)

Khoa CN Điện Tử - ĐHCN TPHCM

Thí nghiệm thiết kế FPGA

[ Tài liệu hướng dẫn thực hành thiết kế FPGA. Đây là Tài liệu chuyên nghành giành cho sinh viên năm 3,4 chuyên ngành Điện Tử - Viễn thông – Tự Động. Tài liệu thuộc chương trình giảng dạy bậc ĐH của khoa Công Nghệ Điện Tử, trường ĐH Công Nghiệp TP HCM ]

Rev 1.0

Nguyễn Thế Hoàng

Page 2: Nguyen the Hoang,Giao Trinh Thuc Hanh FPGA (2)

Contents Phần 1 : Tổng quan về thiết kế trên FPGA.......................................................................................... 2

I. Qui trình thiết kế.......................................................................................................................... 2

II. Giới thiệu FPGA............................................................................................................................ 4

III. Giới thiệu Board DE2 của Altera ............................................................................................... 9

1. Giới thiệu .................................................................................................................................... 9

2. Thành phần ............................................................................................................................... 10

3. Một vài ứng dụng của board DE2 .............................................................................................. 10

IV. Cách cài đặt Quartus II 10.0 và Nios II ..................................................................................... 13

1. Giới thiệu .................................................................................................................................. 13

2. Cài đặt ...................................................................................................................................... 13

V. Tạo một project mới với Quartus II 10.0: .................................................................................... 16

1. Tạo 1 project: ............................................................................................................................ 16

2. Viết chương trình và biên dịch: ................................................................................................. 17

3. Gán chân và nạp xuống phần cứng FPGA: .................................................................................. 20

Phần 2 : Hệ thống bài lab của altera ................................................................................................. 26

1. Giới thiệu về hệ thống bài lab của altera .................................................................................... 26

2. Chi tiết các bài lab phải thực hiện............................................................................................... 27

Reference Documents ....................................................................................................................... 28

Page 3: Nguyen the Hoang,Giao Trinh Thuc Hanh FPGA (2)

Phần 1 : Tổng quan về thiết kế trên FPGA

Mục tiêu Nắm được công nghệ FPGA Làm quen board thực hành DE2 Cài đặt, và làm quen với các phần mềm: Quartus II, Nios II

I. Qui trình thiết kế

Hình sau chỉ ra qui trình thiết kế chip đầy đủ. Qui trình thiết kế này tối ưu, hiệu suất cao,mật độ tích hợp cực lớn, nhưng giá thành cao, độ phức tạp lớn , nhiều rủi ro và thời gian ra sản phẩm rất lâu. Chỉ những công ty rất lớn, và có nhà máy sản xuất chip riêng mới sử dụng phương pháp thiết kế này.

Function DesignSchematic

Design

Function And Timing

verification

Layout Design

FabricationPost-Layout Simulation

Fail

Fail

Pass Pass

Hình 1 : Full custom Design Methodology

Hiện nay, theo qui trình sản xuất Chip fabless, các nhà sản xuất chip không trực tiếp chế tạo ra chip mà họ chỉ thiết kế cấp cao rồi outsource cho các công ty sản xuất chuyên sản xuất chip như TSMC, Samsung… gia công. Phương pháp thiết kế này dựa trên các standard-cell do các nhà sản xuất chip cung cấp sẵn.

RTL DesignHigh-Level Simulation

Logic Synthesis

Gate-level Simulation

Placement & Routing

Post-Layout Simulation

Fabrication

VHDL or Verilog Coding

VHDL or Verilog Cimulation

Logic Gate Library

Cell Layout Library

Fail Fail Fail

Hình 2 : Standard-Cell Based Design Methodology

Page 4: Nguyen the Hoang,Giao Trinh Thuc Hanh FPGA (2)

Phương pháp thiết kế dựa trên FPGA , cũng gần giống như phương pháp thiết kế standard-cell Based . Nhưng nó sử dụng các FPGA’s logic cell , phương pháp này cho thời gian thiết kế và sản xuất rất nhanh, vì các Chip FPGA đã được sản xuất từ trước , rủi ro cũng thấp. Tuy nhiên nhược điểm của nó là mật độ tích hợp không cao lắm, tốc độ cũng không bằng hai phương pháp thiết kế trên. Tuy nhiên phương pháp thiết kế dựa trên FPGA vẫn được sử dụng rất nhiều do thời gian thiết kế nhanh, có khả năng tái cấu hình động.

RTL DesignHigh-Level Simulation

Logic Synthesis

Placement & Routing

Post-Layout Verification

FPGA

VHDL or Verilog Coding

VHDL or Verilog Cimulation

FPGA Cell Library

Fail Fail

DownloadGenerate FPGA

bitstream

Hình 3 : FPGA-based Design Methodology

Hình sau là một ví dụ về kiến trúc của một FPGA công nghiệp và chip FPGA trong thực tế.

Hình 4 : Ví dụ về một kiến trúc của FPGA

Ứng dụng của FPGA :

Lý tưởng cho việc chế tạo các sản phẩm mẫu prototype. Các thiết bị cần thời gian bán ra thị trường ngắn. Các sản phẩm số lượng nhỏ, theo yêu cầu khách hàng. Các phần cứng cần khả năng tái cấu hình linh hoạt. Các hệ thống cần thay đổi cấu hình trong quá trình hoạt động (vd như SDR)

Page 5: Nguyen the Hoang,Giao Trinh Thuc Hanh FPGA (2)

II. Giới thiệu FPGA

Qui ước đặt tên cho FPGA của altera.

Hình 5 : Qui ước đặt tên cho FPGA của Altera

Logic Element

Đây là phần tử logic nhỏ nhất trong kiến trúc FPGA thông thường, gọi tắt là LE, nó cho phép thực hiện các chức năng logic hiệu quả. Đặc tính của một LE :

Là một bảng tra 4 ngõ vào (hoặc nhiều hơn tùy kiến trúc FPGA) gọi là look-up table (LUT), mà có thể thực hiện hàm logic 4 biến bất kỳ.

Một thanh ghi có thể lập trình được (programmable register) Một chuỗi các kết nối mắt xích. Một chuỗi kết nỗi các thanh ghi. Có khả năng lái tất cả các loại lien kết nối bao gồm : local, row, column, register chain,

hoặc nối trực tiếp Liên kết nối. Hỗ trợ register packing Hỗ trợ register feedback

Page 6: Nguyen the Hoang,Giao Trinh Thuc Hanh FPGA (2)

Hình 6 : Logic Element

LE Features Ta có thể cấu hình mỗi thanh ghi của LE thành D, T, JK, hoặc SR flip-flop. Mỗi thanh

ghi có data, clock, clock enable, và chân clear. Tìn hiệu có thể là global clock network, các chân I/O pins, hoặc bất kỳ logic nội nào. Các chân I/O pins hoặc logic nội có thể lái các chân enable. Nếu muốn LE thực hiện chức năng của các mạch tổ hợp, LUT sẽ được bypass qua khối thanh ghi.

Mảng Logic (Logic Array Block)

Một mảng logic bao gồm nhiều khối LE và các hệ thống liên kết nối hàng ,cột , hệ thống bus nội bộ…

Hình 7 : LAB

Page 7: Nguyen the Hoang,Giao Trinh Thuc Hanh FPGA (2)

Mạng clock (Clock Network)

Bởi vì clock có thể cần phân phối toàn bộ chip FPGA, và yêu cầu nghiêm ngặt về timing, do đó clock được phân phối đến toàn bộ FPGA bới một mạng clock như hình 4.

Hình 8 : Clock Network

I/O Pins

Hệ thống IO của FPGA thường tổ chức thành các Bank, mỗi bank gồm nhiều chân IO có cùng tính năng. Để hỗ trợ nhiều hệ thống phần cứng khác nhau, các chân IO của FPGA gồm hàng chục kiểu khác nhau với các tính chất về điện cũng khác nhau (xem bảng).

Page 8: Nguyen the Hoang,Giao Trinh Thuc Hanh FPGA (2)

Hình 9 : IO Pins

Hình 10 : IO Banks

Page 9: Nguyen the Hoang,Giao Trinh Thuc Hanh FPGA (2)

Kiến trúc của một FPGA

Hình 11 : FPGA Architecture

Ngoài các phần tử cơ bản như LE, LAB, Clock, IO pin. FPGA còn có các phần tử Embedded Memory block, Embedded Multiplier, DSP Block, Integrated Controller …

Page 10: Nguyen the Hoang,Giao Trinh Thuc Hanh FPGA (2)

III. Giới thiệu Board DE2 của Altera

1. Giới thiệu

Board DE2 là board mạch phục vụ cho việc nghiên cứu và phát triển về các lĩnh vực luận lý số học (digital logic), tổ chức máy tính (computer organization) và FPGA.

Hình 12 : Board DE2

Page 11: Nguyen the Hoang,Giao Trinh Thuc Hanh FPGA (2)

Hình 13 : DE2 Block diagram

2. Thành phần

Board DE2 cung cấp khá nhiều tính năng hỗ trợ cho việc nghiên cứu và phát triển, dưới đây là thông tin chi tiết của một board DE2:

FPGA: - Vi mạch FPGA Altera Cyclone II 2C35. - Vi mạch Altera Serial Configuration – EPCS16.

Các thiết bị xuất nhập: - USB Blaster cho lập trình và điểu khiển API của người dung; hỗ trợ cả 2 chế độ lập

trình JTAG và AS. - Bộ điều khiển Cổng 10/100 Ethernet. - Cổng VGA-out. - Bộ giải mã TV và cổng nối TV-in. - Bộ điều khiển USB Host/Slave với cổng USB kiểu A và kiểu B. - Cổng nối PS/2 chuột/bàn phím. - Bộ giải mã/mã hóa âm thanh 24-bit chất lượng đĩa quang với jack cắm line-in, line-

out, và microphone. - 2 Header mở rộng 40-pin với lớp bảo vệ diode. - Cổng giao tiếp RS-232 và cổng nối 9-pin. - Cổng giao tiếp hồng ngoại.

Bộ nhớ: - SRAM 512-Kbyte. - SDRAM 8-Mbyte. - Bộ nhớ cực nhanh 4-Mbyte (1 số mạch là 1-Mbyte). - Khe SD card.

Switch, các đèn led, LCD, xung clock - 4 nút nhấn, 18 nút gạt. - 18 LED đỏ, 9 LED xanh, 8 Led 7 đoạn - LCD 16x2 - Bộ dao động 50-MHz và 27-MHz cho đồng hồ nguồn.

3. Một vài ứng dụng của board DE2

Ứng dụng làm TV box

Page 12: Nguyen the Hoang,Giao Trinh Thuc Hanh FPGA (2)

Hình 14 : Ứng dụng TV Box

Chương trình vẽ bằng chuột USB (paintbrush)

Hình 15 : Chương trình vẽ (paintbrush)

Máy hát Karaoke và máy chơi nhạc SD

Page 13: Nguyen the Hoang,Giao Trinh Thuc Hanh FPGA (2)

Hình 16 : Máy hát Karaoke và máy chơi nhạc từ card SD

Page 14: Nguyen the Hoang,Giao Trinh Thuc Hanh FPGA (2)

IV. Cách cài đặt Quartus II 10.0 và Nios II

1. Giới thiệu

Bộ phần mềm thiết kế đi kèm với board DE2 bao gồm 2 đĩa CDROM: Quartus 2 và Nios 2 Integrated Development Environment (IDE)

Quartus II là phần mềm hỗ trợ tất cả mọi quá trình thiết kế một mạch logic, bao gồm quá trình thiết kế, tổng hợp, placement và routing (sắp xếp và chạy dây), mô phỏng (simulation), và lập trình lên thiết bị (DE2).

Nios II, môi trường phát triển tích hợp của họ Nios II (IDE), nó là công cụ phát triển chủ yếu của họ vi xử lý Nios II. Phần mềm sẽ là môi trường cung cấp khả năng chỉnh sửa, xây dựng, debug và mô tả sơ lược về chương trình. IDE còn cho phép tạo các chương trình từ đơn nhiệm (single-threaded) đến các chương trình phức tạp dựa trên một hệ điều hành thời gian thực và các thư viện middleware.

Ngoài ra, chúng ta có thể cần một chương trình mô phỏng code Verilog ở cấp độ RTL (mức truyển thanh ghi) hoặc mô phỏng ở mức cổng (Gate level Simulation)

2. Cài đặt

Cài đặt Quartus II và Nios II

Quá trình cài đặt Quartus II và Nios đơn giản chỉ cần đưa đĩa vào máy và thực hiện theo hướng dẫn của chương trình cài đặt như bất kỳ phần mềm nào .

Hình 17 : Phần mềm Quartus và Nios II IDE

Cài đặt phần mềm USB blaster driver

Vì Board DE2 được lập trình (programming) bằng cách sử dụng công cụ USB Blaster (USB Blaster mechanism). Do đó, để có thể kết nối kit DE2 và lập trình thông qua máy PC, chúng ta cần phải cài đặt driver cho thiết bị USB Blaster .

Sau khi gắn board DE2 vào máy tính thông qua cổng USB, nếu USB Blaster driver chưa được cài đặt thì hộp thoại sau sẽ xuất hiên, Chọn No, not this time sau đó nhấn Next

Page 15: Nguyen the Hoang,Giao Trinh Thuc Hanh FPGA (2)

Hình 18 : Thông báo chưa cài dirver

Chọn Install from a specific location và chọn Next

Hình 19 : Chọn cách thức cài đặt driver

Kết tiếp bạn chọn Search for the best driver in these location và sau đó nhấn Browse.

Page 16: Nguyen the Hoang,Giao Trinh Thuc Hanh FPGA (2)

Hình 20 : Chọn thư mục tìm kiếm driver

Hộp thoại mới sẽ xuất hiện bạn tìm đến vị trí C:\altera\10.0\quartus\drivers \usb−blaster, sau đó nhấn OK và tiếp tục nhấn Next

Hình 21 : Chọn thư mục chứa dirver

Cửa sổ thông báo việc kiểm tra logo window không thành công, tuy nhiên việc này sẽ không bị ảnh hưởng đến việc kết nối của chương trình sau này. Bạn tiếp tục nhấn Continue Anyway. Nhấn Finish để hoàn tất việc cài đặt.

Chú ý driver USB blaster có thể nằm trong thư mục khác so với hướng dẫn tùy thuộc vào phiên bản quartus mà bạn cài đặt, thậm chí bạn có thể copy driver tới một thư mục khác và trỏ đường dẫn tới thư mục này khi cài đặt.

Page 17: Nguyen the Hoang,Giao Trinh Thuc Hanh FPGA (2)

V. Tạo một project mới với Quartus II 10.0:

1. Tạo 1 project:

Bước 1. Vào Menu > file chọn New Project Wizard

Hình 22 : Tạo mới một project

Bước 2. Ta chọn thư mục để chứa project và đặt tên cho project, xem hình bên dưới

Hình 23 : Chọn tên và đường dẫn

Page 18: Nguyen the Hoang,Giao Trinh Thuc Hanh FPGA (2)

1:Chọn dường dẫn thư mục 2: Chọn tên thư mục

Bước 3. Sau đó ta chọn hãng sản xuất chip và tên loại chip trên mạch (EP2C35F672C6)

Hình 24 : Hộp thoại lựa chọn chip

Bước 4. Cuối cùng chọn Finish để hoàn tất

2. Viết chương trình và biên dịch:

Bước 1. Vào Menu > file chọn New

Hình 25 : Tạo mới file

Bước 2. Sau đó chọn loại file mà chúng ta muốn viết chương trình. Ở đây ta chọn loai file Verilog HDL

Page 19: Nguyen the Hoang,Giao Trinh Thuc Hanh FPGA (2)

Hình 26 : Lựa chọn loại file cần tạo

Bước 3. Dưới đây là một đoạn chương trình demo: tính hàm f = x1 EX-OR x2

Hình 27 : Cửa sổ viết code

Bước 4. Sau khi viết xong thì ta phải lưu tên file trùng với tên module của chương trình

Page 20: Nguyen the Hoang,Giao Trinh Thuc Hanh FPGA (2)

Hình 28 : Hộp thoại lưu file

Chú ý: Chọn Add file to current project

Bước 5. Sau khi lưu file xong phải thiết lập cho file là top-level thì mới biên dịch được

Hình 29 : Lựa chọn lop-level cho file

Bước 6. Biên dịch chương trình:

Page 21: Nguyen the Hoang,Giao Trinh Thuc Hanh FPGA (2)

Hình 30 : Biên dịch chương trình

Hình 31 : Thông báo việc biên dịch thành công

Chú ý: Đến đây thì có thế nạp trực tiếp lên board DE2 để kiểm thử hoặc sử dụng chương trình mô phỏng có trên Quartus II.

3. Gán chân và nạp xuống phần cứng FPGA:

Bước 7. Gán chân cho thiết kế:

Ở các bước trên ta mới chỉ thực hiện thiết kế và biên dịch chương trình. Để có thể chạy thử trên phần cứng FPGA, chúng ta cần phải thực hiện gán chân cho thiết kế. Quá trình gán chân (Pin assignment) là quá trình chỉ định các input/outout/inout trong thiết kế (logic) kết nối tới một chân vật lý thực sự trên chip FPGA (physical).

Hệ thống chân của FPGA được đánh nhãn bởi chữ cái và số theo qui định của nhà sản xuất FPGA, ví dụ như N25,M20 … ta xem thông tin các chân này trong tài liệu datasheet của dòng chip Cyclone II.

Page 22: Nguyen the Hoang,Giao Trinh Thuc Hanh FPGA (2)

Hình 32 : Pin planner (sơ đổ layout chân của một chip FPGA)

Tuy nhiên, khi thiết kế board DE2, nhà thiết kế Terasic đã kết nối cố định các chân của FPGA với phần cứng tương ứng trên kit, ví dụ : như SW[0] được kết nối với PIN_N25, và LEDR[0] được kết nối với chân PIN_AE23 của Cyclone II. Như vậy, khi ta kết nối một chân logic f (của thiết kế) với chân PIN_AE23 của FPGA. Có nghĩa là chân f trong thiết kế light.v sẽ được kết nối trực tiếp với LEDR[0] khi ta nạp thiết kế xuống kit DE2.

Để gán chân, ta vào menu Assignment>Pin planner, sẽ hiện ra hộp thoại sau :

Hình 33 : hộp thoại Pin Planner

Page 23: Nguyen the Hoang,Giao Trinh Thuc Hanh FPGA (2)

Trong thiết kế này ta có 3 chân : f,x1,x2 .với f là chân output, ta sẽ gán cho LEDR[0]. x1,x2 là input, ta sẽ gán cho SW[0] và SW[1].

Sau khi gán xong, ta sẽ có như sau:

Hình 34 : gán chân cho thiết kế

Sau khi gán chân xong, ta thực hiện biên dịch lại thiết kế để cập nhật thông tin về pin.

Một câu hỏi đặt ra là : ta lấy thông tin về các chân này ở đâu ? Trả lời :

Vì các chân này được ghép nối với phần cứng trên board bởi nhà thiết kế board DE2, do đó để có thông tin về chân IO, ta tìm trong tài liệu DE2 manual. Một cách khác, các nhà thiết kế board FPGA thường cung cấp một file CSV (một dạng giống excel) có thể import trực tiếp vào phần mềm quartus với tên chân được định nghĩa sẵn, vd file DE2_pin_assignments.csv đối với board DE2. Để import file này,vào assignments>import assignments. Chọn đường dẫn đến file “DE2_pin_assignments.csv”rồi nhấn OK. Để kiểm tra kết quả, vào lại Assignments>Pin Planner, sẽ thấy như sau.

Bước 8. Nạp xuống FPGA trên kit DE2:

Chip FPGA phải được nạp và cấu hình để thực hiện thiết kế của chúng ta. File cấu hình được tạo ra bởi quá trình compile của phần mềm Quartus nếu không có lỗi xảy ra. Và chúng ta có thể lập trình và cấu hình FPGA theo hai cách, đó là chế độ JTAG và AS. File cấu hình được truyền từ máy chủ PC (chạy quartus) xuống board FPGA bởi một cáp USB kết nối giữa board và máy tính PC. Để sử dụng cáp này, chúng ta cần phải cài driver USB blaster như đã nói ở trên. Trước khi nạp chương trình, chúng ta phải đảm bảo cáp USB đã được kết nối và board FPGA đã bật nguồn. Trng chế độ nạp JTAG, FPGA sẽ giữ nguyên cấu hình được nạp miễn là còn cấp nguồn cho kit FPGA, có nghĩa là khi mất nguồn, Chip FPGA sẽ bị mất cấu hình và trở thành thiết bị

Page 24: Nguyen the Hoang,Giao Trinh Thuc Hanh FPGA (2)

trắng. Trong chế độ thứ hai, chế độ AS, file cấu hình được lưu trong chip flash trên kit FPGA. Và nó sẽ được load vào FPGA mỗi khi bật nguồn, vì vậy, chúng ta sẽ không cần phải nạp lại file cấu hình mỗi khi bật nguồn kit FPGA nữa (như ở trường hợp nạp JTAG) . Để chọn lựa mode nạp, chọn RUN/PROG switch trên DE2 board. Vị trí RUN là chọn JTAG mode, còn vị trí PROG là chọn AS mode.

Quá trình nạp thông qua mode JTAG như sau : o Gạt switch RUN/PROG trên FPGA sang vị trí RUN. o Chọn Tools>Programmer. Một cửa sổ sẽ hiện ra như hình 35. o Ở đây chúng ta cần phải chỉ định công cụ lập trình và mode lập trình o Chọn JTAG trong hộp thoại mode o Nếu USB-Blaster chưa được chọn, nhấn vào hardware Setup và chọn USB-

Blaster trong hộp thoại sổ xuống như hình 36

Hình 35 : Hộp thoại programming

Hình 36 : Chọn công cụ lập trình USB blaster

o Nếu không thấy hiện lên thiết bị USB-Blaster nào, hãy kiểm tra cáp USB, bật nguồn board, driver …

o Sau đó chọn file cần nạp dạng sof (nếu nó chưa có sẵn trong hộp thoại) bằng cách nhấn Add file

o Sau khi đã chọn xong, nhấn start để bắt đầu lập trình. Một led trên board sẽ sang chi đến khi quá trình lập trình thành công.

Page 25: Nguyen the Hoang,Giao Trinh Thuc Hanh FPGA (2)

o Nếu có bất cứ lỗi gì hiện lên trên cửa sổ quartus,thì hãy kiểm tra lại board đã cấp nguồn chưa. Nếu vẫn không phát hiện ra lỗi, hãy hỏi thầy hướng dẫn của bạn để được giúp đỡ.

Quá trình nạp thông qua mode Active Serial như sau : o Để chọn thiết bị cần lập trình, chọn Assignments>Device như hình 37. o Click vào Device & Pin Options và chọn như hình 38, rồi nhấn OK để quay

lại hình 38, tiếp tục nhấn OK rồi compile lại toàn bộ project.

Hình 37 : Device Windows

Hình 38 : Chọn thiết bị lập trình

Page 26: Nguyen the Hoang,Giao Trinh Thuc Hanh FPGA (2)

o Sau khi compile xong thì chọn Tools>Programmer như ở trên. o Chọn Active Serial Programming trong hộp thoại mode o Tiến hành các bước tương tự như ở trên.

Bước 9. Kiểm tra thiết kế. o Sau khi đã nạp xuống Kit FPGA, giờ đây ta có thể kiểm tra thiết kế của mình o Gạt switch RUN/PROG sang vị trí RUN. o Thử tất cả các giá trị của biến đầu vào x1 và x2 bằng cách thay đổi trạng thái SW0

và SW1 trên board. Kiểm tra kết quả với bảng sự thật bằng cách quan sát trạng thái led.

o Nếu mạch hoạt động không đúng như thiết kế, hãy sửa lại code, kiểm tra gán chân… compile lại, nạp lại và kiểm tra lại cho đến khi mạch hoạt động đúng như mong muốn.

Page 27: Nguyen the Hoang,Giao Trinh Thuc Hanh FPGA (2)

Phần 2 : Hệ thống bài lab của altera

1. Giới thiệu về hệ thống bài lab của altera

Trong giáo trình này, chúng ta sẽ sử dụng hệ thống bài lab tiêu chuẩn của altera gồm 9 bài từ lab 0 tới lab 8. Hoàn thành 9 bài lab này, chúng ta sẽ có những kỹ năng cơ bản trong lĩnh vực thiết kế chip sử dụng ngôn ngữ Verilog HDL.

Lab 0a : Thiết kế bằng sơ đồ mạch trên Altera Quartus Lab 0b : Thiết kế bằng ngôn ngữ mô tả phần cứng Verilog HDL trên Altera Quartus Lab 1 : Công tắc, leds, và bộ ghép kênh Lab 2 : Hệ thống Số và hiển thị Lab 3 : Latch & Flipflop (Option) Lab 4 : Bộ đếm Counter Lab 5 : Clocks và Timers Lab 6 : Bộ cộng, trừ, nhân Lab 7 : Máy trạng thái Lab 8 : Bộ vi xử lý đơn giản

Tùy theo chương trình học sẽ có yêu cầu khác nhau :

Đối với chương trình đại học liên thông, yêu cầu thực hiện từ Lab 0 tới Lab 5 Đối với chương trình đại học chính qui, yêu cầu thực hiện từ Lab 0 tới Lab 7 Đối với hệ nâng cao, yêu cầu thực hiện thêm Lab 8

Tùy theo cơ sở hạ tầng thiết bị, các bài lab có thể thực hiện theo các cách khác nhau :

Nếu không có phần cứng, có thể mô phỏng bằng phần mềm model-sim hoặc quartus simulation

Nếu có phần cứng (DE1,DE2 hoặc tương đương) có thể tổng hợp trực tiếp và thực hiện ngay trên phần cứng của kit FPGA (có thể mô phỏng hoặc không, tùy yêu cầu của giáo viên hướng dẫn).

Page 28: Nguyen the Hoang,Giao Trinh Thuc Hanh FPGA (2)

2. Chi tiết các bài lab phải thực hiện

Lab 0: FPGA Design using Quartus II

o Quartus II Introduction Using Schematic Design o Quartus II Introduction Using Verilog Design

Lab 1: Switches, Lights, and Multiplexers o Part 1.1 : Led Control o Part 1.2 : Design 2 to 1 Multiplexer o Part 1.3A : Design 5 to 1 Multiplexer from Mux2to1 o Part 1.3B : Extend to 8-bit Mux5to1 o Part 1.4 : Design Led 7 Segments Decoder o Part 1.5 : 7-Segments Led display. o Part 1.6: Led Rotation on 7-Segment Leds. (Optional)

Lab 2: Numbers and Displays o Part2.1: Binary-to-Decimal conversion o Part2.2: BCD Display on 7-Segment Led o Part2.3: Implement 4-bit Adder (RCA) o Part2.4 : Design BCD Adder o Part 2.5 : Design 2-digit BCD Adder

Lab 3: Latch & Flipflop (Optional) Lab 4: Counters

o Part 4.1 : Design A 4-bit synchronous Counter o Part 4.2 : 7-segment Led Counter o Part 4.3 : Display scrolling text on 7-Segment Led

Lab 5: Clocks and Timers o Part 5.1 : Implement a 3-digit BCD counter o Part 5.2 : Implement a time-of-day clock o Part 5.3 : Design and implement a reaction-timer circuit.

Lab 6: Adders, Subtractors, and Multipliers o Part 6.1 : Design a 8-bit 2’s-complement Adder o Part 6.2 : Expand to 8-bit Add/Sub Circuit o Part 6.3 : Implement a 4-bit Multiplier o Part 6.4 : Extend the multiplier to multiply 8-bit numbers o Part 6.5 : Design a MAC circuit (Multiply Accumulate Circuit)

Lab 7: Finite State Machines o Part 7.1 : Finite State Machines o Part 7.2 : Design a modulo-10 counter-like circuit o Part 7.3 : Design a scrolling text display using shift-register

Lab 8: A Simple Processor (Optional) o Part 8.1 : Design a simple Processor o Part 8.2 : Design a simple CPU with Memory and PC counter

Page 29: Nguyen the Hoang,Giao Trinh Thuc Hanh FPGA (2)

Reference Documents

1) Haibo Wang , “ECE428”, ECE Department , Southern Illinois University , Carbondale, IL 62901.

2) Tài liệu TN FPGA, Khoa KH-KTMT ,Trường Đại Học BK TP HCM 3) Altera University Program Documents 4) Altera website 5) Internet