OpenCores
URL https://opencores.org/ocsvn/lpffir/lpffir/trunk

Subversion Repositories lpffir

[/] [lpffir/] [trunk/] [uvm/] [tools/] [easier_uvm_gen/] [examples/] [multi_if/] [regmodel.sv] - Blame information for rev 4

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 4 vladimirar
class dummy_reg extends uvm_reg;
2
   `uvm_object_utils(dummy_reg)
3
 
4
   rand uvm_reg_field F;
5
 
6
   function new(string name = "");
7
      super.new(name, 8, UVM_NO_COVERAGE);
8
   endfunction
9
 
10
   virtual function void build();
11
      F = uvm_reg_field::type_id::create("F");
12
      F.configure(this, 8, 0, "RW", 1, 8'h00, 1, 1, 1);
13
   endfunction
14
endclass
15
 
16
 
17
class bus1_reg_block extends uvm_reg_block;
18
   `uvm_object_utils(bus1_reg_block)
19
 
20
   rand dummy_reg reg0;
21
 
22
   uvm_reg_map bus1_map; // Code gen seems to demand exactly this name!?????
23
 
24
   function new(string name = "");
25
      super.new(name, UVM_NO_COVERAGE);
26
   endfunction
27
 
28
   virtual function void build();
29
      reg0 = dummy_reg::type_id::create("reg0");
30
      reg0.configure(this);
31
      reg0.build();
32
 
33
      bus1_map = create_map("bus1_map", 'h0, 1, UVM_LITTLE_ENDIAN);
34
      default_map = bus1_map;
35
 
36
      bus1_map.add_reg(reg0, 'h0, "RW");
37
 
38
      lock_model();
39
   endfunction
40
endclass
41
 
42
 
43
class bus2_reg_block extends uvm_reg_block;
44
   `uvm_object_utils(bus2_reg_block)
45
 
46
   rand dummy_reg reg0;
47
 
48
   uvm_reg_map bus2_map;
49
 
50
   function new(string name = "");
51
      super.new(name, UVM_NO_COVERAGE);
52
   endfunction
53
 
54
   virtual function void build();
55
      reg0 = dummy_reg::type_id::create("reg0");
56
      reg0.configure(this);
57
      reg0.build();
58
 
59
      bus2_map = create_map("bus2_map", 'h0, 1, UVM_LITTLE_ENDIAN);
60
      default_map = bus2_map;
61
 
62
      bus2_map.add_reg(reg0, 'h0, "RW");
63
 
64
      lock_model();
65
   endfunction
66
endclass
67
 
68
 
69
class top_reg_block extends uvm_reg_block;
70
   `uvm_object_utils(top_reg_block)
71
 
72
   bus1_reg_block bus1;
73
   bus2_reg_block bus2;
74
 
75
   uvm_reg_map bus1_map;
76
   uvm_reg_map bus2_map;
77
 
78
   function new(string name = "");
79
      super.new(name, UVM_NO_COVERAGE);
80
   endfunction
81
 
82
   virtual function void build();
83
      bus1 = bus1_reg_block::type_id::create("bus");
84
      bus1.configure(this);
85
      bus1.build();
86
 
87
      bus1_map = create_map("bus1_map", 'h0, 1, UVM_LITTLE_ENDIAN);
88
      default_map = bus1_map;
89
 
90
      bus1_map.add_submap(bus1.bus1_map, 'h0);
91
 
92
      bus2 = bus2_reg_block::type_id::create("bus2");
93
      bus2.configure(this);
94
      bus2.build();
95
 
96
      bus2_map = create_map("bus2_map", 'h8, 1, UVM_LITTLE_ENDIAN);
97
      default_map = bus2_map;
98
 
99
      bus2_map.add_submap(bus2.bus2_map, 'h0);
100
 
101
      lock_model();
102
   endfunction
103
endclass

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.