• Nenhum resultado encontrado

đồ án hoàn chỉnh(MR DUY)

N/A
N/A
Protected

Academic year: 2021

Share "đồ án hoàn chỉnh(MR DUY)"

Copied!
34
0
0

Texto

(1)

BÁO CÁO TIẾN TRÌNH ĐỒ ÁN GIỮA KÌ

MỤC LỤC :

Giới thiệu

Trang bìa

Phiếu giao đề tài đồ án

Bản nhận xét của giáo viên hướng dẫn Bản nhận xét của giáo viên phản biện Lời cảm ơn

Muc lục

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

(2)

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... 4.7 Chức năng linh kiện... Phần II: THIẾT KẾ...

(3)

DANH SÁCH HÌNH

Hình 3.1 Kiến trúc tổng quan FPGA... Hình 3.2 Khối logic FPGA... Hình 3.3 Board DE2... Hình 3.4 Thông tin chi tiết của board DE2... Hình 3.5 TV board... Hình 3.6 Chương trình vẽ (paintbrush)... Hình 3.7 Máy hát karaoke và máy chơi nhạc từ card SD... Hình 4.1 Quy trình thiết kế CAD thông dụng... Hình 4.2 Hộp hội thoại tạo mới project... Hình 4.3 Hộp thoại lựa chọn chip... Hình 4.4 Lựa chọn loại file cần tạo... Hình 4.5 Biên dịch chương trình... Hình 4.6 Cửa sổ chọn các tín hiệu vào ra đưa vào dạng sóng mô phỏng... Hình 4.7 Thiết lập giá trị cho các tín hiệu... Hình 4.8 Dạng sóng kiểm tra trước khi mô phỏng... Hình 4.9 Chọn chế độ mô phỏng chức năng cho trình mô phỏng... Hình 4.10 Dạng sóng mô phỏng chức năng... Hình 4.12 Danh sách các chân có thể được gán... Hình 4.13 Giao diện của trình nạp và cấu hình FPGA... Hình 5.1 Sơ đồ mạch giải mã... Hình 5.2 Mạch giải mã 3 sang 8... Hình 5.3 IC74LS138... Hình 5.4 Mạch giải mã dùng IC74LS138... Hình 5.5 Các dạng sóng vào ra của mạch giải mã 3 sang 8... Hình 5.6 Sơ đồ bộ chọn kênh... Hình 5.7 Mạch chọn kênh 2 ngõ vào... Hình 5.8 Mạch chọn kênh 4 ngõ vào... Hình 5.9 Mạch chọn kênh dùng IC74LS151... Hình 5.10 Các dạng sóng của mạch chọn kênh 4 vào... Hình 5.11 Mạch cộng bán phần... Hình 5.12 Mạch cộng toàn phần... Hình 5.13 IC cộng toàn phần... Hình 5.14 Mạch cộng nhìn trước số nhớ... Hình 5.15 Mạch cộng BCD... Hình 5.16 Các dạng sóng của mạch cộng bán phần...

(4)

Hình 5.17 Mô hình đếm lên... Hình 5.18 Mô hình đếm xuống... Hình 5.19 Bộ đếm lên nhị phân 4 bit dùng JK-FF... Hình 5.20 Các dạng sóng ngõ vào ra của mạch đếm... Hình 6.1 Sơ đồ khối một máy tính cổ điển... Hình 6.2 Sơ đồ khối của vi xử lý... Hình 6.3 Sơ đồ khối hệ vi xử lý... Hình 6.4 Các tín hiệu cơ bản trong μP... Hình 6.5 Định thì bus cơ bản... Hình 6.6 Giao tiếp bus cơ bản... Hình 6.7 Giải mã địa chỉ dùng 74LS138... Hình 6.8 74LS138 mắc cascaded (liên tầng)... Hình 6.9 Giải mã dùng bộ so sánh... Hình 6.10 Định thì đọc bộ nhớ... Hình 6.11 Định thì ghi bộ nhớ...

(5)

PHẦN I

CƠ SỞ LÝ THUYẾT

Phần I CƠ SỞ LÝ THUYẾT CHƯƠNG 1 DẪN NHẬP

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

