曼丽nilei
如果真的想从事芯片设计方向,建议你首先要搞清楚芯片设计到底是什么,日常的工作是什么,是不是自己喜欢的。
芯片设计大概可以分成三个大类:数字,模拟和射频。如果说模拟和射频之间还有些联系,那数字和模拟基本上平常工作内容是完全不同的。
因为我在数字方向,我可以简单讲讲数字方向的工作。数字芯片设计主要分成几个大方向:架构建模,前端设计,前端验证和后端。
架构建模主要是利用C/C++或者SystemC进行算法和架构的建模,用于早期的软件仿真的amodel和fmodel以及后面验证的referencemodel。你需要具备的基本知识是计算机体系结构,基本的操作系统,数据结构和算法知识,以及你做的芯片的domainknowledge,当然这个是可以后面工作中学习的,比如一些protocol的知识。如果具备一些芯片硬件相关的知识是更好的,真正的systemarchitect是必须具备扎实的数字电路的硬件知识的。
前端设计主要是使用verilog/vhdl语言进行硬件的描述。好的工程师应该是非常精通硬件底层的原理的,代码如何映射到硬件。Timing的概念等等,基本上是微电子专业电路相关的知识。
前端验证主要是使用systemverilog/uvm进行verification的工作,当然还有各种脚本。这个工作岗位虽然对硬件知识要求不低,但是其实跟软件工作更相像。你需要非常理解OOP的概念,大部分人都是微电子等相关专业来做这个,所以很多人其实都没有很好的理解UVM等框架,也很难写出比较好的代码。所以你看这个方向,不仅需要你有很好的硬件基础,最好也有非常好的软件素养。
后端,没有接触过太多,基本上是各种脚本+非常扎实的硬件电路基础,特别是timing,甚至器件/工艺知识(高手)。这个方向的话应该是微电子专业最适合了。
所以,真的想做芯片设计,我猜你指CPU,GPU这种大芯片,那你应该想从事的是数字方向。那么其实4个字方向中每个小方向都需要非常扎实的硬件电路基础,同时其中某些方向还需要你具有非常好的软件和系统素养。
所以我建议可以选择微电子方向(最好是去那几所最好的学校,并且需要读研)+自学软件方向课程。
不过最重要的问题是你真的想做芯片设计吗?
以心为马
数字 IC 测试工程师是指负责验证和测试数字集成电路的工程师。以下是数字 IC 测试工程师需要学习的内容:
数字电路基础课程 。数字电路知识是做数字 IC 的基础,也是很多同学入行学习的第一本书,因此需要先掌握。
编程语言 。IC 测试工程师需要学习相应的编程语言,例如:SystemVerilog,最好也要懂 C 和 C++。除了这些编程语言之外,还需要掌握 MATLAB 和 C 语言用来产生测试数据。
验证语言 。验证工程师们需要使用各种验证语言去搭建验证环境。常用的验证语言有 C、C++ 和 SystemVerilog。验证岗位对 Verilog 语言的要求是能够看懂、能够理解的程度,并不需要像设计岗位那样精通。SystemVerilog 就属于验证工程师的核心技能了,随着设计越来越复杂,为了更方便例化模块,所以 SV 语言也是越来越流行。
PCB 设计 。至少应该画下简单的芯片应用电路,因此需要掌握 PCB 设计知识。
验证方法学 。UVM 是现在主流的验证方法学,同样属于验证工程师必备的核心技能。
测试基础理论 。测试基础理论包括需求分析、测试计划、用例设计、测试执行等方面。
体系结构 。体系结构领域的经典书籍是计算机体系结构领域的经典书籍,强调软硬件协同设计及其对性能的影响,对数字 IC 测试工程师也有很大帮助。
需要注意的是,数字 IC 测试工程师需要掌握的知识和技能非常广泛,包括理论知识、语言类、工具类、实践经验等方面。因此,需要不断学习和积累经验,才能成为一名优秀的数字 IC 测试工程师。
优质工程师考试问答知识库