全文 2031 字,阅读大约需要 4 分钟
第一台真正意义上的自动驾驶汽车最早可追溯至 1980 年代,随着近年来人工智能和新型传感器(硬件)的快速发展,自动驾驶相关行业迅速进入红海。尽管相关技术已经逐步趋于成熟,但如何更快地识别路况、提高系统判别实时性一直是学术界和工业界追求的目标。
FPGA 作为一种半定制化电路,具有 ASCII 芯片所没有的可编程的灵活性,又具有一般 CPU 所不具备的硬件层并行数据处理的优势,广泛用于图像处理、机器视觉、无人驾驶等领域。在某种程度上,FPGA 可兼顾人工智能的大量计算需求和工业应用中低延时的要求。从前几年神经网络软件算法的爆火到近些年来 “用 FPGA 加速神经网络 ” 逐渐火出圈,让我们看到了技术发展自上而下的革新,从软件到硬件,从高层抽象到底层电路,硬件的天花板作用越发彰显。
本文首发于在下石同学 未经授权 不得转载
文 | 在下石同学
FPGA (Field Programmable Gate Array),即现场可编程逻辑阵列。
现场可编程逻辑门阵列(Field Programmable Gate Array,缩写为FPGA),它以PAL、GAL、CPLD等可编程逻辑器件为技术基础发展而成。作为特殊应用集成电路中的一种半定制电路,它既弥补全定制电路不足,又克服原有可编程逻辑控制器逻辑门数有限的缺点。
图:ZYNQ-7020 核心板
FPGA 作为一种半定制化电路,具有 ASCII 芯片所没有的可编程的灵活性,又具有一般 CPU 所不具备的硬件层并行数据处理的优势,广泛用于图像处理、机器视觉、无人驾驶等领域。在某种程度上,FPGA 可兼顾人工智能的大量计算需求和工业应用中低延时的要求。从前几年神经网络软件算法的爆火到近些年来 “用 FPGA 加速神经网络 ” 逐渐火出圈,让我们看到了技术发展自上而下的革新,从软件到硬件,从高层抽象到底层电路,硬件的天花板作用越发彰显。
相对于一般编程语言开发,FPGA 的开发过程更为繁琐,尽管 FPGA 也有 Verilog/VHDL 这样的代码语言去描述和定义逻辑功能,但 Verilog/VHDL 是硬件描述语言,跟 C/C++ 不同的是,经过后续的综合以后,可以直接生成对应的电路。
FPGA 的开发流程主要包括 7 个部分,如下图所示:
图:FPGA 开发流程
下面简要聊聊各个部分的作用(敲重点!)
我们可以看到,FPGA 的开发过程是非常折腾的,通过 RTL 级仿真、综合后仿真、时序仿真三大仿真实现从逻辑到门电路时延的反馈和调整,好在大部分工作都由 EDA 软件工具帮我们完成了,实际上,在大部分开发中,整个流程中最核心的还是前两部分,Verilog/VHDL 代码和RTL 级仿真。
FPGA 的仿真工具有很多,但由于 FPGA 芯片本身专利问题及制造的差异性,基本上某一具体型号 FPGA 芯片的开发工具和该器件厂商是绑定的,不像 ARM 这种嵌入式通用处理器有更加完善和通用的开发工具链。当然,对于一般 Verilog/VHDL 的 RTL 级层面仿真,不涉及具体的芯片型号,市面上的仿真工具都可以使用,常见的如大牌厂商 Altera(现已被 Intel 收购)家的 Quartus,Xilinx 家的 Vivado,Mentor Graphics 家的 ModelSim,Cadence 家的 NCSim,开源的 Icarus Verilog 以及一些国产方案等。
注:本文用到的所有软件相关参考链接都会附在文末
工具 | 厂商 | 说明 |
Quartus | Altera | |
Vivado | Xilinx | |
ModelSim | Mentor Graphics | PE、DE、SE 三个版本,非常流行 |
NCSim | Cadence | Incisive 工具套件,用于 ASIC 设计 |
Icarus Verilog | GNU GPL | 开源、轻量 |
TangDynasty | 上海安陆科技 | 国产厂商 |
Pango Design Suite | 紫光同创(深圳) | 国产厂商 |
procise | 复旦微(上海) | 国产厂商 |
Altera 和 Xilinx 家的 FPGA 是市场占有率最高的,涵盖了 FPGA 设计的整个流程,ModelSim 是 FPGA 仿真最受欢迎的软件,非常流行, Icarus Verilog 支持 GPL 协议,开源免费且轻量,也是 FPGA 开发中 RTL 级仿真值得使用的软件,搭配 GTKwave,出仿真图非常方便,功能强大。
本文简单介绍了 FPGA 开发的基本流程和常见的仿真工具,太长时间没更新了所以赶紧水一篇。
开设 FPGA 专题咯,就当作 FPGA 专题的开篇吧!
文中涉及 FPGA 软件工具参考网站:
Icarus Verilog — Icarus Verilog documentation (steveicarus.github.io)
上海复旦微电子集团股份有限公司-国内从事超大规模集成电路的设计、开发和提供系统解决方案的专业公司 (fmsh.com)
欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |