De 11_FPGA & DE2

63
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP HCM KHOA CÔNG NGHỆ ĐIỆN TỬ

Transcript of De 11_FPGA & DE2

Page 1: De 11_FPGA & DE2

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP HCM

KHOA CÔNG NGHỆ ĐIỆN TỬ

Page 2: De 11_FPGA & DE2

Mục lục

Mục lục..........................................................................................................................1

Chương 1: Tổng quan về công nghệ FPGA....................................................................3

I. Cấu trúc của các FPGA...............................................................................................................................4

Cấu trúc tổng thể của FPGA bao gồm:......................................................................................................4

- Các khối Logic......................................................................................................................................4

- Hệ thống liên kết mạch..........................................................................................................................4

- Các phần tử tích hợp sẵn.......................................................................................................................4

1.1. Các khối logic cấu hình (configurable logic Block)............................................................................5

1.2. Các nguồn kết nối (Router).................................................................................................................5

II. Phân loại FPGA.........................................................................................................................................5

2.1. Các công nghệ lập trình FPGA...........................................................................................................6

2.2 Công nghệ lập trình dùng RAM tĩnh.....................................................................................................6

2.3. Các thiết bị lập trình cầu chì ngịch(Anti-fuse).....................................................................................7

2.4. Công nghệ lập trình dùng EPROM và EEPROM................................................................................9

III. Ngôn ngữ mô tả phần cứng (HDL).........................................................................................................10

3.1. Các ưu điểm của VHDL.....................................................................................................................11

3.2. Cấu trúc một mô hình hệ thống sử dụng ngôn ngữ VHDL.................................................................11

Chương 2: Tìm hiểu Board DE2 của Altera..................................................................12

I. Giới thiệu.................................................................................................................................................12

II. Thành phần..............................................................................................................................................13

III. Cách hoạt động.......................................................................................................................................15

3.1. Cấu hình FPGA trong chế độ JTGA..................................................................................................16

3.2. Cấu hình FPGA trong chế độ AS.......................................................................................................16

3.3. Điều khiển DE2 sử dụng liên kết Terasic..........................................................................................17

Page 3: De 11_FPGA & DE2

3.4. Ngõ ra XSGA.....................................................................................................................................17

3.5. 24-bit Audio CODEC........................................................................................................................19

3.6. Sử dụng LED và các công tắc............................................................................................................21

3.7. Sử dụng led 7 đoạn và module LCD..................................................................................................24

3.8. Sử dụng các Headers mở rộng..........................................................................................................28

3.9. Sử dụng các Cổng nối tiếp (RS232)...................................................................................................29

3.10. Sử dụng các Cổng nối tiếp (PS/2)....................................................................................................30

3.11. Sử dụng Fast Ethernet Netword Controller.....................................................................................30

3.12. Bộ giải mã TV..................................................................................................................................32

3.13. Thực hiện một bộ mã hóa TV...........................................................................................................34

3.14. Sử dụng USB Host/Device...............................................................................................................35

3.15. Sử dụng cổng hồng ngoại................................................................................................................36

3.16. Sử dụng Using SDRAM/SRAM/Flash..............................................................................................37

IV. Một vài ứng dụng..................................................................................................................................42

V. Các phần mềm hỗ trợ...............................................................................................................................44

5.1. Giới thiệu..........................................................................................................................................44

5.2. Thiết kế mạch....................................................................................................................................45

5.3. Cách thức mô phỏng hoạt động trong Quartus.................................................................................51

Page 4: De 11_FPGA & DE2

Chương 1: Tổng quan về công nghệ FPGA

FPGA(field-programmable Gate Array) đây là loại IC cho phép người thiết kế lập trình thay đổi các thiết kế của mình. FPGA xuất hiện như một giải pháp cơ bản cho vấn đề tranh thủ thời gian để đưa ra thị trường và rủi ro tài chính phải gánh chịu trong quá trình nghiên cứu sản phẩm của công nghệ điện tử. FPGA là loại thiết bị khả trình (PLD) tiên tiến nhất hiện nay của ngành công nghệ chế tạo IC chuyên biệt mà vẫn được gọi là ASIC.

I. Cấu trúc của các FPGA.

Cấu trúc tổng thể của FPGA bao gồm:

- Các khối Logic- Hệ thống liên kết mạch- Các phần tử tích hợp sẵn

FPGA là mạch tích hợp chứa nhiều (64 đến hơn 10.000) ô logic (logic cell) giống nhau có thể xem là các thành phần chuẩn. Mỗi ô logic giữ một hay một số chức năng độc lập. Các ô giống nhau được kết nối bởi một ma trận đường dẫn và chuyển mạch khả trình. Người thực hiện thiết kế bằng các đặc trưng logic đơn của mỗi ô và lựa chọn đóng các chuyển mạch trong ma trận kết nối. Mảng của các ô logic và kiểu kết nối là kết cấu xây dựng khối cơ bản trong mạch logic. Các thiết kế phức tạp được tạo ra bằng cách kết hợp các khối cơ bản để tạo ra các mạch được mô tả.

Mô hình tổng quát của FPGA gồm một dãy hai chiều các khối logic (logic block) có thể được kết nối bằng các nguồn kết nối chung. Các nguồn kết nối (segment) có thể có

Page 5: De 11_FPGA & DE2

