研读《AXI总线仲裁器的设计与实现》-AXI协议理解(二)

《AXI总线仲裁器的设计与实现》分析了 ARM AMBA3.0片上总线体系中 AXI 协议规范的关键特性,提出一个基于 AXI 协议的总线仲裁器的具体实现方案,并对设计进行了仿真验证,仿真结果表明了设计的正确性。
主要描述了针对 3 个以下主设备和1个从设备的总线仲裁器,具有标准的 AXI总线接口,采用改进的轮询仲裁策略,满足多个设备公平拥有总线使用权的情况。

1.1 AXI 总线仲裁器概述

在这里插入图片描述

1.2 轮询仲裁方案

轮询方式将总线依次供各处理机使用,需要考虑的是总线有几个通道需要仲裁,几个总线通道是否互相独立?
在这里插入图片描述
有限状态机分为idle、1、2、3四个状态,复位时进入idle态。sta=1时通道为master1使用,依此类推;当三个master都没有发出请求时,进入idle态,按照 master发出请求的先后顺序,可以从 idle 直接跳入最先发出请求的状态,如三个 master 同时发出请求,则首先进入状态1;状态1结束时,首先检测master2的请求信号,如master2无请求,则检测master3是否发出请求;与 master1 类似,如当前状态为2,master2利用通道传输完成后, 首先检测master3的请求信号,然后检测 master1的请求信号;另外如某段时间内有且仅有一个master请求占用总线通道,则状态机保持在相应状态,即通道持续为该设备使用。

各个通道相互独立,但是在Slave应该按照先后顺序依次输出。

1.3 模块划分

根据通道独立性, AXI arbiter需要对3个master的五个通道分别进行仲裁, 因此,设计分为5个主要模块,包括写传输的写地址、写数据、写响应三个模块,及读传输的读地址、读数据两个模块。其中,写地址、写数据、读地址三个模块中的有限状态机轮询方案进行设计,写响应和读数据模块可根据 ID 号判断将 slave 发出的数据返回给对应的master。

1.3.1 写地址模块设计

一个MASTER发出awvalid时,接收到awready才允许切换别的MASTER, 共用一个S_AWREADY。

1.3.2 写数据模块设计

与写地址类似,注意顺序。伪代码判断条件如下:

wd1_begin = wvalid1; M1_wd_end = wvalid1&wready1&wlast1;
1.3.3 写响应模块设计

根据 slave 发送的 BID 信号就可以判断将 BRESP 信号传回给哪个 master。不需要状态机。

1.3.4 读通道设计

读地址与写地址类似,读数据与写响应模块类似。

1.4 读数据传输模型

3 个 master 都有传输时,读地址通道的仿真波形。

在这里插入图片描述
ar_sta为读地址通道的状态,可以看出值在1,2,3中转换,表示 master1,master2,master3发出的读信息传输经过arbiter轮询仲裁在读地址通道上传输。

参考文档

【1】石蓉,黄秋元,陈慧. AXI总线仲裁器的设计与实现[EB/OL]. 北京:中国科技论文在线 [2011-04-27]. http://www.paper.edu.cn/releasepaper/content/201104-686.
论文下载地址:http://www.paper.edu.cn/releasepaper/downFile/original/NUDGQFyQMRTVMIxeQNgeQeQ

  • 6
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Paul安

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值