AXI4-lite总线协议总共包括21条信号线。每个通道都有其自己的双向握手机制信号线xxVALID和xxREADY,关于双向握手机制,可以参见上一篇博客AXI FULL协议学习与仿真。下面是信号线的详细描述。
全局信号ACLK:全局时钟信号,在上升沿时对信号采样。所有的输入信号都通过上升沿采集,所有的输出信号都在上升沿时变化。 ARESETn:全局复位信号,低电平有效。在复位期间,所有的xxVALID信号必须复位为低电平。其他的信号可以是任意值。
写地址通道信号 主机(master)控制的信号AWVALID AWADDR 地址信号线,传输地址信息。 AWPROT 访问权限信号线,xilinx建议赋值为3’b000.xilinx IP 一般忽略此信号。
从机(slave)控制的信号AWREADY
写数据通道信号 主机(master)控制的信号WVALID WDATA 数据信号线,传输数据信息。 WSTRB 数据总线有效字节控制。比如32位的总线,WSTRB等于4’b0010,那么代表WDATA[15:8]中的数据有效。其他无效。如果要求WDATA[31:0]32位全有效,那么WSTRB就应该等于4’b1111.
从机(slave)控制的信号WREADY
写应答通道信号 主机(master)控制的信号BREADY
从机(slave)控制的信号BVALID BRESP 应答类型。AXI4-lite不支持EXOKAY类型的响应。 OKEY 0 正常访问成功 SLVERR 2 从机错误 DECERR 3 解码错误,比如没有从机的地址。
读地址通道信号 主机(master)控制的信号ARVALID ARADDR 地址信号线,传输地址信息。 ARPROT 访问权限信号线,xilinx建议赋值为3’b000.xilinx IP 一般忽略此信号。
从机(slave)控制的信号ARREADY
读数据通道信号 主机(master)控制的信号RREADY
从机(slave)控制的信号RVALID RDATA 数据信号线,传输数据信息。 RRESP 同写应答信号BRESP。
代码实现从机:
`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 2021/03/08 22:32:21
// Design Name:
// Module Name: axi_lite_slave
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//
module axi_lite_slave( //AXI Lite从机
//全局信号
input logic ACLK,
input logic ARESETn,
//写地址通道
input logic AWVALID,
input logic [31:0]AWADDR,
input logic [2:0]AWPROT,
output logic AWREADY,
//写数据通道
input logic WVALID,
input logic [31:0] WDATA,
input logic [3:0] WSTRB,
output logic WREADY,
//写响应通道
input logic BREADY,
output logic BVALID,
output logic [1:0] BRESP,
//读地址通道
input logic ARVALID,
input logic [31:0] ARADDR,
input logic [2:0] ARPROT,
output logic ARREADY,
//读数据通道
input logic RREADY,
output logic RVALID,
output logic [31:0] RDATA,
output logic [1:0] RRESP,
//其他
output logic busy //主机往从机写数据时,busy为高,知道数据被写入寄存器
);
parameter N=4; //四个寄存器
logic [31:0] DataReg [0:N-1];
logic [31:0]rd_addr;
logic [31:0]wr_addr;
logic [31:0]rd_data;
logic [31:0]wr_data;
logic wr_en;
//wr_en
always_ff@(posedge ACLK,negedge ARESETn)
if(!ARESETn)
wr_en
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?