检测同步信号的姿势[不使用@posedge 信号]

Detect posedge for sync signal [Without using @posedge signal]

我正在尝试检测同步信号的姿态,但我不知道如何相对于时钟实现它 [不使用 @posedge signal]。 我可以像 @(posedge clk iff -----) 那样实现吗?

同步设计应在同一时钟沿提供和采样信号。

要找到上升沿(从低到高的转换),您必须保存信号先前的值,因此当当前值为 1 时可以找到上升沿,但先前的值为 0。

示例:

logic sig_prev;
logic positive_edge_detected;


always @(posedge clk)
begin
  sig_prev <= sig;
end

always @(posedge clk)
begin
  positive_edge_detected = 0;
  if((sig == 1) && (sig_prev==0)) begin
    positive_edge_detected = 1;
  end
end
    

为了好的设计,您也应该实现异步重置。