gpt4 book ai didi

system-verilog - UVM RAL : Randomizing registers in a register model

转载 作者:行者123 更新时间:2023-12-04 06:47:18 25 4
gpt4 key购买 nike

我有一个用 RAL 建模的大寄存器映射,我想随机化一些寄存器。如果我想单独限制寄存器,那么这很简单:

reg_model.register_a.randomize() with {value > 5;}
reg_model.register_b.randomize() with {value < 2;}
reg_model.update(status);

但是,如果我想写两个值之间的关系,我想我必须向整个寄存器模型添加一个约束:
reg_model.randomize() with {register_a.value > register_b.value;}
reg_model.register_a.update(status);
reg_model.register_b.update(status);

这里的问题是模型中的其他 254 个寄存器也将被随机化。我可以只更新我想要随机化的两个寄存器,但是镜像将与硬件不匹配。如果我有后门访问工作,我可以刷新镜像,但我不这样做,而且我当然不想通过前门读回 254 个寄存器。

有没有办法只随机化这两个寄存器,但仍然让约束求解器保持它们之间的关系?

最佳答案

你可以做

reg_model.randomize(register_a,register_b) with {register_a.value > register_b.value;}

那么只有寄存器 a 和 b 会被随机化。

关于system-verilog - UVM RAL : Randomizing registers in a register model,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21054054/

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