blob: 1b5d72ebdd727cbf6d4e88e6749be57a7965a9c6 [file] [log] [blame]
// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
//
// UVM Registers auto-generated by `reggen` containing data structure
// Do Not Edit directly
// Block: uart
`ifndef UART_REG_BLOCK__SV
`define UART_REG_BLOCK__SV
// Forward declare all register/memory/block classes
typedef class uart_reg_intr_state;
typedef class uart_reg_intr_enable;
typedef class uart_reg_intr_test;
typedef class uart_reg_ctrl;
typedef class uart_reg_status;
typedef class uart_reg_rdata;
typedef class uart_reg_wdata;
typedef class uart_reg_fifo_ctrl;
typedef class uart_reg_fifo_status;
typedef class uart_reg_ovrd;
typedef class uart_reg_val;
typedef class uart_reg_timeout_ctrl;
typedef class uart_reg_block;
// Class: uart_reg_intr_state
class uart_reg_intr_state extends dv_base_reg;
// fields
rand dv_base_reg_field tx_watermark;
rand dv_base_reg_field rx_watermark;
rand dv_base_reg_field tx_overflow;
rand dv_base_reg_field rx_overflow;
rand dv_base_reg_field rx_frame_err;
rand dv_base_reg_field rx_break_err;
rand dv_base_reg_field rx_timeout;
rand dv_base_reg_field rx_parity_err;
`uvm_object_utils(uart_reg_intr_state)
function new(string name = "uart_reg_intr_state",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
tx_watermark = dv_base_reg_field::type_id::create("tx_watermark");
tx_watermark.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("W1C"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rx_watermark = dv_base_reg_field::type_id::create("rx_watermark");
rx_watermark.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("W1C"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
tx_overflow = dv_base_reg_field::type_id::create("tx_overflow");
tx_overflow.configure(
.parent(this),
.size(1),
.lsb_pos(2),
.access("W1C"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rx_overflow = dv_base_reg_field::type_id::create("rx_overflow");
rx_overflow.configure(
.parent(this),
.size(1),
.lsb_pos(3),
.access("W1C"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rx_frame_err = dv_base_reg_field::type_id::create("rx_frame_err");
rx_frame_err.configure(
.parent(this),
.size(1),
.lsb_pos(4),
.access("W1C"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rx_break_err = dv_base_reg_field::type_id::create("rx_break_err");
rx_break_err.configure(
.parent(this),
.size(1),
.lsb_pos(5),
.access("W1C"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rx_timeout = dv_base_reg_field::type_id::create("rx_timeout");
rx_timeout.configure(
.parent(this),
.size(1),
.lsb_pos(6),
.access("W1C"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rx_parity_err = dv_base_reg_field::type_id::create("rx_parity_err");
rx_parity_err.configure(
.parent(this),
.size(1),
.lsb_pos(7),
.access("W1C"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : uart_reg_intr_state
// Class: uart_reg_intr_enable
class uart_reg_intr_enable extends dv_base_reg;
// fields
rand dv_base_reg_field tx_watermark;
rand dv_base_reg_field rx_watermark;
rand dv_base_reg_field tx_overflow;
rand dv_base_reg_field rx_overflow;
rand dv_base_reg_field rx_frame_err;
rand dv_base_reg_field rx_break_err;
rand dv_base_reg_field rx_timeout;
rand dv_base_reg_field rx_parity_err;
`uvm_object_utils(uart_reg_intr_enable)
function new(string name = "uart_reg_intr_enable",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
tx_watermark = dv_base_reg_field::type_id::create("tx_watermark");
tx_watermark.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rx_watermark = dv_base_reg_field::type_id::create("rx_watermark");
rx_watermark.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
tx_overflow = dv_base_reg_field::type_id::create("tx_overflow");
tx_overflow.configure(
.parent(this),
.size(1),
.lsb_pos(2),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rx_overflow = dv_base_reg_field::type_id::create("rx_overflow");
rx_overflow.configure(
.parent(this),
.size(1),
.lsb_pos(3),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rx_frame_err = dv_base_reg_field::type_id::create("rx_frame_err");
rx_frame_err.configure(
.parent(this),
.size(1),
.lsb_pos(4),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rx_break_err = dv_base_reg_field::type_id::create("rx_break_err");
rx_break_err.configure(
.parent(this),
.size(1),
.lsb_pos(5),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rx_timeout = dv_base_reg_field::type_id::create("rx_timeout");
rx_timeout.configure(
.parent(this),
.size(1),
.lsb_pos(6),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rx_parity_err = dv_base_reg_field::type_id::create("rx_parity_err");
rx_parity_err.configure(
.parent(this),
.size(1),
.lsb_pos(7),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : uart_reg_intr_enable
// Class: uart_reg_intr_test
class uart_reg_intr_test extends dv_base_reg;
// fields
rand dv_base_reg_field tx_watermark;
rand dv_base_reg_field rx_watermark;
rand dv_base_reg_field tx_overflow;
rand dv_base_reg_field rx_overflow;
rand dv_base_reg_field rx_frame_err;
rand dv_base_reg_field rx_break_err;
rand dv_base_reg_field rx_timeout;
rand dv_base_reg_field rx_parity_err;
`uvm_object_utils(uart_reg_intr_test)
function new(string name = "uart_reg_intr_test",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
tx_watermark = dv_base_reg_field::type_id::create("tx_watermark");
tx_watermark.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("WO"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rx_watermark = dv_base_reg_field::type_id::create("rx_watermark");
rx_watermark.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("WO"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
tx_overflow = dv_base_reg_field::type_id::create("tx_overflow");
tx_overflow.configure(
.parent(this),
.size(1),
.lsb_pos(2),
.access("WO"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rx_overflow = dv_base_reg_field::type_id::create("rx_overflow");
rx_overflow.configure(
.parent(this),
.size(1),
.lsb_pos(3),
.access("WO"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rx_frame_err = dv_base_reg_field::type_id::create("rx_frame_err");
rx_frame_err.configure(
.parent(this),
.size(1),
.lsb_pos(4),
.access("WO"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rx_break_err = dv_base_reg_field::type_id::create("rx_break_err");
rx_break_err.configure(
.parent(this),
.size(1),
.lsb_pos(5),
.access("WO"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rx_timeout = dv_base_reg_field::type_id::create("rx_timeout");
rx_timeout.configure(
.parent(this),
.size(1),
.lsb_pos(6),
.access("WO"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rx_parity_err = dv_base_reg_field::type_id::create("rx_parity_err");
rx_parity_err.configure(
.parent(this),
.size(1),
.lsb_pos(7),
.access("WO"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : uart_reg_intr_test
// Class: uart_reg_ctrl
class uart_reg_ctrl extends dv_base_reg;
// fields
rand dv_base_reg_field tx;
rand dv_base_reg_field rx;
rand dv_base_reg_field nf;
rand dv_base_reg_field slpbk;
rand dv_base_reg_field llpbk;
rand dv_base_reg_field parity_en;
rand dv_base_reg_field parity_odd;
rand dv_base_reg_field rxblvl;
rand dv_base_reg_field nco;
`uvm_object_utils(uart_reg_ctrl)
function new(string name = "uart_reg_ctrl",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
tx = dv_base_reg_field::type_id::create("tx");
tx.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rx = dv_base_reg_field::type_id::create("rx");
rx.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
nf = dv_base_reg_field::type_id::create("nf");
nf.configure(
.parent(this),
.size(1),
.lsb_pos(2),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
slpbk = dv_base_reg_field::type_id::create("slpbk");
slpbk.configure(
.parent(this),
.size(1),
.lsb_pos(4),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
llpbk = dv_base_reg_field::type_id::create("llpbk");
llpbk.configure(
.parent(this),
.size(1),
.lsb_pos(5),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
parity_en = dv_base_reg_field::type_id::create("parity_en");
parity_en.configure(
.parent(this),
.size(1),
.lsb_pos(6),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
parity_odd = dv_base_reg_field::type_id::create("parity_odd");
parity_odd.configure(
.parent(this),
.size(1),
.lsb_pos(7),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rxblvl = dv_base_reg_field::type_id::create("rxblvl");
rxblvl.configure(
.parent(this),
.size(2),
.lsb_pos(8),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
nco = dv_base_reg_field::type_id::create("nco");
nco.configure(
.parent(this),
.size(16),
.lsb_pos(16),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : uart_reg_ctrl
// Class: uart_reg_status
class uart_reg_status extends dv_base_reg;
// fields
rand dv_base_reg_field txfull;
rand dv_base_reg_field rxfull;
rand dv_base_reg_field txempty;
rand dv_base_reg_field txidle;
rand dv_base_reg_field rxidle;
rand dv_base_reg_field rxempty;
`uvm_object_utils(uart_reg_status)
function new(string name = "uart_reg_status",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
txfull = dv_base_reg_field::type_id::create("txfull");
txfull.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rxfull = dv_base_reg_field::type_id::create("rxfull");
rxfull.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
txempty = dv_base_reg_field::type_id::create("txempty");
txempty.configure(
.parent(this),
.size(1),
.lsb_pos(2),
.access("RO"),
.volatile(1),
.reset(32'h1),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
txidle = dv_base_reg_field::type_id::create("txidle");
txidle.configure(
.parent(this),
.size(1),
.lsb_pos(3),
.access("RO"),
.volatile(1),
.reset(32'h1),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rxidle = dv_base_reg_field::type_id::create("rxidle");
rxidle.configure(
.parent(this),
.size(1),
.lsb_pos(4),
.access("RO"),
.volatile(1),
.reset(32'h1),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rxempty = dv_base_reg_field::type_id::create("rxempty");
rxempty.configure(
.parent(this),
.size(1),
.lsb_pos(5),
.access("RO"),
.volatile(1),
.reset(32'h1),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : uart_reg_status
// Class: uart_reg_rdata
class uart_reg_rdata extends dv_base_reg;
// fields
rand dv_base_reg_field rdata;
`uvm_object_utils(uart_reg_rdata)
function new(string name = "uart_reg_rdata",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
rdata = dv_base_reg_field::type_id::create("rdata");
rdata.configure(
.parent(this),
.size(8),
.lsb_pos(0),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : uart_reg_rdata
// Class: uart_reg_wdata
class uart_reg_wdata extends dv_base_reg;
// fields
rand dv_base_reg_field wdata;
`uvm_object_utils(uart_reg_wdata)
function new(string name = "uart_reg_wdata",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
wdata = dv_base_reg_field::type_id::create("wdata");
wdata.configure(
.parent(this),
.size(8),
.lsb_pos(0),
.access("WO"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : uart_reg_wdata
// Class: uart_reg_fifo_ctrl
class uart_reg_fifo_ctrl extends dv_base_reg;
// fields
rand dv_base_reg_field rxrst;
rand dv_base_reg_field txrst;
rand dv_base_reg_field rxilvl;
rand dv_base_reg_field txilvl;
`uvm_object_utils(uart_reg_fifo_ctrl)
function new(string name = "uart_reg_fifo_ctrl",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
rxrst = dv_base_reg_field::type_id::create("rxrst");
rxrst.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("WO"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
txrst = dv_base_reg_field::type_id::create("txrst");
txrst.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("WO"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rxilvl = dv_base_reg_field::type_id::create("rxilvl");
rxilvl.configure(
.parent(this),
.size(3),
.lsb_pos(2),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
txilvl = dv_base_reg_field::type_id::create("txilvl");
txilvl.configure(
.parent(this),
.size(2),
.lsb_pos(5),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : uart_reg_fifo_ctrl
// Class: uart_reg_fifo_status
class uart_reg_fifo_status extends dv_base_reg;
// fields
rand dv_base_reg_field txlvl;
rand dv_base_reg_field rxlvl;
`uvm_object_utils(uart_reg_fifo_status)
function new(string name = "uart_reg_fifo_status",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
txlvl = dv_base_reg_field::type_id::create("txlvl");
txlvl.configure(
.parent(this),
.size(6),
.lsb_pos(0),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rxlvl = dv_base_reg_field::type_id::create("rxlvl");
rxlvl.configure(
.parent(this),
.size(6),
.lsb_pos(16),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : uart_reg_fifo_status
// Class: uart_reg_ovrd
class uart_reg_ovrd extends dv_base_reg;
// fields
rand dv_base_reg_field txen;
rand dv_base_reg_field txval;
`uvm_object_utils(uart_reg_ovrd)
function new(string name = "uart_reg_ovrd",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
txen = dv_base_reg_field::type_id::create("txen");
txen.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
txval = dv_base_reg_field::type_id::create("txval");
txval.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : uart_reg_ovrd
// Class: uart_reg_val
class uart_reg_val extends dv_base_reg;
// fields
rand dv_base_reg_field rx;
`uvm_object_utils(uart_reg_val)
function new(string name = "uart_reg_val",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
rx = dv_base_reg_field::type_id::create("rx");
rx.configure(
.parent(this),
.size(16),
.lsb_pos(0),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : uart_reg_val
// Class: uart_reg_timeout_ctrl
class uart_reg_timeout_ctrl extends dv_base_reg;
// fields
rand dv_base_reg_field val;
rand dv_base_reg_field en;
`uvm_object_utils(uart_reg_timeout_ctrl)
function new(string name = "uart_reg_timeout_ctrl",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
val = dv_base_reg_field::type_id::create("val");
val.configure(
.parent(this),
.size(24),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
en = dv_base_reg_field::type_id::create("en");
en.configure(
.parent(this),
.size(1),
.lsb_pos(31),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : uart_reg_timeout_ctrl
// Class: uart_reg_block
class uart_reg_block extends dv_base_reg_block;
// registers
rand uart_reg_intr_state intr_state;
rand uart_reg_intr_enable intr_enable;
rand uart_reg_intr_test intr_test;
rand uart_reg_ctrl ctrl;
rand uart_reg_status status;
rand uart_reg_rdata rdata;
rand uart_reg_wdata wdata;
rand uart_reg_fifo_ctrl fifo_ctrl;
rand uart_reg_fifo_status fifo_status;
rand uart_reg_ovrd ovrd;
rand uart_reg_val val;
rand uart_reg_timeout_ctrl timeout_ctrl;
`uvm_object_utils(uart_reg_block)
function new(string name = "uart_reg_block",
int has_coverage = UVM_NO_COVERAGE);
super.new(name, has_coverage);
endfunction : new
virtual function void build(uvm_reg_addr_t base_addr);
// create default map
this.default_map = create_map(.name("default_map"),
.base_addr(base_addr),
.n_bytes(4),
.endian(UVM_LITTLE_ENDIAN));
// create registers
intr_state = uart_reg_intr_state::type_id::create("intr_state");
intr_state.configure(.blk_parent(this));
intr_state.build();
default_map.add_reg(.rg(intr_state),
.offset(32'h0),
.rights("RW"));
intr_enable = uart_reg_intr_enable::type_id::create("intr_enable");
intr_enable.configure(.blk_parent(this));
intr_enable.build();
default_map.add_reg(.rg(intr_enable),
.offset(32'h4),
.rights("RW"));
intr_test = uart_reg_intr_test::type_id::create("intr_test");
intr_test.configure(.blk_parent(this));
intr_test.build();
default_map.add_reg(.rg(intr_test),
.offset(32'h8),
.rights("WO"));
ctrl = uart_reg_ctrl::type_id::create("ctrl");
ctrl.configure(.blk_parent(this));
ctrl.build();
default_map.add_reg(.rg(ctrl),
.offset(32'hc),
.rights("RW"));
status = uart_reg_status::type_id::create("status");
status.configure(.blk_parent(this));
status.build();
default_map.add_reg(.rg(status),
.offset(32'h10),
.rights("RO"));
rdata = uart_reg_rdata::type_id::create("rdata");
rdata.configure(.blk_parent(this));
rdata.build();
default_map.add_reg(.rg(rdata),
.offset(32'h14),
.rights("RO"));
wdata = uart_reg_wdata::type_id::create("wdata");
wdata.configure(.blk_parent(this));
wdata.build();
default_map.add_reg(.rg(wdata),
.offset(32'h18),
.rights("WO"));
fifo_ctrl = uart_reg_fifo_ctrl::type_id::create("fifo_ctrl");
fifo_ctrl.configure(.blk_parent(this));
fifo_ctrl.build();
default_map.add_reg(.rg(fifo_ctrl),
.offset(32'h1c),
.rights("RW"));
fifo_status = uart_reg_fifo_status::type_id::create("fifo_status");
fifo_status.configure(.blk_parent(this));
fifo_status.build();
default_map.add_reg(.rg(fifo_status),
.offset(32'h20),
.rights("RO"));
ovrd = uart_reg_ovrd::type_id::create("ovrd");
ovrd.configure(.blk_parent(this));
ovrd.build();
default_map.add_reg(.rg(ovrd),
.offset(32'h24),
.rights("RW"));
val = uart_reg_val::type_id::create("val");
val.configure(.blk_parent(this));
val.build();
default_map.add_reg(.rg(val),
.offset(32'h28),
.rights("RO"));
timeout_ctrl = uart_reg_timeout_ctrl::type_id::create("timeout_ctrl");
timeout_ctrl.configure(.blk_parent(this));
timeout_ctrl.build();
default_map.add_reg(.rg(timeout_ctrl),
.offset(32'h2c),
.rights("RW"));
endfunction : build
endclass : uart_reg_block
`endif
// Block: gpio
`ifndef GPIO_REG_BLOCK__SV
`define GPIO_REG_BLOCK__SV
// Forward declare all register/memory/block classes
typedef class gpio_reg_intr_state;
typedef class gpio_reg_intr_enable;
typedef class gpio_reg_intr_test;
typedef class gpio_reg_data_in;
typedef class gpio_reg_direct_out;
typedef class gpio_reg_masked_out_lower;
typedef class gpio_reg_masked_out_upper;
typedef class gpio_reg_direct_oe;
typedef class gpio_reg_masked_oe_lower;
typedef class gpio_reg_masked_oe_upper;
typedef class gpio_reg_intr_ctrl_en_rising;
typedef class gpio_reg_intr_ctrl_en_falling;
typedef class gpio_reg_intr_ctrl_en_lvlhigh;
typedef class gpio_reg_intr_ctrl_en_lvllow;
typedef class gpio_reg_ctrl_en_input_filter;
typedef class gpio_reg_block;
// Class: gpio_reg_intr_state
class gpio_reg_intr_state extends dv_base_reg;
// fields
rand dv_base_reg_field gpio;
`uvm_object_utils(gpio_reg_intr_state)
function new(string name = "gpio_reg_intr_state",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
gpio = dv_base_reg_field::type_id::create("gpio");
gpio.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("W1C"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : gpio_reg_intr_state
// Class: gpio_reg_intr_enable
class gpio_reg_intr_enable extends dv_base_reg;
// fields
rand dv_base_reg_field gpio;
`uvm_object_utils(gpio_reg_intr_enable)
function new(string name = "gpio_reg_intr_enable",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
gpio = dv_base_reg_field::type_id::create("gpio");
gpio.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : gpio_reg_intr_enable
// Class: gpio_reg_intr_test
class gpio_reg_intr_test extends dv_base_reg;
// fields
rand dv_base_reg_field gpio;
`uvm_object_utils(gpio_reg_intr_test)
function new(string name = "gpio_reg_intr_test",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
gpio = dv_base_reg_field::type_id::create("gpio");
gpio.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("WO"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : gpio_reg_intr_test
// Class: gpio_reg_data_in
class gpio_reg_data_in extends dv_base_reg;
// fields
rand dv_base_reg_field data_in;
`uvm_object_utils(gpio_reg_data_in)
function new(string name = "gpio_reg_data_in",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
data_in = dv_base_reg_field::type_id::create("data_in");
data_in.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : gpio_reg_data_in
// Class: gpio_reg_direct_out
class gpio_reg_direct_out extends dv_base_reg;
// fields
rand dv_base_reg_field direct_out;
`uvm_object_utils(gpio_reg_direct_out)
function new(string name = "gpio_reg_direct_out",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
direct_out = dv_base_reg_field::type_id::create("direct_out");
direct_out.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : gpio_reg_direct_out
// Class: gpio_reg_masked_out_lower
class gpio_reg_masked_out_lower extends dv_base_reg;
// fields
rand dv_base_reg_field data;
rand dv_base_reg_field mask;
`uvm_object_utils(gpio_reg_masked_out_lower)
function new(string name = "gpio_reg_masked_out_lower",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
data = dv_base_reg_field::type_id::create("data");
data.configure(
.parent(this),
.size(16),
.lsb_pos(0),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
mask = dv_base_reg_field::type_id::create("mask");
mask.configure(
.parent(this),
.size(16),
.lsb_pos(16),
.access("WO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : gpio_reg_masked_out_lower
// Class: gpio_reg_masked_out_upper
class gpio_reg_masked_out_upper extends dv_base_reg;
// fields
rand dv_base_reg_field data;
rand dv_base_reg_field mask;
`uvm_object_utils(gpio_reg_masked_out_upper)
function new(string name = "gpio_reg_masked_out_upper",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
data = dv_base_reg_field::type_id::create("data");
data.configure(
.parent(this),
.size(16),
.lsb_pos(0),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
mask = dv_base_reg_field::type_id::create("mask");
mask.configure(
.parent(this),
.size(16),
.lsb_pos(16),
.access("WO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : gpio_reg_masked_out_upper
// Class: gpio_reg_direct_oe
class gpio_reg_direct_oe extends dv_base_reg;
// fields
rand dv_base_reg_field direct_oe;
`uvm_object_utils(gpio_reg_direct_oe)
function new(string name = "gpio_reg_direct_oe",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
direct_oe = dv_base_reg_field::type_id::create("direct_oe");
direct_oe.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : gpio_reg_direct_oe
// Class: gpio_reg_masked_oe_lower
class gpio_reg_masked_oe_lower extends dv_base_reg;
// fields
rand dv_base_reg_field data;
rand dv_base_reg_field mask;
`uvm_object_utils(gpio_reg_masked_oe_lower)
function new(string name = "gpio_reg_masked_oe_lower",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
data = dv_base_reg_field::type_id::create("data");
data.configure(
.parent(this),
.size(16),
.lsb_pos(0),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
mask = dv_base_reg_field::type_id::create("mask");
mask.configure(
.parent(this),
.size(16),
.lsb_pos(16),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : gpio_reg_masked_oe_lower
// Class: gpio_reg_masked_oe_upper
class gpio_reg_masked_oe_upper extends dv_base_reg;
// fields
rand dv_base_reg_field data;
rand dv_base_reg_field mask;
`uvm_object_utils(gpio_reg_masked_oe_upper)
function new(string name = "gpio_reg_masked_oe_upper",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
data = dv_base_reg_field::type_id::create("data");
data.configure(
.parent(this),
.size(16),
.lsb_pos(0),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
mask = dv_base_reg_field::type_id::create("mask");
mask.configure(
.parent(this),
.size(16),
.lsb_pos(16),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : gpio_reg_masked_oe_upper
// Class: gpio_reg_intr_ctrl_en_rising
class gpio_reg_intr_ctrl_en_rising extends dv_base_reg;
// fields
rand dv_base_reg_field intr_ctrl_en_rising;
`uvm_object_utils(gpio_reg_intr_ctrl_en_rising)
function new(string name = "gpio_reg_intr_ctrl_en_rising",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
intr_ctrl_en_rising = dv_base_reg_field::type_id::create("intr_ctrl_en_rising");
intr_ctrl_en_rising.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : gpio_reg_intr_ctrl_en_rising
// Class: gpio_reg_intr_ctrl_en_falling
class gpio_reg_intr_ctrl_en_falling extends dv_base_reg;
// fields
rand dv_base_reg_field intr_ctrl_en_falling;
`uvm_object_utils(gpio_reg_intr_ctrl_en_falling)
function new(string name = "gpio_reg_intr_ctrl_en_falling",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
intr_ctrl_en_falling = dv_base_reg_field::type_id::create("intr_ctrl_en_falling");
intr_ctrl_en_falling.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : gpio_reg_intr_ctrl_en_falling
// Class: gpio_reg_intr_ctrl_en_lvlhigh
class gpio_reg_intr_ctrl_en_lvlhigh extends dv_base_reg;
// fields
rand dv_base_reg_field intr_ctrl_en_lvlhigh;
`uvm_object_utils(gpio_reg_intr_ctrl_en_lvlhigh)
function new(string name = "gpio_reg_intr_ctrl_en_lvlhigh",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
intr_ctrl_en_lvlhigh = dv_base_reg_field::type_id::create("intr_ctrl_en_lvlhigh");
intr_ctrl_en_lvlhigh.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : gpio_reg_intr_ctrl_en_lvlhigh
// Class: gpio_reg_intr_ctrl_en_lvllow
class gpio_reg_intr_ctrl_en_lvllow extends dv_base_reg;
// fields
rand dv_base_reg_field intr_ctrl_en_lvllow;
`uvm_object_utils(gpio_reg_intr_ctrl_en_lvllow)
function new(string name = "gpio_reg_intr_ctrl_en_lvllow",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
intr_ctrl_en_lvllow = dv_base_reg_field::type_id::create("intr_ctrl_en_lvllow");
intr_ctrl_en_lvllow.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : gpio_reg_intr_ctrl_en_lvllow
// Class: gpio_reg_ctrl_en_input_filter
class gpio_reg_ctrl_en_input_filter extends dv_base_reg;
// fields
rand dv_base_reg_field ctrl_en_input_filter;
`uvm_object_utils(gpio_reg_ctrl_en_input_filter)
function new(string name = "gpio_reg_ctrl_en_input_filter",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
ctrl_en_input_filter = dv_base_reg_field::type_id::create("ctrl_en_input_filter");
ctrl_en_input_filter.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : gpio_reg_ctrl_en_input_filter
// Class: gpio_reg_block
class gpio_reg_block extends dv_base_reg_block;
// registers
rand gpio_reg_intr_state intr_state;
rand gpio_reg_intr_enable intr_enable;
rand gpio_reg_intr_test intr_test;
rand gpio_reg_data_in data_in;
rand gpio_reg_direct_out direct_out;
rand gpio_reg_masked_out_lower masked_out_lower;
rand gpio_reg_masked_out_upper masked_out_upper;
rand gpio_reg_direct_oe direct_oe;
rand gpio_reg_masked_oe_lower masked_oe_lower;
rand gpio_reg_masked_oe_upper masked_oe_upper;
rand gpio_reg_intr_ctrl_en_rising intr_ctrl_en_rising;
rand gpio_reg_intr_ctrl_en_falling intr_ctrl_en_falling;
rand gpio_reg_intr_ctrl_en_lvlhigh intr_ctrl_en_lvlhigh;
rand gpio_reg_intr_ctrl_en_lvllow intr_ctrl_en_lvllow;
rand gpio_reg_ctrl_en_input_filter ctrl_en_input_filter;
`uvm_object_utils(gpio_reg_block)
function new(string name = "gpio_reg_block",
int has_coverage = UVM_NO_COVERAGE);
super.new(name, has_coverage);
endfunction : new
virtual function void build(uvm_reg_addr_t base_addr);
// create default map
this.default_map = create_map(.name("default_map"),
.base_addr(base_addr),
.n_bytes(4),
.endian(UVM_LITTLE_ENDIAN));
// create registers
intr_state = gpio_reg_intr_state::type_id::create("intr_state");
intr_state.configure(.blk_parent(this));
intr_state.build();
default_map.add_reg(.rg(intr_state),
.offset(32'h0),
.rights("RW"));
intr_enable = gpio_reg_intr_enable::type_id::create("intr_enable");
intr_enable.configure(.blk_parent(this));
intr_enable.build();
default_map.add_reg(.rg(intr_enable),
.offset(32'h4),
.rights("RW"));
intr_test = gpio_reg_intr_test::type_id::create("intr_test");
intr_test.configure(.blk_parent(this));
intr_test.build();
default_map.add_reg(.rg(intr_test),
.offset(32'h8),
.rights("WO"));
data_in = gpio_reg_data_in::type_id::create("data_in");
data_in.configure(.blk_parent(this));
data_in.build();
default_map.add_reg(.rg(data_in),
.offset(32'hc),
.rights("RO"));
direct_out = gpio_reg_direct_out::type_id::create("direct_out");
direct_out.configure(.blk_parent(this));
direct_out.build();
default_map.add_reg(.rg(direct_out),
.offset(32'h10),
.rights("RW"));
masked_out_lower = gpio_reg_masked_out_lower::type_id::create("masked_out_lower");
masked_out_lower.configure(.blk_parent(this));
masked_out_lower.build();
default_map.add_reg(.rg(masked_out_lower),
.offset(32'h14),
.rights("RW"));
masked_out_upper = gpio_reg_masked_out_upper::type_id::create("masked_out_upper");
masked_out_upper.configure(.blk_parent(this));
masked_out_upper.build();
default_map.add_reg(.rg(masked_out_upper),
.offset(32'h18),
.rights("RW"));
direct_oe = gpio_reg_direct_oe::type_id::create("direct_oe");
direct_oe.configure(.blk_parent(this));
direct_oe.build();
default_map.add_reg(.rg(direct_oe),
.offset(32'h1c),
.rights("RW"));
masked_oe_lower = gpio_reg_masked_oe_lower::type_id::create("masked_oe_lower");
masked_oe_lower.configure(.blk_parent(this));
masked_oe_lower.build();
default_map.add_reg(.rg(masked_oe_lower),
.offset(32'h20),
.rights("RW"));
masked_oe_upper = gpio_reg_masked_oe_upper::type_id::create("masked_oe_upper");
masked_oe_upper.configure(.blk_parent(this));
masked_oe_upper.build();
default_map.add_reg(.rg(masked_oe_upper),
.offset(32'h24),
.rights("RW"));
intr_ctrl_en_rising = gpio_reg_intr_ctrl_en_rising::type_id::create("intr_ctrl_en_rising");
intr_ctrl_en_rising.configure(.blk_parent(this));
intr_ctrl_en_rising.build();
default_map.add_reg(.rg(intr_ctrl_en_rising),
.offset(32'h28),
.rights("RW"));
intr_ctrl_en_falling = gpio_reg_intr_ctrl_en_falling::type_id::create("intr_ctrl_en_falling");
intr_ctrl_en_falling.configure(.blk_parent(this));
intr_ctrl_en_falling.build();
default_map.add_reg(.rg(intr_ctrl_en_falling),
.offset(32'h2c),
.rights("RW"));
intr_ctrl_en_lvlhigh = gpio_reg_intr_ctrl_en_lvlhigh::type_id::create("intr_ctrl_en_lvlhigh");
intr_ctrl_en_lvlhigh.configure(.blk_parent(this));
intr_ctrl_en_lvlhigh.build();
default_map.add_reg(.rg(intr_ctrl_en_lvlhigh),
.offset(32'h30),
.rights("RW"));
intr_ctrl_en_lvllow = gpio_reg_intr_ctrl_en_lvllow::type_id::create("intr_ctrl_en_lvllow");
intr_ctrl_en_lvllow.configure(.blk_parent(this));
intr_ctrl_en_lvllow.build();
default_map.add_reg(.rg(intr_ctrl_en_lvllow),
.offset(32'h34),
.rights("RW"));
ctrl_en_input_filter = gpio_reg_ctrl_en_input_filter::type_id::create("ctrl_en_input_filter");
ctrl_en_input_filter.configure(.blk_parent(this));
ctrl_en_input_filter.build();
default_map.add_reg(.rg(ctrl_en_input_filter),
.offset(32'h38),
.rights("RW"));
endfunction : build
endclass : gpio_reg_block
`endif
// Block: spi_device
`ifndef SPI_DEVICE_REG_BLOCK__SV
`define SPI_DEVICE_REG_BLOCK__SV
// Forward declare all register/memory/block classes
typedef class spi_device_reg_intr_state;
typedef class spi_device_reg_intr_enable;
typedef class spi_device_reg_intr_test;
typedef class spi_device_reg_control;
typedef class spi_device_reg_cfg;
typedef class spi_device_reg_fifo_level;
typedef class spi_device_reg_async_fifo_level;
typedef class spi_device_reg_status;
typedef class spi_device_reg_rxf_ptr;
typedef class spi_device_reg_txf_ptr;
typedef class spi_device_reg_rxf_addr;
typedef class spi_device_reg_txf_addr;
typedef class spi_device_mem_buffer;
typedef class spi_device_reg_block;
// Class: spi_device_reg_intr_state
class spi_device_reg_intr_state extends dv_base_reg;
// fields
rand dv_base_reg_field rxf;
rand dv_base_reg_field rxlvl;
rand dv_base_reg_field txlvl;
rand dv_base_reg_field rxerr;
rand dv_base_reg_field rxoverflow;
rand dv_base_reg_field txunderflow;
`uvm_object_utils(spi_device_reg_intr_state)
function new(string name = "spi_device_reg_intr_state",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
rxf = dv_base_reg_field::type_id::create("rxf");
rxf.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("W1C"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rxlvl = dv_base_reg_field::type_id::create("rxlvl");
rxlvl.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("W1C"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
txlvl = dv_base_reg_field::type_id::create("txlvl");
txlvl.configure(
.parent(this),
.size(1),
.lsb_pos(2),
.access("W1C"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rxerr = dv_base_reg_field::type_id::create("rxerr");
rxerr.configure(
.parent(this),
.size(1),
.lsb_pos(3),
.access("W1C"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rxoverflow = dv_base_reg_field::type_id::create("rxoverflow");
rxoverflow.configure(
.parent(this),
.size(1),
.lsb_pos(4),
.access("W1C"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
txunderflow = dv_base_reg_field::type_id::create("txunderflow");
txunderflow.configure(
.parent(this),
.size(1),
.lsb_pos(5),
.access("W1C"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : spi_device_reg_intr_state
// Class: spi_device_reg_intr_enable
class spi_device_reg_intr_enable extends dv_base_reg;
// fields
rand dv_base_reg_field rxf;
rand dv_base_reg_field rxlvl;
rand dv_base_reg_field txlvl;
rand dv_base_reg_field rxerr;
rand dv_base_reg_field rxoverflow;
rand dv_base_reg_field txunderflow;
`uvm_object_utils(spi_device_reg_intr_enable)
function new(string name = "spi_device_reg_intr_enable",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
rxf = dv_base_reg_field::type_id::create("rxf");
rxf.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rxlvl = dv_base_reg_field::type_id::create("rxlvl");
rxlvl.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
txlvl = dv_base_reg_field::type_id::create("txlvl");
txlvl.configure(
.parent(this),
.size(1),
.lsb_pos(2),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rxerr = dv_base_reg_field::type_id::create("rxerr");
rxerr.configure(
.parent(this),
.size(1),
.lsb_pos(3),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rxoverflow = dv_base_reg_field::type_id::create("rxoverflow");
rxoverflow.configure(
.parent(this),
.size(1),
.lsb_pos(4),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
txunderflow = dv_base_reg_field::type_id::create("txunderflow");
txunderflow.configure(
.parent(this),
.size(1),
.lsb_pos(5),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : spi_device_reg_intr_enable
// Class: spi_device_reg_intr_test
class spi_device_reg_intr_test extends dv_base_reg;
// fields
rand dv_base_reg_field rxf;
rand dv_base_reg_field rxlvl;
rand dv_base_reg_field txlvl;
rand dv_base_reg_field rxerr;
rand dv_base_reg_field rxoverflow;
rand dv_base_reg_field txunderflow;
`uvm_object_utils(spi_device_reg_intr_test)
function new(string name = "spi_device_reg_intr_test",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
rxf = dv_base_reg_field::type_id::create("rxf");
rxf.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("WO"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rxlvl = dv_base_reg_field::type_id::create("rxlvl");
rxlvl.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("WO"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
txlvl = dv_base_reg_field::type_id::create("txlvl");
txlvl.configure(
.parent(this),
.size(1),
.lsb_pos(2),
.access("WO"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rxerr = dv_base_reg_field::type_id::create("rxerr");
rxerr.configure(
.parent(this),
.size(1),
.lsb_pos(3),
.access("WO"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rxoverflow = dv_base_reg_field::type_id::create("rxoverflow");
rxoverflow.configure(
.parent(this),
.size(1),
.lsb_pos(4),
.access("WO"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
txunderflow = dv_base_reg_field::type_id::create("txunderflow");
txunderflow.configure(
.parent(this),
.size(1),
.lsb_pos(5),
.access("WO"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : spi_device_reg_intr_test
// Class: spi_device_reg_control
class spi_device_reg_control extends dv_base_reg;
// fields
rand dv_base_reg_field abort;
rand dv_base_reg_field mode;
rand dv_base_reg_field rst_txfifo;
rand dv_base_reg_field rst_rxfifo;
`uvm_object_utils(spi_device_reg_control)
function new(string name = "spi_device_reg_control",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
abort = dv_base_reg_field::type_id::create("abort");
abort.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
mode = dv_base_reg_field::type_id::create("mode");
mode.configure(
.parent(this),
.size(2),
.lsb_pos(4),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rst_txfifo = dv_base_reg_field::type_id::create("rst_txfifo");
rst_txfifo.configure(
.parent(this),
.size(1),
.lsb_pos(16),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rst_rxfifo = dv_base_reg_field::type_id::create("rst_rxfifo");
rst_rxfifo.configure(
.parent(this),
.size(1),
.lsb_pos(17),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : spi_device_reg_control
// Class: spi_device_reg_cfg
class spi_device_reg_cfg extends dv_base_reg;
// fields
rand dv_base_reg_field cpol;
rand dv_base_reg_field cpha;
rand dv_base_reg_field tx_order;
rand dv_base_reg_field rx_order;
rand dv_base_reg_field timer_v;
`uvm_object_utils(spi_device_reg_cfg)
function new(string name = "spi_device_reg_cfg",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
cpol = dv_base_reg_field::type_id::create("cpol");
cpol.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
cpha = dv_base_reg_field::type_id::create("cpha");
cpha.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
tx_order = dv_base_reg_field::type_id::create("tx_order");
tx_order.configure(
.parent(this),
.size(1),
.lsb_pos(2),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rx_order = dv_base_reg_field::type_id::create("rx_order");
rx_order.configure(
.parent(this),
.size(1),
.lsb_pos(3),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
timer_v = dv_base_reg_field::type_id::create("timer_v");
timer_v.configure(
.parent(this),
.size(8),
.lsb_pos(8),
.access("RW"),
.volatile(0),
.reset(32'h7f),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : spi_device_reg_cfg
// Class: spi_device_reg_fifo_level
class spi_device_reg_fifo_level extends dv_base_reg;
// fields
rand dv_base_reg_field rxlvl;
rand dv_base_reg_field txlvl;
`uvm_object_utils(spi_device_reg_fifo_level)
function new(string name = "spi_device_reg_fifo_level",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
rxlvl = dv_base_reg_field::type_id::create("rxlvl");
rxlvl.configure(
.parent(this),
.size(16),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h80),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
txlvl = dv_base_reg_field::type_id::create("txlvl");
txlvl.configure(
.parent(this),
.size(16),
.lsb_pos(16),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : spi_device_reg_fifo_level
// Class: spi_device_reg_async_fifo_level
class spi_device_reg_async_fifo_level extends dv_base_reg;
// fields
rand dv_base_reg_field rxlvl;
rand dv_base_reg_field txlvl;
`uvm_object_utils(spi_device_reg_async_fifo_level)
function new(string name = "spi_device_reg_async_fifo_level",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
rxlvl = dv_base_reg_field::type_id::create("rxlvl");
rxlvl.configure(
.parent(this),
.size(8),
.lsb_pos(0),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
txlvl = dv_base_reg_field::type_id::create("txlvl");
txlvl.configure(
.parent(this),
.size(8),
.lsb_pos(16),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : spi_device_reg_async_fifo_level
// Class: spi_device_reg_status
class spi_device_reg_status extends dv_base_reg;
// fields
rand dv_base_reg_field rxf_full;
rand dv_base_reg_field rxf_empty;
rand dv_base_reg_field txf_full;
rand dv_base_reg_field txf_empty;
rand dv_base_reg_field abort_done;
rand dv_base_reg_field csb;
`uvm_object_utils(spi_device_reg_status)
function new(string name = "spi_device_reg_status",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
rxf_full = dv_base_reg_field::type_id::create("rxf_full");
rxf_full.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rxf_empty = dv_base_reg_field::type_id::create("rxf_empty");
rxf_empty.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("RO"),
.volatile(1),
.reset(32'h1),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
txf_full = dv_base_reg_field::type_id::create("txf_full");
txf_full.configure(
.parent(this),
.size(1),
.lsb_pos(2),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
txf_empty = dv_base_reg_field::type_id::create("txf_empty");
txf_empty.configure(
.parent(this),
.size(1),
.lsb_pos(3),
.access("RO"),
.volatile(1),
.reset(32'h1),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
abort_done = dv_base_reg_field::type_id::create("abort_done");
abort_done.configure(
.parent(this),
.size(1),
.lsb_pos(4),
.access("RO"),
.volatile(1),
.reset(32'h1),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
csb = dv_base_reg_field::type_id::create("csb");
csb.configure(
.parent(this),
.size(1),
.lsb_pos(5),
.access("RO"),
.volatile(1),
.reset(32'h1),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : spi_device_reg_status
// Class: spi_device_reg_rxf_ptr
class spi_device_reg_rxf_ptr extends dv_base_reg;
// fields
rand dv_base_reg_field rptr;
rand dv_base_reg_field wptr;
`uvm_object_utils(spi_device_reg_rxf_ptr)
function new(string name = "spi_device_reg_rxf_ptr",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
rptr = dv_base_reg_field::type_id::create("rptr");
rptr.configure(
.parent(this),
.size(16),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
wptr = dv_base_reg_field::type_id::create("wptr");
wptr.configure(
.parent(this),
.size(16),
.lsb_pos(16),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : spi_device_reg_rxf_ptr
// Class: spi_device_reg_txf_ptr
class spi_device_reg_txf_ptr extends dv_base_reg;
// fields
rand dv_base_reg_field rptr;
rand dv_base_reg_field wptr;
`uvm_object_utils(spi_device_reg_txf_ptr)
function new(string name = "spi_device_reg_txf_ptr",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
rptr = dv_base_reg_field::type_id::create("rptr");
rptr.configure(
.parent(this),
.size(16),
.lsb_pos(0),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
wptr = dv_base_reg_field::type_id::create("wptr");
wptr.configure(
.parent(this),
.size(16),
.lsb_pos(16),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : spi_device_reg_txf_ptr
// Class: spi_device_reg_rxf_addr
class spi_device_reg_rxf_addr extends dv_base_reg;
// fields
rand dv_base_reg_field base;
rand dv_base_reg_field limit;
`uvm_object_utils(spi_device_reg_rxf_addr)
function new(string name = "spi_device_reg_rxf_addr",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
base = dv_base_reg_field::type_id::create("base");
base.configure(
.parent(this),
.size(16),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
limit = dv_base_reg_field::type_id::create("limit");
limit.configure(
.parent(this),
.size(16),
.lsb_pos(16),
.access("RW"),
.volatile(0),
.reset(32'h1fc),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : spi_device_reg_rxf_addr
// Class: spi_device_reg_txf_addr
class spi_device_reg_txf_addr extends dv_base_reg;
// fields
rand dv_base_reg_field base;
rand dv_base_reg_field limit;
`uvm_object_utils(spi_device_reg_txf_addr)
function new(string name = "spi_device_reg_txf_addr",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
base = dv_base_reg_field::type_id::create("base");
base.configure(
.parent(this),
.size(16),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h200),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
limit = dv_base_reg_field::type_id::create("limit");
limit.configure(
.parent(this),
.size(16),
.lsb_pos(16),
.access("RW"),
.volatile(0),
.reset(32'h3fc),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : spi_device_reg_txf_addr
// Class: spi_device_mem_buffer
class spi_device_mem_buffer extends dv_base_mem;
`uvm_object_utils(spi_device_mem_buffer)
function new(string name = "spi_device_mem_buffer",
longint unsigned size = 512,
int unsigned n_bits = 32,
string access = "RW"/* TODO:"RW"*/,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, size, n_bits, access, has_coverage);
endfunction : new
endclass : spi_device_mem_buffer
// Class: spi_device_reg_block
class spi_device_reg_block extends dv_base_reg_block;
// registers
rand spi_device_reg_intr_state intr_state;
rand spi_device_reg_intr_enable intr_enable;
rand spi_device_reg_intr_test intr_test;
rand spi_device_reg_control control;
rand spi_device_reg_cfg cfg;
rand spi_device_reg_fifo_level fifo_level;
rand spi_device_reg_async_fifo_level async_fifo_level;
rand spi_device_reg_status status;
rand spi_device_reg_rxf_ptr rxf_ptr;
rand spi_device_reg_txf_ptr txf_ptr;
rand spi_device_reg_rxf_addr rxf_addr;
rand spi_device_reg_txf_addr txf_addr;
// memories
rand spi_device_mem_buffer buffer;
`uvm_object_utils(spi_device_reg_block)
function new(string name = "spi_device_reg_block",
int has_coverage = UVM_NO_COVERAGE);
super.new(name, has_coverage);
endfunction : new
virtual function void build(uvm_reg_addr_t base_addr);
// create default map
this.default_map = create_map(.name("default_map"),
.base_addr(base_addr),
.n_bytes(4),
.endian(UVM_LITTLE_ENDIAN));
// create registers
intr_state = spi_device_reg_intr_state::type_id::create("intr_state");
intr_state.configure(.blk_parent(this));
intr_state.build();
default_map.add_reg(.rg(intr_state),
.offset(32'h0),
.rights("RW"));
intr_enable = spi_device_reg_intr_enable::type_id::create("intr_enable");
intr_enable.configure(.blk_parent(this));
intr_enable.build();
default_map.add_reg(.rg(intr_enable),
.offset(32'h4),
.rights("RW"));
intr_test = spi_device_reg_intr_test::type_id::create("intr_test");
intr_test.configure(.blk_parent(this));
intr_test.build();
default_map.add_reg(.rg(intr_test),
.offset(32'h8),
.rights("WO"));
control = spi_device_reg_control::type_id::create("control");
control.configure(.blk_parent(this));
control.build();
default_map.add_reg(.rg(control),
.offset(32'hc),
.rights("RW"));
cfg = spi_device_reg_cfg::type_id::create("cfg");
cfg.configure(.blk_parent(this));
cfg.build();
default_map.add_reg(.rg(cfg),
.offset(32'h10),
.rights("RW"));
fifo_level = spi_device_reg_fifo_level::type_id::create("fifo_level");
fifo_level.configure(.blk_parent(this));
fifo_level.build();
default_map.add_reg(.rg(fifo_level),
.offset(32'h14),
.rights("RW"));
async_fifo_level = spi_device_reg_async_fifo_level::type_id::create("async_fifo_level");
async_fifo_level.configure(.blk_parent(this));
async_fifo_level.build();
default_map.add_reg(.rg(async_fifo_level),
.offset(32'h18),
.rights("RO"));
status = spi_device_reg_status::type_id::create("status");
status.configure(.blk_parent(this));
status.build();
default_map.add_reg(.rg(status),
.offset(32'h1c),
.rights("RO"));
rxf_ptr = spi_device_reg_rxf_ptr::type_id::create("rxf_ptr");
rxf_ptr.configure(.blk_parent(this));
rxf_ptr.build();
default_map.add_reg(.rg(rxf_ptr),
.offset(32'h20),
.rights("RW"));
txf_ptr = spi_device_reg_txf_ptr::type_id::create("txf_ptr");
txf_ptr.configure(.blk_parent(this));
txf_ptr.build();
default_map.add_reg(.rg(txf_ptr),
.offset(32'h24),
.rights("RW"));
rxf_addr = spi_device_reg_rxf_addr::type_id::create("rxf_addr");
rxf_addr.configure(.blk_parent(this));
rxf_addr.build();
default_map.add_reg(.rg(rxf_addr),
.offset(32'h28),
.rights("RW"));
txf_addr = spi_device_reg_txf_addr::type_id::create("txf_addr");
txf_addr.configure(.blk_parent(this));
txf_addr.build();
default_map.add_reg(.rg(txf_addr),
.offset(32'h2c),
.rights("RW"));
// create memories
buffer = spi_device_mem_buffer::type_id::create("buffer");
buffer.configure(.parent(this));
default_map.add_mem(.mem(buffer),
.offset(32'h800),
.rights("RW"));
endfunction : build
endclass : spi_device_reg_block
`endif
// Block: flash_ctrl
`ifndef FLASH_CTRL_REG_BLOCK__SV
`define FLASH_CTRL_REG_BLOCK__SV
// Forward declare all register/memory/block classes
typedef class flash_ctrl_reg_intr_state;
typedef class flash_ctrl_reg_intr_enable;
typedef class flash_ctrl_reg_intr_test;
typedef class flash_ctrl_reg_control;
typedef class flash_ctrl_reg_addr;
typedef class flash_ctrl_reg_region_cfg_regwen;
typedef class flash_ctrl_reg_mp_region_cfg0;
typedef class flash_ctrl_reg_mp_region_cfg1;
typedef class flash_ctrl_reg_mp_region_cfg2;
typedef class flash_ctrl_reg_mp_region_cfg3;
typedef class flash_ctrl_reg_mp_region_cfg4;
typedef class flash_ctrl_reg_mp_region_cfg5;
typedef class flash_ctrl_reg_mp_region_cfg6;
typedef class flash_ctrl_reg_mp_region_cfg7;
typedef class flash_ctrl_reg_default_region;
typedef class flash_ctrl_reg_bank_cfg_regwen;
typedef class flash_ctrl_reg_mp_bank_cfg;
typedef class flash_ctrl_reg_op_status;
typedef class flash_ctrl_reg_status;
typedef class flash_ctrl_reg_scratch;
typedef class flash_ctrl_reg_fifo_lvl;
typedef class flash_ctrl_mem_prog_fifo;
typedef class flash_ctrl_mem_rd_fifo;
typedef class flash_ctrl_reg_block;
// Class: flash_ctrl_reg_intr_state
class flash_ctrl_reg_intr_state extends dv_base_reg;
// fields
rand dv_base_reg_field prog_empty;
rand dv_base_reg_field prog_lvl;
rand dv_base_reg_field rd_full;
rand dv_base_reg_field rd_lvl;
rand dv_base_reg_field op_done;
rand dv_base_reg_field op_error;
`uvm_object_utils(flash_ctrl_reg_intr_state)
function new(string name = "flash_ctrl_reg_intr_state",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prog_empty = dv_base_reg_field::type_id::create("prog_empty");
prog_empty.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("W1C"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
prog_lvl = dv_base_reg_field::type_id::create("prog_lvl");
prog_lvl.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("W1C"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rd_full = dv_base_reg_field::type_id::create("rd_full");
rd_full.configure(
.parent(this),
.size(1),
.lsb_pos(2),
.access("W1C"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rd_lvl = dv_base_reg_field::type_id::create("rd_lvl");
rd_lvl.configure(
.parent(this),
.size(1),
.lsb_pos(3),
.access("W1C"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
op_done = dv_base_reg_field::type_id::create("op_done");
op_done.configure(
.parent(this),
.size(1),
.lsb_pos(4),
.access("W1C"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
op_error = dv_base_reg_field::type_id::create("op_error");
op_error.configure(
.parent(this),
.size(1),
.lsb_pos(5),
.access("W1C"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : flash_ctrl_reg_intr_state
// Class: flash_ctrl_reg_intr_enable
class flash_ctrl_reg_intr_enable extends dv_base_reg;
// fields
rand dv_base_reg_field prog_empty;
rand dv_base_reg_field prog_lvl;
rand dv_base_reg_field rd_full;
rand dv_base_reg_field rd_lvl;
rand dv_base_reg_field op_done;
rand dv_base_reg_field op_error;
`uvm_object_utils(flash_ctrl_reg_intr_enable)
function new(string name = "flash_ctrl_reg_intr_enable",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prog_empty = dv_base_reg_field::type_id::create("prog_empty");
prog_empty.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
prog_lvl = dv_base_reg_field::type_id::create("prog_lvl");
prog_lvl.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rd_full = dv_base_reg_field::type_id::create("rd_full");
rd_full.configure(
.parent(this),
.size(1),
.lsb_pos(2),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rd_lvl = dv_base_reg_field::type_id::create("rd_lvl");
rd_lvl.configure(
.parent(this),
.size(1),
.lsb_pos(3),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
op_done = dv_base_reg_field::type_id::create("op_done");
op_done.configure(
.parent(this),
.size(1),
.lsb_pos(4),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
op_error = dv_base_reg_field::type_id::create("op_error");
op_error.configure(
.parent(this),
.size(1),
.lsb_pos(5),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : flash_ctrl_reg_intr_enable
// Class: flash_ctrl_reg_intr_test
class flash_ctrl_reg_intr_test extends dv_base_reg;
// fields
rand dv_base_reg_field prog_empty;
rand dv_base_reg_field prog_lvl;
rand dv_base_reg_field rd_full;
rand dv_base_reg_field rd_lvl;
rand dv_base_reg_field op_done;
rand dv_base_reg_field op_error;
`uvm_object_utils(flash_ctrl_reg_intr_test)
function new(string name = "flash_ctrl_reg_intr_test",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prog_empty = dv_base_reg_field::type_id::create("prog_empty");
prog_empty.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("WO"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
prog_lvl = dv_base_reg_field::type_id::create("prog_lvl");
prog_lvl.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("WO"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rd_full = dv_base_reg_field::type_id::create("rd_full");
rd_full.configure(
.parent(this),
.size(1),
.lsb_pos(2),
.access("WO"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rd_lvl = dv_base_reg_field::type_id::create("rd_lvl");
rd_lvl.configure(
.parent(this),
.size(1),
.lsb_pos(3),
.access("WO"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
op_done = dv_base_reg_field::type_id::create("op_done");
op_done.configure(
.parent(this),
.size(1),
.lsb_pos(4),
.access("WO"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
op_error = dv_base_reg_field::type_id::create("op_error");
op_error.configure(
.parent(this),
.size(1),
.lsb_pos(5),
.access("WO"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : flash_ctrl_reg_intr_test
// Class: flash_ctrl_reg_control
class flash_ctrl_reg_control extends dv_base_reg;
// fields
rand dv_base_reg_field start;
rand dv_base_reg_field op;
rand dv_base_reg_field erase_sel;
rand dv_base_reg_field fifo_rst;
rand dv_base_reg_field num;
`uvm_object_utils(flash_ctrl_reg_control)
function new(string name = "flash_ctrl_reg_control",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
start = dv_base_reg_field::type_id::create("start");
start.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
op = dv_base_reg_field::type_id::create("op");
op.configure(
.parent(this),
.size(2),
.lsb_pos(4),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
erase_sel = dv_base_reg_field::type_id::create("erase_sel");
erase_sel.configure(
.parent(this),
.size(1),
.lsb_pos(6),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
fifo_rst = dv_base_reg_field::type_id::create("fifo_rst");
fifo_rst.configure(
.parent(this),
.size(1),
.lsb_pos(7),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
num = dv_base_reg_field::type_id::create("num");
num.configure(
.parent(this),
.size(12),
.lsb_pos(16),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : flash_ctrl_reg_control
// Class: flash_ctrl_reg_addr
class flash_ctrl_reg_addr extends dv_base_reg;
// fields
rand dv_base_reg_field start;
`uvm_object_utils(flash_ctrl_reg_addr)
function new(string name = "flash_ctrl_reg_addr",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
start = dv_base_reg_field::type_id::create("start");
start.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : flash_ctrl_reg_addr
// Class: flash_ctrl_reg_region_cfg_regwen
class flash_ctrl_reg_region_cfg_regwen extends dv_base_reg;
// fields
rand dv_base_reg_field region0;
rand dv_base_reg_field region1;
rand dv_base_reg_field region2;
rand dv_base_reg_field region3;
rand dv_base_reg_field region4;
rand dv_base_reg_field region5;
rand dv_base_reg_field region6;
rand dv_base_reg_field region7;
`uvm_object_utils(flash_ctrl_reg_region_cfg_regwen)
function new(string name = "flash_ctrl_reg_region_cfg_regwen",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
region0 = dv_base_reg_field::type_id::create("region0");
region0.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("W0C"),
.volatile(1),
.reset(32'h1),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
region1 = dv_base_reg_field::type_id::create("region1");
region1.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("W0C"),
.volatile(1),
.reset(32'h1),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
region2 = dv_base_reg_field::type_id::create("region2");
region2.configure(
.parent(this),
.size(1),
.lsb_pos(2),
.access("W0C"),
.volatile(1),
.reset(32'h1),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
region3 = dv_base_reg_field::type_id::create("region3");
region3.configure(
.parent(this),
.size(1),
.lsb_pos(3),
.access("W0C"),
.volatile(1),
.reset(32'h1),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
region4 = dv_base_reg_field::type_id::create("region4");
region4.configure(
.parent(this),
.size(1),
.lsb_pos(4),
.access("W0C"),
.volatile(1),
.reset(32'h1),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
region5 = dv_base_reg_field::type_id::create("region5");
region5.configure(
.parent(this),
.size(1),
.lsb_pos(5),
.access("W0C"),
.volatile(1),
.reset(32'h1),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
region6 = dv_base_reg_field::type_id::create("region6");
region6.configure(
.parent(this),
.size(1),
.lsb_pos(6),
.access("W0C"),
.volatile(1),
.reset(32'h1),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
region7 = dv_base_reg_field::type_id::create("region7");
region7.configure(
.parent(this),
.size(1),
.lsb_pos(7),
.access("W0C"),
.volatile(1),
.reset(32'h1),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : flash_ctrl_reg_region_cfg_regwen
// Class: flash_ctrl_reg_mp_region_cfg0
class flash_ctrl_reg_mp_region_cfg0 extends dv_base_reg;
// fields
rand dv_base_reg_field en0;
rand dv_base_reg_field rd_en0;
rand dv_base_reg_field prog_en0;
rand dv_base_reg_field erase_en0;
rand dv_base_reg_field base0;
rand dv_base_reg_field size0;
`uvm_object_utils(flash_ctrl_reg_mp_region_cfg0)
function new(string name = "flash_ctrl_reg_mp_region_cfg0",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
en0 = dv_base_reg_field::type_id::create("en0");
en0.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rd_en0 = dv_base_reg_field::type_id::create("rd_en0");
rd_en0.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
prog_en0 = dv_base_reg_field::type_id::create("prog_en0");
prog_en0.configure(
.parent(this),
.size(1),
.lsb_pos(2),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
erase_en0 = dv_base_reg_field::type_id::create("erase_en0");
erase_en0.configure(
.parent(this),
.size(1),
.lsb_pos(3),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
base0 = dv_base_reg_field::type_id::create("base0");
base0.configure(
.parent(this),
.size(9),
.lsb_pos(4),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
size0 = dv_base_reg_field::type_id::create("size0");
size0.configure(
.parent(this),
.size(9),
.lsb_pos(16),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : flash_ctrl_reg_mp_region_cfg0
// Class: flash_ctrl_reg_mp_region_cfg1
class flash_ctrl_reg_mp_region_cfg1 extends dv_base_reg;
// fields
rand dv_base_reg_field en1;
rand dv_base_reg_field rd_en1;
rand dv_base_reg_field prog_en1;
rand dv_base_reg_field erase_en1;
rand dv_base_reg_field base1;
rand dv_base_reg_field size1;
`uvm_object_utils(flash_ctrl_reg_mp_region_cfg1)
function new(string name = "flash_ctrl_reg_mp_region_cfg1",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
en1 = dv_base_reg_field::type_id::create("en1");
en1.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rd_en1 = dv_base_reg_field::type_id::create("rd_en1");
rd_en1.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
prog_en1 = dv_base_reg_field::type_id::create("prog_en1");
prog_en1.configure(
.parent(this),
.size(1),
.lsb_pos(2),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
erase_en1 = dv_base_reg_field::type_id::create("erase_en1");
erase_en1.configure(
.parent(this),
.size(1),
.lsb_pos(3),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
base1 = dv_base_reg_field::type_id::create("base1");
base1.configure(
.parent(this),
.size(9),
.lsb_pos(4),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
size1 = dv_base_reg_field::type_id::create("size1");
size1.configure(
.parent(this),
.size(9),
.lsb_pos(16),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : flash_ctrl_reg_mp_region_cfg1
// Class: flash_ctrl_reg_mp_region_cfg2
class flash_ctrl_reg_mp_region_cfg2 extends dv_base_reg;
// fields
rand dv_base_reg_field en2;
rand dv_base_reg_field rd_en2;
rand dv_base_reg_field prog_en2;
rand dv_base_reg_field erase_en2;
rand dv_base_reg_field base2;
rand dv_base_reg_field size2;
`uvm_object_utils(flash_ctrl_reg_mp_region_cfg2)
function new(string name = "flash_ctrl_reg_mp_region_cfg2",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
en2 = dv_base_reg_field::type_id::create("en2");
en2.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rd_en2 = dv_base_reg_field::type_id::create("rd_en2");
rd_en2.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
prog_en2 = dv_base_reg_field::type_id::create("prog_en2");
prog_en2.configure(
.parent(this),
.size(1),
.lsb_pos(2),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
erase_en2 = dv_base_reg_field::type_id::create("erase_en2");
erase_en2.configure(
.parent(this),
.size(1),
.lsb_pos(3),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
base2 = dv_base_reg_field::type_id::create("base2");
base2.configure(
.parent(this),
.size(9),
.lsb_pos(4),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
size2 = dv_base_reg_field::type_id::create("size2");
size2.configure(
.parent(this),
.size(9),
.lsb_pos(16),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : flash_ctrl_reg_mp_region_cfg2
// Class: flash_ctrl_reg_mp_region_cfg3
class flash_ctrl_reg_mp_region_cfg3 extends dv_base_reg;
// fields
rand dv_base_reg_field en3;
rand dv_base_reg_field rd_en3;
rand dv_base_reg_field prog_en3;
rand dv_base_reg_field erase_en3;
rand dv_base_reg_field base3;
rand dv_base_reg_field size3;
`uvm_object_utils(flash_ctrl_reg_mp_region_cfg3)
function new(string name = "flash_ctrl_reg_mp_region_cfg3",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
en3 = dv_base_reg_field::type_id::create("en3");
en3.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rd_en3 = dv_base_reg_field::type_id::create("rd_en3");
rd_en3.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
prog_en3 = dv_base_reg_field::type_id::create("prog_en3");
prog_en3.configure(
.parent(this),
.size(1),
.lsb_pos(2),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
erase_en3 = dv_base_reg_field::type_id::create("erase_en3");
erase_en3.configure(
.parent(this),
.size(1),
.lsb_pos(3),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
base3 = dv_base_reg_field::type_id::create("base3");
base3.configure(
.parent(this),
.size(9),
.lsb_pos(4),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
size3 = dv_base_reg_field::type_id::create("size3");
size3.configure(
.parent(this),
.size(9),
.lsb_pos(16),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : flash_ctrl_reg_mp_region_cfg3
// Class: flash_ctrl_reg_mp_region_cfg4
class flash_ctrl_reg_mp_region_cfg4 extends dv_base_reg;
// fields
rand dv_base_reg_field en4;
rand dv_base_reg_field rd_en4;
rand dv_base_reg_field prog_en4;
rand dv_base_reg_field erase_en4;
rand dv_base_reg_field base4;
rand dv_base_reg_field size4;
`uvm_object_utils(flash_ctrl_reg_mp_region_cfg4)
function new(string name = "flash_ctrl_reg_mp_region_cfg4",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
en4 = dv_base_reg_field::type_id::create("en4");
en4.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rd_en4 = dv_base_reg_field::type_id::create("rd_en4");
rd_en4.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
prog_en4 = dv_base_reg_field::type_id::create("prog_en4");
prog_en4.configure(
.parent(this),
.size(1),
.lsb_pos(2),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
erase_en4 = dv_base_reg_field::type_id::create("erase_en4");
erase_en4.configure(
.parent(this),
.size(1),
.lsb_pos(3),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
base4 = dv_base_reg_field::type_id::create("base4");
base4.configure(
.parent(this),
.size(9),
.lsb_pos(4),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
size4 = dv_base_reg_field::type_id::create("size4");
size4.configure(
.parent(this),
.size(9),
.lsb_pos(16),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : flash_ctrl_reg_mp_region_cfg4
// Class: flash_ctrl_reg_mp_region_cfg5
class flash_ctrl_reg_mp_region_cfg5 extends dv_base_reg;
// fields
rand dv_base_reg_field en5;
rand dv_base_reg_field rd_en5;
rand dv_base_reg_field prog_en5;
rand dv_base_reg_field erase_en5;
rand dv_base_reg_field base5;
rand dv_base_reg_field size5;
`uvm_object_utils(flash_ctrl_reg_mp_region_cfg5)
function new(string name = "flash_ctrl_reg_mp_region_cfg5",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
en5 = dv_base_reg_field::type_id::create("en5");
en5.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rd_en5 = dv_base_reg_field::type_id::create("rd_en5");
rd_en5.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
prog_en5 = dv_base_reg_field::type_id::create("prog_en5");
prog_en5.configure(
.parent(this),
.size(1),
.lsb_pos(2),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
erase_en5 = dv_base_reg_field::type_id::create("erase_en5");
erase_en5.configure(
.parent(this),
.size(1),
.lsb_pos(3),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
base5 = dv_base_reg_field::type_id::create("base5");
base5.configure(
.parent(this),
.size(9),
.lsb_pos(4),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
size5 = dv_base_reg_field::type_id::create("size5");
size5.configure(
.parent(this),
.size(9),
.lsb_pos(16),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : flash_ctrl_reg_mp_region_cfg5
// Class: flash_ctrl_reg_mp_region_cfg6
class flash_ctrl_reg_mp_region_cfg6 extends dv_base_reg;
// fields
rand dv_base_reg_field en6;
rand dv_base_reg_field rd_en6;
rand dv_base_reg_field prog_en6;
rand dv_base_reg_field erase_en6;
rand dv_base_reg_field base6;
rand dv_base_reg_field size6;
`uvm_object_utils(flash_ctrl_reg_mp_region_cfg6)
function new(string name = "flash_ctrl_reg_mp_region_cfg6",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
en6 = dv_base_reg_field::type_id::create("en6");
en6.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rd_en6 = dv_base_reg_field::type_id::create("rd_en6");
rd_en6.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
prog_en6 = dv_base_reg_field::type_id::create("prog_en6");
prog_en6.configure(
.parent(this),
.size(1),
.lsb_pos(2),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
erase_en6 = dv_base_reg_field::type_id::create("erase_en6");
erase_en6.configure(
.parent(this),
.size(1),
.lsb_pos(3),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
base6 = dv_base_reg_field::type_id::create("base6");
base6.configure(
.parent(this),
.size(9),
.lsb_pos(4),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
size6 = dv_base_reg_field::type_id::create("size6");
size6.configure(
.parent(this),
.size(9),
.lsb_pos(16),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : flash_ctrl_reg_mp_region_cfg6
// Class: flash_ctrl_reg_mp_region_cfg7
class flash_ctrl_reg_mp_region_cfg7 extends dv_base_reg;
// fields
rand dv_base_reg_field en7;
rand dv_base_reg_field rd_en7;
rand dv_base_reg_field prog_en7;
rand dv_base_reg_field erase_en7;
rand dv_base_reg_field base7;
rand dv_base_reg_field size7;
`uvm_object_utils(flash_ctrl_reg_mp_region_cfg7)
function new(string name = "flash_ctrl_reg_mp_region_cfg7",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
en7 = dv_base_reg_field::type_id::create("en7");
en7.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rd_en7 = dv_base_reg_field::type_id::create("rd_en7");
rd_en7.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
prog_en7 = dv_base_reg_field::type_id::create("prog_en7");
prog_en7.configure(
.parent(this),
.size(1),
.lsb_pos(2),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
erase_en7 = dv_base_reg_field::type_id::create("erase_en7");
erase_en7.configure(
.parent(this),
.size(1),
.lsb_pos(3),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
base7 = dv_base_reg_field::type_id::create("base7");
base7.configure(
.parent(this),
.size(9),
.lsb_pos(4),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
size7 = dv_base_reg_field::type_id::create("size7");
size7.configure(
.parent(this),
.size(9),
.lsb_pos(16),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : flash_ctrl_reg_mp_region_cfg7
// Class: flash_ctrl_reg_default_region
class flash_ctrl_reg_default_region extends dv_base_reg;
// fields
rand dv_base_reg_field rd_en;
rand dv_base_reg_field prog_en;
rand dv_base_reg_field erase_en;
`uvm_object_utils(flash_ctrl_reg_default_region)
function new(string name = "flash_ctrl_reg_default_region",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
rd_en = dv_base_reg_field::type_id::create("rd_en");
rd_en.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
prog_en = dv_base_reg_field::type_id::create("prog_en");
prog_en.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
erase_en = dv_base_reg_field::type_id::create("erase_en");
erase_en.configure(
.parent(this),
.size(1),
.lsb_pos(2),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : flash_ctrl_reg_default_region
// Class: flash_ctrl_reg_bank_cfg_regwen
class flash_ctrl_reg_bank_cfg_regwen extends dv_base_reg;
// fields
rand dv_base_reg_field bank;
`uvm_object_utils(flash_ctrl_reg_bank_cfg_regwen)
function new(string name = "flash_ctrl_reg_bank_cfg_regwen",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
bank = dv_base_reg_field::type_id::create("bank");
bank.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("W0C"),
.volatile(1),
.reset(32'h1),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : flash_ctrl_reg_bank_cfg_regwen
// Class: flash_ctrl_reg_mp_bank_cfg
class flash_ctrl_reg_mp_bank_cfg extends dv_base_reg;
// fields
rand dv_base_reg_field erase_en0;
rand dv_base_reg_field erase_en1;
`uvm_object_utils(flash_ctrl_reg_mp_bank_cfg)
function new(string name = "flash_ctrl_reg_mp_bank_cfg",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
erase_en0 = dv_base_reg_field::type_id::create("erase_en0");
erase_en0.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
erase_en1 = dv_base_reg_field::type_id::create("erase_en1");
erase_en1.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : flash_ctrl_reg_mp_bank_cfg
// Class: flash_ctrl_reg_op_status
class flash_ctrl_reg_op_status extends dv_base_reg;
// fields
rand dv_base_reg_field done;
rand dv_base_reg_field err;
`uvm_object_utils(flash_ctrl_reg_op_status)
function new(string name = "flash_ctrl_reg_op_status",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
done = dv_base_reg_field::type_id::create("done");
done.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
err = dv_base_reg_field::type_id::create("err");
err.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : flash_ctrl_reg_op_status
// Class: flash_ctrl_reg_status
class flash_ctrl_reg_status extends dv_base_reg;
// fields
rand dv_base_reg_field rd_full;
rand dv_base_reg_field rd_empty;
rand dv_base_reg_field prog_full;
rand dv_base_reg_field prog_empty;
rand dv_base_reg_field init_wip;
rand dv_base_reg_field error_page;
rand dv_base_reg_field error_bank;
`uvm_object_utils(flash_ctrl_reg_status)
function new(string name = "flash_ctrl_reg_status",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
rd_full = dv_base_reg_field::type_id::create("rd_full");
rd_full.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rd_empty = dv_base_reg_field::type_id::create("rd_empty");
rd_empty.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
prog_full = dv_base_reg_field::type_id::create("prog_full");
prog_full.configure(
.parent(this),
.size(1),
.lsb_pos(2),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
prog_empty = dv_base_reg_field::type_id::create("prog_empty");
prog_empty.configure(
.parent(this),
.size(1),
.lsb_pos(3),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
init_wip = dv_base_reg_field::type_id::create("init_wip");
init_wip.configure(
.parent(this),
.size(1),
.lsb_pos(4),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
error_page = dv_base_reg_field::type_id::create("error_page");
error_page.configure(
.parent(this),
.size(9),
.lsb_pos(8),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
error_bank = dv_base_reg_field::type_id::create("error_bank");
error_bank.configure(
.parent(this),
.size(1),
.lsb_pos(17),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : flash_ctrl_reg_status
// Class: flash_ctrl_reg_scratch
class flash_ctrl_reg_scratch extends dv_base_reg;
// fields
rand dv_base_reg_field data;
`uvm_object_utils(flash_ctrl_reg_scratch)
function new(string name = "flash_ctrl_reg_scratch",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
data = dv_base_reg_field::type_id::create("data");
data.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : flash_ctrl_reg_scratch
// Class: flash_ctrl_reg_fifo_lvl
class flash_ctrl_reg_fifo_lvl extends dv_base_reg;
// fields
rand dv_base_reg_field prog;
rand dv_base_reg_field rd;
`uvm_object_utils(flash_ctrl_reg_fifo_lvl)
function new(string name = "flash_ctrl_reg_fifo_lvl",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prog = dv_base_reg_field::type_id::create("prog");
prog.configure(
.parent(this),
.size(5),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'hf),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
rd = dv_base_reg_field::type_id::create("rd");
rd.configure(
.parent(this),
.size(5),
.lsb_pos(8),
.access("RW"),
.volatile(0),
.reset(32'hf),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : flash_ctrl_reg_fifo_lvl
// Class: flash_ctrl_mem_prog_fifo
class flash_ctrl_mem_prog_fifo extends dv_base_mem;
`uvm_object_utils(flash_ctrl_mem_prog_fifo)
function new(string name = "flash_ctrl_mem_prog_fifo",
longint unsigned size = 1,
int unsigned n_bits = 32,
string access = "RW"/* TODO:"WO"*/,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, size, n_bits, access, has_coverage);
endfunction : new
endclass : flash_ctrl_mem_prog_fifo
// Class: flash_ctrl_mem_rd_fifo
class flash_ctrl_mem_rd_fifo extends dv_base_mem;
`uvm_object_utils(flash_ctrl_mem_rd_fifo)
function new(string name = "flash_ctrl_mem_rd_fifo",
longint unsigned size = 1,
int unsigned n_bits = 32,
string access = "RW"/* TODO:"RO"*/,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, size, n_bits, access, has_coverage);
endfunction : new
endclass : flash_ctrl_mem_rd_fifo
// Class: flash_ctrl_reg_block
class flash_ctrl_reg_block extends dv_base_reg_block;
// registers
rand flash_ctrl_reg_intr_state intr_state;
rand flash_ctrl_reg_intr_enable intr_enable;
rand flash_ctrl_reg_intr_test intr_test;
rand flash_ctrl_reg_control control;
rand flash_ctrl_reg_addr addr;
rand flash_ctrl_reg_region_cfg_regwen region_cfg_regwen;
rand flash_ctrl_reg_mp_region_cfg0 mp_region_cfg0;
rand flash_ctrl_reg_mp_region_cfg1 mp_region_cfg1;
rand flash_ctrl_reg_mp_region_cfg2 mp_region_cfg2;
rand flash_ctrl_reg_mp_region_cfg3 mp_region_cfg3;
rand flash_ctrl_reg_mp_region_cfg4 mp_region_cfg4;
rand flash_ctrl_reg_mp_region_cfg5 mp_region_cfg5;
rand flash_ctrl_reg_mp_region_cfg6 mp_region_cfg6;
rand flash_ctrl_reg_mp_region_cfg7 mp_region_cfg7;
rand flash_ctrl_reg_default_region default_region;
rand flash_ctrl_reg_bank_cfg_regwen bank_cfg_regwen;
rand flash_ctrl_reg_mp_bank_cfg mp_bank_cfg;
rand flash_ctrl_reg_op_status op_status;
rand flash_ctrl_reg_status status;
rand flash_ctrl_reg_scratch scratch;
rand flash_ctrl_reg_fifo_lvl fifo_lvl;
// memories
rand flash_ctrl_mem_prog_fifo prog_fifo;
rand flash_ctrl_mem_rd_fifo rd_fifo;
`uvm_object_utils(flash_ctrl_reg_block)
function new(string name = "flash_ctrl_reg_block",
int has_coverage = UVM_NO_COVERAGE);
super.new(name, has_coverage);
endfunction : new
virtual function void build(uvm_reg_addr_t base_addr);
// create default map
this.default_map = create_map(.name("default_map"),
.base_addr(base_addr),
.n_bytes(4),
.endian(UVM_LITTLE_ENDIAN));
// create registers
intr_state = flash_ctrl_reg_intr_state::type_id::create("intr_state");
intr_state.configure(.blk_parent(this));
intr_state.build();
default_map.add_reg(.rg(intr_state),
.offset(32'h0),
.rights("RW"));
intr_enable = flash_ctrl_reg_intr_enable::type_id::create("intr_enable");
intr_enable.configure(.blk_parent(this));
intr_enable.build();
default_map.add_reg(.rg(intr_enable),
.offset(32'h4),
.rights("RW"));
intr_test = flash_ctrl_reg_intr_test::type_id::create("intr_test");
intr_test.configure(.blk_parent(this));
intr_test.build();
default_map.add_reg(.rg(intr_test),
.offset(32'h8),
.rights("WO"));
control = flash_ctrl_reg_control::type_id::create("control");
control.configure(.blk_parent(this));
control.build();
default_map.add_reg(.rg(control),
.offset(32'hc),
.rights("RW"));
addr = flash_ctrl_reg_addr::type_id::create("addr");
addr.configure(.blk_parent(this));
addr.build();
default_map.add_reg(.rg(addr),
.offset(32'h10),
.rights("RW"));
region_cfg_regwen = flash_ctrl_reg_region_cfg_regwen::type_id::create("region_cfg_regwen");
region_cfg_regwen.configure(.blk_parent(this));
region_cfg_regwen.build();
default_map.add_reg(.rg(region_cfg_regwen),
.offset(32'h14),
.rights("RW"));
mp_region_cfg0 = flash_ctrl_reg_mp_region_cfg0::type_id::create("mp_region_cfg0");
mp_region_cfg0.configure(.blk_parent(this));
mp_region_cfg0.build();
default_map.add_reg(.rg(mp_region_cfg0),
.offset(32'h18),
.rights("RW"));
mp_region_cfg1 = flash_ctrl_reg_mp_region_cfg1::type_id::create("mp_region_cfg1");
mp_region_cfg1.configure(.blk_parent(this));
mp_region_cfg1.build();
default_map.add_reg(.rg(mp_region_cfg1),
.offset(32'h1c),
.rights("RW"));
mp_region_cfg2 = flash_ctrl_reg_mp_region_cfg2::type_id::create("mp_region_cfg2");
mp_region_cfg2.configure(.blk_parent(this));
mp_region_cfg2.build();
default_map.add_reg(.rg(mp_region_cfg2),
.offset(32'h20),
.rights("RW"));
mp_region_cfg3 = flash_ctrl_reg_mp_region_cfg3::type_id::create("mp_region_cfg3");
mp_region_cfg3.configure(.blk_parent(this));
mp_region_cfg3.build();
default_map.add_reg(.rg(mp_region_cfg3),
.offset(32'h24),
.rights("RW"));
mp_region_cfg4 = flash_ctrl_reg_mp_region_cfg4::type_id::create("mp_region_cfg4");
mp_region_cfg4.configure(.blk_parent(this));
mp_region_cfg4.build();
default_map.add_reg(.rg(mp_region_cfg4),
.offset(32'h28),
.rights("RW"));
mp_region_cfg5 = flash_ctrl_reg_mp_region_cfg5::type_id::create("mp_region_cfg5");
mp_region_cfg5.configure(.blk_parent(this));
mp_region_cfg5.build();
default_map.add_reg(.rg(mp_region_cfg5),
.offset(32'h2c),
.rights("RW"));
mp_region_cfg6 = flash_ctrl_reg_mp_region_cfg6::type_id::create("mp_region_cfg6");
mp_region_cfg6.configure(.blk_parent(this));
mp_region_cfg6.build();
default_map.add_reg(.rg(mp_region_cfg6),
.offset(32'h30),
.rights("RW"));
mp_region_cfg7 = flash_ctrl_reg_mp_region_cfg7::type_id::create("mp_region_cfg7");
mp_region_cfg7.configure(.blk_parent(this));
mp_region_cfg7.build();
default_map.add_reg(.rg(mp_region_cfg7),
.offset(32'h34),
.rights("RW"));
default_region = flash_ctrl_reg_default_region::type_id::create("default_region");
default_region.configure(.blk_parent(this));
default_region.build();
default_map.add_reg(.rg(default_region),
.offset(32'h38),
.rights("RW"));
bank_cfg_regwen = flash_ctrl_reg_bank_cfg_regwen::type_id::create("bank_cfg_regwen");
bank_cfg_regwen.configure(.blk_parent(this));
bank_cfg_regwen.build();
default_map.add_reg(.rg(bank_cfg_regwen),
.offset(32'h3c),
.rights("RW"));
mp_bank_cfg = flash_ctrl_reg_mp_bank_cfg::type_id::create("mp_bank_cfg");
mp_bank_cfg.configure(.blk_parent(this));
mp_bank_cfg.build();
default_map.add_reg(.rg(mp_bank_cfg),
.offset(32'h40),
.rights("RW"));
op_status = flash_ctrl_reg_op_status::type_id::create("op_status");
op_status.configure(.blk_parent(this));
op_status.build();
default_map.add_reg(.rg(op_status),
.offset(32'h44),
.rights("RW"));
status = flash_ctrl_reg_status::type_id::create("status");
status.configure(.blk_parent(this));
status.build();
default_map.add_reg(.rg(status),
.offset(32'h48),
.rights("RO"));
scratch = flash_ctrl_reg_scratch::type_id::create("scratch");
scratch.configure(.blk_parent(this));
scratch.build();
default_map.add_reg(.rg(scratch),
.offset(32'h4c),
.rights("RW"));
fifo_lvl = flash_ctrl_reg_fifo_lvl::type_id::create("fifo_lvl");
fifo_lvl.configure(.blk_parent(this));
fifo_lvl.build();
default_map.add_reg(.rg(fifo_lvl),
.offset(32'h50),
.rights("RW"));
// create memories
prog_fifo = flash_ctrl_mem_prog_fifo::type_id::create("prog_fifo");
prog_fifo.configure(.parent(this));
default_map.add_mem(.mem(prog_fifo),
.offset(32'h54),
.rights("WO"));
rd_fifo = flash_ctrl_mem_rd_fifo::type_id::create("rd_fifo");
rd_fifo.configure(.parent(this));
default_map.add_mem(.mem(rd_fifo),
.offset(32'h58),
.rights("RO"));
endfunction : build
endclass : flash_ctrl_reg_block
`endif
// Block: rv_timer
`ifndef RV_TIMER_REG_BLOCK__SV
`define RV_TIMER_REG_BLOCK__SV
// Forward declare all register/memory/block classes
typedef class rv_timer_reg_ctrl;
typedef class rv_timer_reg_cfg0;
typedef class rv_timer_reg_timer_v_lower0;
typedef class rv_timer_reg_timer_v_upper0;
typedef class rv_timer_reg_compare_lower0_0;
typedef class rv_timer_reg_compare_upper0_0;
typedef class rv_timer_reg_intr_enable0;
typedef class rv_timer_reg_intr_state0;
typedef class rv_timer_reg_intr_test0;
typedef class rv_timer_reg_block;
// Class: rv_timer_reg_ctrl
class rv_timer_reg_ctrl extends dv_base_reg;
// fields
rand dv_base_reg_field active0;
`uvm_object_utils(rv_timer_reg_ctrl)
function new(string name = "rv_timer_reg_ctrl",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
active0 = dv_base_reg_field::type_id::create("active0");
active0.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_timer_reg_ctrl
// Class: rv_timer_reg_cfg0
class rv_timer_reg_cfg0 extends dv_base_reg;
// fields
rand dv_base_reg_field prescale;
rand dv_base_reg_field step;
`uvm_object_utils(rv_timer_reg_cfg0)
function new(string name = "rv_timer_reg_cfg0",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prescale = dv_base_reg_field::type_id::create("prescale");
prescale.configure(
.parent(this),
.size(12),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
step = dv_base_reg_field::type_id::create("step");
step.configure(
.parent(this),
.size(8),
.lsb_pos(16),
.access("RW"),
.volatile(0),
.reset(32'h1),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_timer_reg_cfg0
// Class: rv_timer_reg_timer_v_lower0
class rv_timer_reg_timer_v_lower0 extends dv_base_reg;
// fields
rand dv_base_reg_field v;
`uvm_object_utils(rv_timer_reg_timer_v_lower0)
function new(string name = "rv_timer_reg_timer_v_lower0",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
v = dv_base_reg_field::type_id::create("v");
v.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_timer_reg_timer_v_lower0
// Class: rv_timer_reg_timer_v_upper0
class rv_timer_reg_timer_v_upper0 extends dv_base_reg;
// fields
rand dv_base_reg_field v;
`uvm_object_utils(rv_timer_reg_timer_v_upper0)
function new(string name = "rv_timer_reg_timer_v_upper0",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
v = dv_base_reg_field::type_id::create("v");
v.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_timer_reg_timer_v_upper0
// Class: rv_timer_reg_compare_lower0_0
class rv_timer_reg_compare_lower0_0 extends dv_base_reg;
// fields
rand dv_base_reg_field v;
`uvm_object_utils(rv_timer_reg_compare_lower0_0)
function new(string name = "rv_timer_reg_compare_lower0_0",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
v = dv_base_reg_field::type_id::create("v");
v.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'hffffffff),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_timer_reg_compare_lower0_0
// Class: rv_timer_reg_compare_upper0_0
class rv_timer_reg_compare_upper0_0 extends dv_base_reg;
// fields
rand dv_base_reg_field v;
`uvm_object_utils(rv_timer_reg_compare_upper0_0)
function new(string name = "rv_timer_reg_compare_upper0_0",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
v = dv_base_reg_field::type_id::create("v");
v.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'hffffffff),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_timer_reg_compare_upper0_0
// Class: rv_timer_reg_intr_enable0
class rv_timer_reg_intr_enable0 extends dv_base_reg;
// fields
rand dv_base_reg_field ie0;
`uvm_object_utils(rv_timer_reg_intr_enable0)
function new(string name = "rv_timer_reg_intr_enable0",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
ie0 = dv_base_reg_field::type_id::create("ie0");
ie0.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_timer_reg_intr_enable0
// Class: rv_timer_reg_intr_state0
class rv_timer_reg_intr_state0 extends dv_base_reg;
// fields
rand dv_base_reg_field is0;
`uvm_object_utils(rv_timer_reg_intr_state0)
function new(string name = "rv_timer_reg_intr_state0",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
is0 = dv_base_reg_field::type_id::create("is0");
is0.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("W1C"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_timer_reg_intr_state0
// Class: rv_timer_reg_intr_test0
class rv_timer_reg_intr_test0 extends dv_base_reg;
// fields
rand dv_base_reg_field t0;
`uvm_object_utils(rv_timer_reg_intr_test0)
function new(string name = "rv_timer_reg_intr_test0",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
t0 = dv_base_reg_field::type_id::create("t0");
t0.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("WO"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_timer_reg_intr_test0
// Class: rv_timer_reg_block
class rv_timer_reg_block extends dv_base_reg_block;
// registers
rand rv_timer_reg_ctrl ctrl;
rand rv_timer_reg_cfg0 cfg0;
rand rv_timer_reg_timer_v_lower0 timer_v_lower0;
rand rv_timer_reg_timer_v_upper0 timer_v_upper0;
rand rv_timer_reg_compare_lower0_0 compare_lower0_0;
rand rv_timer_reg_compare_upper0_0 compare_upper0_0;
rand rv_timer_reg_intr_enable0 intr_enable0;
rand rv_timer_reg_intr_state0 intr_state0;
rand rv_timer_reg_intr_test0 intr_test0;
`uvm_object_utils(rv_timer_reg_block)
function new(string name = "rv_timer_reg_block",
int has_coverage = UVM_NO_COVERAGE);
super.new(name, has_coverage);
endfunction : new
virtual function void build(uvm_reg_addr_t base_addr);
// create default map
this.default_map = create_map(.name("default_map"),
.base_addr(base_addr),
.n_bytes(4),
.endian(UVM_LITTLE_ENDIAN));
// create registers
ctrl = rv_timer_reg_ctrl::type_id::create("ctrl");
ctrl.configure(.blk_parent(this));
ctrl.build();
default_map.add_reg(.rg(ctrl),
.offset(32'h0),
.rights("RW"));
cfg0 = rv_timer_reg_cfg0::type_id::create("cfg0");
cfg0.configure(.blk_parent(this));
cfg0.build();
default_map.add_reg(.rg(cfg0),
.offset(32'h100),
.rights("RW"));
timer_v_lower0 = rv_timer_reg_timer_v_lower0::type_id::create("timer_v_lower0");
timer_v_lower0.configure(.blk_parent(this));
timer_v_lower0.build();
default_map.add_reg(.rg(timer_v_lower0),
.offset(32'h104),
.rights("RW"));
timer_v_upper0 = rv_timer_reg_timer_v_upper0::type_id::create("timer_v_upper0");
timer_v_upper0.configure(.blk_parent(this));
timer_v_upper0.build();
default_map.add_reg(.rg(timer_v_upper0),
.offset(32'h108),
.rights("RW"));
compare_lower0_0 = rv_timer_reg_compare_lower0_0::type_id::create("compare_lower0_0");
compare_lower0_0.configure(.blk_parent(this));
compare_lower0_0.build();
default_map.add_reg(.rg(compare_lower0_0),
.offset(32'h10c),
.rights("RW"));
compare_upper0_0 = rv_timer_reg_compare_upper0_0::type_id::create("compare_upper0_0");
compare_upper0_0.configure(.blk_parent(this));
compare_upper0_0.build();
default_map.add_reg(.rg(compare_upper0_0),
.offset(32'h110),
.rights("RW"));
intr_enable0 = rv_timer_reg_intr_enable0::type_id::create("intr_enable0");
intr_enable0.configure(.blk_parent(this));
intr_enable0.build();
default_map.add_reg(.rg(intr_enable0),
.offset(32'h114),
.rights("RW"));
intr_state0 = rv_timer_reg_intr_state0::type_id::create("intr_state0");
intr_state0.configure(.blk_parent(this));
intr_state0.build();
default_map.add_reg(.rg(intr_state0),
.offset(32'h118),
.rights("RW"));
intr_test0 = rv_timer_reg_intr_test0::type_id::create("intr_test0");
intr_test0.configure(.blk_parent(this));
intr_test0.build();
default_map.add_reg(.rg(intr_test0),
.offset(32'h11c),
.rights("WO"));
endfunction : build
endclass : rv_timer_reg_block
`endif
// Block: rv_plic
`ifndef RV_PLIC_REG_BLOCK__SV
`define RV_PLIC_REG_BLOCK__SV
// Forward declare all register/memory/block classes
typedef class rv_plic_reg_ip0;
typedef class rv_plic_reg_ip1;
typedef class rv_plic_reg_le0;
typedef class rv_plic_reg_le1;
typedef class rv_plic_reg_prio0;
typedef class rv_plic_reg_prio1;
typedef class rv_plic_reg_prio2;
typedef class rv_plic_reg_prio3;
typedef class rv_plic_reg_prio4;
typedef class rv_plic_reg_prio5;
typedef class rv_plic_reg_prio6;
typedef class rv_plic_reg_prio7;
typedef class rv_plic_reg_prio8;
typedef class rv_plic_reg_prio9;
typedef class rv_plic_reg_prio10;
typedef class rv_plic_reg_prio11;
typedef class rv_plic_reg_prio12;
typedef class rv_plic_reg_prio13;
typedef class rv_plic_reg_prio14;
typedef class rv_plic_reg_prio15;
typedef class rv_plic_reg_prio16;
typedef class rv_plic_reg_prio17;
typedef class rv_plic_reg_prio18;
typedef class rv_plic_reg_prio19;
typedef class rv_plic_reg_prio20;
typedef class rv_plic_reg_prio21;
typedef class rv_plic_reg_prio22;
typedef class rv_plic_reg_prio23;
typedef class rv_plic_reg_prio24;
typedef class rv_plic_reg_prio25;
typedef class rv_plic_reg_prio26;
typedef class rv_plic_reg_prio27;
typedef class rv_plic_reg_prio28;
typedef class rv_plic_reg_prio29;
typedef class rv_plic_reg_prio30;
typedef class rv_plic_reg_prio31;
typedef class rv_plic_reg_prio32;
typedef class rv_plic_reg_prio33;
typedef class rv_plic_reg_prio34;
typedef class rv_plic_reg_prio35;
typedef class rv_plic_reg_prio36;
typedef class rv_plic_reg_prio37;
typedef class rv_plic_reg_prio38;
typedef class rv_plic_reg_prio39;
typedef class rv_plic_reg_prio40;
typedef class rv_plic_reg_prio41;
typedef class rv_plic_reg_prio42;
typedef class rv_plic_reg_prio43;
typedef class rv_plic_reg_prio44;
typedef class rv_plic_reg_prio45;
typedef class rv_plic_reg_prio46;
typedef class rv_plic_reg_prio47;
typedef class rv_plic_reg_prio48;
typedef class rv_plic_reg_prio49;
typedef class rv_plic_reg_prio50;
typedef class rv_plic_reg_prio51;
typedef class rv_plic_reg_prio52;
typedef class rv_plic_reg_prio53;
typedef class rv_plic_reg_prio54;
typedef class rv_plic_reg_ie00;
typedef class rv_plic_reg_ie01;
typedef class rv_plic_reg_threshold0;
typedef class rv_plic_reg_cc0;
typedef class rv_plic_reg_msip0;
typedef class rv_plic_reg_block;
// Class: rv_plic_reg_ip0
class rv_plic_reg_ip0 extends dv_base_reg;
// fields
rand dv_base_reg_field p0;
rand dv_base_reg_field p1;
rand dv_base_reg_field p2;
rand dv_base_reg_field p3;
rand dv_base_reg_field p4;
rand dv_base_reg_field p5;
rand dv_base_reg_field p6;
rand dv_base_reg_field p7;
rand dv_base_reg_field p8;
rand dv_base_reg_field p9;
rand dv_base_reg_field p10;
rand dv_base_reg_field p11;
rand dv_base_reg_field p12;
rand dv_base_reg_field p13;
rand dv_base_reg_field p14;
rand dv_base_reg_field p15;
rand dv_base_reg_field p16;
rand dv_base_reg_field p17;
rand dv_base_reg_field p18;
rand dv_base_reg_field p19;
rand dv_base_reg_field p20;
rand dv_base_reg_field p21;
rand dv_base_reg_field p22;
rand dv_base_reg_field p23;
rand dv_base_reg_field p24;
rand dv_base_reg_field p25;
rand dv_base_reg_field p26;
rand dv_base_reg_field p27;
rand dv_base_reg_field p28;
rand dv_base_reg_field p29;
rand dv_base_reg_field p30;
rand dv_base_reg_field p31;
`uvm_object_utils(rv_plic_reg_ip0)
function new(string name = "rv_plic_reg_ip0",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
p0 = dv_base_reg_field::type_id::create("p0");
p0.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p1 = dv_base_reg_field::type_id::create("p1");
p1.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p2 = dv_base_reg_field::type_id::create("p2");
p2.configure(
.parent(this),
.size(1),
.lsb_pos(2),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p3 = dv_base_reg_field::type_id::create("p3");
p3.configure(
.parent(this),
.size(1),
.lsb_pos(3),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p4 = dv_base_reg_field::type_id::create("p4");
p4.configure(
.parent(this),
.size(1),
.lsb_pos(4),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p5 = dv_base_reg_field::type_id::create("p5");
p5.configure(
.parent(this),
.size(1),
.lsb_pos(5),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p6 = dv_base_reg_field::type_id::create("p6");
p6.configure(
.parent(this),
.size(1),
.lsb_pos(6),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p7 = dv_base_reg_field::type_id::create("p7");
p7.configure(
.parent(this),
.size(1),
.lsb_pos(7),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p8 = dv_base_reg_field::type_id::create("p8");
p8.configure(
.parent(this),
.size(1),
.lsb_pos(8),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p9 = dv_base_reg_field::type_id::create("p9");
p9.configure(
.parent(this),
.size(1),
.lsb_pos(9),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p10 = dv_base_reg_field::type_id::create("p10");
p10.configure(
.parent(this),
.size(1),
.lsb_pos(10),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p11 = dv_base_reg_field::type_id::create("p11");
p11.configure(
.parent(this),
.size(1),
.lsb_pos(11),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p12 = dv_base_reg_field::type_id::create("p12");
p12.configure(
.parent(this),
.size(1),
.lsb_pos(12),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p13 = dv_base_reg_field::type_id::create("p13");
p13.configure(
.parent(this),
.size(1),
.lsb_pos(13),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p14 = dv_base_reg_field::type_id::create("p14");
p14.configure(
.parent(this),
.size(1),
.lsb_pos(14),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p15 = dv_base_reg_field::type_id::create("p15");
p15.configure(
.parent(this),
.size(1),
.lsb_pos(15),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p16 = dv_base_reg_field::type_id::create("p16");
p16.configure(
.parent(this),
.size(1),
.lsb_pos(16),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p17 = dv_base_reg_field::type_id::create("p17");
p17.configure(
.parent(this),
.size(1),
.lsb_pos(17),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p18 = dv_base_reg_field::type_id::create("p18");
p18.configure(
.parent(this),
.size(1),
.lsb_pos(18),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p19 = dv_base_reg_field::type_id::create("p19");
p19.configure(
.parent(this),
.size(1),
.lsb_pos(19),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p20 = dv_base_reg_field::type_id::create("p20");
p20.configure(
.parent(this),
.size(1),
.lsb_pos(20),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p21 = dv_base_reg_field::type_id::create("p21");
p21.configure(
.parent(this),
.size(1),
.lsb_pos(21),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p22 = dv_base_reg_field::type_id::create("p22");
p22.configure(
.parent(this),
.size(1),
.lsb_pos(22),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p23 = dv_base_reg_field::type_id::create("p23");
p23.configure(
.parent(this),
.size(1),
.lsb_pos(23),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p24 = dv_base_reg_field::type_id::create("p24");
p24.configure(
.parent(this),
.size(1),
.lsb_pos(24),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p25 = dv_base_reg_field::type_id::create("p25");
p25.configure(
.parent(this),
.size(1),
.lsb_pos(25),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p26 = dv_base_reg_field::type_id::create("p26");
p26.configure(
.parent(this),
.size(1),
.lsb_pos(26),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p27 = dv_base_reg_field::type_id::create("p27");
p27.configure(
.parent(this),
.size(1),
.lsb_pos(27),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p28 = dv_base_reg_field::type_id::create("p28");
p28.configure(
.parent(this),
.size(1),
.lsb_pos(28),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p29 = dv_base_reg_field::type_id::create("p29");
p29.configure(
.parent(this),
.size(1),
.lsb_pos(29),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p30 = dv_base_reg_field::type_id::create("p30");
p30.configure(
.parent(this),
.size(1),
.lsb_pos(30),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p31 = dv_base_reg_field::type_id::create("p31");
p31.configure(
.parent(this),
.size(1),
.lsb_pos(31),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_ip0
// Class: rv_plic_reg_ip1
class rv_plic_reg_ip1 extends dv_base_reg;
// fields
rand dv_base_reg_field p32;
rand dv_base_reg_field p33;
rand dv_base_reg_field p34;
rand dv_base_reg_field p35;
rand dv_base_reg_field p36;
rand dv_base_reg_field p37;
rand dv_base_reg_field p38;
rand dv_base_reg_field p39;
rand dv_base_reg_field p40;
rand dv_base_reg_field p41;
rand dv_base_reg_field p42;
rand dv_base_reg_field p43;
rand dv_base_reg_field p44;
rand dv_base_reg_field p45;
rand dv_base_reg_field p46;
rand dv_base_reg_field p47;
rand dv_base_reg_field p48;
rand dv_base_reg_field p49;
rand dv_base_reg_field p50;
rand dv_base_reg_field p51;
rand dv_base_reg_field p52;
rand dv_base_reg_field p53;
rand dv_base_reg_field p54;
`uvm_object_utils(rv_plic_reg_ip1)
function new(string name = "rv_plic_reg_ip1",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
p32 = dv_base_reg_field::type_id::create("p32");
p32.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p33 = dv_base_reg_field::type_id::create("p33");
p33.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p34 = dv_base_reg_field::type_id::create("p34");
p34.configure(
.parent(this),
.size(1),
.lsb_pos(2),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p35 = dv_base_reg_field::type_id::create("p35");
p35.configure(
.parent(this),
.size(1),
.lsb_pos(3),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p36 = dv_base_reg_field::type_id::create("p36");
p36.configure(
.parent(this),
.size(1),
.lsb_pos(4),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p37 = dv_base_reg_field::type_id::create("p37");
p37.configure(
.parent(this),
.size(1),
.lsb_pos(5),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p38 = dv_base_reg_field::type_id::create("p38");
p38.configure(
.parent(this),
.size(1),
.lsb_pos(6),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p39 = dv_base_reg_field::type_id::create("p39");
p39.configure(
.parent(this),
.size(1),
.lsb_pos(7),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p40 = dv_base_reg_field::type_id::create("p40");
p40.configure(
.parent(this),
.size(1),
.lsb_pos(8),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p41 = dv_base_reg_field::type_id::create("p41");
p41.configure(
.parent(this),
.size(1),
.lsb_pos(9),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p42 = dv_base_reg_field::type_id::create("p42");
p42.configure(
.parent(this),
.size(1),
.lsb_pos(10),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p43 = dv_base_reg_field::type_id::create("p43");
p43.configure(
.parent(this),
.size(1),
.lsb_pos(11),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p44 = dv_base_reg_field::type_id::create("p44");
p44.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p45 = dv_base_reg_field::type_id::create("p45");
p45.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p46 = dv_base_reg_field::type_id::create("p46");
p46.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p47 = dv_base_reg_field::type_id::create("p47");
p47.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p48 = dv_base_reg_field::type_id::create("p48");
p48.configure(
.parent(this),
.size(1),
.lsb_pos(16),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p49 = dv_base_reg_field::type_id::create("p49");
p49.configure(
.parent(this),
.size(3),
.lsb_pos(1),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p50 = dv_base_reg_field::type_id::create("p50");
p50.configure(
.parent(this),
.size(1),
.lsb_pos(18),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p51 = dv_base_reg_field::type_id::create("p51");
p51.configure(
.parent(this),
.size(1),
.lsb_pos(19),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p52 = dv_base_reg_field::type_id::create("p52");
p52.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p53 = dv_base_reg_field::type_id::create("p53");
p53.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
p54 = dv_base_reg_field::type_id::create("p54");
p54.configure(
.parent(this),
.size(1),
.lsb_pos(2),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_ip1
// Class: rv_plic_reg_le0
class rv_plic_reg_le0 extends dv_base_reg;
// fields
rand dv_base_reg_field le0;
rand dv_base_reg_field le1;
rand dv_base_reg_field le2;
rand dv_base_reg_field le3;
rand dv_base_reg_field le4;
rand dv_base_reg_field le5;
rand dv_base_reg_field le6;
rand dv_base_reg_field le7;
rand dv_base_reg_field le8;
rand dv_base_reg_field le9;
rand dv_base_reg_field le10;
rand dv_base_reg_field le11;
rand dv_base_reg_field le12;
rand dv_base_reg_field le13;
rand dv_base_reg_field le14;
rand dv_base_reg_field le15;
rand dv_base_reg_field le16;
rand dv_base_reg_field le17;
rand dv_base_reg_field le18;
rand dv_base_reg_field le19;
rand dv_base_reg_field le20;
rand dv_base_reg_field le21;
rand dv_base_reg_field le22;
rand dv_base_reg_field le23;
rand dv_base_reg_field le24;
rand dv_base_reg_field le25;
rand dv_base_reg_field le26;
rand dv_base_reg_field le27;
rand dv_base_reg_field le28;
rand dv_base_reg_field le29;
rand dv_base_reg_field le30;
rand dv_base_reg_field le31;
`uvm_object_utils(rv_plic_reg_le0)
function new(string name = "rv_plic_reg_le0",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
le0 = dv_base_reg_field::type_id::create("le0");
le0.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le1 = dv_base_reg_field::type_id::create("le1");
le1.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le2 = dv_base_reg_field::type_id::create("le2");
le2.configure(
.parent(this),
.size(1),
.lsb_pos(2),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le3 = dv_base_reg_field::type_id::create("le3");
le3.configure(
.parent(this),
.size(1),
.lsb_pos(3),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le4 = dv_base_reg_field::type_id::create("le4");
le4.configure(
.parent(this),
.size(1),
.lsb_pos(4),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le5 = dv_base_reg_field::type_id::create("le5");
le5.configure(
.parent(this),
.size(1),
.lsb_pos(5),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le6 = dv_base_reg_field::type_id::create("le6");
le6.configure(
.parent(this),
.size(1),
.lsb_pos(6),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le7 = dv_base_reg_field::type_id::create("le7");
le7.configure(
.parent(this),
.size(1),
.lsb_pos(7),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le8 = dv_base_reg_field::type_id::create("le8");
le8.configure(
.parent(this),
.size(1),
.lsb_pos(8),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le9 = dv_base_reg_field::type_id::create("le9");
le9.configure(
.parent(this),
.size(1),
.lsb_pos(9),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le10 = dv_base_reg_field::type_id::create("le10");
le10.configure(
.parent(this),
.size(1),
.lsb_pos(10),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le11 = dv_base_reg_field::type_id::create("le11");
le11.configure(
.parent(this),
.size(1),
.lsb_pos(11),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le12 = dv_base_reg_field::type_id::create("le12");
le12.configure(
.parent(this),
.size(1),
.lsb_pos(12),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le13 = dv_base_reg_field::type_id::create("le13");
le13.configure(
.parent(this),
.size(1),
.lsb_pos(13),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le14 = dv_base_reg_field::type_id::create("le14");
le14.configure(
.parent(this),
.size(1),
.lsb_pos(14),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le15 = dv_base_reg_field::type_id::create("le15");
le15.configure(
.parent(this),
.size(1),
.lsb_pos(15),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le16 = dv_base_reg_field::type_id::create("le16");
le16.configure(
.parent(this),
.size(1),
.lsb_pos(16),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le17 = dv_base_reg_field::type_id::create("le17");
le17.configure(
.parent(this),
.size(1),
.lsb_pos(17),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le18 = dv_base_reg_field::type_id::create("le18");
le18.configure(
.parent(this),
.size(1),
.lsb_pos(18),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le19 = dv_base_reg_field::type_id::create("le19");
le19.configure(
.parent(this),
.size(1),
.lsb_pos(19),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le20 = dv_base_reg_field::type_id::create("le20");
le20.configure(
.parent(this),
.size(1),
.lsb_pos(20),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le21 = dv_base_reg_field::type_id::create("le21");
le21.configure(
.parent(this),
.size(1),
.lsb_pos(21),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le22 = dv_base_reg_field::type_id::create("le22");
le22.configure(
.parent(this),
.size(1),
.lsb_pos(22),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le23 = dv_base_reg_field::type_id::create("le23");
le23.configure(
.parent(this),
.size(1),
.lsb_pos(23),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le24 = dv_base_reg_field::type_id::create("le24");
le24.configure(
.parent(this),
.size(1),
.lsb_pos(24),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le25 = dv_base_reg_field::type_id::create("le25");
le25.configure(
.parent(this),
.size(1),
.lsb_pos(25),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le26 = dv_base_reg_field::type_id::create("le26");
le26.configure(
.parent(this),
.size(1),
.lsb_pos(26),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le27 = dv_base_reg_field::type_id::create("le27");
le27.configure(
.parent(this),
.size(1),
.lsb_pos(27),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le28 = dv_base_reg_field::type_id::create("le28");
le28.configure(
.parent(this),
.size(1),
.lsb_pos(28),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le29 = dv_base_reg_field::type_id::create("le29");
le29.configure(
.parent(this),
.size(1),
.lsb_pos(29),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le30 = dv_base_reg_field::type_id::create("le30");
le30.configure(
.parent(this),
.size(1),
.lsb_pos(30),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le31 = dv_base_reg_field::type_id::create("le31");
le31.configure(
.parent(this),
.size(1),
.lsb_pos(31),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_le0
// Class: rv_plic_reg_le1
class rv_plic_reg_le1 extends dv_base_reg;
// fields
rand dv_base_reg_field le32;
rand dv_base_reg_field le33;
rand dv_base_reg_field le34;
rand dv_base_reg_field le35;
rand dv_base_reg_field le36;
rand dv_base_reg_field le37;
rand dv_base_reg_field le38;
rand dv_base_reg_field le39;
rand dv_base_reg_field le40;
rand dv_base_reg_field le41;
rand dv_base_reg_field le42;
rand dv_base_reg_field le43;
rand dv_base_reg_field le44;
rand dv_base_reg_field le45;
rand dv_base_reg_field le46;
rand dv_base_reg_field le47;
rand dv_base_reg_field le48;
rand dv_base_reg_field le49;
rand dv_base_reg_field le50;
rand dv_base_reg_field le51;
rand dv_base_reg_field le52;
rand dv_base_reg_field le53;
rand dv_base_reg_field le54;
`uvm_object_utils(rv_plic_reg_le1)
function new(string name = "rv_plic_reg_le1",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
le32 = dv_base_reg_field::type_id::create("le32");
le32.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le33 = dv_base_reg_field::type_id::create("le33");
le33.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le34 = dv_base_reg_field::type_id::create("le34");
le34.configure(
.parent(this),
.size(1),
.lsb_pos(2),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le35 = dv_base_reg_field::type_id::create("le35");
le35.configure(
.parent(this),
.size(1),
.lsb_pos(3),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le36 = dv_base_reg_field::type_id::create("le36");
le36.configure(
.parent(this),
.size(1),
.lsb_pos(4),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le37 = dv_base_reg_field::type_id::create("le37");
le37.configure(
.parent(this),
.size(1),
.lsb_pos(5),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le38 = dv_base_reg_field::type_id::create("le38");
le38.configure(
.parent(this),
.size(1),
.lsb_pos(6),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le39 = dv_base_reg_field::type_id::create("le39");
le39.configure(
.parent(this),
.size(1),
.lsb_pos(7),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le40 = dv_base_reg_field::type_id::create("le40");
le40.configure(
.parent(this),
.size(1),
.lsb_pos(8),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le41 = dv_base_reg_field::type_id::create("le41");
le41.configure(
.parent(this),
.size(1),
.lsb_pos(9),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le42 = dv_base_reg_field::type_id::create("le42");
le42.configure(
.parent(this),
.size(1),
.lsb_pos(10),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le43 = dv_base_reg_field::type_id::create("le43");
le43.configure(
.parent(this),
.size(1),
.lsb_pos(11),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le44 = dv_base_reg_field::type_id::create("le44");
le44.configure(
.parent(this),
.size(1),
.lsb_pos(12),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le45 = dv_base_reg_field::type_id::create("le45");
le45.configure(
.parent(this),
.size(1),
.lsb_pos(13),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le46 = dv_base_reg_field::type_id::create("le46");
le46.configure(
.parent(this),
.size(1),
.lsb_pos(14),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le47 = dv_base_reg_field::type_id::create("le47");
le47.configure(
.parent(this),
.size(1),
.lsb_pos(15),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le48 = dv_base_reg_field::type_id::create("le48");
le48.configure(
.parent(this),
.size(1),
.lsb_pos(16),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le49 = dv_base_reg_field::type_id::create("le49");
le49.configure(
.parent(this),
.size(1),
.lsb_pos(17),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le50 = dv_base_reg_field::type_id::create("le50");
le50.configure(
.parent(this),
.size(1),
.lsb_pos(18),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le51 = dv_base_reg_field::type_id::create("le51");
le51.configure(
.parent(this),
.size(1),
.lsb_pos(19),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le52 = dv_base_reg_field::type_id::create("le52");
le52.configure(
.parent(this),
.size(1),
.lsb_pos(20),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le53 = dv_base_reg_field::type_id::create("le53");
le53.configure(
.parent(this),
.size(1),
.lsb_pos(21),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le54 = dv_base_reg_field::type_id::create("le54");
le54.configure(
.parent(this),
.size(1),
.lsb_pos(22),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_le1
// Class: rv_plic_reg_prio0
class rv_plic_reg_prio0 extends dv_base_reg;
// fields
rand dv_base_reg_field prio0;
`uvm_object_utils(rv_plic_reg_prio0)
function new(string name = "rv_plic_reg_prio0",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio0 = dv_base_reg_field::type_id::create("prio0");
prio0.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio0
// Class: rv_plic_reg_prio1
class rv_plic_reg_prio1 extends dv_base_reg;
// fields
rand dv_base_reg_field prio1;
`uvm_object_utils(rv_plic_reg_prio1)
function new(string name = "rv_plic_reg_prio1",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio1 = dv_base_reg_field::type_id::create("prio1");
prio1.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio1
// Class: rv_plic_reg_prio2
class rv_plic_reg_prio2 extends dv_base_reg;
// fields
rand dv_base_reg_field prio2;
`uvm_object_utils(rv_plic_reg_prio2)
function new(string name = "rv_plic_reg_prio2",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio2 = dv_base_reg_field::type_id::create("prio2");
prio2.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio2
// Class: rv_plic_reg_prio3
class rv_plic_reg_prio3 extends dv_base_reg;
// fields
rand dv_base_reg_field prio3;
`uvm_object_utils(rv_plic_reg_prio3)
function new(string name = "rv_plic_reg_prio3",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio3 = dv_base_reg_field::type_id::create("prio3");
prio3.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio3
// Class: rv_plic_reg_prio4
class rv_plic_reg_prio4 extends dv_base_reg;
// fields
rand dv_base_reg_field prio4;
`uvm_object_utils(rv_plic_reg_prio4)
function new(string name = "rv_plic_reg_prio4",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio4 = dv_base_reg_field::type_id::create("prio4");
prio4.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio4
// Class: rv_plic_reg_prio5
class rv_plic_reg_prio5 extends dv_base_reg;
// fields
rand dv_base_reg_field prio5;
`uvm_object_utils(rv_plic_reg_prio5)
function new(string name = "rv_plic_reg_prio5",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio5 = dv_base_reg_field::type_id::create("prio5");
prio5.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio5
// Class: rv_plic_reg_prio6
class rv_plic_reg_prio6 extends dv_base_reg;
// fields
rand dv_base_reg_field prio6;
`uvm_object_utils(rv_plic_reg_prio6)
function new(string name = "rv_plic_reg_prio6",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio6 = dv_base_reg_field::type_id::create("prio6");
prio6.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio6
// Class: rv_plic_reg_prio7
class rv_plic_reg_prio7 extends dv_base_reg;
// fields
rand dv_base_reg_field prio7;
`uvm_object_utils(rv_plic_reg_prio7)
function new(string name = "rv_plic_reg_prio7",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio7 = dv_base_reg_field::type_id::create("prio7");
prio7.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio7
// Class: rv_plic_reg_prio8
class rv_plic_reg_prio8 extends dv_base_reg;
// fields
rand dv_base_reg_field prio8;
`uvm_object_utils(rv_plic_reg_prio8)
function new(string name = "rv_plic_reg_prio8",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio8 = dv_base_reg_field::type_id::create("prio8");
prio8.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio8
// Class: rv_plic_reg_prio9
class rv_plic_reg_prio9 extends dv_base_reg;
// fields
rand dv_base_reg_field prio9;
`uvm_object_utils(rv_plic_reg_prio9)
function new(string name = "rv_plic_reg_prio9",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio9 = dv_base_reg_field::type_id::create("prio9");
prio9.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio9
// Class: rv_plic_reg_prio10
class rv_plic_reg_prio10 extends dv_base_reg;
// fields
rand dv_base_reg_field prio10;
`uvm_object_utils(rv_plic_reg_prio10)
function new(string name = "rv_plic_reg_prio10",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio10 = dv_base_reg_field::type_id::create("prio10");
prio10.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio10
// Class: rv_plic_reg_prio11
class rv_plic_reg_prio11 extends dv_base_reg;
// fields
rand dv_base_reg_field prio11;
`uvm_object_utils(rv_plic_reg_prio11)
function new(string name = "rv_plic_reg_prio11",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio11 = dv_base_reg_field::type_id::create("prio11");
prio11.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio11
// Class: rv_plic_reg_prio12
class rv_plic_reg_prio12 extends dv_base_reg;
// fields
rand dv_base_reg_field prio12;
`uvm_object_utils(rv_plic_reg_prio12)
function new(string name = "rv_plic_reg_prio12",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio12 = dv_base_reg_field::type_id::create("prio12");
prio12.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio12
// Class: rv_plic_reg_prio13
class rv_plic_reg_prio13 extends dv_base_reg;
// fields
rand dv_base_reg_field prio13;
`uvm_object_utils(rv_plic_reg_prio13)
function new(string name = "rv_plic_reg_prio13",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio13 = dv_base_reg_field::type_id::create("prio13");
prio13.configure(
.parent(this),
.size(1),
.lsb_pos(23),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio13
// Class: rv_plic_reg_prio14
class rv_plic_reg_prio14 extends dv_base_reg;
// fields
rand dv_base_reg_field prio14;
`uvm_object_utils(rv_plic_reg_prio14)
function new(string name = "rv_plic_reg_prio14",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio14 = dv_base_reg_field::type_id::create("prio14");
prio14.configure(
.parent(this),
.size(1),
.lsb_pos(24),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio14
// Class: rv_plic_reg_prio15
class rv_plic_reg_prio15 extends dv_base_reg;
// fields
rand dv_base_reg_field prio15;
`uvm_object_utils(rv_plic_reg_prio15)
function new(string name = "rv_plic_reg_prio15",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio15 = dv_base_reg_field::type_id::create("prio15");
prio15.configure(
.parent(this),
.size(1),
.lsb_pos(25),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio15
// Class: rv_plic_reg_prio16
class rv_plic_reg_prio16 extends dv_base_reg;
// fields
rand dv_base_reg_field prio16;
`uvm_object_utils(rv_plic_reg_prio16)
function new(string name = "rv_plic_reg_prio16",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio16 = dv_base_reg_field::type_id::create("prio16");
prio16.configure(
.parent(this),
.size(1),
.lsb_pos(26),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio16
// Class: rv_plic_reg_prio17
class rv_plic_reg_prio17 extends dv_base_reg;
// fields
rand dv_base_reg_field prio17;
`uvm_object_utils(rv_plic_reg_prio17)
function new(string name = "rv_plic_reg_prio17",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio17 = dv_base_reg_field::type_id::create("prio17");
prio17.configure(
.parent(this),
.size(1),
.lsb_pos(27),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio17
// Class: rv_plic_reg_prio18
class rv_plic_reg_prio18 extends dv_base_reg;
// fields
rand dv_base_reg_field prio18;
`uvm_object_utils(rv_plic_reg_prio18)
function new(string name = "rv_plic_reg_prio18",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio18 = dv_base_reg_field::type_id::create("prio18");
prio18.configure(
.parent(this),
.size(1),
.lsb_pos(28),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio18
// Class: rv_plic_reg_prio19
class rv_plic_reg_prio19 extends dv_base_reg;
// fields
rand dv_base_reg_field prio19;
`uvm_object_utils(rv_plic_reg_prio19)
function new(string name = "rv_plic_reg_prio19",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio19 = dv_base_reg_field::type_id::create("prio19");
prio19.configure(
.parent(this),
.size(1),
.lsb_pos(29),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio19
// Class: rv_plic_reg_prio20
class rv_plic_reg_prio20 extends dv_base_reg;
// fields
rand dv_base_reg_field prio20;
`uvm_object_utils(rv_plic_reg_prio20)
function new(string name = "rv_plic_reg_prio20",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio20 = dv_base_reg_field::type_id::create("prio20");
prio20.configure(
.parent(this),
.size(1),
.lsb_pos(30),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio20
// Class: rv_plic_reg_prio21
class rv_plic_reg_prio21 extends dv_base_reg;
// fields
rand dv_base_reg_field prio21;
`uvm_object_utils(rv_plic_reg_prio21)
function new(string name = "rv_plic_reg_prio21",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio21 = dv_base_reg_field::type_id::create("prio21");
prio21.configure(
.parent(this),
.size(1),
.lsb_pos(31),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio21
// Class: rv_plic_reg_prio22
class rv_plic_reg_prio22 extends dv_base_reg;
// fields
rand dv_base_reg_field prio22;
`uvm_object_utils(rv_plic_reg_prio22)
function new(string name = "rv_plic_reg_prio22",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio22 = dv_base_reg_field::type_id::create("prio22");
prio22.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio22
// Class: rv_plic_reg_prio23
class rv_plic_reg_prio23 extends dv_base_reg;
// fields
rand dv_base_reg_field prio23;
`uvm_object_utils(rv_plic_reg_prio23)
function new(string name = "rv_plic_reg_prio23",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio23 = dv_base_reg_field::type_id::create("prio23");
prio23.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio23
// Class: rv_plic_reg_prio24
class rv_plic_reg_prio24 extends dv_base_reg;
// fields
rand dv_base_reg_field prio24;
`uvm_object_utils(rv_plic_reg_prio24)
function new(string name = "rv_plic_reg_prio24",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio24 = dv_base_reg_field::type_id::create("prio24");
prio24.configure(
.parent(this),
.size(1),
.lsb_pos(2),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio24
// Class: rv_plic_reg_prio25
class rv_plic_reg_prio25 extends dv_base_reg;
// fields
rand dv_base_reg_field prio25;
`uvm_object_utils(rv_plic_reg_prio25)
function new(string name = "rv_plic_reg_prio25",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio25 = dv_base_reg_field::type_id::create("prio25");
prio25.configure(
.parent(this),
.size(1),
.lsb_pos(3),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio25
// Class: rv_plic_reg_prio26
class rv_plic_reg_prio26 extends dv_base_reg;
// fields
rand dv_base_reg_field prio26;
`uvm_object_utils(rv_plic_reg_prio26)
function new(string name = "rv_plic_reg_prio26",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio26 = dv_base_reg_field::type_id::create("prio26");
prio26.configure(
.parent(this),
.size(1),
.lsb_pos(4),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio26
// Class: rv_plic_reg_prio27
class rv_plic_reg_prio27 extends dv_base_reg;
// fields
rand dv_base_reg_field prio27;
`uvm_object_utils(rv_plic_reg_prio27)
function new(string name = "rv_plic_reg_prio27",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio27 = dv_base_reg_field::type_id::create("prio27");
prio27.configure(
.parent(this),
.size(1),
.lsb_pos(5),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio27
// Class: rv_plic_reg_prio28
class rv_plic_reg_prio28 extends dv_base_reg;
// fields
rand dv_base_reg_field prio28;
`uvm_object_utils(rv_plic_reg_prio28)
function new(string name = "rv_plic_reg_prio28",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio28 = dv_base_reg_field::type_id::create("prio28");
prio28.configure(
.parent(this),
.size(1),
.lsb_pos(6),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio28
// Class: rv_plic_reg_prio29
class rv_plic_reg_prio29 extends dv_base_reg;
// fields
rand dv_base_reg_field prio29;
`uvm_object_utils(rv_plic_reg_prio29)
function new(string name = "rv_plic_reg_prio29",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio29 = dv_base_reg_field::type_id::create("prio29");
prio29.configure(
.parent(this),
.size(1),
.lsb_pos(7),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio29
// Class: rv_plic_reg_prio30
class rv_plic_reg_prio30 extends dv_base_reg;
// fields
rand dv_base_reg_field prio30;
`uvm_object_utils(rv_plic_reg_prio30)
function new(string name = "rv_plic_reg_prio30",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio30 = dv_base_reg_field::type_id::create("prio30");
prio30.configure(
.parent(this),
.size(1),
.lsb_pos(8),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio30
// Class: rv_plic_reg_prio31
class rv_plic_reg_prio31 extends dv_base_reg;
// fields
rand dv_base_reg_field prio31;
`uvm_object_utils(rv_plic_reg_prio31)
function new(string name = "rv_plic_reg_prio31",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio31 = dv_base_reg_field::type_id::create("prio31");
prio31.configure(
.parent(this),
.size(1),
.lsb_pos(9),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio31
// Class: rv_plic_reg_prio32
class rv_plic_reg_prio32 extends dv_base_reg;
// fields
rand dv_base_reg_field prio32;
`uvm_object_utils(rv_plic_reg_prio32)
function new(string name = "rv_plic_reg_prio32",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio32 = dv_base_reg_field::type_id::create("prio32");
prio32.configure(
.parent(this),
.size(1),
.lsb_pos(10),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio32
// Class: rv_plic_reg_prio33
class rv_plic_reg_prio33 extends dv_base_reg;
// fields
rand dv_base_reg_field prio33;
`uvm_object_utils(rv_plic_reg_prio33)
function new(string name = "rv_plic_reg_prio33",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio33 = dv_base_reg_field::type_id::create("prio33");
prio33.configure(
.parent(this),
.size(1),
.lsb_pos(11),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio33
// Class: rv_plic_reg_prio34
class rv_plic_reg_prio34 extends dv_base_reg;
// fields
rand dv_base_reg_field prio34;
`uvm_object_utils(rv_plic_reg_prio34)
function new(string name = "rv_plic_reg_prio34",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio34 = dv_base_reg_field::type_id::create("prio34");
prio34.configure(
.parent(this),
.size(1),
.lsb_pos(12),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio34
// Class: rv_plic_reg_prio35
class rv_plic_reg_prio35 extends dv_base_reg;
// fields
rand dv_base_reg_field prio35;
`uvm_object_utils(rv_plic_reg_prio35)
function new(string name = "rv_plic_reg_prio35",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio35 = dv_base_reg_field::type_id::create("prio35");
prio35.configure(
.parent(this),
.size(1),
.lsb_pos(13),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le46 = dv_base_reg_field::type_id::create("le46");
le46.configure(
.parent(this),
.size(1),
.lsb_pos(14),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le47 = dv_base_reg_field::type_id::create("le47");
le47.configure(
.parent(this),
.size(1),
.lsb_pos(15),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le48 = dv_base_reg_field::type_id::create("le48");
le48.configure(
.parent(this),
.size(1),
.lsb_pos(16),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le49 = dv_base_reg_field::type_id::create("le49");
le49.configure(
.parent(this),
.size(1),
.lsb_pos(17),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le50 = dv_base_reg_field::type_id::create("le50");
le50.configure(
.parent(this),
.size(1),
.lsb_pos(18),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le51 = dv_base_reg_field::type_id::create("le51");
le51.configure(
.parent(this),
.size(1),
.lsb_pos(19),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le52 = dv_base_reg_field::type_id::create("le52");
le52.configure(
.parent(this),
.size(1),
.lsb_pos(20),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le53 = dv_base_reg_field::type_id::create("le53");
le53.configure(
.parent(this),
.size(1),
.lsb_pos(21),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
le54 = dv_base_reg_field::type_id::create("le54");
le54.configure(
.parent(this),
.size(1),
.lsb_pos(22),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio35
// Class: rv_plic_reg_prio36
class rv_plic_reg_prio36 extends dv_base_reg;
// fields
rand dv_base_reg_field prio36;
`uvm_object_utils(rv_plic_reg_prio36)
function new(string name = "rv_plic_reg_prio36",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio36 = dv_base_reg_field::type_id::create("prio36");
prio36.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio36
// Class: rv_plic_reg_prio37
class rv_plic_reg_prio37 extends dv_base_reg;
// fields
rand dv_base_reg_field prio37;
`uvm_object_utils(rv_plic_reg_prio37)
function new(string name = "rv_plic_reg_prio37",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio37 = dv_base_reg_field::type_id::create("prio37");
prio37.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio37
// Class: rv_plic_reg_prio38
class rv_plic_reg_prio38 extends dv_base_reg;
// fields
rand dv_base_reg_field prio38;
`uvm_object_utils(rv_plic_reg_prio38)
function new(string name = "rv_plic_reg_prio38",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio38 = dv_base_reg_field::type_id::create("prio38");
prio38.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio38
// Class: rv_plic_reg_prio39
class rv_plic_reg_prio39 extends dv_base_reg;
// fields
rand dv_base_reg_field prio39;
`uvm_object_utils(rv_plic_reg_prio39)
function new(string name = "rv_plic_reg_prio39",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio39 = dv_base_reg_field::type_id::create("prio39");
prio39.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio39
// Class: rv_plic_reg_prio40
class rv_plic_reg_prio40 extends dv_base_reg;
// fields
rand dv_base_reg_field prio40;
`uvm_object_utils(rv_plic_reg_prio40)
function new(string name = "rv_plic_reg_prio40",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio40 = dv_base_reg_field::type_id::create("prio40");
prio40.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio40
// Class: rv_plic_reg_prio41
class rv_plic_reg_prio41 extends dv_base_reg;
// fields
rand dv_base_reg_field prio41;
`uvm_object_utils(rv_plic_reg_prio41)
function new(string name = "rv_plic_reg_prio41",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio41 = dv_base_reg_field::type_id::create("prio41");
prio41.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio41
// Class: rv_plic_reg_prio42
class rv_plic_reg_prio42 extends dv_base_reg;
// fields
rand dv_base_reg_field prio42;
`uvm_object_utils(rv_plic_reg_prio42)
function new(string name = "rv_plic_reg_prio42",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio42 = dv_base_reg_field::type_id::create("prio42");
prio42.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio42
// Class: rv_plic_reg_prio43
class rv_plic_reg_prio43 extends dv_base_reg;
// fields
rand dv_base_reg_field prio43;
`uvm_object_utils(rv_plic_reg_prio43)
function new(string name = "rv_plic_reg_prio43",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio43 = dv_base_reg_field::type_id::create("prio43");
prio43.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio43
// Class: rv_plic_reg_prio44
class rv_plic_reg_prio44 extends dv_base_reg;
// fields
rand dv_base_reg_field prio44;
`uvm_object_utils(rv_plic_reg_prio44)
function new(string name = "rv_plic_reg_prio44",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio44 = dv_base_reg_field::type_id::create("prio44");
prio44.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio44
// Class: rv_plic_reg_prio45
class rv_plic_reg_prio45 extends dv_base_reg;
// fields
rand dv_base_reg_field prio45;
`uvm_object_utils(rv_plic_reg_prio45)
function new(string name = "rv_plic_reg_prio45",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio45 = dv_base_reg_field::type_id::create("prio45");
prio45.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio45
// Class: rv_plic_reg_prio46
class rv_plic_reg_prio46 extends dv_base_reg;
// fields
rand dv_base_reg_field prio46;
`uvm_object_utils(rv_plic_reg_prio46)
function new(string name = "rv_plic_reg_prio46",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio46 = dv_base_reg_field::type_id::create("prio46");
prio46.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio46
// Class: rv_plic_reg_prio47
class rv_plic_reg_prio47 extends dv_base_reg;
// fields
rand dv_base_reg_field prio47;
`uvm_object_utils(rv_plic_reg_prio47)
function new(string name = "rv_plic_reg_prio47",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio47 = dv_base_reg_field::type_id::create("prio47");
prio47.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio47
// Class: rv_plic_reg_prio48
class rv_plic_reg_prio48 extends dv_base_reg;
// fields
rand dv_base_reg_field prio48;
`uvm_object_utils(rv_plic_reg_prio48)
function new(string name = "rv_plic_reg_prio48",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio48 = dv_base_reg_field::type_id::create("prio48");
prio48.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio48
// Class: rv_plic_reg_prio49
class rv_plic_reg_prio49 extends dv_base_reg;
// fields
rand dv_base_reg_field prio49;
`uvm_object_utils(rv_plic_reg_prio49)
function new(string name = "rv_plic_reg_prio49",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio49 = dv_base_reg_field::type_id::create("prio49");
prio49.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio49
// Class: rv_plic_reg_prio50
class rv_plic_reg_prio50 extends dv_base_reg;
// fields
rand dv_base_reg_field prio50;
`uvm_object_utils(rv_plic_reg_prio50)
function new(string name = "rv_plic_reg_prio50",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio50 = dv_base_reg_field::type_id::create("prio50");
prio50.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio50
// Class: rv_plic_reg_prio51
class rv_plic_reg_prio51 extends dv_base_reg;
// fields
rand dv_base_reg_field prio51;
`uvm_object_utils(rv_plic_reg_prio51)
function new(string name = "rv_plic_reg_prio51",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio51 = dv_base_reg_field::type_id::create("prio51");
prio51.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio51
// Class: rv_plic_reg_prio52
class rv_plic_reg_prio52 extends dv_base_reg;
// fields
rand dv_base_reg_field prio52;
`uvm_object_utils(rv_plic_reg_prio52)
function new(string name = "rv_plic_reg_prio52",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio52 = dv_base_reg_field::type_id::create("prio52");
prio52.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio52
// Class: rv_plic_reg_prio53
class rv_plic_reg_prio53 extends dv_base_reg;
// fields
rand dv_base_reg_field prio53;
`uvm_object_utils(rv_plic_reg_prio53)
function new(string name = "rv_plic_reg_prio53",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio53 = dv_base_reg_field::type_id::create("prio53");
prio53.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio53
// Class: rv_plic_reg_prio54
class rv_plic_reg_prio54 extends dv_base_reg;
// fields
rand dv_base_reg_field prio54;
`uvm_object_utils(rv_plic_reg_prio54)
function new(string name = "rv_plic_reg_prio54",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio54 = dv_base_reg_field::type_id::create("prio54");
prio54.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio54
// Class: rv_plic_reg_ie00
class rv_plic_reg_ie00 extends dv_base_reg;
// fields
rand dv_base_reg_field e0;
rand dv_base_reg_field e1;
rand dv_base_reg_field e2;
rand dv_base_reg_field e3;
rand dv_base_reg_field e4;
rand dv_base_reg_field e5;
rand dv_base_reg_field e6;
rand dv_base_reg_field e7;
rand dv_base_reg_field e8;
rand dv_base_reg_field e9;
rand dv_base_reg_field e10;
rand dv_base_reg_field e11;
rand dv_base_reg_field e12;
rand dv_base_reg_field e13;
rand dv_base_reg_field e14;
rand dv_base_reg_field e15;
rand dv_base_reg_field e16;
rand dv_base_reg_field e17;
rand dv_base_reg_field e18;
rand dv_base_reg_field e19;
rand dv_base_reg_field e20;
rand dv_base_reg_field e21;
rand dv_base_reg_field e22;
rand dv_base_reg_field e23;
rand dv_base_reg_field e24;
rand dv_base_reg_field e25;
rand dv_base_reg_field e26;
rand dv_base_reg_field e27;
rand dv_base_reg_field e28;
rand dv_base_reg_field e29;
rand dv_base_reg_field e30;
rand dv_base_reg_field e31;
`uvm_object_utils(rv_plic_reg_ie00)
function new(string name = "rv_plic_reg_ie00",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
e0 = dv_base_reg_field::type_id::create("e0");
e0.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e1 = dv_base_reg_field::type_id::create("e1");
e1.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e2 = dv_base_reg_field::type_id::create("e2");
e2.configure(
.parent(this),
.size(1),
.lsb_pos(2),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e3 = dv_base_reg_field::type_id::create("e3");
e3.configure(
.parent(this),
.size(1),
.lsb_pos(3),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e4 = dv_base_reg_field::type_id::create("e4");
e4.configure(
.parent(this),
.size(1),
.lsb_pos(4),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e5 = dv_base_reg_field::type_id::create("e5");
e5.configure(
.parent(this),
.size(1),
.lsb_pos(5),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e6 = dv_base_reg_field::type_id::create("e6");
e6.configure(
.parent(this),
.size(1),
.lsb_pos(6),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e7 = dv_base_reg_field::type_id::create("e7");
e7.configure(
.parent(this),
.size(1),
.lsb_pos(7),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e8 = dv_base_reg_field::type_id::create("e8");
e8.configure(
.parent(this),
.size(1),
.lsb_pos(8),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e9 = dv_base_reg_field::type_id::create("e9");
e9.configure(
.parent(this),
.size(1),
.lsb_pos(9),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e10 = dv_base_reg_field::type_id::create("e10");
e10.configure(
.parent(this),
.size(1),
.lsb_pos(10),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e11 = dv_base_reg_field::type_id::create("e11");
e11.configure(
.parent(this),
.size(1),
.lsb_pos(11),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e12 = dv_base_reg_field::type_id::create("e12");
e12.configure(
.parent(this),
.size(1),
.lsb_pos(12),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e13 = dv_base_reg_field::type_id::create("e13");
e13.configure(
.parent(this),
.size(1),
.lsb_pos(13),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e14 = dv_base_reg_field::type_id::create("e14");
e14.configure(
.parent(this),
.size(1),
.lsb_pos(14),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e15 = dv_base_reg_field::type_id::create("e15");
e15.configure(
.parent(this),
.size(1),
.lsb_pos(15),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e16 = dv_base_reg_field::type_id::create("e16");
e16.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio45
// Class: rv_plic_reg_prio46
class rv_plic_reg_prio46 extends dv_base_reg;
// fields
rand dv_base_reg_field prio46;
`uvm_object_utils(rv_plic_reg_prio46)
function new(string name = "rv_plic_reg_prio46",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio46 = dv_base_reg_field::type_id::create("prio46");
prio46.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio46
// Class: rv_plic_reg_prio47
class rv_plic_reg_prio47 extends dv_base_reg;
// fields
rand dv_base_reg_field prio47;
`uvm_object_utils(rv_plic_reg_prio47)
function new(string name = "rv_plic_reg_prio47",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio47 = dv_base_reg_field::type_id::create("prio47");
prio47.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio47
// Class: rv_plic_reg_prio48
class rv_plic_reg_prio48 extends dv_base_reg;
// fields
rand dv_base_reg_field prio48;
`uvm_object_utils(rv_plic_reg_prio48)
function new(string name = "rv_plic_reg_prio48",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio48 = dv_base_reg_field::type_id::create("prio48");
prio48.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio48
// Class: rv_plic_reg_prio49
class rv_plic_reg_prio49 extends dv_base_reg;
// fields
rand dv_base_reg_field prio49;
`uvm_object_utils(rv_plic_reg_prio49)
function new(string name = "rv_plic_reg_prio49",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio49 = dv_base_reg_field::type_id::create("prio49");
prio49.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio49
// Class: rv_plic_reg_prio50
class rv_plic_reg_prio50 extends dv_base_reg;
// fields
rand dv_base_reg_field prio50;
`uvm_object_utils(rv_plic_reg_prio50)
function new(string name = "rv_plic_reg_prio50",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio50 = dv_base_reg_field::type_id::create("prio50");
prio50.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio50
// Class: rv_plic_reg_prio51
class rv_plic_reg_prio51 extends dv_base_reg;
// fields
rand dv_base_reg_field prio51;
`uvm_object_utils(rv_plic_reg_prio51)
function new(string name = "rv_plic_reg_prio51",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio51 = dv_base_reg_field::type_id::create("prio51");
prio51.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio51
// Class: rv_plic_reg_prio52
class rv_plic_reg_prio52 extends dv_base_reg;
// fields
rand dv_base_reg_field prio52;
`uvm_object_utils(rv_plic_reg_prio52)
function new(string name = "rv_plic_reg_prio52",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio52 = dv_base_reg_field::type_id::create("prio52");
prio52.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio52
// Class: rv_plic_reg_prio53
class rv_plic_reg_prio53 extends dv_base_reg;
// fields
rand dv_base_reg_field prio53;
`uvm_object_utils(rv_plic_reg_prio53)
function new(string name = "rv_plic_reg_prio53",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
prio53 = dv_base_reg_field::type_id::create("prio53");
prio53.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e25 = dv_base_reg_field::type_id::create("e25");
e25.configure(
.parent(this),
.size(1),
.lsb_pos(25),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e26 = dv_base_reg_field::type_id::create("e26");
e26.configure(
.parent(this),
.size(1),
.lsb_pos(26),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e27 = dv_base_reg_field::type_id::create("e27");
e27.configure(
.parent(this),
.size(1),
.lsb_pos(27),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e28 = dv_base_reg_field::type_id::create("e28");
e28.configure(
.parent(this),
.size(1),
.lsb_pos(28),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e29 = dv_base_reg_field::type_id::create("e29");
e29.configure(
.parent(this),
.size(1),
.lsb_pos(29),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e30 = dv_base_reg_field::type_id::create("e30");
e30.configure(
.parent(this),
.size(1),
.lsb_pos(30),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e31 = dv_base_reg_field::type_id::create("e31");
e31.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_prio54
// Class: rv_plic_reg_ie00
class rv_plic_reg_ie00 extends dv_base_reg;
// fields
rand dv_base_reg_field e0;
rand dv_base_reg_field e1;
rand dv_base_reg_field e2;
rand dv_base_reg_field e3;
rand dv_base_reg_field e4;
rand dv_base_reg_field e5;
rand dv_base_reg_field e6;
rand dv_base_reg_field e7;
rand dv_base_reg_field e8;
rand dv_base_reg_field e9;
rand dv_base_reg_field e10;
rand dv_base_reg_field e11;
rand dv_base_reg_field e12;
rand dv_base_reg_field e13;
rand dv_base_reg_field e14;
rand dv_base_reg_field e15;
rand dv_base_reg_field e16;
rand dv_base_reg_field e17;
rand dv_base_reg_field e18;
rand dv_base_reg_field e19;
rand dv_base_reg_field e20;
rand dv_base_reg_field e21;
rand dv_base_reg_field e22;
rand dv_base_reg_field e23;
rand dv_base_reg_field e24;
rand dv_base_reg_field e25;
rand dv_base_reg_field e26;
rand dv_base_reg_field e27;
rand dv_base_reg_field e28;
rand dv_base_reg_field e29;
rand dv_base_reg_field e30;
rand dv_base_reg_field e31;
`uvm_object_utils(rv_plic_reg_ie00)
function new(string name = "rv_plic_reg_ie00",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
e0 = dv_base_reg_field::type_id::create("e0");
e0.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e1 = dv_base_reg_field::type_id::create("e1");
e1.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e2 = dv_base_reg_field::type_id::create("e2");
e2.configure(
.parent(this),
.size(1),
.lsb_pos(2),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e3 = dv_base_reg_field::type_id::create("e3");
e3.configure(
.parent(this),
.size(1),
.lsb_pos(3),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e4 = dv_base_reg_field::type_id::create("e4");
e4.configure(
.parent(this),
.size(1),
.lsb_pos(4),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e5 = dv_base_reg_field::type_id::create("e5");
e5.configure(
.parent(this),
.size(1),
.lsb_pos(5),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e6 = dv_base_reg_field::type_id::create("e6");
e6.configure(
.parent(this),
.size(1),
.lsb_pos(6),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e7 = dv_base_reg_field::type_id::create("e7");
e7.configure(
.parent(this),
.size(1),
.lsb_pos(7),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e8 = dv_base_reg_field::type_id::create("e8");
e8.configure(
.parent(this),
.size(1),
.lsb_pos(8),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e9 = dv_base_reg_field::type_id::create("e9");
e9.configure(
.parent(this),
.size(1),
.lsb_pos(9),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e10 = dv_base_reg_field::type_id::create("e10");
e10.configure(
.parent(this),
.size(1),
.lsb_pos(10),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e11 = dv_base_reg_field::type_id::create("e11");
e11.configure(
.parent(this),
.size(1),
.lsb_pos(11),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e12 = dv_base_reg_field::type_id::create("e12");
e12.configure(
.parent(this),
.size(1),
.lsb_pos(12),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e13 = dv_base_reg_field::type_id::create("e13");
e13.configure(
.parent(this),
.size(1),
.lsb_pos(13),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e14 = dv_base_reg_field::type_id::create("e14");
e14.configure(
.parent(this),
.size(1),
.lsb_pos(14),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e15 = dv_base_reg_field::type_id::create("e15");
e15.configure(
.parent(this),
.size(1),
.lsb_pos(15),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e16 = dv_base_reg_field::type_id::create("e16");
e16.configure(
.parent(this),
.size(1),
.lsb_pos(16),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e17 = dv_base_reg_field::type_id::create("e17");
e17.configure(
.parent(this),
.size(1),
.lsb_pos(17),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e18 = dv_base_reg_field::type_id::create("e18");
e18.configure(
.parent(this),
.size(1),
.lsb_pos(18),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e19 = dv_base_reg_field::type_id::create("e19");
e19.configure(
.parent(this),
.size(1),
.lsb_pos(19),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e20 = dv_base_reg_field::type_id::create("e20");
e20.configure(
.parent(this),
.size(1),
.lsb_pos(20),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e21 = dv_base_reg_field::type_id::create("e21");
e21.configure(
.parent(this),
.size(1),
.lsb_pos(21),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e22 = dv_base_reg_field::type_id::create("e22");
e22.configure(
.parent(this),
.size(1),
.lsb_pos(22),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e23 = dv_base_reg_field::type_id::create("e23");
e23.configure(
.parent(this),
.size(1),
.lsb_pos(23),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e24 = dv_base_reg_field::type_id::create("e24");
e24.configure(
.parent(this),
.size(1),
.lsb_pos(24),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_ie00
// Class: rv_plic_reg_ie01
class rv_plic_reg_ie01 extends dv_base_reg;
// fields
rand dv_base_reg_field e32;
rand dv_base_reg_field e33;
rand dv_base_reg_field e34;
rand dv_base_reg_field e35;
rand dv_base_reg_field e36;
rand dv_base_reg_field e37;
rand dv_base_reg_field e38;
rand dv_base_reg_field e39;
rand dv_base_reg_field e40;
rand dv_base_reg_field e41;
rand dv_base_reg_field e42;
rand dv_base_reg_field e43;
rand dv_base_reg_field e44;
rand dv_base_reg_field e45;
rand dv_base_reg_field e46;
rand dv_base_reg_field e47;
rand dv_base_reg_field e48;
rand dv_base_reg_field e49;
rand dv_base_reg_field e50;
rand dv_base_reg_field e51;
rand dv_base_reg_field e52;
rand dv_base_reg_field e53;
rand dv_base_reg_field e54;
`uvm_object_utils(rv_plic_reg_ie01)
function new(string name = "rv_plic_reg_ie01",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
e32 = dv_base_reg_field::type_id::create("e32");
e32.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e33 = dv_base_reg_field::type_id::create("e33");
e33.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e34 = dv_base_reg_field::type_id::create("e34");
e34.configure(
.parent(this),
.size(1),
.lsb_pos(2),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e35 = dv_base_reg_field::type_id::create("e35");
e35.configure(
.parent(this),
.size(1),
.lsb_pos(3),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e36 = dv_base_reg_field::type_id::create("e36");
e36.configure(
.parent(this),
.size(1),
.lsb_pos(4),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e37 = dv_base_reg_field::type_id::create("e37");
e37.configure(
.parent(this),
.size(1),
.lsb_pos(5),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e38 = dv_base_reg_field::type_id::create("e38");
e38.configure(
.parent(this),
.size(1),
.lsb_pos(6),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e39 = dv_base_reg_field::type_id::create("e39");
e39.configure(
.parent(this),
.size(1),
.lsb_pos(7),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e40 = dv_base_reg_field::type_id::create("e40");
e40.configure(
.parent(this),
.size(1),
.lsb_pos(8),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e41 = dv_base_reg_field::type_id::create("e41");
e41.configure(
.parent(this),
.size(1),
.lsb_pos(9),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e42 = dv_base_reg_field::type_id::create("e42");
e42.configure(
.parent(this),
.size(1),
.lsb_pos(10),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e43 = dv_base_reg_field::type_id::create("e43");
e43.configure(
.parent(this),
.size(1),
.lsb_pos(11),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e44 = dv_base_reg_field::type_id::create("e44");
e44.configure(
.parent(this),
.size(1),
.lsb_pos(12),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e45 = dv_base_reg_field::type_id::create("e45");
e45.configure(
.parent(this),
.size(1),
.lsb_pos(13),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e46 = dv_base_reg_field::type_id::create("e46");
e46.configure(
.parent(this),
.size(1),
.lsb_pos(14),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e47 = dv_base_reg_field::type_id::create("e47");
e47.configure(
.parent(this),
.size(1),
.lsb_pos(15),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e48 = dv_base_reg_field::type_id::create("e48");
e48.configure(
.parent(this),
.size(1),
.lsb_pos(16),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e49 = dv_base_reg_field::type_id::create("e49");
e49.configure(
.parent(this),
.size(1),
.lsb_pos(17),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e50 = dv_base_reg_field::type_id::create("e50");
e50.configure(
.parent(this),
.size(1),
.lsb_pos(18),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e51 = dv_base_reg_field::type_id::create("e51");
e51.configure(
.parent(this),
.size(1),
.lsb_pos(19),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e52 = dv_base_reg_field::type_id::create("e52");
e52.configure(
.parent(this),
.size(1),
.lsb_pos(20),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e53 = dv_base_reg_field::type_id::create("e53");
e53.configure(
.parent(this),
.size(1),
.lsb_pos(21),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
e54 = dv_base_reg_field::type_id::create("e54");
e54.configure(
.parent(this),
.size(1),
.lsb_pos(22),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_ie01
// Class: rv_plic_reg_threshold0
class rv_plic_reg_threshold0 extends dv_base_reg;
// fields
rand dv_base_reg_field threshold0;
`uvm_object_utils(rv_plic_reg_threshold0)
function new(string name = "rv_plic_reg_threshold0",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
threshold0 = dv_base_reg_field::type_id::create("threshold0");
threshold0.configure(
.parent(this),
.size(2),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_threshold0
// Class: rv_plic_reg_cc0
class rv_plic_reg_cc0 extends dv_base_reg;
// fields
rand dv_base_reg_field cc0;
`uvm_object_utils(rv_plic_reg_cc0)
function new(string name = "rv_plic_reg_cc0",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
cc0 = dv_base_reg_field::type_id::create("cc0");
cc0.configure(
.parent(this),
.size(6),
.lsb_pos(0),
.access("RW"),
.volatile(1),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_cc0
// Class: rv_plic_reg_msip0
class rv_plic_reg_msip0 extends dv_base_reg;
// fields
rand dv_base_reg_field msip0;
`uvm_object_utils(rv_plic_reg_msip0)
function new(string name = "rv_plic_reg_msip0",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
msip0 = dv_base_reg_field::type_id::create("msip0");
msip0.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : rv_plic_reg_msip0
// Class: rv_plic_reg_block
class rv_plic_reg_block extends dv_base_reg_block;
// registers
rand rv_plic_reg_ip0 ip0;
rand rv_plic_reg_ip1 ip1;
rand rv_plic_reg_le0 le0;
rand rv_plic_reg_le1 le1;
rand rv_plic_reg_prio0 prio0;
rand rv_plic_reg_prio1 prio1;
rand rv_plic_reg_prio2 prio2;
rand rv_plic_reg_prio3 prio3;
rand rv_plic_reg_prio4 prio4;
rand rv_plic_reg_prio5 prio5;
rand rv_plic_reg_prio6 prio6;
rand rv_plic_reg_prio7 prio7;
rand rv_plic_reg_prio8 prio8;
rand rv_plic_reg_prio9 prio9;
rand rv_plic_reg_prio10 prio10;
rand rv_plic_reg_prio11 prio11;
rand rv_plic_reg_prio12 prio12;
rand rv_plic_reg_prio13 prio13;
rand rv_plic_reg_prio14 prio14;
rand rv_plic_reg_prio15 prio15;
rand rv_plic_reg_prio16 prio16;
rand rv_plic_reg_prio17 prio17;
rand rv_plic_reg_prio18 prio18;
rand rv_plic_reg_prio19 prio19;
rand rv_plic_reg_prio20 prio20;
rand rv_plic_reg_prio21 prio21;
rand rv_plic_reg_prio22 prio22;
rand rv_plic_reg_prio23 prio23;
rand rv_plic_reg_prio24 prio24;
rand rv_plic_reg_prio25 prio25;
rand rv_plic_reg_prio26 prio26;
rand rv_plic_reg_prio27 prio27;
rand rv_plic_reg_prio28 prio28;
rand rv_plic_reg_prio29 prio29;
rand rv_plic_reg_prio30 prio30;
rand rv_plic_reg_prio31 prio31;
rand rv_plic_reg_prio32 prio32;
rand rv_plic_reg_prio33 prio33;
rand rv_plic_reg_prio34 prio34;
rand rv_plic_reg_prio35 prio35;
rand rv_plic_reg_prio36 prio36;
rand rv_plic_reg_prio37 prio37;
rand rv_plic_reg_prio38 prio38;
rand rv_plic_reg_prio39 prio39;
rand rv_plic_reg_prio40 prio40;
rand rv_plic_reg_prio41 prio41;
rand rv_plic_reg_prio42 prio42;
rand rv_plic_reg_prio43 prio43;
rand rv_plic_reg_prio44 prio44;
rand rv_plic_reg_prio45 prio45;
rand rv_plic_reg_prio46 prio46;
rand rv_plic_reg_prio47 prio47;
rand rv_plic_reg_prio48 prio48;
rand rv_plic_reg_prio49 prio49;
rand rv_plic_reg_prio50 prio50;
rand rv_plic_reg_prio51 prio51;
rand rv_plic_reg_prio52 prio52;
rand rv_plic_reg_prio53 prio53;
rand rv_plic_reg_prio54 prio54;
rand rv_plic_reg_ie00 ie00;
rand rv_plic_reg_ie01 ie01;
rand rv_plic_reg_threshold0 threshold0;
rand rv_plic_reg_cc0 cc0;
rand rv_plic_reg_msip0 msip0;
`uvm_object_utils(rv_plic_reg_block)
function new(string name = "rv_plic_reg_block",
int has_coverage = UVM_NO_COVERAGE);
super.new(name, has_coverage);
endfunction : new
virtual function void build(uvm_reg_addr_t base_addr);
// create default map
this.default_map = create_map(.name("default_map"),
.base_addr(base_addr),
.n_bytes(4),
.endian(UVM_LITTLE_ENDIAN));
// create registers
ip0 = rv_plic_reg_ip0::type_id::create("ip0");
ip0.configure(.blk_parent(this));
ip0.build();
default_map.add_reg(.rg(ip0),
.offset(32'h0),
.rights("RO"));
ip1 = rv_plic_reg_ip1::type_id::create("ip1");
ip1.configure(.blk_parent(this));
ip1.build();
default_map.add_reg(.rg(ip1),
.offset(32'h4),
.rights("RO"));
le0 = rv_plic_reg_le0::type_id::create("le0");
le0.configure(.blk_parent(this));
le0.build();
default_map.add_reg(.rg(le0),
.offset(32'h8),
.rights("RW"));
le1 = rv_plic_reg_le1::type_id::create("le1");
le1.configure(.blk_parent(this));
le1.build();
default_map.add_reg(.rg(le1),
.offset(32'hc),
.rights("RW"));
prio0 = rv_plic_reg_prio0::type_id::create("prio0");
prio0.configure(.blk_parent(this));
prio0.build();
default_map.add_reg(.rg(prio0),
.offset(32'h10),
.rights("RW"));
prio1 = rv_plic_reg_prio1::type_id::create("prio1");
prio1.configure(.blk_parent(this));
prio1.build();
default_map.add_reg(.rg(prio1),
.offset(32'h14),
.rights("RW"));
prio2 = rv_plic_reg_prio2::type_id::create("prio2");
prio2.configure(.blk_parent(this));
prio2.build();
default_map.add_reg(.rg(prio2),
.offset(32'h18),
.rights("RW"));
prio3 = rv_plic_reg_prio3::type_id::create("prio3");
prio3.configure(.blk_parent(this));
prio3.build();
default_map.add_reg(.rg(prio3),
.offset(32'h1c),
.rights("RW"));
prio4 = rv_plic_reg_prio4::type_id::create("prio4");
prio4.configure(.blk_parent(this));
prio4.build();
default_map.add_reg(.rg(prio4),
.offset(32'h20),
.rights("RW"));
prio5 = rv_plic_reg_prio5::type_id::create("prio5");
prio5.configure(.blk_parent(this));
prio5.build();
default_map.add_reg(.rg(prio5),
.offset(32'h24),
.rights("RW"));
prio6 = rv_plic_reg_prio6::type_id::create("prio6");
prio6.configure(.blk_parent(this));
prio6.build();
default_map.add_reg(.rg(prio6),
.offset(32'h28),
.rights("RW"));
prio7 = rv_plic_reg_prio7::type_id::create("prio7");
prio7.configure(.blk_parent(this));
prio7.build();
default_map.add_reg(.rg(prio7),
.offset(32'h2c),
.rights("RW"));
prio8 = rv_plic_reg_prio8::type_id::create("prio8");
prio8.configure(.blk_parent(this));
prio8.build();
default_map.add_reg(.rg(prio8),
.offset(32'h30),
.rights("RW"));
prio9 = rv_plic_reg_prio9::type_id::create("prio9");
prio9.configure(.blk_parent(this));
prio9.build();
default_map.add_reg(.rg(prio9),
.offset(32'h34),
.rights("RW"));
prio10 = rv_plic_reg_prio10::type_id::create("prio10");
prio10.configure(.blk_parent(this));
prio10.build();
default_map.add_reg(.rg(prio10),
.offset(32'h38),
.rights("RW"));
prio11 = rv_plic_reg_prio11::type_id::create("prio11");
prio11.configure(.blk_parent(this));
prio11.build();
default_map.add_reg(.rg(prio11),
.offset(32'h3c),
.rights("RW"));
prio12 = rv_plic_reg_prio12::type_id::create("prio12");
prio12.configure(.blk_parent(this));
prio12.build();
default_map.add_reg(.rg(prio12),
.offset(32'h40),
.rights("RW"));
prio13 = rv_plic_reg_prio13::type_id::create("prio13");
prio13.configure(.blk_parent(this));
prio13.build();
default_map.add_reg(.rg(prio13),
.offset(32'h44),
.rights("RW"));
prio14 = rv_plic_reg_prio14::type_id::create("prio14");
prio14.configure(.blk_parent(this));
prio14.build();
default_map.add_reg(.rg(prio14),
.offset(32'h48),
.rights("RW"));
prio15 = rv_plic_reg_prio15::type_id::create("prio15");
prio15.configure(.blk_parent(this));
prio15.build();
default_map.add_reg(.rg(prio15),
.offset(32'h4c),
.rights("RW"));
prio16 = rv_plic_reg_prio16::type_id::create("prio16");
prio16.configure(.blk_parent(this));
prio16.build();
default_map.add_reg(.rg(prio16),
.offset(32'h50),
.rights("RW"));
prio17 = rv_plic_reg_prio17::type_id::create("prio17");
prio17.configure(.blk_parent(this));
prio17.build();
default_map.add_reg(.rg(prio17),
.offset(32'h54),
.rights("RW"));
prio18 = rv_plic_reg_prio18::type_id::create("prio18");
prio18.configure(.blk_parent(this));
prio18.build();
default_map.add_reg(.rg(prio18),
.offset(32'h58),
.rights("RW"));
prio19 = rv_plic_reg_prio19::type_id::create("prio19");
prio19.configure(.blk_parent(this));
prio19.build();
default_map.add_reg(.rg(prio19),
.offset(32'h5c),
.rights("RW"));
prio20 = rv_plic_reg_prio20::type_id::create("prio20");
prio20.configure(.blk_parent(this));
prio20.build();
default_map.add_reg(.rg(prio20),
.offset(32'h60),
.rights("RW"));
prio21 = rv_plic_reg_prio21::type_id::create("prio21");
prio21.configure(.blk_parent(this));
prio21.build();
default_map.add_reg(.rg(prio21),
.offset(32'h64),
.rights("RW"));
prio22 = rv_plic_reg_prio22::type_id::create("prio22");
prio22.configure(.blk_parent(this));
prio22.build();
default_map.add_reg(.rg(prio22),
.offset(32'h68),
.rights("RW"));
prio23 = rv_plic_reg_prio23::type_id::create("prio23");
prio23.configure(.blk_parent(this));
prio23.build();
default_map.add_reg(.rg(prio23),
.offset(32'h6c),
.rights("RW"));
prio24 = rv_plic_reg_prio24::type_id::create("prio24");
prio24.configure(.blk_parent(this));
prio24.build();
default_map.add_reg(.rg(prio24),
.offset(32'h70),
.rights("RW"));
prio25 = rv_plic_reg_prio25::type_id::create("prio25");
prio25.configure(.blk_parent(this));
prio25.build();
default_map.add_reg(.rg(prio25),
.offset(32'h74),
.rights("RW"));
prio26 = rv_plic_reg_prio26::type_id::create("prio26");
prio26.configure(.blk_parent(this));
prio26.build();
default_map.add_reg(.rg(prio26),
.offset(32'h78),
.rights("RW"));
prio27 = rv_plic_reg_prio27::type_id::create("prio27");
prio27.configure(.blk_parent(this));
prio27.build();
default_map.add_reg(.rg(prio27),
.offset(32'h7c),
.rights("RW"));
prio28 = rv_plic_reg_prio28::type_id::create("prio28");
prio28.configure(.blk_parent(this));
prio28.build();
default_map.add_reg(.rg(prio28),
.offset(32'h80),
.rights("RW"));
prio29 = rv_plic_reg_prio29::type_id::create("prio29");
prio29.configure(.blk_parent(this));
prio29.build();
default_map.add_reg(.rg(prio29),
.offset(32'h84),
.rights("RW"));
prio30 = rv_plic_reg_prio30::type_id::create("prio30");
prio30.configure(.blk_parent(this));
prio30.build();
default_map.add_reg(.rg(prio30),
.offset(32'h88),
.rights("RW"));
prio31 = rv_plic_reg_prio31::type_id::create("prio31");
prio31.configure(.blk_parent(this));
prio31.build();
default_map.add_reg(.rg(prio31),
.offset(32'h8c),
.rights("RW"));
prio32 = rv_plic_reg_prio32::type_id::create("prio32");
prio32.configure(.blk_parent(this));
prio32.build();
default_map.add_reg(.rg(prio32),
.offset(32'h90),
.rights("RW"));
prio33 = rv_plic_reg_prio33::type_id::create("prio33");
prio33.configure(.blk_parent(this));
prio33.build();
default_map.add_reg(.rg(prio33),
.offset(32'h94),
.rights("RW"));
prio34 = rv_plic_reg_prio34::type_id::create("prio34");
prio34.configure(.blk_parent(this));
prio34.build();
default_map.add_reg(.rg(prio34),
.offset(32'h98),
.rights("RW"));
prio35 = rv_plic_reg_prio35::type_id::create("prio35");
prio35.configure(.blk_parent(this));
prio35.build();
default_map.add_reg(.rg(prio35),
.offset(32'h9c),
.rights("RW"));
prio36 = rv_plic_reg_prio36::type_id::create("prio36");
prio36.configure(.blk_parent(this));
prio36.build();
default_map.add_reg(.rg(prio36),
.offset(32'ha0),
.rights("RW"));
prio37 = rv_plic_reg_prio37::type_id::create("prio37");
prio37.configure(.blk_parent(this));
prio37.build();
default_map.add_reg(.rg(prio37),
.offset(32'ha4),
.rights("RW"));
prio38 = rv_plic_reg_prio38::type_id::create("prio38");
prio38.configure(.blk_parent(this));
prio38.build();
default_map.add_reg(.rg(prio38),
.offset(32'ha8),
.rights("RW"));
prio39 = rv_plic_reg_prio39::type_id::create("prio39");
prio39.configure(.blk_parent(this));
prio39.build();
default_map.add_reg(.rg(prio39),
.offset(32'hac),
.rights("RW"));
prio40 = rv_plic_reg_prio40::type_id::create("prio40");
prio40.configure(.blk_parent(this));
prio40.build();
default_map.add_reg(.rg(prio40),
.offset(32'hb0),
.rights("RW"));
prio41 = rv_plic_reg_prio41::type_id::create("prio41");
prio41.configure(.blk_parent(this));
prio41.build();
default_map.add_reg(.rg(prio41),
.offset(32'hb4),
.rights("RW"));
prio42 = rv_plic_reg_prio42::type_id::create("prio42");
prio42.configure(.blk_parent(this));
prio42.build();
default_map.add_reg(.rg(prio42),
.offset(32'hb8),
.rights("RW"));
prio43 = rv_plic_reg_prio43::type_id::create("prio43");
prio43.configure(.blk_parent(this));
prio43.build();
default_map.add_reg(.rg(prio43),
.offset(32'hbc),
.rights("RW"));
prio44 = rv_plic_reg_prio44::type_id::create("prio44");
prio44.configure(.blk_parent(this));
prio44.build();
default_map.add_reg(.rg(prio44),
.offset(32'hc0),
.rights("RW"));
prio45 = rv_plic_reg_prio45::type_id::create("prio45");
prio45.configure(.blk_parent(this));
prio45.build();
default_map.add_reg(.rg(prio45),
.offset(32'hc4),
.rights("RW"));
prio46 = rv_plic_reg_prio46::type_id::create("prio46");
prio46.configure(.blk_parent(this));
prio46.build();
default_map.add_reg(.rg(prio46),
.offset(32'hc8),
.rights("RW"));
prio47 = rv_plic_reg_prio47::type_id::create("prio47");
prio47.configure(.blk_parent(this));
prio47.build();
default_map.add_reg(.rg(prio47),
.offset(32'hcc),
.rights("RW"));
prio48 = rv_plic_reg_prio48::type_id::create("prio48");
prio48.configure(.blk_parent(this));
prio48.build();
default_map.add_reg(.rg(prio48),
.offset(32'hd0),
.rights("RW"));
prio49 = rv_plic_reg_prio49::type_id::create("prio49");
prio49.configure(.blk_parent(this));
prio49.build();
default_map.add_reg(.rg(prio49),
.offset(32'hd4),
.rights("RW"));
prio50 = rv_plic_reg_prio50::type_id::create("prio50");
prio50.configure(.blk_parent(this));
prio50.build();
default_map.add_reg(.rg(prio50),
.offset(32'hd8),
.rights("RW"));
prio51 = rv_plic_reg_prio51::type_id::create("prio51");
prio51.configure(.blk_parent(this));
prio51.build();
default_map.add_reg(.rg(prio51),
.offset(32'hdc),
.rights("RW"));
prio52 = rv_plic_reg_prio52::type_id::create("prio52");
prio52.configure(.blk_parent(this));
prio52.build();
default_map.add_reg(.rg(prio52),
.offset(32'he0),
.rights("RW"));
prio53 = rv_plic_reg_prio53::type_id::create("prio53");
prio53.configure(.blk_parent(this));
prio53.build();
default_map.add_reg(.rg(prio53),
.offset(32'he4),
.rights("RW"));
prio54 = rv_plic_reg_prio54::type_id::create("prio54");
prio54.configure(.blk_parent(this));
prio54.build();
default_map.add_reg(.rg(prio54),
.offset(32'he8),
.rights("RW"));
ie00 = rv_plic_reg_ie00::type_id::create("ie00");
ie00.configure(.blk_parent(this));
ie00.build();
default_map.add_reg(.rg(ie00),
.offset(32'h100),
.rights("RW"));
ie01 = rv_plic_reg_ie01::type_id::create("ie01");
ie01.configure(.blk_parent(this));
ie01.build();
default_map.add_reg(.rg(ie01),
.offset(32'h104),
.rights("RW"));
threshold0 = rv_plic_reg_threshold0::type_id::create("threshold0");
threshold0.configure(.blk_parent(this));
threshold0.build();
default_map.add_reg(.rg(threshold0),
.offset(32'h108),
.rights("RW"));
cc0 = rv_plic_reg_cc0::type_id::create("cc0");
cc0.configure(.blk_parent(this));
cc0.build();
default_map.add_reg(.rg(cc0),
.offset(32'h10c),
.rights("RW"));
msip0 = rv_plic_reg_msip0::type_id::create("msip0");
msip0.configure(.blk_parent(this));
msip0.build();
default_map.add_reg(.rg(msip0),
.offset(32'h110),
.rights("RW"));
endfunction : build
endclass : rv_plic_reg_block
// Block: pinmux
// Class: pinmux_reg_regen
class pinmux_reg_regen extends dv_base_reg;
// fields
rand dv_base_reg_field regen;
`uvm_object_utils(pinmux_reg_regen)
function new(string name = "pinmux_reg_regen",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
regen = dv_base_reg_field::type_id::create("regen");
regen.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("W0C"),
.volatile(1),
.reset(1),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : pinmux_reg_regen
// Class: pinmux_reg_periph_insel0
class pinmux_reg_periph_insel0 extends dv_base_reg;
// fields
rand dv_base_reg_field in0;
rand dv_base_reg_field in1;
rand dv_base_reg_field in2;
rand dv_base_reg_field in3;
rand dv_base_reg_field in4;
`uvm_object_utils(pinmux_reg_periph_insel0)
function new(string name = "pinmux_reg_periph_insel0",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
in0 = dv_base_reg_field::type_id::create("in0");
in0.configure(
.parent(this),
.size(6),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
in1 = dv_base_reg_field::type_id::create("in1");
in1.configure(
.parent(this),
.size(6),
.lsb_pos(6),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
in2 = dv_base_reg_field::type_id::create("in2");
in2.configure(
.parent(this),
.size(6),
.lsb_pos(12),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
in3 = dv_base_reg_field::type_id::create("in3");
in3.configure(
.parent(this),
.size(6),
.lsb_pos(18),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
in4 = dv_base_reg_field::type_id::create("in4");
in4.configure(
.parent(this),
.size(6),
.lsb_pos(24),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : pinmux_reg_periph_insel0
// Class: pinmux_reg_periph_insel1
class pinmux_reg_periph_insel1 extends dv_base_reg;
// fields
rand dv_base_reg_field in5;
rand dv_base_reg_field in6;
rand dv_base_reg_field in7;
rand dv_base_reg_field in8;
rand dv_base_reg_field in9;
`uvm_object_utils(pinmux_reg_periph_insel1)
function new(string name = "pinmux_reg_periph_insel1",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
in5 = dv_base_reg_field::type_id::create("in5");
in5.configure(
.parent(this),
.size(6),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
in6 = dv_base_reg_field::type_id::create("in6");
in6.configure(
.parent(this),
.size(6),
.lsb_pos(6),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
in7 = dv_base_reg_field::type_id::create("in7");
in7.configure(
.parent(this),
.size(6),
.lsb_pos(12),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
in8 = dv_base_reg_field::type_id::create("in8");
in8.configure(
.parent(this),
.size(6),
.lsb_pos(18),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
in9 = dv_base_reg_field::type_id::create("in9");
in9.configure(
.parent(this),
.size(6),
.lsb_pos(24),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : pinmux_reg_periph_insel1
// Class: pinmux_reg_periph_insel2
class pinmux_reg_periph_insel2 extends dv_base_reg;
// fields
rand dv_base_reg_field in10;
rand dv_base_reg_field in11;
rand dv_base_reg_field in12;
rand dv_base_reg_field in13;
rand dv_base_reg_field in14;
`uvm_object_utils(pinmux_reg_periph_insel2)
function new(string name = "pinmux_reg_periph_insel2",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
in10 = dv_base_reg_field::type_id::create("in10");
in10.configure(
.parent(this),
.size(6),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
in11 = dv_base_reg_field::type_id::create("in11");
in11.configure(
.parent(this),
.size(6),
.lsb_pos(6),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
in12 = dv_base_reg_field::type_id::create("in12");
in12.configure(
.parent(this),
.size(6),
.lsb_pos(12),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
in13 = dv_base_reg_field::type_id::create("in13");
in13.configure(
.parent(this),
.size(6),
.lsb_pos(18),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
in14 = dv_base_reg_field::type_id::create("in14");
in14.configure(
.parent(this),
.size(6),
.lsb_pos(24),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : pinmux_reg_periph_insel2
// Class: pinmux_reg_periph_insel3
class pinmux_reg_periph_insel3 extends dv_base_reg;
// fields
rand dv_base_reg_field in15;
rand dv_base_reg_field in16;
rand dv_base_reg_field in17;
rand dv_base_reg_field in18;
rand dv_base_reg_field in19;
`uvm_object_utils(pinmux_reg_periph_insel3)
function new(string name = "pinmux_reg_periph_insel3",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
in15 = dv_base_reg_field::type_id::create("in15");
in15.configure(
.parent(this),
.size(6),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
in16 = dv_base_reg_field::type_id::create("in16");
in16.configure(
.parent(this),
.size(6),
.lsb_pos(6),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
in17 = dv_base_reg_field::type_id::create("in17");
in17.configure(
.parent(this),
.size(6),
.lsb_pos(12),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
in18 = dv_base_reg_field::type_id::create("in18");
in18.configure(
.parent(this),
.size(6),
.lsb_pos(18),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
in19 = dv_base_reg_field::type_id::create("in19");
in19.configure(
.parent(this),
.size(6),
.lsb_pos(24),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : pinmux_reg_periph_insel3
// Class: pinmux_reg_periph_insel4
class pinmux_reg_periph_insel4 extends dv_base_reg;
// fields
rand dv_base_reg_field in20;
rand dv_base_reg_field in21;
rand dv_base_reg_field in22;
rand dv_base_reg_field in23;
rand dv_base_reg_field in24;
`uvm_object_utils(pinmux_reg_periph_insel4)
function new(string name = "pinmux_reg_periph_insel4",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
in20 = dv_base_reg_field::type_id::create("in20");
in20.configure(
.parent(this),
.size(6),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
in21 = dv_base_reg_field::type_id::create("in21");
in21.configure(
.parent(this),
.size(6),
.lsb_pos(6),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
in22 = dv_base_reg_field::type_id::create("in22");
in22.configure(
.parent(this),
.size(6),
.lsb_pos(12),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
in23 = dv_base_reg_field::type_id::create("in23");
in23.configure(
.parent(this),
.size(6),
.lsb_pos(18),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
in24 = dv_base_reg_field::type_id::create("in24");
in24.configure(
.parent(this),
.size(6),
.lsb_pos(24),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : pinmux_reg_periph_insel4
// Class: pinmux_reg_periph_insel5
class pinmux_reg_periph_insel5 extends dv_base_reg;
// fields
rand dv_base_reg_field in25;
rand dv_base_reg_field in26;
rand dv_base_reg_field in27;
rand dv_base_reg_field in28;
rand dv_base_reg_field in29;
`uvm_object_utils(pinmux_reg_periph_insel5)
function new(string name = "pinmux_reg_periph_insel5",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
in25 = dv_base_reg_field::type_id::create("in25");
in25.configure(
.parent(this),
.size(6),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
in26 = dv_base_reg_field::type_id::create("in26");
in26.configure(
.parent(this),
.size(6),
.lsb_pos(6),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
in27 = dv_base_reg_field::type_id::create("in27");
in27.configure(
.parent(this),
.size(6),
.lsb_pos(12),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
in28 = dv_base_reg_field::type_id::create("in28");
in28.configure(
.parent(this),
.size(6),
.lsb_pos(18),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
in29 = dv_base_reg_field::type_id::create("in29");
in29.configure(
.parent(this),
.size(6),
.lsb_pos(24),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : pinmux_reg_periph_insel5
// Class: pinmux_reg_periph_insel6
class pinmux_reg_periph_insel6 extends dv_base_reg;
// fields
rand dv_base_reg_field in30;
rand dv_base_reg_field in31;
`uvm_object_utils(pinmux_reg_periph_insel6)
function new(string name = "pinmux_reg_periph_insel6",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
in30 = dv_base_reg_field::type_id::create("in30");
in30.configure(
.parent(this),
.size(6),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
in31 = dv_base_reg_field::type_id::create("in31");
in31.configure(
.parent(this),
.size(6),
.lsb_pos(6),
.access("RW"),
.volatile(0),
.reset(0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : pinmux_reg_periph_insel6
// Class: pinmux_reg_mio_outsel0
class pinmux_reg_mio_outsel0 extends dv_base_reg;
// fields
rand dv_base_reg_field out0;
rand dv_base_reg_field out1;
rand dv_base_reg_field out2;
rand dv_base_reg_field out3;
rand dv_base_reg_field out4;
`uvm_object_utils(pinmux_reg_mio_outsel0)
function new(string name = "pinmux_reg_mio_outsel0",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
out0 = dv_base_reg_field::type_id::create("out0");
out0.configure(
.parent(this),
.size(6),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(2),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
out1 = dv_base_reg_field::type_id::create("out1");
out1.configure(
.parent(this),
.size(6),
.lsb_pos(6),
.access("RW"),
.volatile(0),
.reset(2),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
out2 = dv_base_reg_field::type_id::create("out2");
out2.configure(
.parent(this),
.size(6),
.lsb_pos(12),
.access("RW"),
.volatile(0),
.reset(2),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
out3 = dv_base_reg_field::type_id::create("out3");
out3.configure(
.parent(this),
.size(6),
.lsb_pos(18),
.access("RW"),
.volatile(0),
.reset(2),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
out4 = dv_base_reg_field::type_id::create("out4");
out4.configure(
.parent(this),
.size(6),
.lsb_pos(24),
.access("RW"),
.volatile(0),
.reset(2),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : pinmux_reg_mio_outsel0
// Class: pinmux_reg_mio_outsel1
class pinmux_reg_mio_outsel1 extends dv_base_reg;
// fields
rand dv_base_reg_field out5;
rand dv_base_reg_field out6;
rand dv_base_reg_field out7;
rand dv_base_reg_field out8;
rand dv_base_reg_field out9;
`uvm_object_utils(pinmux_reg_mio_outsel1)
function new(string name = "pinmux_reg_mio_outsel1",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
out5 = dv_base_reg_field::type_id::create("out5");
out5.configure(
.parent(this),
.size(6),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(2),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
out6 = dv_base_reg_field::type_id::create("out6");
out6.configure(
.parent(this),
.size(6),
.lsb_pos(6),
.access("RW"),
.volatile(0),
.reset(2),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
out7 = dv_base_reg_field::type_id::create("out7");
out7.configure(
.parent(this),
.size(6),
.lsb_pos(12),
.access("RW"),
.volatile(0),
.reset(2),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
out8 = dv_base_reg_field::type_id::create("out8");
out8.configure(
.parent(this),
.size(6),
.lsb_pos(18),
.access("RW"),
.volatile(0),
.reset(2),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
out9 = dv_base_reg_field::type_id::create("out9");
out9.configure(
.parent(this),
.size(6),
.lsb_pos(24),
.access("RW"),
.volatile(0),
.reset(2),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : pinmux_reg_mio_outsel1
// Class: pinmux_reg_mio_outsel2
class pinmux_reg_mio_outsel2 extends dv_base_reg;
// fields
rand dv_base_reg_field out10;
rand dv_base_reg_field out11;
rand dv_base_reg_field out12;
rand dv_base_reg_field out13;
rand dv_base_reg_field out14;
`uvm_object_utils(pinmux_reg_mio_outsel2)
function new(string name = "pinmux_reg_mio_outsel2",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
out10 = dv_base_reg_field::type_id::create("out10");
out10.configure(
.parent(this),
.size(6),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(2),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
out11 = dv_base_reg_field::type_id::create("out11");
out11.configure(
.parent(this),
.size(6),
.lsb_pos(6),
.access("RW"),
.volatile(0),
.reset(2),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
out12 = dv_base_reg_field::type_id::create("out12");
out12.configure(
.parent(this),
.size(6),
.lsb_pos(12),
.access("RW"),
.volatile(0),
.reset(2),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
out13 = dv_base_reg_field::type_id::create("out13");
out13.configure(
.parent(this),
.size(6),
.lsb_pos(18),
.access("RW"),
.volatile(0),
.reset(2),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
out14 = dv_base_reg_field::type_id::create("out14");
out14.configure(
.parent(this),
.size(6),
.lsb_pos(24),
.access("RW"),
.volatile(0),
.reset(2),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : pinmux_reg_mio_outsel2
// Class: pinmux_reg_mio_outsel3
class pinmux_reg_mio_outsel3 extends dv_base_reg;
// fields
rand dv_base_reg_field out15;
rand dv_base_reg_field out16;
rand dv_base_reg_field out17;
rand dv_base_reg_field out18;
rand dv_base_reg_field out19;
`uvm_object_utils(pinmux_reg_mio_outsel3)
function new(string name = "pinmux_reg_mio_outsel3",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
out15 = dv_base_reg_field::type_id::create("out15");
out15.configure(
.parent(this),
.size(6),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(2),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
out16 = dv_base_reg_field::type_id::create("out16");
out16.configure(
.parent(this),
.size(6),
.lsb_pos(6),
.access("RW"),
.volatile(0),
.reset(2),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
out17 = dv_base_reg_field::type_id::create("out17");
out17.configure(
.parent(this),
.size(6),
.lsb_pos(12),
.access("RW"),
.volatile(0),
.reset(2),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
out18 = dv_base_reg_field::type_id::create("out18");
out18.configure(
.parent(this),
.size(6),
.lsb_pos(18),
.access("RW"),
.volatile(0),
.reset(2),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
out19 = dv_base_reg_field::type_id::create("out19");
out19.configure(
.parent(this),
.size(6),
.lsb_pos(24),
.access("RW"),
.volatile(0),
.reset(2),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : pinmux_reg_mio_outsel3
// Class: pinmux_reg_mio_outsel4
class pinmux_reg_mio_outsel4 extends dv_base_reg;
// fields
rand dv_base_reg_field out20;
rand dv_base_reg_field out21;
rand dv_base_reg_field out22;
rand dv_base_reg_field out23;
rand dv_base_reg_field out24;
`uvm_object_utils(pinmux_reg_mio_outsel4)
function new(string name = "pinmux_reg_mio_outsel4",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
out20 = dv_base_reg_field::type_id::create("out20");
out20.configure(
.parent(this),
.size(6),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(2),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
out21 = dv_base_reg_field::type_id::create("out21");
out21.configure(
.parent(this),
.size(6),
.lsb_pos(6),
.access("RW"),
.volatile(0),
.reset(2),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
out22 = dv_base_reg_field::type_id::create("out22");
out22.configure(
.parent(this),
.size(6),
.lsb_pos(12),
.access("RW"),
.volatile(0),
.reset(2),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
out23 = dv_base_reg_field::type_id::create("out23");
out23.configure(
.parent(this),
.size(6),
.lsb_pos(18),
.access("RW"),
.volatile(0),
.reset(2),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
out24 = dv_base_reg_field::type_id::create("out24");
out24.configure(
.parent(this),
.size(6),
.lsb_pos(24),
.access("RW"),
.volatile(0),
.reset(2),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : pinmux_reg_mio_outsel4
// Class: pinmux_reg_mio_outsel5
class pinmux_reg_mio_outsel5 extends dv_base_reg;
// fields
rand dv_base_reg_field out25;
rand dv_base_reg_field out26;
rand dv_base_reg_field out27;
rand dv_base_reg_field out28;
rand dv_base_reg_field out29;
`uvm_object_utils(pinmux_reg_mio_outsel5)
function new(string name = "pinmux_reg_mio_outsel5",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
out25 = dv_base_reg_field::type_id::create("out25");
out25.configure(
.parent(this),
.size(6),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(2),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
out26 = dv_base_reg_field::type_id::create("out26");
out26.configure(
.parent(this),
.size(6),
.lsb_pos(6),
.access("RW"),
.volatile(0),
.reset(2),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
out27 = dv_base_reg_field::type_id::create("out27");
out27.configure(
.parent(this),
.size(6),
.lsb_pos(12),
.access("RW"),
.volatile(0),
.reset(2),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
out28 = dv_base_reg_field::type_id::create("out28");
out28.configure(
.parent(this),
.size(6),
.lsb_pos(18),
.access("RW"),
.volatile(0),
.reset(2),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
out29 = dv_base_reg_field::type_id::create("out29");
out29.configure(
.parent(this),
.size(6),
.lsb_pos(24),
.access("RW"),
.volatile(0),
.reset(2),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : pinmux_reg_mio_outsel5
// Class: pinmux_reg_mio_outsel6
class pinmux_reg_mio_outsel6 extends dv_base_reg;
// fields
rand dv_base_reg_field out30;
rand dv_base_reg_field out31;
`uvm_object_utils(pinmux_reg_mio_outsel6)
function new(string name = "pinmux_reg_mio_outsel6",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
out30 = dv_base_reg_field::type_id::create("out30");
out30.configure(
.parent(this),
.size(6),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(2),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
out31 = dv_base_reg_field::type_id::create("out31");
out31.configure(
.parent(this),
.size(6),
.lsb_pos(6),
.access("RW"),
.volatile(0),
.reset(2),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : pinmux_reg_mio_outsel6
// Class: pinmux_reg_block
class pinmux_reg_block extends dv_base_reg_block;
// registers
rand pinmux_reg_regen regen;
rand pinmux_reg_periph_insel0 periph_insel0;
rand pinmux_reg_periph_insel1 periph_insel1;
rand pinmux_reg_periph_insel2 periph_insel2;
rand pinmux_reg_periph_insel3 periph_insel3;
rand pinmux_reg_periph_insel4 periph_insel4;
rand pinmux_reg_periph_insel5 periph_insel5;
rand pinmux_reg_periph_insel6 periph_insel6;
rand pinmux_reg_mio_outsel0 mio_outsel0;
rand pinmux_reg_mio_outsel1 mio_outsel1;
rand pinmux_reg_mio_outsel2 mio_outsel2;
rand pinmux_reg_mio_outsel3 mio_outsel3;
rand pinmux_reg_mio_outsel4 mio_outsel4;
rand pinmux_reg_mio_outsel5 mio_outsel5;
rand pinmux_reg_mio_outsel6 mio_outsel6;
`uvm_object_utils(pinmux_reg_block)
function new(string name = "pinmux_reg_block",
int has_coverage = UVM_NO_COVERAGE);
super.new(name, has_coverage);
endfunction : new
virtual function void build(uvm_reg_addr_t base_addr);
// create default map
this.default_map = create_map(.name("default_map"),
.base_addr(base_addr),
.n_bytes(4),
.endian(UVM_LITTLE_ENDIAN));
// create registers
regen = pinmux_reg_regen::type_id::create("regen");
regen.configure(.blk_parent(this));
regen.build();
default_map.add_reg(.rg(regen),
.offset(32'h0),
.rights("RW"));
periph_insel0 = pinmux_reg_periph_insel0::type_id::create("periph_insel0");
periph_insel0.configure(.blk_parent(this));
periph_insel0.build();
default_map.add_reg(.rg(periph_insel0),
.offset(32'h4),
.rights("RW"));
periph_insel1 = pinmux_reg_periph_insel1::type_id::create("periph_insel1");
periph_insel1.configure(.blk_parent(this));
periph_insel1.build();
default_map.add_reg(.rg(periph_insel1),
.offset(32'h8),
.rights("RW"));
periph_insel2 = pinmux_reg_periph_insel2::type_id::create("periph_insel2");
periph_insel2.configure(.blk_parent(this));
periph_insel2.build();
default_map.add_reg(.rg(periph_insel2),
.offset(32'hc),
.rights("RW"));
periph_insel3 = pinmux_reg_periph_insel3::type_id::create("periph_insel3");
periph_insel3.configure(.blk_parent(this));
periph_insel3.build();
default_map.add_reg(.rg(periph_insel3),
.offset(32'h10),
.rights("RW"));
periph_insel4 = pinmux_reg_periph_insel4::type_id::create("periph_insel4");
periph_insel4.configure(.blk_parent(this));
periph_insel4.build();
default_map.add_reg(.rg(periph_insel4),
.offset(32'h14),
.rights("RW"));
periph_insel5 = pinmux_reg_periph_insel5::type_id::create("periph_insel5");
periph_insel5.configure(.blk_parent(this));
periph_insel5.build();
default_map.add_reg(.rg(periph_insel5),
.offset(32'h18),
.rights("RW"));
periph_insel6 = pinmux_reg_periph_insel6::type_id::create("periph_insel6");
periph_insel6.configure(.blk_parent(this));
periph_insel6.build();
default_map.add_reg(.rg(periph_insel6),
.offset(32'h1c),
.rights("RW"));
mio_outsel0 = pinmux_reg_mio_outsel0::type_id::create("mio_outsel0");
mio_outsel0.configure(.blk_parent(this));
mio_outsel0.build();
default_map.add_reg(.rg(mio_outsel0),
.offset(32'h20),
.rights("RW"));
mio_outsel1 = pinmux_reg_mio_outsel1::type_id::create("mio_outsel1");
mio_outsel1.configure(.blk_parent(this));
mio_outsel1.build();
default_map.add_reg(.rg(mio_outsel1),
.offset(32'h24),
.rights("RW"));
mio_outsel2 = pinmux_reg_mio_outsel2::type_id::create("mio_outsel2");
mio_outsel2.configure(.blk_parent(this));
mio_outsel2.build();
default_map.add_reg(.rg(mio_outsel2),
.offset(32'h28),
.rights("RW"));
mio_outsel3 = pinmux_reg_mio_outsel3::type_id::create("mio_outsel3");
mio_outsel3.configure(.blk_parent(this));
mio_outsel3.build();
default_map.add_reg(.rg(mio_outsel3),
.offset(32'h2c),
.rights("RW"));
threshold0 = rv_plic_reg_threshold0::type_id::create("threshold0");
threshold0.configure(.blk_parent(this));
threshold0.build();
default_map.add_reg(.rg(threshold0),
.offset(32'h108),
.rights("RW"));
cc0 = rv_plic_reg_cc0::type_id::create("cc0");
cc0.configure(.blk_parent(this));
cc0.build();
default_map.add_reg(.rg(cc0),
.offset(32'h10c),
.rights("RW"));
msip0 = rv_plic_reg_msip0::type_id::create("msip0");
msip0.configure(.blk_parent(this));
msip0.build();
default_map.add_reg(.rg(msip0),
.offset(32'h110),
.rights("RW"));
endfunction : build
endclass : rv_plic_reg_block
`endif
// Block: aes
`ifndef AES_REG_BLOCK__SV
`define AES_REG_BLOCK__SV
// Forward declare all register/memory/block classes
typedef class aes_reg_key0;
typedef class aes_reg_key1;
typedef class aes_reg_key2;
typedef class aes_reg_key3;
typedef class aes_reg_key4;
typedef class aes_reg_key5;
typedef class aes_reg_key6;
typedef class aes_reg_key7;
typedef class aes_reg_data_in0;
typedef class aes_reg_data_in1;
typedef class aes_reg_data_in2;
typedef class aes_reg_data_in3;
typedef class aes_reg_data_out0;
typedef class aes_reg_data_out1;
typedef class aes_reg_data_out2;
typedef class aes_reg_data_out3;
typedef class aes_reg_ctrl;
typedef class aes_reg_trigger;
typedef class aes_reg_status;
typedef class aes_reg_block;
// Class: aes_reg_key0
class aes_reg_key0 extends dv_base_reg;
// fields
rand dv_base_reg_field key0;
`uvm_object_utils(aes_reg_key0)
function new(string name = "aes_reg_key0",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
key0 = dv_base_reg_field::type_id::create("key0");
key0.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("WO"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : aes_reg_key0
// Class: aes_reg_key1
class aes_reg_key1 extends dv_base_reg;
// fields
rand dv_base_reg_field key1;
`uvm_object_utils(aes_reg_key1)
function new(string name = "aes_reg_key1",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
key1 = dv_base_reg_field::type_id::create("key1");
key1.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("WO"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : aes_reg_key1
// Class: aes_reg_key2
class aes_reg_key2 extends dv_base_reg;
// fields
rand dv_base_reg_field key2;
`uvm_object_utils(aes_reg_key2)
function new(string name = "aes_reg_key2",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
key2 = dv_base_reg_field::type_id::create("key2");
key2.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("WO"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : aes_reg_key2
// Class: aes_reg_key3
class aes_reg_key3 extends dv_base_reg;
// fields
rand dv_base_reg_field key3;
`uvm_object_utils(aes_reg_key3)
function new(string name = "aes_reg_key3",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
key3 = dv_base_reg_field::type_id::create("key3");
key3.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("WO"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : aes_reg_key3
// Class: aes_reg_key4
class aes_reg_key4 extends dv_base_reg;
// fields
rand dv_base_reg_field key4;
`uvm_object_utils(aes_reg_key4)
function new(string name = "aes_reg_key4",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
key4 = dv_base_reg_field::type_id::create("key4");
key4.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("WO"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : aes_reg_key4
// Class: aes_reg_key5
class aes_reg_key5 extends dv_base_reg;
// fields
rand dv_base_reg_field key5;
`uvm_object_utils(aes_reg_key5)
function new(string name = "aes_reg_key5",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
key5 = dv_base_reg_field::type_id::create("key5");
key5.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("WO"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : aes_reg_key5
// Class: aes_reg_key6
class aes_reg_key6 extends dv_base_reg;
// fields
rand dv_base_reg_field key6;
`uvm_object_utils(aes_reg_key6)
function new(string name = "aes_reg_key6",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
key6 = dv_base_reg_field::type_id::create("key6");
key6.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("WO"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : aes_reg_key6
// Class: aes_reg_key7
class aes_reg_key7 extends dv_base_reg;
// fields
rand dv_base_reg_field key7;
`uvm_object_utils(aes_reg_key7)
function new(string name = "aes_reg_key7",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
key7 = dv_base_reg_field::type_id::create("key7");
key7.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("WO"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : aes_reg_key7
// Class: aes_reg_data_in0
class aes_reg_data_in0 extends dv_base_reg;
// fields
rand dv_base_reg_field data_in0;
`uvm_object_utils(aes_reg_data_in0)
function new(string name = "aes_reg_data_in0",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
data_in0 = dv_base_reg_field::type_id::create("data_in0");
data_in0.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("WO"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : aes_reg_data_in0
// Class: aes_reg_data_in1
class aes_reg_data_in1 extends dv_base_reg;
// fields
rand dv_base_reg_field data_in1;
`uvm_object_utils(aes_reg_data_in1)
function new(string name = "aes_reg_data_in1",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
data_in1 = dv_base_reg_field::type_id::create("data_in1");
data_in1.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("WO"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : aes_reg_data_in1
// Class: aes_reg_data_in2
class aes_reg_data_in2 extends dv_base_reg;
// fields
rand dv_base_reg_field data_in2;
`uvm_object_utils(aes_reg_data_in2)
function new(string name = "aes_reg_data_in2",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
data_in2 = dv_base_reg_field::type_id::create("data_in2");
data_in2.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("WO"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : aes_reg_data_in2
// Class: aes_reg_data_in3
class aes_reg_data_in3 extends dv_base_reg;
// fields
rand dv_base_reg_field data_in3;
`uvm_object_utils(aes_reg_data_in3)
function new(string name = "aes_reg_data_in3",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
data_in3 = dv_base_reg_field::type_id::create("data_in3");
data_in3.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("WO"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : aes_reg_data_in3
// Class: aes_reg_data_out0
class aes_reg_data_out0 extends dv_base_reg;
// fields
rand dv_base_reg_field data_out0;
`uvm_object_utils(aes_reg_data_out0)
function new(string name = "aes_reg_data_out0",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
data_out0 = dv_base_reg_field::type_id::create("data_out0");
data_out0.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : aes_reg_data_out0
// Class: aes_reg_data_out1
class aes_reg_data_out1 extends dv_base_reg;
// fields
rand dv_base_reg_field data_out1;
`uvm_object_utils(aes_reg_data_out1)
function new(string name = "aes_reg_data_out1",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
data_out1 = dv_base_reg_field::type_id::create("data_out1");
data_out1.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : aes_reg_data_out1
// Class: aes_reg_data_out2
class aes_reg_data_out2 extends dv_base_reg;
// fields
rand dv_base_reg_field data_out2;
`uvm_object_utils(aes_reg_data_out2)
function new(string name = "aes_reg_data_out2",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
data_out2 = dv_base_reg_field::type_id::create("data_out2");
data_out2.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : aes_reg_data_out2
// Class: aes_reg_data_out3
class aes_reg_data_out3 extends dv_base_reg;
// fields
rand dv_base_reg_field data_out3;
`uvm_object_utils(aes_reg_data_out3)
function new(string name = "aes_reg_data_out3",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
data_out3 = dv_base_reg_field::type_id::create("data_out3");
data_out3.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : aes_reg_data_out3
// Class: aes_reg_ctrl
class aes_reg_ctrl extends dv_base_reg;
// fields
rand dv_base_reg_field mode;
rand dv_base_reg_field key_len;
rand dv_base_reg_field manual_start_trigger;
rand dv_base_reg_field force_data_overwrite;
`uvm_object_utils(aes_reg_ctrl)
function new(string name = "aes_reg_ctrl",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
mode = dv_base_reg_field::type_id::create("mode");
mode.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
key_len = dv_base_reg_field::type_id::create("key_len");
key_len.configure(
.parent(this),
.size(3),
.lsb_pos(1),
.access("RW"),
.volatile(1),
.reset(32'h1),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
manual_start_trigger = dv_base_reg_field::type_id::create("manual_start_trigger");
manual_start_trigger.configure(
.parent(this),
.size(1),
.lsb_pos(4),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
force_data_overwrite = dv_base_reg_field::type_id::create("force_data_overwrite");
force_data_overwrite.configure(
.parent(this),
.size(1),
.lsb_pos(5),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : aes_reg_ctrl
// Class: aes_reg_trigger
class aes_reg_trigger extends dv_base_reg;
// fields
rand dv_base_reg_field start;
rand dv_base_reg_field key_clear;
rand dv_base_reg_field data_out_clear;
`uvm_object_utils(aes_reg_trigger)
function new(string name = "aes_reg_trigger",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
start = dv_base_reg_field::type_id::create("start");
start.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
key_clear = dv_base_reg_field::type_id::create("key_clear");
key_clear.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
data_out_clear = dv_base_reg_field::type_id::create("data_out_clear");
data_out_clear.configure(
.parent(this),
.size(1),
.lsb_pos(2),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : aes_reg_trigger
// Class: aes_reg_status
class aes_reg_status extends dv_base_reg;
// fields
rand dv_base_reg_field idle;
rand dv_base_reg_field stall;
rand dv_base_reg_field output_valid;
rand dv_base_reg_field input_ready;
`uvm_object_utils(aes_reg_status)
function new(string name = "aes_reg_status",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
idle = dv_base_reg_field::type_id::create("idle");
idle.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
stall = dv_base_reg_field::type_id::create("stall");
stall.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
output_valid = dv_base_reg_field::type_id::create("output_valid");
output_valid.configure(
.parent(this),
.size(1),
.lsb_pos(2),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
input_ready = dv_base_reg_field::type_id::create("input_ready");
input_ready.configure(
.parent(this),
.size(1),
.lsb_pos(3),
.access("RO"),
.volatile(1),
.reset(32'h1),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : aes_reg_status
// Class: aes_reg_block
class aes_reg_block extends dv_base_reg_block;
// registers
rand aes_reg_key0 key0;
rand aes_reg_key1 key1;
rand aes_reg_key2 key2;
rand aes_reg_key3 key3;
rand aes_reg_key4 key4;
rand aes_reg_key5 key5;
rand aes_reg_key6 key6;
rand aes_reg_key7 key7;
rand aes_reg_data_in0 data_in0;
rand aes_reg_data_in1 data_in1;
rand aes_reg_data_in2 data_in2;
rand aes_reg_data_in3 data_in3;
rand aes_reg_data_out0 data_out0;
rand aes_reg_data_out1 data_out1;
rand aes_reg_data_out2 data_out2;
rand aes_reg_data_out3 data_out3;
rand aes_reg_ctrl ctrl;
rand aes_reg_trigger trigger;
rand aes_reg_status status;
`uvm_object_utils(aes_reg_block)
function new(string name = "aes_reg_block",
int has_coverage = UVM_NO_COVERAGE);
super.new(name, has_coverage);
endfunction : new
virtual function void build(uvm_reg_addr_t base_addr);
// create default map
this.default_map = create_map(.name("default_map"),
.base_addr(base_addr),
.n_bytes(4),
.endian(UVM_LITTLE_ENDIAN));
// create registers
key0 = aes_reg_key0::type_id::create("key0");
key0.configure(.blk_parent(this));
key0.build();
default_map.add_reg(.rg(key0),
.offset(32'h0),
.rights("WO"));
key1 = aes_reg_key1::type_id::create("key1");
key1.configure(.blk_parent(this));
key1.build();
default_map.add_reg(.rg(key1),
.offset(32'h4),
.rights("WO"));
key2 = aes_reg_key2::type_id::create("key2");
key2.configure(.blk_parent(this));
key2.build();
default_map.add_reg(.rg(key2),
.offset(32'h8),
.rights("WO"));
key3 = aes_reg_key3::type_id::create("key3");
key3.configure(.blk_parent(this));
key3.build();
default_map.add_reg(.rg(key3),
.offset(32'hc),
.rights("WO"));
key4 = aes_reg_key4::type_id::create("key4");
key4.configure(.blk_parent(this));
key4.build();
default_map.add_reg(.rg(key4),
.offset(32'h10),
.rights("WO"));
key5 = aes_reg_key5::type_id::create("key5");
key5.configure(.blk_parent(this));
key5.build();
default_map.add_reg(.rg(key5),
.offset(32'h14),
.rights("WO"));
key6 = aes_reg_key6::type_id::create("key6");
key6.configure(.blk_parent(this));
key6.build();
default_map.add_reg(.rg(key6),
.offset(32'h18),
.rights("WO"));
key7 = aes_reg_key7::type_id::create("key7");
key7.configure(.blk_parent(this));
key7.build();
default_map.add_reg(.rg(key7),
.offset(32'h1c),
.rights("WO"));
data_in0 = aes_reg_data_in0::type_id::create("data_in0");
data_in0.configure(.blk_parent(this));
data_in0.build();
default_map.add_reg(.rg(data_in0),
.offset(32'h20),
.rights("WO"));
data_in1 = aes_reg_data_in1::type_id::create("data_in1");
data_in1.configure(.blk_parent(this));
data_in1.build();
default_map.add_reg(.rg(data_in1),
.offset(32'h24),
.rights("WO"));
data_in2 = aes_reg_data_in2::type_id::create("data_in2");
data_in2.configure(.blk_parent(this));
data_in2.build();
default_map.add_reg(.rg(data_in2),
.offset(32'h28),
.rights("WO"));
data_in3 = aes_reg_data_in3::type_id::create("data_in3");
data_in3.configure(.blk_parent(this));
data_in3.build();
default_map.add_reg(.rg(data_in3),
.offset(32'h2c),
.rights("WO"));
data_out0 = aes_reg_data_out0::type_id::create("data_out0");
data_out0.configure(.blk_parent(this));
data_out0.build();
default_map.add_reg(.rg(data_out0),
.offset(32'h30),
.rights("RO"));
data_out1 = aes_reg_data_out1::type_id::create("data_out1");
data_out1.configure(.blk_parent(this));
data_out1.build();
default_map.add_reg(.rg(data_out1),
.offset(32'h34),
.rights("RO"));
data_out2 = aes_reg_data_out2::type_id::create("data_out2");
data_out2.configure(.blk_parent(this));
data_out2.build();
default_map.add_reg(.rg(data_out2),
.offset(32'h38),
.rights("RO"));
data_out3 = aes_reg_data_out3::type_id::create("data_out3");
data_out3.configure(.blk_parent(this));
data_out3.build();
default_map.add_reg(.rg(data_out3),
.offset(32'h3c),
.rights("RO"));
ctrl = aes_reg_ctrl::type_id::create("ctrl");
ctrl.configure(.blk_parent(this));
ctrl.build();
default_map.add_reg(.rg(ctrl),
.offset(32'h40),
.rights("RW"));
trigger = aes_reg_trigger::type_id::create("trigger");
trigger.configure(.blk_parent(this));
trigger.build();
default_map.add_reg(.rg(trigger),
.offset(32'h44),
.rights("RW"));
status = aes_reg_status::type_id::create("status");
status.configure(.blk_parent(this));
status.build();
default_map.add_reg(.rg(status),
.offset(32'h48),
.rights("RO"));
endfunction : build
endclass : aes_reg_block
`endif
// Block: hmac
`ifndef HMAC_REG_BLOCK__SV
`define HMAC_REG_BLOCK__SV
// Forward declare all register/memory/block classes
typedef class hmac_reg_intr_state;
typedef class hmac_reg_intr_enable;
typedef class hmac_reg_intr_test;
typedef class hmac_reg_cfg;
typedef class hmac_reg_cmd;
typedef class hmac_reg_status;
typedef class hmac_reg_err_code;
typedef class hmac_reg_wipe_secret;
typedef class hmac_reg_key0;
typedef class hmac_reg_key1;
typedef class hmac_reg_key2;
typedef class hmac_reg_key3;
typedef class hmac_reg_key4;
typedef class hmac_reg_key5;
typedef class hmac_reg_key6;
typedef class hmac_reg_key7;
typedef class hmac_reg_digest0;
typedef class hmac_reg_digest1;
typedef class hmac_reg_digest2;
typedef class hmac_reg_digest3;
typedef class hmac_reg_digest4;
typedef class hmac_reg_digest5;
typedef class hmac_reg_digest6;
typedef class hmac_reg_digest7;
typedef class hmac_reg_msg_length_lower;
typedef class hmac_reg_msg_length_upper;
typedef class hmac_mem_msg_fifo;
typedef class hmac_reg_block;
// Class: hmac_reg_intr_state
class hmac_reg_intr_state extends dv_base_reg;
// fields
rand dv_base_reg_field hmac_done;
rand dv_base_reg_field fifo_full;
rand dv_base_reg_field hmac_err;
`uvm_object_utils(hmac_reg_intr_state)
function new(string name = "hmac_reg_intr_state",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
hmac_done = dv_base_reg_field::type_id::create("hmac_done");
hmac_done.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("W1C"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
fifo_full = dv_base_reg_field::type_id::create("fifo_full");
fifo_full.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("W1C"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
hmac_err = dv_base_reg_field::type_id::create("hmac_err");
hmac_err.configure(
.parent(this),
.size(1),
.lsb_pos(2),
.access("W1C"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : hmac_reg_intr_state
// Class: hmac_reg_intr_enable
class hmac_reg_intr_enable extends dv_base_reg;
// fields
rand dv_base_reg_field hmac_done;
rand dv_base_reg_field fifo_full;
rand dv_base_reg_field hmac_err;
`uvm_object_utils(hmac_reg_intr_enable)
function new(string name = "hmac_reg_intr_enable",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
hmac_done = dv_base_reg_field::type_id::create("hmac_done");
hmac_done.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
fifo_full = dv_base_reg_field::type_id::create("fifo_full");
fifo_full.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
hmac_err = dv_base_reg_field::type_id::create("hmac_err");
hmac_err.configure(
.parent(this),
.size(1),
.lsb_pos(2),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : hmac_reg_intr_enable
// Class: hmac_reg_intr_test
class hmac_reg_intr_test extends dv_base_reg;
// fields
rand dv_base_reg_field hmac_done;
rand dv_base_reg_field fifo_full;
rand dv_base_reg_field hmac_err;
`uvm_object_utils(hmac_reg_intr_test)
function new(string name = "hmac_reg_intr_test",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
hmac_done = dv_base_reg_field::type_id::create("hmac_done");
hmac_done.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("WO"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
fifo_full = dv_base_reg_field::type_id::create("fifo_full");
fifo_full.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("WO"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
hmac_err = dv_base_reg_field::type_id::create("hmac_err");
hmac_err.configure(
.parent(this),
.size(1),
.lsb_pos(2),
.access("WO"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : hmac_reg_intr_test
// Class: hmac_reg_cfg
class hmac_reg_cfg extends dv_base_reg;
// fields
rand dv_base_reg_field hmac_en;
rand dv_base_reg_field sha_en;
rand dv_base_reg_field endian_swap;
rand dv_base_reg_field digest_swap;
`uvm_object_utils(hmac_reg_cfg)
function new(string name = "hmac_reg_cfg",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
hmac_en = dv_base_reg_field::type_id::create("hmac_en");
hmac_en.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
sha_en = dv_base_reg_field::type_id::create("sha_en");
sha_en.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endian_swap = dv_base_reg_field::type_id::create("endian_swap");
endian_swap.configure(
.parent(this),
.size(1),
.lsb_pos(2),
.access("RW"),
.volatile(0),
.reset(32'h1),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
digest_swap = dv_base_reg_field::type_id::create("digest_swap");
digest_swap.configure(
.parent(this),
.size(1),
.lsb_pos(3),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : hmac_reg_cfg
// Class: hmac_reg_cmd
class hmac_reg_cmd extends dv_base_reg;
// fields
rand dv_base_reg_field hash_start;
rand dv_base_reg_field hash_process;
`uvm_object_utils(hmac_reg_cmd)
function new(string name = "hmac_reg_cmd",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
hash_start = dv_base_reg_field::type_id::create("hash_start");
hash_start.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("W1C"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
hash_process = dv_base_reg_field::type_id::create("hash_process");
hash_process.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("W1C"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : hmac_reg_cmd
// Class: hmac_reg_status
class hmac_reg_status extends dv_base_reg;
// fields
rand dv_base_reg_field fifo_empty;
rand dv_base_reg_field fifo_full;
rand dv_base_reg_field fifo_depth;
`uvm_object_utils(hmac_reg_status)
function new(string name = "hmac_reg_status",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
fifo_empty = dv_base_reg_field::type_id::create("fifo_empty");
fifo_empty.configure(
.parent(this),
.size(1),
.lsb_pos(0),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
fifo_full = dv_base_reg_field::type_id::create("fifo_full");
fifo_full.configure(
.parent(this),
.size(1),
.lsb_pos(1),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
fifo_depth = dv_base_reg_field::type_id::create("fifo_depth");
fifo_depth.configure(
.parent(this),
.size(5),
.lsb_pos(4),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : hmac_reg_status
// Class: hmac_reg_err_code
class hmac_reg_err_code extends dv_base_reg;
// fields
rand dv_base_reg_field err_code;
`uvm_object_utils(hmac_reg_err_code)
function new(string name = "hmac_reg_err_code",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
err_code = dv_base_reg_field::type_id::create("err_code");
err_code.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : hmac_reg_err_code
// Class: hmac_reg_wipe_secret
class hmac_reg_wipe_secret extends dv_base_reg;
// fields
rand dv_base_reg_field secret;
`uvm_object_utils(hmac_reg_wipe_secret)
function new(string name = "hmac_reg_wipe_secret",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
secret = dv_base_reg_field::type_id::create("secret");
secret.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("WO"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : hmac_reg_wipe_secret
// Class: hmac_reg_key0
class hmac_reg_key0 extends dv_base_reg;
// fields
rand dv_base_reg_field key0;
`uvm_object_utils(hmac_reg_key0)
function new(string name = "hmac_reg_key0",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
key0 = dv_base_reg_field::type_id::create("key0");
key0.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("WO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : hmac_reg_key0
// Class: hmac_reg_key1
class hmac_reg_key1 extends dv_base_reg;
// fields
rand dv_base_reg_field key1;
`uvm_object_utils(hmac_reg_key1)
function new(string name = "hmac_reg_key1",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
key1 = dv_base_reg_field::type_id::create("key1");
key1.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("WO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : hmac_reg_key1
// Class: hmac_reg_key2
class hmac_reg_key2 extends dv_base_reg;
// fields
rand dv_base_reg_field key2;
`uvm_object_utils(hmac_reg_key2)
function new(string name = "hmac_reg_key2",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
key2 = dv_base_reg_field::type_id::create("key2");
key2.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("WO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : hmac_reg_key2
// Class: hmac_reg_key3
class hmac_reg_key3 extends dv_base_reg;
// fields
rand dv_base_reg_field key3;
`uvm_object_utils(hmac_reg_key3)
function new(string name = "hmac_reg_key3",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
key3 = dv_base_reg_field::type_id::create("key3");
key3.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("WO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : hmac_reg_key3
// Class: hmac_reg_key4
class hmac_reg_key4 extends dv_base_reg;
// fields
rand dv_base_reg_field key4;
`uvm_object_utils(hmac_reg_key4)
function new(string name = "hmac_reg_key4",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
key4 = dv_base_reg_field::type_id::create("key4");
key4.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("WO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : hmac_reg_key4
// Class: hmac_reg_key5
class hmac_reg_key5 extends dv_base_reg;
// fields
rand dv_base_reg_field key5;
`uvm_object_utils(hmac_reg_key5)
function new(string name = "hmac_reg_key5",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
key5 = dv_base_reg_field::type_id::create("key5");
key5.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("WO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : hmac_reg_key5
// Class: hmac_reg_key6
class hmac_reg_key6 extends dv_base_reg;
// fields
rand dv_base_reg_field key6;
`uvm_object_utils(hmac_reg_key6)
function new(string name = "hmac_reg_key6",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
key6 = dv_base_reg_field::type_id::create("key6");
key6.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("WO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : hmac_reg_key6
// Class: hmac_reg_key7
class hmac_reg_key7 extends dv_base_reg;
// fields
rand dv_base_reg_field key7;
`uvm_object_utils(hmac_reg_key7)
function new(string name = "hmac_reg_key7",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
key7 = dv_base_reg_field::type_id::create("key7");
key7.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("WO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : hmac_reg_key7
// Class: hmac_reg_digest0
class hmac_reg_digest0 extends dv_base_reg;
// fields
rand dv_base_reg_field digest0;
`uvm_object_utils(hmac_reg_digest0)
function new(string name = "hmac_reg_digest0",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
digest0 = dv_base_reg_field::type_id::create("digest0");
digest0.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : hmac_reg_digest0
// Class: hmac_reg_digest1
class hmac_reg_digest1 extends dv_base_reg;
// fields
rand dv_base_reg_field digest1;
`uvm_object_utils(hmac_reg_digest1)
function new(string name = "hmac_reg_digest1",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
digest1 = dv_base_reg_field::type_id::create("digest1");
digest1.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : hmac_reg_digest1
// Class: hmac_reg_digest2
class hmac_reg_digest2 extends dv_base_reg;
// fields
rand dv_base_reg_field digest2;
`uvm_object_utils(hmac_reg_digest2)
function new(string name = "hmac_reg_digest2",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
digest2 = dv_base_reg_field::type_id::create("digest2");
digest2.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : hmac_reg_digest2
// Class: hmac_reg_digest3
class hmac_reg_digest3 extends dv_base_reg;
// fields
rand dv_base_reg_field digest3;
`uvm_object_utils(hmac_reg_digest3)
function new(string name = "hmac_reg_digest3",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
digest3 = dv_base_reg_field::type_id::create("digest3");
digest3.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : hmac_reg_digest3
// Class: hmac_reg_digest4
class hmac_reg_digest4 extends dv_base_reg;
// fields
rand dv_base_reg_field digest4;
`uvm_object_utils(hmac_reg_digest4)
function new(string name = "hmac_reg_digest4",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
digest4 = dv_base_reg_field::type_id::create("digest4");
digest4.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : hmac_reg_digest4
// Class: hmac_reg_digest5
class hmac_reg_digest5 extends dv_base_reg;
// fields
rand dv_base_reg_field digest5;
`uvm_object_utils(hmac_reg_digest5)
function new(string name = "hmac_reg_digest5",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
digest5 = dv_base_reg_field::type_id::create("digest5");
digest5.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : hmac_reg_digest5
// Class: hmac_reg_digest6
class hmac_reg_digest6 extends dv_base_reg;
// fields
rand dv_base_reg_field digest6;
`uvm_object_utils(hmac_reg_digest6)
function new(string name = "hmac_reg_digest6",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
digest6 = dv_base_reg_field::type_id::create("digest6");
digest6.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : hmac_reg_digest6
// Class: hmac_reg_digest7
class hmac_reg_digest7 extends dv_base_reg;
// fields
rand dv_base_reg_field digest7;
`uvm_object_utils(hmac_reg_digest7)
function new(string name = "hmac_reg_digest7",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
digest7 = dv_base_reg_field::type_id::create("digest7");
digest7.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : hmac_reg_digest7
// Class: hmac_reg_msg_length_lower
class hmac_reg_msg_length_lower extends dv_base_reg;
// fields
rand dv_base_reg_field v;
`uvm_object_utils(hmac_reg_msg_length_lower)
function new(string name = "hmac_reg_msg_length_lower",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
v = dv_base_reg_field::type_id::create("v");
v.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : hmac_reg_msg_length_lower
// Class: hmac_reg_msg_length_upper
class hmac_reg_msg_length_upper extends dv_base_reg;
// fields
rand dv_base_reg_field v;
`uvm_object_utils(hmac_reg_msg_length_upper)
function new(string name = "hmac_reg_msg_length_upper",
int unsigned n_bits = 32,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, n_bits, has_coverage);
endfunction : new
virtual function void build();
// create fields
v = dv_base_reg_field::type_id::create("v");
v.configure(
.parent(this),
.size(32),
.lsb_pos(0),
.access("RO"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : hmac_reg_msg_length_upper
// Class: hmac_mem_msg_fifo
class hmac_mem_msg_fifo extends dv_base_mem;
`uvm_object_utils(hmac_mem_msg_fifo)
function new(string name = "hmac_mem_msg_fifo",
longint unsigned size = 512,
int unsigned n_bits = 32,
string access = "RW"/* TODO:"WO"*/,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, size, n_bits, access, has_coverage);
endfunction : new
endclass : hmac_mem_msg_fifo
// Class: hmac_reg_block
class hmac_reg_block extends dv_base_reg_block;
// registers
rand hmac_reg_intr_state intr_state;
rand hmac_reg_intr_enable intr_enable;
rand hmac_reg_intr_test intr_test;
rand hmac_reg_cfg cfg;
rand hmac_reg_cmd cmd;
rand hmac_reg_status status;
rand hmac_reg_err_code err_code;
rand hmac_reg_wipe_secret wipe_secret;
rand hmac_reg_key0 key0;
rand hmac_reg_key1 key1;
rand hmac_reg_key2 key2;
rand hmac_reg_key3 key3;
rand hmac_reg_key4 key4;
rand hmac_reg_key5 key5;
rand hmac_reg_key6 key6;
rand hmac_reg_key7 key7;
rand hmac_reg_digest0 digest0;
rand hmac_reg_digest1 digest1;
rand hmac_reg_digest2 digest2;
rand hmac_reg_digest3 digest3;
rand hmac_reg_digest4 digest4;
rand hmac_reg_digest5 digest5;
rand hmac_reg_digest6 digest6;
rand hmac_reg_digest7 digest7;
rand hmac_reg_msg_length_lower msg_length_lower;
rand hmac_reg_msg_length_upper msg_length_upper;
// memories
rand hmac_mem_msg_fifo msg_fifo;
`uvm_object_utils(hmac_reg_block)
function new(string name = "hmac_reg_block",
int has_coverage = UVM_NO_COVERAGE);
super.new(name, has_coverage);
endfunction : new
virtual function void build(uvm_reg_addr_t base_addr);
// create default map
this.default_map = create_map(.name("default_map"),
.base_addr(base_addr),
.n_bytes(4),
.endian(UVM_LITTLE_ENDIAN));
// create registers
intr_state = hmac_reg_intr_state::type_id::create("intr_state");
intr_state.configure(.blk_parent(this));
intr_state.build();
default_map.add_reg(.rg(intr_state),
.offset(32'h0),
.rights("RW"));
intr_enable = hmac_reg_intr_enable::type_id::create("intr_enable");
intr_enable.configure(.blk_parent(this));
intr_enable.build();
default_map.add_reg(.rg(intr_enable),
.offset(32'h4),
.rights("RW"));
intr_test = hmac_reg_intr_test::type_id::create("intr_test");
intr_test.configure(.blk_parent(this));
intr_test.build();
default_map.add_reg(.rg(intr_test),
.offset(32'h8),
.rights("WO"));
cfg = hmac_reg_cfg::type_id::create("cfg");
cfg.configure(.blk_parent(this));
cfg.build();
default_map.add_reg(.rg(cfg),
.offset(32'hc),
.rights("RW"));
cmd = hmac_reg_cmd::type_id::create("cmd");
cmd.configure(.blk_parent(this));
cmd.build();
default_map.add_reg(.rg(cmd),
.offset(32'h10),
.rights("RW"));
status = hmac_reg_status::type_id::create("status");
status.configure(.blk_parent(this));
status.build();
default_map.add_reg(.rg(status),
.offset(32'h14),
.rights("RO"));
err_code = hmac_reg_err_code::type_id::create("err_code");
err_code.configure(.blk_parent(this));
err_code.build();
default_map.add_reg(.rg(err_code),
.offset(32'h18),
.rights("RO"));
wipe_secret = hmac_reg_wipe_secret::type_id::create("wipe_secret");
wipe_secret.configure(.blk_parent(this));
wipe_secret.build();
default_map.add_reg(.rg(wipe_secret),
.offset(32'h1c),
.rights("WO"));
key0 = hmac_reg_key0::type_id::create("key0");
key0.configure(.blk_parent(this));
key0.build();
default_map.add_reg(.rg(key0),
.offset(32'h20),
.rights("WO"));
key1 = hmac_reg_key1::type_id::create("key1");
key1.configure(.blk_parent(this));
key1.build();
default_map.add_reg(.rg(key1),
.offset(32'h24),
.rights("WO"));
key2 = hmac_reg_key2::type_id::create("key2");
key2.configure(.blk_parent(this));
key2.build();
default_map.add_reg(.rg(key2),
.offset(32'h28),
.rights("WO"));
key3 = hmac_reg_key3::type_id::create("key3");
key3.configure(.blk_parent(this));
key3.build();
default_map.add_reg(.rg(key3),
.offset(32'h2c),
.rights("WO"));
key4 = hmac_reg_key4::type_id::create("key4");
key4.configure(.blk_parent(this));
key4.build();
default_map.add_reg(.rg(key4),
.offset(32'h30),
.rights("WO"));
key5 = hmac_reg_key5::type_id::create("key5");
key5.configure(.blk_parent(this));
key5.build();
default_map.add_reg(.rg(key5),
.offset(32'h34),
.rights("WO"));
key6 = hmac_reg_key6::type_id::create("key6");
key6.configure(.blk_parent(this));
key6.build();
default_map.add_reg(.rg(key6),
.offset(32'h38),
.rights("WO"));
key7 = hmac_reg_key7::type_id::create("key7");
key7.configure(.blk_parent(this));
key7.build();
default_map.add_reg(.rg(key7),
.offset(32'h3c),
.rights("WO"));
digest0 = hmac_reg_digest0::type_id::create("digest0");
digest0.configure(.blk_parent(this));
digest0.build();
default_map.add_reg(.rg(digest0),
.offset(32'h40),
.rights("RO"));
digest1 = hmac_reg_digest1::type_id::create("digest1");
digest1.configure(.blk_parent(this));
digest1.build();
default_map.add_reg(.rg(digest1),
.offset(32'h44),
.rights("RO"));
digest2 = hmac_reg_digest2::type_id::create("digest2");
digest2.configure(.blk_parent(this));
digest2.build();
default_map.add_reg(.rg(digest2),
.offset(32'h48),
.rights("RO"));
digest3 = hmac_reg_digest3::type_id::create("digest3");
digest3.configure(.blk_parent(this));
digest3.build();
default_map.add_reg(.rg(digest3),
.offset(32'h4c),
.rights("RO"));
digest4 = hmac_reg_digest4::type_id::create("digest4");
digest4.configure(.blk_parent(this));
digest4.build();
default_map.add_reg(.rg(digest4),
.offset(32'h50),
.rights("RO"));
digest5 = hmac_reg_digest5::type_id::create("digest5");
digest5.configure(.blk_parent(this));
digest5.build();
default_map.add_reg(.rg(digest5),
.offset(32'h54),
.rights("RO"));
digest6 = hmac_reg_digest6::type_id::create("digest6");
digest6.configure(.blk_parent(this));
digest6.build();
default_map.add_reg(.rg(digest6),
.offset(32'h58),
.rights("RO"));
digest7 = hmac_reg_digest7::type_id::create("digest7");
digest7.configure(.blk_parent(this));
digest7.build();
default_map.add_reg(.rg(digest7),
.offset(32'h5c),
.rights("RO"));
msg_length_lower = hmac_reg_msg_length_lower::type_id::create("msg_length_lower");
msg_length_lower.configure(.blk_parent(this));
msg_length_lower.build();
default_map.add_reg(.rg(msg_length_lower),
.offset(32'h60),
.rights("RO"));
msg_length_upper = hmac_reg_msg_length_upper::type_id::create("msg_length_upper");
msg_length_upper.configure(.blk_parent(this));
msg_length_upper.build();
default_map.add_reg(.rg(msg_length_upper),
.offset(32'h64),
.rights("RO"));
// create memories
msg_fifo = hmac_mem_msg_fifo::type_id::create("msg_fifo");
msg_fifo.configure(.parent(this));
default_map.add_mem(.mem(msg_fifo),
.offset(32'h800),
.rights("WO"));
endfunction : build
endclass : hmac_reg_block
`endif
// Block: chip
`ifndef CHIP_REG_BLOCK__SV
`define CHIP_REG_BLOCK__SV
// Forward declare all register/memory/block classes
typedef class chip_mem_rom;
typedef class chip_mem_ram_main;
typedef class chip_mem_eflash;
typedef class chip_reg_block;
// Class: chip_mem_rom
class chip_mem_rom extends dv_base_mem;
`uvm_object_utils(chip_mem_rom)
function new(string name = "chip_mem_rom",
longint unsigned size = 2048,
int unsigned n_bits = 32,
string access = "RW"/* TODO:"RW"*/,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, size, n_bits, access, has_coverage);
endfunction : new
endclass : chip_mem_rom
// Class: chip_mem_ram_main
class chip_mem_ram_main extends dv_base_mem;
`uvm_object_utils(chip_mem_ram_main)
function new(string name = "chip_mem_ram_main",
longint unsigned size = 16384,
int unsigned n_bits = 32,
string access = "RW"/* TODO:"RW"*/,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, size, n_bits, access, has_coverage);
endfunction : new
endclass : chip_mem_ram_main
// Class: chip_mem_eflash
class chip_mem_eflash extends dv_base_mem;
`uvm_object_utils(chip_mem_eflash)
function new(string name = "chip_mem_eflash",
longint unsigned size = 131072,
int unsigned n_bits = 32,
string access = "RW"/* TODO:"RW"*/,
int has_coverage = UVM_NO_COVERAGE);
super.new(name, size, n_bits, access, has_coverage);
endfunction : new
endclass : chip_mem_eflash
// Class: chip_reg_block
class chip_reg_block extends dv_base_reg_block;
// sub blocks
rand uart_reg_block uart;
rand gpio_reg_block gpio;
rand spi_device_reg_block spi_device;
rand flash_ctrl_reg_block flash_ctrl;
rand rv_timer_reg_block rv_timer;
rand aes_reg_block aes;
rand rv_plic_reg_block rv_plic;
rand aes_reg_block aes;
rand hmac_reg_block hmac;
// memories
rand chip_mem_rom rom;
rand chip_mem_ram_main ram_main;
rand chip_mem_eflash eflash;
`uvm_object_utils(chip_reg_block)
function new(string name = "chip_reg_block",
int has_coverage = UVM_NO_COVERAGE);
super.new(name, has_coverage);
endfunction : new
virtual function void build(uvm_reg_addr_t base_addr);
// create default map
this.default_map = create_map(.name("default_map"),
.base_addr(base_addr),
.n_bytes(4),
.endian(UVM_LITTLE_ENDIAN));
// create sub blocks and add their maps
uart = uart_reg_block::type_id::create("uart");
uart.configure(.parent(this));
uart.build(.base_addr(base_addr + 32'h40000000));
default_map.add_submap(.child_map(uart.default_map),
.offset(base_addr + 32'h40000000));
gpio = gpio_reg_block::type_id::create("gpio");
gpio.configure(.parent(this));
gpio.build(.base_addr(base_addr + 32'h40010000));
default_map.add_submap(.child_map(gpio.default_map),
.offset(base_addr + 32'h40010000));
spi_device = spi_device_reg_block::type_id::create("spi_device");
spi_device.configure(.parent(this));
spi_device.build(.base_addr(base_addr + 32'h40020000));
default_map.add_submap(.child_map(spi_device.default_map),
.offset(base_addr + 32'h40020000));
flash_ctrl = flash_ctrl_reg_block::type_id::create("flash_ctrl");
flash_ctrl.configure(.parent(this));
flash_ctrl.build(.base_addr(base_addr + 32'h40030000));
default_map.add_submap(.child_map(flash_ctrl.default_map),
.offset(base_addr + 32'h40030000));
rv_timer = rv_timer_reg_block::type_id::create("rv_timer");
rv_timer.configure(.parent(this));
rv_timer.build(.base_addr(base_addr + 32'h40080000));
default_map.add_submap(.child_map(rv_timer.default_map),
.offset(base_addr + 32'h40080000));
aes = aes_reg_block::type_id::create("aes");
aes.configure(.parent(this));
aes.build(.base_addr(base_addr + 32'h40110000));
default_map.add_submap(.child_map(aes.default_map),
.offset(base_addr + 32'h40110000));
rv_plic = rv_plic_reg_block::type_id::create("rv_plic");
rv_plic.configure(.parent(this));
rv_plic.build(.base_addr(base_addr + 32'h40090000));
default_map.add_submap(.child_map(rv_plic.default_map),
.offset(base_addr + 32'h40090000));
aes = aes_reg_block::type_id::create("aes");
aes.configure(.parent(this));
aes.build(.base_addr(base_addr + 32'h40110000));
default_map.add_submap(.child_map(aes.default_map),
.offset(base_addr + 32'h40110000));
hmac = hmac_reg_block::type_id::create("hmac");
hmac.configure(.parent(this));
hmac.build(.base_addr(base_addr + 32'h40120000));
default_map.add_submap(.child_map(hmac.default_map),
.offset(base_addr + 32'h40120000));
// create memories
rom = chip_mem_rom::type_id::create("rom");
rom.configure(.parent(this));
default_map.add_mem(.mem(rom),
.offset(32'h8000),
.rights("RW"));
ram_main = chip_mem_ram_main::type_id::create("ram_main");
ram_main.configure(.parent(this));
default_map.add_mem(.mem(ram_main),
.offset(32'h10000000),
.rights("RW"));
eflash = chip_mem_eflash::type_id::create("eflash");
eflash.configure(.parent(this));
default_map.add_mem(.mem(eflash),
.offset(32'h20000000),
.rights("RW"));
endfunction : build
endclass : chip_reg_block
`endif