84 lines
3.0 KiB
Systemverilog
84 lines
3.0 KiB
Systemverilog
|
|
/****************************************************************************
|
||
|
|
+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+ +-+-+-+-+-+-+-+-+
|
||
|
|
|F|u|n|c|t|i|o|n|a|l| |V|e|r|i|f|i|c|a|t|i|o|n| |o|f| |H|a|r|d|w|a|r|e|
|
||
|
|
+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+ +-+-+-+-+-+-+-+-+
|
||
|
|
|
||
|
|
FILE apb_pkg.sv
|
||
|
|
|
||
|
|
DESCRIPTION package containing all parameters and includes
|
||
|
|
|
||
|
|
****************************************************************************/
|
||
|
|
|
||
|
|
`ifndef APB_PKG_SV
|
||
|
|
`define APB_PKG_SV
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Package: apb_pkg
|
||
|
|
*/
|
||
|
|
package apb_pkg;
|
||
|
|
|
||
|
|
parameter ADDR_WIDTH = 32; // up to 32 bits
|
||
|
|
parameter RDATA_WIDTH = 32; // up to 32 bits
|
||
|
|
parameter WDATA_WIDTH = 32; // up to 32 bits
|
||
|
|
parameter SLV_NUM = 15; // up to 15 slaves
|
||
|
|
|
||
|
|
// ==================== OBJECTS ==============================
|
||
|
|
typedef class apb_transaction;
|
||
|
|
typedef class apb_master_config;
|
||
|
|
typedef class apb_slave_config;
|
||
|
|
typedef class apb_config;
|
||
|
|
// ==========================================================
|
||
|
|
|
||
|
|
// ==================== SLAVE ===============================
|
||
|
|
typedef class apb_slave_driver;
|
||
|
|
typedef class apb_slave_sequencer;
|
||
|
|
typedef class apb_slave_monitor;
|
||
|
|
typedef class apb_slave_agent;
|
||
|
|
// ==========================================================
|
||
|
|
|
||
|
|
// ==================== MASTER ==============================
|
||
|
|
typedef class apb_master_driver;
|
||
|
|
typedef class apb_master_sequencer;
|
||
|
|
typedef class apb_master_monitor;
|
||
|
|
typedef class apb_master_agent;
|
||
|
|
// ==========================================================
|
||
|
|
|
||
|
|
// ==================== TOP ==================================
|
||
|
|
typedef class apb_env;
|
||
|
|
// ==========================================================
|
||
|
|
|
||
|
|
import uvm_pkg::*;
|
||
|
|
`include "uvm_macros.svh"
|
||
|
|
|
||
|
|
`include "apb_types.sv"
|
||
|
|
`include "apb_config.sv"
|
||
|
|
|
||
|
|
// ==================== MASTER ==============================
|
||
|
|
`include "master/sequences/apb_master_seq_lib.sv"
|
||
|
|
`include "master/apb_master_config.sv"
|
||
|
|
`include "master/apb_master_driver.sv"
|
||
|
|
`include "master/apb_master_monitor.sv"
|
||
|
|
`include "master/apb_master_sequencer.sv"
|
||
|
|
`include "master/apb_master_agent.sv"
|
||
|
|
// ==========================================================
|
||
|
|
|
||
|
|
// ==================== SLAVE ===============================
|
||
|
|
`include "slave/sequences/apb_slave_seq_lib.sv"
|
||
|
|
`include "slave/apb_slave_config.sv"
|
||
|
|
`include "slave/apb_slave_driver.sv"
|
||
|
|
`include "slave/apb_slave_monitor.sv"
|
||
|
|
`include "slave/apb_slave_sequencer.sv"
|
||
|
|
`include "slave/apb_slave_agent.sv"
|
||
|
|
// ==========================================================
|
||
|
|
|
||
|
|
// ==================== TOP =================================
|
||
|
|
`include "apb_env.sv"
|
||
|
|
`include "apb_transaction.sv"
|
||
|
|
// ==========================================================
|
||
|
|
|
||
|
|
endpackage : apb_pkg
|
||
|
|
|
||
|
|
`include "apb_if.sv"
|
||
|
|
|
||
|
|
`endif
|