Bối cảnh và vấn đề nghiên cứu

Lý do chọn đề tài và bối cảnh thực tiễn

Trong những năm gần đây, công nghệ vi mạch tích hợp quy mô rất lớn (VLSI) phát triển mạnh mẽ, cho phép tích hợp ngày càng nhiều bóng bán dẫn (transistor) trên một vi mạch duy nhất. Xu hướng này thúc đẩy sự hình thành và mở rộng của các Hệ thống trên chip (System on Chip - SoC), nơi nhiều khối chức năng (IP core) cùng chia sẻ không gian trên một tấm bán dẫn. Tuy nhiên, sự gia tăng về mật độ tích hợp đòi hỏi một hạ tầng truyền thông nội chip có băng thông lớn và tốc độ cao để kết nối các khối chức năng như bộ xử lý, bộ nhớ và các bộ điều khiển ngoại vi. Hiệu năng tổng thể của một hệ thống SoC phụ thuộc trực tiếp vào kiến trúc của hệ thống bus trên chip (on-chip bus architecture).

Trong số các chuẩn bus trên chip phổ biến, kiến trúc bus AMBA (Advanced Microcontroller Bus Architecture) do tập đoàn ARM giới thiệu từ năm 1996 đã trở thành một tiêu chuẩn công nghiệp rộng rãi. Trải qua các phiên bản như Advanced System Bus (ASB), Advanced Peripheral Bus (APB), Advanced High-performance Bus (AHB), Advance eXtensible Interface (AXI) và Coherent Hub Interface (CHI), chuẩn AMBA AHB (ra mắt năm 1999) được thiết kế chuyên biệt cho các kết nối hiệu suất cao, tần số xung nhịp lớn, băng thông rộng giữa bộ vi xử lý, khối nhớ nội chip (on-chip RAM/ROM), hệ thống truy cập bộ nhớ trực tiếp (DMA) và cầu nối chuyển đổi bus (Bridge). Tốc độ truyền dẫn trên bus được xác định theo mối quan hệ $S = A/T$ (trong đó $A$ là lượng dữ liệu và $T$ là thời gian truyền hoàn tất), đòi hỏi độ rộng khung dữ liệu lớn và chu kỳ truyền tối ưu.

Bên cạnh yêu cầu về kiến trúc phần cứng, việc xác minh và kiểm tra thiết kế (design verification) chiếm tỷ trọng thời gian lớn trong quy trình thiết kế vi mạch do độ phức tạp logic tăng cao. Tác giả nhận định các nghiên cứu trước đây (như các công trình tài liệu tham khảo [2], [3] được dẫn trong đồ án) thường chỉ tập trung vào thiết kế logic và chạy mô phỏng hoạt động chức năng thông thường mà chưa áp dụng các phương pháp đo lường độ bao phủ kiểm chứng (coverage) để tối ưu thiết kế trước khi đưa vào đánh giá thực tế hoặc sản xuất. Xuất phát từ kinh nghiệm thực tập doanh nghiệp trong lĩnh vực vi mạch, tác giả lựa chọn đề tài "Thiết kế và đánh giá giao thức AMBA AHB" nhằm ứng dụng phương pháp kiểm chứng độ bao phủ thiết kế (Coverage metric) trên nền tảng mã nguồn RTL bằng ngôn ngữ Verilog HDL.

Mục tiêu và nhiệm vụ nghiên cứu

Đề tài xác định 3 mục tiêu nghiên cứu cụ thể:

  1. Xây dựng một hệ thống truyền thông trên chip gồm 2 bus chủ (Master) và 3 bus tớ (Slave) thực hiện truyền nhận dữ liệu thông qua chuẩn giao thức AMBA AHB.
  2. Sử dụng ngôn ngữ mô tả phần cứng Verilog HDL để thiết kế các khối RTL của hệ thống và kiểm tra mô phỏng toàn diện các chế độ truyền dữ liệu.
  3. Kiểm tra độ bao phủ của thiết kế theo phương pháp Coverage (Code Coverage và Function Coverage) để xác thực tính đầy đủ và chính xác của hệ thống trước khi tổng hợp phần cứng.

Để hoàn thành các mục tiêu trên, nhiệm vụ nghiên cứu được phân rã thành 6 nội dung:

  • Nội dung 1: Tìm hiểu tổng quan về chuẩn bus AMBA AHB.
  • Nội dung 2: Tổng quan về ngôn ngữ mô tả phần cứng Verilog HDL và các môi trường làm việc, mô phỏng.
  • Nội dung 3: Tìm hiểu về phương pháp kiểm chứng Coverage trong quy trình thiết kế RTL.
  • Nội dung 4: Nghiên cứu và xây dựng mô hình hệ thống tổng quát.
  • Nội dung 5: Thực hiện thiết kế mã RTL (RTL code) và viết testbench mô phỏng cho mô hình hệ thống.
  • Nội dung 6: Đánh giá kết quả thực hiện thông qua mô phỏng, phân tích độ bao phủ và ước lượng tài nguyên, công suất trên FPGA.

