1. Trang chủ
  2. » Công Nghệ Thông Tin

Tìm hiểu vi mạch dùng cấu trúc mảng phần tử logic FPGA

32 429 0

Đ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 32
Dung lượng 656 KB

Nội dung

FPGA là viết tắt của thuật ngữ tiếng anh “Field programmable Gate Array”,là vi mạch dùng cấu trúc mảng phần tử logic mà người dùng có thể lập trình được. Vi mạch FPGA được cấu thành từ các bộ phận:Các khối logic cơ bản lập trình được (logic block) Hệ thống mạch liên kết lập trình được Khối vàora (IO Pads) Phần tử thiết kế sẵn khác như DSP slice, RAM, ROM, nhân vi xử lý...FPGA cũng được xem như một loại vi mạch bán dẫn chuyên dụng ASIC, nhưng nếu so sánh FPGA với những ASIC đặc chế hoàn toàn hay ASIC thiết kế trên thư viện logic thì FPGA không đạt đựợc mức độ tối ưu như những loại này, và hạn chế trong khả năng thực hiện những tác vụ đặc biệt phức tạp, tuy vậy FPGA ưu việt hơn ở chỗ có thể tái cấu trúc lại khi đang sử dụng, công đoạn thiết kế đơn giản do vậy chi phí giảm, rút ngắn thời gian đưa sản phẩm vào sử dụng

Trang 1

Phần I: CƠ SỞ LÝ THUYẾT

Chương 1: Dẫn nhập

1.1 Lý do chọn đề tài

1.2 Ý nghĩa khoa học và thực tiễn của đề tài

Chương 2 : Tìm hiểu về FPGA & kit DE2

2.1 FPGA

2.1.1 FPGA là gì ?

2.1.2 Lịch sữ của FPGA

2.1.3 Kiến trúc của FPGA

3.1.1.1 Khối logic

3.1.1.2 Hệ thống mạch liên kết

3.1.1.3 Các phần tử tích hợp sẵn

3.1.4 Ứng dụng

3.1.5 Ý nghĩa và vai trò của FPGA

4.2 Kit DE2

4.2.1 Giới thiệu

4.2.2 Thành phần

4.2.3 Một vài ứng dụng

Chương 3: Giới thiệu về quartus II

3.1 Các bước thực hiện một thiết kế

3.2 Giới thiệu

3.3 Cách nạp chương trình cho Quartus II

3.3.1 Tạo 1 project

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

3.3.3 Tạo file mô phỏng và mô phỏng

3.3.4 Cấu hình chân và nạp lên board

Chương 4: Giới thiệu VERILOG

4.1 Verilog là gì ?

4.2 Các cổng cơ bản trong Verilog

4.2 Các dạng dữ liệu

4.3 Toán tử, toán hạng

4.4 Module

4.5 Khuôn mẫu hành vi

4.6 Khối always và khối initial

Trang 2

4.7 Chức năng linh kiện

Phần II: THIẾT KẾ

Phần III: KẾT LUẬN

Trang 3

Năm 1971 với sự ra đời của vi xử lý, đã làm cho kỹ thuật số phát triển nhảyvọt đồng thời những ứng dụng của nó trong cuộc sống cũng ngày càng đa dạnghơn Sự ra đời của các vi mạch lập trình như vi điều khiển, vi xử lý, vi mạch số lậptrình…đã tạo ra một bước ngoặc trong lĩnh vực xử lý, điều khiển Chúng làm cholĩnh vực xử lý, điều khiểm trở nên tự động hóa và ngày càng hiện đại hơn Trongcông nghiệp, các thiết bị điều khiểm bằng cơ khí thô sơ có độ chính xác và an toànkém được thế bằng những thiết bị điều khiển tự động với độ chính xác cao hơn, antoàn hơn Nhờ đó năng suất lao động không ngừng được nâng cao Trong đời sốnghằng ngày, vi xử lý được ứng dụng rất nhiều vào các thiết bị dân dụng như máy

Trang 4

tính, ti vi, máy điều hòa nhiệt độ, lò vi ba… qua đó làm cho các thiết bị trở nên đachức năng hơn, dễ dàng sữ dụng hơn, tiện nghi hơn.

