Thiết Kế Và Hiện Thực Lõi IP JTAG Cho Vi Xử Lý MIPS 32-bit - Khóa Luận Tốt Nghiệp Kỹ Thuật Máy Tính

Khóa luận tốt nghiệp kỹ thuật máy tính tập trung thiết kế và hiện thực lõi IP JTAG cho vi xử lý MIPS 32-bit, ứng dụng trong kiểm tra và gỡ lỗi hệ thống.

Chuyên ngành

Kỹ thuật máy tính

Người đăng

Ẩn danh

Thể loại

khóa luận tốt nghiệp

2022

84
3
0

Phí lưu trữ

30 Point

Mục lục chi tiết

1. CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN ĐỀ TÀI

1.1. Đặt vấn đề

1.2. Các nghiên cứu liên quan

1.2.1. Chuẩn giao tiếp JTAG IEEE 1149.1

1.2.2. Vi xử lý MIPS

1.2.3. Hệ thống gỡ lỗi trên phần cứng

1.3. Mục tiêu đề tài

2. CHƯƠNG 2: TỔNG QUAN VỀ GIAO THỨC JTAG VÀ HỆ THỐNG GỠ LỖI TRÊN PHẦN CỨNG

2.1. Tổng quan giao thức JTAG

2.2. Lịch sử phát triển

2.3. Tổng quan về cách hoạt động của chuẩn giao tiếp JTAG

3. CHƯƠNG 3: THIẾT KẾ TỔNG QUAN VÀ QUÁ TRÌNH HIỆN THỰC HỆ THỐNG

4. CHƯƠNG 4: THIẾT KẾ CHI TIẾT

4.1. Thiết kế khối JTAG TAP

4.1.1. Tổng quan thiết kế

4.1.2. TAP — Test Access Port

4.1.3. Bộ điều khiển — TAP Controller

4.1.4. Quá trình điều khiển thanh ghi

4.1.5. Hiện thực TAP Controller

4.1.6. Thanh ghi lệnh IR - Instruction Register

4.1.6.1. Các yêu cầu đối với thanh ghi lệnh IR
4.1.6.2. Hiện thực thanh ghi lệnh IR

4.1.7. Thanh ghi dữ liệu DR — Data Registers

4.1.7.1. Boundary Scan Register — BSR
4.1.7.2. Bypass Register — BR
4.1.7.3. Device ID Register — DIDR
4.1.7.4. Các thanh ghi dữ liệu khác User Data Register(s) - UDR(s)

4.2. Thiết kế khối Debug module

4.2.1. Tổng quan thiết kế khối Debug module

4.2.2. Hardware Breakpoint Unit

5. CHƯƠNG 5: HIỆN THỰC THIẾT KẾ VÀ NẠP THIẾT KẾ VÀO BỘ FPGA

5.1. Mô phỏng hệ thống

5.2. Môi trường kiểm tra

5.3. Kết quả mô phỏng

5.4. Module FT232H USB to JTAG và chương trình kiểm tra gỡ lỗi

5.4.1. Module FT232H USB to JTAG

5.4.2. Chương trình kiểm tra gỡ lỗi

5.5. Kết quả tổng hợp thiết kế trên Virtex 7

5.6. Kết quả so sánh

6. CHƯƠNG 6: TỔNG KẾT VÀ HƯỚNG PHÁT TRIỂN

6.1. Tổng kết

6.2. Hướng phát triển

Tóm tắt

I. Thiết kế lõi IP JTAG

Phần này tập trung vào thiết kế lõi IP JTAG dựa trên chuẩn IEEE 1149.1. JTAG core design được thực hiện để hỗ trợ giao tiếp và gỡ lỗi cho vi xử lý MIPS 32-bit. Các thành phần chính bao gồm TAP Controller, Instruction Register (IR), và Data Registers (DR). Thiết kế này nhằm đảm bảo khả năng kiểm tra và gỡ lỗi hiệu quả trên các hệ thống phần cứng phức tạp.

1.1. Tổng quan thiết kế TAP

TAP (Test Access Port) là thành phần trung tâm trong thiết kế lõi IP JTAG. Nó điều khiển quá trình giao tiếp và kiểm tra thông qua các tín hiệu như TCK, TMS, TDI, và TDO. TAP Controller được thiết kế dưới dạng máy trạng thái hữu hạn (FSM), đảm bảo quy trình hoạt động chính xác theo chuẩn IEEE 1149.1.

1.2. Thiết kế thanh ghi lệnh IR

