模块介绍
前面介绍Rx AXI Master,本模块Ram将Rx接受数据进行暂存,并之后将数据传输到Tx模块中。
本Ram模块封装成AXI Slave形式,对应地,Rx Master控制写transactions将数据传输到Ram。该Rx Master与Ram Slave之间的transactions是实现写功能,并没有读操作。
同样的,之后将Ram数据读出来传输到Tx中,Tx Master控制读transactions将数据传输到Tx。该Tx Master与Ram Slave之间的transactions是实现读功能,并没有写操作。之后介绍Tx Master。
但这里Ram Slave实现Rx Master写与Tx Master读。
代码实现
`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 2019/06/18 17:32:30
// Design Name:
// Module Name: S_AXI_Ram
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//
module S_AXI_Ram #
(
// Width of S_AXI data bus
parameter integer C_S_AXI_DATA_WIDTH = 8,
// Width of S_AXI address bus
parameter integer C_S_AXI_ADDR_WIDTH = 8
)
(
input wire S_AXI_ACLK,
input wire S_AXI_ARESETN,
output wire TXN_DONE,
// AXI write address channel
input wire [C_S_AXI_ADDR_WIDTH-1 : 0] S_AXI_AWADDR,
input wire S_AXI_AWVALID,
output wire S_AXI_AWREADY,
// AXI write data channel
input wire [C_S_AXI_DATA_WIDTH-1 : 0] S_AXI_WDATA,
input wire S_AXI_WVALID,
output wire S_AXI_WREADY,
//AXI write response channel
output wire [1 : 0] S_AXI_BRESP,
output wire S_AXI_BVALID,
input wire S_AXI_BREADY,
// AXI read address channel
input wire [C_S_AXI_ADDR_WIDTH-1 : 0] S_AXI_ARADDR,
input wire S_AXI_ARVALID,
output wire S_AXI_ARREADY,
// AXI Read data channel
output wire [C_S_AXI_DATA_WIDTH-1 : 0]