我对FPGA一点也不了解,我应该从何学起?
学习使用 ,关键是掌握以下内容:
(1) 对 F 的内部构成有初步了解,比如现代 GA 内部除了完成基本逻辑功能的单元外,还有专门的乘法器、 / DLL 、块RAM等。
(2) 熟练使用一门 HDL 写 RTL代码,建议大家学习 SystemVerilog ,掌握常见的 RTL 编写技巧和设计思想,掌握所使用的 FPGA 的厂商提供的库单元生成工具如 CoreGenerator 和 Megawizard 。
(3) 熟练使用 SystemVerilog 和 Syst 编写 Testbench ,熟练使用一种仿真工具。
(4) 熟练使用一种 FPGA 集成开发环境,学会所使用的 FPGA 的相应在线调试工具如 SignalTap 。
对于初学者,上面的东西不可能一下子都完成。可以分几步走:
(1)首先要花一些时间学习语言, VHDL 、 Verilog 、 Syst 、 SystemVerilog 中,目前企业中使用最广泛的是 SystemVerilog ,大学里还在教学 VHDL ,不过 VHDL 真的是 too old了。在学习中,第一步要掌握 SystemVerilog 的基本语法和设计思想,不一定要一下子什么都学会。接下来是对设计进行仿真,保证设计是正确的,这个时候就要学习使用ModelSim等仿真软件了。然后,尝试使用FPGA的开发环境如Qus II或者Foundation ISE 开发简单的设计,将基本流程跑通,包括分配管脚。在对语言有了一定的理解,基本的例子都学会了,真正还是让设计在 FPGA 上最终跑起来才能算真正确信自己学会了FPGA设计。
(2)在设计更复杂一点的例子中,你会遇到很多的问题,比如时钟的生成、FIFO、RAM等,这个时候你就会遇到 FPGA 的厂商提供的库单元生成工具如 CoreGenerator 和 Megawizard 。你会希望了解 FPGA 内部结构,从而了解你的代码是怎么变成实际的功能的。
(3)你会逐渐觉得这些基本的东西还不够,RTL仿真太慢,代码编写太复杂,容易出Bug,你希望加速你的设计过程,用这个时候你就需要使用SystemC来做Testbench,用更多的现成的 IP ,用 FPGA 内部的 CPU如 NOIS II或者PowerPC来设计。
- 上一篇:FPGA的主要应用有哪些?
- 下一篇:主要硬件描述语言及其发展史