当前位置:首页 > 芯闻号 > 基础知识科普站
[导读]几乎所有的电子设计师和嵌入式系统开发人员都听过现场可编程门阵列(FPGA)。对于实际的FPGA器件,设计人员和开发人员都知道它拥有可编程架构,能够对其进行配置来而执行想要的功能,但他们的了解可能仅限于此。

几乎所有的电子设计师和嵌入式系统开发人员都听过现场可编程门阵列(FPGA)。对于实际的FPGA器件,设计人员和开发人员都知道它拥有可编程架构,能够对其进行配置来而执行想要的功能,但他们的了解可能仅限于此。同样,当涉及创建一个可以在FPGA上实现的设计时,他们可能听过硬件描述语言(HDL)和寄存器转换级电路(RTL)之类的术语,但可能并未充分理解它们的含义。

与Verilog或VHDL相似,HDL能让FPGA设计人员描述设计意图,正如软件开发人员使用C++或者C++等编程语言一样。理解HDL的方式之一就是它可以用来描述同时发生的事物,这也是现实世界中硬件工作的方式。相比之下,软件编程语言通常用于描述顺序发生的事。

同时,RTL是常用于逻辑综合引擎输入的抽象级电路。该工具将RTL转换到逻辑元件和互连网络,然后在FPGA的可编程逻辑内实现。逻辑综合引擎可以比作软件开发者的编译器,后者采用高级程序作为输入,并将其转换为由处理器执行的机器代码。

FPGA的可编程结构可用于构建硬件加速器,以低功耗执行数据处理任务。可编程结构经过配置后可创建一个或多个更适合处理决策任务的软核处理器,这些处理器还可以控制硬件加速器,包括向其提供数据并根据结果采取相应措施。

RISC-V就是这样一种处理器,它是一种开源指令集架构(ISA),可以通过开源许可免费获得。RISC-V开源硬件概念的创造者受到Linux开源软件成功的启发。RISC-V的一大优势是在各类设计实现中都有出色的软件兼容性,并且目前这些处理器的使用急剧增长。

然而,对于想要使用这种处理器的非FPGA设计人员而言,问题在于他们缺乏有关FPGA设计语言、工具和流程的专业知识。为了解决这个问题,低功耗可编程FPGA的领先供应商莱迪思半导体开发了名为LatTIcePropel™的工具,这是一款基于图形用户界面(GUI)的设计环境,任何用户(无论是否具有FPGA专业知识)都能使用它以拖放的方式快速设计基于RISC-V处理器的系统。

Propel输出的是RTL文件,可以发送到综合引擎,生成可载入FPGA的配置文件。之后软件开发人员可以在基于FPGA的RISC-V设计实现上运行他们的RISC-V可执行文件,正如在其他任何RISC-V处理器上运行一样。莱迪思为其FPGA客户免费提供RISC-VIP核。

基于FPGA的解决方案

数据处理要求有合适的计算引擎。开发者拥有诸多不同选择,包括微处理器(MPU)、微控制器(MCU)、图形处理器(GPU)、FPGA和SoC等器件。

MPU和MCU在执行决策任务时效率很高,但是在实现原始数据处理算法时,无论是处理时间还是功耗都不太理想。SoC能以最低的功耗实现最高性能,但缺点是开发起来价格昂贵、耗费资源且十分耗时,并且在此类芯片架构中实现的算法基本上都是固定无法更改的,而系统采用的协议和标准会不断变化,因此会带来很多问题。

某些数据处理任务(包括许多AI/ML算法)非常适合并行处理。FPGA的可编程架构(图1a)经配置可实现硬件加速器(HA)功能,以大规模并行方式执行任务(图1b),从而显著提高性能,同时降低功耗。

许多情况下还需要数据协处理功能,使用中央处理器(CPU)来强化硬件加速器,处理器可以执行高级决策和控制功能。不同于直接在芯片中实现的硬核CPU,FPGA的可编程架构能够实现软核CPU以及相关的总线结构(地址、数据、控制)和任何所需的外设IP功能(图1c)。

图1.结构化总线的方法广泛适用于各类应用,包括嵌入式视觉、安防和人工智能。

需要注意的是,根据FPGA器件和用户的要求,额外的可编程逻辑功能和外围通信功能(例如USB、MIPI、I2C、SPI、CAN和UART)可以通过硬核和/或软核实现。文章篇幅有限此处不作赘述。

