blob: bb261d4011e45644477816c3df52c47f135af3dd [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 uart_item extends uvm_sequence_item;
// start and stop bits
rand bit start_bit = 1'b0;
rand bit stop_bit = 1'b1;
// byte of data sent or received
rand bit [7:0] data;
// calculated parity of data sent or received
rand bit parity;
// allow driver to override sending parity
rand bit ovrd_en_parity = 1'b0;
// dont override start_bit unless testing an error scenario
constraint start_bit_c {
start_bit == 1'b0;
}
// dont override stop_bit unless testing an error scenario
constraint stop_bit_c {
stop_bit == 1'b1;
}
// dont override parity setting unless testing an error scenario
constraint ovrd_en_parity_c {
ovrd_en_parity == 1'b0;
}
`uvm_object_utils_begin(uart_item)
`uvm_field_int(start_bit, UVM_DEFAULT | UVM_NOCOMPARE | UVM_NOPRINT)
`uvm_field_int(data, UVM_DEFAULT)
// parity & stop_bit are checked in monitor
`uvm_field_int(parity, UVM_DEFAULT | UVM_NOCOMPARE)
`uvm_field_int(stop_bit, UVM_DEFAULT | UVM_NOCOMPARE | UVM_NOPRINT)
`uvm_field_int(ovrd_en_parity, UVM_DEFAULT | UVM_NOCOMPARE | UVM_NOPRINT)
`uvm_object_utils_end
`uvm_object_new
endclass