Đối tượng và phạm vi nghiên cứu

  • Đối tượng nghiên cứu: Giao thức bus AMBA AHB; cấu trúc phần cứng của bus controller gồm các khối Master, Slave, Arbiter (bộ phân xử), Address Decoder (bộ giải mã địa chỉ), Multiplexors (bộ ghép kênh); phương pháp kiểm chứng thiết kế phần cứng bằng Coverage.
  • Phạm vi không gian và ứng dụng: Thiết kế được định hướng tích hợp cho nền tảng Hệ thống trên chip COMOSY (Controlling Monitoring System) do phòng thí nghiệm Hệ thống tích hợp thông minh (SIS) phát triển nhằm phục vụ các ứng dụng giám sát môi trường, kết nối Ethernet và xử lý đa phương tiện.
  • Phạm vi chức năng: Do giới hạn thời gian và kiến thức, đồ án dừng lại ở việc thiết kế và kiểm chứng giao thức AHB với các chức năng cơ bản trong tài liệu đặc tả kỹ thuật AMBA AHB của ARM, bao gồm cấu hình hệ thống thực nghiệm với 2 Master và 3 Slave.

Cơ sở lý thuyết và phương pháp

Khung lý thuyết và chuẩn giao thức kỹ thuật

Nghiên cứu dựa trên tài liệu đặc tả chuẩn bus AMBA của tập đoàn ARM. Giao thức AHB có các đặc trưng kỹ thuật cốt lõi:

  • Hoạt động đồng bộ: Tín hiệu chuyển mạch tại sườn lên của xung nhịp đơn (HCLK).
  • Phân tách pha truyền dẫn (Pipelined operation): Mỗi giao dịch truyền dữ liệu bao gồm hai giai đoạn tách biệt: Pha địa chỉ (Address phase) chỉ diễn ra trong đúng 1 chu kỳ xung nhịp và Pha dữ liệu (Data phase) có thể kéo dài qua nhiều chu kỳ xung nhịp nhờ tín hiệu điều khiển trạng thái chờ HREADY.
  • Cơ chế trạng thái chờ: Bus tớ đưa tín hiệu HREADY xuống mức logic thấp để chèn các chu kỳ chờ khi cần thêm thời gian xử lý mẫu dữ liệu, sau đó kéo lên mức cao để hoàn tất chu kỳ truyền.
  • Các kiểu truyền dữ liệu (HTRANS[1:0]):
Mã tín hiệu HTRANS[1:0] Kiểu truyền Đặc điểm và mô tả hoạt động
00 IDLE Báo hiệu không có truyền dữ liệu; dùng khi bus chủ được cấp quyền nhưng ở trạng thái rỗi; Slave phản hồi OKAY và giữ HREADY thấp.
01 BUSY Cho phép bus chủ chèn chu kỳ trống vào giữa quá trình truyền khối; Slave tạm hoãn và gửi phản hồi OKAY.
10 NONSEQ Báo hiệu khối truyền đầu tiên của một khối dữ liệu hoặc một chu kỳ truyền đơn; địa chỉ không liên quan đến truyền dẫn trước đó.
11 SEQ Địa chỉ truyền hiện tại có liên hệ tuần tự với lần truyền trước (bằng địa chỉ trước cộng kích thước truyền tính theo byte).
  • Các kiểu truyền khối (HBURST[2:0]): Hỗ trợ truyền đơn và truyền khối dạng tăng dần (incrementing) hoặc dạng cuộn (wrapping) tại các mốc biên địa chỉ:
