2024-10-17 ASIC设计工程师一枚
2024-10-18 修改第一部分
- 作为一名工作一年多的ICer,梳理了初入职场需要培养的技能和知识,做一个笔记记录下来。之后也希望自己按如下顺序积累学习笔记。
- 学习数字IC设计,从纵向时间分布,可分为基础入门、基本掌握和熟练进阶3个阶段。从横向技能分布,可分为概念知识(数字电路、硬件设计等)、code技能(Verilog–rtl、脚本语言–python/perl、开发基础–linux/git/gvim)。由于本人是新进小白,只浅谈基础入门和基本掌握需要做什么、怎么做以及达到什么目标。
- 本文会不断根据自身认知的提升而进行修改,进而完善这部分的结构体系。
一、理论与技能
1. 基础知识
- 书籍或课程:C语言程序设计、数字电路、微机原理、计算机组成原理、计算机体系结构、Verilog HDL高级数字设计
- 应知应会:
- C语言程序设计:掌握基本的编程语法、数据结构、控制流程、函数使用以及简单的文件操作
- 数字电路:理解逻辑门功能、布尔代数、组合与时序电路设计、集成电路的应用
- 微机原理:了解微型计算机的基本组成、指令集、存储器管理、输入输出接口以及基本的硬件编程
- 计算机组成原理:熟悉计算机的硬件组成、指令周期、数据表示、寻址方式、控制单元设计
- 计算机体系结构:理解处理器设计、存储层次结构、I/O系统、并行处理技术和系统性能评估
- Verilog HDL高级数字设计:掌握Verilog语法、模块设计、测试平台构建、时序分析以及复杂数字电路的建模
2. 基本技能
- 编程语言:①基本操作:Linux、vim/gvim、Git使用;②编程语言:verilog、python、perl;③其他:Makefile、tcl
- 基本操作:为了能够在Linux环境下进行开发工作,应会使用vim/gvim进行coding或文本处理(可用脚本批量处理),git版本管理系统用于协同工作
- 编程语言:verilog为逻辑实现,python/perl熟练掌握其一即可,主要用于处理大批量的文本内容
- 其他:Makefile用于项目构建和管理,Tcl为EDA工具的脚本编写。这些在现有环境下会用就行,进阶后可以自己写makefile。
二、初识门道
1. 时序分析和通信协议
- 学习内容:时序分析、同步FIFO和异步FIFO、通信协议(SPI、UART、APB、AHB、AXI)
- 掌握技能:
- 时序分析:理解时序路径、时序约束、时序分析方法
- 通信协议:掌握常用协议的实现和应用
2. 算法和RTL设计
- 学习内容:算法到RTL代码实现、模块设计与实现、综合的概念和方法、低功耗设计
- 掌握技能:
- RTL设计:从算法到RTL代码的实现
- 综合:理解综合的概念和优化方法
- 低功耗设计:掌握低功耗设计技巧
三、小试牛刀
1. AXI和USB项目
- 学习内容:AXI协议、AXI2AHB bridge、AXI crossbar、USB通信协议、USB设备架构、仿真
- 掌握技能:
- AXI项目:深入理解AXI协议和相关设计
- USB项目:掌握USB通信协议和设备架构的设计与仿真
2. SOC设计
- 学习内容:SOC设计流程、SOC系统架构、IP复用的设计方法、综合、可测性设计
- 掌握技能:
- SOC设计:理解SOC的基本概念和设计流程
- IP复用:掌握IP复用的设计方法
四、验证
1. SystemVerilog和UVM
- 学习内容:SystemVerilog数据结构、过程语句和子程序、接口、面向对象、多线程、随机化约束、覆盖率、验证理论、UVM基本概念、UVM平台、UVM机制
- 掌握技能:
- SystemVerilog:掌握高级验证语言和技术
- UVM:构建复杂的验证环境和验证用例
2. 验证项目实训
- 学习内容:SPI模块验证、UART模块验证、Ahb2apb模块验证、子系统验证
- 掌握技能:
- 验证项目:通过实际项目练习验证技能
五、进阶之路
1. 高级设计和优化
- 学习内容:算法优化、逻辑设计、开发、验证、时钟、复位、低功耗、总线、芯片总体集成
- 掌握技能:
- 高级设计:掌握高级设计和优化技巧
- 系统集成:理解芯片的系统集成设计
2. 管理和团队协作
- 学习内容:项目管理、团队协作、新人带教
- 掌握技能:
- 管理技能:培养项目管理和团队协作能力
- 带教技能:掌握新人带教的方法和技巧
六、持续学习和发展
1. 行业动态和新技术
- 学习内容:保持对行业动态和新技术的关注
- 掌握技能:
- 持续学习:不断更新和完善自己的知识体系
- 技术前沿:了解最新的技术和发展趋势
2. 职业规划
- 学习内容:职业发展规划、技术路线和管理路线选择
- 掌握技能:
- 职业规划:制定长远的职业发展目标
- 路线选择:根据自身特点选择技术路线或管理路线