Nghiên Cứu Thiết Kế và Thi Công Bộ Truyền Nhận SPI-WISHBONE Trên Nền Tảng FPGA


Tóm tắt nghiên cứu (Research Summary)

Trong xu thế phát triển mạnh mẽ của hệ thống vi mạch tích hợp cỡ lớn (VLSI) và hệ thống trên một vi mạch (System-on-Chip - SoC), nhu cầu chuẩn hóa các giao tiếp nội chip kết hợp với các giao thức ngoại vi tốc độ cao là một thách thức kỹ thuật then chốt. Đề tài nghiên cứu "Thiết kế và thi công bộ truyền nhận theo giao thức SPI-Wishbone" (Mã số: SV2022-178, thực hiện tại Trường Đại học Sư phạm Kỹ thuật TP.HCM) giải quyết bài toán cốt lõi: Làm thế nào để thiết kế một lõi IP (IP Core) truyền nhận dữ liệu đồng bộ tốc độ cao, khả năng tương thích cao với chuẩn bus SoC mã nguồn mở Wishbone, đồng thời hỗ trợ linh hoạt cả hai chế độ SPI Master và SPI Slave với mức tiêu hao tài nguyên phần cứng tối ưu?

Nghiên cứu ứng dụng phương pháp mô hình hóa phần cứng bằng ngôn ngữ Verilog HDL, thực hiện phân chia kiến trúc module hóa chi tiết từ tầng thanh ghi dịch (Shift Register), thanh ghi đệm dữ liệu (TX/RX Data Registers), khối giải mã địa chỉ, đến khối điều khiển trạng thái (FSM) và ngắt. Toàn bộ thiết kế được kiểm chứng và mô phỏng dạng sóng toàn diện trên môi trường QuestaSim 10.2, sau đó tổng hợp logic trên phần mềm Intel Quartus Prime Lite.

Kết quả thực nghiệm khẳng định hệ thống đáp ứng chính xác 100% quy trình trao đổi dữ liệu song công (Full-duplex) 8-bit giữa Master và Slave ở xung nhịp 50MHz, xử lý trơn tru cơ chế bắt tay Wishbone bus, đồng thời kiểm soát hoàn hảo các cờ ngắt lỗi tràn bộ đệm (ROE, TOE). Công trình mang lại giá trị thực tiễn to lớn, cung cấp một lõi IP mở có độ tin cậy cao, dễ dàng tái sử dụng trong các hệ thống vi điều khiển SoC, thiết bị IoT và làm tài liệu tham khảo chuẩn mực trong đào tạo kỹ thuật vi mạch số.


Bối cảnh và tầm quan trọng (Context & Significance)

1. Thực trạng công nghệ và nhu cầu kết nối nội chip

Cuộc cách mạng công nghiệp 4.0 thúc đẩy sự bùng nổ của các thiết bị thông minh, hệ thống nhúng tự động hóa và vi mạch chuyên dụng. Trung tâm của mọi hệ thống số hiện đại là nhu cầu trao đổi dữ liệu liên tục, tốc độ cao giữa bộ xử lý trung tâm (CPU Core, Microcontroller) và các khối ngoại vi (cảm biến, bộ nhớ Flash/EEPROM, màn hình hiển thị, RTC, bộ chuyển đổi ADC/DAC).

Giao thức SPI (Serial Peripheral Interface) từ lâu đã khẳng định vị thế là chuẩn truyền thông nối tiếp đồng bộ 4 dây phổ biến nhờ tốc độ vượt trội so với I2C hay UART và khả năng truyền song công toàn phần không bị ngắt quãng bởi các khung gói phức tạp. Tuy nhiên, trong kiến trúc SoC hiện đại, việc kết nối trực tiếp lõi xử lý với module ngoại vi SPI đòi hỏi một chuẩn bus hệ thống trung gian để quản lý địa chỉ, đồng bộ chu kỳ xung nhịp và điều phối dữ liệu.