Instruction Register (IR) là thành phần quan trọng trong thiết kế lõi IP JTAG. Nó lưu trữ và xử lý các lệnh kiểm tra như BYPASS, SAMPLE, và EXTEST. Thiết kế IR đảm bảo khả năng dịch và thực thi lệnh một cách hiệu quả, hỗ trợ quá trình gỡ lỗi trên vi xử lý MIPS 32-bit.

II. Hiện thực lõi IP JTAG

Phần này mô tả quá trình hiện thực lõi IP JTAG trên nền tảng FPGA. IP core implementation bao gồm việc tích hợp các khối thiết kế như TAP Controller, IR, và DR vào một hệ thống hoàn chỉnh. Quá trình hiện thực được kiểm tra thông qua mô phỏng và triển khai trên bo mạch Virtex-7.

2.1. Mô phỏng hệ thống

Mô phỏng hệ thống được thực hiện để kiểm tra tính chính xác của thiết kế lõi IP JTAG. Các kịch bản kiểm tra bao gồm việc thực thi các lệnh như CORE_RESET, RUNSTEP, và SET_BREAK. Kết quả mô phỏng cho thấy thiết kế hoạt động ổn định và đáp ứng các yêu cầu kỹ thuật.

2.2. Triển khai trên FPGA

Triển khai trên FPGA là bước cuối cùng trong quá trình hiện thực lõi IP JTAG. Thiết kế được nạp vào bo mạch Virtex-7 và kiểm tra thông qua module FT232H USB to JTAG. Kết quả cho thấy thiết kế hoạt động hiệu quả, hỗ trợ gỡ lỗi trên vi xử lý MIPS 32-bit.

III. Ứng dụng và đánh giá

Phần này đánh giá giá trị và ứng dụng thực tế của thiết kế và hiện thực lõi IP JTAG. JTAG core design không chỉ hỗ trợ gỡ lỗi trên vi xử lý MIPS 32-bit mà còn có thể áp dụng cho các hệ thống nhúng khác. Thiết kế này giúp giảm chi phí và thời gian kiểm tra, đồng thời nâng cao hiệu quả trong quá trình phát triển phần cứng.

3.1. Giá trị thực tiễn

Thiết kế lõi IP JTAG mang lại giá trị thực tiễn cao trong việc kiểm tra và gỡ lỗi các hệ thống phần cứng phức tạp. Nó hỗ trợ các tính năng như Single-stepBreakpoint, giúp quá trình gỡ lỗi trở nên dễ dàng và hiệu quả hơn.

3.2. Hướng phát triển

Hướng phát triển tương lai của thiết kế lõi IP JTAG bao gồm việc tích hợp thêm các tính năng gỡ lỗi nâng cao và hỗ trợ nhiều kiến trúc vi xử lý khác nhau. Điều này sẽ mở rộng phạm vi ứng dụng của thiết kế trong các lĩnh vực công nghiệp và nghiên cứu.

21/02/2025

Trích đoạn nội dung tài liệu

Đặt vấn đề Ngày nay, các thiết kế vi xử lý có số lượng chân lớn ngày càng phô biến và mật độ tích hợp các linh kiện bán dẫn trên một bo mạch cũng ngày càng tăng cao. Đi kèm với đó là vấn đề kiểm tra, kiểm thử thiết kế dần trở nên phức tạp và tốn kém nhiều chi phí và thời gian. Do đó, các phương pháp kiểm tra thiết kế dần được hoàn thiện và tạo thành một hệ thống gỡ lỗi hoàn chỉnh. Hệ thống này cho phép người dùng kiểm tra và gỡ lỗi trực tiếp trên thiết kế.

Hệ thống gỡ lỗi có thiết kế phức tạp và được chia làm hai hệ thống chính: phần mềm và phần cứng. Phần mềm được thiết kế nhằm tạo nên một môi trường cho phép người dùng dễ dàng kiểm tra và gỡ lỗi. Đối với phần cứng thì phần lớn được thiết kế như một hệ thống SoC bao gồm cả thiết kế cần kiểm tra. Hai hệ thống này được thiết kế tách biệt hoàn toàn với nhau, dé hai hệ thống này có thé giao tiếp với nhau hầu hết các nhà cung cấp vi xử lý đều sử dụng chuẩn giao thức JTAG, một số nhà cung cấp khác thì phát triển giao thức riêng cho hệ thống gỡ lỗi của họ như ARM với giao thức DAP,.

