可编程逻辑(FPGA)与硬核处理器(HPS)之间互联的结构
本周我想进一步探究可编程逻辑(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会有极大的阻碍,最终从整体上提升了系统性能。
可编程逻辑(FPGA)与硬核处理器(HPS)之间互联的结构的更多相关文章
- FPGA的软核与硬核
硬核 zynq和pynq系列的fpga都是双ARM/Cortex-A9构成,这里的ARM处理器为硬核,Cortex-A9部分为FPGA部分.即整体分为两部分:PS/PL.PS部分为A9处理器部分,PL ...
- 嵌入ARM硬核的FPGA
目前,在FPGA上嵌入ARM硬核的包括Xilinx的zynq系列以及Intel 的CYCLONEV系列. Zynq出来有一定市场,但是这个市场不是传统FPGA的主流市场,而是为了和微处理抢一些控制领域 ...
- 各种软核处理器二进制文件FPGA初始化文件生成程序
不管是MIPS, Nios II, MicroBlaze, MSP430, 8051, OpenRISC, OpenSPARC, LEON2/LEON3等等软核处理器,在FPGA上实现的时候我们通常需 ...
- 程序员需要了解的硬核知识之CPU
大家都是程序员,大家都是和计算机打交道的程序员,大家都是和计算机中软件硬件打交道的程序员,大家都是和CPU打交道的程序员,所以,不管你是玩儿硬件的还是做软件的,你的世界都少不了计算机最核心的 - CP ...
- Mybatis系列全解(六):Mybatis最硬核的API你知道几个?
封面:洛小汐 作者:潘潘 2020 年的大疫情,把世界撕成几片. 时至今日,依旧人心惶惶. 很庆幸,身处这安稳国, 兼得一份安稳工. · 东家常讲的一个词:深秋心态 . 大势时,不跟风.起哄, 萧条时 ...
- 重磅硬核 | 一文聊透对象在 JVM 中的内存布局,以及内存对齐和压缩指针的原理及应用
欢迎关注公众号:bin的技术小屋 大家好,我是bin,又到了每周我们见面的时刻了,我的公众号在1月10号那天发布了第一篇文章<从内核角度看IO模型的演变>,在这篇文章中我们通过图解的方式以 ...
- 袋鼠云研发手记 | 数栈·开源:Github上400+Star的硬核分布式同步工具FlinkX
作为一家创新驱动的科技公司,袋鼠云每年研发投入达数千万,公司80%员工都是技术人员,袋鼠云产品家族包括企业级一站式数据中台PaaS数栈.交互式数据可视化大屏开发平台Easy[V]等产品也在迅速迭代.在 ...
- Colder框架硬核更新(Sharding+IOC)
目录 引言 控制反转 读写分离分库分表 理论基础 设计目标 现状调研 设计思路 实现之过五关斩六将 动态对象 动态模型缓存 数据源移植 查询表达式树深度移植 数据合并算法 事务支持 实际使用 展望未来 ...
- 阿里P7整理“硬核”面试文档:Java基础+数据库+算法+框架技术等
现在的程序员越来越多,大部分的程序员都想着自己能够进入大厂工作,但每个人的能力都是有差距的,所以并不是人人都能跨进BATJ.即使如此,但身在职场的我们一刻也不能懈怠,既然对BATJ好奇,那么就要朝这个 ...
随机推荐
- ffmpeg-3.1.4居然也有这么坑的bug
近日自己用下载的ffmpeg-3.1.4代码自己编译来用,没想到会碰到这么一下低级坑.我用自己的编译出来的库总是会在用rtsp上传视频时崩掉,起初我还以为自己编译的x264出问题,因为我是绕开使用pk ...
- hopper反汇编工具的逆向伪代码功能并不理想
hopper的逆向代码功能并不如想象中那么好,尤其是在逆向c++代码时.对于从ObjC进入iOS开发又不太清楚运行时的人员来说,hopper可以将反汇编码输出成[obj selector:what]这 ...
- 移动端vue页面禁止移动/滚动
当需要在移动端中禁止页面滚动,加入:@touchmove.prevent即可,例子如下 <template> <div @touchmove.prevent> <h3 c ...
- 查看k8s中etcd数据
#查看etcd pod kubectl get pod -n kube-system | grep etcd #进入etcd pod kubectl exec -it -n kube-system e ...
- Redis 的底层数据结构(对象)
目前为止,我们介绍了 redis 中非常典型的五种数据结构,从 SDS 到 压缩列表,这都是 redis 最底层.最常用的数据结构,相信你也掌握的不错. 但 redis 实际存储键值对的时候,是基于对 ...
- 继上篇-jquery ajax提交 本篇用ajax提交的数据去数据库查询
上篇讲到如何用jquery ajax提交数据至后台,后台接收并返回给ajax.https://www.cnblogs.com/tiezhuxiong/p/11943328.html 今天我们把数据传到 ...
- mui开发:苹果手机自动全屏解决方案
前一段时间,使用mui写app时,出现了苹果手机播放视频时,自动全屏的情况,并且无法点击控件,只能等到播放完毕后点击控件. 那么怎么解决这个问题呢,弟弟们请看我的下面. 1.在页面的video标签中, ...
- C语言l-2019秋作业01
2.1 你对软件工程专业或者计算机科学与技术专业了解是怎样? 在进入大学之前,我认为软件工程就是学习开发软件的,后来,从网上搜索了有关它的定义,软件工程是一门研究用工程化方法构建和维护软件的学科,它以 ...
- 2019-2020-11 20199317 《Linux内核原理与分析》 第十一周作业
ShellShock 攻击实验 1 ShellShock 简介 Shellshock,又称Bashdoor,是在Unix中广泛使用的Bash shell中的一个安全漏洞,首次于2014年9 ...
- APM环境搭建
权限设置 把用户添加到用户组 “dialout”(如果这步没做,会导致很多用户权限问题): sudo usermod -a -G dialout $USER 然后注销后,重新登录,因为重新登录后所 ...