今天调试 视频 4k(3840 x 1920)的vsync信号(时钟为 297Mhz) 进入 170Mhz 的时钟域, 发现输出来的信号信号抖动特别厉害。后来才发现这是不同一时候钟域 造成的影响。 快 时钟域的信号进入 慢时钟域 可能出现 採集不到的情况。所以我把 一个时钟的高电平 变为 3个时钟的高电平, 这样就能保证 慢时钟域肯定可以採集到。
always @(posedge clk or negedge reset_n) begin if (~reset_n) begin rdaddr_req <= 1'b0; // frame_counters <= 13'b0; end else if (nvsync_dly1 && (~nvsync)) begin rdaddr_req <= 1'b1; end else if (nvsync_dly3 && (~nvsync_dly2)) rdaddr_req <= 1'b0; ///////////////////// end
所以跨时钟域信号处理, 一定要小心!!!