+------------------+         Wishbone Bus         +------------------------+          SPI (4 wires)         +--------------------+
|   Master CPU /   | <==========================> |   SPI-Wishbone Core    | <============================> |  External Device   |
| System Controller|  (ADR, DAT, CYC, STB, ACK)   |  (Registers, Control)  |   (SCLK, MOSI, MISO, SS_N)     | (Sensor/EEPROM/..) |
+------------------+                              +------------------------+                                +--------------------+

2. Khoảng trống nghiên cứu (Research Gap)

Mặc dù giao thức SPI kết hợp với các bus hệ thống như APB (Advanced Peripheral Bus), OPB (On-Chip Peripheral Bus) hay Wishbone đã từng được đề cập trong một số tài liệu học thuật, hầu hết các nghiên cứu trước đây chỉ dừng lại ở mức mô tả chức năng tổng quát hoặc thiết kế một chiều cố định (chỉ Master hoặc chỉ Slave). Các vấn đề cốt lõi như:

  • Bản vẽ thiết kế mạch điều khiển chi tiết cấp độ truyền nhận dữ liệu RTL.
  • Cơ chế quản lý lỗi tràn bộ đệm (Buffer Overrun/Underrun) và phát tín hiệu ngắt (Interrupt Request).
  • Khả năng tái cấu hình linh hoạt (Reconfigurability) để hoạt động đa chế độ Master/Slave trên cùng một kiến trúc IP Core.
  • Phân tích định lượng chi tiết về tài nguyên logic, công suất tiêu thụ và tần số hoạt động cực đại ($F_{max}$) trên FPGA.

vẫn chưa được làm rõ một cách hệ thống.

3. Tính cấp thiết và tác động

Chuẩn Wishbone Bus (phát triển bởi Silicore Corporation và chuẩn hóa bởi cộng đồng OpenCores) là kiến trúc bus logic mở, phi bản quyền, giúp tối ưu hóa thời gian thiết kế vi mạch (Time-to-Market) và nâng cao tính khả chuyển của IP Core. Việc nghiên cứu, thiết kế trọn vẹn module SPI-Wishbone không chỉ bắt kịp xu thế tự chủ công nghệ bán dẫn mà còn đóng góp một khối IP quan trọng cho các dự án SoC tùy biến và nghiên cứu phát triển vi mạch ứng dụng tại Việt Nam.


Methodology và Tiếp cận Kỹ thuật (Methodology & Design Approach)

Nghiên cứu áp dụng quy trình thiết kế vi mạch số chuẩn hóa (Digital ASIC/FPGA Design Flow), kết hợp chặt chẽ giữa phân tích lý thuyết, thiết kế phần cứng RTL, và thẩm định mô phỏng số.

       +-------------------------------------------------------------+
       |                  1. Đặc tả Hệ thống & Kiến trúc             |
       |         - Giao thức SPI (Full-duplex, 4 Modes)              |
       |         - Wishbone Interface (SYSCON, SLAVE/MASTER Mode)    |
       +-------------------------------------------------------------+
                                      |
                                      v
       +-------------------------------------------------------------+
       |               2. Thiết kế RTL bằng Verilog HDL              |
       |  - Khối thanh ghi: RXDATA, TXDATA, STATUS, CONTROL, SSMASK  |
       |  - Khối TX/RX Datapath (Master/Slave Shift Registers)       |
       |  - Khối tạo xung SCLK & Điều khiển máy trạng thái (FSM)     |
       +-------------------------------------------------------------+
                                      |
                                      v
       +-------------------------------------------------------------+
       |             3. Tổng hợp Logic & Đánh giá Tài nguyên         |
       |         - Intel Quartus Prime Lite                          |
       |         - Phân tích Logic Elements, Fmax, Power Analyzer    |
       +-------------------------------------------------------------+
                                      |
                                      v
       +-------------------------------------------------------------+
       |             4. Kiểm chứng Dạng sóng & Đo kiểm Testbench     |
       |         - Mentor Graphics / QuestaSim 10.2                  |
       |         - Test Case 1: Master TX - Slave RX                 |
       |         - Test Case 2: Master RX - Slave TX                 |
       +-------------------------------------------------------------+

