Một ngày làm việc của kỹ sư RTL Design

Thứ Năm, 22 tháng 01, 2026

Mấy nay 2 anh DV lead với PD lead viết bài nhiều quá nên nay phải viết bài về RTL design cho cân bằng lại mới được 😆. Tính ra nợ bài này cũng lâu rồi, y như cái cách nợ Học Vi Mạch Cùng ICTC lớp RTLA vậy😅. Mời các bạn xem bài viết về một ngày làm việc tương đối nhàn nhã của mình nhé.


Mỗi công ty sẽ có một môi trường làm việc khác nhau, và ngay trong cùng một công ty, công việc của một kỹ sư RTL Design cũng không phải lúc nào cũng giống nhau. Tùy vào tính chất của từng project, module mình đang handle, hay từng giai đoạn của dự án (đầu phase, giữa phase hay giai đoạn tape-out), mà khối lượng và loại công việc mỗi ngày sẽ thay đổi khá nhiều. Có những ngày chủ yếu là design, có ngày ngập trong debug, có ngày thì chỉ xoay quanh meeting và hỗ trợ các team khác. Bài viết này chỉ đơn giản là chia sẻ một ngày làm việc điển hình của mình ở thời điểm hiện tại để các bạn có cái nhìn thực tế hơn về công việc của một kỹ sư RTL Design.

Một ngày của mình bắt đầu khá sớm. Việc đầu tiên không phải là mở laptop hay check mail, mà là…lo cho thằng nhóc chuẩn bị đi học. Khác với hai anh lead bên DV và PD, mình không có thói quen uống cà phê buổi sáng. Có lẽ do uống vào là tim đập nhanh, đầu óc hơi bay bay 😄

Đưa con đi học xong, về nhà mình sẽ dành khoảng 30 phút để tập thể dục nhẹ: chạy bộ, cardio… Nay có tuổi rồi phải ráng giữ sức khỏe, không để overweight và reset đầu óc trước khi bước vào một ngày làm việc dài, nhiều logic, nhiều timing và cũng nhiều… bug.

Mình bắt đầu làm việc lúc khoảng 9h sáng. Dự án này mình đang handle cũng kha khá module cùng lúc nên việc đầu tiên là sắp xếp lại timeline trong đầu: hôm nay ưu tiên module nào, việc gì cần làm trước, việc gì có thể để sau.

Buổi sáng hôm nay mình dành để làm spec. Với nhiều bạn, spec có vẻ là phần khá chán, toàn chữ, diagram, timing, chưa được code dòng nào. Nhưng với RTL Design, đây là giai đoạn quan trọng nhất. Spec quyết định rất nhiều thứ phía sau: code có trơn tru không, sau này debug có dễ không, vào review có bị sếp “sấy” không 😅

Dạo này mình đang design một module converter để thực hiện một phép chuyển đổi số học trong chip. Module này phải dùng pipeline, nên khi làm spec phải consider nhiều yếu tố.

Đầu tiên là timing: mỗi pipeline stage có bao nhiêu logic là vừa? Nếu nhồi quá nhiều logic vào một stage thì khả năng timing violation rất cao, mà sửa timing sau này khi mọi thứ đã xong xuôi thì thì khá là mệt, nên phải xem xét kĩ càng. Tiếp theo là performance: throughput có đảm bảo không, data có bị nghẽn không, dùng FIFO depth bao nhiêu là hợp lý. FIFO sâu quá thì area tăng, đôi khi dư thừa. FIFO ít quá thì dễ nghẽn data. Rồi tới phần control FIFO: khi nào FIFO nên stop, khi nào resume. Phải tính tới các trường hợp early empty, almost full. Vì khi FIFO dừng, pipeline phía trước vẫn có thể tiếp tục đẩy data xuống. Nếu control không cẩn thận thì data mới có thể overwrite lên data cũ trong FIFO, debug rất là mệt sau này…

.

Sau khi cân nhắc các yếu tố timing, performance và area, mình quyết định chọn 3 pipeline stages và FIFO depth = 8 để cân bằng mọi thứ. Hoàn thành spec xong, mình cũng khá là ưng ý vì mọi thứ được viết theo template chuẩn, logic rõ ràng.

