
FPGA书籍分享已在此进行。
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
废话不赘述,接下来进入正题,学习FPGA经历了一个演进的阶段:首先,需要掌握Verilog语言,并熟悉其各种语法规则。其次,深入学习FPGA本身,包括对Quartus II软件功能的熟练运用、各种逻辑算法的设计、以及接口模块(如RS232、LCD、VGA、SPI、I2C等)的设计,同时进行时序分析和硬件优化工作,最终能够独立设计简单的FPGA开发板。随后,学习Nios II处理器及其开发流程,熟悉相关的开发软件(SOPC、Nios II IDE),理解Nios II的基本架构,并设计Nios II开发板并编写相应的C语言程序进行调试。
首先来说说第一个阶段。目前主流的硬件描述语言主要有VHDL和Verilog两种,在本科阶段通常会学习VHDL。然而,近年来Verilog的应用越来越广泛,因为它具有更易于上手(与C语言语法相似)的特点以及更高的灵活性。如今的集成电路设计几乎全部采用Verilog。此外,像systemC和systemVerilog等语言可能仍处于发展初期,未来有望取得更大的突破。考虑到以上因素,我最终选择了Verilog作为我的硬件描述语言的学习对象。
事实上,如果具备了C语言的基础知识,学习Verilog语言会变得相对简单;关键在于掌握并行概念。模块(module)、赋值语句(assign)和始终语句(always)等都是并行的执行的,这一特性与软件编程有着明显的区别。为了帮助读者更好地理解Verilog语言, 建议参考以下书籍:首先,《verilog 数字系统设计教程》是一本非常适合入门的书籍,它以通俗易懂的方式讲解了基本概念和实例应用, 并且提供了丰富的示例材料, 能够帮助初学者快速上手。其次,《设计与验证Verilog HDL》虽然篇幅较短, 但其讲解非常深入, 许多概念阅读后会产生豁然开朗的感觉。学习Verilog语言并不需要阅读大量的书籍;关键在于能够灵活地运用所学知识并进行实践练习.
经过一段时间的学习后, 我逐渐能够编写简单的代码, 并希望自己的程序能够在开发板上运行并获得预期结果. 因此, 我开始着手学习项目的第二个阶段——使用实验室提供的CPLD开发板进行实践. 在这个阶段中, 我重点熟悉Quartus II软件的各项功能, 例如IP核的调用、各种约束设置、时序分析以及Logiclock设计方法等. 然而, 在实际操作中发现CPLD的资源相对有限 (缺乏内置RAM、无法使用SignalTap II以及LE资源不足等), 同时实验室并没有提供FPGA开发板, 这促使我萌生了自己构建FPGA开发板的想法. 恰好我之前也对Cadence工具进行了学习, 因此我花费了一段时间主要研究了FPGA配置电路的设计, 并在此板子上搭建了JTAG和AS下载口, 以及一些用户按键和LED灯. 其他端口则全部引出作为IO口进行连接. 电路设计相对简单, 而当板子成功焊接后带来的成就感是难以言喻的!
我选择的FPGA型号为Cyclone II系列EP2C5, 其资源比之前的FPGA有了显著提升, 还配备了PLL (锁相环) 和内置RAM等功能. 这使得我能够尝试使用SignalTap II进行高级调试功能以及利用内置逻辑分析仪来测试引脚波形. 通过利用这块开发板, 我完成了项目中的多个核心功能模块: RS232通信、指令译码、DDS配置(直接数字合成器)、AD数据高速缓存以及电子开关状态设置等. 在实践中学习确实比单纯地阅读资料更加高效且充满动力!
在此期间阅读了一些我认为比较有价值的书籍:首先,《Altera FPGA/CPLD 设计(基础篇)》详细介绍了基本的FPGA设计技术以及Quartus II软件中各个工具的使用方法 (例如IP核、RTL代码编写、SignalProbe工具、SignalTap II工具、Timing Closure Floorplan工具和Chip Editor工具),对于初学者来说是非常友好的入门教材。其次,《Altera FPGA/CPLD 设计(高级篇)》则探讨了一些高级工具的应用技巧,包括LogicLock的时序约束分析、设计优化以及硬件编程的思想等等; 这本书对于提升技能水平非常有帮助。最后,《FPGA设计指南--器件، 工具和流程》这本书涵盖了FPGA设计的各个方面内容; 虽然每个方面都只是简要介绍 , 但它能让你对整个FPGA设计过程有一个整体的概念 , 并了解所有可用的设计功能及整个开发的流程 。
全部评论 (0)