Khi các thiết kế vi xử lý khi được tích hợp hệ thống gỡ lỗi sẽ giúp tiết kiệm được chỉ phí và thời gian khi gỡ lỗi chip trên các bo mạch phức tạp. Vì vậy, nhóm đưa ra dé tài hiện thực và thiết kế lõi JTAG trên vi xử ly MIPS 32-bit. Tập trung chủ yếu hiện thực thiết kế gỡ lỗi dựa trên giao thức JTAG và xây dựng một chương trình gỡ lỗi đơn giản. Các nghiên cứu liên quan Các nghiên cứu liên quan trong đề tài này được đề cập chủ yếu trong 3 chủ đề chính: Chuẩn giao tiếp JTAG IEEE 1149.1, vi xử lý MIPS và hệ thống gỡ lỗi trên phần cứng.

Chuẩn giao tiếp JTAG IEEE 1149.1 Hiện nay, chuẩn giao tiếp JTAG được sử dung rất phô biến. Ứng dụng của chuẩn giao tiếp này hầu hết đều nằm trong các hệ thống SoC, hệ thống gỡ lỗi. Các nghiên cứu ứng dụng JTAG hiện nay đều có thiết kế theo chuẩn IEEE 1149. Trong nước ta hiện nay có rất nhiều trang web giới thiệu về chuẩn giao tiếp JTAG.

Một trong số các bài viết được biết đến nhiều nhất là bài viết của tác giả Nguyễn Quân được đăng tải vào năm 2019 trên trang blog cá nhân [2], tác giả trình bày chi tiết nguyên lý hoạt động của JTAG và các thành phần bên trong của nó. Ngoài ra, tác giả còn đề cập ứng dụng lập trình bộ nhớ của JTAG. Vi xử lý MIPS Vi xử lý với kiến trúc MIPS là một bộ vi xử lý được sử dụng phổ biến trong các bài giảng của nhiều trường đại học. Hiện nay, có rất nhiều nghiên cứu hoặc thiết kế về vi xử lý MIPS đã được hiện thực.

Một nghiên cứu mới nhất tại trường Đại học Công nghệ Thông tin của tác giả Nguyễn Cao Tuan với đề tài “Nghiên cứu thiết kế bộ vi xử lý MIPS32 theo kiến trúc Superscalar” [3], tác giả đưa ra thiết kế bộ vi xử lý MIPS32 theo kiến trúc superscalar có thê xử lý hai câu lệnh trong cùng một chu kỳ xung clock, ngoài ra tác giả còn đưa ra phương pháp thiết kế đường ống (6 tang) dé giúp tăng tốc độ xử lý của thiết kế. Ngoài nghiên cứu đã nói ở trên, còn có rất nhiều nghiên cứu và thiết kế về vi xử lý MIPS được hiện thực. Các thiết kế vi xử lý MIPS đó thường được thiết kế đơn giản hoặc phức tạp để tăng hiệu suất của vi xử lý, có một số thiết kế như: MIPS 32-bit single-cycle, MIPS 32-bit pipelined,. Hệ thống gỡ lỗi trên phan cứng Sự phát triển của hệ thống gỡ lỗi phần cứng giúp việc gỡ lỗi trên nên dé dàng hơn, cũng như giúp tiết kiệm thời gian và chỉ phí.

Hiện nay, có rất nhiều hệ thống gỡ lỗi được phát triển. Một trong những hệ thống đó phải nói đến nghiên cứu “A High- Performance SoC Debug Platform” của nhóm tác giả Kou-Kai Liu, Wen-Hsuan Hsu và Kuen-Jong Lee [4]. Nghiên cứu này đề xuất một kiến trúc phần cứng có thé gỡ lỗi trên mạch với số lượng cổng giao tiếp lên đến 1500. Ngoài ra, dé có thé gỡ lỗi một cách dễ dàng, tác giả đã phát triển một công cụ giúp giao tiếp với hệ thống phần cứng gỡ lỗi và đưa ra các chức năng của toàn bộ hệ thống như: chế độ gỡ lỗi cycle-based (Single-step, Breakpoint), chế độ gỡ lỗi đặt điều kiện và chế độ gỡ lỗi đặt điều kiện phối hợp (giữa phần cứng và phần mềm).

Ngoài nghiên cứu ké trên, cũng có nghiên cứu ứng dụng hệ thống gỡ lỗi cho một thiết kế xác định, như thiết kế với một nền tảng gỡ lỗi cho vi xử lý kiến trúc RISC- V. Nghiên cứu của nhóm tác gia Wilmer Ramirez, Marco Sarmiento và Elkim Roa có tên là “A Flexible Debugger for RISC-V Based 32-bit System-on-Chip” [5], đưa ra một thiết kế gọi là “debugging platform”. Trong thiết kế của nền tảng gỡ lỗi đó sử dụng giao thức JTAG để giao tiếp với module bên ngoài. Bên cạnh đó, tác giả còn xây dựng nên một chương trình gỡ lỗi thay vì xây dựng nên một công cụ gỡ lỗi hoàn chinh.

