首先我们来看自学的路径:
第一阶段
首先你需要有基本的数电基础,明白数字电路运行的原理和一些基本的常识,这个时候推荐你看《数字电路基础》
第二阶段
在懂得了基础的数字电路原理和常识之后,你需要将该数字电路转换成实际的硬件,即需要用硬件描述语言去把这个电路给实现出来,市面上用的最多的还是Verilog,此时需要学习如何用Verilog硬件描述语言与一个具体的数字电路联系起来,需要建立硬件设计的思维和概念,学习基础的语法,并试着要用Verilog写一个简单的设计,如一个二分频电路,简单的加减法器等,并且用Verilog语言搭建一个简单的对自己编写的设计(DUT)的验证环境。
那么这个时候推荐你看夏宇闻老师编写和翻译的书籍:
或者以下这本:
以上两本都可以,时间充裕的话都看一看,把书上的理论和例子看明白,但是光看还不行,还需要动手实际编写代码,仿真跑一跑才能加深对硬件设计的理解。所以啊,你还需要学会使用使用EDA工具,而一般EDA工具都在Linux环境下,因此你还需要熟悉Linux环境的基础操作命令,那么你还需要编写代码,那么你还需要熟悉在linux环境下使用vim编辑器来编写代码,总之你还需要学习:
- 熟悉Linux环境及其基础操作命令
基本整个芯片行业所需要使用的EDA软件都运行在Linux环境下,设计和验证更是如此,因此首先需要熟悉Linux环境和一些基础命令。
一般情况下大家的电脑要么是微软的Windows要么是苹果的MAC OS,如果你要学习使用Linux的话,你需要首先安装一个虚拟机,一般是VMware,然后再安装一个系统,一般是Ubuntu。
说实话,光摸索准备这些环境和系统,对于新手来说就比较费劲了。
- 学习vim编辑器来编写代码
当然也可以使用别的代码编辑器,但是vim是最推荐的,可以说它是文本编辑器之神也不为过。
但是新手一般不喜欢使用vim,因为它的编辑方式,不像大家习惯的word或txt文本编辑,它完全是通过命令指令的,简单说要求你基本放弃使用鼠标来完成文本的编辑。很多人觉得很不习惯,很不方便使用,但是如果你用习惯了的话,你会发现vim简直是程序员最好的编辑器。
- 学习主要的前端设计验证EDA软件
学习Synopsys的VCS或者Cadence的NC-Verilog,这两个都可以,但是业界使用VCS相对较多,因此比较推荐大家先学习VCS。至于NC-Verilog,功能类似,如果以后就职的公司使用的是NC-Verilog而不是VCS的话,如果你已经学会VCS的话,NC-Verilog会很快上手。