FPGA(现场可编程门阵列)在通信、图像处理、高速信号处理这些领域用得特别多,因为它是并行处理的,一个FPGA里塞几十上百个核同时跑都没问题,比CPU串行处理快得多。不过FPGA的学习曲线比单片机陡不少,入门选对开发板很重要。今天就聊聊FPGA开发板该怎么选,零基础用哪款性价比高。
先简单说下FPGA的厂商格局,主要是两家:Intel(Altera被收购的)和AMD(Xilinx被收购的)。Altera的FPGA叫Cyclone系列,开发工具是Quartus Prime;Xilinx的叫Artix、Kintex、Virtex系列,开发工具是Vivado。两家的语法差不多(都是Verilog或者VHDL),但工具链完全不同。入门建议选Altera的Cyclone IV或者Xilinx的Artix-7,这两款资料最多,国内开发板也便宜。
如果预算有限,推荐选野火或者正点原子的FPGA开发板,Cyclone IV EP4CE6系列的,价格大概在200到400块之间。这种板子基本的外设都有:LED、按键、数码管、串口、VGA接口、SPI Flash、SDRAM,做入门实验完全够用。而且配套资料特别详细,从Verilog语法到每个外设的例程代码都有,跟着教程一步步做就能上手。
如果预算充足一些,可以选Zynq系列的开发板,比如ZedBoard或者国内的米联客板子,Zynq是ARM+FPGA的异构架构,里面有个Cortex-A9双核加上一块FPGA逻辑,既能跑Linux又能做硬件加速。这种板子价格在500到1000多,但能学到的东西更多,适合有单片机或者嵌入式基础的同学。
开发工具方面,Quartus Prime和Vivado都是免费的学习版,安装文件比较大,大概10G左右,建议提前下载好。除了IDE,还需要下载对应芯片的仿真模型,比如ModelSim或者QuestaSim,用来做功能仿真。仿真这一步很重要,FPGA的逻辑如果有问题,直接烧录到板子上是看不到波形的,必须先仿真验证逻辑正确再上板调试。
学习路线建议这样安排:第一阶段学Verilog语法,掌握always块、assign语句、module端口、时序/组合逻辑的区别;第二阶段做几个简单的小实验,比如LED闪烁、按键消抖、数码管显示、串口收发;第三阶段学状态机设计,做一个交通信号灯控制器或者数字秒表;第四阶段学FIFO、RAM、PLL这些IP核的使用;第五阶段挑战一下图像采集和显示,用OV5640摄像头采集然后通过HDMI或者VGA显示出来。
FPGA跟单片机最大的不同是思维方式,单片机是顺序执行的,FPGA是硬件并行的,写代码的时候要时刻想着"我是在搭电路而不是写程序"。一个always块就相当于一个硬件模块,不同的always块之间是并行运行的,搞清楚这一点是入门的关键。另外时序约束也很重要,Vivado或者Quartus里要设置时钟频率和各个引脚的时序要求,否则代码可能跑不起来或者不稳定。
下一篇:没有了