Với những ứng dụng rộng rãi như trên, thiết nghĩ việc tìm hiểu vi xử lý, viđiều khiển và những ứng dụng của nó là rất cần thiết Trong khuôn khổ hạn hẹpcủa đề tài, cũng như kiến thức và khả năng, tôi chỉ tìm hiểu một ứng dụng nhỏ của

vi xử lý là thiết kế một bộ vi xử lý đơn giản

1.2 Ý nghĩa khoa học và thực tiễn của đề tài

1.2.1 Ý nghĩa khoa học

Qua đề tài này tôi nắm được các vấn đề sau:

- Hiểu được phần nào công việc thiết kế một hệ thống số

- Nắm được cách thiết kế hệ tống số với Altera FPGA

- Hiểu thêm về kit DE2 của Altera

1.4.1 Ý nghĩa thực tiễn

Bộ xử lý có khả năng thực hiện các chỉ dẫn sữ dụng bộ nhớ và các thiết bịmáy tính

1.5 Tình hình nghiên cứu

Hiện nay trong thực tế các bộ vi xử lý được rất nhiều người qua tâm và thiết

kế Đặc biệt nó được thiết kế sữ dụng cho các CPU của máy tính

1.6 Phương pháp nghiên cứu

Sữ dụng các phương pháp và phương tiện nghiên cứu để thu thập tài liệu về

đề tài đã xác định Dữ liệu thu thập được sẽ là chất liệu để xây dựng nên đề tài

Trang 5

Điều cần thiết là thu thập tài liệu một cách đầy đủ, chính xác và phù hợp với đề tàiđang thực hiện.

Ở đây tôi sữ dụng phương pháp tham khảo tài liệu là chủ yếu Việc thamkhảo các tài liệu nhằm gom góp lại các kiến thức cần thiết Sau đó các tài liệu phảiđược chọn lọc kỹ càng trên cơ sở kế thừa những nền tảng đồng thời cần khắc phụcnhững mặt hạn chế Đa phần các tài liệu tham khảo là các sách chuyên nghành vànhững luận văn tốt nghiệp của các khóa trước

Việc xây dựng đề tài được thực hiện theo đúng cấu trúc của một luận văn donhà trường quy định nhằm đảm bảo tính sư phạm và phù hợp với kế hoạch đào tạocủa nhà trường

Trang 6

CHƯƠNG 2 TÌM HIỂU VỀ FPGA & KIT DE2

2.1 FPGA

2.2.2 FPGA là gì ?

FPGA là viết tắt của thuật ngữ tiếng anh “Field programmable Gate Array”,

là vi mạch dùng cấu trúc mảng phần tử logic mà người dùng có thể lập trình được

Vi mạch FPGA được cấu thành từ các bộ phận:

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

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

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

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

FPGA cũng được xem như một loại vi mạch bán dẫn chuyên dụng ASIC,nhưng nếu so sánh FPGA với những ASIC đặc chế hoàn toàn hay ASIC thiết kếtrên thư viện logic thì FPGA không đạt đựợc mức độ tối ưu như những loại này, vàhạn chế trong khả năng thực hiện những tác vụ đặc biệt phức tạp, tuy vậy FPGA ưuviệt hơn ở chỗ có thể tái cấu trúc lại khi đang sử dụng, công đoạn thiết kế đơn giản

do vậy chi phí giảm, rút ngắn thời gian đưa sản phẩm vào sử dụng

Còn nếu so sánh với các dạng vi mạch bán dẫn lập trình được dùng cấu trúcmảng phần tử logic như PLA, PAL, CPLD thì FPGA ưu việt hơn các điểm: tác vụtái lập trình của FPGA thực hiện đơn giản hơn; khả năng lập trình linh động hơn;

và khác biệt quan trọng nhất là kiến trúc của FPGA cho phép nó có khả năng chứakhối lượng lớn cổng logic (logic gate), so với các vi mạch bán dẫn lập trình được

có trước nó

Thiết kế hay lập trình cho FPGA được thực hiện chủ yếu bằng các ngôn ngữ

mô tả phần cứng HDL như VHDL, Verilog, AHDL, các hãng sản xuất FPGA lớn