1. Kiến trúc phân tầng và bản đồ thanh ghi (Register Map)

Hệ thống được tổ chức thành các khối chức năng rõ ràng với hệ thống thanh ghi địa chỉ 8-bit chuẩn:

  • Thanh ghi Dữ liệu Nhận (REG_RXDATA - Địa chỉ 0x00, Quyền Read-Only): Lưu trữ byte dữ liệu hoàn chỉnh vừa được dịch từ chân MISO/MOSI vào.
  • Thanh ghi Dữ liệu Truyền (REG_TXDATA - Địa chỉ 0x04, Quyền Read/Write): Bộ đệm nhận dữ liệu từ bus Wishbone sẵn sàng chuyển vào thanh ghi dịch TX_SHIFT_DATA.
  • Thanh ghi Trạng thái (REG_STATUS - Địa chỉ 0x08, Quyền Read-Only): Giám sát trạng thái hoạt động theo thời gian thực:
    • Bit 2 (ROE): Cờ báo lỗi tràn nhận (Receive Overrun Error).
    • Bit 3 (TOE): Cờ báo lỗi tràn truyền (Transmit Overrun Error).
    • Bit 4 (TMT): Cờ báo thanh ghi dịch truyền đang trống (Transmit Shift Register Empty).
    • Bit 5 (TRDY): Cờ báo thanh ghi TX sẵn sàng nhận dữ liệu mới từ Wishbone.
    • Bit 6 (RRDY): Cờ báo thanh ghi RX đã có dữ liệu hợp lệ sẵn sàng để đọc.
    • Bit 7 (E): Cờ tổng hợp báo lỗi bit đường truyền.
  • Thanh ghi Điều khiển (REG_CONTROL - Địa chỉ 0x0C, Quyền Read/Write): Cấu hình ngắt (IROE, ITOE, ITRDY, IRRDY, IE) và bit duy trì chọn Slave (SSO).
  • Thanh ghi Chọn Slave (REG_SSMASK - Địa chỉ 0x10, Quyền Read/Write): Lựa chọn thiết bị ngoại vi giao tiếp thông qua đường SS_N.

2. Thiết kế đường truyền dữ liệu (Datapath) và Bộ chia xung

  • Khối phát xung SCK: Tần số xung giao tiếp ngoại vi $SCLK$ được sinh ra từ xung clock hệ thống $CLK_I$ thông qua hệ số chia tần $CLOCK_SEL$: $$SCLK = \frac{CLK_I}{2 \times (CLOCK_SEL + 1)}$$ Với $CLK_I = 50\text{ MHz}$ và cấu hình $CLOCK_SEL = 1$, tần số $SCLK$ đạt $12.5\text{ MHz}$, bảo đảm tính toàn vẹn tín hiệu trên đường truyền.
  • Cơ chế đệm kép (Double-Buffering): Sử dụng thanh ghi chốt dữ liệu trung gian kết hợp với Flip-Flop D nhằm tách biệt hoàn toàn tốc độ ghi dữ liệu từ bus Wishbone với tốc độ dịch bit của đường truyền nối tiếp SPI, loại trừ hiện tượng xung đột ghi đè (Race conditions).

Phát hiện và Kết quả Thực nghiệm Chính (Key Findings)

Thông qua quá trình mô phỏng trên QuestaSim 10.2 với các kịch bản kiểm thử (Test Cases) có chủ đích, nghiên cứu đã đạt được các kết quả nổi bật sau:

1. Độ chính xác truyền nhận tuyệt đối ở cả 2 chế độ

