Thực Tập Cơ Sở 2 Đề Tài Thiết Kế Khối Ma Trận Bàn Phím.pdf

33 0 0
Tài liệu đã được kiểm tra trùng lặp
Thực Tập Cơ Sở 2 Đề Tài Thiết Kế Khối Ma Trận Bàn Phím.pdf

Đ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

Trang 1

HỌC VIỆN KỸ THUẬT MẬT MÃ

KHOA ĐIỆN TỬ - VIỄN THÔNG

-THỰC TẬP CƠ SỞ 2

Đề tài: “Thiết kế khối ma trận bàn phím”

Người hướng dẫn: THs Nguyễn Thanh Ngọc

Nhóm sinh viên thực hiện:

Trần Đức Cường – DT040110

Vũ Tiến Quỳnh – DT040146

Trang 2

Nguyễn Phúc Hải – DT040119

Hà Nội - 2024

Trang 3

LỜI CẢM ƠN

Chúng em xin gửi lời cảm ơn trân trọng nhất đến với cô Nguyễn Thanh Ngọc

– giảng viên của khoa Điện tử - Viễn thông Cô đã trang bị cho chúng em những

kiến thức, kỹ năng cần có để em có thể hoàn thành tốt môn Thực tập cơ sở 2 này.

Trong quá trình học tập và nghiên cứu, do bản thân chúng em vẫn còn chưa

vững kiến thức về chuyên ngành và kinh nghiệm thực tế nên có nhiều khi chúng em

còn thiếu sót Chúng em rất cảm ơn cô dành nhiều thời gian để hướng dẫn, chỉ bảo

cho chúng em, giúp chúng em ngày một hoàn thiện bản thân mình hơn.

Hà Nội, ngày 11 tháng 11 năm 2023

Nhóm sinh viên thực hiện đề tài

Trang 4

Muc lục

Trang 5

Lời Mở đầu

Trong thế kỷ 21 ngày nay, công nghệ thông tin ngày càng phát triểnmạnh mẽ, và việc thiết kế các thành phần cơ bản như ma trận bàn phímkhông chỉ đơn thuần là một yếu tố tiện ích trong cuộc sống hàng ngày màcòn đóng vai trò quan trọng trong trải nghiệm người dùng Ma trận bànphím, với cấu trúc ma trận đơn giản của nó, là giao diện trực tiếp giữangười dùng và thiết bị Điều này làm cho quá trình thiết kế của nó trở nênquan trọng, đặc biệt là khi chúng ta chứng kiến sự đa dạng ngày càng tăngcủa các loại bàn phím, từ bàn phím truyền thống đến bàn phím cảm ứng vàcác công nghệ tiên tiến khác.

Đề tài "Thiết kế khối ma trận bàn phím" không chỉ đặt ra nhữngthách thức kỹ thuật trong việc xây dựng một thành phần truyền thống, màcòn Cta sẽ khám phá sâu hơn vào thế giới phức tạp của ma trận bàn phím,tìm hiểu về những thách thức và cơ hội mà đề tài này mang lại, cũng nhưnhìn nhận về tầm quan trọng của việc thiết kế khối ma trận bàn phím đốivới sự phát triển của công nghệ thông tin.

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

Trang 6

Đề tài "Thiết kế khối ma trận bàn phím cho môn thực tập cơ sở" làmột đề tài thú vị và hấp dẫn, có nhiều lợi ích cho sinh viên Đầu tiên, đề tàinày cho phép ta áp dụng những kiến thức đã học trong môn thực tập cơ sởvào việc thiết kế và xây dựng một sản phẩm thực tế Ta sẽ có cơ hội tăngcường kỹ năng thiết kế hệ thống, bố trí linh kiện và tối ưu hóa hiệu suất.

Thứ hai, việc thiết kế khối ma trận bàn phím liên quan đến công nghệđiện tử và viễn thông Việc nghiên cứu và áp dụng công nghệ mới sẽ giúp tanắm bắt được xu hướng và phát triển kỹ năng trong lĩnh vực này Điều này sẽgiúp ta cập nhật kiến thức và nắm bắt được những tiến bộ mới nhất trong lĩnhvực công nghệ.

