blob: 0ed6e2ba2aadc9f8f39d78022bf8a9f76a8ea6c9 [file] [log] [blame]
// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
// This sequence will read the raw input pins values.
class sysrst_ctrl_pin_access_vseq extends sysrst_ctrl_base_vseq;
`uvm_object_utils(sysrst_ctrl_pin_access_vseq)
`uvm_object_new
uvm_reg_data_t rdata;
task body();
bit rdata_pwrb_in, rdata_key0_in, rdata_key1_in, rdata_key2_in,
rdata_ec_rst_l_in, rdata_flash_wp_l_in, rdata_ac_present, rdata_lid_open;
`uvm_info(`gfn, "Starting the body from pin_access_vseq", UVM_LOW)
repeat ($urandom_range(1,50)) begin
// Randomize the input pins
cfg.vif.randomize_input();
// Read the raw input pin values
cfg.clk_aon_rst_vif.wait_clks(1);
csr_rd(ral.pin_in_value, rdata);
rdata_pwrb_in = get_field_val(ral.pin_in_value.pwrb_in, rdata);
rdata_key0_in = get_field_val(ral.pin_in_value.key0_in, rdata);
rdata_key1_in = get_field_val(ral.pin_in_value.key1_in, rdata);
rdata_key2_in = get_field_val(ral.pin_in_value.key2_in, rdata);
rdata_ec_rst_l_in = get_field_val(ral.pin_in_value.ec_rst_l, rdata);
rdata_flash_wp_l_in = get_field_val(ral.pin_in_value.flash_wp_l, rdata);
rdata_ac_present = get_field_val(ral.pin_in_value.ac_present, rdata);
rdata_lid_open = get_field_val(ral.pin_in_value.lid_open, rdata);
`DV_CHECK_EQ(cfg.vif.pwrb_in, rdata_pwrb_in)
`DV_CHECK_EQ(cfg.vif.key0_in, rdata_key0_in)
`DV_CHECK_EQ(cfg.vif.key1_in, rdata_key1_in)
`DV_CHECK_EQ(cfg.vif.key2_in, rdata_key2_in)
`DV_CHECK_EQ(cfg.vif.ec_rst_l_in, rdata_ec_rst_l_in)
`DV_CHECK_EQ(cfg.vif.flash_wp_l_in, rdata_flash_wp_l_in)
`DV_CHECK_EQ(cfg.vif.ac_present, rdata_ac_present)
`DV_CHECK_EQ(cfg.vif.lid_open, rdata_lid_open)
end
endtask : body
endclass : sysrst_ctrl_pin_access_vseq