blob: bac5dae610651565759506e5be22a6cdbf510135 [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: pinmux
`ifndef PINMUX_REG_BLOCK__SV
`define PINMUX_REG_BLOCK__SV
// Forward declare all register/memory/block classes
typedef class pinmux_reg_regen;
typedef class pinmux_reg_periph_insel0;
typedef class pinmux_reg_periph_insel1;
typedef class pinmux_reg_mio_outsel0;
typedef class pinmux_reg_mio_outsel1;
typedef class pinmux_reg_block;
// 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(32'h1),
.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;
rand dv_base_reg_field in5;
rand dv_base_reg_field in6;
rand dv_base_reg_field in7;
`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(4),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
in1 = dv_base_reg_field::type_id::create("in1");
in1.configure(
.parent(this),
.size(4),
.lsb_pos(4),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
in2 = dv_base_reg_field::type_id::create("in2");
in2.configure(
.parent(this),
.size(4),
.lsb_pos(8),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
in3 = dv_base_reg_field::type_id::create("in3");
in3.configure(
.parent(this),
.size(4),
.lsb_pos(12),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
in4 = dv_base_reg_field::type_id::create("in4");
in4.configure(
.parent(this),
.size(4),
.lsb_pos(16),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
in5 = dv_base_reg_field::type_id::create("in5");
in5.configure(
.parent(this),
.size(4),
.lsb_pos(20),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
in6 = dv_base_reg_field::type_id::create("in6");
in6.configure(
.parent(this),
.size(4),
.lsb_pos(24),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
in7 = dv_base_reg_field::type_id::create("in7");
in7.configure(
.parent(this),
.size(4),
.lsb_pos(28),
.access("RW"),
.volatile(0),
.reset(32'h0),
.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 in8;
rand dv_base_reg_field in9;
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;
rand dv_base_reg_field in15;
`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
in8 = dv_base_reg_field::type_id::create("in8");
in8.configure(
.parent(this),
.size(4),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
in9 = dv_base_reg_field::type_id::create("in9");
in9.configure(
.parent(this),
.size(4),
.lsb_pos(4),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
in10 = dv_base_reg_field::type_id::create("in10");
in10.configure(
.parent(this),
.size(4),
.lsb_pos(8),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
in11 = dv_base_reg_field::type_id::create("in11");
in11.configure(
.parent(this),
.size(4),
.lsb_pos(12),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
in12 = dv_base_reg_field::type_id::create("in12");
in12.configure(
.parent(this),
.size(4),
.lsb_pos(16),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
in13 = dv_base_reg_field::type_id::create("in13");
in13.configure(
.parent(this),
.size(4),
.lsb_pos(20),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
in14 = dv_base_reg_field::type_id::create("in14");
in14.configure(
.parent(this),
.size(4),
.lsb_pos(24),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
in15 = dv_base_reg_field::type_id::create("in15");
in15.configure(
.parent(this),
.size(4),
.lsb_pos(28),
.access("RW"),
.volatile(0),
.reset(32'h0),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : pinmux_reg_periph_insel1
// 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;
rand dv_base_reg_field out5;
`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(5),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h2),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
out1 = dv_base_reg_field::type_id::create("out1");
out1.configure(
.parent(this),
.size(5),
.lsb_pos(5),
.access("RW"),
.volatile(0),
.reset(32'h2),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
out2 = dv_base_reg_field::type_id::create("out2");
out2.configure(
.parent(this),
.size(5),
.lsb_pos(10),
.access("RW"),
.volatile(0),
.reset(32'h2),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
out3 = dv_base_reg_field::type_id::create("out3");
out3.configure(
.parent(this),
.size(5),
.lsb_pos(15),
.access("RW"),
.volatile(0),
.reset(32'h2),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
out4 = dv_base_reg_field::type_id::create("out4");
out4.configure(
.parent(this),
.size(5),
.lsb_pos(20),
.access("RW"),
.volatile(0),
.reset(32'h2),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
out5 = dv_base_reg_field::type_id::create("out5");
out5.configure(
.parent(this),
.size(5),
.lsb_pos(25),
.access("RW"),
.volatile(0),
.reset(32'h2),
.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 out6;
rand dv_base_reg_field out7;
`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
out6 = dv_base_reg_field::type_id::create("out6");
out6.configure(
.parent(this),
.size(5),
.lsb_pos(0),
.access("RW"),
.volatile(0),
.reset(32'h2),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
out7 = dv_base_reg_field::type_id::create("out7");
out7.configure(
.parent(this),
.size(5),
.lsb_pos(5),
.access("RW"),
.volatile(0),
.reset(32'h2),
.has_reset(1),
.is_rand(1),
.individually_accessible(1));
endfunction : build
endclass : pinmux_reg_mio_outsel1
// 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_mio_outsel0 mio_outsel0;
rand pinmux_reg_mio_outsel1 mio_outsel1;
`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"));
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'hc),
.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'h10),
.rights("RW"));
endfunction : build
endclass : pinmux_reg_block
`endif