小编Gau*_*tam的帖子

SystemVerilog`force`如何工作?

我有一个模块层次结构,我试图force在不同的模块接口上获得不同的值.我正在研究一个组件,其任务是将事务注入层次结构中的模块,绕过层次结构中较高层的模块.我想我可以使用force控制信号,以便从更高的模块中脱离驱动器并开始进入感兴趣的模块.所以我一直试图看看力量是如何运作的.完整代码位于http://www.edaplayground.com/x/69PB.特别是,我试图理解initial块内这两个语句的效果:

force u_DataReceiveTop.u_DataReceiveWrap.DataReceiveIfWrp_inst.valid = 1'b0;
force u_DataReceiveTop.valid = 1'b1;
Run Code Online (Sandbox Code Playgroud)

我所期望的价值观是:

u_DataReceiveTop.u_DataReceiveWrap.DataReceiveIfWrp_inst.valid == 0
u_DataReceiveTop.valid == 1
Run Code Online (Sandbox Code Playgroud)

但我从波浪中看到:

u_DataReceiveTop.u_DataReceiveWrap.DataReceiveIfWrp_inst.valid == 1
u_DataReceiveTop.valid == 1
Run Code Online (Sandbox Code Playgroud)

force u_DataReceiveTop.valid = 1'b1;即使存在另一种力量,就好像第二种力量陈述已经沿着等级传播.这里发生了什么?

verilog system-verilog

2
推荐指数
1
解决办法
1万
查看次数

在 Perl 变量中使用十六进制值

我有一个变量,$count它将从命令行获取一个十进制值,我有一段代码可以生成带有名称filename001 filename002 ....filename00a,filename00b等的文件。它filename为它生成的每个新文件附加一个十六进制数(不带 0x)。

我使用变量$count来跟踪附加到filename. 我想Result:从生成的文件(filename00b filename00a等)中提取包含特定文本的行。为此,我按以下方式使用 grep 工具:

`grep "Result:" path to the file/filename0*$count`
Run Code Online (Sandbox Code Playgroud)

这工作正常,直到当 10 变为a十六进制时到达第 10 个文件,但$count在 grep 命令中简化为 10,因此 grep 无法找到该文件。我尝试使用hex($count),但它似乎不起作用。它要求$count变量可以递增或递减,并且它仍然保持十六进制值。有没有办法做到这一点?

unix perl

1
推荐指数
1
解决办法
1万
查看次数

什么时候使用$ rose系统任务和断言中的信号

我试图了解何时$rose在断言中使用信号.例如,下面两个断言在哪些方面表现不同?

first:assert property 
        (@(posedge clk) $rose(reset) |-> (data == 0));

second: assert property
          (@(posedge clk) reset |-> (data==0));
Run Code Online (Sandbox Code Playgroud)

$rose是否与异步信号一起使用?

system-verilog system-verilog-assertions

0
推荐指数
1
解决办法
2072
查看次数