1 |
4 |
vladimirar |
------------------------------------------------------
|
2 |
|
|
Release Notes for Easier UVM Code Generator 2017-01-19
|
3 |
|
|
------------------------------------------------------
|
4 |
|
|
|
5 |
|
|
Don't use the monitor's analysis port outside of the agent. Use the agent's analysis port instead.
|
6 |
|
|
|
7 |
|
|
Move assignment to m_item in function _coverage::write
|
8 |
|
|
|
9 |
|
|
Move lines around in generated code for top_default_sequence
|
10 |
|
|
|
11 |
|
|
Add an m_config member to every ${agent_name}_env_default_seq register sequence and assign before start
|
12 |
|
|
Add an m_config member to every ${agent_name}_default_seq and assign before start
|
13 |
|
|
Add an m_config member to every driver and monitor and assign in agent::connect
|
14 |
|
|
|
15 |
|
|
|
16 |
|
|
|
17 |
|
|
------------------------------------------------------
|
18 |
|
|
Release Notes for Easier UVM Code Generator 2016-08-11
|
19 |
|
|
------------------------------------------------------
|
20 |
|
|
|
21 |
|
|
Allow multiple +uvm_cmdline settings to apply additively
|
22 |
|
|
|
23 |
|
|
Don't generate an empty build_phase method for the monitor component
|
24 |
|
|
|
25 |
|
|
Modify compile_riviera.do script to use the UVM 1.2 library supplied with Riviera
|
26 |
|
|
|
27 |
|
|
Fix a serious bug - the default env sequence was not being started for an agent that accessed a register model
|
28 |
|
|
|
29 |
|
|
|
30 |
|
|
|
31 |
|
|
------------------------------------------------------
|
32 |
|
|
Release Notes for Easier UVM Code Generator 2016-04-18
|
33 |
|
|
------------------------------------------------------
|
34 |
|
|
|
35 |
|
|
Add settings tb_prepend_to_initial and tb_inc_before_run_test to the common template file
|
36 |
|
|
|
37 |
|
|
Add settings generate_interface_instance = no (interface instance not generated and vif not assigned) to the
|
38 |
|
|
inteface template file to permit user-defined parameterized interface instantiations
|
39 |
|
|
|
40 |
|
|
Allow user-defined interface instance names in the pinlist file for use with generate_interface_instance = no
|
41 |
|
|
|
42 |
|
|
Add setting byo_interface (Bring Your Own interface) to the interface template file to allow user-supplied
|
43 |
|
|
interfaces
|
44 |
|
|
|
45 |
|
|
Changed "virtual interface is not set!" report from FATAL to WARNING - because a virtual interface might need to be
|
46 |
|
|
null in the presence of a parameterized interface
|
47 |
|
|
|
48 |
|
|
|
49 |
|
|
|
50 |
|
|
------------------------------------------------------
|
51 |
|
|
Release Notes for Easier UVM Code Generator 2016-04-06
|
52 |
|
|
------------------------------------------------------
|
53 |
|
|
|
54 |
|
|
Replace -f with -F in Riviera script
|
55 |
|
|
|
56 |
|
|
Modify compile_riviera.do script to compile everything UVM with a single call to alog
|
57 |
|
|
|
58 |
|
|
|
59 |
|
|
|
60 |
|
|
------------------------------------------------------
|
61 |
|
|
Release Notes for Easier UVM Code Generator 2016-04-01
|
62 |
|
|
------------------------------------------------------
|
63 |
|
|
|
64 |
|
|
Add a -s command line switch to override the syosil_scoreboard_src_path setting given in the common template file.
|
65 |
|
|
This switch is for use when running the generator in EDA Playground.
|
66 |
|
|
|
67 |
|
|
Permit end-of-line comments after DEC declarations in the pinlist file
|
68 |
|
|
|
69 |
|
|
Fix a bug with trailing comments after the last port connection in the pinlist file
|
70 |
|
|
|
71 |
|
|
Add calls to .set_item_context() before randomizing sequence objects to ensure random stability
|
72 |
|
|
|
73 |
|
|
|
74 |
|
|
|
75 |
|
|
------------------------------------------------------
|
76 |
|
|
Release Notes for Easier UVM Code Generator 2016-02-19
|
77 |
|
|
------------------------------------------------------
|
78 |
|
|
|
79 |
|
|
Add settings that let you replace the auto-generated bus2reg and reg2bus methods:
|
80 |
|
|
adapter_generate_methods_inside_class
|
81 |
|
|
adapter_generate_methods_after_class
|
82 |
|
|
adapter_inc_before_class,
|
83 |
|
|
adapter_inc_inside_class,
|
84 |
|
|
adapter_inc_after_class,
|
85 |
|
|
|
86 |
|
|
Add setting nested_config_objects, which provides the option of having the agent config objects nested within
|
87 |
|
|
the top-level config object rather than being separate
|
88 |
|
|
|
89 |
|
|
Add settings for use with nested configuration objects:
|
90 |
|
|
top_env_config_append_to_new
|
91 |
|
|
top_env_config_generate_methods_inside_class
|
92 |
|
|
top_env_config_generate_methods_after_class
|
93 |
|
|
agent_config_generate_methods_inside_class
|
94 |
|
|
agent_config_generate_methods_after_class
|
95 |
|
|
tb_generate_run_test
|
96 |
|
|
|
97 |
|
|
|
98 |
|
|
|
99 |
|
|
------------------------------------------------------
|
100 |
|
|
Release Notes for Easier UVM Code Generator 2016-02-15
|
101 |
|
|
------------------------------------------------------
|
102 |
|
|
|
103 |
|
|
Fix bug in print_structure
|
104 |
|
|
|
105 |
|
|
Add top_env_generate_run_phase
|
106 |
|
|
|
107 |
|
|
Add generate_file_header and file_header_inc
|
108 |
|
|
|
109 |
|
|
|
110 |
|
|
|
111 |
|
|
------------------------------------------------------
|
112 |
|
|
Release Notes for Easier UVM Code Generator 2016-01-21
|
113 |
|
|
------------------------------------------------------
|
114 |
|
|
|
115 |
|
|
Permit
|
116 |
|
|
trans_var = // SystemVerilog comment
|
117 |
|
|
and
|
118 |
|
|
trans_meta = // SystemVerilog comment
|
119 |
|
|
|
120 |
|
|
Insert the agent_copy_config_vars include file only once in the case where number_of_instances > 1
|
121 |
|
|
This include file can copy the config vars for multiple instances of the configuration object
|
122 |
|
|
|
123 |
|
|
Add the setting dual_top, which merely creates two top-level modules rather than instantiating the test harness below the test bench
|
124 |
|
|
|
125 |
|
|
Add the setting split_transactors to support acceleration/emulation-ready environments
|
126 |
|
|
The term transactor means a UVM driver or monitor. split_transactors does the following:
|
127 |
|
|
- Forces dual_top
|
128 |
|
|
- The test harness (the "HDL domain") that instantiates the DUT can be synthesized onto an accelerator or emulator
|
129 |
|
|
- The test bench (the "HVL domain") that instantiates the UVM environment must be untimed (no delays or clocks)
|
130 |
|
|
- The HDL domain now instantiates BFMs (Bus-Functional Models) that contain the synthesizable parts of the transactors
|
131 |
|
|
- The UVM drivers and monitors become proxies (wrappers) that make calls to the BFMs
|
132 |
|
|
|
133 |
|
|
|
134 |
|
|
|
135 |
|
|
------------------------------------------------------
|
136 |
|
|
Release Notes for Easier UVM Code Generator 2016-01-05
|
137 |
|
|
------------------------------------------------------
|
138 |
|
|
|
139 |
|
|
Permit the / character in include filenames so that ./include can be structured into subdirectories
|
140 |
|
|
|
141 |
|
|
Eliminated the _env directory and the _env_pkg. There is now only an _pkg.
|
142 |
|
|
|
143 |
|
|
Use coverage_enable to condition the calling of sample(), not the instantiation of a subscriber for an agent
|
144 |
|
|
|
145 |
|
|
Restructured the Perl script
|
146 |
|
|
|
147 |
|
|
|
148 |
|
|
------------------------------------------------------
|
149 |
|
|
Release Notes for Easier UVM Code Generator 2015-11-30
|
150 |
|
|
------------------------------------------------------
|
151 |
|
|
|
152 |
|
|
Highlights
|
153 |
|
|
----------
|
154 |
|
|
|
155 |
|
|
- The Code Generator can be run from the EDA Playground website
|
156 |
|
|
|
157 |
|
|
- The generator can instantiate the Syosil UVM Scoreboard along with reference models
|
158 |
|
|
|
159 |
|
|
- Now supports transaction metadata that is part of the transaction class but is not included
|
160 |
|
|
in the generated do_compare, do_pack, and do_unpack methods
|
161 |
|
|
|
162 |
|
|
- Now supports a single unpacked array dimension for transaction variables
|
163 |
|
|
|
164 |
|
|
- Now supports a setting to pass arguments to the UVM command line processor
|
165 |
|
|
|
166 |
|
|
|
167 |
|
|
The following changes are to support UVM 1.2
|
168 |
|
|
--------------------------------------------
|
169 |
|
|
|
170 |
|
|
Modify compile_vcs.do and compile_ius.do scripts to use the versions of UVM-1.2 built into those tools.
|
171 |
|
|
(The Questasim script automatically picks up the built-in version of UVM-1.2)
|
172 |
|
|
|
173 |
|
|
Replace the variable 'factory' with a call to uvm_factory::get() to support UVM 1.2
|
174 |
|
|
|
175 |
|
|
|
176 |
|
|
The following changes are to support the code generator within EDA Playground (www.edaplayground.com)
|
177 |
|
|
-----------------------------------------------------------------------------------------------------
|
178 |
|
|
|
179 |
|
|
Add the following command line switches:
|
180 |
|
|
-x dut_source_path
|
181 |
|
|
-x inc_path
|
182 |
|
|
-x project
|
183 |
|
|
-x regmodel_file
|
184 |
|
|
The presence of any one of these switches causes the script to return immediately with the value of
|
185 |
|
|
the corresponding setting. This feature is intended for use when running the script non-interactive mode.
|
186 |
|
|
|
187 |
|
|
Make the -r command line switch entirely optional. The script will instantiate a register model anyway
|
188 |
|
|
in the presence of the top_reg_block_type setting or a reg.tpl file
|
189 |
|
|
|
190 |
|
|
Make the files.f file in the DUT directory optional. If absent, the script will create a files.f
|
191 |
|
|
that lists just the *.sv files in the DUT directory itself in alphabetical order.
|
192 |
|
|
|
193 |
|
|
The dut_source_path setting is now optional and defaults to dut
|
194 |
|
|
The inc_path setting is now optional and defaults to include
|
195 |
|
|
The dut_pfile setting is now optional and defaults to pinlist
|
196 |
|
|
|
197 |
|
|
|
198 |
|
|
Other enhancements
|
199 |
|
|
------------------
|
200 |
|
|
|
201 |
|
|
Add common template file settings to instantiate a reference model paired with the Syosil UVM Scoreboard,
|
202 |
|
|
which must be downloaded separately from www.syosil.com
|
203 |
|
|
|
204 |
|
|
The new settings are:
|
205 |
|
|
syosil_scoreboard_src_path
|
206 |
|
|
ref_model_input
|
207 |
|
|
ref_model_output
|
208 |
|
|
ref_model_compare_method
|
209 |
|
|
ref_model_inc_before_class
|
210 |
|
|
ref_model_inc_inside_class
|
211 |
|
|
ref_model_inc_after_class
|
212 |
|
|
|
213 |
|
|
Generate do_pack and do_unpack methods in the class uvm_sequence_item.
|
214 |
|
|
Add a command line switch -nopack to disable the generation of do_pack/do_unpack for backward compatibility
|
215 |
|
|
Variables are packed in the order of the trans_var and trans_enum_var settings
|
216 |
|
|
|
217 |
|
|
Add a trans_enum_var setting to distinguish enum variables.
|
218 |
|
|
This is necessary when generating do_pack/do_unpack and is also used when generating convert2string
|
219 |
|
|
|
220 |
|
|
Add trans_meta and trans_enum_meta settings to distinguish metadata from regular transaction variables.
|
221 |
|
|
Metadata is excluded from the automatically generated do_compare, do_pack, and do_unpack methods
|
222 |
|
|
The setting trans_enum_meta is only relevant to convert2string since metadata does not get packed
|
223 |
|
|
typedefs can be given using trans_var or trans_meta, the two differing only in statement ordering.
|
224 |
|
|
|
225 |
|
|
Allow a single unpacked static array dimension in the settings trans_var, trans_meta, trans_enum_var, and trans_enum_meta
|
226 |
|
|
The dimension must be given as an expression [N], not as a range [N:M]
|
227 |
|
|
The expression can include parameter names and operators
|
228 |
|
|
trans_enum_var does not allow an unpacked dimension if do_pack/do_unpack are generated, otherwise it does
|
229 |
|
|
trans_enum_meta allows an unpacked dimension because metadata is anyway excluded from do_pack/do_unpack
|
230 |
|
|
Unpacked arrays are not included in the automatically generated transaction covergroup
|
231 |
|
|
(One or more packed array dimensions are already supported)
|
232 |
|
|
(Dynamic arrays are not supported)
|
233 |
|
|
|
234 |
|
|
Call the method comparer.compare_field of the comparison policy object when overriding the do_compare
|
235 |
|
|
method of class uvm_sequence_item in the generated code.
|
236 |
|
|
|
237 |
|
|
Format the output from convert2string as enum or %p where appropriate, and otherwise as both %h and %d.
|
238 |
|
|
|
239 |
|
|
Add a common template file setting top_default_seq_count which sets the repeat count for the top-level
|
240 |
|
|
default virtual sequence (instead of hacking this value in the generated code after running the script)
|
241 |
|
|
|
242 |
|
|
Add a common template file setting uvm_cmdline which allows multiple command line arguments to be passed
|
243 |
|
|
to the UVM command line processor
|
244 |
|
|
|
245 |
|
|
Move the position of certain occurrence of the _N suffix in the generated code for consistency,
|
246 |
|
|
e.g. changed m_${agent}_agent${suffix} to m_${agent}${suffix}_agent
|
247 |
|
|
|
248 |
|
|
|
249 |
|
|
|
250 |
|
|
------------------------------------------------------
|
251 |
|
|
Release Notes for Easier UVM Code Generator 2015-06-29
|
252 |
|
|
------------------------------------------------------
|
253 |
|
|
|
254 |
|
|
Add a switch -m to override the default filename common.tpl
|
255 |
|
|
|
256 |
|
|
Add a setting prefix= to the common template file as an alternative to the -p switch (default is top)
|
257 |
|
|
|
258 |
|
|
The script could now be run as
|
259 |
|
|
perl easier_uvm_gen.pl ...
|
260 |
|
|
or
|
261 |
|
|
perl easier_uvm_gen.pl ... -m
|
262 |
|
|
|
263 |
|
|
|
264 |
|
|
Add the following settings to the interface template file for register access (replacing reg_access_name)
|
265 |
|
|
reg_access_mode
|
266 |
|
|
reg_access_map
|
267 |
|
|
reg_access_block_type
|
268 |
|
|
reg_access_block_instance
|
269 |
|
|
|
270 |
|
|
Add the following settings to the common template file for register access (replacing reg.tpl)
|
271 |
|
|
top_reg_block_type
|
272 |
|
|
regmodel_file
|
273 |
|
|
|
274 |
|
|
Make the register template file reg.tpl optional
|
275 |
|
|
|
276 |
|
|
|
277 |
|
|
Add a setting top_env_generate_end_of_elaboration (default yes) to the common template file
|
278 |
|
|
|
279 |
|
|
|
280 |
|
|
Revamp the messages printed from the easier_uvm_gen script to show the generated env/agent structure
|
281 |
|
|
|
282 |
|
|
|
283 |
|
|
Add a compile/run script for Aldec Riviera Pro
|
284 |
|
|
|
285 |
|
|
|
286 |
|
|
------------------------------------------------------
|
287 |
|
|
Release Notes for Easier UVM Code Generator 2015-06-21
|
288 |
|
|
------------------------------------------------------
|
289 |
|
|
|
290 |
|
|
Fix bug in gen_env which was repeating additional agent declaration in number_of_instances loop
|
291 |
|
|
|
292 |
|
|
Fix version number
|