
经过远程的事故回放,可以说情况是非常明确的,这个代码的互连结构就是这么个典型结构:

如果用代码表示呢,大概其就是这样:
assign vid_in = u_tx_if.valid;
assign data_in = u_tx_if.data;
initial begin
force vid_in = 1'b0;
end
然后肇事者做个了什么操作呢,他去对RTL的接口进行了force。说句题外话,讲真的其实个人是不太理解在环境与RTL进行互连的时候为什么会有force操作的,在我看来assign是完成能够互连任务的。
唯一一种我能想到的场景就是RTL分别例化在BT和SST环境时,为了省力气不想重新做互连结构所以通过force的方式进行驱动,除此之外不太能理解force的出现了。
还有一个原因让我一直避免force,刚毕业的时候有大佬和我讲,force、callback和宏是验证环境里的三口“毒品”,用起来虽然很爽能快速的达到目的但是无异于饮鸩止渴,给环境带来了很大的不确定和不可控风险。
扯远了,回到刚刚的问题,肇事者对RTL的接口进行了force,而后出现的现象就是,monitor通过u_tx_if采样时还是采样到了1也就是driver驱动的数值而不是force在接口上的数值。
为什么还会采样到1呢?显然这里犯了一个形而上学的bug,仿真工具只是在模拟真实电路的行为,不是真的在内部搭了一个电路,不是说通过assign a = b之后a和b就真的通过一根线给连在一起绑在一艘船上了!仿真时只会把assign等号右边的值u_tx_if.valid赋值给左边,不会把左边的vid_in赋值给右边啊:

那你mon连接的是u_tx_if,必然能够采样到drv本身驱动到interface上的值啊!
-
模拟电路
+关注
关注
126文章
1602浏览量
104997 -
SST
+关注
关注
0文章
78浏览量
35984 -
RTL
+关注
关注
1文章
393浏览量
62392 -
DRV
+关注
关注
0文章
18浏览量
20929
发布评论请先 登录
关于tb中force signal的问题?
关于ti控制程序的问题,force angle freq和 IQ
swp2加入到vlan100其pvid功能也没生效求解答
CubeMxSetting配置参数在rt-thread studio生效之后,提示文件不存在的原因是什么?
Design of Crimp force Monitor
MAC Mode Atomic Force Microsco
Application of Atomic Force Mi
Force Spectroscopy with the At
Advanced Atomic Force Microsco
Force/Sense DAC Applications
Force/Sense DAC Applications
模组采样线短路之后会怎样?
如何设置采样频率才合理呢?

force之后,采样时怎么没生效呢?
评论