Gần nữa thế kỹ qua cùng với sự phát triển không ngừng của khoa học kỹ thuật. Lĩnh vực điện tử cũng đã có những tiến bộ vượt bậc góp phần không nhỏ vào phục vụ mọi mặt của đời sống trong công nghiệp cũng như trong dân dụng. Sự phát triển của công nghệ mạch tích hợp (chế tạo các IC) cùng với sự ra đời của kỹ thuật số càng làm tăng tầm ảnh hưởng của kỹ thuật điện tử.

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ảy vọ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ạng hơ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ập trì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 cho lĩ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. Trong cô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àn ké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, an toàn hơn. Nhờ đó năng suất lao động không ngừng được nâng cao. Trong đời sống hằ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

(6)

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 đa chứ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ẹp củ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.

(7)

Đ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 tham khả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ục nhữ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 do nhà 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ạo của nhà trường.

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

(8)

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

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úc mả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ứa khố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 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ày như Synopsys, Synplify... Các gói phần mềm này có khả năng thực hiện tất cả các

(9)

bướ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 ty Xilinx 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 khi CPLD chỉ chứa từ 10.000 đến 100.000 cổng logic; con số này đối với PAL, PLA cò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 (Simple programable devices, thuật ngữ chung chỉ PAL, PLA). SPLD thường là một mảng logic AND/OR lập trình được có kích thước xác định và chứa một số lượng hạn chế các phần tử nhớ đồng bộ (clocked register). Cấu trúc này hạn chế khả năng thự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ơn nhiề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ứa nhiề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 FPGA phức tạp hơn nhiều so với CPLD.

Một điểm khác biệt với CPLD là trong những FPGA hiện đại được tích hợp nhiề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.

(10)

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 khi vẫ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 2.2.4.1 Khối logic

(11)

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ấu thành từ LUT và một phần tử nhớ đồng bộ flip-flop, LUT (Look up table) là khối logic 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ùy và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ái niệ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.2Hệ 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 hai phương ngang và đứng, tùy theo từng loại FPGA mà các đường kết nối được chia thà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, 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ển mạch lập trình được (programable switch), trong một khối chuyển mạch chứa một

(12)

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ác nhau.

2.2.4.3Cá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 Virtex 4,5 của Xilinx có chứa nhân xử lý PowerPC, hay trong Atmel FPSLIC tích hợp nhân ARV…, hay cho những ứng dụng xử lý tín hiệu số DSP trong FPGA được tí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àng khô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ớp nhữ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ỏi khố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

Với khả năng tái cấu hình mạnh, FPGA đóng một vai trò vô cùng to lớn trong việc giảm giá thành và thời gian chế tạo ASIC bằng cách sử dụng FPGA trong 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ình

(13)

sả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 Defined Radio) 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 đổi nhanh 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ông nhữ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òn phù 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ụng trê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ển nhữ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ác lĩnh vực luận lý số học (digital logic), tổ chức máy tính (computer organization) và FPGA.

(14)

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

(15)

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.

 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 dùng; 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.

(16)

- 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. 2.3.3 Một vài ứng dụng của board DE2

(17)

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

(18)

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.

(19)

- Design Entry (nhập thiết kế): Mạch logic mong muốn được mô tả bằng ngôn ngữ 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 cho mạ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ểm tra để 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ây trong 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ác nhau 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 mong muố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.

3.2 Giới thiệu

Bộ phần mềm thiết kế đi kèm với board DE2 bao gồm 2 đĩa: Quartus II và Nios II 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).

(20)

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

(21)

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

(22)

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.

(23)

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.

(24)

Hình 4.6 Cửa sổ chọn các tín hiệu vào ra đưa vào dạng sóng mô phỏng  Để hiển thị ra tất cả các chân :

Chọn Pins: all.

Sau đó chọn nút List để hiện tất cả các chân  Nút > : Chọn từng tín hiệu

 Nút >> : Chọn tất cả các tín hiệu  Nút < : Bỏ từng tín hiệu

 Nút << : Bỏ tất cả các tín hiệu

Nhấn OK để hoàn tất việc chọn tín hiệu Bước 4. Thiết lập giá trị các tín hiệu

 Ta rê chuột để tô khối chúng lại

(25)

Hình 4.7 Thiết lập giá trị cho các tín hiệu Bước 5. Sau khi thiết lập giá trị của các chân xong ta Save lại. Bước 6: Thực hiện mô phỏng

 Mô phỏng chức năng

Nhấp chọn Assignments > Settings. Bên trái của cửa sổ Settings nhấp chọn Simulator Settings để có cửa sổ như trong Hình 4.7, chọn Functional trong mục chọn chế độ mô phỏng, và nhấp OK.

(26)

