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

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
1楼-- · 2019-07-16 03:48
简而言之吧:一般设计都会用时钟的上升沿传送数据,所以在时钟的上升沿,你的data要能正确的传送到下一级寄存器,就必要要满足setup time,要不就会出现亚稳态,芯片挂掉。所以,在上升沿之前就要先保持数据稳定,即稳定的时间要>=setup time
lorlin000
2楼-- · 2019-07-16 05:47
简而言之吧:一般设计都会用时钟的上升沿传送数据,所以在时钟的上升沿,你的data要能正确的传送到下一级寄存器,就必要要满足setup time,要不就会出现亚稳态,芯片挂掉。所以,在上升沿之前就要先保持数据稳定,即稳定的时间要>=setup time
lorlin000
3楼-- · 2019-07-16 11:27
简而言之吧:一般设计都会用时钟的上升沿传送数据,所以在时钟的上升沿,你的data要能正确的传送到下一级寄存器,就必要要满足setup time,要不就会出现亚稳态,芯片挂掉。所以,在上升沿之前就要先保持数据稳定,即稳定的时间要>=setup time
LLXXHH
4楼-- · 2019-07-16 14:46
 精彩回答 2  元偷偷看……

一周热门 更多>