基本功能:测试平台向AXI Lite从机写入写起始地址,读起始地址以及开始信号,AXI Full主机检测到开始信号之后,根据配置的起始地址进行测试,AXI Full主机根据配置的读起始地址,从测试平台突发读取32个数据,然后将它们加1,再按照配置的写起始地址,将其突发写入测试平台。 具体的代码如下: AXI Lite从机代码
`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 [31:0] rd_base_addr,
output logic [31:0] wr_base_addr,
output logic [31:0] done_signal,
output logic [31:0] start_signal,
output logic busy //主机往从机写数据时,busy为高,直至数据被写入寄存器
);
parameter N=4; //四个寄存器
logic [31:0] DataReg [0:N-1]; //DataReg 0存放start信号,1存放done信号,2存放写起始地址,3存放读起始地址
logic [31:0]rd_addr;
logic [31:0]wr_addr;
logic [31:0]rd_data;
logic [31:0]wr_data;
logic [1:0] wr_reg_sel;
logic [1:0] rd_reg_sel;
logic wr_en;
assign wr_reg_sel=wr_addr[3:2];
assign rd_reg_sel=rd_addr[3:2];
assign rd_base_addr=DataReg[3];
assign wr_base_addr=DataReg[2];
assign start_signal=DataReg[0];
assign done_signal=DataReg[1];
//初始化寄存器
initial
begin
for(int i=0;i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【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脚手架写一个简单的页面?