Tải bản đầy đủ (.pdf) (33 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.02 MB, 33 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>HỌC VIỆN KỸ THUẬT MẬT MÃ</b>

<b>KHOA ĐIỆN TỬ - VIỄN THÔNG</b>

<b>---THỰC TẬP CƠ SỞ 2</b>

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

<b>Người hướng dẫn: THs. Nguyễn Thanh Ngọc</b>

<b>Nhóm sinh viên thực hiện:</b>

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

Vũ Tiến Quỳnh – DT040146

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

Nguyễn Phúc Hải – DT040119

<b>Hà Nội - 2024</b>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>LỜI CẢM ƠN</b>

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ể hồn thành tốt mơn <b>Thực tập cơ sở 2</b> 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 hồn thiện bản thân mình hơn.

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

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

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<b>Muc lục</b>

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<b>Lời Mở đầu</b>

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

<b>1. Lý do chọn đề tài</b>

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="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.

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

• Nắm rõ ngun 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.

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

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="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ề ngun 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.

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="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.

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

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

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

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

<b>1. FPGA là gì</b>

<b>Lịch sử phát triển:</b>

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.

<b>Khái niệm</b>

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

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="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.

<b>2. Kiến trúc của FPGA</b>

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.

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

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

<b>Chức năng của từng khối:</b>

Khối CLB: thực thi các chức năng logic, cung cấp các tính tố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

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

quả của hàm này tùy vào mục đích mà gửi ra ngồi khối logic trực tiếp hay thơng qua phần tử nhớ flip-flop. Ngồ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

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="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).

<b>3. Ưu điểm của FPGA</b>

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.

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

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

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ó. Ngồ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.

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="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

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="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 q trình thử nghiệm vàkiểm thử chức năng cơ bản của hệ thống.

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="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. Ngồ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

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="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+).

Ngồ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.

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="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.

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="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ế.

</div>

×