Hình 4.9 Chọn chế độ mô phỏng chức năng cho trình mô phỏng

Nhấp chọn Processing > Generate Functional Simulation Netlist. Sau đó nhấp chọn Processing > Start Simulation để thực hiện mô phỏng. Kiểm tra dạng sóng đầu ra có đúng theo chức năng của mạch hay không.

Hình 4.10 Dạng sóng mô phỏng chức năng  Mô phỏng thời gian

Nhấp chọn Assignments > Settings. Bên trái của cửa sổ Settings nhấp chọn Simulator Settings để có cửa sổ như trong Hình 4.8, chọn Timing trong mục chọn chế độ mô phỏng, và nhấp OK.

(27)

Sau đó thực hiện mô phỏng theo cách vừa thực hiện như trên, quan sát dạng sóng đầu ra.

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

Để cấu hình chân bạn tiến hành lần lượt theo các bước sau:

Bước 1. Chọn Assignments-> Pins cửa sổ lựa chọn chân sẽ xuất hiện như hình:

Hình 4.11 Cửa sổ gán chân

Bước 2. Nhấp đúp vào ô <<new>> ở cột To như trên hình. Một menu chứa danh sách các chân cần gán sẽ được hiện ra. Bạn chọn chân cần gán (ví dụ ở đây chọn tín hiệu cần gán x1).

Bước 3. Tiếp theo nhấn vào ô <<new>> ở cột Location. Một menu chứa danh sách các chân trong FPGA sẽ được hiện ra bạn chọn chân của FPGA sẽ nối với tín hiệu (ví dụ ở đây chọn chân PIN_N25).

(28)

Hình 4.12 Danh sách các chân có thể được gán Bước 4. Lặp lại quá trình này cho đến khi gán hết các chân linh kiện.

Bước 5. Để lưu lại file cấu hình chân bạn chọn File -> Export, sau đó nhập tên file cân lưu.

Nạp lên board

Bước 1: Nhấp chọn Tools > Programmer để có cửa sổ như trong Hình 4.12. Đánh dấu vào tùy chọn Program/Configue để cho phép nạp tệp cấu hình light.sof.

(29)

Hình 4.13 Giao diện của trình nạp và cấu hình FPGA

Bước 2: Nhấp nút Start bên trái cửa sổ để nạp tệp cấu hình này xuống FPGA. Sau khi nạp thành công xuống FPGA, hãy kiểm tra mạch điện này thực hiện trên FPGA có chạy đúng theo chức nămg mong muốn hay không bằng cách dùng các chuyển mạch SW để nhập đầu vào rồi quan sát đầu ra hiển thị trên LED.

(30)

CHƯƠNG 4 TÌM HIỂU VERILOG / VHDL I. Tìm hiểu về Verilog HDL/VHDL

1. Verilog HDL laø moät trong hai ngoân ngöõ moâ phoûng phaàn cöùng thoâng duïng nhaát,ñöôïc duøng trong thieát keá IC, ngoân ngöõ kia laø VHDL.

HDL cho pheùp moâ phoûng caùc thieát keá deã daøng, söûa chöõa loãi, hoaëc thöïc nghieäm, baèng nhöõng caáu truùc khaùc nhau. Caùc thieát keá ñöôïc moâ taû trong HDL laø nhöõng kyõ, thuaät ñoäc laäp, deã thieát keá, deã thaùo gôõ, vaø thöôøng deå ñoïc hôn ôû daïng bieåu ñoà, ñaëc bieät laø ôû caùc maïch ñieän lôùn.

Verilog thường được mô tả thiết kế ở bốn dạng:

• Thuaät toaùn (moät soá leänh gioáng ngoân ngöõ C nhö: if, case, for,while…).

• Chuyeån ñoåi thanh ghi (keát noái baèng caùc bieåu thöùc Boolean).

• Caùc coång keát noái( coång: OR, AND, NOT…).

• Chuyeån maïch (BJT, MOSFET).

Ngoân ngöõ naøy cuõng chæ roõ caùch thöùc keát noái, ñieàu khieån vaøo/ra trong moâ phoûng.

Cấu trúc chương trình dung ngôn ngữ Verilog: // Khai baùo module

Module teân chöông trình (teân bieán I/O); // teân chöông trình truøng teân file.v. Input [msb:lsb] bieán;

Output [msb:lsb] bieán; Reg [msb:lsb] bieán reg; Wire [msb: lsb] bieán wire;

// Khai baùo khoái always, hoaëc khoái initial. … caùc leänh …

