HI bác, em cũng đang tìm hiểu dần về vi mạch nên tiện thể tổng hợp lại cho bác luôn

em có sai gì các bác chỉnh giúp em với

.
Kiến thức background:
- Linux: các tool của vi mạch hầu hết được viết trên môi trường linux nên bắt buộc phải nắm rõ cách sử dụng linux cơ bản. Ví dụ: quản lí file, thư mục, kiểm tra tài nguyên hệ thống, tạo backup/logfile. Các ngôn ngữ chính: Cshell/Bash (làm việc với môi trường linux), tcl (làm việc với tool), awk-perl-python (xử lí các file log).
- Linh kiện bán dẫn: cấu trúc, các đặc tính, vùng hoạt động, các hiệu ứng của diode, mosfet.
- Digital circuit design: các cổng logic cơ bản (and, or, not, xor), biểu diễn số học, biểu thức boolean, mạch tuần tự/tổ hợp, các mạch chức năng cơ bản (mux, adder, encoder, counter, shift register,......)
- IC design flow: các bước từ xác định chức năng, đặc tính của IC -> RTL design -> .... -> Physical design and verification -> Fabrication.
Kiến thức chuyên môn đối với digital design:
- RTL design and verification (Frontend): mảng này sẽ tập trung phát triển về cấu trúc và function của IC (tương tự với việc vẽ schematic đối với mạch điện thông thường). Verilog/System Verilog(SV) là 2 ngôn ngữ bắt buộc để làm việc vì các khối cấu trúc đều sẽ được mô tả bằng 1 trong 2 ngôn ngữ này. Tùy thuộc vào sản phẩm của team mà bác sẽ học thêm về đặc tính/cấu trúc của sản phẩm. Ví dụ nếu team bác làm về các module controller cho memory thì bác sẽ đọc thêm về đặc tính của memory, cách tổ chức bộ nhớ,.... Nếu team làm về SoC thì nên có kiến thức thêm về cấu trúc máy tính, các giao thức (AXI, APB, PCIE, ethernet,.....). Sau khi design đã hoàn thành thì phải viết testbench để kiểm tra hoạt động của design. Hiện tại các testbench hầu hết được viết ở SV theo UVM framework. Ngoài dùng testbench để kiểm tra hoạt động, có 1 cách khác để verify là dùng Verification IP (VIP) để kiểm tra.
- Physical implementation and verification (Backend): mảng này sẽ quyết định timing, power, area của design. Sau khi đã có behaviror netlist từ team RTL design, design sẽ được synthesis thành gate netlist và chuyển cho team layout để layout mạch. Designer sẽ điều chỉnh các tools, kiểm tra input files để có thể đưa ra output đúng theo yêu cầu về timing, power, area. Vì vậy phải nắm rõ cách vận hành, chức năng, config của tool, đặc điểm và cấu trúc của các input file để làm việc được. Ngoài ra ở bước này có rất nhiều sub-steps và design flow cho từng design sẽ khác nhau nên hiểu rõ design flow chung là điều bắt buộc. Sau khi layout thì design được kiểm tra lại timing bằng Static timing analysis (STA) và fix Design Rule Check (DRC) và chuyển qua physical verification và sign off check (LEC, LVS, ERC, antenna, IR, EM,...). Làm việc ở mảng này thì chỉ cần nắm rõ cách sử dụng tool, design flow và các check nhưng để làm lâu dài thì em nghĩ cần phải học thêm về technology, advanced semiconductor devices (Finfet, GAAN,....), tự động hóa design flow bằng script để tối ưu hóa thời gian làm việc,....
- Ngoài 2 mảng frontend và backend, ngành vi mạch còn có rất nhiều mảng khác như phát triển tool, fabrication, HW/SW dev,...... Những mảng này em chưa tìm hiểu được nhiều nên chắc để các bác khác chỉ thêm vậy

Tài liệu tham khảo:
Tài liệu tham khảo trên mạng có rất nhiều nhưng cũng khá lộn xộn nên em nghĩ bác có thể tham khảo trước course của giáo sư Adi Teman để có góc nhìn tổng quan:
Digital Integrated Circuits
Về sách thì có 1 vài quyển theo giáo trình đại học của mình mà bác có thể xem qua:
Backgorund:
- Linux: Begining Unix
- Fundamentals of Microelectronics của Behzad Razavi
- CMOS VLSI Design A Circuits and Systems Perspective của D.M.Harris
Digital design:
- Digital Integrated Circuit: a design perspective của M. Rabaey
- Computer Organization and Design The Hardware Software Interface [RISC-V Edition] của John L. Hennessy
- Static Timing Analysis for Nanometer Designs - A Practical Approach của J. Bhasker, Rakesh Chadha
Analog design:
- Analysis and design of Analog integrated circuit
- Sách của Razavi