Thí nghiệm thiết
kế FPGA
Nguyễn Thế Hoàng
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
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
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.
Fail
Fail
Schematic
Design
Function Design
Function And
Timing
verification
Pass
Layout
Design
Post-Layout Pass
Simulation
Fabrication
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.
Logic Gate
Library
VHDL or Verilog
Coding
VHDL or Verilog
Cimulation
RTL Design
High-Level
Simulation
Cell Layout
Library
Fail
Logic
Synthesis
Gate-level
Simulation
Placement
& Routing
Post-Layout
Simulation
Fail
Hình 2 : Standard-Cell Based Design Methodology
Fail
Fabrication
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ế standardcell 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.
FPGA Cell
Library
VHDL or Verilog
Coding
VHDL or Verilog
Cimulation
RTL Design
High-Level
Simulation
Logic
Synthesis
Fail
Placement
& Routing
Post-Layout
Verification
Generate
FPGA
bitstream
Download
FPGA
Fail
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)
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
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
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).
Hình 9 : IO Pins
Hình 10 : IO Banks
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 …
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
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, lineout, 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
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
Hình 16 : Máy hát Karaoke và máy chơi nhạc từ card SD
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
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.
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.
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
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
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
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:
- Xem thêm -