27/12/2025
[Kiến Thức & Giải Đáp Thắc Mắc Vi Mạch]
Hôm nay mình sẽ chia sẻ tí thông tin về môn "Thiết kế SoC Căn Bản trên FPGA" trong khóa học của mình. Trước hết, mình chia FPGA ra thành 2 loại chính: (1) FPGA có Hard CPU và (2) "FPGA thuần túy" không có Hard CPU. Đối với loại (1) thì rất khỏe cho việc hiện thực SoC vì có sẵn ARM CPU trên đó, việc mình cần làm là thiết kế Accelerator và ngoại vi cần thiết 😋. Nhưng đối với loại (2) thì cái chip FPGA chỉ toàn các Logic Cell mà không có sẵn ARM CPU, như vậy thì "Làm sao hiện thực SoC khi không có sẵn CPU?"
==> Các nhà sản xuất FPGA thường cung cấp một "Soft CPU IP" được tạo thành từ các Logic Cell để người dùng dễ dàng thiết kế SoC trên các "FPGA thuần túy". Ví dụ, ở Xilinx cung cấp Microblaze IP và Altera cung cấp Nios IP là các "Soft CPU IP". Còn một cách khác nữa là tự mình design cái CPU IP hoặc lấy CPU từ mã nguồn mở (RISC-V chẳng hạn) để dùng làm "Soft CPU IP" 😎😎. Đặc biệt trong học thuật hoặc đúc thử nghiệm ở cty startup, nơi có chi phí đúc chip SoC là rào cản rất lớn, thì việc toàn bộ module bao gồm CPU trong chip SoC đều thiết kế thuần bằng HDL sẽ tiết kiệm rất rất nhiều chi phí mua lại các IP ở khâu backend 😃😃.
P/S: Team mình trước giờ toàn tự thiết kế các core RISC-V bằng code tay và chạy trên FPGA ầm ầm. Đợt này bày đặt vọc vạch đám framework có sẵn cho RISC-V như Chipyard thì các bạn sinh viên dính lỗi tá lả, khả năng cao quay lại với chân ái "code tay RISC-V CPU"😭😭