Trang 7

như Xilinx, Altera thường cung cấp các gói phần mềm và thiết bị phụ trợ cho quátrình thiết kế, cũng có một số các hãng thứ ba cung cấp các gói phần mềm kiểu nàynhư Synopsys, Synplify Các gói phần mềm này có khả năng thực hiện tất cả cácbước của toàn bộ quy trình thiết kế IC chuẩn với đầu vào là mã thiết kế trên HDL(còn gọi là mã RTL).

2.2.3 Lịch sữ của FPGA

FPGA được thiết kế đầu tiên bởi Ross Freeman, người sáng lập công tyXilinx vào năm 1984, kiến trúc mới của FPGA cho phép tích hợp số lượng tươngđối lớn các phần tử bán dẫn vào 1 vi mạch so với kiến trúc trước đó là CPLD.FPGA có khả năng chứa tới từ 100.000 đến hàng vài tỷ cổng logic, trong khiCPLD chỉ chứa từ 10.000 đến 100.000 cổng logic; con số này đối với PAL, PLAcòn thấp hơn nữa chỉ đạt vài nghìn đến 10.000

CPLD được cấu trúc từ số lượng nhất định các khối SPLD (Simpleprogramable devices, thuật ngữ chung chỉ PAL, PLA) SPLD thường là một mảnglogic AND/OR lập trình được có kích thước xác định và chứa một số lượng hạnchế các phần tử nhớ đồng bộ (clocked register) Cấu trúc này hạn chế khả năngthực hiện những hàm phức tạp và thông thường hiệu suất làm việc của vi mạch phụthuộc vào cấu trúc cụ thể của vi mạch hơn là vào yêu cầu bài toán

Kiến trúc của FPGA là kiến trúc mảng các khối logic, khối logic, nhỏ hơnnhiều nếu đem so sánh với một khối SPLD, ưu điểm này giúp FPGA có thể chứanhiều hơn các phần tử logic và phát huy tối đa khả năng lập trình của các phần tửlogic và hệ thống mạch kết nối, để đạt được mục đích này thì kiến trúc của FPGAphức tạp hơn nhiều so với CPLD

Trang 8

Một điểm khác biệt với CPLD là trong những FPGA hiện đại được tích hợpnhiều những bộ logic số học đã sơ bộ tối ưu hóa, hỗ trợ RAM, ROM, tốc độ cao,hay các bộ nhân cộng (multication and accumulation, MAC), thuật ngữ tiếng Anh

là DSP slice dùng cho những ứng dụng xử lý tín hiệu số DSP

Ngoài khả năng tái cấu trúc vi mạch toàn cục, một số FPGA hiện đại còn hỗtrợ tái cấu trúc cục bộ, tức là khả năng tái cấu trúc một bộ phận riêng lẻ trong khivẫn đảm bảo hoạt động bình thường cho các bộ phận khác

2.2.4 Kiến trúc của FPGA

Cấu trúc tổng thể của một FPGA được minh họa ở hình sau

Hình 3.1 Kiến trúc tổng quan FPGA

Trang 9

2.2.4.1 Khối logic

Hình 3.2 Khối logic FPGA

Phần tử chính của FPGA là các khối logic (logic block) Khối logic được cấuthành từ LUT và một phần tử nhớ đồng bộ flip-flop, LUT (Look up table) là khốilogic có thể thực hiện bất kì hàm logic nào từ 4 đầu vào, kêt quả của hàm này tùyvào mục đích mà gửi ra ngoài khối logic trực tiếp hay thông qua phần tử nhớ flip-flop

Trong tài liệu hướng dẫn của các dòng FPGA của Xilinx còn sử dụng kháiniệm SLICE, 1 Slice tạo thành từ gồm 4 khối logic, số lượng các Slices thay đổi từvài nghìn đến vài chục nghìn tùy theo loại FPGA

Nếu nhìn cấu trúc tổng thể của mảng LUT thì ngoài 4 đầu vào kể trên còn hỗtrợ thêm 2 đầu vào bổ sung từ các khối logic phân bố trước và sau nó nâng tổng sốđầu vào của LUT lên 6 chân Cấu trúc này là nhằm tăng tốc các bộ số học logic

