Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- verilogHDL
- FPGA
- keil uvision5
- SPI
- numpy
- C언어
- Matlab
- 하인슈타인
- array
- Atmega128A
- bjt
- atmega
- DataFrame
- loc()
- 히스토그램매칭
- 딥러닝
- 가설 함수
- 데이터 분석
- 자료구조
- LED켜기
- quatus
- FND
- 인공신경망
- 행렬
- 곱셈기
- Python
- 파이썬
- pandas
- 데이터분석
- Verilog
Archives
- Today
- Total
Keep-H's Hardware Design Study Notes
Synchronous reset & Asynchronous reset 본문
✅ 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 | 둘 다 가능, 상황에 맞춰 사용 |
'설계 지식' 카테고리의 다른 글
타이밍 분석 및 데이터 경로 지연 분석: 종합적인 개요 (0) | 2024.08.08 |
---|