chiều dài khác nhau. Bên trong các kết nối là các chuyển mạch lập trình được dùng để nối các khối logic cấu hình (configurable logic Block) cần thiết qua các chuyển mạch. Các khối CLB cung cấp các phần tử chức năng với cấu trúc sử dụng logic. Các khối vào/ra (I/O block) cung cấp giao diện giữa các gói chân và đường tín hiệu bên trong. Tài nguyên kết nối khả trình cung cấp các bộ phận truyền dẫn tới kết nối đầu vào và đầu ra của các CLB và các IOB trong mạng riêng.

Vậy cấu trúc FPGA gồm 3 phần tử chính: - Các khối logic cấu hình (CLB)- Các khối vào/ra (IOB)- Các kết nối

1.1. Các khối logic cấu hình (configurable logic Block).

Cấu trúc và nội dung của logic block được gọi theo kiến trúc của nó. Kiến trúc của khối logic có thể thiết kế theo nhiều cách khác nhau, có thể là các cổng AND 2 ngõ nhập, các bộ dồn kênh (Multiplexer) hay các bảng tìm kiếm (Look-up Table). Ngoài ra có thể chứa các flip-flop để hỗ trợ cho việc thực hiện một cách tuần tự.

1.2. Các nguồn kết nối (Router).

Các nguồn kết nối có cấu trúc và nội dung được gọi là kiến trúc đường (Routing Architecture). Kiến trúc Routing gồm các đoạn dây nối các chuyển mạch khả trình. Các chuyển mạch khả trình có cấu tạo khác nhau như pass-transistor, được điều khiển bởi các cell SRAM, các phần tử cầu chì nghịch, EPROM transitor và EEPROM transistor. Giống như các khối logic có nhiều cách khác nhau để thiết kế các routing. Một số FPGA cung cấp nhiều kết nối đơn giản giữa các khối logic, một số khác cung cấp ít kết nối hơn nên routing phức tạp hơn.

II. Phân loại FPGA

FPGA có nhiều loại khác nhau có cấu trúc và đặc tính riêng thùy theo từng hãng sản xuất , tuy nhiên chúng có 4 loại cính sau: cấu trúc mảng đối xứng (symmetrical Array) cấu trúc PLD phân cấp (hierachircal PLD), cấu trúc hang (Row base) và cấu trúc đa cổng (sea of gage) mô tả dưới đây.

Page 6: De 11_FPGA & DE2

2.1. Các công nghệ lập trình FPGA.

Có nhiều cách thực hiện các phần tử lập trình, các công nghệ lập trình hiện đang sử dụng là: RAM tĩnh, cầu chì nghịch (anti-fuse), EPROM transistor và EEPROM transistor. Mặc dù công nghệ lập trình khác nhau, tất cả các phần tử lập trình đều có thể cấu hình được trong một trong hai trạng thái ON và OFF. Các phần tử lập trình được dùng để thực hiên các kết nối lập trình được giữa các FPGA, còn FPGA thông thường có thể có hơn 100.000 phần tử lập trình. Vì vậy các phần tử lập trình phải có những tính chất sau:- Càng chiếm ít diện tích của chip càng tốt.- Có trở kháng thấp khi ở trạng thái ON và trở kháng cao khi ở trạng thái OFF.- Có điện dung kí sinh thấp khi kết nối các đoạn dây.- Có thể chế tạo một cách tin cậy số lượng lớn phần tử lập trình trên một chip.

Có thể tùy thuộc vào ứng dụng cụ thể và có các số lượng phẩn tử lập trình có thể có các đặc tính khác. Về mặt chế tạo, các phần tử lập trình nếu có thể chế tạo theo công nghệ CMOS chuẩn là tốt nhất. Dưới đây sẽ trình bày chi tiết công nghệ FPGA.

2.2 Công nghệ lập trình dùng RAM tĩnh.

Công nghệ lập trình dùng RAM tĩnh (SRAM) sử dụng công nghệ CMOS tiêu chuẩn. Các kết nối lập trình được điều khiển bằng các transistor khác trên chip hoặc bật (On) các transistor truyền dẫn cũng như các cổng transistor để tạo nên một kết nối hay tắt (Off) để ngắt các kết nối.

Page 7: De 11_FPGA & DE2

Trong trường hợp transistor truyền dẫn và cổng transistor như hình trên, phần tử RAM Cell điều khiển cổng truyền bật hoặc tắt. Khi tắt giữa hai dây nối với cổng truyền dẫn sẽ có một trở kháng rất cao. Khi bật nó sẽ tạo một trở kháng thấp kết nối giữa hai dây nối. Đối với bộ dồn kênh, SRAM Cell điều khiển ngõ nhập nào của bộ dồn kênh sẽ được nối với ngõ ra của nó. Cách này thường dùng để kết nối tùy chọn từ một hay nhiều ngõ nhập của một khối.

Trong các FPGA sử dụng công nghệ lập trình SRAM, các khối logic có thể kết hợp với nhau qua cách kết hợp cả bộ dồn kênh (mutiplexer) và cổng truyền dẫn(pas-gate). Vì SRAM là bộ nhớ bay hơi, các FPGA này phải được tái cấu hình mỗi khi cấp nguồn cho chip. Điều này có nghĩa là hệ thống sử dụng các chip này phải có cơ chế lưu trữ thường trực cho các bit của RAM Cell, chẳng hạn như ROM hay từ đĩa từ. Các bit của RAM Cell có thể được nạp vào FPGA một cách tuần tự hay định địa chỉ như một phần tử của mảng (theo cách thông thường của một RAM).

