Vhdl axi4 slave bfm test program, Process. refer to the, Vhdl axi4 slave bfm test – Altera Mentor Verification IP Altera Edition AMBA AXI3/4TM User Manual

Page 768: Program

Advertising
background image

Mentor VIP AE AXI3/4 User Guide, V10.2b

748

VHDL AXI3 and AXI4 Test Programs
VHDL AXI4 Slave BFM Test Program

September 2013

VHDL AXI4 Slave BFM Test Program

The following code example contains a simple AXI4 slave test program that shows the slave
BFM API being used to communicate with a master and create stimulus. This test program is
discussed further in the

VHDL Tutorials

chapter.

--
*************************************************************************
****
--
-- Copyright 2007-2011 Mentor Graphics Corporation
-- All Rights Reserved.
--
-- THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION WHICH IS
THE PROPERTY OF
-- MENTOR GRAPHICS CORPORATION OR ITS LICENSORS AND IS SUBJECT TO LICENSE
TERMS.
--
--
*************************************************************************
****
--
-- This is a simple example of an AXI Slave to demonstrate the
mgc_axi4_slave BFM usage.
--
-- This is a fairly generic slave which handles almost all write and read
transaction
-- scenarios from master. It handles write data with address as well as
data after address
-- both. It handles outstanding read and write transactions.
--
-- This slave code is divided in two parts, one which user might need to
edit to change slave
-- mode (Transaction/burst or Phase level) and memory handling.
-- Out of the code which is grouped as user do not need to edit, could be
edited for achieving
-- required phase valid/ready delays.
--
library ieee ;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;

library work;
use work.all;
use work.mgc_axi4_bfm_pkg.all;
use std.textio.all;
use ieee.std_logic_textio.all;

entity slave_test_program is
generic (AXI4_ADDRESS_WIDTH : integer := 32;
AXI4_RDATA_WIDTH : integer := 32;
AXI4_WDATA_WIDTH : integer := 32;
AXI4_ID_WIDTH : integer := 4;
AXI4_USER_WIDTH : integer := 4;
AXI4_REGION_MAP_SIZE : integer := 16;
index : integer range 0 to 511 :=0

Advertising