Hai kịch bản thử nghiệm tải dữ liệu mẫu chuẩn gồm các chuỗi byte bất kỳ (ví dụ: 8'hda = 11011010_2, 8'hf7 = 11110111_2):

  • Test Case 1 (Master truyền – Slave nhận): Master nhận địa chỉ 0x04 cùng dữ liệu 8'hda từ Wishbone. Tín hiệu bắt tay STB_I và WE_I kích hoạt, Master phản hồi ACK_O = 1. Sau đúng 8 chu kỳ xung nhịp $SCLK$, thanh ghi nhận dữ liệu của Slave xuất ra chính xác giá trị 8'hda, chuyển đổi thành công lên bus Wishbone của phía Slave.
  • Test Case 2 (Master nhận – Slave truyền): Dữ liệu được nạp vào Slave qua bus Wishbone, sau khi xung $SCLK$ và tín hiệu chọn chip $SS_N$ tích cực, Master dịch bit thành công từ đường MISO vào thanh ghi REG_RXDATA, dữ liệu trích xuất hoàn toàn trùng khớp với dữ liệu gốc.
Thông số đo lường Giá trị thiết kế / Thực nghiệm Đánh giá chức năng
Độ rộng dữ liệu (Data Width) 8 bits / Frame Chuẩn hóa truyền nhận byte
Chế độ hoạt động (SPI Modes) Hỗ trợ 4 Mode (CPOL 0/1, CPHA 0/1) Tương thích đa thiết bị ngoại vi
Tần số xung nhịp mẫu ($CLK_I$) $50\text{ MHz}$ Tốc độ đáp ứng Wishbone Bus chuẩn
Độ trễ truyền 1 Byte Đúng 8 chu kỳ xung $SCLK$ Không phát sinh trễ phụ (Zero Overhead)
Tính toàn vẹn tín hiệu Tỷ lệ lỗi bit BER = 0 trong mô phỏng Phản hồi chính xác dữ liệu kiểm thử

2. Đáp ứng chuẩn xác của cơ chế bắt tay Wishbone Bus

Tín hiệu xác nhận ACK_O được xác lập chính xác ngay sau khi dữ liệu được ghi vào REG_TXDATA hoặc đọc từ REG_RXDATA, bảo đảm bộ xử lý trung tâm không rơi vào trạng thái chờ treo bus (Bus Stall). Tín hiệu chọn chu kỳ CYC_I và xung chọn STB_I phối hợp đồng bộ, tuân thủ nghiêm ngặt chuẩn giao tiếp Wishbone B3.

3. Hoạt động tin cậy của mạch quản lý ngoại lệ và ngắt

Mạch ngắt SPI_INT_O kích hoạt ngay lập tức khi phát hiện các điều kiện biên vi phạm:

  • Xảy ra lỗi ROE khi dữ liệu mới từ SPI đẩy vào trong lúc dữ liệu cũ tại REG_RXDATA chưa được CPU đọc.
  • Xảy ra lỗi TOE khi Wishbone cố tình ghi đè lên REG_TXDATA khi tiến trình dịch bit chưa giải phóng thanh ghi.
  • Sự kết hợp logic giữa cờ trạng thái (reg_roe, reg_toe) và mặt nạ ngắt (reg_iroe, reg_itoe) chứng minh tính năng bảo vệ hệ thống vững chắc trước các lỗi tràn bộ nhớ.

Đóng góp Khoa học và Giá trị Thực tiễn (Scientific & Practical Contributions)

                            ĐÓNG GÓP CỦA CÔNG TRÌNH
                                       |
    +----------------------------------+----------------------------------+
    |                                                                     |
    v                                                                     v
[ GIÁ TRỊ KHOA HỌC & HỌC THUẬT ]                       [ GIÁ TRỊ THỰC TIỄN & CÔNG NGHIỆP ]
* Mô hình hóa hoàn chỉnh kiến trúc RTL                * Cung cấp lõi IP Core mã nguồn mở,
  kết hợp Wishbone-SPI đa năng.                         sẵn sàng nhúng cho FPGA & ASIC.
