blob: 01e9e61a41a3162abaaf0e3069fbfeca31dcdeaa [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: padctrl
`ifndef PADCTRL_REG_BLOCK__SV
`define PADCTRL_REG_BLOCK__SV
// Forward declare all register/memory/block classes
typedef class padctrl_reg_regen;
typedef class padctrl_reg_dio_pads;
typedef class padctrl_reg_mio_pads0;
typedef class padctrl_reg_mio_pads1;
typedef class padctrl_reg_mio_pads2;
typedef class padctrl_reg_mio_pads3;
typedef class padctrl_reg_block;
// Class: padctrl_reg_regen
class padctrl_reg_regen extends dv_base_reg;
// fields
rand dv_base_reg_field regen;
`uvm_object_utils(padctrl_reg_regen)
function new(string name = "padctrl_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(32'h1),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : padctrl_reg_regen
// Class: padctrl_reg_dio_pads
class padctrl_reg_dio_pads extends dv_base_reg;
// fields
rand dv_base_reg_field attr0;
rand dv_base_reg_field attr1;
rand dv_base_reg_field attr2;
rand dv_base_reg_field attr3;
`uvm_object_utils(padctrl_reg_dio_pads)
function new(string name = "padctrl_reg_dio_pads",
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
attr0 = dv_base_reg_field::type_id::create("attr0");
attr0.configure(
.parent(this),
.size(8),
.lsb_pos(0),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
attr1 = dv_base_reg_field::type_id::create("attr1");
attr1.configure(
.parent(this),
.size(8),
.lsb_pos(8),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
attr2 = dv_base_reg_field::type_id::create("attr2");
attr2.configure(
.parent(this),
.size(8),
.lsb_pos(16),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
attr3 = dv_base_reg_field::type_id::create("attr3");
attr3.configure(
.parent(this),
.size(8),
.lsb_pos(24),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : padctrl_reg_dio_pads
// Class: padctrl_reg_mio_pads0
class padctrl_reg_mio_pads0 extends dv_base_reg;
// fields
rand dv_base_reg_field attr0;
rand dv_base_reg_field attr1;
rand dv_base_reg_field attr2;
rand dv_base_reg_field attr3;
`uvm_object_utils(padctrl_reg_mio_pads0)
function new(string name = "padctrl_reg_mio_pads0",
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
attr0 = dv_base_reg_field::type_id::create("attr0");
attr0.configure(
.parent(this),
.size(8),
.lsb_pos(0),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
attr1 = dv_base_reg_field::type_id::create("attr1");
attr1.configure(
.parent(this),
.size(8),
.lsb_pos(8),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
attr2 = dv_base_reg_field::type_id::create("attr2");
attr2.configure(
.parent(this),
.size(8),
.lsb_pos(16),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
attr3 = dv_base_reg_field::type_id::create("attr3");
attr3.configure(
.parent(this),
.size(8),
.lsb_pos(24),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : padctrl_reg_mio_pads0
// Class: padctrl_reg_mio_pads1
class padctrl_reg_mio_pads1 extends dv_base_reg;
// fields
rand dv_base_reg_field attr4;
rand dv_base_reg_field attr5;
rand dv_base_reg_field attr6;
rand dv_base_reg_field attr7;
`uvm_object_utils(padctrl_reg_mio_pads1)
function new(string name = "padctrl_reg_mio_pads1",
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
attr4 = dv_base_reg_field::type_id::create("attr4");
attr4.configure(
.parent(this),
.size(8),
.lsb_pos(0),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
attr5 = dv_base_reg_field::type_id::create("attr5");
attr5.configure(
.parent(this),
.size(8),
.lsb_pos(8),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
attr6 = dv_base_reg_field::type_id::create("attr6");
attr6.configure(
.parent(this),
.size(8),
.lsb_pos(16),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
attr7 = dv_base_reg_field::type_id::create("attr7");
attr7.configure(
.parent(this),
.size(8),
.lsb_pos(24),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : padctrl_reg_mio_pads1
// Class: padctrl_reg_mio_pads2
class padctrl_reg_mio_pads2 extends dv_base_reg;
// fields
rand dv_base_reg_field attr8;
rand dv_base_reg_field attr9;
rand dv_base_reg_field attr10;
rand dv_base_reg_field attr11;
`uvm_object_utils(padctrl_reg_mio_pads2)
function new(string name = "padctrl_reg_mio_pads2",
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
attr8 = dv_base_reg_field::type_id::create("attr8");
attr8.configure(
.parent(this),
.size(8),
.lsb_pos(0),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
attr9 = dv_base_reg_field::type_id::create("attr9");
attr9.configure(
.parent(this),
.size(8),
.lsb_pos(8),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
attr10 = dv_base_reg_field::type_id::create("attr10");
attr10.configure(
.parent(this),
.size(8),
.lsb_pos(16),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
attr11 = dv_base_reg_field::type_id::create("attr11");
attr11.configure(
.parent(this),
.size(8),
.lsb_pos(24),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : padctrl_reg_mio_pads2
// Class: padctrl_reg_mio_pads3
class padctrl_reg_mio_pads3 extends dv_base_reg;
// fields
rand dv_base_reg_field attr12;
rand dv_base_reg_field attr13;
rand dv_base_reg_field attr14;
rand dv_base_reg_field attr15;
`uvm_object_utils(padctrl_reg_mio_pads3)
function new(string name = "padctrl_reg_mio_pads3",
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
attr12 = dv_base_reg_field::type_id::create("attr12");
attr12.configure(
.parent(this),
.size(8),
.lsb_pos(0),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
attr13 = dv_base_reg_field::type_id::create("attr13");
attr13.configure(
.parent(this),
.size(8),
.lsb_pos(8),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
attr14 = dv_base_reg_field::type_id::create("attr14");
attr14.configure(
.parent(this),
.size(8),
.lsb_pos(16),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
attr15 = dv_base_reg_field::type_id::create("attr15");
attr15.configure(
.parent(this),
.size(8),
.lsb_pos(24),
.access("RW"),
.volatile(1),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : padctrl_reg_mio_pads3
// Class: padctrl_reg_block
class padctrl_reg_block extends dv_base_reg_block;
// registers
rand padctrl_reg_regen regen;
rand padctrl_reg_dio_pads dio_pads;
rand padctrl_reg_mio_pads0 mio_pads0;
rand padctrl_reg_mio_pads1 mio_pads1;
rand padctrl_reg_mio_pads2 mio_pads2;
rand padctrl_reg_mio_pads3 mio_pads3;
`uvm_object_utils(padctrl_reg_block)
function new(string name = "padctrl_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 = padctrl_reg_regen::type_id::create("regen");
regen.configure(.blk_parent(this));
regen.build();
default_map.add_reg(.rg(regen),
.offset(32'h0),
.rights("RW"));
dio_pads = padctrl_reg_dio_pads::type_id::create("dio_pads");
dio_pads.configure(.blk_parent(this));
dio_pads.build();
default_map.add_reg(.rg(dio_pads),
.offset(32'h4),
.rights("RW"));
mio_pads0 = padctrl_reg_mio_pads0::type_id::create("mio_pads0");
mio_pads0.configure(.blk_parent(this));
mio_pads0.build();
default_map.add_reg(.rg(mio_pads0),
.offset(32'h8),
.rights("RW"));
mio_pads1 = padctrl_reg_mio_pads1::type_id::create("mio_pads1");
mio_pads1.configure(.blk_parent(this));
mio_pads1.build();
default_map.add_reg(.rg(mio_pads1),
.offset(32'hc),
.rights("RW"));
mio_pads2 = padctrl_reg_mio_pads2::type_id::create("mio_pads2");
mio_pads2.configure(.blk_parent(this));
mio_pads2.build();
default_map.add_reg(.rg(mio_pads2),
.offset(32'h10),
.rights("RW"));
mio_pads3 = padctrl_reg_mio_pads3::type_id::create("mio_pads3");
mio_pads3.configure(.blk_parent(this));
mio_pads3.build();
default_map.add_reg(.rg(mio_pads3),
.offset(32'h14),
.rights("RW"));
endfunction : build
endclass : padctrl_reg_block
`endif