在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 7463|回复: 25

[求助] 异步复位时,复位值变动的时候,仿真结果与预期不符。

[复制链接]
发表于 2021-12-21 11:31:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 桅杆 于 2021-12-21 11:35 编辑

大家好。
如题,当前我想实现一个dff, 其复位值是与某一寄存器值有关的,如




  1. always @( posedge clk or negedge rst_n ) begin
  2.     if( !rst_n ) begin
  3.         a <= b;
  4.     end else begin
  5.         a <= a + 1;
  6.     end


复制代码
现在问题是,当处于rst_n = 0的时候,信号a并不会伴随b 的改变而变。波形如下:
image.png
从代码的角度确实没有沿触发进入alwyas.
但是从电路的角度,试综合出来是一个 带rst, set的dff, 我认为真实的电路下,处于rst_n=0时,a是会随着b的改变而变的。
现在希望能从仿真就能看到这个变化。
不知道有谁也遇到这种情况嘛?不知到有什么解决方案?
发表于 2021-12-21 12:45:37 | 显示全部楼层
真实的寄存器复位就是指复位到某一个确定的值啊,要么0要么1,不能随着外面信号变化而变化吧
 楼主| 发表于 2021-12-21 14:12:58 | 显示全部楼层


失重wlq 发表于 2021-12-21 12:45
真实的寄存器复位就是指复位到某一个确定的值啊,要么0要么1,不能随着外面信号变化而变化吧 ...


真实物理层面上,一个dff这么接也是正常工作的。拿门级电路来跑也是可以跑出预期的结果。
但我只大概搜了一下,没找到类似的说法,也许时是这种方法有什么弊端,我不太清楚。
发表于 2021-12-21 16:56:26 | 显示全部楼层
这种电路见过,确实会有你看到的RTL vs netlist仿真的mismatch
没有很直接的解决方法,只能间接:
`ifdef SYNTHESIS
always @( posedge clk or negedge rst_n ) begin
`else
always @( posedge clk or negedge rst_n or b) begin
`endif
发表于 2021-12-23 08:08:31 来自手机 | 显示全部楼层
b 必須是 constant
发表于 2021-12-24 12:11:19 | 显示全部楼层
a 伴随 b 的变化而变化只发生在 rst_n 的下降沿吧,图中用红框框出来的地方已经过了 rst_n 的下降沿很久了吧,自然 a 不会伴随 b 的变化而变化;
可以试试再红框的位置处再产生一个 rst_n 的下降沿
 楼主| 发表于 2021-12-29 17:52:57 | 显示全部楼层


remnant 发表于 2021-12-21 16:56
这种电路见过,确实会有你看到的RTL vs netlist仿真的mismatch
没有很直接的解决方法,只能间接:
`ifdef S ...


这种写法sv编译不通过。
 楼主| 发表于 2021-12-29 17:55:15 | 显示全部楼层


这里不用一定是constant根据 门级仿真 和 前项目流片结果 这种写法确实是可以实现的, 功能上复合预期

只是仿真不支持的话,我觉得应该是可能存在某些弊端,望大佬们指教。
 楼主| 发表于 2021-12-29 17:56:04 | 显示全部楼层


海清 发表于 2021-12-24 12:11
a 伴随 b 的变化而变化只发生在 rst_n 的下降沿吧,图中用红框框出来的地方已经过了 rst_n 的下降沿很久了 ...


这里就是希望在rst_n 处于0的时候去改变的
发表于 2021-12-29 20:24:38 | 显示全部楼层
没有时钟边沿呀。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-27 12:27 , Processed in 0.022287 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表