Các nghiên cứu trong nước ta hiện nay cũng nỗi bật không kém so với các nghiên cứu nước ngoài. Điển hình trong sé đó là nghiên cứu của nhóm tác giả Nguyen Hung Quan, Duong Hai Dang Linh, Trinh Viet Quang, Hoang Minh The Nghỉ, Nguyen Phu Quoc, Tran Kien Cuong, Hoang Xuan Hoa về dé tài “An All-in-One Debugger of 8-bit Microcontroller with High Transfer Speed” [6]. Trong nghién cứu nay các tác giả dé xuất một phần cứng gỡ lỗi có tên là “All-in-One Debugger”, cũng tương tự với “debugging platform” của nghiên cứu trên. Thiết kế của phần cứng gỡ lỗi này cũng sử dụng giao thức JTAG làm kênh giao tiếp chính và cũng xây dựng chương trình gỡ lỗi dựa trên mã nguồn mở.

Tuy nhiên, phan lõi được gỡ lỗi là vi xử lý VN8, vi xử lý này được phát triển bởi Trung tâm Nghiên cứu và Dao tạo Thiết kế Vi mạch — ICDREC. Mục tiêu đề tài Thiết kế bộ vi xử lý MIPS 32-bit đơn chu kỳ bào gồm 25 lệnh: Các lệnh toán học và logic: ADD, ADDI, SUB, ADDU, SUBU, ADDIU, AND, OR, XOR, NOR, ANDI, ORI, XORI. Các lệnh dich bit: SLT, SLTU, SRL, SLL, SLTI, SLTIU. Các lệnh truy xuất bộ nhớ: SW, LW.

Các lệnh nhảy và rẽ nhánh: J, JAL, BEQ, BNE. Dựa trên chuẩn IEEE 1 149.1, hiện thực thiết kế JTAG bao gồm các lệnh: Các lệnh dịch chuỗi: BYPAS, SAMPLE, PRELOAD, EXTEST. Các lệnh truy xuất thanh ghi: IDCODE, READ REGS, PRG_COMMANDS. Các lệnh gỡ lỗi: CORE RESET, RUNSTEP, FORCE BREAK, SET_BREAK, RUN, RUN_DIRECT.

Thiết kế JTAG được hiện thực có các tính năng gỡ lỗi như Single-step cho phép gỡ lỗi từng dòng lệnh một, thiết lập các breakpoint cho phép dừng tại một vị trí lệnh đã được xác định. Bên cạnh đó, thiết kế Debug module được hiện thực nhằm điều khiển quá trình gỡ lỗi và hỗ trợ các tính năng gỡ lỗi như: cho phép lưu tối đa 15 breakpoint và thực thi gỡ lỗi từng lệnh. Hiện thực và chạy thử thiết kế trên FPGA Virtex-7 VC707, bằng cách xây dựng chương trình python giúp giao tiếp giữa PC và FPGA thông qua module FTDI USB to JTAG. Tổng quan về giao thức JTAG và hệ thống gỡ lỗi trên phần cứng 2.

Tổng quan giao thức JTAG Giao thức JTAG là cách gọi ngắn gọn theo tên của nhóm tạo ra chuẩn giao thức này. Tên chính thức của chuẩn này là “IEEE Standard Test Access Port and Boundary Scan Architecture”. Trong đó, có hai nội dung chính được đề cập: e _ Nội dung về TAP quy định giao tiếp và hoạt động của TAP trên chip. ¢ Boundary Scan quy định một phương pháp và cách thức kiểm tra các kết nối bên trong chip và các chân trên bo mạch in.

Lich sử phát triển Vào đầu những năm 1980, mạch in nhiều lớp, mạch tích hợp với số lượng chân lớn có dạng đóng gói ở dạng mạng lưới như ball grid array hoặc pin grid array và các bo mạch in có tích hợp số lương lớn linh kiện ngày càng phổ biến. Do đó, khiến việc kiểm tra kết nối của chip trên bo mạch phức tạp, tốn nhiều thời gian và khó sử dụng phương pháp đầu dò (probe) thông thường. Bên cạnh đó, tại thời điểm này, việc kiểm tra một bo mạch chủ yếu dựa vào hai phương pháp Bed-of-nails và kiểm tra chức năng (function test). Bed-of-nails, tạm dich là “nền đỉnh”.

