状态机触发事件采样,会出现亚稳态吗

2019-03-25 08:20发布

状态机中,触发事件XRD下降沿触发时,按照clk触发时,信号需要建立时间和保持时间,条件语句if(!XRD)能正确采到XRD=0吗

always  @(posedge clk or negedge rst_n)
begin
    if(!rst_n) cstate<=idle;
    else cstate<=nstate;
end

always@(cstate or XRD or ........)
begin
  case(nstate)
    idle:
    if(!XRD) nstate<=d1;
    else nstate<=idle;
    d1:.........

end 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
luyaker
1楼-- · 2019-03-25 08:52
< / 楼主,你这问题让人如何回答啊,问问题最好描述清楚一点,虽然有些信息你觉得没啥用。
XRD如果是同一个时钟域的信号,当然可以用clk作为敏感列表的一个,并且尽量这么做。如果是外来的跨时钟域的信号,最好用寄存器打两拍(前提是XRD此时无论被判为0或1,逻辑都不出错)。
1559638992
2楼-- · 2019-03-25 09:41
XRD是跨时钟域,输入信号。寄存器打两拍是为了在时序逻辑中使用,即在always@(posedge clk or negedge rst_n)中使用,但我没有在时序逻辑中使用,在always@(cstate or XRD or ........)
使用,直接用的输入信号触发

一周热门 更多>