| // Copyright lowRISC contributors. |
| // Licensed under the Apache License, Version 2.0, see LICENSE for details. |
| // SPDX-License-Identifier: Apache-2.0 |
| |
| class i2c_item extends uvm_sequence_item; |
| |
| // random variables |
| //rand i2c_bit_type_t bit_type = 1'b0; |
| rand bit sda_bit = 1'b1; |
| rand bit scl_bit = 1'b1; |
| |
| rand bit stop_detected = 1'b0; |
| rand bit start_detected = 1'b0; |
| |
| // dont override start_bit unless testing an error scenario |
| constraint sda_bit_c { |
| sda_bit == 1'b1; |
| } |
| |
| // dont override stop_bit unless testing an error scenario |
| constraint scl_bit_c { |
| sda_bit == 1'b1; |
| } |
| |
| `uvm_object_utils_begin(i2c_item) |
| `uvm_field_int(sda_bit, UVM_DEFAULT | UVM_NOCOMPARE | UVM_NOPRINT) |
| `uvm_field_int(scl_bit, UVM_DEFAULT) |
| `uvm_object_utils_end |
| |
| `uvm_object_new |
| |
| endclass : i2c_item |