Từ RTL đến layout chip: Hành trình thực hành thiết kế vi điều khiển của sinh viên FPT Jetking

Đề tài và quy trình thực hiện

Từ một bài toán thiết kế vi điều khiển cho máy tính bỏ túi 8 chữ số, sinh viên lớp C2505E thuộc chương trình Thiết kế Chip – FPT Jetking Hà Nội đã trải qua quy trình thực hành từ xây dựng RTL, kiểm thử trên Vivado đến triển khai RTL-to-GDSII bằng OpenLane. Hoạt động giúp người học tiếp cận trực tiếp với các bước thiết kế phần cứng số và đánh giá sản phẩm bằng những dữ liệu cụ thể về timing, diện tích và công suất.

Đề tài và quy trình thực hiện
Quy trình thực hành gồm hai giai đoạn: thiết kế – kiểm thử trên Vivado và triển khai RTL-to-GDSII trên OpenLane.

Một bài toán nhỏ, một quy trình thiết kế chip hoàn chỉnh

Từ bài toán thiết kế vi điều khiển cho máy tính bỏ túi học sinh 8 chữ số, người học đã tiếp cận một quy trình thực hành có cấu trúc rõ ràng: xây dựng thiết kế RTL, viết testbench, mô phỏng, kiểm tra sơ đồ logic trên Vivado, sau đó chuyển sang OpenLane để thực hiện luồng tổng hợp và tạo layout GDSII. Vi điều khiển được định hướng xử lý các phép cộng, trừ, nhân, chia, phần trăm, căn bậc hai và chức năng bộ nhớ M+/M-.

Thiết kế Verilog được chia thành các khối chức năng: bcd_alu.v đảm nhiệm tính toán số thập phân BCD; keypad_fsm.v lưu dữ liệu nhập từ bàn phím; lcd_decoder.v giải mã BCD sang tín hiệu điều khiển màn hình; calculator_top.v kết nối các khối thành hệ thống. Cách tổ chức này giúp mã nguồn dễ đọc, dễ bảo trì, thuận lợi cho mô phỏng, cô lập lỗi và làm việc nhóm. Báo cáo cũng nhấn mạnh lợi ích vật lý: giữ các logic cùng module gần nhau, rút ngắn đường dữ liệu và hỗ trợ tối ưu timing.

Các module Verilog của thiết kế được trình bày trong báo cáo thực hành.

Kiểm thử để nhìn thấy thiết kế đang hoạt động như thế nào

Ở giai đoạn kiểm thử, nhóm xây dựng testbench ở hai cấp: Unit Testbench cho từng khối chức năng và Top-Level Testbench cho toàn chip. Kết quả mô phỏng khối tính toán được quan sát bằng dạng sóng. Với giả thiết chu kỳ clock 20 ns, tương đương 50 MHz, báo cáo ghi nhận WNS 15,954 ns, suy ra độ trễ tối đa 4,046 ns và tần số tối đa ước tính 247 MHz. Đáng chú ý, báo cáo cũng ghi rõ bài test toàn chip ở thời điểm thực hiện cho kết quả “Fail” – một dữ liệu quan trọng để người học tiếp tục phân tích và hoàn thiện thiết kế.

Mô phỏng dạng sóng và kiểm tra timing trên Vivado.

Sang giai đoạn OpenLane, các file Verilog được đưa vào dự án, cấu hình bằng config..json và chạy luồng RTL-to-GDSII. Người học tiếp tục đọc Signoff Reports để phân tích diện tích, công suất và timing. Báo cáo cho thấy top module calculator_top có diện tích 10.884,19 µm², trong đó bcd_alu chiếm khoảng 76%; keypad_fsm là 2.403,56 µm² và lcd_decoder là 191,43 µm². Tổng công suất tiêu thụ được ghi nhận ở mức 0,171 mW (171 µW), với 53,8% internal power và 46,2% switching power.

 

OpenLane thực hiện luồng RTL-to-GDSII và tạo các báo cáo signoff.

Hoạt động này cho thấy việc học thiết kế chip không dừng ở viết Verilog. Người học phải đi qua chuỗi công việc liên tục từ phân tích chức năng, chia module, kiểm thử, đánh giá timing đến tổng hợp và đọc báo cáo sau triển khai. Những con số về diện tích, công suất, timing và cả kết quả kiểm thử chưa đạt trở thành dữ liệu cụ thể để đánh giá, sửa lỗi và tối ưu. Đây chính là giá trị nổi bật của một bài thực hành theo quy trình: biến kiến thức RTL thành một thiết kế có thể quan sát, đo lường và tiếp tục hoàn thiện ở cấp độ layout.

đánh giá