Entity: AxiMemTester
- File: AxiMemTester.vhd
Diagram
Description
Company : SLAC National Accelerator Laboratory
Description: General Purpose AXI4 memory tester
This file is part of 'SLAC Firmware Standard Library'. It is subject to the license terms in the LICENSE.txt file found in the top-level directory of this distribution and at: https://confluence.slac.stanford.edu/display/ppareg/LICENSE.html. No part of 'SLAC Firmware Standard Library', including this file, may be copied, modified, propagated, or distributed except according to
the terms contained in the LICENSE.txt file.
Generics
| Generic name | Type | Value | Description |
|---|---|---|---|
| TPD_G | time | 1 ns | |
| START_ADDR_G | slv | X"00000000" | |
| STOP_ADDR_G | slv | X"FFFFFFFF" | |
| BURST_LEN_G | positive range 1 to 4096 | 4096 | |
| AXI_CONFIG_G | AxiConfigType |
Ports
| Port name | Direction | Type | Description |
|---|---|---|---|
| axilClk | in | sl | AXI-Lite Interface |
| axilRst | in | sl | |
| axilReadMaster | in | AxiLiteReadMasterType | |
| axilReadSlave | out | AxiLiteReadSlaveType | |
| axilWriteMaster | in | AxiLiteWriteMasterType | |
| axilWriteSlave | out | AxiLiteWriteSlaveType | |
| memReady | out | sl | |
| memError | out | sl | |
| axiClk | in | sl | AXI4 Memory Interface |
| axiRst | in | sl | |
| start | in | sl | |
| axiWriteMaster | out | AxiWriteMasterType | |
| axiWriteSlave | in | AxiWriteSlaveType | |
| axiReadMaster | out | AxiReadMasterType | |
| axiReadSlave | in | AxiReadSlaveType |
Signals
| Name | Type | Description |
|---|---|---|
| r | RegType | |
| rin | RegType | |
| startSync | sl | |
| busy | sl | |
| done | sl | |
| error | sl | |
| wTimer | slv(31 downto 0) | |
| rTimer | slv(31 downto 0) | |
| wErrResp | sl | |
| rErrResp | sl | |
| rErrData | sl | |
| rDataIn | slv(DATA_SYNC_BITS_C-1 downto 0) | |
| rPatternIn | slv(DATA_SYNC_BITS_C-1 downto 0) | |
| rDataOut | slv(1023 downto 0) | |
| rPatternOut | slv(1023 downto 0) | |
| rLite | RegLiteType | |
| rinLite | RegLiteType |
Constants
| Name | Type | Value | Description |
|---|---|---|---|
| START_C | slv(AXI_CONFIG_G.ADDR_WIDTH_C-1 downto 0) | START_ADDR_G(AXI_CONFIG_G.ADDR_WIDTH_C-1 downto 0) | |
| START_ADDR_C | slv(AXI_CONFIG_G.ADDR_WIDTH_C-1 downto 0) | START_C(AXI_CONFIG_G.ADDR_WIDTH_C-1 downto 12) & x"000" | |
| STOP_C | slv(AXI_CONFIG_G.ADDR_WIDTH_C-1 downto 0) | STOP_ADDR_G(AXI_CONFIG_G.ADDR_WIDTH_C-1 downto 0) | |
| STOP_ADDR_C | slv(AXI_CONFIG_G.ADDR_WIDTH_C-1 downto 0) | STOP_C(AXI_CONFIG_G.ADDR_WIDTH_C-1 downto 12) & x"000" | |
| DATA_BITS_C | natural | 8*AXI_CONFIG_G.DATA_BYTES_C | |
| AXI_LEN_C | slv(7 downto 0) | getAxiLen(AXI_CONFIG_G, BURST_LEN_G) |
|
| PRBS_TAPS_C | NaturalArray | (0 => (DATA_BITS_C-1), 1 => (DATA_BITS_C/2), 2 => (DATA_BITS_C/4)) |
|
| DATA_SYNC_BITS_C | natural | ite(DATA_BITS_C<1024, DATA_BITS_C, 1024) |
|
| PRBS_SEED_C | slv(DATA_BITS_C-1 downto 0) | GenSeed | |
| REG_INIT_C | RegType | ( busy => '0', done => '0', error => '0', wErrResp => '0', rErrResp => '0', rErrData => '0', wTimerEn => '0', rTimerEn => '0', wTimer => (others => '0'), rTimer => (others => '0'), len => AXI_LEN_C, address => (others => '0'), randomData => PRBS_SEED_C, rData => (others => '0'), rPattern => (others => '0'), state => IDLE_S, axiWriteMaster => AXI_WRITE_MASTER_INIT_C, axiReadMaster => AXI_READ_MASTER_INIT_C) |
|
| REG_LITE_INIT_C | RegLiteType | ( memReady => '0', memError => '0', axilReadSlave => AXI_LITE_READ_SLAVE_INIT_C, axilWriteSlave => AXI_LITE_WRITE_SLAVE_INIT_C) |
Types
| Name | Type | Description |
|---|---|---|
| StateType | ( IDLE_S, WRITE_ADDR_S, WRITE_DATA_S, WRITE_RESP_S, READ_ADDR_S, READ_DATA_S, DONE_S, ERROR_S) |
|
| RegType | ||
| RegLiteType |
Functions
- GenSeed () return slv
Processes
- comb: ( axiReadSlave, axiRst, axiWriteSlave, r, start )
- seq: ( axiClk )
- combLite: ( axilReadMaster, axilRst, axilWriteMaster, done, error, busy, startSync,
rLite, rTimer, wTimer, wErrResp, rErrResp, rErrData, rDataOut, rPatternOut )
- seqLite: ( axilClk )
Instantiations
- U_SyncBits: surf.SynchronizerVector
- U_wTimer: surf.SynchronizerFifo
- U_rTimer: surf.SynchronizerFifo
- U_rData: surf.SynchronizerVector
- U_rPattern: surf.SynchronizerVector