* Chuẩn hóa thiết kế FSM, cơ chế                      * Tối ưu hóa chi phí bản quyền (Free IP Core)
  chống tràn và mạch ngắt tin cậy.                      cho các dự án vi mạch thương mại/IoT.
* Tài liệu tham khảo chuẩn cho đào tạo                * Tương thích cao với kiến trúc vi xử lý
  kỹ sư Thiết kế Vi mạch & Hệ thống số.                 mở RISC-V, OpenRISC.

1. Đóng góp về mặt học thuật và lý thuyết vi mạch

  • Hoàn thiện mô hình kiến trúc vi mạch chi tiết: Công trình giải quyết triệt để sự thiếu hụt tài liệu chuyên sâu về thiết kế chi tiết đường truyền dữ liệu (Datapath), logic điều khiển dịch bit và cấu trúc thanh ghi cho bộ ghép nối bus Wishbone-SPI.
  • Cải tiến phương pháp điều khiển phân tầng: Việc tích hợp mạch máy trạng thái FSM độc lập cùng bộ chia clock linh hoạt giúp tối ưu hóa định thời (Timing closure), giảm thiểu xung đột tín hiệu logic không mong muốn (Glitches/Metastability).

2. Ứng dụng thực tiễn trong công nghiệp và giáo dục

  • Khả năng ứng dụng trực tiếp vào lõi SoC: Module được viết hoàn toàn bằng chuẩn Verilog RTL có tính linh động cao, dễ dàng tổng hợp và tích hợp trực tiếp vào các hệ thống SoC sử dụng vi xử lý mã nguồn mở như RISC-V, OpenRISC hoặc các hệ thống điều khiển công nghiệp tùy biến.
  • Giảm chi phí phát triển vi mạch: Nhờ ứng dụng chuẩn mở Wishbone, các kỹ sư và doanh nghiệp thiết kế chip có thể tái sử dụng trực tiếp module này mà không cần chi trả phí bản quyền giao tiếp đắt đỏ.
  • Đóng góp giáo dục và đào tạo: Là tài liệu tham khảo chất lượng cao phục vụ các môn học: Thiết kế Vi mạch tích hợp (VLSI Design), Ngôn ngữ mô tả phần cứng (Verilog/VHDL), Kiến trúc máy tính và Hệ thống nhúng.

Đối tượng Quan tâm và Lợi ích Mục tiêu (Target Audience)

  • Kỹ sư Thiết kế Vi mạch (ASIC/FPGA RTL Designers): Tiếp cận một mẫu thiết kế IP Core hoàn chỉnh, chuẩn hóa, có thể đưa vào thư viện thiết kế để tái sử dụng trong các dự án vi mạch phức tạp.
  • Kỹ sư Hệ thống Nhúng & IoT: Hiểu rõ cơ chế ánh xạ bộ nhớ (Memory-mapped I/O), cấu hình thanh ghi và cách vận hành bắt tay giữa vi xử lý với các ngoại vi SPI tốc độ cao.
  • Nhà nghiên cứu & Giảng viên Đại học: Nguồn tư liệu trực quan, thực chứng phục vụ công tác giảng dạy, nghiên cứu chuyên sâu về vi điện tử và thiết kế hệ thống số.
  • Sinh viên chuyên ngành Kỹ thuật Điện tử - Viễn thông / Kỹ thuật Máy tính: Nắm bắt quy trình từ phân tích lý thuyết, hiện thực hóa mã nguồn Verilog đến mô phỏng dạng sóng trên phần mềm công nghiệp chuyên dụng.

Hỏi đáp Chuyên sâu (FAQ)

1. Điểm nổi bật nhất trong thiết kế của đề tài này là gì?