Thứ ba, bàn phím là một thiết bị không thể thiếu trong nhiều ứngdụng, từ máy tính cá nhân đến các thiết bị di động Việc nghiên cứu và thiết kếkhối ma trận bàn phím có thể mang lại tiềm năng ứng dụng cao trong cuộcsống hàng ngày.Ta có thể áp dụng kiến thức và kỹ năng của mình để thiết kếcác sản phẩm tiện ích cho mọi người.

2 Giới thiệu đề tàiTrình bày mục tiêu đề tài

• Nắm rõ nguyên lý hoạt động của khối điều khiển ma trận bàn phím.• Thiết kế và thực hiện một ứng dụng khối ma trận bàn phím trên FPGA.

Trình bày đối tượng và phạm vi nghiên cứu.

Trang 7

• Đối tượng nghiên cứu: Đối tượng nghiên cứu của báo cáo này là khốima trận bàn phím sử dụng FPGA Khối ma trận bàn phím là một loạibàn phím có cấu trúc gồm nhiều hàng và cột, mỗi ô giao nhau là mộtphím Khi người dùng nhấn một phím, một tín hiệu điện sẽ được tạo ravà truyền đến FPGA FPGA sẽ xử lý tín hiệu này và chuyển đổi nóthành một mã nhận dạng phím, sau đó gửi đến máy tính hoặc các thiếtbị khác.

Phạm vi nghiên cứu:

• Nghiên cứu về nguyên lý hoạt động của ma trận bàn phím: Tìm hiểuvề cách mà ma trận bàn phím hoạt động, cách tín hiệu được gửi và nhận,và cách mã hóa/giải mã được sử dụng để xác định phím và LED tươngứng.

• Sơ đồ chân và giao tiếp của ma trận bàn phím: Nghiên cứu về cấutrúc và sơ đồ chân của ma trận bàn phím, bao gồm các chân đầu vào vàđầu ra cần thiết để đọc tín hiệu từ ma trận bàn phím và điều khiển cácLED.

• Thiết kế khối điều khiển ma trận bàn phím bằng FPGA: Nghiên cứuvề cách sử dụng FPGA (Field-Programmable Gate Array) để thiết kếkhối điều khiển ma trận bàn phím Điều này bao gồm việc xây dựng sơđồ thiết kế, lập trình FPGA để xử lý tín hiệu và điều khiển các chứcnăng của ma trận bàn phím.

Trang 8

• Hiệu suất và tối ưu hóa: Nghiên cứu về hiệu suất của bộ ghi và bộđọc ma trận bàn phím, bao gồm tốc độ xử lý, khả năng nhận diện phímchính xác và ổn định Tối ưu hóa thiết kế để đạt được hiệu suất tốt nhấttrong việc đọc và ghi dữ liệu từ ma trận bàn phím.

Trình bày ứng dụng, ý nghĩa khoa học và thực tiễn của đề tài

Nghiên cứu về các ứng dụng tiềm năng của hệ thống ma trận bànphím điều khiển bằng FPGA, bao gồm tích hợp vào các hệ thống nhúng, điềukhiển thiết bị, hoặc các ứng dụng khác liên quan đến nhập liệu từ ma trận bànphím

Trang 9

Chương 1: Giới thiệu tổng quan về FPGA

1 FPGA là gì