使用软核CPU有诸多优点,包括能够配置处理器的操作及许多可选功能,如动态内存访问(DMA)控制器,从而对其精确调整,高效地满足目标应用的要求。此外,如有需要,可以配置可编程结构实现其他外设IP功能。如在人工智能应用中,可以使用可编程逻辑资源来创建简单的人工神经网络,用于推理之类的任务。

RISC-V

如前所述,RISC-V是基于已有的精简指令集计算机(RISC)原则的开源指令集架构,可通过开源许可获得。此外,许多公司目前提供支持RISC-V的RISC-V硬核或开源操作系统,并且几种主流的软件工具链均支持该指令集。

RISC-V的模块化设计包括基础指令集和其他的扩展指令集。在行业、技术界和教育机构的共同努力下,两者已得到长足的发展。基础指令集规定了指令(及其编码)、控制流、寄存器(及其大小)、存储器和寻址、逻辑(即整数)操作以及辅助功能。仅基础指令集就能实现具有全面软件支持(包括通用编译器)的通用计算机。

还可以通过可选拓展指令集实现额外功能,从而让设计人员灵活选择其应用所需的功能。RISC-V定义了许多扩展指令集,包括A(原子)、F(单精度浮点)、D(双精度浮点)、Q(四精度浮点)和C(压缩的16位指令以减少代码尺寸,用于存储空间有限的系统)。上述指令集均可灵活选择。

图2.莱迪思是首个支持RISC-V的基于闪存和SRAM的FPGA供应商。

与作为专用处理器的硬核实现相比,基于FPGA的软核RISC-V拥有的巨大优势在于FPGA可重新配置的巨大潜力能够满足各种扩展需求。

莱迪思RISC-V软核IP套件拥有32位RISC-V处理器核以及可选的定时器和可编程中断控制器(PIC)子模块。该CPU核支持RV32I指令集、外部中断和符合JTAGIEEE1149.1规范的调试。

定时器子模块是一个64位实时计数器,它将实时寄存器与另一个寄存器进行比较以触发定时器中断。PIC子模块最多将八个外部中断输入聚合为一个外部中断。处理器核通过使用行业标准的32位AHB-L总线接口访问子模块寄存器。

莱迪思Propel

许多嵌入式系统的设计人员都对使用FPGA很感兴趣,但是一想到要使用传统的FPGA设计工具和HDL就望而却步。为了解决这一问题,莱迪思Propel采用了基于图形用户界面(GUI)的设计环境,任何用户(无论是否具有FPGA专业知识)都能使用其拖放的设计方式快速构建和配置基于RISC-V处理器的设计。

Propel输出的是使用VerilogHDL语言的RTL文件,可以将其发送到综合引擎,生成可载入FPGA的配置文件。该配置文件可用于莱迪思CrossLink™-NX(面向嵌入式视觉应用)、Certus™-NX(通用FPGA)以及MachXO3D™和Mach™-NXFPGA(安全系统控制)系列产品。FPGA配置完成后,软件开发人员可以在基于FPGA的RISC-V设计实现上运行他们的RISC-V可执行文件,正如在其他任何RISC-V处理器上运行一样。

图3.Propel界面直观、易于使用、功能强大。

除了拖放IP实例化,PropelBuilder还能自动进行引脚连接,通过向导配置和设置参数以及采用按构造逐步校正进行IP集成。

其次是莱迪思PropelSDK(软件开发套件),可提供无缝的软件开发环境。它拥有行业标准的集成开发环境(IDE)和工具链。SDK还为PropelBuilder定义的系统提供软件/硬件调试功能以及软件库和板级支持包(BSP)。

需要注意的重要一点是,Propel可以很好地对接下游工具,并且它也是一个独立的程序,且其大小仅为0.5GB,可以快速轻松地下载和安装。同样令人感兴趣的是,Propel的所有命令都可以用Tcl编写,从而提高了设计效率并将其快速集成到用户自己的设计环境中。

图4.无论是简单的“HelloWorld”应用还是复杂的嵌入式控制和数据处理系统,Propel都能让用户快速完成设计

