Module axi_sim_mem
Infinite (Simulation-Only) Memory with AXI Slave Port
The memory array is named mem
, and it is not initialized or reset. This makes it possible to
load the memory of this module in simulation with an external $readmem*
command, e.g.,
axi_sim_mem #( ... ) i_sim_mem ( ... );
initial begin
$readmemh("file_with_memory_addrs_and_data.mem", i_sim_mem.mem);
$readmemh("file_with_memory_addrs_and_read_errors.mem", i_sim_mem.rerr);
$readmemh("file_with_memory_addrs_and_write_errors.mem", i_sim_mem.werr);
end
mem
is addressed (or indexed) byte-wise with AddrWidth
-wide addresses.
This module does not support atomic operations (ATOPs).
Parameters
AddrWidth: int unsigned
AXI Address Width
DataWidth: int unsigned
AXI Data Width
IdWidth: int unsigned
AXI ID Width
UserWidth: int unsigned
AXI User Width.
NumPorts: int unsigned
Number of request ports
axi_req_t: type
AXI4 request struct definition
axi_rsp_t: type
AXI4 response struct definition
WarnUninitialized: bit
Warn on accesses to uninitialized bytes
UninitializedData:
Default value for uninitialized memory (undefined, zeros, ones, random)
ClearErrOnAccess: bit
Clear error on access
ApplDelay: time
Application delay (measured after rising clock edge)
AcqDelay: time
Acquisition delay (measured after rising clock edge)
StrbWidth: int unsigned
Ports
clk_i: input logic
Rising-edge clock
rst_ni: input logic
Active-low reset
axi_req_i: input axi_req_t [NumPorts-1:0]
AXI4 request struct
axi_rsp_o: output axi_rsp_t [NumPorts-1:0]
AXI4 response struct
mon_w_valid_o: output logic [NumPorts-1:0]
Memory monitor write valid. All mon_w_*
outputs are only valid if this signal is high.
A write to the memory is visible on the mon_w_*
outputs in the clock cycle after it has
happened.
mon_w_addr_o: output logic [NumPorts-1:0][AddrWidth-1:0]
Memory monitor write address
mon_w_data_o: output logic [NumPorts-1:0][DataWidth-1:0]
Memory monitor write data
mon_w_id_o: output logic [NumPorts-1:0][IdWidth-1:0]
Memory monitor write ID
mon_w_user_o: output logic [NumPorts-1:0][UserWidth-1:0]
Memory monitor write user
mon_w_beat_count_o: output axi_pkg::len_t [NumPorts-1:0]
Memory monitor write beat count
mon_w_last_o: output logic [NumPorts-1:0]
Memory monitor write last
mon_r_valid_o: output logic [NumPorts-1:0]
Memory monitor read valid. All mon_r_*
outputs are only valid if this signal is high.
A read from the memory is visible on the mon_w_*
outputs in the clock cycle after it has
happened.
mon_r_addr_o: output logic [NumPorts-1:0][AddrWidth-1:0]
Memory monitor read address
mon_r_data_o: output logic [NumPorts-1:0][DataWidth-1:0]
Memory monitor read data
mon_r_id_o: output logic [NumPorts-1:0][IdWidth-1:0]
Memory monitor read ID
mon_r_user_o: output logic [NumPorts-1:0][UserWidth-1:0]
Memory monitor read user
mon_r_beat_count_o: output axi_pkg::len_t [NumPorts-1:0]
Memory monitor read beat count
mon_r_last_o: output logic [NumPorts-1:0]
Memory monitor read last
Types
addr_t | |
data_t | |
id_t | |
strb_t | |
user_t | |
aw_t | |
w_t | |
b_t | |
ar_t | |
r_t | |
monitor_t |