Bối cảnh và vấn đề nghiên cứu
Ngành công nghiệp thiết kế vi mạch tại Việt Nam hiện nay chủ yếu tập trung nguồn lực vào giai đoạn thiết kế vật lý (Back-end), bao gồm tối ưu hóa layout, định tuyến đường dây, phân tích công suất và kiểm tra các ràng buộc vật lý của chip. Ngược lại, mảng thiết kế mức truyền thanh ghi (RTL Design) thuộc giai đoạn Front-end vẫn là một lĩnh vực mới mẻ, đòi hỏi sự am hiểu sâu rộng về kiến trúc logic, giao thức truyền thông và kỹ thuật tối ưu hóa phần cứng.
Chuẩn giao tiếp ngoại vi tốc độ cao PCIe (Peripheral Component Interconnect Express) giữ vai trò then chốt trong các hệ thống máy tính hiện đại, trung tâm dữ liệu và đơn vị xử lý dữ liệu (DPU). Lớp giao dịch (Transaction Layer) trong kiến trúc PCIe hoạt động như cơ chế điều phối trung tâm, chịu trách nhiệm đóng gói, giải mã và định tuyến các gói tin giao dịch (TLP), đồng thời đóng vai trò cầu nối dữ liệu giữa các chip trong những hệ thống tính toán hiệu năng cao. Để mô hình hóa, kiểm tra và tối ưu hóa hoạt động của lớp giao dịch trước khi tiến hành quy trình sản xuất thực tế, việc nghiên cứu và xây dựng mô hình Transaction Layer Modeling (TLM) cho chuẩn giao tiếp PCIe 5.0 là một yêu cầu kỹ thuật cấp thiết.
Theo nội dung đồ án tốt nghiệp, mục tiêu thiết kế và các yêu cầu kỹ thuật của hệ thống TLM bao gồm 5 điểm chính:
- Hoạt động ổn định tại tần số xung nhịp 1,6 GHz.
- Đường nhận dữ liệu ngõ vào tương thích với chuẩn PCIe 5.0 và duy trì khả năng tương thích ngược với các phiên bản PCIe thế hệ trước.
- Hỗ trợ truyền và nhận dữ liệu đồng thời trên nhiều kênh (multi-channel).
- Tích hợp cơ chế tạm dừng hệ thống mà không gây mất mát hay sai lệch dữ liệu đã truyền.
- Quản lý lưu lượng kênh truyền hiệu quả: khi một kênh truyền/nhận xảy ra tình trạng tắc nghẽn, sự cố đó phải được cách ly hoàn toàn, không ảnh hưởng đến các kênh khác; đồng thời kênh bị tắc nghẽn có khả năng tự động khôi phục.
Đối tượng nghiên cứu của đề tài là kiến trúc và chức năng của Transaction Layer trong chuẩn PCIe 5.0, tập trung vào việc thiết kế mô hình RTL TLM đóng vai trò cầu nối giữa khối điều khiển CXL (Compute Express Link) và khối Core xử lý dữ liệu nội bộ của chip. Phạm vi nghiên cứu được thực hiện tại Bộ môn Kỹ thuật Máy tính - Viễn thông, Khoa Điện - Điện tử, Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh, hoàn thành và nghiệm thu vào tháng 6 năm 2024.
Cơ sở lý thuyết và phương pháp
Cơ sở lý thuyết của đồ án dựa trên đặc tả kỹ thuật của chuẩn giao tiếp PCIe 5.0 do tổ chức PCI-SIG ban hành năm 2019, cùng chuẩn giao thức bus nội vi chip AMBA AXI-Stream và giao thức CXL.
Chuẩn PCIe 5.0 nâng tốc độ truyền dẫn dữ liệu lên 32 GT/s (gigatransfers per second), tương đương băng thông 64 GB/s trên mỗi làn truyền dẫn (lane). Để đạt được hiệu suất này mà vẫn đảm bảo tính tương thích ngược, chuẩn sử dụng kỹ thuật điều chế biên độ xung 4 mức (PAM4 - Pulse Amplitude Modulation 4) thay cho kỹ thuật Non-Return-to-Zero (NRZ) truyền thống, cho phép truyền 2 bit trên mỗi chu kỳ tín hiệu.
Kiến trúc phân tầng của PCIe 5.0 gồm 3 lớp chính:
- Physical Layer (PHY): Thực hiện giao tiếp điện tử, điều chỉnh, tái tạo tín hiệu và xử lý lỗi truyền dẫn vật lý.
- Data Link Layer: Đảm nhận việc đồng bộ hóa dữ liệu, kiểm tra tính toàn vẹn (CRC) và quản lý luồng điểm-tới-điểm.
- Transaction Layer: Sử dụng cơ chế Split-Transaction với cấu trúc đường ống (pipeline), phân tách giao dịch thành hai giai đoạn độc lập: Giai đoạn yêu cầu (Request Phase) và Giai đoạn phản hồi hoàn thành (Completion Phase). Cơ chế này giúp tối ưu hóa băng thông mà không bắt buộc thiết bị phải chờ phản hồi tức thì.
| Phiên bản PCIe |
Tốc độ truyền dữ liệu |
Băng thông tương ứng |
Phương pháp điều chế |
| PCIe 1.0 |
2,5 GT/s |
250 MB/s/lane |
NRZ |
| PCIe 2.0 |
5,0 GT/s |
500 MB/s/lane |
NRZ |
| PCIe 3.0 |
8,0 GT/s |
1 GB/s/lane |
NRZ |
| PCIe 4.0 |
16,0 GT/s |
2 GB/s/lane |
NRZ |
| PCIe 5.0 |
32,0 GT/s |
64 GB/s/lane |
PAM4 |
Giao dịch trong Transaction Layer được phân loại thành ba nhóm chức năng:
- Posted Transaction: Giao dịch không yêu cầu gói tin phản hồi hoàn thành (thường áp dụng cho thao tác ghi bộ nhớ - Memory Write).
- Non-posted Transaction: Giao dịch bắt buộc phải có gói tin phản hồi hoàn thành (áp dụng cho thao tác đọc bộ nhớ - Memory Read, đọc/ghi cấu hình - Configuration Read/Write, đọc/ghi I/O).
- Completion: Giao dịch phản hồi dùng để trả về dữ liệu đọc hoặc xác nhận kết thúc thao tác.
Gói tin TLP (Transaction Layer Packet) bao gồm các thành phần:
- TLP Prefix (tùy chọn): Cung cấp thông tin bổ sung về quyền ưu tiên, lọc gói (Local TLP Prefix) hoặc định tuyến, gỡ lỗi (End-to-End TLP Prefix).
- TLP Header: Định dạng 3DW hoặc 4DW (Double Word, 1 DW = 32 bit = 4 byte), chứa các trường Fmt (Format), Type, Length (từ 1 DW đến tối đa 1024 DW, tức 4096 byte dữ liệu payload), Tag, Requester ID, Address, Traffic Class (TC).
- Data Payload: Phần dữ liệu thực tế cần truyền tải.
- TLP Digest (tùy chọn): Chứa mã kiểm tra lỗi dư thừa vòng CRC 32-bit (LCRC/ECRC) để xác thực toàn vẹn dữ liệu từ đầu cuối đến đầu cuối.
| Trường Fmt [2:0] |
Ý nghĩa định dạng TLP Header |
000b |
Tiêu đề 3DW, không chứa payload dữ liệu |
001b |
Tiêu đề 4DW, không chứa payload dữ liệu |
010b |
Tiêu đề 3DW, có chứa payload dữ liệu |
011b |
Tiêu đề 4DW, có chứa payload dữ liệu |
100b |
TLP Prefix |
Về phương pháp thực hiện, đề tài áp dụng quy trình thiết kế vi mạch số mức RTL:
- Ngôn ngữ mô tả phần cứng: SystemVerilog.
- Công cụ biên dịch mã nguồn: Synopsys VCS Compiler.
- Môi trường mô phỏng và kiểm tra dạng sóng: Synopsys DVE (Design and Verification Environment).
- Công cụ tổng hợp logic: Synopsys RTL Architecture để đánh giá diện tích tài nguyên, đường trễ thời gian (timing) và số lượng cell logic/bộ nhớ.
- Nguồn dữ liệu: Dữ liệu kiểm thử được sinh trực tiếp thông qua testbench trong môi trường mô phỏng, bao gồm các chuỗi TLP mẫu cho các cổng CXL0 (512-bit), CXL1/2/3 (256-bit) và giao diện AXI-Stream 512-bit nối vào Core.
Thiết kế và triển khai
Hệ thống Transaction Layer Modeling (TLM) được thiết kế làm tầng trung gian kết nối giữa thiết bị điều khiển CXL (Compute Express Link Controller) phía ngoài và khối vi xử lý trung tâm (Core) bên trong chip SoC. Giao tiếp giữa TLM và CXL sử dụng chuẩn giao thức bus song song, trong khi giao tiếp giữa TLM và Core sử dụng chuẩn bus truyền dữ liệu liên tục AXI-Stream.
Kiến trúc TLM gồm hai hệ thống con chính:
- TLMux (Transaction Layer Multiplexing): Đảm nhiệm vai trò ghép kênh và phân kênh dữ liệu, điều phối luồng giao thông khi nhiều thiết bị CXL gửi dữ liệu cùng một thời điểm, gắn tiêu đề TLP Header vào dữ liệu thực (hướng TX) và tách TLP Header khỏi payload (hướng RX).
- PCIe Handler: Gồm RX PCIe Handler và TX PCIe Handler. Khối này chịu trách nhiệm khởi tạo TLP Header dựa trên các thông số cấu hình và giải mã TLP Header nhận được để chuyển đổi thành cấu trúc tín hiệu TUSER đưa vào Core qua AXI-Stream.
Kiến trúc dữ liệu phần cứng được định nghĩa chính xác thông qua các cấu trúc SystemVerilog:
- Gói TLP 512-bit (
tlp_t): Chứa bus dữ liệu dat[511:0], số byte hợp lệ nob[5:0], cờ báo đầu gói sop và cờ báo cuối gói eop.
- Gói TLP 256-bit (
tlp256_t): Chứa bus dữ liệu dat[255:0], số byte hợp lệ nob[4:0], cùng hai cờ sop và eop.
- Cấu trúc giải mã thông tin TLP Header (
mux_user_t): Lưu trữ loại giao dịch trans_typ[1:0] (Memory, I/O, Configuration, Completion), loại yêu cầu đọc/ghi rw_req, định dạng địa chỉ add_req (3DW hoặc 4DW), định danh gói tag[9:0], lớp lưu lượng tc[2:0], cờ báo độc dữ liệu ep, trường độ dài byte byte_cnt[11:0], các trường địa chỉ haddr[31:0], laddr[29:0], cùng mã thiết bị req_id[15:0].
| Thành phần tín hiệu AXI-Stream |
Chiều tín hiệu |
Độ rộng |
Chức năng trong hệ thống TLM |
TVALID |
TX Core -> TLM / TLM -> RX Core |
1 bit |
Báo hiệu dữ liệu trên đường truyền khả dụng |
TREADY |
Core / TLM |
1 bit |
Báo hiệu thiết bị nhận sẵn sàng tiếp nhận dữ liệu |
TDATA |
Core / TLM |
512 bit |
Bus dữ liệu truyền nhận |
TKEEP |
Core / TLM |
64 bit |
Byte qualifier, xác định các byte hợp lệ trong TDATA |
TLAST |
Core / TLM |
1 bit |
Chỉ thị byte hợp lệ cuối cùng của gói dữ liệu |
TID |
Core / TLM |
2 bit |
Định danh kênh truyền hoặc thiết bị trong hệ thống |
TUSER |
Core / TLM |
struct user_info_t |
Thông tin điều khiển và tiêu đề giải mã từ TLP Header |
Đường truyền dữ liệu hướng truyền (TX Datapath): Dữ liệu từ TX Core đi qua TX PCIe Handler để lưu trữ tạm thời và khởi tạo TLP Header tương ứng với từng kênh ID. Khối TX Framer tiếp nhận Header và dữ liệu thực, ghép TLP Header vào gói dữ liệu đầu tiên để tạo thành TLP hoàn chỉnh. Khối Demux giải mã trường ID và định tuyến gói TLP vào các hàng đợi FIFO riêng biệt. Do cổng CXL0 sử dụng bus 512-bit, dữ liệu được truyền thẳng; trong khi các cổng CXL1, CXL2, CXL3 sử dụng bus 256-bit nên dữ liệu 512-bit phải đi qua khối TX Shift để chia nhỏ thành hai chu kỳ truyền 256-bit liên tiếp.
Đường truyền dữ liệu hướng nhận (RX Datapath): Cổng CXL0 đưa trực tiếp luồng TLP 512-bit vào FIFO đầu vào. Các cổng CXL1, CXL2, CXL3 nhận dữ liệu 256-bit, chuyển qua khối Shift In để gom hai từ mã 256-bit thành một từ mã 512-bit trước khi đẩy vào FIFO trong module Round-Robin Mux (RRMux). Khối RRMux thực hiện giải thuật xoay vòng để lấy dữ liệu từ các FIFO theo thứ tự công bằng. Khi FIFO nhận đủ gói dữ liệu hoàn chỉnh (xác nhận cờ EOP), khối RX Framer sẽ tách TLP Header ra khỏi payload thực tế. TLP Header được gửi sang RX PCIe Handler để giải mã thành thông tin TUSER, đồng thời payload được đưa qua giao diện AXI-Stream gửi đến RX Core khi tín hiệu TREADY tích cực.
Giải pháp thiết kế bộ nhớ đệm FIFO Req/Ack: Do chuỗi dữ liệu TLP có thể đạt chiều dài tối đa 1024 DW (4096 byte = 32.768 bit), vượt xa ngưỡng tối ưu cho thanh ghi thông thường (<= 3072 bit), tác giả sử dụng bộ nhớ SRAM cổng kép (Dual-port SRAM) có độ sâu 64 phần tử để lưu trữ. Trong thiết kế chip thực tế, bộ nhớ SRAM On-Chip đòi hỏi độ trễ đọc 2 chu kỳ xung nhịp (1 chu kỳ để cải thiện định thời/timing và 1 chu kỳ để kiểm tra, sửa lỗi). Độ trễ 2 clock này gây xung đột với cơ chế bắt tay tức thời giữa Request (Req) và Acknowledge (Ack).
Để khắc phục hiện tượng trễ đọc, tác giả thiết kế cấu trúc FIFO lai bao gồm:
- Khối RAM chính: Dung lượng 64 ô nhớ, lưu trữ khối lượng lớn dữ liệu payload.
- Khối FIFO Control: Điều khiển con trỏ đọc/ghi và sinh cờ trạng thái (
fffull, fftfull, fflen[6:0]).
- Khối FIFO Adapt: Thiết kế bằng mảng thanh ghi tốc độ cao. Dữ liệu sau khi khởi động hoặc reset sẽ được tự động đọc trước từ RAM sang FIFO Adapt để lấp đầy bộ đệm thanh ghi này. Khi có tín hiệu
ack yêu cầu dữ liệu từ bên ngoài, FIFO Adapt lập tức xuất dữ liệu ra chân reqinfo trong cùng chu kỳ, đồng thời kích hoạt đọc từ RAM để bù đắp ô nhớ vừa giải phóng. Kiến trúc này triệt tiêu hoàn toàn 2 chu kỳ trễ của SRAM, duy trì thông lượng liên tục.
Hệ thống tích hợp hai cơ chế kiểm soát áp lực ngược (Back-pressure):
- Back-pressure Point-to-Point: Tác động trực tiếp giữa các module liền kề thông qua các cặp tín hiệu bắt tay
req/ack hoặc TVALID/TREADY.
- Back-pressure End-to-End: Truyền tín hiệu dừng từ Core hoặc ngõ ra CXL ngược về đầu vào của toàn hệ thống thông qua các tín hiệu
tl_tx_wait0 và tl_rx_wait0. Khi ngõ nhận kích hoạt trạng thái dừng, toàn bộ các bộ đệm FIFO tự động đóng băng con trỏ đọc, bảo toàn trạng thái dữ liệu nguyên vẹn trên đường truyền cho đến khi tín hiệu chờ được giải phóng.
Nội dung chính theo từng chương
Chương 1: Giới thiệu đề tài
Chương mở đầu phân tích bối cảnh phát triển của ngành công nghiệp vi mạch bán dẫn, làm rõ khoảng trống nghiên cứu và thiết kế Front-end (RTL design) tại Việt Nam. Tác giả xác định mục tiêu thiết kế mô hình Transaction Layer Modeling (TLM) cho chuẩn PCIe 5.0, đặt ra các chỉ tiêu kỹ thuật cụ thể: vận hành tại tần số xung nhịp 1,6 GHz, hỗ trợ truyền nhận đa kênh, bảo toàn dữ liệu khi tạm dừng hệ thống, và tự động xử lý tắc nghẽn cục bộ. Chương này cũng liệt kê công cụ EDA chuẩn công nghiệp được sử dụng bao gồm Synopsys VCS Compiler, Synopsys DVE và Synopsys RTL Architecture, cùng ngôn ngữ SystemVerilog.
Chương 2: Peripheral Component Interconnect Express (PCIe) 5.0
Chương này tổng quan về lịch sử phát triển, đặc tính kỹ thuật và kiến trúc phân tầng của chuẩn giao tiếp PCIe 5.0 được PCI-SIG công bố. Nội dung đi sâu phân tích thông số tốc độ truyền dẫn 32 GT/s, phương pháp điều chế tín hiệu PAM4 đa mức, và cơ chế tương thích ngược với các thế hệ PCIe 1.0 đến 4.0. Tác giả phân tích chức năng nhiệm vụ của 3 lớp giao thức cốt lõi: Physical Layer (chuyển đổi điện thế, cân chỉnh tín hiệu, sửa lỗi vật lý), Data Link Layer (đồng bộ thứ tự gói tin, phát hiện lỗi qua CRC, điều khiển luồng dữ liệu) và giới thiệu sơ lược vị trí của Transaction Layer trong việc gán địa chỉ và kiểm soát truy cập hệ thống.
Chương 3: Transaction Layer trong PCI Express 5.0
Nội dung chương 3 cung cấp cơ sở lý thuyết chi tiết về lớp Transaction Layer. Tác giả phân tích cơ chế Split-Transaction và cơ cấu pipeline giúp tách biệt pha Request và Completion, quản lý luồng dữ liệu theo hạn mức tín dụng (Credit-based Flow Control). Chương phân loại chi tiết các loại giao dịch (Posted, Non-posted, Completion) và 7 loại gói tin TLP cơ bản (Memory Read/Write, Configuration Read/Write Type 0 và Type 1, I/O Read/Write, Message Request). Phần cấu trúc TLP phân tích tỉ mỉ các trường mã hóa trong tiêu đề: Fmt, Type, Length (độ dài từ 1 đến 1024 DW), các trường định danh và địa chỉ trong các mẫu Header chuẩn 3DW, 4DW, I/O Header, Configuration Header và Completion Header, cùng vai trò của TLP Prefix và mã kiểm tra TLP Digest 32-bit CRC.
Chương 4: Thiết kế hệ thống
Đây là chương nội dung kỹ thuật trọng tâm của đồ án, trình bày toàn bộ quy trình hiện thực hóa mô hình TLM bằng SystemVerilog. Tác giả thiết lập các yêu cầu hệ thống, xây dựng các cấu trúc dữ liệu đóng gói chuẩn (tlp_t, tlp256_t, mux_user_t, user_info_t) và mô tả chi tiết giao diện với CXL Controller và Core qua chuẩn AXI-Stream. Chương thuyết minh chi tiết hoạt động của đường truyền TX Datapath và RX Datapath. Trọng tâm của chương là thiết kế vi kiến trúc module FIFO Req/Ack kết hợp Dual-port SRAM 64 ô nhớ và bộ đệm thanh ghi FIFO Adapt để xóa bỏ độ trễ 2 clock đọc của SRAM. Bên cạnh đó, chương mô tả nguyên lý vận hành của các khối TLMux, Round-Robin Mux (RRMux), RX/TX Framer, RX/TX Shift, RX/TX PCIe Handler và cơ chế kiểm soát áp lực ngược (Back-pressure) điểm-tới-điểm lẫn đầu-cuối.
Chương 5: Kết quả mô phỏng và Synthesis
Chương 5 trình bày việc kiểm thử chức năng và tổng hợp mạch logic. Trên môi trường Synopsys DVE, tác giả thực hiện các kịch bản kiểm thử:
- Kiểm thử hướng RX (RX Testcase 1, 2, 3): Kiểm tra khả năng nhận gói TLP, tách tiêu đề TLP Header, chuyển đổi dữ liệu từ 256-bit sang 512-bit qua khối Shift In, điều phối xoay vòng RRMux, kiểm tra phản ứng khi tín hiệu tạm dừng
wait = 1'b1, và xuất dữ liệu sang AXI-Stream tương ứng với các kênh.
- Kiểm thử hướng TX (TX Testcase 1, 2): Kiểm tra việc tiếp nhận dữ liệu từ Core, tạo tiêu đề TLP Header, ghép khung TLP hoàn chỉnh tại TX Framer và chia tách dữ liệu từ 512-bit thành 256-bit đưa ra các cổng CXL1/2/3.
- Kết quả tổng hợp (Synthesis): Thiết lập xung nhịp clock mục tiêu 1,6 GHz trên công cụ Synopsys RTL Architecture, biên dịch thành công mô hình RTL sang netlist ở cấp độ cổng/cell để kiểm tra tính khả thi phần cứng và đánh giá tài nguyên cell nhớ.
Chương 6: Kết luận & Hướng phát triển
Chương tổng kết các hạng mục đã hoàn thành trong đồ án, đối chiếu kết quả mô phỏng và synthesis với các mục tiêu thiết kế ban đầu. Tác giả nêu rõ các kết quả đạt được về mặt chức năng logic và phân tích các hạn chế còn tồn tại, đồng thời đề xuất lộ trình mở rộng nghiên cứu trong tương lai.
Kết quả và đóng góp
Về kết quả kỹ thuật, đồ án đã hoàn thành thiết kế và kiểm chứng đầy đủ các khối chức năng của hệ thống Transaction Layer Modeling (TLM) cho PCIe 5.0 bằng ngôn ngữ SystemVerilog:
- Xây dựng hoàn chỉnh kiến trúc đường truyền hai hướng: TX Datapath (đóng gói khung TLP, ghép TLP Header, phân kênh ID, chuyển đổi 512b sang 256b) và RX Datapath (ghép gom 256b thành 512b, điều phối Round-Robin, tách TLP Header, chuyển đổi giao thức sang AXI-Stream).
- Thiết kế thành công module bộ nhớ đệm FIFO Req/Ack tích hợp Dual-port SRAM độ sâu 64 ô nhớ và tầng đệm thanh ghi FIFO Adapt, loại bỏ thành công 2 chu kỳ trễ của SRAM on-chip, cho phép hệ thống đáp ứng tín hiệu
ack ngay tức thì trong chu kỳ hiện tại.
- Kiểm tra tính đúng đắn của logic qua hệ thống testbench toàn diện trên công cụ Synopsys VCS Compiler và kiểm tra dạng sóng tín hiệu trên Synopsys DVE qua các testcase RX (Testcase 1, 2, 3) và TX (Testcase 1, 2). Kết quả mô phỏng xác nhận hệ thống truyền nhận chính xác dữ liệu giữa bus CXL (cổng 512-bit và cổng 256-bit) và bus AXI-Stream 512-bit của Core.
- Thiết lập ràng buộc và tổng hợp logic thành công trên công cụ Synopsys RTL Architecture tại tần số xung nhịp mục tiêu 1,6 GHz.
Về đóng góp học thuật và thực tiễn:
- Đồ án là một trong những nghiên cứu mức đại học tiếp cận trực tiếp vào phân khúc thiết kế logic Front-end (RTL design) cho chuẩn giao tiếp thế hệ mới PCIe 5.0 tại Việt Nam, vượt ra ngoài phạm vi quen thuộc của mảng thiết kế vật lý Back-end.
- Đề xuất giải pháp kiến trúc phần cứng kết hợp hiệu quả giữa bộ nhớ SRAM dung lượng lớn và khối đệm thanh ghi thích ứng (FIFO Adapt), giải quyết triệt để bài toán đánh đổi giữa dung lượng lưu trữ TLP lớn (lên tới 4096 byte) và yêu cầu thông lượng cao, không trễ thời gian trong giao thức bắt tay Req/Ack.
- Cung cấp mô hình tham khảo chi tiết về cơ chế ánh xạ giữa gói tin PCIe TLP và chuẩn bus SoC công nghiệp AMBA AXI-Stream, phục vụ trực tiếp cho việc phát triển các bộ điều khiển giao tiếp trong vi xử lý hoặc bộ tăng tốc tính toán (DPU/CXL accelerator).
Hạn chế và hướng nghiên cứu tiếp
Hạn chế của đề tài:
- Đồ án dừng lại ở bước mô phỏng hành vi chức năng (RTL simulation) và tổng hợp logic sơ bộ (logic synthesis) trên phần mềm Synopsys RTL Architecture để ước lượng cell nhớ; chưa tiến hành các bước thiết kế vật lý chi tiết (Place and Route - PnR), chưa kiểm tra timing sau đóng gói (Post-layout timing analysis) và chưa đo lường các thông số thực tế về tiêu thụ công suất (Power consumption) cũng như diện tích đế chip (Die area).
- Thiết kế chưa được nạp và kiểm chứng thực nghiệm trên các kít vi mạch phần cứng chuyên dụng tốc độ cao (như FPGA cao cấp hỗ trợ PCIe Gen 5) do rào cản về trang thiết bị vật lý.
- Môi trường kiểm thử (Verification) mới được xây dựng bằng testbench SystemVerilog cơ bản, chưa áp dụng phương pháp kiểm thử ngẫu nhiên có ràng buộc theo phương pháp luận tiêu chuẩn công nghiệp UVM (Universal Verification Methodology).
Hướng nghiên cứu tiếp:
- Xây dựng môi trường xác minh toàn diện theo chuẩn UVM nhằm bao phủ toàn bộ các góc kiểm thử (corner cases), tự động hóa việc chấm điểm độ bao phủ mã (code coverage) và độ bao phủ chức năng (functional coverage).
- Tích hợp thêm các tính năng nâng cao của Transaction Layer được quy định trong chuẩn PCIe 5.0, bao gồm: phân định chất lượng dịch vụ nâng cao (QoS), mở rộng số lượng kênh ảo (Virtual Channels - VC), hỗ trợ các thao tác nguyên tử (Atomic Operations) và khối phần cứng chuyên dụng tính toán mã kiểm tra toàn vẹn CRC 32-bit (TLP Digest / ECRC).
- Tiếp tục thực hiện các công đoạn thiết kế vật lý Back-end để tiến tới khả năng hiện thực hóa mô hình trên chip ASIC thực tế.
Giá trị tham khảo
Đồ án tốt nghiệp này là tài liệu tham khảo hữu ích cho các nhóm đối tượng:
- Sinh viên đại học và học viên cao học thuộc các ngành Kỹ thuật Điện tử, Kỹ thuật Viễn thông, Kỹ thuật Máy tính và Thiết kế Vi mạch đang theo học các môn học về Thiết kế ASIC/FPGA, Kiến trúc máy tính nâng cao hoặc Giao tiếp vi mạch.
- Các kỹ sư thiết kế phần cứng số (RTL Design Engineers) và kỹ sư kiểm tra vi mạch (Verification Engineers) đang nghiên cứu hoặc phát triển các module điều khiển giao tiếp ngoại vi tốc độ cao PCIe, CXL hoặc giao tiếp bus AXI trên chip SoC.
Những nội dung có giá trị tham khảo chuyên sâu bao gồm:
- Thiết kế mạch chi tiết và nguyên lý hoạt động của module FIFO Req/Ack kết hợp SRAM và thanh ghi Adapt để che giấu độ trễ đọc 2 chu kỳ xung nhịp.
- Cấu trúc đóng gói dữ liệu và mã hóa SystemVerilog cho các trường của tiêu đề TLP Header (3DW, 4DW, Memory, I/O, Config, Completion).
- Cơ chế phân tách và hợp nhất độ rộng dữ liệu giữa bus 512-bit và bus 256-bit thông qua các khối Shift In và Shift Out trong các luồng truyền nhận thời gian thực.
Câu hỏi thường gặp
1. Tần số xung nhịp mục tiêu của khối TLM trong đồ án là bao nhiêu và được tổng hợp trên công cụ nào?
Hệ thống Transaction Layer Modeling (TLM) được thiết kế để hoạt động tại tần số xung nhịp 1,6 GHz. Quá trình biên dịch mã nguồn được thực hiện trên công cụ Synopsys VCS Compiler, mô phỏng trên Synopsys DVE, và quá trình tổng hợp logic (synthesis) để đánh giá các cell nhớ được thực hiện trên công cụ Synopsys RTL Architecture.
2. Tại sao thiết kế FIFO Req/Ack lại phải kết hợp cả Dual-port SRAM và bộ đệm thanh ghi FIFO Adapt?
Độ dài chuỗi dữ liệu tối đa của gói TLP trong PCIe từ SOP đến EOP có thể lên tới 1024 DW (tương đương 4096 byte = 32.768 bit), vượt xa dung lượng lưu trữ hợp lý của thanh ghi thông thường (thường chỉ dùng khi <= 3072 bit), do đó cần dùng bộ nhớ SRAM cổng kép (độ sâu 64 ô) để tiết kiệm diện tích. Tuy nhiên, SRAM on-chip đòi hỏi độ trễ 2 chu kỳ xung nhịp sau khi đọc (1 chu kỳ cải thiện timing, 1 chu kỳ kiểm tra và sửa lỗi), khiến việc phản hồi tín hiệu không đáp ứng được giao thức bắt tay Req/Ack tức thời. Tác giả đã thiết kế thêm tầng đệm FIFO Adapt bằng thanh ghi để đọc trước dữ liệu từ SRAM; khi có tín hiệu ack, FIFO Adapt lập tức xuất dữ liệu có sẵn ra ngoài mà không phải chờ 2 chu kỳ trễ của SRAM.
3. Hệ thống xử lý sự khác biệt về độ rộng bus dữ liệu giữa các cổng CXL như thế nào?
Cổng CXL0 có độ rộng bus dữ liệu là 512-bit, bằng với độ rộng dữ liệu nội bộ của hệ thống nên được truyền thẳng. Các cổng CXL1, CXL2 và CXL3 có độ rộng bus là 256-bit. Ở hướng truyền (TX), khối TX Shift sẽ chia một gói dữ liệu 512-bit thành hai gói dữ liệu 256-bit để gửi ra CXL. Ở hướng nhận (RX), khối Shift In sẽ gom hai gói dữ liệu 256-bit liên tiếp từ CXL thành một gói 512-bit trước khi chuyển tiếp vào các khối xử lý tiếp theo.
4. Giao diện giữa khối TLM và khối Core bên trong chip được thiết kế theo chuẩn giao thức nào?
Giao tiếp giữa TLM và Core sử dụng chuẩn bus giao tiếp trực tiếp AMBA AXI-Stream. Độ rộng bus dữ liệu TDATA là 512-bit, sử dụng kèm các tín hiệu bắt tay TVALID, TREADY, tín hiệu định danh kênh TID (2-bit), cờ kết thúc gói TLAST, tín hiệu hợp lệ TKEEP (64-bit) và tín hiệu người dùng tự định nghĩa TUSER (chứa toàn bộ thông tin giải mã từ TLP Header như loại giao dịch, quyền đọc/ghi, địa chỉ, tag, requester ID).
5. Cơ chế Split-Transaction trong Transaction Layer của PCIe mang lại ưu điểm gì?
Cơ chế Split-Transaction phân chia toàn bộ quá trình giao dịch thành hai pha độc lập: Pha yêu cầu (Request Phase) và Pha hoàn thành (Completion Phase). Nhờ cấu trúc này kết hợp với kỹ thuật đường ống (pipelining), thiết bị gửi yêu cầu không cần chiếm dụng đường truyền để chờ kết quả trả về, cho phép hệ thống xử lý song song nhiều giao dịch cùng lúc, tối ưu hóa tối đa băng thông truyền dẫn và giảm thiểu độ trễ hàng đợi.
Kết luận
Đồ án tốt nghiệp "Thiết kế Transaction Layer Modeling cho PCI Express 5.0" của tác giả Ngô Trương Doan Hy đã giải quyết thành công bài toán mô hình hóa kiến trúc lớp giao dịch tốc độ cao ở mức độ thiết kế RTL bằng ngôn ngữ SystemVerilog. Bằng việc xây dựng kiến trúc phần cứng đáp ứng tần số hoạt động 1,6 GHz, đề xuất giải pháp bộ nhớ đệm lai FIFO Req/Ack triệt tiêu độ trễ đọc của SRAM, và hiện thực hóa đầy đủ các luồng chuyển đổi giao thức giữa CXL và AXI-Stream, công trình đã đạt được toàn diện các mục tiêu kỹ thuật đề ra. Kết quả mô phỏng trên Synopsys DVE và tổng hợp logic trên Synopsys RTL Architecture khẳng định tính đúng đắn của logic thiết kế, mang lại giá trị tham khảo thiết thực cho lĩnh vực thiết kế vi mạch số Front-end tại Việt Nam.