对于硬件设计,Propel是那些需要FPGA优势但缺乏FPGA硬件设计经验的团队的理想选择。此外,如果团队成员确实具有FPGA设计经验,那么他们还可以根据需要对设计做更为精确的控制。对于软件设计,Propel提供行业标准的C/C++开发环境。软件开发人员似乎更多地使用现成的微控制器。

设计人员可以使用Propel在CrossLink-NX、Certus-NX和Mach-NXFPGA中快速轻松地生成基于RISC-V软软核的处理器系统,从而提供复杂的视频处理、系统控制和系统安全功能,其延迟远远低于通过外部独立处理器实现的设计。

总结

除了拥有以低功耗执行高性能数据处理任务的逻辑功能和硬件加速器外,FPGA内部的可编程架构还可用于实现一个或多个更适合决策任务的软核处理器,以及用于诸如硬件加速器之类的控制功能,包括向它们提供数据并根据结果采取措施。

RISC-V就是这样一种处理器,它是一种开源指令集架构(ISA),可以通过开源许可免费获得。莱迪思是首个支持RISC-V以及为其FPGA客户免费提供RISC-VIP核的基于闪存和SRAM的FPGA供应商。

对于想要使用这种处理器的非FPGA设计人员而言,问题在于他们缺乏有关FPGA设计语言、工具和流程的专业知识。为了解决这个问题,莱迪思提供了Propel来简化设计流程,让开发人员能够快速设计基于RISC-V处理器的系统。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

近日举办的GTC大会把人工智能/机器学习(AI/ML)领域中的算力比拼又带到了一个新的高度,这不只是说明了通用图形处理器(GPGPU)时代的来临,而是包括GPU、FPGA和NPU等一众数据处理加速器时代的来临,就像GPU...

关键字: FPGA AI 图形处理器

随着汽车软件数量爆发式的增长,整个行业都需要重新思考汽车产品的开发流程。为此,Arm推出了丰富的硬件IP、新的系统IP,以及全新的汽车计算与计算子系统产品路线图,旨在为各种汽车应用实现性能、功能安全、可扩展等方面的支持。

关键字: ARM 汽车电子

知名移动芯片设计公司ARM最近迈出重要一步,它正式推出汽车芯片设计。ARM推出的芯片设计方案名叫Neoverse,随同芯片一起推出的还有面向汽车制造商、汽车供应商的新系统。

关键字: ARM 汽车芯片 芯片

当我们提到成本优化型FPGA,往往与简化逻辑资源、有限I/O和较低制造工艺联系在一起。诚然,在成本受限的系统设计中,对于价格、功耗和尺寸的要求更为敏感;但随着一系列创新应用的发展、随着边缘AI的深化,成本优化型FPGA也...

关键字: AMD FPGA Spartan 边缘计算

全球领先的高性能现场可编程门阵列(FPGA)和嵌入式FPGA(eFPGA)半导体知识产权(IP)提供商Achronix Semiconductor公司宣布,该公司参加了由私募股权和风险投资公司Baird Capital举...

关键字: FPGA 智能汽车 eFPGA

全新 FPGA 能为嵌入式视觉、医疗、工业互联、机器人与视频应用提供高数量 I/O、功率效率以及卓越的安全功能

关键字: FPGA 嵌入式视觉 机器人

随着通用人工智能的发展,数据中心的计算需求逐步提高。针对多模态数据、大模型的推理和训练需要更高的算力支持,而随着算力提升与之而来的还需更关注在功耗方面的优化。对于头部云计算和服务厂商而言,针对专门用例提高每瓦性能变得至关...

关键字: ARM 服务器 AI Neoverse CSS

Altera致力于为客户提供端到端的FPGA、易于使用的AI、软件和弹性供应链。

关键字: FPGA AI

在半导体领域,大部分对于AI的关注都集中在GPU或专用AI加速器芯片(如NPU和TPU)上。但事实证明,有相当多的组件可以直接影响甚至运行AI工作负载。FPGA就是其中之一。

关键字: FPGA AI 半导体

半导体产品老化是一个自然现象,在电子应用中,基于环境、自然等因素,半导体在经过一段时间连续工作之后,其功能会逐渐丧失,这被称为功能失效。半导体功能失效主要包括:腐蚀、载流子注入、电迁移等。其中,电迁移引发的失效机理最为突...

关键字: 半导体 电迁移 FPGA
关闭
关闭