AXI总线

  • 何处使用AXI

    • ZYNQ异构芯片,内部总线使用的AXI总线
    • 纯FPGA的IP接口也要用
    • 高速接口,DDR(AXI、传统)等模块都有涉及到
  • 什么是AXI总线
    • AXI的三种形式:

      • AXI-FULL:高性能的存储器映射需求—可以256个以内发送

        • 存储器映射—主机对从机进行读写操作时,会指定一个目标地址,这个地址对应系统存储空间的地址,表示对该空间进行读写操作,存储器本身没有地址,给存储器分配地址的过程叫存储器映射。
      • AXI-LITE:简化版本—不支持突发传输—单次一个数据
      • AXI-STREAM:高速的流数据通信—移除地址的需求,直接发数据
      • 利用DMA可以实现从数据流到存储器映射到转换
    • AXI总线的设计者
      • ARM公司是AMBA总线的一种(APB、AHB、AXI)
  • AXI机制
    • 面向存储的一种设计
    • AXI总线是一种突发总线,突发传输—效率高速度快。一直连续的传输,比如突发8次传输,就是指8个时钟连续传输8个数据
    • 五个通道
      • 每个独立的通道都包含一组信息信号、VALID信号和READY信号,用于提供双向握手机制
      • 信息源端使用VALID信号表示当前通道地址、数据和控制信息什么时候有效,目的端使用READY信号表示什么时候可以接受信息
      • 读地址通道—包含所需的地址和信息
      • 读数据通道—包含last信号、由从机发送给主机,包含了读数据和读响应的信息,读响应的信号用于表示读传输是否操作完成
      • 写地址通道—包含所需的地址和信息
      • 写数据通道—包含last信号,由主机发送给从机,包含了写数据,然后通过WSTRB信号表示当前数据哪个字节有效
      • 写响应通道—这是一个独立的通道,而读响应则直接在读数据通道中,从机通过这个响应传递给主机
    • 信号的描述
      • ACLK和ARESETn—全局信号不属于任何一个通道
      • 写地址中的关键信号
        • AWADD—写地址,指定突发传输下的第一个地址即起始地址
        • AWLEN—突发长度—比输入的定义大一位
        • AWSIZE—单个数据的大小
        • AWABURST—突发类型—判断如何分配后续的地址增长—INCR—自增加模式—根据突发的大小来自增,发多大的AWSIZE就自增多少
        • AWVALID—master发出—地址是否有效果
        • AWREADY—slave决定是否准备接收好地址
      • 写数据的关键信号
        • WDATA—真正的数据
        • WSTRB—WDATA哪个数据有效
        • WLAST—最后一个数据拉高
        • WVALID
        • WREADY
      • 写响应的关键信号
        • BRESP—表示写传输的状态—OKAY表示成功—SLVERR从机错误
        • BVALID—slave
        • BREADY—master
      • 读地址的关键信号
        • 和写地址的一样
      • 读数据的通道
        • 和写一样
    • 时序步骤
      • 写地址
      • 写数据
      • 写响应
  • 波形验证
    • valid和ready同时为高代表数据当前有效
    • 先写地址,再写数据,最后一个数据跟随last信号
    • 先读地址再读数据,最后一个数据跟随last
    • 写完数据,有一个响应信号
  • 突发传输有指定需要
  • 实现一个AXI总线的方式
    • AXI写实现步骤

      • 写首地址—有效信号和准备信号同时有效
      • 紧接着写首地址,突发传输数据
      • 控制last信号
      • last脉冲后等待响应信号,从机给主机
    • AXI读实现步骤
      • 写首地址
      • 紧接着等待从机传输过来的数据,当有效信号和准备信号都是高时,读取数据
      • 接受last信号
  • AXI InterConnect和AXI SmartConnect的介绍
    • 这两个IP核都用于连接单/多个存储器映射的AXI Master和单/多个存储器映射的AXI Slave(即为不可以连接stream类)
  • AXI传输机制和死锁
    • outstanding和out-of-order

      • outstanding

        • AXI总线的写地址和写数据是分离的,可以写地址总线上连续发送两次地址,再依次传输写数据
      • out-of-order
        • 多对多的情况下,ID不同,传输可以任意传输,AXI4中只针对从机有效。主机不支持
    • 死锁
      • AXI总线发生异常,死机了,无法正常工作
    • 死锁产生原因
      • 主要是没有严格执行AXI总线协议
    • 死锁情况
      • 一般是在一个主机对多个从机的时候(outstanding address),主机先发送地址顺序,由于先发送的距离远而后发送的距离近,因此,导致后发送的先收到了写信号,此时,会发送M1占用S1,导致了死锁
      • 多个主机对多个从机(out-of-order)互联模块管理下会出现这种问题,两个主机,第一主机发送相同ID到S1,S2。第二个主机也发送相同的ID到S1、S2,但是经过AXI桥,将ID扩展后,对于从机来说是不同的ID,可以乱序传输。那么S1可能会先响应第二个主机而S2响应第一个主机。主机接受响应乱序,违反协议陷入死锁。
  • AXI接口
    • clock和reset—所有的输出都在clock的上升沿之后输出
    • reset后关键是信号主机arvalid/awvalid/wvalid要为低,从机rvalid和bvalid为低
    • 握手机制
      • 都是使用一样的valid和ready,因此,主机和从机都可以控制传输速率
      • valid和ready都是高才可以
    • 优先级别示意图的意义—单箭头无所谓谁先拉高—双箭头有优先级别