Mã HBURST[2:0] Tên kiểu truyền Mô tả hoạt động
000 SINGLE Truyền đơn một chu kỳ dữ liệu.
001 INCR Truyền khối tăng dần với độ dài bất kỳ (giới hạn biên 1 Kbyte).
010 WRAP4 Truyền khối cuộn với nhịp 4.
011 INCR4 Truyền khối tăng với nhịp 4.
100 WRAP8 Truyền khối cuộn với nhịp 8.
101 INCR8 Truyền khối tăng với nhịp 8.
110 WRAP16 Truyền khối cuộn với nhịp 16.
111 INCR16 Truyền khối tăng với nhịp 16.
  • Tín hiệu phản hồi của bus tớ (HRESP[1:0]):

    • OKAY (00): Hoàn thành giao dịch thành công (thực hiện trong 1 chu kỳ xung nhịp).
    • ERROR (01): Báo hiệu xảy ra lỗi giao dịch; yêu cầu tối thiểu 2 chu kỳ xung nhịp để bus chủ kịp hủy bỏ chu kỳ truyền.
    • RETRY (10): Báo hiệu địa chỉ chưa thể xử lý ngay; bus chủ phải gửi lại địa chỉ ở chu kỳ sau (yêu cầu 2 chu kỳ xung nhịp).
    • SPLIT (11): Tạm hoãn giao dịch để nhường quyền bus cho bus chủ khác; bus tớ thông báo qua tín hiệu HSPLITx khi sẵn sàng hoàn tất (yêu cầu 2 chu kỳ xung nhịp).
  • Cơ chế phân xử (Arbitration): Sử dụng các tín hiệu yêu cầu bus HBUSREQx, cấp quyền HGRANTx, khóa bus HLOCKx, và xác định chỉ số bus chủ đang chiếm quyền thông qua bus tín hiệu HMASTER[3:0].

Ngôn ngữ mô tả phần cứng Verilog HDL

Hệ thống được thiết kế bằng ngôn ngữ Verilog HDL (chuẩn IEEE 1364-1995, IEEE 1364-2001 và mở rộng sang SystemVerilog IEEE 1800-2009). Thiết kế áp dụng mô hình chuyển dịch thanh ghi (RTL - Register Transfer Level) để mô tả cấu trúc đồng bộ của luồng dữ liệu giữa các thanh ghi phần cứng và khối logic tổ hợp, đồng thời sử dụng mô hình hành vi (Behavioral Modeling) và máy trạng thái hữu hạn (FSM) cho các khối điều khiển.

Môi trường công cụ và phương pháp kiểm chứng

  • MobaXterm: Sử dụng làm trạm đầu cuối (terminal) trên hệ điều hành Windows để kết nối từ xa qua SSH và máy chủ ảo X11 tới hệ thống máy chủ Linux/Unix chạy các phần mềm tự động hóa thiết kế điện tử (EDA).
  • QuestaSim (Mentor Graphics): Trình biên dịch và mô phỏng số hỗ trợ Verilog và SystemVerilog. Quy trình mô phỏng thực hiện theo 5 bước: thu thập tệp ngõ vào và ánh xạ thư viện; biên dịch và phân tích mã nguồn; tối ưu hóa và tạo cơ sở dữ liệu mô phỏng; chạy mô phỏng (Simulation qua GUI, Command-line hoặc Batch); gỡ lỗi (Debug) bằng việc quan sát dạng sóng tín hiệu.
  • Phương pháp kiểm chứng Coverage:
    • Code Coverage: Đo lường tự động mức độ kiểm tra mã RTL thông qua: Toggle coverage (sự chuyển đổi trạng thái logic $0 \rightarrow 1$ và $1 \rightarrow 0$), Statement coverage (mức độ thực thi các câu lệnh), Branch coverage (thực thi các nhánh if/else, case), Condition coverage (đánh giá các biểu thức điều kiện logic), Expression coverage (kiểm tra tổ hợp biến số trong phép gán), và FSM coverage (độ bao phủ các trạng thái và chuyển trạng thái của máy trạng thái).
    • Function Coverage: Được định nghĩa thủ công bằng ngôn ngữ SystemVerilog dựa trên các yêu cầu chức năng của tài liệu đặc tả chuẩn AHB để kiểm tra các trường hợp tuần tự mà Code Coverage không phản ánh được.

Thiết kế và triển khai

Kiến trúc tổng thể hệ thống AHB Bus Controller

