微信公众号获取更多FPGA相关源码,且微信公众号为首发,第一时间获取最新文章:
1.原理
- 建立时间Tsu:时钟上升沿到来之前数据所要保持稳定的时间;
- 保持时间Th:时钟上升沿到来之后数据所要保持稳定的时间。
- 要求采样信号(输入信号)在TSL+TH时间窗口内保持稳定
- 当采样违反了触发器的建立或保持时间的要求时,那么寄存器的输出值具有一定的概率进入亚稳态;
由于异步输入信号不依固定的频率或相位关系相对于采样它的时钟到达,可以在任意时间改变,这样异步输入信号在一些点上破坏了触发器的建立/保持窗口,从而可能使触发器保持旧值、或者改变为新的值、或者可能变成亚稳态。
当异步信号被触发器采样时,信号可能正在发生翻转,将以一定的概率采样到 在触发器建立或保持时间内的逻辑值;
2.亚稳态的消除(metastablility hardener)
异步信号同步化(将异步信号同步到采样时钟域,即采用高达一个时钟周期的延时来消释第一个触发器的亚稳态)
module meta_harden (
input clk_dst, // Destination clock
input rst_dst, // Reset - synchronous to destination clock
input signal_src, // Asynchronous signal to be synchronized
output reg signal_dst // Synchronized signal
);
reg signal_meta;
always @(posedge clk_dst)
begin
if (rst_dst)
begin
signal_meta <= 1'b0;
signal_dst <= 1'b0;
end
else // if !rst_dst
begin
signal_meta <= signal_src;
signal_dst <= signal_meta;
end // if rst
end // always
endmodule
微信公众号获取更多FPGA相关源码,且微信公众号为首发,第一时间获取最新文章: