菜鸟来请教个时序逻辑问题,开看看哦,给分!

2019-07-16 00:09发布

                       //由于是上升沿发送,所以要在SCLK为低电平的时候就准备好数据
                  1,3,5,7,9,11,13,15:
                   if(SCLK_sig)state <= state + 1'b1;
                   else begin
                                 IO_r <= data_r[(state >> 1)];
                                 SCLK <= 1'b0;
                         end
                  
                   2,4,6,8,10,12,14,16:
                   if(SCLK_sig)state <= state + 1'b1;
                   else SCLK <= 1'b1;
   
就是逻辑有点搞不清楚,有什么好方法帮助我理解一下昵?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
lorlin000
2019-07-16 05:47
简而言之吧:一般设计都会用时钟的上升沿传送数据,所以在时钟的上升沿,你的data要能正确的传送到下一级寄存器,就必要要满足setup time,要不就会出现亚稳态,芯片挂掉。所以,在上升沿之前就要先保持数据稳定,即稳定的时间要>=setup time

一周热门 更多>