Các chip được thực hiện theo công nghệ SRAM có diện tích khá lớn, bởi vì cần ít nhất 5 transistor cho mỗi RAM Cell cũng như các transistor cần thêm cho cổng truyền dẫn hay bộ dồn kênh. Ưu điểm của kỹ thuật này là cho phép FPGA có thể được tái cấu hình ngay trên mạch rất nhanh và nó có thể được chế tạo bằng công nghệ CMOS chuẩn

2.3. Các thiết bị lập trình cầu chì ngịch(Anti-fuse)

Công nghệ lập trình anti-fuse được sử dụng trong các FPGA của Actel-Corp, Quick Logic và Cross Point Solution. Tuy anti-fuse được sử dụng trong các loại FPGA này có cấu tạo khác nhau, nhưng chức năng của chúng thì như nhau. Một anti-fuse bình thường sẽ ở trạng thái cao, nhưng có thể bị nóng chảy thành trạng thái điện trở thấp khi được lập trình ở điện thế cao. Dưới đây sẽ giới thiệu anti-fuse của Actel và Quick Logic.

Anti-fuse của Actel được gọi là PLICE. Nó cấu trúc hình chữ nhật gồm 3 lớp:- Lớp dưới cùng chứa các silic mang nhiều điện tích dương(n+diffusion).- Lớp giữa là một lớp điện môi(Oxy-Nito-Oxy cách điện)- Lớp trên cùng là Poly-Silic.

Page 8: De 11_FPGA & DE2

Anti-fuse PLICE được lập trình bằng cách đặt một điện thế cao thích hợp(18V) giữa hai đầu của anti-fuse và dòng điều khiển khoảng 5mA qua thiết bị. Dòng và áp này tạo ra một nhiệt lượng vừa đủ bên trong lớp điện môi làm nó nóng chảy và tạo ra một liên kết dẫn điện giữa các điện cực. Các transistor chịu được các điện thế cao được chế tạo bên trong FPGA để đáp ứng cho dòng và điện áp đủ lớn. Cả hai lớp dưới cùng và trên cùng của cầu chì nghịch sẽ tạo ra một liên kết nối có trở kháng thấp (300Ω đến 500Ω) giữa hai dây kim loại

Anti-fuse của Quick Logic được gọi là ViaLink. Nó tương tự như PLICE cũng như có ba lớp kim loại. Tuy nhiên, ViaLink sử dụng kim loại mức 1 cho lớp dưới cùng. Khi ở trạng thái không được lập trình, anti-fuse có trở kháng hang GΩ, nhưng khi lập trình nó sẽ tạo ra một kết nối giữa hai lớp kim loại trở kháng khoảng 80Ω. Anti-fuse được chế tạo bằng cách thêm ba mặt nạ đặt biệt trong quy trình chế tạo CMOS thông thường.

ViaLink anti-fuse được lập trình bằng cách đặt một điện thế 10V giữa các đầu của nó, dòng được cấp đủ, trạng thái của Silic vô định hình sẽ thay đổi và tạo ra một liên kết điện giữa hai lớp kim loại. Diện tích chip sử dụng kỹ thuật anti-fuse rất nhỏ so với công nghệ khác. Tuy nhiên, bù lại cần phải có không gian lớn cho các transistor điện thế cao cần giữ cho dòng và áp cao lúc lập trình. Nhược điểm của anti-fuse là quy trình chế tạo chúng phải thay đổi so với quy trình chế tạo CMOS.

Page 9: De 11_FPGA & DE2

2.4. Công nghệ lập trình dùng EPROM và EEPROM

Công nghệ được dùng trong các FPGA của Altera Corp và Plus Logic. Công nghệ này giống như sử dụng bộ nhớ EPROM. Không giống CMOS transistor đơn giản, một EPROM transistor gồm hai cổng, một cổng treo(floating-gate) và một cổng chọn (select-gate). Cổng này được gọi thế vì nó không có kết nối điện đến bất kì mạch nào.

Ở trạng thái bình thường khi không được lập trình, không có điện tích giữa cổng treo và transistor có thể chuyển sang trạng thái On một cách bình thường bằng cổng chọn. Khi transistor được lập trình bằng một dòng điện lớnchạy giữa nguồn và kênh, một điện tích được giữ lại ở cổng treo(phơi dưới ánh sang tia cực tím sẽ kích hoạt các electron chuyển từ cổng vào chất nên của transistor).

EPROM transistor được sử dụng trong FPGA theo cách khác so với SRAM và anti-fuse thay vì dùng cho lập trình kết nối hai dây, EPROM transistor được sử dụng để kéo xuống các ngõ nhập của logic-block.

Như hình vẽ 1.6, một đường dây gọi là “word line’’ (theo thuật ngữ bộ nhớ) được nối với cổng chọn của EPROM transistor, khi transistor chưa lập trình ở trạng thái ON. “Word line” có thể làm cho “bit line” không được nối với ngõ nhập của logic-block vì bị kéo về mức logic 0. Nhiều EPROM transistor thực hiện các kết nối cùng một bit line, khi một điện the nối lên nguồn nối với bit line, mô hình không những cho EPROM transistor thực hiện các kết nối mà còn thực hiện các chức năng logic AND nối dây (wired-AND). Nhược điểm của phương pháp này là các điện trở tiêu tốn năng lượng cố định.

Một ưu điểm của EPROM transistor là chúng có thể tái lập trình mà không cần bộ nhớ bên ngoài. Tuy nhiên, không giống SRAM, EPROM không thể được tái lập trình ngay trên bo mạch.

Phương pháp dùng EEPROM (được sử dụng trong các FPGA của Advanced Micro Device-AND) tương tự như công nghệ EPROM, ngoại trừ EEPROM transisitor chiếm gấp đôi điện tích so với EPROM transistor và cần nhiều nguồn điện thế (để tái lập trình) mà các loại khác không cần.

