数字IC设计/FPGA设计之学习路径
对于正在学习数字IC/FPGA设计的学生或初学者,总有这样的感觉,不知道应该从哪些基础知识开始学习,以及学习的路径应该是怎样的。今天给大家整理了一份学习指南,希望能帮助大家明确学习方向和顺序,基础知识>专业知识>进阶知识和技能:
A:基础知识
1.电路分析和数字电路基础
2.微机原理和汇编语言
3.C/C++编程语言和数据结构
4.Verilog语言(推荐书籍:《Verilog HDL高级数字设计》或《Verilog数字系统设计教程》)
5.晶体管原理(只需了解基本原理)
B:数字IC设计专业知识
1.学习数字IC前端/FPGA设计的专业知识。推荐书籍《CMOS VLSI Design A Circuits and Systems Perspective》,这本书被认为是数字IC设计的入门"圣经"。它涵盖了基本电路结构、加减法器结构、组合逻辑、时序逻辑以及跨时钟设计等内容。
2.理解On-Chip-Bus的基本知识和数字系统的基本结构,特别是AMBA总线,包括APB/AHB/AXI。由于ARM在数字IP领域的领导地位,AMBA总线已成为数字IC的通用总线结构,是必学的内容。
3.开始进行数字IP的设计,并使用相关EDA工具: a)进行功能验证,使用仿真工具(如modelsim/questasim)来测试数字IP的功能,熟悉波形窗口和调试RTL代码。 b)学习综合与实现,着重掌握STA原理,包括cell delay在cell library中的标定、timing check的计算公式、clk skew、clk uncertainty等。了解STA原理后,可以使用TCL语言编写timing constraint(如XDC/SDC)。
C:进阶知识和技能
1.如果有兴趣,可以探索算法方向,包括信号与系统以及数字信号处理(DSP)。
2.学习常用接口协议,如UART、IIC、SPI、DDR,以及可能的USB、PCIE、SATA、MIPI等。
3.熟悉日常工作的操作系统平台,包括Linux操作系统、文本编辑器(如vim或emacs)、命令行操作(bash或csh)、以及创建makefile。
4.学习脚本语言,建议掌握Perl或Python以及TCL。
5.掌握版本管理工具,包括SVN和Git。
这个学习路径可以帮助初学者逐步建立起数字IC/FPGA设计的基础知识和技能,让大家能够在这个领域取得进一步的发展。不过,学习是一个个体化的过程,根据自己的兴趣和学习进度可以进行适当的调整。
#学习路径##IC##笔记##转行#