本书籍推荐分享专注于介绍适合不同水平读者学习的FPGA相关书籍,旨在为初学者提供入门指导,帮助进阶者深化理解与实践。
直接进入主题。学习FPGA经历了以下阶段:
1. 学习Verilog语言:掌握其语法。
2. 深入了解FPGA:熟悉QuartusII软件的各项功能,设计各种逻辑算法和接口模块(如RS232、LCD、VGA、SPI等),进行时序分析及硬件优化,并开始设计简单的FPGA板子。
3. 学习Nios II:掌握其开发流程,了解相关开发工具(SOPC, NiosII IDE),熟悉基本结构并编写C语言程序调试各模块功能。
在第一个阶段中,主要学习Verilog作为硬件描述语言。虽然VHDL也是一种常用的硬件描述语言,但出于易学性和灵活性的考虑,越来越多的人选择使用Verilog进行IC设计。System C和System Verilog目前尚处于发展初期,未来可能有更广泛应用。
鉴于这些原因,在开始时选择了Verilog来学习。如果你已经掌握了C语言的基础知识,那么学习起来会相对容易一些;重要的是要理解并行的概念——在Verilog中所有的module、assign以及always都是同时执行的这一特性与软件编程有很大不同。
推荐以下几本评价较高的书籍供参考:
- 《verilog 数字系统设计教程》:非常适合初学者上手,内容浅显易懂,并且包含许多实用的例子。不过该书在资源优化方面的讨论较少;
- 《设计与验证Verilog HDL》:虽然篇幅不长但讲解深入,有助于理解一些关键概念。
掌握基本语法后需要多加练习灵活运用。
当初步掌握了Verilog语言之后,便进入FPGA学习阶段。首先使用实验室里的一块CPLD开发板进行实践操作,在这个过程中熟悉QuartusII软件的各项功能(如IP的调用、约束设置等),但后来发现资源有限无法满足需求,于是决定自己制作一块FPGA开发板。
最终选择的是Altera公司的cyclone II系列中的EP2C5芯片。与之前的器件相比,这款FPGA具有更丰富的内部资源和更多样的设计工具(如SignalTapII逻辑分析仪)。使用这块自制的开发板完成了一些项目功能模块的设计工作:串行通信、指令解码等,并通过实践加深了对硬件编程的理解。
推荐以下几本参考书籍:
- 《Altera FPGA/CPLD 设计基础篇》:涵盖了基本设计技术和QuartusII软件中各个工具的应用;
- 《Altera FPGA/CPLD 设计高级篇》:介绍了LogicLock技术、时序约束和分析等内容,适合进一步提高技能水平;
- 《FPGA设计指南—器件 工具与流程》:全面地讲解了从硬件选择到开发过程的各个方面。