Các công nghệ lập trình FPGA được tóm tắt trong bảng dưới đây:

Page 10: De 11_FPGA & DE2

Công nghệ lập trình

Tính bay hơi

Có thể lập trình

Diện tích chip

R(KΩ) C(pf)

Static RAM Cell

Có Trong mạch

Lớn 1-2 10-20

PLICE Anti-fuse

Không Không Anti-fuse nhỏSố transistor lớn

300-500 3-5

ViaLink Không Ngoài mạch

Anti-fuse nhỏSố transistor lớn

50-80 1-3

EPROM Không Ngoài mạch

Nhỏ 2-4 10-20

EEPROM Không Trong mạch

2xEPROM 2-4 10-20

III. Ngôn ngữ mô tả phần cứng (HDL)

Ngôn ngữ mô tả phần cứng (HDL) là ngôn ngữ lập trình phần mềm dùng đề mô hình hoạt động mong muốn của phần cứng. Có hai khía cạnh mà HDL tạo điều kiện để mô tả phần cứng: mô hình hành vi trừu tượng và mô hình cấu trúc phần cứng.

Mô hình hành vi trựu tượng. Ngôn ngữ mô tả phần cứng tạp điều kiện dễ dàng cho việc mô tả trừu tượng hành vi của phần cứng đối với các mục đích đặc tả (chỉ rõ chi tiết kỹ thuật). Hành vi này không chỉ bị chi phối bởi các khía cạnh cấu trúc hoạc thiết kế của ý định phần cứng.

Mô tả cấu trúc phần cứng. Cấu trúc phần cứng có khả năng được mô hình trong ngôn ngữ mô tả phần cứng mà không cần quan tâm đến hành vi thiết kế.

VHDL được xem như là sự kết hợp của các ngôn ngữ sau: ngôn ngữ tuần tự + ngôn ngữ đồng thời + netlist + định thời + mô phỏng. Do cấu trúc VHDL cho phép thể hiện cách thức thực hiện theo kiểu song song hay tuần tự của một hệ thống số có hoạc không có timing. Nó cũng cho phép vẽ mô hình một hệ thống bằng các liên kết nối của các thành phần.

VHDL được dành cho tổng hợp mạch (synthesis) cũng như mô phỏng mạch (simulation). Dù VHDL có thể mô phỏng một cách đầy đủ, nhưng không phải tất cả các cấu trúc đều được VHDL tổng hợp.

Page 11: De 11_FPGA & DE2

3.1. Các ưu điểm của VHDL

- Chương trình trong VHDL có thể được viết theo nhiều cấu trúc khác nhau: Ngẩu nhiên, tuần tự, nối chân, định thời chỉ rõ, ngôn ngữ dạng sóng.

- VHDL là một ngôn ngữ phân cấp, hệ thống số có thể được mô phỏng như một kết nối các khối mà các khối này được thực hiện với các khối con khác nhỏ hơn.

- Cung cấp một cách mềm dẻo các phương thức thiết kế trên xuống, dưới lên, hoạc tổ hợp cả hai.

- Cung cấp cả hai mode đồng bộ và không đồng bộ.- Linh hoạt trong kĩ thuật mô phỏng số như sử dụng biểu đồ trạng thái, thuật toán, hàm

Boolean.- Có tính đại chúng: VHDL được phát triển dưới sự bảo trợ của chình phủ Mỹ và hiện

này là một tiêu chuẩn của IEEE. VHDL được sư hổ trợ của nhiều nhà sản xuất thiết bị cũng như nhiều nhà cung cấp công cụ thiết kế mô phỏng hệ thống.

- VHDL cung cấp 3 kiểu mẫu viết khác nhau: structural, dataflow và behavioral.- Không giới hạn về đọ lớn của thiết kế khi sử dụng ngôn ngữ.- Khả năng định ngĩa kiểu dữ liệu mới cung cấp một công cụ hữu hiệu cho thiết kế và

mô phỏng công nghệ mới với một mức rất cao.

3.2. Cấu trúc một mô hình hệ thống sử dụng ngôn ngữ VHDL

VHDL là ngôn ngữ mô tả phần cứng do vậy mà nó có thể được sử dụng để làm mô hình của một hệ thống số. Hệ thống số có thể đơn giản là các cổng logic hay phức tạp như một hệ thống hoàn chỉnh. Các khối xây dựng nên ngôn ngữ VHDL gọi là các khối thiết kế. Có 3 khối thiết kế chính:

- Khai báo Entity (Thực Tế)- Khai báo Arichitecture (Kiến trúc)- Khai báo Configuration (Cấu hình)Đôi khi ta sử dụng các gói (Packages) và mô hình kiểm tra hoạt động của hệ thống (Testbench).

Page 12: De 11_FPGA & DE2

Chương 2: Tìm hiểu Board DE2 của Altera

I. 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

Giá: 10.100.000 VNĐ Model: Board FPGA Hãng sản xuất: FPGAhttp://linhkienmach.com/FPGA_DE2_Altera_Gia_Re

Page 13: De 11_FPGA & DE2

II. Thành phần

Kit DE2 có rất nhiều tính năng cho phép các nhà thiết kế thực hiện một khối lượng lớn các hệ thống, mạch chức năng từ đơn giản đến phức tạp. Dưới đây là các tính năng được cung cấp sẵn trên kit DE2:

- FPGA:+ Vi mạch FPGA Altera Cyclone II 2C35+ Vi mạch Altera Serial Configuration device - EPCS16

