学完基础的verilog语言后如何进一步学习fpga?
学fpga,先学写状态机,仿真和基础的i2c之类的协议,这是第一步,基础打好后,fpga必须会高速接口如ddr,pcie之类,算法方面至少fft之类的ip核试着用用,这算是进阶,然后还有异步时钟,布局布线,时序优化等等,技术路线基本就这样,等这些都掌握了,工作应该妥妥的
verilog是目前数字电路的通用(主流)描述语言,必学的。
但是数字IC/FPGA设计,绝不止是verilog。就像软件开发,绝不止是C++。
还有很多基础知识,专业知识技能是需要学习掌握的。自己可以对照下。
A:电子工程师(Electronics Engineer)基础知识
1:电路分析,数字电路基础;
2:微机原理,汇编语言;
3:C/C 语言,数据结构;
4:Verilog语言(比如Michael, D.Cilette的《Verilog HDL高级数字设计》或夏宇闻老师的《Verilog数字系统设计教程》);
5:晶体管原理;(做数字IC/FPGA设计,只需大致了解)
B:数字IC设计专业知识
1:进数字IC前端/FPGA设计的专业知识学习,sky推荐这本书:《CMOS VLSI Design A Circuits and Systems Perspective》。自认为是数字IC设计入门“圣经”。基本电路结构,加减法器结构,组合逻辑,时序逻辑,跨时钟设计都有涉及。
2:在此还需要理解On-Chip-Bus的基本知识与一个数字系统的基本结构,建议学习理解:AMBA总线,含:APB/AHB/AXI。由于ARM在数字IP领域的领导低位,AMBA总线事实上已经成为数字IC的通用总线结构,必学。
3:现在可以开始做数字IP的设计了,涉及到使用相关EDA tool。
a):功能验证:对于初学者(在校生),能modelsim/questasim上做仿真测试,熟悉波形窗口;debug RTL code。再使用下windows版的nLint/Debussy就能完成数字IP功能设计验证了。
b):综合与实现:这部分首先(重点)要掌握STA原理,比如:cell delay在cell library里面是怎么标定的,tool是怎么计算delay的,setup/hold timing check