Thiết kế RTL tức là dùng ngôn ngữ mô tả phần cứng (HDL) để mô tả chức năng và hoạt động của mạch số. Lưu ý là mạch số (digital) chứ ko phải là mạch tương tự (analog). Thiết kế analog thì không dùng RTL.

Để cho dễ hình dung thì để tạo thành một mạch số ta sẽ ghép các phần tử số như cổng logic (AND, OR, XOR, NOT…), các phần tử tuần tự (Flip-flop, Latch) lại tạo thành một mạch điện (schematic) hoàn chỉnh. Thế nhưng khi quy mô của mạch tăng lên thì việc ghép nổi bằng tay trở nên quá phức tạp, nên người ta mới nghĩ ra dùng “ngôn ngữ” để mô tả chức năng hoạt động của mạch, sau đó mới dùng tool để “tổng hợp” đoạn code viết ra thành cái schematic mà đáng lẽ phải làm tay. Quá trình thiết kế RTL từ đó ra đời.
Vậy tóm lại, thiết kế RTL nghĩa là thiết kế mạch số và dùng ngôn ngữ mô tả phần cứng để viết ra đoạn code mô tả chức năng của mạch số đó. Viết code RTL phải tuân theo 1 số quy tắc và ràng buộc chặt chẽ để nó có thể “tổng hợp” thành cổng logic được như đã đề cập ở trên.
Học viết code RTL chính là học cách viết sao cho sau khi tổng hợp sẽ sinh ra mạch hoạt động đúng như chức năng mong muốn. Đó mới là học viết code thôi nha, còn học thiết kế RTL thì phải học làm sao để từ ý tưởng ban đầu có thể hiện thực nó thành mạch phần cứng. Cũng giống như xây nhà phải có bản thiết kế trước rồi mới bắt đầu xây vậy.
Các bước cần thiết để học thiết kế RTL bao gồm:
- Hiểu rõ các phần tử số cơ bản:Cổng logic: AND, OR, XOR, NOT,…
Phần tử tuần tự: Flip-flop, Latch,… - Nắm vững các thành phần mạch số thường dùng:Mạch ghép kênh (MUX), mã hóa (Encoder), giải mã (Decoder), bộ cộng (Adder), bộ đếm (Counter), máy trạng thái hữu hạn (FSM)…
- Học viết mã RTL:Sử dụng ngôn ngữ như Verilog, VHDL, SystemVerilog.
- Làm quen với các kỹ thuật thiết kế nâng cao:Thiết kế đồng bộ, bất đồng bộ, tối ưu tốc độ cao (high-speed), tiết kiệm năng lượng (low-power),…
Quá trình phát triển của một kỹ sư thiết kế số.
- Fresher – Junior (0-3 năm kinh nghiệm): Làm việc với các module ở block level, thiết kế hoặc chỉnh sửa các yêu cầu cơ bản.
- Senior (5+ năm kinh nghiệm): Làm việc với các block quan trọng, ảnh hưởng lớn đến hệ thống.
- 10 năm kinh nghiệm: Tham gia thiết kế kiến trúc (architecture), tối ưu diện tích (area) và hiệu năng (performance), đồng thời có thể lead một số sub-system trong SoC (System on Chip).
- 15 năm kinh nghiệm: Đủ khả năng để lead toàn bộ dự án thiết kế RTL cho full chip.
- 20+ năm kinh nghiệm: Có thể đảm nhận vai trò thiết kế kiến trúc chip (chip architecture) ở cấp độ cao.
Thiết kế RTL là công việc đòi hỏi nhiều kinh nghiệm, thời gian, công sức cũng như một số tố chất mà không phải ai cũng có thể theo được. Các bạn có thể thử làm một vài thiết kế cơ bản, tham gia một số khóa đào tạo hoặc dự án nhỏ để xem mình có hứng thú và phù hợp với vị trí này không nhé.