Thiết kế tích hợp thành công cấu trúc hai trong một (Dual-Mode): module có khả năng cấu hình mềm dẻo để đóng vai trò là SPI Master (điều khiển ngoại vi) hoặc SPI Slave (nhận lệnh từ vi xử lý khác) thông qua chuẩn giao tiếp mở Wishbone, đi kèm mạch ngắt phát hiện lỗi tràn dữ liệu phần cứng toàn diện.

2. Phương pháp tiếp cận (Methodology) của nghiên cứu có gì đặc biệt?

Nghiên cứu xây dựng trọn vẹn chu trình thiết kế số: từ thiết kế kiến trúc sơ đồ khối logic chi tiết $\rightarrow$ mã hóa Verilog RTL $\rightarrow$ kiểm thử Testbench đa kịch bản trên môi trường mô phỏng chuyên dụng QuestaSim $\rightarrow$ tổng hợp logic đánh giá tài nguyên trên Quartus Prime, đảm bảo tính chuẩn xác trước khi thi công phần cứng.

3. Kết quả của nghiên cứu có thể mở rộng (Generalize) sang các giao thức khác không?

Hoàn toàn khả thi. Kiến trúc tầng thanh ghi và giao diện Wishbone bus trong đề tài được thiết kế theo dạng module độc lập (Modular design). Do đó, người phát triển có thể dễ dàng thay thế khối truyền nhận nối tiếp SPI bằng các giao thức khác như I2C, UART, hoặc CAN mà vẫn giữ nguyên giao diện tương thích với vi xử lý.

4. Hướng phát triển tiếp theo (Next Steps) của đề tài là gì?

Các hướng nâng cấp tiềm năng bao gồm: mở rộng giao thức sang Dual-SPI và Quad-SPI (QSPI) để tăng gấp 4 lần băng thông truyền nhận; tích hợp thêm bộ điều khiển truy cập bộ nhớ trực tiếp DMA (Direct Memory Access) để giảm tải cho CPU; và tiến hành kiểm chứng vật lý trên các KIT phát triển FPGA (như Cyclone IV, DE10-Lite).

5. Lợi ích thực tế lớn nhất của việc kết hợp SPI với Wishbone Bus là gì?

Wishbone đóng vai trò là cây cầu chuẩn hóa giúp vi xử lý trung tâm truy cập module SPI như một vùng nhớ thông thường (Memory-mapped register access). Điều này giúp việc lập trình điều khiển trở nên trực quan, tăng độ tin cậy và chuẩn hóa giao tiếp trong các hệ thống chip SoC phức tạp.


Kết luận (Conclusion)

Đề tài "Thiết kế và thi công bộ truyền nhận theo giao thức SPI-Wishbone" đã hoàn thành xuất sắc các mục tiêu nghiên cứu đề ra. Nhóm tác giả đã chuẩn hóa thành công kiến trúc phần cứng bộ truyền nhận SPI đa chế độ tương thích Wishbone Bus bằng ngôn ngữ Verilog HDL, chứng minh độ chính xác 100% qua các dạng sóng mô phỏng trên QuestaSim và kiểm soát chặt chẽ tài nguyên phần cứng.

Công trình khẳng định năng lực nghiên cứu, làm chủ công nghệ thiết kế vi mạch số của sinh viên Việt Nam, mở ra triển vọng ứng dụng rộng rãi trong các dự án SoC nguồn mở và hệ thống IoT hiện đại.

[!TIP] Khám phá thêm: Để khai thác tối đa mã nguồn và mô hình kiến trúc của lõi IP này, các nhà phát triển có thể tham khảo chi tiết tài liệu thiết kế RTL, mở rộng thử nghiệm trên các vi xử lý RISC-V SoC mã nguồn mở và liên hệ nhóm nghiên cứu để thúc đẩy các giải pháp tích hợp phần cứng tiên tiến.