本周我想进一步探求可编程逻辑(FPGA)与硬核处理器(HPS)之间互联的结构。我发现了三种首要方法,它们是怎么映射并处理通讯的,哪些组件需求管控时序并且有拜访权限。
AXI Bridge
为了能够完结HPS与FPGA之间的通讯接口,衍生出了AXI bridge协议。AXI bridge协议能够处理带宽适应和时钟操控,支撑HPS与FPGA之间双向的逻辑和数据交互。
HPS到FPGA
HPS到FPGA有两种类型:高吞吐量和低吞吐量。高吞吐量的数据带宽能够使32位、64位或128位,它是专门为高带宽数据传输而规划的,HPS作为主,处在L3层。
轻量级(或低吞吐量)通道被限制为32位,可是它进行了优化,推迟最低。它的首要功用是将操控和状况寄存器传递给FPGA。此外它也对HPS到FPGA的通讯通道进行了必定的分流,详细类比描绘见图1,从HPS到FPGA有两条通道:第一个是32位数据通道具有更高的速度限制,另一个则规划了很多个通道,在同一时间支撑更高的带宽和更多的数据传输。
FPGA到HPS
图1的第三个通道是完结FPGA到HPS的数据传输,它规划的意图是拜访HP slave接口或在HPS程序端等候数据的输入。它能够装备为32位、64位或许128位的数据带宽,是由HPS L3主切换时钟来操控。
为了将这些通讯通道结合在一起,我开端翻阅Intel开发者社区的黄金硬件参阅规划攻略(GHRD),它供给了一些比如来阐明怎么在FPGA和HPS之间树立AXI bridge通道,正是凭借它我真实领会到了“装备导游”的强壮功用,只需求鼠标点击六次我就完结了三个通讯通道的装备,一起还能够装备内存分配。终究我了解到HPS bridge是映射到片上内存,完结尽可能少的推迟。而FPGA部分则映射到从内存地址,当有数据时将数据写入内存。
将它们整合在一起
那么这意味着什么?通讯通道和不同传输层关于我这种对小型低功耗的MCU经验丰富的人来说也不是有太多的时机运用它们。尽管如此,那些习气ARM MCU编程的开发者来说可能会了解这些通讯通道(Bridge)。实际上这些通讯通道是一系列的操控寄存器和内存映射,会以十分高的速度被拜访,这关于多线程、多核体系十分的有用,由于这类体系需求高速、多用途的数据传输。当然这种内部互联的主意关于MCU爱好者来说是十分遍及的。运用内部互联通讯通道来分管使命是十分了解的,可是将它们作为内存或RAM来拜访则有些别致了。简略来说,L3层是完结从FPGA到HPS通讯机制而规划的,支撑不同处理器核之间的数据传输。它开放了FPGA资源履行一些HPS所要完结的使命,不然HPS会有极大的阻止,终究从全体上提升了体系功能。