Add support for user defined enums in field encode property. #29

This commit is contained in:
Hugh Jackson
2022-08-14 18:13:41 +01:00
committed by Alex Mykyta
parent 80f670bf30
commit 0c7e493976
9 changed files with 104 additions and 5 deletions

View File

View File

@@ -0,0 +1,12 @@
addrmap top {
enum my_enum {
val_1 = 3 {name = "Value 1";};
val_2 = 4 {desc = "Second value";};
};
reg {
field {
encode = my_enum;
sw=rw; hw=na;
} f[2:0] = my_enum::val_2;
} r0;
};

View File

@@ -0,0 +1,22 @@
{% extends "lib/tb_base.sv" %}
{% block seq %}
{% sv_line_anchor %}
##1;
cb.rst <= '0;
##1;
// check enum values
assert(regblock_pkg::top__my_enum__val_1 == 'd3);
assert(regblock_pkg::top__my_enum__val_2 == 'd4);
// check initial conditions
cpuif.assert_read('h0, regblock_pkg::top__my_enum__val_2);
//---------------------------------
// set r0 = val_1
cpuif.write('h0, regblock_pkg::top__my_enum__val_1);
cpuif.assert_read('h0, regblock_pkg::top__my_enum__val_1);
{% endblock %}

View File

@@ -0,0 +1,5 @@
from ..lib.sim_testcase import SimTestCase
class Test(SimTestCase):
def test_dut(self):
self.run_test()