FPGA(可编程逻辑门阵列),由逻辑单元、寄存器、静态随机存储器、乘法器、锁相环、IO组成。通过硬件描述语言Verilog或VHDL进行代码编程。主要特点是可编程性、并行处理、低功耗、适时性、灵活性兼具开发效率、成本。 FPGA国外知名的Xinlix,开发环境Quartus II、Modelsim。国内像高云、紫光同创等FPGA做的也挺好,有完整的开发环境、工具,丰富的资料,有一定基础上手不会太难。
Verilog 的设计多采用自上而下的设计方法(top-down)。即先定义顶层模块功能,进而分析要构成顶层模块的必要子模块;然后进一步对各个模块进行分解、设计,直到到达无法进一步分解的底层功能块。这样,可以把一个较大的系统,细化成多个小系统,从时间、工作量上分配给更多的人员去设计,从而提高了设计速度,缩短了开发周期。开发流程一般如下:
使用FPGA,需要掌握硬件编程语言,首推Verilog.与C有较多相似处,有一定C基础的学习不会太难,贵在坚持多试验。Verilog语言包括数值表示,数据类型,表达式,编译指令,连续赋值,时延,过程结构、赋值、连续赋值,时序控制,语句块,条件语句,多路分支语句,循环语句,模块与端口,例化,函数,任务,状态机,流水线,乘法器设计,数值转换等知识点。在网上也有很多学习资料,可以搜集整理学习。
由于厂家不同,可能开发环境需要去适应下。一般方案商会提供IDE开发环境及工具。国内高云的我看官网资料是做得挺好的,有完整的培训资料。紫光同创的
开发板系列也非常好。学习FPGA贵在积累,结合开发板实践,掌握技巧,提升能力。
个人很多年前有接触过Xilinx FPGA。学习使用FPGA需要一块软硬件资料完整完善的开发板做入门是挺重要的。也希望有机会有开发板进一步分享学习,支持国产,共建生态。