Passing parameters from command line

In reply to rgarcia07:

The point is that I need to solve an assign in this way:


if (WDW >= RDW) begin
	for (int i = 0; i < (WDW/RDW); i++) begin
		expected_tdata_pkg = data_in.tdata[RDW*i +: RDW];
	end
end

And for that, the value after “+:” must be constant.

One option is what you told me, import a package of parameters and from command line change this package, but in this case I will need to recompile (and I would like to find a solution after compile).

Another option is to find a different way to solve this assignment.

In my previous tests I did not need this assignment and I stored the values in the config_db in the test_top and get them in the build_phase of the scoreboard.

Using in the top:

uvm_config_db #(int)::set(null, "uvm_test_top.*", "FIFO_WAW", RDW);

And using in the scbd:


int RDW;
	
function void build_phase (uvm_phase phase);
	void'(uvm_config_db #(int)::get(this, "*", "RDW", RDW));