blob: 8762bb08f489fdb05597dd8cc3e17c852f3566bf [file] [log] [blame]
// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
package i2c_agent_pkg;
// dep packages
import uvm_pkg::*;
import dv_utils_pkg::*;
import dv_lib_pkg::*;
// macro includes
`include "uvm_macros.svh"
`include "dv_macros.svh"
// local macros
parameter uint addr_width = 8; // [7:1]: device address, [0]: R/W bit
parameter uint data_width = 8;
typedef enum logic [3:0] {
BusFree,
HostSendStart, HostSendRestart, HostSendStop, HostSendAck, HostSendNoAck,
HostSendAddr, HostSendRWBit, HostReceiveData, HostWriteData,
TargetSendAck
} bus_status_e;
// forward declare classes to allow typedefs below
typedef class i2c_item;
typedef class i2c_agent_cfg;
// package sources
`include "i2c_item.sv"
`include "i2c_agent_cfg.sv"
`include "i2c_agent_cov.sv"
`include "i2c_monitor.sv"
`include "i2c_driver.sv"
`include "i2c_device_driver.sv"
`include "i2c_sequencer.sv"
`include "i2c_agent.sv"
`include "i2c_seq_list.sv"
endpackage: i2c_agent_pkg