先只考虑读请求:

以取指模块和内存模块为例,取指模块是发出请求的模块,因此为 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 源码)的更多相关文章

  1. EventBus源码解析 源码阅读记录

    EventBus源码阅读记录 repo地址: greenrobot/EventBus EventBus的构造 双重加锁的单例. static volatile EventBus defaultInst ...

  2. flutter_boot android和flutter源码阅读记录

    版本号0.1.54 看源码之前,我先去看下官方文档,对于其源码的设计说明,文中所说的原生都是指android 看完官方文档的说明,我有以下几个疑问 第一个:容器是怎么设计的? 第二个:native和f ...

  3. 源码安装ROS Melodic Python3 指南 (转) + 安装记录

    这篇文章转自   https://blog.csdn.net/id9502/article/details/80410989  csdn真是作大死,我保存这篇博客的时候还不需要花钱就能看,现在居然要v ...

  4. 源码安装mysql,及主从同步

    源码安装mysql [可选] 如果用源码安装cmake软件: cd /home/oldboy/tools/ tar xf cmake-.tar.gz cd cmake- ./configure #CM ...

  5. Spark join 源码跟读记录

    PairRDDFunctions类提供了以下两个join接口,只提供一个参数,不指定分区函数时默认使用HashPartitioner;提供numPartitions参数时,其内部的分区函数是HashP ...

  6. centos 6x系统下源码安装mysql操作记录

    在运维工作中经常部署各种运维环境,涉及mysql数据库的安装也是时常需要的.mysql数据库安装可以选择yum在线安装,但是这种安装的mysql一般是系统自带的,版本方面可能跟需求不太匹配.可以通过源 ...

  7. 编译CM13源码添加来去电归属地 SudaMod开源项目,查看commit提交记录

    这个问题纠结了很多时间,感谢苏打先森@Sudamod的开源项目. 大家知道CM13是没有来去点归属地的,就算有那也是google,对于中国人不适用,所以这里把方法贡献出来. 1.与通话有关的app D ...

  8. Java--Spring AOP 源码散点记录(最后整理成一篇博客)

    Spring AOP 源码记录: 1.AOP 入口ProxyFactoryBean.getObject()方法: 2.AOP实现: (1)实现InvocationHandler接口 (2)通过java ...

  9. android录像增加时间记录(源码里修改)

    需要做一个功能,录像和播放时都显示录时的时间,参考文章链接找不到了,不好意思,这里记录一下,防止下次找不到了.另一篇关于源码录像的流程请参考 http://www.verydemo.com/demo_ ...

  10. Centos7源码安装mysql及读写分离,互为主从

       Linux服务器 -源码安装mysql 及读写分离,互为主从   一.环境介绍: Linux版本: CentOS 7 64位 mysq版本: mysql-5.6.26 这是我安装时所使用的版本, ...

随机推荐

  1. Django 连接各数据库配置汇总(sqlite3,MySql,Oracle)

    在django中,默认配置的数据库是 sqlite3 # Database # https://docs.djangoproject.com/en/2.0/ref/settings/#database ...

  2. 金融科技 DevOps 的最佳实践

    随着软件技术的发展,越来越多的企业已经开始意识到 DevOps 文化的重要价值.DevOps 能够消除改变公司业务开展方式,并以更快的速度实现交付,同时创建迭代反馈循环以实现持续改进.而对于金融科技( ...

  3. win7安装Anaconda+TensorFlow(cpu版)+配置PyCharm

    本着不折腾不舒服斯基,好久没安装软件玩了.今天趁天气不错,安装下TensorFlow(cpu版)(因为没钱上GPU),首先在网上搜了下教程,原文出处: https://blog.csdn.net/u0 ...

  4. Request.Form&Request.QueryString实现伪ajax的效果

    1.问题描述 最近一直在搞公司老系统的需求开发,前端是asp,后端的vb.碰到了一个需求,是做一个"日志查询"功能,查询条件为:时间&操作人. 原本我的设计思路是异步查询, ...

  5. angular + ng-zorro 表格后台分页及排序功能实现,angular + ng-zorro 表格排序不起作用解决办法

    angular + ng-zorro 表格排序不起作用是因为数据是从后端获取的,也是后端分页,所以要自己写排序啦~~~~ 举例:HTML <nz-table #basicTable nzBord ...

  6. 自定义alert弹框,去掉IP以及端口号提示

    最新版例子~~  如果同时多个弹框,只显示第一个 <!DOCTYPE html> <html lang="en"> <head> <met ...

  7. Keepalived高可用集群部署

    KeepAlived 目录 KeepAlived KeepAlived安装 KeepAlived部署 准备工作 主备模式 节点配置 验证 正常状态 故障 故障恢复 1+N(一主多备)模式 节点配置 验 ...

  8. 浅谈JS词法环境

    JavaScript 词法环境 本文主要讲解JS词法环境,我们将看到什么是词法环境,词法范围如何工作,函数内部的名称如何解析,内部属性,弄清楚词法环境利于我们理解闭包.让我们开始吧... 什么是词法环 ...

  9. myatbis的一个好的封装

    package com.pj.project4sp; import org.springframework.beans.factory.annotation.Autowired; import org ...

  10. wsl 网络探究

    省流:wsl2能否固定ip地址? - 豆腐干的回答 - 知乎 https://www.zhihu.com/question/387747506/answer/2764445888 割--------- ...