< 老李>
image
怎麼解決?
1. 打兩拍 ( 2-flop)
::: info
使用double flop來同步,有個最基本的“3個沿”要求,就是source data必須保證穩定不變至少碰見destination clock 3個連續的沿,這個沿可以是上升沿也可以是下降沿,持續3個沿之後才能變,否則就有可能在destination clock domain根本看不到這個data的變化。 例如下圖所示:adata第一次變高,只碰到了bclk的2個沿,就可能導致bdata根本沒有看到這個pulse,而第二次adata變高,持續了3個沿,這樣bdata就能夠確保也可以變高了。
always_ff @(posedge clk) begin
if (rst) {rptr_t2,rptr_t1} <= 0;