blob: 046738615352e03aa26797c7d46c8bda75b2376e [file] [log] [blame]
// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
class spi_item extends uvm_sequence_item;
rand spi_trans_type_e item_type;
// byte of data sent or received
rand bit [7:0] data[$];
rand uint dummy_clk_cnt;
rand uint dummy_sck_length_ns;
// constrain size of data sent / received to be at most 64kB
constraint data_size_c {
data.size() inside {[1:65536]};
}
constraint dummy_clk_cnt_c {
dummy_clk_cnt inside {[1:1000]};
}
constraint dummy_sck_length_c {
dummy_sck_length_ns inside {[1:1000]};
}
`uvm_object_utils_begin(spi_item)
`uvm_field_enum(spi_trans_type_e, item_type, UVM_DEFAULT)
`uvm_field_queue_int(data, UVM_DEFAULT)
`uvm_field_int(dummy_clk_cnt, UVM_DEFAULT)
`uvm_field_int(dummy_sck_length_ns, UVM_DEFAULT)
`uvm_object_utils_end
`uvm_object_new
endclass