FPGA属于数电的范畴,在学习FPGA之前,最好有数电基础知识,若没有数电基础,最好先把数电学习一遍,熟悉数电的一些基本逻辑门电路、组合逻辑、逻辑化简等,还有各种触发器、锁存器、计数器等用法。
FPGA在嵌入式行业的优势还是挺大的,如今的电子产品对处理速度、处理能力要求越来越高,FPGA在这方面有明显的优势。只要FPGA的逻辑资源允许,很多线程可以并行处理。FPGA属于并行处理器,并不像单片机、DSP、ARM等属于完全串行的处理平台。
FPGA该如何自学呢?下面谈谈本人的观点。
编程语言
FPGA的编程语言使用的是硬件描述语言——Verilog或VHDL,Verilog更容易入门一些,很多语言风格、语法跟C语言很相似,但是编程思想跟C语言又不同,不能按照C语言的思想去学习Verilog。可以自己买一本教材自学,注意若学Verilog就购买Verilog教材,别买错了。
下图为Verilog编写的ram小模块例子程序
生成的ram模块
开发实践
主流的FPGA开发平台有Altera 公司(目前属于Intel公司)的quartus开发平台和Xilinx公司的Vivado、ISE开发平台,Altera和Xilinx占据FPGA市场的绝大部分份额。
购买FPGA开发板时,最好选择外围扩展功能较多,例子齐全、资料丰富的开发板。跟着开发板编程实践即可。
可以从最简单的例子开始实践,比如简单的LED控制,实践LED闪烁,模拟串口通信、SPI通信等,学会使用常见的IP核。
FPGA实战中涉及的内容很多,比如在什么情况下使用上升沿和下降沿触发,什么情况下使用电平触发,掌握FPGA的设计思路,编程模块化。
总之,学习FPGA,关键是参与项目实践,在实践中前行,多编程历练,才能快速成长。