嵌入式FPGA与ARM总线连接支持整体处理解决方案

业界正在接受嵌入式现场可编程门阵列 (efpga),因为该技术已在多个流行工艺节点的硅片中可用并得到验证。efpga 正在以多种方式集成到芯片中,包括作为可重新配置的 i/o 处理器或加速器,在数据路径或控制路径中。这种方法的好处是它通过不将加速器绑定到固定功能来提供灵活性。
为此,芯片设计人员可以创建从 efpga 到 arm 架构的高级外围总线 (apb)、amba 高性能总线 (ahb) 和 amba 高级可扩展接口 (axi) 总线的连接,从最简单的接口到apb 从机到最复杂的 axi 主机。
随着网络、深度学习和人工智能 (ai) 以及航空航天和国防等应用对硬件加速的需求不断增长,对片上系统 (soc) 和微控制器 (mcu) 设计的需求也在不断发展。如今,常见的 soc 具有集成数字信号处理 (dsp) 和 fpga ip 块,专用于特定 i/o 或处理工作负载,而主 cpu 内核处理通用任务。这些架构支持更高效、更灵活的整体处理解决方案。
尤其是 efpga,由于上述原因,最近越来越受欢迎。与传统的 dsp 和 fpga 不同,efpga 可以作为可重新配置的 ip 块设计到芯片中,可以重新编程以处理不同的工作负载加速任务或在芯片组的整个生命周期内管理不同的 i/o(图 1)。
图 1. flex logix 的 eflx efpga ip 可以在 mcu 和 soc 设计中实现为可重新配置的硬件加速块或可重新编程的 i/o 块。]
例如,对于使用 arm 架构的芯片设计人员,efpga 可以连接到 apb、ahb 或 axi 处理器总线以利用这些优势。但是,考虑到多种组合(主/从 x axi/ahb/apb x 外部接口逻辑或使用 efpga 实现),应仔细考虑这些设计。
efpga i/o 资源
为了更好地了解如何使用标准接口将 efpga 设计成基于 arm 的 mcu 或 soc,我们将以 flex logix eflx-2.5k 嵌入式 fpga ip 内核为例。
eflx-2.5k efpga 是一个 1x1 阵列,由 2,520 个具有 632 个输入和 632 个输出的六输入查找表 (lut) 组成。它在 16 nm 工艺中的工作频率约为 1 ghz,在 28 nm 工艺中优于 500 mhz。因此,即使是最小的 efpga 也具有足以连接到最宽、最快的 arm 总线的 i/o 资源和速度。
(注意:最大 7x7 的更大数组是可能的,每个增加的数组大小的 i/o 数量计算为 nxm 数组中的 n*632 输入和 n*632 输出。增加数组大小的 lut 数量类似计算为 n*m*2520。)
efpga 作为 apb 从机
配置为 apb 从机的 efpga 通常会实现为可重新配置的 i/o 功能。例如,多种串行接口中的一种可以包括 uart、i2c 和 spi。
在这种配置中,多个模块连接到 apb 总线,该总线一次在一个模块上运行(图 2)。每个块都有内存映射的地址空间(例如 128 个寄存器的 8 位),而总线上的数据可以是 8、16 或 32 位。8 位地址空间和 32 位数据需要 45 个输入和 33 个输出,而 16 位总线使用更少的 16 个输入和 16 个输出。
图 2.配置为 apb 从机的 efpga 通常实现为包含多个存储器映射块的可配置 i/o 功能。apb 总线在每一个上同步运行。
apb 从接口快速、简单,可以在外部实现,也可以在 efpga 的逻辑中实现。例如,在此配置中,eflx efpga 需要少于 10 个 lut。如图 3 所示,apb 从接口 verilog 代码和状态图也很简短。
图 3.当 efpga 配置为 apb 从接口时,verilog 代码和状态图很简单。
efpga 作为 axi 主机
axi 总线由三个版本组成:axi4、axi4 stream 和 axi4 lite。
图 4 显示了具有在 efpga 外部实现的包装器的 axi4 主设备。axi 主包装器的功能是处理所有总线协议,管理数据流控制,并在配置期间将 eflx fpga 与 axi 总线隔离。
在这里,eflx reconfigurable accelerator 充当总线主控器,因此 cpu 不需要向内存传输数据和从内存传输数据。这可以将 cpu 卸载到可以与 eflx 加速器并行运行的其他任务上。
图 4.配置为 axi 主设备的 eflx 可重配置加速器可以减轻 cpu 的总线管理任务负担。
eflx efpga 能够支持窄或非常宽(128 字节)的 axi 数据宽度,具体取决于加速器功能所需的带宽。eflx 阵列中的控制寄存器和 apb 从属逻辑在 eflx 阵列中实现并通过 apb 总线进行控制。图 2 所示的 apb 从接口示例可以实现控制寄存器接口。
图 5 显示了 axi 总线架构的高级图,说明了主从连接。在将 efpga 实现为 axi 主设备时,应始终翻转 efpga 以简化关闭、定时、输入和输出到/输出。数据总线宽度可以是 1、2 或 4 字节等,最多 128 字节。
图 5.为了简化 axi 总线中的主从连接,建议对 efpga 进行翻转。
即使对于复杂的总线主控,verilog 代码也相对简单(图 6)。
图 6.使用 efpga 作为 axi 总线主控器时,verliog 代码仍然相对简单。
efpga 通过单独的从接口
除了作为加速器或 i/o 处理器的阵列操作的总线连接之外,eflx 等 efpga 还提供了一个单独的从接口,用于加载配置位以根据需要进行重新配置。外部 axi 从包装器也可用于与配置端口连接。
例如,使用 eflx,配置位通常存储在与 arm 处理器代码相同的闪存中。处理器启动后,它使用直接存储器访问 (dma) 通过配置从接口将配置位访问到 efpga。
结论
随着现代处理解决方案对灵活性和性能的需求日益增长,efpga 可以使用少量高速逻辑轻松连接到任何类型和宽度的 arm 总线。经过多年的复杂性和成本挑战,基于 efpga 技术的可重构加速器和 i/o 处理器已成为任何基于 arm 的 soc 或 asic 架构师的易于使用的资源。


瑞萨电子推出ADAS应用入门级开发套件
NVIDIA BioNeMo框架将为生物学研究提供加速
你会选择自建还是购买物联网平台
外部电源开关同步降压控制器的拓扑结构
抽象推理是机器通向人类智能的最终障碍
嵌入式FPGA与ARM总线连接支持整体处理解决方案
手语识别:解锁语言交流的新时代
防水效果好的蓝牙耳机有哪些?适合运动戴的蓝牙耳机推荐
基于SAR系统的无人机定位导航系统的设计
嵌入式开发 ARM Cortex-M3处理器具有怎样的优势
为实现电动汽车可持续发展,换电和充电谁更合适
使用可编程直流电源替代电池
Parker派克PS/RS/PV系列精密行星齿轮减速机有哪些特点?
谷歌在人工智能上单靠“买买买”似乎并不奏效
火绒企业版2.0正式上线 聚焦企业终端安全
百度:安全问题或为自动驾驶汽车大麻烦 自动驾驶难以成为现实
磁棒电感线圈的绕法及注意事项
电子商务中佳润物联网技术会如何
华为P10手机被曝光,或今年春季发布
单片机与嵌入式系统的区别与联系