axiTest/Axi4LiteDriver.sv

41 lines
1.5 KiB
Systemverilog
Raw Normal View History

2022-09-15 17:26:54 +00:00
// Driver module for use with AXI4-Lite bus, with exported DPI-C functions
// SPDX-FileCopyrightText: © 2022 Aadi Desai <21363892+supleed2@users.noreply.github.com>
// SPDX-License-Identifier: Apache-2.0
`default_nettype none
module Axi4LiteDriver
#(parameter int AWIDTH = 12 // Default: 4KB, [1:0] ignored = word aligned accesses
, parameter int DWIDTH = 32 // AXI4-Lite Data bus is 32/64 bit only
, parameter int SWIDTH = DWIDTH / 8 // Strobe width = data width / 8
)(input var logic i_aClk
, input var logic i_aResetn
// Read Address Channel (Master -> Slave)
, output var logic o_arValid
, input var logic i_arReady
, output var logic [AWIDTH-1:0] o_arAddr
, output var Protection o_arProt
// Read Data Channel (Slave -> Master)
, input var logic i_rValid
, output var logic o_rReady
, input var logic [DWIDTH-1:0] i_rData
, input var Response i_rResp
// Write Address Channel (Master -> Slave)
, output var logic o_awValid
, input var logic i_awReady
, output var logic [AWIDTH-1:0] o_awAddr
, output var Protection o_awProt
// Write Data Channel (Master -> Slave)
, output var logic o_wValid
, input var logic i_wReady
, output var logic [DWIDTH-1:0] o_wData
, output var logic [SWIDTH-1:0] o_wStrb
// Write Response Channel (Slave -> Master)
, input var logic i_bValid
, output var logic o_bReady
, input var Response i_bResp
);
endmodule
`resetall