Mô hình hệ thống AHB được xây dựng cho nền tảng chip COMOSY gồm các thành phần kết nối liên thông:

  • 02 Bus chủ (Master 1 và Master 2): Khởi tạo các yêu cầu đọc/ghi dữ liệu, phát tín hiệu địa chỉ, tín hiệu điều khiển chế độ truyền (HTRANS, HBURST, HWRITE, HSIZE) và dữ liệu ghi (HWDATA).
  • 03 Bus tớ (Slave 1, Slave 2, Slave 3): Lấy mẫu địa chỉ và tín hiệu điều khiển, thực hiện ghi dữ liệu nhận được vào bộ nhớ nội hoặc xuất dữ liệu đọc (HRDATA), phản hồi trạng thái hoàn thành qua HREADY và HRESP.
  • 01 Bộ phân xử (Arbiter): Nhận tín hiệu yêu cầu HBUSREQ1, HBUSREQ2, xử lý mức độ ưu tiên để cấp tín hiệu HGRANT1, HGRANT2; phát tín hiệu định danh HMASTER[3:0]; đồng thời điều khiển các bộ ghép kênh địa chỉ và dữ liệu ghi. Hệ thống có khả năng mở rộng hỗ trợ lên tới 16 Master và 16 Slave.
  • 01 Bộ giải mã địa chỉ (Address Decoder): Tiếp nhận tín hiệu địa chỉ từ bus chủ được chọn, giải mã không gian địa chỉ để kích hoạt tín hiệu chọn Slave tương ứng (HSEL1, HSEL2, HSEL3), đồng thời cung cấp tín hiệu điều khiển cho bộ ghép kênh dữ liệu đọc và tín hiệu phản hồi.
  • 04 Bộ ghép kênh (Multiplexors):
    • Bộ ghép kênh địa chỉ và điều khiển (Addr & Control Mux): Chọn luồng địa chỉ và tín hiệu điều khiển từ Master 1 hoặc Master 2 chuyển đến khối Decoder và các Slave.
    • Bộ ghép kênh dữ liệu ghi (Write Data Mux): Chuyển dữ liệu ghi HWDATA từ Master được cấp quyền tới các Slave.
    • Bộ ghép kênh dữ liệu đọc (Read Data Mux): Chọn luồng dữ liệu đọc HRDATA từ Slave đang được truy cập để trả về cho Master.
    • Bộ ghép kênh tín hiệu phản hồi (Response Mux): Định tuyến các tín hiệu HREADY và HRESP từ Slave tích cực về bus Master.