Sếp review spec và khá hài lòng với ý tưởng. Sếp chỉ nhắc là lúc code nên parameterize FIFO depth để sau này có thể reuse cho các dự án khác. Đây cũng là một kinh nghiệm hay, khi design thì chúng ta cũng nên nghĩ tới chuyện reuse, hỗ trợ nhiều configuration khác nhau để hạn chế việc phải modify về sau.

Buổi chiều mình chia thời gian cho hai việc chính.

Việc đầu tiên là study để implement một feature mới cho một IP từ dự án trước. Owner cũ đã resign, thứ còn lại chỉ là document và spec. Mình đã đọc spec và hiểu được ý tưởng design tổng thể rồi, nhưng như vậy là chưa đủ. Bước tiếp theo là chạy simulation và xem waveform để hiểu IP này hoạt động thực tế như thế nào. Với RTL Design, đọc spec chỉ là bước đầu. Muốn sửa hay thêm feature cho một IP, bạn bắt buộc phải nhìn waveform, theo dõi từng signal, từng FSM state. Đây cũng là một điểm khác biệt khá rõ giữa RTL Design và DV. DV thường quan tâm nhiều tới interface, testcase và behavior ở mức IP. Còn designer thì phải hiểu bên trong mạch hoạt động như thế nào, các tín hiệu liên quan với nhau ra sao, FSM trigger lúc nào, FIFO push/pop trong điều kiện nào. Chỉ cần sửa sai một chỗ nhỏ thôi cũng có thể ảnh hưởng tới cả module hoặc thậm chí là system.

Sau đó mình chuyển sang debug cho một module khác mà bạn DV đã bó tay nhờ debug giùm. Module này khá đặc biệt vì nó liên quan trực tiếp tới system, không thể chỉ nhìn riêng từng block. Muốn debug được thì phải hiểu cách các khối xung quanh tương tác với nhau, luồng data đi qua chip như thế nào. Những issue kiểu này thường khá là khó nhằn, nhưng bù lại, đây chính là cơ hội để mình hiểu sâu hơn về cách toàn bộ con chip hoạt động. Một RTL designer giỏi không chỉ hiểu rõ module của mình, mà còn phải có cái nhìn tổng thể về system và whole chip.

Đang debug hăng say thì chuông báo reng – tới giờ họp status. Ở những giai đoạn căng thẳng thì daily meeting là chuyện bình thường, còn hiện tại project đỡ hơn nên chỉ họp khoảng…3 lần một tuần 😆. Meeting là lúc các sếp nắm tình hình, tháo gỡ các vướng mắc, unblock cho team. Tuy nhiên, nói thật là cũng khá áp lực. Nếu status không rõ ràng, không đúng tiến độ thì rất dễ bị “sấy” ngay trong meeting.

Họp xong cũng tầm 6h chiều. Đây là lúc mình tạm ngưng công việc để dành thời gian cho bản thân và gia đình: ăn tối, dạy con học, chơi với con rồi cho con đi ngủ. Khoảng 10h tối, mình bắt đầu “ca đêm”. Dạo này project hơi bận nên mình tranh thủ làm thêm một chút để kịp tiến độ và có status “đẹp đẹp” cho ngày hôm sau.

Kết thúc ngày làm việc lúc khoảng 12h đêm.

Các bạn thấy một ngày làm việc của kỹ sư RTL Design như thế nào? Có thấy thú vị không nè? 😄

Nếu bạn nào muốn xem lại bài viết về một ngày làm việc của kỹ sư PD hoặc DV, cứ comment bên dưới nhé, mình sẽ gửi lại cho các bạn.

——————————————————

Hiện tại ICTC đang mở các khóa học thiết kế vi mạch từ cơ bản đến nâng cao, các bạn có thể tìm hiểu tại các bài viết sau nhé:

 

Truy cập Server EDA Miễn Phí của ICTC để thực hành thiết kế vi mạch:
Truy cập Server EDA Miễn Phí

 

Thứ Năm, 22 tháng 01, 2026

