Keep-H's Hardware Design Study Notes

Synchronous reset & Asynchronous reset 본문

설계 지식

Synchronous reset & Asynchronous reset

Keep-H 2025. 3. 27. 13:15

 

✅ Synchronous Reset (동기 리셋)

- 클럭 신호(Clock)에 맞춰서 reset이 동작하는 reset 신호.

  reset 신호가 활성화되어 있어도 다음 클럭 상승 에지에서만 리셋이 반영

 

always @(posedge clk) begin
  if (reset) begin
    q <= 0;       // 클럭이 들어올 때만 초기화됨
  end else begin
    q <= d;
  end
end

 

👍 장점

 

  • 클럭에 맞춰 동작하므로 타이밍 분석이 쉽다. (EDA 도구에 유리)
  • 전체 회로가 동기화된 상태로 유지됨 → 복잡한 시스템에서 버그 줄일 수 있다.

👎 단점

  • 클럭이 동작하지 않으면 reset이 안 됨 (전원이 켜져도 클럭이 없다면 초기화가 안 될 수 있음)
  • reset이 클럭 경로를 공유하므로 reset 관련 타이밍 경로가 길어질 수 있음

 

✅ Asynchronous Reset (비동기 리셋)

- 클럭과 상관없이 reset 신호가 들어오면 바로 동작한다. 

   reset 신호가 비트 하나만 튀어도 즉시 초기화된다.

 

always @(posedge clk or posedge reset) begin
  if (reset) begin
    q <= 0;       // reset 신호 들어오면 바로 초기화
  end else begin
    q <= d;
  end
end

 

👍 장점

 

  • 클럭이 없어도 reset 가능 → 전원 인가 후 바로 초기화가 가능하다.
  • 회로가 예상대로 초기값을 가지고 시작할 수 있다.

👎 단점

 

  • reset이 클럭과 무관하게 작동하므로, 비정상적인 타이밍에 의해 glitch(노이즈) 발생 가능
  • 비동기 해제 타이밍이 나쁘면 메타스테이블 상태에 빠질 위험이 있음 (→ 클리어한 회로 설계 필요)

 

상황추천 리셋 방식

복잡한 SoC 설계 Synchronous Reset (타이밍 분석 용이)
전원 인가 직후 빠른 초기화 필요 Asynchronous Reset (즉각적인 반응)
작은 서브모듈, 간단한 FSM 둘 다 가능, 상황에 맞춰 사용