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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 607|回复: 8

[求助] 关于触发器异步复位的问题

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

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

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

x
如果有以下代码:其中b是同步信号,rstn是异步复位信号
always@(posedge clk or negedge rstn)
begin
    if(!rstn)
       if(b)  a<=1'b0;
       else   a<=1'b1;
    else    a<= 1'b0;
end
然而事与愿违,实际的电路是根本不带复位的一个触发器。
iwEcAqNqcGcDAQTRBQAF0QPABrBIfPD02PEGvQVzGHieXNYAB9Ir8_m5CAAJomltCgAL0gABJvg.jpg_.jpg
请问在同步电路设计里有这样一个东西存在会有潜在的问题或者说错误吗
发表于 2023-12-20 15:20:29 | 显示全部楼层
一个带复位的寄存器,在复位信号来的时候,是可以复位成0或者1的,但它只能是一种情况,要么复位成0,要么复位成1,并不会有带选择信号来选择复位成0或1.
发表于 2023-12-20 15:21:22 | 显示全部楼层
你改改写法不就好了
发表于 2023-12-20 15:22:34 | 显示全部楼层


Hillusionary 发表于 2023-12-20 15:20
一个带复位的寄存器,在复位信号来的时候,是可以复位成0或者1的,但它只能是一种情况,要么复位成0,要么 ...


按照代码强行解释的话,可能是需要两个寄存器,一个寄存器复位成0,一个寄存器复位成1,然后在它俩后面用b信号来做选择,最终得到a的输出
 楼主| 发表于 2023-12-20 16:12:28 | 显示全部楼层


Hillusionary 发表于 2023-12-20 15:22
按照代码强行解释的话,可能是需要两个寄存器,一个寄存器复位成0,一个寄存器复位成1,然后在它俩后面用 ...


是的是的,工具选择了先对复位信号做一个运算,没有用两个触发器
发表于 2023-12-22 11:26:19 | 显示全部楼层


OneLastKiiss 发表于 2023-12-20 16:12
是的是的,工具选择了先对复位信号做一个运算,没有用两个触发器


按照你画的电路图来看,此时的异步复位信号将不再有异步的功能。因为在没有时钟的情况下,即使rst_n为0,reg的Q段也不会输出0
 楼主| 发表于 2023-12-25 11:08:44 | 显示全部楼层


Hillusionary 发表于 2023-12-22 11:26
按照你画的电路图来看,此时的异步复位信号将不再有异步的功能。因为在没有时钟的情况下,即使rst_n为0, ...


是的,和我写的代码是两个意思
发表于 2023-12-30 16:10:53 | 显示全部楼层
因为你描述的就是一个非异步
发表于 2024-1-3 09:03:19 | 显示全部楼层
综合工具识别的异步复位输出是一个固定值,不会有变化,按照你的code写法,rstn时值是会发生变化,所以工具不会直接当成复位调用异步复位的fliflop
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-5-3 07:09 , Processed in 0.029202 second(s), 9 queries , Gzip On, Redis On.

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