Lịch sử phát triển:

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 Tiền thân trước đó của FPGA chính là CPLD CPLD được cấu trúc từ số lượng nhất định các khối SPLD (Simple programmable devices, thuậtngữ 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à hiệu suất không cao.

Khái niệm

FPGA (Field Programmable Gate Array) là vi mạch xử lý được xây dựng trên cấu trúc mảng phân tử logic Hay thiết bị bán dẫn được thiết kế dựa trên ma trận cácConfigurable Logic Blocks Theo đó, phần lớn các chức năng của FPGA được thay đổi bởi các kỹ sư thiết kế.

Trang 10

Hình : Tổng quan về FPGA

FPGA thuộc về lĩnh vực logic khả trình hay phần cứng có thể lập trình Vi mạchFPGA không tự làm bất cứ điều gì, nhưng có thể thiết kế thành bất kỳ mạch kỹ thuật số nào được yêu cầu.

2 Kiến trúc của FPGA

Kiến trúc cơ bản của FPGA bao gồm 3 thành phần chính: khối logic có thể tái cấu hình, Configurable Logic Blocks (CLBs) thực hiện các chức năng logic; các kếtnối bên trong, Porgrammable Interconnect có thể lập trình để kết nối các đầu vào vàđầu ra của các CLB và các khối I/O bên trong; các khối I/O cung cấp giao tiếp giữa các ngoại vi và các được tín hiêu bên trong.

Trang 11

Hình : Các khốic của FPGA

Chức năng của từng khối:

Khối CLB: thực thi các chức năng logic, cung cấp các tính toán và phần tử nhớ cơ bản được sử dụng trong hệ thống số CLBs là phần tử cơ bản cấu thành FPGA, là nguồn tài nguyên logic chính tạo nên các mạch logic đồng bộ lẫn không đồng bộ Một CLB cơ bản gồm một mạch tổ hợp có thể lập trình (còn gọi là LUT), một Flip-Flop hoặc một chốt (latch) 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 (số đầu vào này sẽ tùy thuộc vào từng dòngchip của mỗi hãng và sẽ được thảo luận chi tiết trong bài viết khác), kết

Trang 12

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 Ngoài khối logic cơ bản đó, nhiềuChip FPGA hiện nay gồm một hỗn hợp các khối khác nhau, một số trong đó chỉ được dùng cho các chức năng cụ thể, chẳng hạn như các khối bộ nhớ chuyên dụng, các bộ nhân (multipliers) hoặc các bộ ghép kênh (multiplexers) Tất nhiên, cấu hình bộ nhớ được sử dụng trên tất cả các khối logic để điều khiển các chức năng cụ thể của mỗi phần tử bên trong khối đó.

Khối kết nối: dùng để liên kết các khối logic và I/O lại với nhau để tạo thành một thiết kế hoàn chỉnh 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 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 (programmable 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ác nhau.

Khối I/O: cung cấp giao tiếp giữa các khối logic và kiến trúc định tuyến đến các thành phần bên ngoài Một trong những vấn đề quan trọng nhất trong thiết kế kiến trúc I/O là việc lựa chọn các tiêu chuẩn điện áp cung cấp và điện áp tham chiếu sẽ được hỗ trợ Số lượng Pin

Trang 13

(I/O) của FPGA tương đối lớn, thường được chia ra làm 2 loại: User Pin(chân người dùng), Dedicated Pin (chân chuyên dụng).

3 Ưu điểm của FPGA

Linh hoạt: FPGA cho phép người thiết kế tạo ra các thiết kế phần cứng sốtùy chỉnh để đáp ứng các yêu cầu cụ thể Chúng có thể triển khai các chứcnăng, thuật toán và giao thức phức tạp trong một thiết bị duy nhất.

Hiệu năng: FPGA có thể cung cấp hiệu năng cao nhờ khả năng xử lý songsong Chúng có thể xử lý nhiều nhiệm vụ cùng một lúc, phù hợp cho các ứng dụng yêu cầu xử lý thời gian thực và độ trễ thấp.

Tối ưu thời gian ra thị trường: FPGA giúp rút ngắn thời gian ra thị trườngvì cho phép người thiết kế triển khai và kiểm tra ý tưởng nhanh chóng Chúng có chu kỳ phát triển ngắn hơn so với ASIC vì không cần gia công phức tạp.

Trang 23

Chương 2: Giới thiệu board mạch Arty A7-35 và phần mềm vivaldo

2.1.Arty A7-352.1.1 Giới thiệu

ARTY A7 là board phát triển FPGA của hãng Digilent được xây dựng dựa trên nền tảng FPGA Artix-7 của Xilinx, sản phẩm gồm 2 phiển bản là ARTY-35T và ARTY-100T, phiên bản được sử dụng trong tài liệu này là ARTY-35T Sản phẩm này của Digilent rất phù hợp cho các nhà nghiên cứu cũng như các sinh viên trong quá trình học tập vè FPGA do tính linh hoạt trong ứng dụng của nó Ngoài các cổnggiao tiếp thông dụng như UARTs, IICs, SPIs và Ethernet MAC, ARTY còn được cung cấp layout headers của Arduino R3 và 4 cổng PMODs, rất tiện dụng trong các project IoTs và ứng dụng vi điều khiển.

Trang 24

2.1.2 Cấu tạo và thông số kỹ thuật

Các thành phần và thông số kỹ thuật của board ARTY 7 được liệt kê bới danh sách dưới đây (các thông số này là tổng quát cho cả 2 phiên bản 35T và 100T):

- Xilinx Artix-7 FPGA: Clock speeds 100MHz

Tích hợp sẵn bộ chuyển đổi ADC (XADC)

Nạp chương trình thông qua JTAG và Quad-SPI Flash - System Features:

256MB DDR3L cùng với 16-bit bus @ 667MHz 16MB Quad-SPI Flash

Mạch nạp USB-JTAG ( Sản phẩm không bán kèm cáp) - Cấp nguồn từ USB hoặc nguồn DC 7V-15V

System Connectivity: 10/100 Mbps Ethernet USB-UART Bridge

- Interaction and Sensory Devices: 4 công tắc

4 nút nhấn 1 nút reset 4 LEDs đơn 4 LEDs RBG

Trang 25

- Kết nối mở rộng: 4 cổng kết nối Pmod

Có sẵn các headers để kết nối với shields sử dụng layout của Arduino

2.1.3 Nguyên lý hoạt động

Bo mạch phát triển Arty A7-35 là một nền tảng linh hoạt dựa trên FPGA,với nguyên lý hoạt động chủ yếu tập trung vào sự tích hợp và lập trình củaFPGA Xilinx Artix-7 Trang bị với một FPGA mạnh mẽ, Arty A7-35 cho phépngười phát triển xác định và cấu hình các chức năng logic và hệ thống theo nhucầu cụ thể của dự án

Người phát triển sử dụng phần mềm Vivado của Xilinx để lập trìnhFPGA, tổ chức và thiết kế các mạch logic, và sau đó biên dịch chúng để triểnkhai vào FPGA Bộ nhớ DDR3L SDRAM tích hợp giúp lưu trữ và xử lý dữliệu trong quá trình thực thi ứng dụng.

Với các giao diện và kết nối đa dạng như USB, UART, GPIO, HDMI,và nhiều cổng khác, Arty A7-35 tạo ra một môi trường phát triển phong phú,có thể kết nối với nhiều loại thiết bị và mô-đun ngoại vi khác nhau Các đènLED và nút nhấn tích hợp trên bo mạch hỗ trợ trong quá trình thử nghiệm vàkiểm thử chức năng cơ bản của hệ thống

Trang 26

Với kích thước phổ thông và thiết kế linh hoạt, Arty A7-35 là một lựachọn lý tưởng cho việc phát triển và triển khai các ứng dụng sử dụng FPGAtrong các dự án nhúng và các lĩnh vực khác.

2.2 Vivaldo

2.2.1.Vivado là gì?

Vivado là bộ phần mềm lập trình cho FPGA và được thiết kế bởi hãng Xilinx Phiên bản tiền nhiệm của Vivado là ISE design suite, bắt đầu từ các dòng sản phẩm spartan-7 trở lên, người dùng bắt buộc phải sử dụng Vivado để làm việc với các sản phẩm mới hơn của Xilinx Ngoài ra, phần mềm này chỉ tương thích với Window và Linux.

2.2.2 Các tính năng chính của Vivado

Vivado là một phần mềm thiết kế dành cho SoCs và FPGA thíchnghi của AMD Phần mềm này bao gồm một loạt các tính năng và công cụnhằm tăng cường hiệu suất và năng suất trong quá trình thiết kế phần cứng.Dưới đây là một số tính năng chính của Vivado:

- Vivado High-Level Synthesis (HLS): HLS cho phép người dùng viết chươngtrình bằng C, C++ và SystemC và trực tiếp chuyển đổi chúng thành IP chothiết bị Xilinx, mà không cần phải tạo RTL thủ công HLS được đánh giá cao

Trang 27

về việc tăng cường năng suất phát triển và hỗ trợ các lớp, mẫu, hàm và nạpchồng toán tử trong C++.

- Vivado Simulator: Là một bộ phận của Vivado Design Suite, hỗ trợ môphỏng ngôn ngữ hỗn hợp, script Tcl, IP được mã hóa, và cải thiện xác minh.- Vivado IP Integrator: Cho phép kỹ sư nhanh chóng tích hợp và cấu hình IP từthư viện IP lớn của Xilinx IP Integrator cũng được tối ưu hóa cho các thiết kếMathWorks Simulink được xây dựng với System Generator của Xilinx vàHLS.

- Vivado Tcl Store: Là hệ thống script cho việc phát triển các add-ons choVivado, và có thể được sử dụng để thêm và sửa đổi các khả năng của Vivado.Tcl là ngôn ngữ script mà Vivado dựa trên Tất cả các chức năng cơ bản củaVivado có thể được gọi và điều khiển qua script Tcl.

- Hỗ Trợ Thiết Bị: Vivado hỗ trợ các thiết bị 7-series của Xilinx và tất cả cácthiết bị mới hơn (dòng UltraScale và UltraScale+).

Ngoài ra, Vivado còn mang đến nhiều tính năng khác:

- Tăng Cường Năng Suất: Vivado mang lại các tính năng độc đáo như ReportQoR Assessment (RQA), Report QoR Suggestions (RQS), và IntelligentDesign Runs (IDR), giúp người dùng đạt được mục tiêu hiệu suất nhanh chóngvà tăng cường năng suất.

Trang 28

- Thiết Kế và Triển Khai Nhanh: Vivado ML Edition cung cấp công nghệ giúpgiảm thời gian lặp lại trong thiết kế: Biên dịch tăng cường và Abstract Shell.- Ước Lượng Năng Lượng Chính Xác: Power Design Manager là công cụ ướclượng năng lượng thế hệ tiếp theo, được thiết kế để cung cấp ước lượng nănglượng chính xác ngay từ đầu trong quá trình thiết kế cho các thiết bị lớn vàphức tạp như dòng Versal và UltraScale+.

- Nhập và Triển Khai Thiết Kế: Vivado hỗ trợ nhập thiết kế trong HDL truyềnthống như VHDL và Verilog và cũng hỗ trợ giao diện đồ họa dựa trên công cụgọi là IP Integrator (IPI) cho môi trường thiết kế tích hợp và chơi IP.

Các tính năng này của Vivado giúp giảm đáng kể thời gian thiết kế và tốiưu hóa hiệu suất, khiến nó trở thành một công cụ quan trọng trong quá trìnhphát triển phần cứng cho các thiết kế FPGA và SoC

2.2.3 Các bước thiết kế FPGA bằng Vivado

Thiết kế FPGA sử dụng Vivado từ Xilinx bao gồm một loạt các bước cơ bảnsau:

- Tạo Dự Án Mới: Mở Vivado và tạo một dự án mới Trong quá trình này, bạnsẽ chọn loại FPGA bạn sẽ làm việc cùng với việc cấu hình các tùy chọn dự áncơ bản.

Trang 29

- Nhập Thiết Kế: Nhập thiết kế của bạn bằng cách sử dụng HDL (VHDL hoặcVerilog) hoặc thông qua công cụ IP Integrator nếu bạn muốn kéo và thả cácthành phần IP.

- Xác Định Ràng Buộc: Ràng buộc thiết kế của bạn bằng cách chỉ định cáchcác I/O sẽ được sử dụng trên FPGA Điều này thường được thực hiện thôngqua một tệp UCF (User Constraint File) hoặc XDC (Xilinx DesignConstraints).

- Biên Dịch Thiết Kế: Chạy quá trình synthesis, nơi mà code HDL của bạn sẽđược chuyển đổi thành một biểu đồ mạch logic.

**Thực Hiện và Định tuyến

- Thực Hiện và Định Tuyến: Sau khi synthesis, thiết kế của bạn sẽ đượcchuyển qua quá trình thực hiện (implementation), bao gồm định tuyến và đặtmạch Quá trình này sẽ xác định cách các thành phần logic sẽ được phân bổtrên FPGA và đường kết nối giữa chúng.

- Mô Phỏng: Trước khi chạy trên phần cứng thực, bạn có thể mô phỏng thiết kếđể kiểm tra hành vi và tìm ra lỗi và tối ưu hóa hiệu suất Vivado cung cấp mộtmôi trường mô phỏng tích hợp để thực hiện việc này.

- Phân Tích và Gỡ Lỗi: Sử dụng các công cụ phân tích và gỡ lỗi của Vivado đểxác định và sửa chữa bất kỳ vấn đề nào trong thiết kế.

Ngày đăng: 06/05/2024, 14:57

Tài liệu cùng người dùng

Tài liệu liên quan