Phương pháp này kiểm tra bo mạch bằng cách đặt bo mạch cần kiểm tra lên trên nền đỉnh hay còn gọi là đầu dò, tiếp xúc trực tiếp với các điểm kiểm tra trên bo mạch để thực hiện việc kiểm tra. Kiểm tra chức năng là việc kiểm tra khả năng hoạt động của một linh kiện bằng cách đưa các mẫu (giá trị) kiểm tra đến linh kiện cần kiểm tra và giám sát các đáp ứng từ linh kiện này. Việc chỉ sử dụng hai phương pháp trên làm thời gian kiểm tra lâu, chi phí cao. Năm 1985, tổ chức Joint Test Action Group được thành lập và bắt đầu phát triển một tiêu chuẩn giải quyết các van đề trên.

Giữa năm 1986 và 1988, Tiểu ban kỹ thuật JTAG (JTAG Technical Subcommittee) đã phát triển và công bố một nhóm các dé xuất về dang chuẩn của boundary scan. Trong năm 1988, JTAG được quyết định sẽ trở thành nền tảng của một tiêu chuẩn trong họ Bus kiểm tra — Testability Bus và dự án P1149.1 được khởi động. Vào tháng 2 năm 1990, chuẩn được phê duyệt lần đầu tiên và được tiếp tục chỉnh sửa, nâng cấp và hoàn thiện. Tháng 6 năm 1993, phiên bản IEEE Std 1149.1-1193 được chấp nhận với những bộ sung thêm: e Hai lệnh tùy chọn CLAMP và HIGHZ.

e Cơ chế cho phép chuyển đổi chế độ hoạt động của một thành phan (component) tương thích chuẩn này sang một cơ chế DFT khác. Thang 9 năm 1994, phiên bản IEEE Std 1149.1b-1994 được chấp nhận. Ban này bổ sung thêm phụ lục về ngôn ngữ mô tả Boundary-scan (Boundary-Scan Description Language). Tháng 7 năm 2001, phiên bản IEEE 1149.1-2001 được công bó với nhiều quy định bổ sung giúp giảm rủi ro (risk), tăng tính linh động (flexibility) và hiệu quả khi thiết kế phần cứng cho boundary-scan trên chip.

Phiên ban mới nhất được sử dụng cho tới ngày nay là IEEE 1149. Phiên bản này có nhiều bồ sung hơn so với các phiên bản trước đó: s Các lệnh mới của JTAG: CLAMP_HOLD, TMP_STATUS, CLAMP_RELEASE, ECIDCODE, INIT_SETUP, INIT_SETUP_CLAMP, INIT_RUN, IC_RESET.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Thiết kế và hiện thực lõi IP JTAG cho vi xử lý MIPS 32-bit - Khóa luận tốt nghiệp kỹ thuật máy tính là một tài liệu chuyên sâu tập trung vào việc thiết kế và triển khai lõi IP JTAG, một công nghệ quan trọng trong kiểm tra và gỡ lỗi vi xử lý MIPS 32-bit. Tài liệu này không chỉ cung cấp kiến thức lý thuyết về kiến trúc JTAG mà còn hướng dẫn chi tiết cách hiện thực nó trong thực tế, giúp sinh viên và kỹ sư nắm vững quy trình thiết kế phần cứng và phần mềm liên quan. Đây là nguồn tài liệu quý giá cho những ai đam mê lĩnh vực vi xử lý và thiết kế hệ thống nhúng.

Để mở rộng kiến thức về thiết kế hệ thống điều khiển và truyền động, bạn có thể tham khảo Khoá luận tốt nghiệp tổng quát về truyền động điện một chiều đi sâu thiết kế mạch điều chỉnh tốc độ động cơ một chiều có đảo chiều công suất nhỏ cấp điện từ bộ biến đổi. Nếu quan tâm đến ứng dụng công nghệ trong lĩnh vực hàng hải, Khoá luận tốt nghiệp thiết kế hệ thống chuông truyền động trên tàu thủy sẽ là tài liệu hữu ích. Ngoài ra, để tìm hiểu về giám sát và điều khiển hệ thống công nghiệp, bạn có thể khám phá Khoá luận tốt nghiệp giám sát trạm trộn bê tông trên giao diện wincc. Mỗi tài liệu này đều mang đến góc nhìn chuyên sâu và thực tiễn, giúp bạn nâng cao hiểu biết trong lĩnh vực kỹ thuật.