Thiết kế chi tiết các khối chức năng RTL

  • Khối Bus Chủ (Master): Thiết kế dựa trên máy trạng thái hữu hạn FSM. Khi cần truyền thông, Master chuyển từ trạng thái rỗi sang trạng thái gửi yêu cầu HBUSREQ. Sau khi nhận được tín hiệu HGRANT từ Arbiter, Master chuyển sang pha địa chỉ, phát địa chỉ và thiết lập tín hiệu HTRANS = NONSEQ. Tại pha dữ liệu tiếp theo, nếu là thao tác ghi, Master đẩy dữ liệu lên đường truyền HWDATA; nếu là thao tác đọc, Master chờ tín hiệu HREADY = 1 từ Slave để chốt dữ liệu trên đường truyền HRDATA.
  • Khối Bus Tớ (Slave): Thiết kế máy trạng thái theo dõi đường bus. Khi tín hiệu chọn HSELx tích cực và HREADY ở mức cao tại sườn xung nhịp, Slave lưu lại thông tin địa chỉ và hướng truyền (HWRITE). Tại pha dữ liệu, Slave phản hồi HRESP = OKAY (2'b00) và kéo HREADY = 1 nếu dữ liệu sẵn sàng; trường hợp cần xử lý nội bộ, Slave hạ HREADY = 0 để đưa hệ thống vào trạng thái chờ.
  • Khối Phân Xử (Arbiter): Thực hiện thuật toán ưu tiên xác định quyền truy cập bus giữa hai bus chủ. Arbiter giám sát tín hiệu khóa bus HLOCKx để đảm bảo các chuỗi truyền khối không thể bị chia cắt nếu Master yêu cầu truyền nguyên tử (atomic transfer). Arbiter chỉ chuyển giao quyền bus khi quá trình truyền khối hiện tại hoàn tất hoặc khi có tín hiệu ngắt hợp lệ.
  • Khối Giải Mã Địa Chỉ (Decoder): Sử dụng các dải địa chỉ định trước trong không gian bộ nhớ của hệ thống COMOSY để sinh các tín hiệu chọn HSEL1, HSEL2, hoặc HSEL3, cách ly các thiết bị ngoại vi không tham gia giao dịch.

Đánh giá triển khai trên phần cứng FPGA

Hệ thống RTL sau khi được thiết kế và mô phỏng được đưa qua công cụ tổng hợp (synthesis) nhằm ước lượng tài nguyên phần cứng logic (LUTs, Flip-Flops, I/O pins) trên kit FPGA chuyên dụng. Đồ án tiến hành khảo sát và đánh giá công suất tiêu thụ (power consumption) của thiết kế tại ba mức tần số hoạt động khác nhau: 50 MHz, 100 MHz và 143 MHz.


Nội dung chính theo từng chương

Chương 1: Đặt vấn đề

Chương 1 giới thiệu tổng quan về bối cảnh ngành công nghiệp vi mạch bán dẫn, sự phát triển của công nghệ VLSI và sự cần thiết của hạ tầng truyền thông trên chip SoC. Tác giả trình bày vai trò của chuẩn bus AMBA do ARM phát triển, so sánh ưu điểm của bus AHB về băng thông và tần số xung nhịp so với ASB và APB. Chương này phân tích hạn chế của các nghiên cứu trước đây (chỉ mô phỏng đơn thuần, thiếu đánh giá độ bao phủ), nêu bật mục tiêu xây dựng hệ thống 2 Master - 3 Slave bằng Verilog, kiểm chứng bằng Coverage, xác định 6 nội dung nghiên cứu, chỉ rõ phạm vi giới hạn của đề tài và trình bày bố cục gồm 5 chương của đồ án.

Chương 2: Cơ sở lý thuyết

Chương 2 cung cấp nền tảng lý thuyết toàn diện về:

  • Chuẩn bus AMBA AHB: Lịch sử các thế hệ AMBA; công thức tốc độ truyền $S = A/T$; cấu trúc vi điều khiển điển hình sử dụng AHB kết nối bộ xử lý ARM, on-chip RAM, DMA master và cầu chuyển đổi sang APB; chi tiết pha địa chỉ, pha dữ liệu; hoạt động truyền không có trạng thái chờ và có trạng thái chờ; 4 kiểu truyền tín hiệu HTRANS (IDLE, BUSY, NONSEQ, SEQ); 8 kiểu truyền khối HBURST (SINGLE, INCR, WRAP4/8/16, INCR4/8/16); 4 trạng thái phản hồi HRESP (OKAY, ERROR, RETRY, SPLIT) và quy tắc phản hồi 2 chu kỳ; cơ chế phân chia quá trình truyền (split transfers) và hoạt động phân xử của Arbiter.
  • Ngôn ngữ Verilog HDL: Lịch sử từ Gateway Design Automation, chuẩn hóa IEEE 1364-1995, IEEE 1364-2001 đến SystemVerilog IEEE 1800-2009; 4 thuật ngữ cốt lõi (HDL, RTL, Structural Modeling, Behavior Modeling); các mức độ mô hình hóa (chuyển mạch, cổng logic, hành vi, RTL) và quy trình tổng hợp logic RTL.
  • Phần mềm MobaXterm và QuestaSim: Tính năng điều khiển máy tính từ xa, quản lý phiên X11, giao thức SSH/SFTP của MobaXterm; các chế độ thực thi của QuestaSim (Command-line, GUI, Batch) và quy trình 5 bước biên dịch - tối ưu - mô phỏng - gỡ lỗi.
  • Phương pháp kiểm chứng Coverage: Bản chất thống kê chất lượng kiểm tra; phân biệt Code coverage (Toggle, Statement, Branch, Condition, Expression, FSM, Class coverage) và Function coverage viết bằng SystemVerilog.

Chương 3: Thiết kế hệ thống

Chương 3 đi sâu vào giải pháp kỹ thuật:

  • Vấn đề thiết kế: Giới thiệu nền tảng SoC COMOSY của phòng thí nghiệm SIS ứng dụng trong giám sát đa phương tiện (vi xử lý 32-bit, RAM, ROM, Ethernet, LCD Interface kết nối AHB; GPIO, UART kết nối APB qua cầu bus).
  • Sơ đồ khối hệ thống đề xuất: Cấu trúc chi tiết bộ điều khiển bus AHB gồm 2 Master, 3 Slave, 1 Arbiter, 1 Address Decoder, 4 bộ Multiplexor (Addr & Control Mux, Write Data Mux, Read Data Mux, Response Mux).
  • Mô tả chi tiết từng khối: Định nghĩa giao diện kết nối, danh sách cổng tín hiệu vào/ra và hoạt động máy trạng thái FSM của khối Bus Master, Bus Slave, khối Arbiter phân xử ưu tiên và khối Decoder giải mã không gian địa chỉ.

Chương 4: Kết quả đánh giá

Chương 4 trình bày toàn bộ kết quả thực nghiệm thu được từ quá trình mô phỏng và tổng hợp phần cứng:

  • Mô hình Testbench và Testcase: Xây dựng môi trường mô phỏng kiểm tra chức năng đọc/ghi đơn, đọc/ghi khối tuần tự và cuộn biên, kiểm tra phân xử khi hai Master cùng phát tín hiệu yêu cầu truy cập bus.
  • Dạng sóng mô phỏng: Đưa ra các biểu đồ dạng sóng chi tiết minh chứng hoạt động đúng đắn của khối bus chủ khi đọc/ghi, khối giải mã khi chọn lần lượt Slave 1, Slave 2, Slave 3; hoạt động của 4 bộ ghép kênh; phản hồi của khối Arbiter khi Master 1 hoặc Master 2 chiếm quyền; và hoạt động đồng bộ của toàn bus hệ thống.
  • Báo cáo độ bao phủ Coverage: Xuất báo cáo chi tiết về tỷ lệ phần trăm độ bao phủ (Statement, Branch, Condition, Toggle, FSM) cho từng khối thành phần (Master, Slave, Arbiter, Decoder, các Mux) nhằm xác nhận mã RTL đã được kích hoạt đầy đủ qua các kịch bản kiểm thử.
  • Đánh giá trên FPGA: Thống kê tài nguyên logic tiêu thụ (LUT, Flip-Flop, I/O) trên kit FPGA và bảng đo đạc công suất tiêu thụ của thiết kế tại các tần số 50 MHz, 100 MHz và 143 MHz.

Chương 5: Kết luận và hướng phát triển

Chương 5 tóm tắt các hạng mục đã hoàn thành của đồ án: thiết kế thành công bộ điều khiển AHB đáp ứng chuẩn kỹ thuật, xây dựng testbench mô phỏng kiểm tra các chế độ truyền, hoàn thành đánh giá độ bao phủ coverage và ước lượng tài nguyên phần cứng. Đồng thời, tác giả đề xuất các hướng nghiên cứu mở rộng trong tương lai.


Kết quả và đóng góp

Kết quả kỹ thuật đạt được

  1. Thiết kế phần cứng RTL: Hoàn thiện mã nguồn Verilog mô tả toàn bộ các khối chức năng trong hệ thống giao thức AMBA AHB: khối Bus Master, Bus Slave, Bộ phân xử (Arbiter), Bộ giải mã địa chỉ (Decoder) và 4 bộ ghép kênh dữ liệu/địa chỉ/điều khiển.
  2. Xác minh chức năng qua mô phỏng:
    • Hệ thống thực thi chính xác các chu kỳ truyền dữ liệu không trạng thái chờ và có trạng thái chờ (thông qua điều khiển tín hiệu HREADY).
    • Thực hiện thành công các phương thức truyền khối với địa chỉ tăng dần (INCR4, INCR8) và truyền khối cuộn biên (WRAP4, WRAP8), đảm bảo địa chỉ tự động cuộn vòng chính xác khi chạm biên (ví dụ chu kỳ WRAP8 cuộn từ địa chỉ 32'h0000_003C về 32'h0000_0020 thay vì tăng lên 32'h0000_0040).
    • Bộ phân xử Arbiter xử lý đúng đắn mức độ ưu tiên giữa Master 1 và Master 2 khi có tranh chấp truy cập bus, ngăn ngừa hiện tượng nghẽn bus hoặc xung đột dữ liệu.
    • Các Slave phản hồi chính xác các trạng thái OKAY, ERROR và RETRY theo đúng chu trình 2 chu kỳ xung nhịp được quy định trong chuẩn AMBA.
  3. Đánh giá độ bao phủ (Coverage Evaluation):
    • Đồ án đã trích xuất báo cáo độ bao phủ thiết kế (Coverage Report) bằng QuestaSim cho từng khối chức năng riêng biệt: khối Bus Chủ, khối Bus Tớ, khối Phân Xử, khối Giải Mã, khối Ghép Kênh Địa Chỉ, khối Ghép Kênh Dữ Liệu Ghi, khối Ghép Kênh Dữ Liệu Đọc và khối Ghép Kênh Tín Hiệu Phản Hồi. Việc đạt chỉ số bao phủ cao giúp kiểm chứng rằng các nhánh rẽ điều kiện và các trạng thái máy FSM đều đã được kích hoạt trong testbench.
  4. Đánh giá tài nguyên và công suất trên FPGA:
    • Đồ án đã tổng hợp thiết kế lên phần cứng FPGA, trích xuất bảng tổng hợp tài nguyên logic sử dụng.
    • Đo đạc và ước lượng công suất tiêu thụ của thiết kế tại các mức tần số xung nhịp hoạt động khác nhau: 50 MHz, 100 MHz và 143 MHz (thể hiện qua các đồ thị phân tích công suất trong báo cáo kỹ thuật).

Đóng góp mới của đề tài

So với các nghiên cứu trước đây (như các đề tài [2], [3] được tác giả khảo sát vốn chỉ dừng lại ở việc thiết kế logic và kiểm tra dạng sóng mô phỏng cơ bản), đóng góp chính của đồ án là:

  • Đưa phương pháp kiểm chứng độ bao phủ thiết kế (Coverage metric) vào quy trình thiết kế RTL cho bus AMBA AHB.
  • Cung cấp số liệu định lượng về mức độ bao phủ mã RTL (Code coverage) và mức độ bao phủ chức năng (Function coverage), giúp người thiết kế nắm được chính xác tỷ lệ mã nguồn được kích hoạt qua các testcase.
  • Thiết lập một quy trình xác thực thiết kế chuẩn xác, nâng cao độ tin cậy của phần cứng trước khi tiến hành chuyển giao sản xuất vi mạch hoặc đóng gói thành lõi IP tái sử dụng.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế của đề tài

  • Phạm vi chức năng: Do giới hạn về thời gian thực hiện đồ án và kiến thức chuyên sâu, đề tài mới chỉ hiện thực hóa các chức năng cơ bản được quy định trong tài liệu kỹ thuật của AMBA AHB, chưa tích hợp đầy đủ toàn bộ các tính năng nâng cao phức tạp (như xử lý phản hồi SPLIT đầy đủ giữa nhiều bus tớ hoặc các cơ chế bảo vệ nâng cao).
  • Quy mô cấu hình: Thiết kế thực nghiệm hiện tại dừng lại ở cấu hình cố định gồm 2 Bus Master và 3 Bus Slave, chưa triển khai kiểm thử tự động trên quy mô tối đa 16 Master và 16 Slave.

Hướng nghiên cứu phát triển

  • Tối ưu hóa cấu trúc RTL để giảm thiểu diện tích tài nguyên logic (LUT/Flip-Flop) và hạ thấp công suất tiêu thụ trên chip.
  • Mở rộng kiến trúc bus để hỗ trợ đầy đủ số lượng kết nối tối đa (lên tới 16 bus chủ và 16 bus tớ).
  • Phát triển và hoàn thiện cơ chế phân chia giao dịch truyền phức tạp (SPLIT transfer) với đầy đủ các tín hiệu liên lạc HSPLITx.
  • Tích hợp hoàn chỉnh hệ thống điều khiển bus AHB vào platform SoC COMOSY thực tế tại phòng thí nghiệm SIS, kết nối trực tiếp với bộ xử lý 32-bit, bộ nhớ on-chip RAM/ROM, bộ điều khiển DMA và các khối xử lý đa phương tiện (mã hóa/giải mã hình ảnh JPEG, video stream).

Giá trị tham khảo

Đồ án là tài liệu kỹ thuật có giá trị thực tiễn cao cho:

  • Sinh viên ngành Kỹ thuật Điện tử - Viễn thông, Kỹ thuật Máy tính và Thiết kế Vi mạch: Tài liệu cung cấp góc nhìn thực tế về quy trình thiết kế phần cứng số ở mức RTL, từ việc phân tích đặc tả kỹ thuật tiêu chuẩn (specifications) của ARM đến việc hiện thực hóa bằng ngôn ngữ Verilog HDL.
  • Người nghiên cứu và kỹ sư thiết kế phần cứng: Cung cấp tài liệu tham khảo chi tiết về phương pháp kiểm chứng vi mạch hiện đại (Coverage-driven verification). Phần trình bày về cách thiết lập môi trường EDA từ xa qua MobaXterm, quy trình mô phỏng 5 bước trong QuestaSim và phương pháp phân tích các dạng Code coverage (Toggle, Branch, Statement, FSM) là những chỉ dẫn thực tế có thể áp dụng ngay vào các dự án thiết kế lõi IP.
  • Các nhóm phát triển SoC nội địa: Cấu trúc module hóa rõ ràng của các khối Master, Slave, Arbiter, Decoder và Multiplexors có thể được tái sử dụng hoặc tùy biến làm nền tảng truyền thông cho các hệ thống vi điều khiển hoặc SoC chuyên dụng khác.

Câu hỏi thường gặp

1. Điểm khác biệt căn bản giữa đồ án này với các nghiên cứu thiết kế bus AHB trước đây là gì?

Các nghiên cứu trước đây (như công trình [2], [3]) chủ yếu tập trung vào việc thiết kế logic và quan sát dạng sóng mô phỏng hoạt động chức năng đơn thuần mà chưa tối ưu hóa hoặc định lượng chất lượng kiểm chứng. Đồ án này áp dụng phương pháp kiểm chứng độ bao phủ thiết kế (Coverage metric bao gồm Code coverage và Function coverage). Phương pháp này giúp thống kê chính xác tỷ lệ mã nguồn RTL được thực thi qua các testcase, từ đó xác nhận thiết kế đã được kiểm tra toàn diện và đúng đặc tả trước khi sản xuất vi mạch.

2. Giao thức AMBA AHB hỗ trợ những trạng thái phản hồi nào từ bus tớ và mỗi trạng thái mất bao nhiêu chu kỳ xung nhịp?

Giao thức AHB định nghĩa 4 trạng thái phản hồi qua tín hiệu HRESP[1:0]:

  • OKAY (2'b00): Báo hiệu giao dịch thành công, chỉ mất 1 chu kỳ xung nhịp.
  • ERROR (2'b01): Báo hiệu lỗi giao dịch, yêu cầu tối thiểu 2 chu kỳ xung nhịp.
  • RETRY (2'b10): Yêu cầu bus chủ truyền lại địa chỉ vừa gửi, yêu cầu tối thiểu 2 chu kỳ xung nhịp.
  • SPLIT (2'b11): Tạm hoãn giao dịch để nhường bus cho chủ khác, yêu cầu tối thiểu 2 chu kỳ xung nhịp. Các phản hồi ERROR, RETRY, SPLIT cần 2 chu kỳ xung nhịp để bus chủ có đủ thời gian hoãn giao dịch và tái cấu hình lại chu kỳ truyền cho phù hợp.

3. Hệ thống bus AHB trong đồ án được thiết kế với cấu hình bao nhiêu Master, Slave và có khả năng mở rộng như thế nào?

Đồ án lựa chọn cấu hình hệ thống thực nghiệm gồm 2 Bus Master (bus chủ) và 3 Bus Slave (bus tớ) kết nối qua 1 bộ phân xử Arbiter, 1 bộ giải mã Decoder và 4 bộ ghép kênh Multiplexors. Mặc dù triển khai thực nghiệm với 2 Master và 3 Slave để phù hợp với nền tảng SoC COMOSY ban đầu, cấu trúc logic của hệ thống được thiết kế theo dạng module hóa mở và có khả năng mở rộng để hỗ trợ giao tiếp lên tới 16 Bus Master và 16 Bus Slave mà không cần thay đổi cấu trúc nền tảng.

4. Các mức tần số xung nhịp nào đã được tác giả sử dụng để đánh giá công suất hoạt động của hệ thống trên FPGA?

Tác giả đã thực hiện tổng hợp thiết kế và tiến hành khảo sát, đo đạc công suất tiêu thụ của hệ thống điều khiển bus AHB tại 3 mức tần số hoạt động khác nhau là 50 MHz, 100 MHz và 143 MHz (tương ứng với các kết quả phân tích trong Bảng 4.3 và các đồ thị công suất Hình 4.29, Hình 4.30, Hình 4.31 của đồ án).

5. Sự khác biệt giữa kiểu truyền khối tăng dần (INCR) và truyền khối cuộn (WRAP) trong giao thức AHB được thể hiện như thế nào?

Trong kiểu truyền khối tăng dần (INCR), địa chỉ của các lần truyền tiếp theo tăng tuần tự liên tục dựa trên kích thước truyền (byte). Trong khi đó, ở kiểu truyền khối cuộn (WRAP4, WRAP8, WRAP16), nếu địa chỉ bắt đầu không trùng với biên khối (tổng số byte = kích thước $\times$ số nhịp), địa chỉ truyền sẽ tăng tuần tự cho đến khi chạm biên địa chỉ thì sẽ tự động cuộn vòng quay lại địa chỉ cơ sở của biên đó rồi mới tiếp tục tăng (ví dụ truyền WRAP8 từ địa chỉ 32'h0000_003C chạm biên sẽ cuộn về 32'h0000_0020).


Kết luận

Đồ án tốt nghiệp "Thiết kế và đánh giá giao thức AMBA AHB" của sinh viên Võ Quốc Vương đã thiết kế thành công hệ thống điều khiển bus AMBA AHB cấu hình 2 Master - 3 Slave bằng ngôn ngữ Verilog HDL phục vụ nền tảng SoC COMOSY. Tác giả đã kiểm chứng chính xác các chế độ truyền đơn, truyền khối và cơ chế phân xử bus thông qua môi trường mô phỏng QuestaSim kết nối qua MobaXterm. Điểm nổi bật của công trình là việc ứng dụng phương pháp kiểm chứng độ bao phủ Coverage (Code coverage và Function coverage) để định lượng độ tin cậy của mã RTL, kết hợp ước lượng tài nguyên và công suất hoạt động tại các tần số 50 MHz, 100 MHz, 143 MHz trên phần cứng FPGA. Công trình là tài liệu học thuật và kỹ thuật hoàn chỉnh, đáp ứng tốt yêu cầu thiết kế vi mạch số và mở ra hướng ứng dụng thiết thực cho các hệ thống SoC đa phương tiện.