FPGA 编程语言详解
FPGA 的'编程'本质是硬件电路描述,而不是传统软件编程。因此,FPGA 主要使用**硬件描述语言(HDL)**来描述数字电路的行为和结构。目前主流的 FPGA 编程语言如下,按使用广泛程度排序:
1. Verilog HDL(最常用,推荐入门首选)
- 特点:
- 语法类似 C 语言,简洁灵活,上手快。
- 代码可读性强,社区资源丰富。
- 支持行为级、RTL 级、门级描述。
- 版本演进:
- Verilog-1995:基础版,语法较老。
- Verilog-2001:增强版(推荐使用),支持 generate、parameter 等。
- Verilog-2005:小幅改进。
- 适用场景:几乎所有 FPGA 项目,尤其是 Xilinx/AMD、Lattice 等厂商。
- 市场占有率:约 60-70% 的 FPGA 工程师使用 Verilog。
2. SystemVerilog(当前工业界主流,强烈推荐进阶学习)
- 特点:
- Verilog 的超集,向上兼容。
- 增加了面向对象编程(OOP)、断言(Assertion)、随机化约束、接口(interface)等强大功能。
- 特别适合复杂设计和功能验证(UVM 验证方法学基于 SystemVerilog)。
- 适用场景:现代 ASIC 和高端 FPGA 设计,必学语言。
- 现状:新项目基本都用 SystemVerilog,Xilinx Vivado 和 Intel Quartus 都完全支持。
3. VHDL(VHSIC Hardware Description Language)
- 特点:
- 语法类似 Ada/Pascal,严格、冗长,类型检查强。
- 更适合大型团队协作和国防/航空等对可靠性要求极高的领域。
- 描述能力强,但代码量通常比 Verilog 多 2-3 倍。
- 适用场景:欧洲较多使用,美国部分政府项目强制要求 VHDL,Intel/Altera 传统上支持更好。
- 市场占有率:约 20-30%,呈下降趋势。
4. 高层次综合语言(HLS,High-Level Synthesis)(非传统 HDL,适合软件工程师转硬件)
- 特点:用 C/C++/SystemC/OpenCL 等软件语言编写算法,工具自动综合成 RTL 代码。
- 主流工具:
- Xilinx/AMD Vitis HLS(基于 C/C++)。
- Intel oneAPI(基于 OpenCL 或 SYCL)。
- Catapult(Mentor Graphics)。
- 优点:开发速度快,适合信号处理、AI 加速等算法密集型任务。
- 缺点:生成的 RTL 性能/资源通常不如手写 HDL 优化,调试困难。
- 适用人群:有软件背景、不想深入 RTL 的开发者。
5. 其他新兴/专用语言(了解即可)
- Chisel(基于 Scala):用于 RISC-V 等开源处理器设计,参数化能力极强。
- SpinalHDL(基于 Scala):语法更现代,适合复杂 SoC。
- Amaranth(基于 Python):新兴开源 HDL,社区活跃。

