芯片设计工程师的技能是通过多年的经验学习的。在您开始作为芯片设计工程师工作之前,很难给出一个需要的全面的单一列表,也不可能学习所有内容。话虽如此,以下是您开始芯片设计师职业生涯时必须知道的一些事情。
1.数字逻辑设计基础。
这些必须让您思考作为芯片设计师,能够根据逻辑块、互连和综合到正确的结构等方面对设计进行微架构。
2.模拟电路设计基础
PLL、CDR(时钟和数据恢复电路)、ADC/DAC、高速信号和信号完整性概念(串扰、抖动、振铃等)
如果您正在从事纯数字设计,这些可能不是那么重要,但当前的设计总是有几个复杂的时钟方案和高速接口,这使得理解这些很重要。
3.设计方法和流程
对设计流程和方法有很好的理解——RTL设计、物理设计、STA(静态时序分析)等。
4.使用至少一种 HDL 语言
大多数芯片设计都使用像 SystemVerilog 或 VHDL 这样的 HDL,并且对语言有充分的了解可以帮助您将设计转换为高效的 HDL 模型。根据您是使用 HDL 进行 RTL 开发还是设计验证,技能也会有所不同。
5.功耗、性能、面积估计和权衡
当前大多数芯片设计的目标是在最佳面积内以最低功耗满足最高性能——由市场需求和成本决定。芯片设计师需要权衡几种设计特性/技术来满足这一点。
6.其他一些推荐的技能 (虽然可能不是所有人都必须知道的)
a.脚本语言 ——每一项工作都关注效率,了解至少一种脚本语言(如 python/perl)会有所帮助。在 RTL 设计中,这些对于生成重复代码、针对不同需求对设计进行参数化等很有用。在设计验证中,这些在模拟设置、测试、回归和调试等方面更有用。
b.晶体管工艺技术—— 了解芯片设计中使用的各种工艺技术的细节有时会是一个额外的优势。
c.随着设计趋向于更多的 SOC(片上系统),如今大多数设计都将嵌入至少一个或多个处理器内核。 了解微处理器和编程的基础知识,硬件-软件接口将有助于芯片设计的高效硬件/软件架构。
d.领域知识—— 基于所设计芯片的应用和市场,对特定应用/市场有充分的了解将非常有用。看到很多芯片设计的一些领域包括——网络(以太网、存储等)、无线、物联网(物联网)、使用 AMBA 协议互连的基于 ARM 的 SOC 等。