2.2.4.2 Hệ thống mạch liên kết

Mạng liên kết trong FPGA được cấu thành từ các đường kết nối theo haiphương ngang và đứng, tùy theo từng loại FPGA mà các đường kết nối được chiathành các nhóm khác nhau, ví dụ trong XC4000 của Xilinx có 3 loại kết nối: ngắn,

Trang 10

dài và rất dài Các đường kết nối được nối với nhau thông qua các khối chuyểnmạch lập trình được (programable switch), trong một khối chuyển mạch chứa một

số lượng nút chuyển lập trình được đảm bảo cho các dạng liên kết phức tạp khácnhau

2.2.4.3 Các phần tử tích hợp sẵn

Ngoài các khối logic tùy theo các loại FPGA khác nhau mà có các phần tửtích hợp thêm khác nhau, ví dụ để thiết kế những ứng dụng SoC, trong dòng Virtex4,5 của Xilinx có chứa nhân xử lý PowerPC, hay trong Atmel FPSLIC tích hợpnhân ARV…, hay cho những ứng dụng xử lý tín hiệu số DSP trong FPGA đượctích hợp các DSP Slide là bộ nhân cộng tốc độ cao, thực hiện hàm A*B+C, ví dụdòng Virtex của Xilinx chứa từ vài chục đến hàng trăm DSP slices với A, B, C 18-bit

2.2.5 Ứng dụng

Ứng dụng của FPGA bao gồm: xử lý tín hiệu số DSP, các hệ thống hàngkhông, vũ trụ, quốc phòng, tiền thiết kế mẫu ASIC (ASIC prototyping), các hệthống điều khiển trực quan, phân tích nhận dạng ảnh, nhận dạng tiếng nói, mật mãhọc, mô hình phần cứng máy tính

Do tính linh động cao trong quá trình thiết kế cho phép FPGA giải quyết lớpnhững bài toán phức tạp mà trước kia chỉ thực hiện nhờ phần mềm máy tính, ngoài

ra nhờ mật độ cổng logic lớn FPGA được ứng dụng cho những bài toán đòi hỏikhối lượng tính toán lớn và dùng trong các hệ thống làm việc theo thời gian thực

2.2.5 Ý nghĩa và vai trò của FPGA

Trang 11

Với khả năng tái cấu hình mạnh, FPGA đóng một vai trò vô cùng to lớntrong việc giảm giá thành và thời gian chế tạo ASIC bằng cách sử dụng FPGAtrong quá trình thiết kế luận lý trước khi đưa ra sản xuất các ASIC mẫu Quy trìnhsản xuất Chip ASIC bằng cách này gọi là fabless rất phổ biến hiện nay trên thếgiới, giúp các công ty nhỏ và vừa và đặc biệt là các nước yếu về công nghệ nhưViệt nam tham gia vào thế giới của IC.

FPGA rất hay được sử dụng trong các hệ thống SDR (Software DefinedRadio) vì khả năng tái cấu hình giúp các chức năng của thiết bị có thể thay đổinhanh chống

2.3 Kit DE2

Kit DE2 cung cấp cho người sử dụng nhiều đặc điểm linh hoạt để học tập và

có thể phát triển nhiều dự án đa phương tiện khác nhau Chúng được thiết kế khôngnhững phù hợp cho môi trường họp tập ở các trường đại học và cao đẳng mà cònphù hợp với cả trong môi trường làm việc công nghiệp Các khối thiết kế ứng dụngtrên KIT được chọn lọc dựa trên những thiết kế phổ biến nhất trong các sản phẩm

đa phương tiện như DVD, VCD, MP3 player và nhiều ứng dụng điều khiển khác Kit DE2 cho phép người dùng nhanh chóng thấu hiểu được những thủ thuật đểthiết kế các dự án công nghiệp Ngoài ra nó còn cung cấp một nền tảng kiến thức

cơ bản cho người dùng đam mê trong lĩnh vực thiết kế vi mạch như phát triểnnhững hệ thống kỹ thuật số tinh vi

2.3.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áclĩnh vực luận lý số học (digital logic), tổ chức máy tính (computer organization) vàFPGA

