我有一个模块层次结构,我试图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;
即使存在另一种力量,就好像第二种力量陈述已经沿着等级传播.这里发生了什么?
我有一个变量,$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
变量可以递增或递减,并且它仍然保持十六进制值。有没有办法做到这一点?
我试图了解何时$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
是否与异步信号一起使用?