gpt4 book ai didi

printing - 如何使用 UVM 实用函数打印整个队列/数组?

转载 作者:行者123 更新时间:2023-12-02 01:06:52 52 4
gpt4 key购买 nike

对于使用 `uvm_field_queue_int 实用程序宏的 UVM 对象,调用 my_object.print() 时,UVM 不会打印出整个队列

# -----------------------------------------
# Name Type Size Value
# -----------------------------------------
# my_object my_object - @443
# data_q da(integral) 16 -
# [0] integral 32 'h203f922b
# [1] integral 32 'he4b3cd56
# [2] integral 32 'hd7477801
# [3] integral 32 'h3a55c481
# [4] integral 32 'h2abf98c4
# ... ... ... ...
# [11] integral 32 'hac0d672b
# [12] integral 32 'h3ba2cb5d
# [13] integral 32 'hbe924197
# [14] integral 32 'h3cc6d490
# [15] integral 32 'h69ae79da
# -----------------------------------------

让 UVM 打印整个队列的最佳方法是什么?

EDA Playground 上的示例代码:http://www.edaplayground.com/x/rS

最佳答案

全部归功于此论坛帖子:http://forums.accellera.org/topic/1002-uvm-print-with-array-objects/

UVM print() 接受一个 uvm_printer 参数。创建一个新的 uvm_table_printer 对象(uvm_printer 的子对象),更改它的旋钮值,并将其传递给 print() 方法。

uvm_table_printer printer;
my_uvm_object m;

// ...

printer = new();
m = my_uvm_object::type_id::create("my_uvm_object");

printer.knobs.begin_elements = -1; // this indicates to print all
m.print(printer);

//Optionally you can specify numbers for begin/end
printer.knobs.begin_elements = 10; // prints the first 10; default: 5
printer.knobs.end_elements = 2; // also print the last 2; default: 5
m.print(printer);

当您想要影响特定 uvm_object 中的 with 时,这很有用,可以通过重写 do_print() 方法使其具有可扩展性。

或者,如果要进行全局更改,则在根目录下会自动创建一个名为 uvm_default_printer 的默认打印机。更改此打印机的旋钮值将使用默认值更改所有打印件的打印行为。

uvm_default_printer.knobs.begin_elements=-1; // this indicates to print all
m.print(); // will print all elements

//Optionally you can specify numbers for begin/end
uvm_default_printer.knobs.begin_elements = 2; // prints the first 2; default: 5
uvm_default_printer.knobs.end_elements = 3; // also print the last 3; default: 5
m.print(); // will print the first 2 and last 3 elements

工作示例:http://www.edaplayground.com/x/Ze

关于printing - 如何使用 UVM 实用函数打印整个队列/数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21710214/

52 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com