Trang 12

Hình 3.3 Board DE2

2.3.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áttriển, dưới đây là thông tin chi tiết của một board DE2:

Trang 13

Hình 3.4 Thông tin chi tiết của board DE2

 FPGA:

- Vi mạch FPGA Altera Cyclone II 2C35

- Vi mạch Altera Serial Configuration – EPCS16

- 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

Trang 14

- 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ộ dao động 50-MHz và 27-MHz cho đồng hồ nguồn

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

 Ứng dụng làm TV box

Trang 15

Hình 3.5 TV box

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

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

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

Hình 3.7 Máy hát karaoke và máy chơi nhạc từ card SD

Trang 16

CHƯƠNG 3 GIỚI THIỆU VỀ QUARTUS II

3.1 Các bước thực hiện một thiết kế

Công cụ CAD (Computer Aided Design) tạo nên sự thuận lợi khi thực hiện một mạch logic mong muốn bằng cách sử dụng các thiết bị logic lập trình được, như chip FPGA

Hình 4.1 Quy trình thiết kế CAD thông dụng

Trang 17

- Design Entry (nhập thiết kế): Mạch logic mong muốn được mô tả bằng ngônngữ mô tả phần cứng như VHDL/Verilog hoặc bằng sơ đồ mạch.

- Synthesis (tổng hợp): Công cụ thực hiện chuyển các biểu diễn mạch điện ởtrên thành dạng tệp netlist, trong đó biểu diễn các thành phần logic cần chomạch cùng các kết nối giữa các thành phần logic

- Functional Simulation (mô phỏng chức năng): Mạch đã tổng hợp được kiểmtra để phân tích tính chính xác về chức năng; trình mô phỏng không quan tâmđến vấn đề thời gian

- Fitting: Công cụ CAD Fitter xác định vị trí đặt các thành phần logic đã đưa

ra trong tệp netlist vào trong FPGA, đồng thời xác định các đường đi dâytrong FPGA để kết nối các thành phần logic

- Timinh Analysis (phân tích thời gian): Trễ đường truyền theo các đường khácnhau trong mạch đã được fit ở trên được phân tích để xác định khả năng hoạtđộng mong muốn của mạch

- Timing Silmulation (mô phỏng thời gian): Mạch đã được fit được kiểm tra đểphân tích cả về chức năng và cả về mặt thời gian

- Programming and configuration (lập trình và cấu hình): Mạch logic mongmuốn được triển khai trên FPGA/CPLD thực tế thông qua chương trình nạp

và cấu hình cho FPGA/CPLD

mô phỏng (simulation), và lập trình lên thiết bị (DE2)

3.3 Cách nạp chương trình cho Quartus II

Trang 18

3.3.1 Tạo 1 project

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

Bước 2 Ta chọn thư mục để chứa project và đặt tên cho project, xong chọn Next

xem hình bên dưới

Hình 4.2 Hộp hội thoại tạo mới project

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

Trang 19

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

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

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

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

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

loại file VHDL

Trang 20

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

Bước 3 Nhập mã VHDL vào trong cửa sổ soạn thảo văn bản.

Bước 4 Chọn mục File > Save As để mở cửa sổ Save As Trong phần Save as type chọn VHDL File Trong phần File name nhập test Nhấp chọn Save để đưa tệp này

vào trong thư mục của dự án

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

Trang 21

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

Bước 6 Chọn OK

3.3.3 Tạo file mô phỏng (simulate) và bắt đầu simulate

Bước 1 Vào Menu > file chọn New, sau đó chọn Vector Waveform File

Bước 2: Nhấp chọn Edit > End Time và nhập vào 200 ns trong hộp thoại bung ra, điều này cho phép thời gian mô phỏng từ 0 dến 200 ns Nhấp chọn View > Fit in

Window để nhìn thấy toàn bộ phần mô phỏng từ 0 đến 200 ns.

Bước 3: Nhấp chọn Edit > Insert > Insert Node or Bus để mở cửa sổ nhập các đầu vào ra Nhấp nút Node Finder để mở cửa sổ như trong hình 4.5.

Ngày đăng: 28/08/2017, 19:46

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w