- Các thiết bị xuất nhập+ USB Blaster

* Dùng để lập trình và điều khiển API của người dùng* Hỗ trợ các chế độ JTAG và AS khi sử dụng NIOS II

+ Bộ điều khiển Cổng 10/100 Ethernet.* Tích hợp MAC và PHY với một giao diện xử lý chung* Hỗ trợ 100Base-T và các ứng dụng 10Base-T.* Hỗ trợ chế độ hoạt động song công đầy đủ tại 10Mb / s và 100MB / s, với tính năng tự động MDIX* Hoàn toàn phù hợp với IEEE 802.3u Spec* Hỗ trợ các chuẩn giao thức IP/TCP/UDP

+ Cổng VGA-out+ Bộ giải mã TV và cổng nối TV-in

* Sử dụng ADI 7181B đa định dạng SDTV Video Decoder* Hỗ trợ NTSC-(M, J, 4.43), PAL-(B / D / G / H / I / M / N), SECAM.* Xung clock từ nguồn dao động 27 Mhz* Nhiều lập trình tương tự các định dạng đầu vào: Composite video (CVBS), S-Video(Y/C) và các thành phần YprPb* Hỗ trợ các định dạng đầu ra kỹ thuật số (8-bit/16-bit): ITU-R BT.656 YCrCb 04:02:02 ngõ ra + HS, VS, và FIELD* Ứng dụng: ghi DVD, màn hình LCD TV, hộp set-top, TV kỹ thuật số, Portable

+ Bộ điều khiển USB host/slave với USB kiểu A và kiểu B* Tuân thủ đầy đủ với Universal Serial Bus Thông số kỹ thuật Rev 2.0* Hỗ trợ truyền dữ liệu ở tốc độ đầy đủ và tốc độ thấp* Hỗ trợ cả USB Host và thiết bị* Hỗ trợ hai cổng USB (Một loại A cho máy chủ và một loại B cho các thiết bị trên DE2)* Cung cấp tốc độ cao giao diện song song với hầu hết các CPU có sẵn, hỗ trợ NIOS II Core* Hỗ trợ lập trình I / O (PIO) hoặc truy cập bộ nhớ trực tiếp (DMA)

+ Cổng nối PS/2 chuột/ bàn phím+ Bộ giải mã/mã hóa âm thanh

* Sử dụng Wolfson WM8731 24-bit sigma –delta Best-Quality Audio CODEC

Page 14: De 11_FPGA & DE2

* jack cắm line-in, line-out, và microphone* Tần số lấy mẫu 8 KHZ – 96 KHz* Các ứng dụng cho máy nghe nhạc MP3 và ghi âm, PDA, điện thoại thông minh.

+ 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: 115.2kb/s Infrared Transceiver

- Bộ nhớ+ SRAM 512 – Kbyte+ SDRAM 8 – Mbyte

* Single Data Rate Synchronous Dynamic RAM memory chip* Tổ chức như 1M x 4 x 16bit* Hỗ trợ lập trình qua NIOS II and Terasic high-speed Multi-port SDRAM Controller

+ Bộ nhớ cực nhanh 1 – Mbyte * Được trang bị bộ nhớ Flash NAND 1Mbyte* Giao diện được thiết kế để hỗ trợ lên đến 4Mbye SDRAM* Bus dữ liệu 8-bit* Hỗ trợ truy cập thông qua cả Nios II và Terasic high-speed Multi-port SDRAM Controller

+ Khe cắm SD card* Cung cấp chế độ SPI để truy cập thẻ SD* Hỗ trợ truy cập thông qua NIOS II với Terasic SD Card Driver

- Switch, các đèn LED, LCD, xung clock+ 4 nút nhấn, 18 nút gạt

* Nút nhấn chống dỗi bởi Schmitter trigger, bình thường ở mức cao+ 18 led đỏ, 9 led xanh, 8 led 7 đoạn: dòng cho led 32 mA+ LCD 16x2+ Bộ dao động 50-MHz và 27- MHz , đầu vào xung clock ngoài SMA

Page 15: De 11_FPGA & DE2

DE2 Block Diagram

III. Cách hoạt động

Để sử dụng Board DE2 ta thực hiện các bước sau đây:1. Kết nối cáp USB từ máy tính đến bảng DE22. Kết nối cáp chuyển đổi 9V cho Board DE23. Kết nối nàn hình LCD với DE2 4. Kết nối tai nghe với DE25. Nhấn Power ON / OFF Bật DE2

6. Gạt công tắc qua RUN

Khi đó Board DE2 được khởi động và chúng ta sẽ nhìn thấy và nghe thấy: Tất cả các đèn LED dùng đang nhấp nháy. Tất cả các màn hình 7-SEG sáng từ 0-F.

Page 16: De 11_FPGA & DE2

LCD 16x2 hiển thị " Welcome to the Altera DE2 Board ". Màn hình LCD hiện thị như hình bên Chuyển SW17 vị trí OFF (xuống), bạn sẽ nghe thấy một âm thanh 1-KHz. Chuyển SW17 vị trí ON (lên) và kết nối đầu ra của một máy nghe nhạc MP3 với Board DE2, bạn sẽ nghe thấy âm nhạc từ tai nghe của bạn nếu bạn chơi nhạc từ máy nghe nhạc MP3 của bạn (hoặc máy PC / iPod).

3.1. Cấu hình FPGA trong chế độ JTGA

