请参阅以下代码。 (为了清楚起见,它是YCbCr 4:2:2到4:4:4 SerDes。)
always @(posedge clk_54, posedge reset) begin
if (reset)
cntr <= 0;
else if (flag_in)
cntr <= cntr+1;
end
always @(posedge clk_54, posedge reset) begin
if (reset) begin
Y <= 0;
Cb <= 0;
Cr <= 0; end
if (cntr==0)
Cb <= YCbCr;
else if ((cntr==1)||(cntr==3))
Y <= YCbCr;
else if (cntr==2)
Cr <= YCbCr;
end
输入时钟为54 MHz。 cntr是一个两位计数器。 flag_in是一个告诉计数器何时开始的标志。很明显,三个输出信号Y,Cb或Cr都不会以比27 MHz(54的一半)更快的速率变化。如果是这样,我可以安全地采样27 MHz的信号,而不用担心时钟域交叉问题,设置和保持等等吗?