这里记录一下我个人对AXI4主从模块的理解(这些理解主要来自阅读 Xilinx AXI_FULL_M_module 源码)
先只考虑读请求:
以取指模块和内存模块为例,取指模块是发出请求的模块,因此为 Master,属于AXI4MasterModule;内存模块是响应请求的模块,因此为 Slave,属于AXI4SlaveModule
相关的通道有两个:
1. Read Address Channel
2. Read Data Channel
主模块中,读地址通道中的核心信号包括:
读地址(主模块 -> 从模块)
读地址有效(主模块 -> 从模块)
读地址准备(从模块 -> 主模块)
它们的工作模式如下:
======================= 1. 读地址有效(主模块 -> 从模块):========================
每一个时钟上升沿,做一次下面的判断
情况1:当全局重置信号有效时,arvalid <= 0 --------------- 很好理解,不需要解释
情况2:如果当前 arvalid寄存器为无效,且 “start_single_burst_read” 信号为有效,则置 arvalid <= 1 ----------------------- 即,在当前时钟上升沿过后,arvalid = 1,相当于告诉从模块这个周期的读地址信号是有效的,要从模块(内存模块)返回存放在这个周期的读地址的数据
情况3:如果相连的从模块的 ARREADY(读地址准备)信号为高,且当前 arvalid 寄存器为有效(),则置 arvalid <= 0 (原因) ---------- 如果从模块的 ARREADY 信号为高,说明已经随时准备好接收读地址请求。那么,可以抱有信心,(当前周期 arvalid 有效)当前周期的 araddr 会在这个时钟上升沿之后被 从模块 顺利接收,所以 arvalid 可以在这个时钟上升沿之后置为0
情况4:其它时候,arvalid 保持不变 ----------------- 当 arvalid 无效时,如果没有收到 “要开始下一次读了(start_single_burst_read)”,也应该保持;当 arvalid 为有效时,如果没有收到“读数据发送完毕”的信息,应该保持
============================================================================
(从0手撕不会去管 INIT_AXI_TXN 信号)
------------------------------- 补充 -----------------------------------
mst_exec_state (主模块状态机): 四种: IDLE, INIT_WRITE, INIT_READ, INIT_COMPARE
IDLE(0): 1
INIT_WRITE(1): 1
INIT_READ(2): 1
INIT_COMPARE(3): 1
--------------------------------------------------------------------------
======================= 0.3. “start_single_burst_read”:========================
============================================================================
这里记录一下我个人对AXI4主从模块的理解(这些理解主要来自阅读 Xilinx AXI_FULL_M_module 源码)的更多相关文章
- EventBus源码解析 源码阅读记录
EventBus源码阅读记录 repo地址: greenrobot/EventBus EventBus的构造 双重加锁的单例. static volatile EventBus defaultInst ...
- flutter_boot android和flutter源码阅读记录
版本号0.1.54 看源码之前,我先去看下官方文档,对于其源码的设计说明,文中所说的原生都是指android 看完官方文档的说明,我有以下几个疑问 第一个:容器是怎么设计的? 第二个:native和f ...
- 源码安装ROS Melodic Python3 指南 (转) + 安装记录
这篇文章转自 https://blog.csdn.net/id9502/article/details/80410989 csdn真是作大死,我保存这篇博客的时候还不需要花钱就能看,现在居然要v ...
- 源码安装mysql,及主从同步
源码安装mysql [可选] 如果用源码安装cmake软件: cd /home/oldboy/tools/ tar xf cmake-.tar.gz cd cmake- ./configure #CM ...
- Spark join 源码跟读记录
PairRDDFunctions类提供了以下两个join接口,只提供一个参数,不指定分区函数时默认使用HashPartitioner;提供numPartitions参数时,其内部的分区函数是HashP ...
- centos 6x系统下源码安装mysql操作记录
在运维工作中经常部署各种运维环境,涉及mysql数据库的安装也是时常需要的.mysql数据库安装可以选择yum在线安装,但是这种安装的mysql一般是系统自带的,版本方面可能跟需求不太匹配.可以通过源 ...
- 编译CM13源码添加来去电归属地 SudaMod开源项目,查看commit提交记录
这个问题纠结了很多时间,感谢苏打先森@Sudamod的开源项目. 大家知道CM13是没有来去点归属地的,就算有那也是google,对于中国人不适用,所以这里把方法贡献出来. 1.与通话有关的app D ...
- Java--Spring AOP 源码散点记录(最后整理成一篇博客)
Spring AOP 源码记录: 1.AOP 入口ProxyFactoryBean.getObject()方法: 2.AOP实现: (1)实现InvocationHandler接口 (2)通过java ...
- android录像增加时间记录(源码里修改)
需要做一个功能,录像和播放时都显示录时的时间,参考文章链接找不到了,不好意思,这里记录一下,防止下次找不到了.另一篇关于源码录像的流程请参考 http://www.verydemo.com/demo_ ...
- Centos7源码安装mysql及读写分离,互为主从
Linux服务器 -源码安装mysql 及读写分离,互为主从 一.环境介绍: Linux版本: CentOS 7 64位 mysq版本: mysql-5.6.26 这是我安装时所使用的版本, ...
随机推荐
- python 之选择结构(if --elif --else)
python中有三种结构:顺序结构.选择结构.循环结构,此处介绍选择结构. if -- else 结构: if 判断条件: 执行语句 else: 执行语句 当if后面的判断条件为真(True)时,执行 ...
- mybatis 之定义拦截器 控制台SQL的打印
类型 先说明Mybatis中可以被拦截的类型具体有以下四种: 1.Executor:拦截执行器的方法.2.ParameterHandler:拦截参数的处理.3.ResultHandler:拦截结果集的 ...
- git remote update origin --prune命令失败
1.问题描述 我使用git remote update origin --prune命令更新远程分支上的代码,结果出现如下报错. 2.产生原因 本地关联的远程仓库失效了,需要重新再关联一下. 3.解决 ...
- 如何使用Redis和RabbitMQ实现一个学生抢课系统(可类比商品秒杀系统)
1.如何使用Redis和RabbitMQ实现一个学生抢课系统(可类比商品秒杀系统) 电商项目中的秒杀场景我们都很常见,不只是京东和淘宝现在很多的小程序公众号也有做现时限购的秒杀场景,那么如何做一个秒杀 ...
- ACWJ_00扫描器
第一部分:词法扫描介绍 我们从一个简单的词汇扫描器开始我们的编译器编写之旅.正如我在之前部分所提到的,扫描器的任务是从输入语言中(用来编译的语句)识别词法元素或者是符号. 我们将定义一个只有5 ...
- 刺激,线程池的一个BUG直接把CPU干到100%了。
你好呀,我是歪歪. 给大家分享一个关于 ScheduledExecutorService 线程池的 BUG 啊,这个 BUG 能直接把 CPU 给飚到 100%,希望大家永远踩不到. 但是,u1s1, ...
- 脱坑记录--- removeEventListener 移除事件监听失败的经历--vue--keep-alive-----完美实现echarts自适应屏幕~~~~
下面开始讲述事情经过~~~~ 页面代码是这样的 <template> <page-view :title="title"> <div id=" ...
- JDK的下载与安装-环境变量的配置
JDK的下载与安装 环境变量的配置 配置环境变量作用 开发Java程序,需要使用JDK中提供的工具,工具在JDK9安装目录的 bin 目录下. 在DOS命令行下使用这些工具,就要先进入到JDK的bin ...
- 10月31日ATM编写逻辑描述
目录 ATM逻辑描述 三层框架简介 1.第一层(src.py) 2.第二层(interface文件夹下内容) 3.第三层(db_hanlder) 启动函数 用户注册功能 用户登录 common中的小功 ...
- Fiddler V5.0 英文/汉化 Windows 抓包工具 【12月29日亲测有效】
前言 Fiddlerr 功能强大的抓包工具,Web调试工具,HTTP协议抓包调试工具.它能够捕获浏览器和程序的所有http/https通信连接,可以针对访问请求,分析请求数据报文.设置断点.调试web ...