Endmodule

2. Nhöõng taäp tin vaên baûn nguoàn Verilog bao goàm nhöõng bieåu hieän thuoäc tính töø vöïng sau ñaây:

(31)

a. Khoảng trắng:

Khoaûng traéng ngaên nhöõng töø vaø coù theå chöùa khoaûng caùch, khoaûng daøi, doøng môùivaø daïng ñöôøng daãn. Do ñoù, moät leänh coù theå ñöa ra nhieàu doøng phöùc taïp hôn maø khoâng coù nhöõng ñaëc tính ñaëc bieät.

b. Chú giải:

Nhöõng chuù giaûi coù theå chæ ñònh baèng hai caùch: ( gioáng trong C/C++).Chuù giaûi ñöôïc vieát sau hai daáu gaïch xieân (//). Ñöôïc vieát treân cuøng moät doøng.Đöôïc vieát giöõa /* */, khi vieát nhieàu doøng chuù giaûi.

c. Chữ số:

Löu tröõ soá ñöôïc ñònh nghóa nhö laø moät con soá cuûa caùc bit, giaù trò coù theå laø: soánhò phaân, baùt phaân, thaäp phaân, hoaëc thaäp luïc phaân.

d. Từ định danh:

Töø ñònh danh do ngöôøi duøng quy ñònh cho bieán soá, teân haøm, teân moâñun, teân khoái vaø teân tröôøng hôïp. Töø ñònh danh baét ñaàu baèng moät maãu töï hoaëc ñöôøng gaïch döôùi ’_’ ( khoâng baét ñaàu baèng moät con soá hoaëc $ ) vaø keå caû moïi chöõ soá cuûa maåu töï, nhöõng con soá vaø ñöôøng gaïch döôùi, töø ñònh danh trong Verilog thì phaân bieät daïng chöõ.

2. Ngôn ngữ VHDL trong thiết kế phần cứng

Ngôn ngữ VHDL được cung cấp để hổ trợ phát triển các hệ thống phần cứng dựa trên các loại mạch(chip) tích hợp tốc độ cao(VHSIC-Very High Speed Integrated Circuit). Việc sử dụng các loại chíp kiểu này đã thay thế dần các IC logic mà thường được sử dụng trong việc thiết kế mạch số, đem lại nhiều lợi ích và thuần tiện trong việc phát triển các hệ thống số mà phương thức thiết mạch số truyền thống khó hoặc không thể thực hiện được.

(32)

VHDL là 1 loại ngôn ngữ mô tả phần cứng. Hiện nay có nhiều loại ngôn ngữ mô tả phần cứng đang được sử dụng như là verilog hay ABEL… mỗi ngôn ngữ có nhưng ưu điểm và thuận tiện cho người sử dụng. Ở đây chúng ta không so sánh giữa các ngôn ngữ miêu tả phần cứng với nhau. Việc quan trong là phải nắm bắt và sử dụng thành thao 1 loại ngôn ngữ khi mới bắt đầu tiếp cận với việc thiết kế hệ thống mạch số dựa trên các chip tích hợp.

VHDL không phải là 1 ngôn ngữ lập trình tuy vậy nó cung được hỗ trợ các cấu trúc, cú pháp như giống như những ngôn ngữ lập trình thông dụng như C hay Basic. Do vậy VHDL sẽ phải lược bỏ đi những phần không thích hợp khi áp dụng cho việc thiết kế 1 phần cứng chứ không phải 1 phần mềm. VHDL là ngôn ngữ miêu tả phần cứng khá thông dụng có thể tương thích với nhiều môi trương ( công cụ) phát triển cho chip của nhiều hãng sản xuất chip khác nhau.

Sử dụng VHDL để miêu tả phần cứng tức là chỉ rõ cách thức giao tiếp của mạch cứng với các mạch bên ngoài và hoạt động, cấu trúc bên trong của mạch để nó có thể đáp ứng và xử lý các tín hiệu khi lắp ghép nó vào 1 hệ thống . Cách thức giao tiếp bao gồm việc thống kê số lượng các chân giao tiếp với mạch bên ngoài và định dạng cho chúng là chân nhập hay là xuất tín hiệu.Sự miêu tả ở đây có các mức như miêu tả cấu trúc (Structural) và miêu tả cách thức, đặc tính (behavioral) Miêu tả cấu trúc hệ thống tức là miêu tả hệ thống thông qua tập hợp các cổng logic cơ bản hoặc các thành phần được hỗ trợ và cách thức kết nối giũa các thành phần đó với nhau. Hình thức miêu tả này đã được sử dụng nhiều trong các công cụ thiết kế phần cứng truyền thống. còn đối với ngôn ngữ VHDL thì việc sử dụng cách thức miêu tả này thông qua các toán tử logic (AND, OR,..) tương ứng với các thành phần logíc cơ bản kết hợp các toán tử này để hình thành lên cấu trúc số.

(33)

Hình thức miêu tả cao nhất là behavioral. Hình thức này sẽ chỉ cách thức xử lý tín hiệu khi nó đi qua hệ thống. Mô tả behavioral được chia thành 2 hình thức miêu tả đó là dataflow và Algorithmic. Người thiết kế có thể kết hợp các hình thức miêu tả này với nhau trong file thiết kế của mình.

Mức mô tả behavioral thường được người thiết kế sử dụng do với hình thức mô tả này thì người thiết kế không phải quan tâm nhiều đến cấu trúc phần cứng bên trong của hệ thống mà chỉ tập chung vào mổ tả hay định hình việc xử lý dữ liệu của hệ thống. Còn đối với mức mô tả cấu trúc thì đòi hỏi người thiết kế phải nắm bắt và xây dựng cấu trúc của hệ thống thông qua các phần tử logic cơ bản, khi đó đòi hỏi người thiết kế phải có rất nhiều kinh nghiệm trong việc thiết kế mạch số và quá trình phân tích hệ thống rất khó khăn. Thông thường người thiết kế thường sử dụng kiểu mô tả này để ghép nỗi các phần đã được thiết kế của hệ thống vời nhau.

Cấu trúc của 1 file thiết kế dữa trên ngôn ngữ VHDL thông thường bao gồm 3 phần:

-phần khai báo các thư viện sử dụng trong thiết kế. -phần khai báo đối tượng thiết kế .

-phần mô tả cấu trúc của đối tượng.

Trên 1 bản thiết kê có thể có nhiều đối tượng thiết kế được lặp ghép với nhau. Mỗi đối tượng (entry) có thể hiểu như là 1 module mạch hay 1 tổ hợp logic. Các chân giao tiếp của đối tượng phải được định nghĩa trong phần khai báo đối tượng.

Trong phần mô tả cấu trúc của đối tượng thì người thiết kế sẽ sử dụng các mức mô tả đã đề cập phía trên để mô tả cấu trúc bên trong hay cách thức xử lý tín hiệu của đối tượng thiết kế.

Bài viết này không đề cập sâu về cú pháp hay kỹ thuật lập trình của ngôn ngữ VHDL mà chỉ trình bày một cách tổng quan về cách thức sử

(34)

dụng ngôn ngữ miêu tả trong thiết kế phần cứng có sử dụng các vi mạch tổ hợp.

Referências

Documentos relacionados

Para que o argumento não incorra em petição de princípio, ele deve estabelecer o seu resultado se o adversário (quem quer que pretenda não aceitar que “não é possível

Graduado em Educação Física e Especialista em Treinamento Esportivo pela Universidade Estadual do Ceará, Diretor Logístico da Copa do Mundo FIFA 2014, Gestor de Instalações

37 Então disse aos discípulos:— A colheita é grande mesmo, mas os trabalhadores são poucos.. 38 Peçam ao dono da plantação que mande mais trabalhadores para fazerem

Trindade MLZH, Caldas MA, Ramires JAF, Rochitte CE, Tsutsui JM, Nicolau JC, Mathias W Avaliação da extenção transmural do infarto agudo do miocárdio pela ecocardiografia com

Os candidatos deverão apresentar, na data das provas, até 30 (trinta) minutos após o encerramento das mesmas, em salas especialmente designadas, cópia reprográfica acompanhada

Súmula 46 : A lei falimentar, por especial, possui todo o regramento do pedido e processo de falência, e nela não se prevê a designação de audiência de conciliação. Súmula 50 :

O m´etodo do rel´e modificado, que garante uma sa´ıda sim´etrica do rel´e quando um estado estaci- on´ario c´ıclico ´e atingido, foi utilizado para iden- tificar a fun¸c˜ ao

Para a eluição da resina Bayer AP247 ® (matriz poliacrílica), tanto com NaNO 3 , como com NaSCN, Figuras 4 e 5, verifica-se que a eluição do ouro é mais fácil (e mais rápida)