* Đảm bảo điện 9V được cung cấp cho Board DE2.* Kết nối cáp USB vào cổng USB Blaster của DE2.* Thiết lập Switch (SW19) để "RUN"* Bây giờ người dùng có thể sử dụng chế độ JTGA để cấu hình FPGA sử dụng tập tin SOF. Các kết nối được thể hiện trong hình 3.1.* Sau khi tải bitstream xong, FPGA bắt đầu chạy theo bistream.

3.2. Cấu hình FPGA trong chế độ AS

Bitstream có thể được tải về thông qua chế độ lập trình nối tiếp (chế độ AS). Theo mặc định , việc chuyển đổi được thiết lập vị trí của RUN cho chế độ JTAG để các tập tin bistream SOF được tải về trực tiếp đến chip FPGA . Chế độ AS, nơi POF bitstream được tải về trực tiếp đến dựa trên Flash-based, nên chỉ được sử dụng khi thiết kế được hoàn thành hoặc các thiết kế đã được kiểm tra không cần máy tính.

Cấu hình giống trong chế độ JTAG chỉ khác “Set the Switch (SW19) to “PROG” position.”

Lúc này người dùng có thể sử dụng chế độ AS để cấu hình FPGA sử dụng POF file.

Page 17: De 11_FPGA & DE2

3.3. Điều khiển DE2 sử dụng liên kết Terasic

Trong board DE2 có một liên kết đặc biệt từ MAX 3128 cho phép người sử dụng chân IO FPGA kiểm soát FPGA từ máy tính sử dụng tập lệnh.

DE2 Control Panel chia sẻ cùng một liên kết JTAG và Nios II IDE điều khiển các đường - người dùng có thể sử dụng chỉ một trong ba liên kết ở bất kỳ thời điểm nào.

3.4. Ngõ ra XSGA

ADV7123 từ các thiết bị Analog được sử dụng cho 10-bit D / A chuyển đổi cho tín hiệu video

Các tín hiệu chuyển đổi sau đó được kết nối với 15 chân D-Sub kết nối cho đầu ra VGA. Các mạch XSGA có thể hỗ trợ lên đến 1600x1200 @ 100Hz.

Page 18: De 11_FPGA & DE2

Thời gian thời gian cả hai trục ngang và dọc có thể được chia thành bốn khu vực:H-Sync (a), cổng sau (b), cổng trước (d), và khoảng thời gian hiển thị (c).

Page 19: De 11_FPGA & DE2

3.5. 24-bit Audio CODEC

WM8731 được sử dụng để thực hiện 24-bit Audio CODEC trên DE2. Chip cung cấp jack line-in, line out và microphone. Tần số lấy mẫu từ 8KHZ đến 96 Khz sử dụng bus I2C.

Page 20: De 11_FPGA & DE2
Page 21: De 11_FPGA & DE2

3.6. Sử dụng LED và các công tắc

Board DE2 cung cấp 4 nút nhấn, mỗi nút nhấn được xử lý chống dỗi bằng các Schmitt Trigger. Khi ta nhấn nút nhấn, chỉ 1 xung 0 được tác động.

Ngoài ra còn có 18 công tắc để set High/Low cho 18 GPIOs của chip Cyclonell FPGA. Board DE2 có 9 led xanh lá và 18 led đỏ. Dưới đây là sơ đồ nguyên lý:

Page 22: De 11_FPGA & DE2
Page 23: De 11_FPGA & DE2
Page 24: De 11_FPGA & DE2

3.7. Sử dụng led 7 đoạn và module LCD

Board DE2 có 8 led 7 đoạn và 1 module 16x2. Module LCD có xây dựng thư viện font bên trong, sử dụng để gửi tín hiệu điều khiển theo Sơ đồ nguyên lý và sơ đồ chân:

Page 25: De 11_FPGA & DE2
Page 26: De 11_FPGA & DE2
Page 27: De 11_FPGA & DE2
Page 28: De 11_FPGA & DE2

3.8. Sử dụng các Headers mở rộng

Board DE2 cung cấp cho người dùng 40 chân Headers mở rộng. Mỗi header cung cấp nguồn DC +5V (VCC5), DC + 3.3V (VCC33), 2 chân GND cho phép người dùng mở rộng thêm các thẻ con.

Page 29: De 11_FPGA & DE2
Page 30: De 11_FPGA & DE2
Page 31: De 11_FPGA & DE2

3.9. Sử dụng các Cổng nối tiếp (RS232)

Board DE2 sử dụng chuẩn 9 chân D-SUB kết nối cho RS-232 giao tiếp giữa máy tính và board. Chip truyền nhận dữ liệu là MAX232

Page 32: De 11_FPGA & DE2

3.10. Sử dụng các Cổng nối tiếp (PS/2)

Borard DE2 sử dụng chuẩn PS/2 giao tiếp cho bàn phím hoặc chuột PS/2

3.11. Sử dụng Fast Ethernet Netword Controller

Board DE2 sử dụng DM9000A cho giao diện Fast Ethernet. Các DM9000A là một mạch tích hợp đầy đủ và hiệu quả chi phí thấp, chip điều khiển Fast Ethernet với một giao diện xử lý chung, một <PHY 10/100, và 4K Dword SRAM. Nó được thiết kế với công suất thấp và quá trình xử lý cao hỗ trợ 3.3V với 5V IO. Hình 3.13 cho thấy sơ đồ thiết kế cho giao diện Fast Ethernet cho DE2.

Figure 3.13 Fast Ethernet Solution for DE2

Page 33: De 11_FPGA & DE2

3.12. Bộ giải mã TV

