恢复时间和去除时间
一、概念
恢复时间:异步复位信号释放与紧跟其后的第一个时钟有效沿之间最小的时间间隔,如果不满足恢复时间,则输出触发器的输出可能会产生亚稳态。
去除时间:时钟有效沿与异步复位信号释放之间所需的最小时间,如果不满足去除时间,则输出可能产生亚稳态。
二、解决方法
异步复位同步释放:所谓的异步复位是指复位信号和clock无关,复位信号是异步的,同步释放是指经过两级触发器同步后的reset的值在clk时钟有效沿下是一个稳定的值。
这样结构的好处是system部分所采的reset的值基本上都是一个确定的值,不会是一个亚稳态。
三、RTL代码
always_ff @(posedge clk_i or negedge async_rst_i) begin
if(!async_rst_i) begin
rst_s1_r <= 1'b0;
rst_s2_r <= 1'b0;
end
else begin
rst_s1_r <= 1'b1;
rst_s2_r <= rst_s1_r;
end
end
assign sync_rst_o = rst_s2_r;
过去最远的延伸正是此刻,未来最早的起点就在此刻。