AXI学习笔记(二)观察AXI 自己写AXI FULL(M端)

AXI学习笔记(二)观察AXI 自己写AXI FULL(M端)

学习原视频:b站奇哥,这里记录要一下学习过程,原视频非常细致,系统

https://www.bilibili.com/video/BV1tv4y1y7VX/?spm_id_from=333.788&vd_source=e35fc70f68490e4d1819679daf66d69b

1.步骤
写:
写首地址
突发传输数据
控制last数据
响应信号 (读没有响应信号)

2.复制赛灵思接口、传入参数
其中:掩码wstrb 一位控制一个字节的屏蔽
3.计算某个数的位宽函数
在这里插入图片描述

4.写wire reg 和assign
output A信号一般有 一个reg a变量来控制,然后有组合逻辑 assign A =a; 
 如果A是常量,那么久不必定义reg a ,直接赋值就好
请添加图片描述

5.以高位(加入基址)来区分向哪个设备写入

在这里插入图片描述
6. //xilinx FPGA 支持高电平同步复位 w_sys_rst=1 复位
//但是AXI 是 低电平复位 M_AXI_ARESETN=0 复位,
//所以要加一个非门
在这里插入图片描述
7. 写时序逻辑模板,一个模板对应一个寄存器的变化

note: 一个通道的第二/三个条件基本固定: 某个 valid和ready同时拉高
最后一个else :如果输出一拍信号就行 , 则: else XXX<= 'd0;
如果是持续输出,直到某个信号变化才拉低,那么: else:  XXX<= XXX;

在这里插入图片描述

c1:r_m_axi_awvaild r_m_axi_awaddr
c2: r_m_axi_wdata r_m_axi_wlast r_m_axi_wvalid
note:M_AXI_WVALID 和M_AXI_AWVALID不要搞混
note: w_last 计数的时候可以 新建一个reg变量
在这里插入图片描述
在这里插入图片描述
w_last 计数的时候,else那里:
else: r_burst_cnt<=r_burst_cnt;
//这种带累加的也是保持不变,因为M_AXI_AWVALID && M_AXI_AWREADY就拉高一下,他们低了cnt还得继续计数
在这里插入图片描述

//
c3://暂不校验
c4 //同c2
c5 //同c3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值