Board DE2 được trang bị ADV7181 như chip giải mã truyền hình của mình. các ADV7181bộ giải mã video được tích hợp tự động phát hiện và chuyển đổi một tiêu chuẩn tương tự.

Page 34: De 11_FPGA & DE2

Đài truyền hình tín hiệu baseband tương thích với các tiêu chuẩn trên toàn thế giới NTSC, PAL, và SECAM vào 4:02:02 video thành phần dữ liệu tương thích với 16-bit/8-bit CCIR601/CCIR656.

Giao diện đầu ra kỹ thuật số linh hoạt cao, cho phép hiệu suất giải mã video và chuyển đổi trong dòng khóa hệ thống đồng hồ trên. Điều này làm cho thiết bị lý tưởng thích hợp cho một loạt các ứng dụng với các đặc tính video analog đa dạng, bao gồm các nguồn băng từ, các nguồn phát sóng, an ninh / giám sát máy ảnh, và hệ thống chuyên nghiệp.Tất cả các thanh ghi trong bộ giải mã truyền hình này có thể được lập trình bởi I2C bus.

Figure 3.14 TV Decoder Circuits

Page 35: De 11_FPGA & DE2

3.13. Thực hiện một bộ mã hóa TV

Mặc dù Board DE2 không có bộ mã hóa truyền hình, ADV7123 cao cấp (10-bit ADC ba tốc độ cao) có thể được sử dụng để thực hiện một truyền hình chuyên nghiệp. Mã hóa với phần xử lý kỹ thuật số thực hiện bởi mã RTL trong FPGA.Hình 3.15 cho thấy sơ đồ khối của một bộ mã hóa truyền hình được thực hiện bằng cách sử dụng

ADV7123 và FPGA.

Page 36: De 11_FPGA & DE2
Page 37: De 11_FPGA & DE2

3.14. Sử dụng USB Host/Device

Board DE2 cung cấp cả USB Host và các thiết bị giao tiếp sử dụng chip điều khiển đơn Philips ISP 1362.

Các máy chủ và thiết bị điều khiển được tuân thủ với Universal Serial Bus thông số kỹ thuật Rev 2.0, dữ liệu hỗ trợ truyền ở tốc độ đầy đủ (12Mbit / s) và tốc độ thấp (1.5Mbit/s).

Page 38: De 11_FPGA & DE2

3.15. Sử dụng cổng hồng ngoại

Board DE2 cũng cung cấp một phương tiện truyền thông không dây đơn giản sử dụng một bộ thu phát hồng ngoại 115.2Kb / s Low Power

Page 39: De 11_FPGA & DE2

3.16. Sử dụng Using SDRAM/SRAM/Flash

Board DE2 cung cấp bộ nhớ 8Mbyte SDRAM, 512Kbyte SRAM và 1Mbyte Flash

Page 40: De 11_FPGA & DE2
Page 41: De 11_FPGA & DE2
Page 42: De 11_FPGA & DE2
Page 43: De 11_FPGA & DE2
Page 44: De 11_FPGA & DE2

IV. Một vài ứng dụng

- Ứng dụng làm TV box

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

Page 45: De 11_FPGA & DE2

- Máy hát Karaoke và máy chơi nahcj SD

Page 46: De 11_FPGA & DE2

V. Các phần mềm hỗ trợ

Máy tính phải được cài đặt Quartus II để sử dụng board DE2

5.1. Giới thiệu

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 của Altera, gồm các dòng APEX, Cyclone, FLEX, MAX, Stratix... Quartus cung cấp các khả năng thiết kế logic 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 Quartus 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 Design Files (.tdf), EDIF Input Files (.edf), VHDL Design Files (.vhd), and Verilog HDL Design Files (.v) để 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.

Page 47: De 11_FPGA & DE2

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

5.2. Thiết kế mạch.

Mạch điện trong Quartus có thể được thiết kế theo các cách sau:

5.2.1. Sơ đồ khối (Block Diagram).

Trong cách mô tả này, mạch điện tạo nên từ các cổng logic rời rạc, hay các hàm gồm nhiều cổng logic tích hợp (megafunctions). Để vẽ mạch theo cách này, nhấn New, chọn tab Device Design Files, chọn Block Diagram/ Schematic File, hiện:

Page 48: De 11_FPGA & DE2

Nhấn chọn Symbol Tool để hiện các cổng logic hay các hàm Megafuntions:

Khi đã chọn xong các cổng logic hay hàm thì dùng các công cụ nối dây để vẽ mạch hoàn

chỉnh.

5.2.2. Các file thiết kế.

Nhấn New, chọn tab Device Design Files, chọn Verilog HDL (hay VHDL hay AHDL). Với cách này, mạch điện được mô tả bởi các đoạn mã thể hiện các đầu vào đầu ra của các khối mạch cũng như cách xử sự của chúng. Trong luận án này, lấy ví dụ về thiết kế mạch đếm 4 bit dùng Verilog HDL file.

Tạo file mới:Từ giao diện của Altera Quartus chọn File/New Project Wizard. Hiện:

Page 49: De 11_FPGA & DE2

Nhấn Next/Next để hiện ra bảng Thiết lập linh kiện (Family & Device Settings), chọn linh kiện FPGA mà ta dùng, rồi nhấn Finish.

Lúc này, ta sẽ có được Project đầu tiên.

Thêm file Thiết kế vào Project Nhấn File/New .

Để tạo ra file thiết kế cho Dự án, ta có thể dùng sơ đồ khối (nhấn Block Diagram/Schematic File) hay dùng một trong các ngôn ngữ mô tả phần cứng như: AHDL, Verilog HDL hay VHDL hoặc có thể dùng kiểu EDIF. Ở đây, để chọn dùng ngôn ngữ Verilog HDL.

