Tuy có rất nhiều loại chip, nhưng thiết kế vi mạch có thể được phân chia thành hai nhánh chính là: thiết kế mạch số (digital SoC) và thiết kế mạch tương tự (analog mixed-signal). Bài viết này đề cập các kiến thức cần thiết trong lĩnh vực thiết kế mạch số từ đó các bạn sinh viên có thêm thông tin để biết bản thân có phù hợp với hướng thiết kế mạch số hay không. Các kiến thức này có thể được dạy trong chuyên nghành hẹp hoặc được dạy rải rác trong các môn học được liệt kê ở bài viết trước. Tuy nhiên chúng tôi khuyến khích các bạn có thể tận dụng chính bài khóa luận và thời gian thực tập tốt nghiệp của mình để hệ thống lại và trang bị đủ kiến thức cần thiết cho mảng vi mạch số này trước khi xin vào làm cho các công ty. Kiến thức cần thiết là ở mức hiểu, nắm vững các khái niệm, nếu có cơ hội biết sử dụng phần mềm thì càng tốt nhưng không bắt buộc.
————-
(2) Nhóm kiến thức chung cho thiết kế mạch số
– Kiến thức về chip SoC: định nghĩa, vai trò, cấu trúc và các thành phần cơ bản của một chip SoC. Đối với phần này, hiểu chức năng và hoạt động của các thành phần trong một chip SoC như PLL, CPU, Bus, RAM, ADC, DAC, UART, SPI, … là yêu cầu quan trọng. Mục tiêu chính của phần này không phải là tìm hiểu sâu về tất cả các thành phần trong SoC mà chỉ cần biết khái niệm các khối chức năng thông dụng.
– Kiến thức về vi điều khiển và vi xử lý: vì các chip SoC hiện nay đều có lõi vi xử lý bên trong nên kiến thức này thường liên quan đến khá nhiều vị trí làm việc khác nhau trong lĩnh vực vi mạch. Hiểu được cấu trúc, hoạt động và vai trò của vi xử lý trong hệ thống, giúp bạn có cái nhìn tổng quan tốt về các chip Soc.
– Kiến thức về bus hệ thống (system bus): đây cũng là một thành phần luôn có trong các chip SoC hiện nay. Với vai trò vận chuyển dữ liệu bên trong chip, bus hệ thống kết nối các thành phần chức năng bên trong chip và ảnh hưởng lớn đến hiệu quả xử lý của một chip SoC.
(3) Nhóm kiến thức danh cho kỹ sư thiết kế RTL (thiết kế số)
– Cấu trúc và chức năng của các mạch loại mạch số thường dùng như encoder, decoder, MUX, DE-MUX, mạch đếm, mạch cộng, mạch nhân, FIFO, LIFO, mạch đồng bộ, mạch phát hiện cạnh, …
– Kiến thức về ngôn ngữ mô tả phần cứng Verilog, System Verilog, VHDL để đọc hiểu và mô tả RTL code.
– Các kỹ thuật thiết kế như thiết kế đồng bộ, thiết kế bất đồng bộ, thiết kế nhiều miền xung clock, thiết kế tần số cao, thiết kế công suất thấp, …
(4) Nhóm kiến thức danh cho kỹ sư kiểm tra thiết kế số (RTL Design Verification)
– Kiến thức về các phương pháp kiểm tra thiết kế như phương pháp mô phỏng (simulation) hay kiểm tra formal (formal verification)
– Ngôn ngữ dùng trong mô phỏng System Verilog, SystemC, C/C++, assemply, … để xây dựng môi trường mô phỏng và tạo các mẫu kiểm tra (testcase).
– Kiến thức về các phương pháp mô phỏng như OVM, VMM, hay UVM. Phương pháp mô phỏng UVM (Universal Verification Methodology) là phương pháp mới nhất và đang ngày càng phổ biến nhất. Thư viện UVM được xây dựng trên ngôn ngữ System Verilog.
– Kiến thức về VIP (Verification IP), VIP là những mô hình mô phỏng được xây dựng sẵn bởi nhiều nhà cung cấp khác nhau hoặc bởi chính kỹ sư mô phỏng để hỗ trợ kiểm tra thiết kế nhanh chóng.
– Kiến thức về phần mềm mô phỏng, kiểm tra; gỡ lỗi (debugging) và phân tích dạng sóng (waveform) là kỹ năng không thể thiếu cho cả kỹ sư thiết kế và kiểm tra.
(5) Nhóm kiến thức dành cho kỹ sư thiết kế vật lý (RTL2GDS)
Thiết kế vật lý (back-end) là quá trình xây dựng kích thước hình học của các phần tử riêng biệt, vật liệu và cách bố trí của chúng với nhau (Netlist), do đó tìm hiểu trang bị cho mình hệ thống kiến thức nền tảng về quá trình sản xuất wafer (từ cát tới chip) ngay từ khi còn trên ghế nhà trường sẽ rất hữu ích cho các bạn có mong muốn trở thành kỹ sư thiết kế vật lý sau này. IC số có quy mô vô cùng lớn từ hàng trăm triệu tới hàng tỷ phần tử do đó thiết kế vật lý chip số dựa trên sự bố trí tự động từ những bộ phận riêng biệt được tiêu chuẩn hóa (standard cell) và tuần tự tuân theo các bước với các yêu cầu tối ưu (design constraints) về diện tích, chiều dài dây nối tín hiệu, mật độ công suất tiêu thụ, phân bố đường clock (xung nhịp), vv…Hiểu rõ quy trình các bước thiết kế vật lý như floor planning, power planning, placement, clock tree synthesis, routing và signoff sẽ giúp người kỹ sư điểu khiển thành thạo được phần mềm hỗ trợ thiết kế cho ra kết quả tối ưu nhất như ý muốn.
– Kiến thức về thư viện công nghệ (technology library): Mỗi xưởng đúc (wafer fab) đều sở hữu đặc điểm kỹ thuật theo công nghệ riêng biệt, thư viện công nghệ được cung cấp để chứa những thông tin về các đặc điểm vật lý và đặc tính điện của các phần tử, lớp vật liệu cũng như các quy tắc (rule) riêng theo từng công nghệ để người kỹ sư thiết kế sử dụng.
– Kiến thức về phân tích timing tĩnh (STA – Static Timing Analysis): STA là phương pháp xác định sự hợp lệ các ràng buộc tối ưu nhất về timing của thiết kế (timing met) bằng cách tính toán và đánh giá thời gian tất cả các đường đi của dữ liệu trong thiết kế so với thời điểm thay đổi xung clock trong các trường hợp xấu nhất xem có vi phạm điều kiện timing cụ thể của mỗi công nghệ được sử dụng cho thiết kế. Tĩnh có ý nghĩa là tính toán mang tĩnh thống kê từ cơ sở dữ liệu ở mỗi bước thiết kế chứ không cần phải chạy mô phỏng theo miền thời gian. Các loại kiểm tra timing cơ bản gồm: kiểm tra setup; kiểm tra hold; kiểm tra data-to-data; kiểm tra recovery và kiểm tra removal.
– Kiến thức về DFT (Design For Test): Ngay cả khi kỹ sư thiết kế có thể đảm bảo thiết kế không có lỗi bằng các kết quả mô phỏng đang tin cậy thì cũng không thể đảm bảo quá trình sản xuất (fabrication) không có thêm bất cứ sai hỏng nào. Việc có thể kiểm tra chip có sai hỏng trong quá trình sản xuất một cách nhanh chóng và chính xác có ý nghĩa rất lớn trong toàn bộ quá trình đưa sản phẩm chip vi mạch ra thị trường. Các lỗi thường gặp là: stuck-at-0, s-a-0; stuck-at-1, s-a-1; ngắn mạch (short), hở mạch (open). DFT là kỹ thuật giúp kiểm tra chip có gặp phải sai hỏng trong quá trình sản xuất một cách đầy đủ và nhanh chóng bằng cách chủ động đưa thêm vào các mạch logic dùng cho việc test. Không có DFT, chip vẫn có thể được kiểm tra thông qua đo đạc và chạy các test chức năng (fucntion test) trên chip nhưng thời gian test rất lâu và không đảm bảo toàn bộ chip được test đầy đủ (coverage thấp). Tuy nhiên, việc áp dụng kỹ thuật DFT sẽ làm kích thước chip lớn hơn do phải thêm các logic phục vụ việc test. Nên việc cân bằng giữa quy mô mạch logic thêm vào và hiệu quả (thời gian test và tỷ lệ coverage) cũng là công việc rất quan trọng.
– Kiến thức về phần mềm: Đối với Back-End Designer việc hiểu, cấu hình đúng phần mền; thiết lập các constraint đúng và đủ là rất quan trọng vì nó ảnh hưởng trực tiếp đến chất lượng của bản thiết kế Back-end như netlist, Layout ./.