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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: 桅杆

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

[复制链接]
发表于 2021-12-29 20:34:25 | 显示全部楼层


桅杆 发表于 2021-12-29 17:52
这种写法sv编译不通过。


过的,我试过。

 楼主| 发表于 2021-12-30 10:07:08 | 显示全部楼层


remnant 发表于 2021-12-29 20:34
过的,我试过。


好的,我再检查一下。
谢谢
发表于 2022-1-12 08:36:37 | 显示全部楼层


桅杆 发表于 2021-12-29 17:55
这里不用一定是constant根据 门级仿真 和 前项目流片结果 这种写法确实是可以实现的, 功能上复合预期

...


話說這DFF畫出來會長怎樣?
发表于 2022-1-22 10:13:22 | 显示全部楼层


桅杆 发表于 2021-12-29 17:56
这里就是希望在rst_n 处于0的时候去改变的


没时钟沿触发,咋会随着b改变呢?只能复位是一个常数。你这样写代码的意义在哪?思考有啥作用么
发表于 2022-1-27 16:15:46 | 显示全部楼层
楼主能不能把综合出的电路贴出来看下,看下现在综合工具是不是更加智能了。我以前有个项目就需要默认值根据外部输入的某个信号为0或为1,当时也想写个这样类似功能的电路,后来发现编译都过不了。最后是在复位端和置位端做逻辑,假如选择的是低电平有效的复位和置位寄存器 ,在寄存器前面做了个类似这样的逻辑才实现的:dff.rstn= b? 1'b1:rst_n;  dff.setn=b?rst_n:1'b1;再加上一个带异步复位和异步置位寄存器的描述,才综合出想要的结果。
发表于 2022-1-27 16:27:41 | 显示全部楼层
reset value 必须接常值。
 楼主| 发表于 2022-1-28 18:18:51 | 显示全部楼层


janlesion 发表于 2022-1-27 16:15
楼主能不能把综合出的电路贴出来看下,看下现在综合工具是不是更加智能了。我以前有个项目就需要默认值根据 ...


综合后也是对rst,set端进行操作的,版本是dc 2017, 测试代码和对应dc结果如下:

module test(
    input  logic        clk,
    input  logic        rst_n,
    input  logic        b,
    output logic        a
);

    always_ff @( posedge clk or negedge rst_n ) begin
        if( !rst_n ) begin
            a <= b;  
        end else begin
            a <= a + 1;
        end
    end

endmodule


async_rst.png
 楼主| 发表于 2022-1-28 18:22:27 | 显示全部楼层


jasper0608 发表于 2022-1-12 08:36
話說這DFF畫出來會長怎樣?


有综合出来的电路,可以看最新的回复
 楼主| 发表于 2022-1-28 18:24:22 | 显示全部楼层


追乐人66 发表于 2022-1-22 10:13
没时钟沿触发,咋会随着b改变呢?只能复位是一个常数。你这样写代码的意义在哪?思考有啥作用么
...


这里是希望在rst_n 释放前dff可以根据寄存器处于不同的状态。
发表于 2022-1-29 10:21:24 | 显示全部楼层
没想到新版的工具这么强大,我以前编译都过不了,不过那时用的也不是正版的工具;之所以仿真与实际电路不符,那是因为你RTL描述的不是既带复位又带置位的寄存器,当然仿真结果与你实际电路不符合,仿真是根据RTL的语法来工作,综合工具会智能分析你设计意图;你可以用formal做下RTL VS netlist,估计会对比不过。如果不考虑实际电路情况,仅从SV语法分析,输出的变化点均应在always()的括号中表示,也就是b的变化并没有在always()中,所以当你b变化时,对输出不会产生影响;
总之,你并没有正确通过sv语法来表示你需要设计的电路,之所以综合出你想要的电路那完全是工具的功劳,就好像使用=来描述寄存器一样,仿真时大概率会出错,但综合出来的结果与<=操作是一样的。
你可以使用带复位和置位的寄存器描述来完成你的RTL设计,那样应该不会有问题的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

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

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