Axi:名词解释、乱序、间插、卷绕、窄带访问、非对齐访问、OST
信号说明:
AWBURST、ARBURST:
指示burst type,有3种burst类型。 Fixed:固定地址模式,每次burst传输首地址固定,用于访问FIFO INC:递增递增模式,每次传输,地址从首地址开始递增 WRAP:wrap模式,地址递增,到达wrap边界时,返回到起始的size对齐的地址上。Wrap边界是由传输size来确定的。 对于wrap模式,有2个约束。第一,首地址要根据传输size对齐;第二,burst长度在4个取值范围内,2,4,8,16 |
AWLOCK、ARLOCK
特殊访问模式,设置成00,则指示是normal access; 01:exclusive,理解是read exclusive访问,然后就对该读地址进行监控,后续再有对相同地址进行exclusive 写操作时,必须写入的数据与之前读出的数据一致,否则就会在反馈通道中输出EXERR。 10:lock模式,该模式访问后,锁定了一个master的访问。之后不允许有其他ID的master进行访问,直到unlock解锁完成 |
乱序:举例说明,发送awid顺序为0、1、2、3,由于dut(前提是dut支持乱序操作)内部的busy状态导致bid的返回顺序为1、2、3、0,这种情况为乱序;
间插:间插表示的是一个burst中某一些bit在前一个或后一个burst中返回,比如burst1读回来的数据为:11h、22h、33h、44h,burst2读回来的数据为:66h、77h、88h、99h,但是由于dut支持间插且dut当前触发间插状态,导致dut最终读回数据为:11、22、88、33、44、66、77、99,这种情况即为间插;(间插即交织)
间插必乱序;
卷绕模式为burst=2的情况,包括awburst、arburst,每次进行猝发激励时会计算一个上边界地址和下边界地址(根据start_addr、number_byte、burst_len),每次猝发看地址在[下边界地址,上边界地址)之间,如果猝发地址等于上边界地址则会卷绕会下边界地址,以此类推,上下边界地址计算公式如下:
下边界地址:wrapaddr=(int(addr/(number_byte*burst_len))) *(number_byte*burst_len)
上边界地址:wrapaddr+(number_byte*burst_len)
addr:猝发地址
number_byte:字节数(2^size)
burst_len:len+1
注:每次猝发都需要对上下边界地址进行计算、判断;
现象如下:
burst=2、arsize=4、arlen=4
经计算,addr0~3的下边界都为00、上边界都为40,所以总线访问地址分别如下:
addr___00:00、10、20、30
addr___10:10、20、30、00(注:卷绕了1个地址)
addr___20:20、30、00、10(注:卷绕了2个地址)
addr___30:30、00、10、20(注:卷绕了3个地址)
对应refm中的实现:
for(int i=0;i<=len;i++)
begin
if(len==1)addr[4] += i%2;
if(len==3)addr[5:4] += i%4;
if(len==7)addr[6:4] += i%8;
end
以128bit位宽总线为例子:
Axi窄带访问:一次axi总线写transf(1个burst中包含len+1个transf)的有效数据量不够128bit(使用wstrb控制);
非对齐传输:addr和size必须对齐,否则为非对齐传输,size=4时,表示每次trans的数据量为128bit,需要0x10地址,但是如果addr不为0x10的整数倍,则为非对齐传输,如burst的地址为A1=0x8007,则为非对齐传输(如果burst的初始地址为非对齐,一般情况下每个transf地址也肯定为非对齐);但是一般情况都支持和size对齐传输;
ost的一些理解:
ost的实现方式:ost一般实现是通过fifo、buffer实现的,但是寄存器打拍一般也会增加ost能力,比如多打一拍,ost能力加1;
- 除了以fifo、buffer的空满进行控制之外,一般也会在fifo、buffer的前级增加控制电路,比如通过计数获取push_cmd、pop_cmd的个数,当push_cmd(受pop_cmd个数的控制)达到提前设置的最大值时,dut自动拉低ready信号,即不可在将命令输入进来,达到前一级的控制;
- 不用进行前一级的控制,只需要fifo、buffer的空、满进行控制;
- 其他的控制方式;
以axi总线为例,对ost能力进行说明:
mst接口的ost能力,以axi_mst接口的aw、w和b通道为例说明ost的控制方式(不带前一级控制,只受到fifo/buffer空满控制):
- 拉低bready;
- 持续发送aw_cmd,命令会被压入到cmd_fifo中,core从fifo中获取cmd进行处理,但由于force bready=0,导致b通道不能将bresp信号输出,导致当前处理的cmd不能从fifo中pop出去,最终fifo会报full信号,反压不能在进行cmd的输入,这时即达到ost最大能力;
slv接口的ost能力,这里的slv的指令是从模块内部路由过来的(不带前一级控制,只受到fifo/buffer空满控制):
- 作为slv接口,其ost能力是在模块内部实现的,如下图,bar口的ost能力是通过模块内部的两级矩阵实现的,其实就是两级矩阵pipeline中可以存放的cmd个数;
- 如上图,只激励pp0口时,bar口的ost受两级矩阵最小的ost控制(两级矩阵都是可以配置ost,并且两者的ost不一样),其实上图中就是1x2矩阵的ost,因为2x1矩阵的ost比较大;
- 同时并行激励pp0、pp1,bar口的ost是两个1x2矩阵ost之和;
测试bar的ost时,读bar口的cmd个数为bar口的ost,这时读pp0、pp1的cmd个数,问这两个ost有什么关系吗?
答:这两个没任何关系,测bar口的ost时,force *ready=0,读bar口发出去的cmd个数,就是bar口的ost;需要测pp0口的ost时,需要force pp0的*ready=0,这时读到的cmd个数是pp0口的ost。
实测:ost说的是burst的数量,不管Xwlen、Xsize为多少(自测过);
猜测:当Xwlen、Xsize都为较大值的时候,由于cmd_fifo的full信号还未拉高,data_fifo的full信号已经拉高,这时候应该也会控制cmd_fifo不再接收cmd信号,即达到ost能力(这是我的一种猜测);
ost的说明:ost的一种实现方法,reg slice用来实现硬件中的打拍作用,但是如上文所说,reg slice会给某一边的接口增加ost能力;
slv口ost的测试方式:
1)force接口的bready、rready信号:由于force的是对外接口的信号,并且bready、rready信号是dut的输出,一般这种force的方式,不能达到你想要实现的目的;但有种方式可以改进force测试ost的方法,就是force dut中bready、rready这两个信号最源头(本人没有尝试过);(不推荐)
2)大流量用例:这种实现起来比较简单,但是在仿真波形中看cmd的ost比较麻烦,有可能需要看长时间的仿真波形才能找到(看实现ost的fifo空满的话应该会比较省时省力);
3)延时:在用例中配置延时,一般是配置bresp、resp返回时间进行实现的;(最推荐)
mst口ost的测试方式:
1)force接口的bready、rready信号为0即可;
Axi:名词解释、乱序、间插、卷绕、窄带访问、非对齐访问、OST相关推荐
- volatile关键字及编译器指令乱序总结
本文简单介绍volatile关键字的使用,进而引出编译期间内存乱序的问题,并介绍了有效防止编译器内存乱序所带来的问题的解决方法,文中简单提了下CPU指令乱序的现象,但并没有深入讨论. 以下是我搭建的博 ...
- 简单理解计算机内存乱序
作者 | 后端技术小牛说 责编 | 张文 头图 | CSDN 下载自视觉中国 本文探讨了自己对内存一致性模型的理解,由于不可避免的需要和操作系统底层打交道,本文主要例子和代码是 C++ 和汇编语言 ...
- 计算机体系结构——名词解释
计算机体系结构--名词解释 文章目录 计算机体系结构--名词解释 一.第一章 1.计算机系统结构,计算机组成,计算机实现 2.计算机系统结构分类法 ①Flynn分类法 ②冯氏分类法 ③Handler分 ...
- b2c项目基础架构分析(一)b2c 大型站点方案简述 已补充名词解释
b2c项目基础架构分析(一)b2c 大型站点方案简述 已补充名词解释 我最近一直在找适合将来用于公司大型bs,b2b b2c的基础架构. 实际情况是要建立一个bs架构b2b.b2c的网站,当然还包括w ...
- crosstool-ng 交叉工具链默认配置 名词解释
crosstool-ng默认配置列表 crosstool-ng版本1.23.0 安装使用参考 centos7用crosstool-ng构建交叉工具编译链 https://blog.csdn.net/w ...
- 计算机专业英语名词解释
2005-01-18 10:39 2795人阅读 评论(1) 收藏 举报 计算机专业英语名词解释 1.公司及其商标名 Microsoft: 有时缩略为MS,是全球最著名的软件商,美国软件巨头微软公司的 ...
- 计算机等级考试(三级网络)基本概念与名词解释
计算机等级考试(三级网络)基本概念与名词解释 作者:yt125 发表时间: 2005/07/26 22:04 点击:1329次 发帖得万元! 活动官方论坛 修改 精华 删除 置顶 来源 ...
- [转]常用图形学名词解释
常用图形学名词解释 3D|三维(three dimension).客观世界中静止的物体都是三维的,在计算机图形学中常在一定的坐标系中用(x,y,z)坐标系列表示物体. 3D modeling|3D建模 ...
- 考研数据结构名词解释大全
名词解释 1. **数据结构 ** 数据结构是相互之间存在一种或多种特定关系的数据元素的集合,数据结构包括三方面的内容:逻辑结构.存储结构.数据的运算 2. **逻辑结构 ** 数据元素之间的逻辑关系 ...
最新文章
- 在SQL Server 2008中配置文件流(FILESTREAM)
- 好礼相送|CSDN云原生 Meetup 成都站报名热烈启动,12.18见!
- Seam开发环境的搭建
- Ubuntu切换数据源
- 搞不定 NodeJS 内存泄漏?先从了解垃圾回收开始
- springcloud-05-ribbon中不使用eureka
- mac下完全卸载程序的方法
- 利用 cwRsync 实现代码(文件)同步的解决办法
- 从“专用”到“通用” 阿里平头哥野心何在?
- 动态传参, 名称空间, 嵌套, gloabal, nonlocal
- 30个超实用Python代码片段
- python教程推荐-入门python有什么好的书籍推荐?
- Synchronized的底层实现原理(看这篇就够了)
- smart原则_人生工具:SWOT、PDCA、6W2H、SMART、WBS、时间管理、二八原则
- JavaScript之Ajax Util
- C# NPOI 导出Excel 小数位数控制
- android 添加字幕,手机视频加字幕app 怎样用安卓手机在视频画面加文字字幕
- 用Scrapy框架爬取校花网所有校花图片
- 最简单的人脸检测(免费调用百度AI开放平台接口)
- GP232RL国产USB串口如何兼容FT232RL开发资料