AXI总线核心解读---基于官方文档相关推荐

  1. 使用cephadm部署单节点ceph集群,后期可扩容(基于官方文档,靠谱,读起来舒服)

    目录 ceph各种部署工具比较(来自官方文档的翻译,靠谱!) 材料准备 cephadm使用条件 服务器有外网访问能力 服务器没有外网访问能力 安装cephadm cephadm的功能 两种安装方式 基 ...

  2. 11 Themeleaf语法介绍 解读Themeleaf官方文档

    Themeleaf语法介绍 第一个入门程序 代码如下 入门程序存在的坑 [1]spring boot1.x中themeleaf中存在缓存,需要关闭 [2]themeleaf官方文档开头就讲的是国际化的 ...

  3. 基于官方文档Autosar_SWS_CanDriver 中文翻译记录

    Can驱动状态机 (1)上电或复位后,Can模块应处于CAN_UNINIT (2)在初始化CAN硬件单元内的所有控制器后 ,调用接口Can_Init()将Can模块状态更改位CAN_READY (3) ...

  4. python schedule运行了一遍说没有任务_python-schedule模块(定时任务)基于官方文档总结...

    一.模块安装 pip3 install schedule 二.常用的使用案例 #基本格式 #创建方法 def func(): print("方法") #创建定时 schedule. ...

  5. 迅搜安装流程(基于官方文档)

    运行下面指令下载.解压安装包 wget http://www.xunsearch.com/download/xunsearch-full-latest.tar.bz2 tar -xjf xunsear ...

  6. What、Why、How?解读Webpack官方文档

    What is Webpack? Webpack具有Grunt.Gulp对于静态资源自动化构建的能力,但更重要的是,Webpack弥补了requireJS在模块化方面的缺陷,同时兼容AMD与CMD的模 ...

  7. 微信小程序中,Bmob的入门(基于官方文档的补充)

    这两年小程序大火,从开始入门小程序到现在使用bmob,在这里我分享一下自己的心得和经历的坑. Bmob的导入 老规矩了,在bmob注册账号,在控制台创建应用,进入应用页面,在应用设置页面填写在微信公众 ...

  8. Detectron2 官方文档详细解读 (上)

    Detectron2解读全部文章链接: Facebook计算机视觉开源框架Detectron2学习笔记 - 从demo到训练自己的模型 Detectron2 "快速开始" Dete ...

  9. 如何下载 spring 官方文档 pdf

    spring 系列框架,官方文档都是html 格式的, 并未提供pdf 的下载入口.在html 路径后直接添加/pdf 即可进入pdf 下载页面 1. spring 官网 进入spring官网: ht ...

最新文章

  1. 多个Google账户合并(共享)数据
  2. SpringCloud 应用在 Kubernetes 上的最佳实践 — 部署篇(开发部署)
  3. Java代码简化之lombok
  4. mysql关系模式怎么画_关系数据库与mysql
  5. 暑期英语学习(词组积累)【持续更新中】
  6. Ibatis中的大于、小于、like等符号写法
  7. 2020级C语言大作业 - 鸭王争霸赛
  8. springMVC的url重写
  9. Linux内核启动过程学习
  10. 《完全写作指南》晨读笔记
  11. jq插件jquery-barcode.js生成条形码
  12. 电力系统中的Kron简化(Kron Reduction)
  13. AtCoder Beginner Contest 121
  14. python concat_python数据拼接: pd.concat
  15. three.js 实现波纹效果
  16. mysql实验训练2 数据查询操作_实验训练2:数据查询操作.doc
  17. border-image
  18. 调用方法[manageApp]时发生异常 java.lang.IllegalStateException: 启动子级时出错
  19. 简单玩转ViewPager+Fragment动画效果,实现京东淘宝物流卡片效果 (附源码)
  20. git 重置用户名 密码信息

热门文章

  1. Python安装教程步骤3:Pycharm和Anaconda3安装及环境配置相关问题汇总
  2. 驱动层SSDT 隐藏进程
  3. 专访宜信AI中台团队负责人王东:智慧金融时代,大数据和AI如何为业务赋能
  4. 利用jieba分词分析小说二
  5. 专家:火箭留帕森斯胜追甜瓜 引援可考虑加索尔
  6. 【财富空间】如何看待目前国内AI公司的估值?
  7. 【高等数学基础进阶】定积分与反常积分-反常积分
  8. 07年五大BT网站排行榜 - 电影、音乐还有传票
  9. 动态链接库DLL是什么?
  10. 琢石成器之自动化去广告神器