Đội Ngũ Giảng Viên Đến Từ Các Công ty vi mạch hàng đầu với NHiều năm kinh nghiệm

Khóa học thiết kế vi mạch ICTC giảng viên từ Ampere
Khóa học thiết kế vi mạch ICTC giảng viên từ Renesas
Khóa học thiết kế vi mạch ICTC giảng viên từ MediaTek Singapore
Khóa học thiết kế vi mạch ICTC giảng viên từ BOS
Khóa học thiết kế vi mạch ICTC giảng viên từ Marvell
Khóa học thiết kế vi mạch ICTC giảng viên từ Renesas
Khóa học thiết kế vi mạch ICTC giảng viên từ NSING

Nổi Bật

Workshop Làm Quen Với Linux

Workshop Làm Quen Với Linux

Để giúp các bạn làm quen với command line, terminal trong Linux, ICTC sẽ tổ chức một buổi workshop về Linux với cơ hội thực hành trực tiếp trên Server ICTC cùng host là anh Thông (người xây dựng và quản lý Server ICTC). Nội dung workshop: Hướng dẫn làm quen và thực...

Final Project Của Lớp Thiết Kế Vi Mạch Cơ Bản

Final Project Của Lớp Thiết Kế Vi Mạch Cơ Bản

Boom!  Cảm giác vỡ òa khi màn hình hiện kết quả design của bạn đã "pass" golden model – cửa ải cuối cùng trước khi “tốt nghiệp”!À quên, còn một điều kiện là coverage phải đủ nữa nha  Nhưng mà... cái cảm giác được thông báo ALL_PASSED vẫn là một điều gì đó thật đặc...

Bài Viết Mới

Design Verification Quiz

Design Verification Quiz

Quiz tuần trước khá nhẹ, nên cuối tuần này cùng mình và Học Vi Mạch Cùng ICTC đổi gió với một quiz khó hơn một chút về OOP và inheritance trong SystemVerilog. Class, inheritance và method override là những khái niệm xuất hiện rất thường xuyên trong...

MINDSET CẦN THIẾT CHO KĨ SƯ PHYSICAL DESIGN

MINDSET CẦN THIẾT CHO KĨ SƯ PHYSICAL DESIGN

Mấy nay viết về tech nhiều rồi, anh PD lead của Học Vi Mạch Cùng ICTC quyết định đổi gió qua chủ đề khác , cũng quan trọng không kém, đó là mindset của kỹ sư Physical Design. Mời các bạn theo dõi bài viết nhé. Nhiều bạn khi mới tìm hiểu Physical Design thường nghĩ...

Thiết Kế SRAM thuộc về Digital hay Analog?

Thiết Kế SRAM thuộc về Digital hay Analog?

SRAM (Static Random Access Memory) gần như có mặt trong tất cả các chip digital, nhưng nếu đi sâu vào cấu trúc và cách nó hoạt động, ta sẽ thấy đây là một mạch mang bản chất analog rất rõ ràng. Trái tim của SRAM là SRAM bitcell, thường là cell 6 transistor (6T), được...

BẠN CHƯA BIẾT BẮT ĐẦU TỪ ĐÂU?

Sau nhiều năm tư vấn và đào tạo vi mạch cho hàng trăm bạn sinh viên, học sinh và phụ huynh, kết hợp với kinh nghiệm từ các anh chị kỹ sư vi mạch có nhiều năm kinh nghiệm, đây là tất cả những kinh nghiệm và tài liệu mà mình đúc kết, tổng hợp lại được thành một quy trình tìm hiểu ngành vi mạch để các bạn mình mới tham gia vào ngành có thể bắt đầu một cách hiệu quả nhất.

 

Bấm nút bên dưới để tìm hiểu về ngành, về nghề nghiệp cũng như những thứ bản thân cần chuẩn bị để tham gia vào hành trình trở thành kỹ sư vi mạch tuy có phần gian nan nhưng vô cùng thú vị bạn nhé!

LỘ TRÌNH TỰ HỌC VI MẠCHGROUP CHAT HỌC TẬP VI MẠCH