- Bộ đếm nhị phân 4 bit:

Page 50: De 11_FPGA & DE2

Một bộ đếm nhị phân 4 bít gồm 2 đầu vào: đầu vào xung đếm (clock), đầu vào xóa bộ đếm về 0 (clear) và 4 đầu ra nhị phân Q0, Q1, Q2, Q

Đoạn mã dùng Verilog để mô tả bộ đếm trên như sau:

//4-bit Binary counter module counter(Q , clock, clear); // I/O ports output [3:0] Q; input clock, clear; //output defined as register reg [3:0] Q; always @( posedge clear or negedge clock) begin if (clear) Q <= 4'd0; //Nonblocking assignments are recommended //for creating sequential logic such as flipflops else Q <= Q + 1;// Modulo 16 is not necessary because Q is a

Page 51: De 11_FPGA & DE2

// 4-bit value and wraps around. end endmodule

Dùng bộ soạn thảo sẵn có của Quartus để đưa đoạn mã này vào file Verilog vừa tạo ra, rồi Save với tên phù hợp.

Dùng đoạn mã mẫu của Verilog. Quartus đã tạo sẵn một số đoạn mã Verilog mẫu để hỗ trợ người thiết kế. Chọn Edit/Insert Template/ Verilog HDL. Có khá nhiều khối được mô tả sẵn bằng Verilog như: bộ đếm, ghi dịch, bộ cộng, các khối nhớ RAM, ROM... Đây cũng là cách để người dùng có thể học thêm về ngôn ngữ Verilog.

Biên dịch:Để biên dịch File nhấn Processing/Start Compilation. Quartus sẽ biên dịch file

dem4bit.v. Sau khi hoàn thành, hiện thông báo. Full Compilation was successful (Biên dịch thành công). Biên dịch gồm 4 quá trình thành phần:

Phân tích và tổng hợp (Analysis & Synthesis)

Page 52: De 11_FPGA & DE2

Quá trình này sẽ xem xét thiết kế logic để tạo ra cơ sở dữ liệu thiết kế, thực hiện tổng hợp logic và tối ưu hóa thiết kế.

Fitter(cân đối yêu cầu và tài nguyên)Quá trình này được xem như là đặt vị trí (cổng logic) và định tuyến (giữa chúng) -

Place and Router. Sử dụng cơ sở dữ liệu được tạo ra bởi quá trình phân tích và tổng hợp, công cụ Fitter sẽ cân đối giữa các yêu cầu về thời gian, logic của Dự án thiết kế với các tài nguyên khả dụng của linh kiện. Nó sẽ ấn định mỗi hàm logic đến một đơn vị logic mà tối ưu nhất về thời gian truyền và định tuyến cũng như lựa chọn đường nối phù hợp và gán chân linh kiện.

Assembler. (hợp dịch)Quá trình hợp dịch dựa vào kết quả của quá trình Fitter sẽ tạo ra hình ảnh của thiết kế,

có thể trong các dạng sau: Programmer Object Files (.pof), SRAM Object Files (.sof), Hexadecimal (Intel-Format) Output Files (.hexout), Tabular Text Files (.ttf), and Raw Binary Files (.rbf).

Classic Timing Analyzer (Phân tích thời gian).Phân tích thời gian cho phép xác định xung nhịp, các yêu cầu về thời gian vào/ra (I/O)

nhằm thỏa mãn mục đích định thời. Quá trình này sẽ xác định tính năng tốc độ cho toàn bộ Dự án, cho từng khối thiết kế và cho việc truyền, nhận của các nút và chân linh kiện.

Page 53: De 11_FPGA & DE2

5.3. Cách thức mô phỏng hoạt động trong Quartus.

Công cụ Simulator tích hợp sẵn trong Quartus II cho phép mô phỏng hoạt động của Dự án (Project). Trước khi mô phỏng cần tạo ra danh sách đường kết nối(netlist) bởi việc nhấn Processing/Generate Functional Simulation Netlist. Để có thể quan sát được dạng sóng mô phỏng, cần tạo ra file khác lưu trữ dạng sóng, bởi việc chọn File/New/Other Files/Vector Waveform File.

Để thêm các tín hiệu vào/ra cho Vector Waveform File, chọn Edit/ Insert Node or Bus, nhấn Node Finder.

Hình vẽ. Giao diện Node FinderTrong danh sách trên, để chọn 2 đầu vào Clear, Clock

và đầu ra Q, nháy đúp vào các tín hiệu đó. Các tín hiệu này sẽ hiện ra trong danh sách Selected Nodes. Nhấn OK.

Để án định dạng sóng cho 2 tín hiệu vào là Clock và Clear, đánh dấu chọn vào dạng sóng, trên thanh WaveForm Editor chọn Overwrite Clock, hiện :

Time Range chính là khoảng thời gian muốn quan sát dạng sóng. Chu kỳ của tín hiệu cho trong Period, độ rộng xung trong Duty Cycle.Hình vẽ. Giao diện Waveform File.

Có 2 kiểu mô phỏng trong Quartus là Functional và Timing. Với kiểu Functional, chỉ để kiểm tra hoạt động thuần túy logic, còn với mô phỏng Timing, kiểm tra hoạt động logic có tính đến yếu tố thời gian, như: trễ, quá độ...

Page 54: De 11_FPGA & DE2

Để chạy mô phỏng, chọn Processing/Start Simulation.