일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- AMBA
- 대구 반도체 설계기업 특화
- 딥러닝 가속기
- 컨벌루션 연산
- CLOCK GATING
- Data HAzard
- Pyverilog 설치
- gpgpu-sim
- systolic array
- 클럭 게이팅
- DNN Accelerator
- Makefile compile
- 남산업힐
- linux makefile 작성
- gcc 컴파일
- Design DNN Accelerator
- Pyvrilog tutorial
- DNN 가속기
- pyverilog 설치 오류
- CUDA
- makefile
- 이진수 곱셈 알고리즘
- Pyverilog 튜토리얼
- pytest-pythonpath 설치 오류
- Pyverilog 실행
- pygraphviz 설치 오류
- linux c++ 컴파일
- linux c 컴파일
- 데이터 해저드
- CDC
- Today
- Total
오늘은 맑음
active high와 active low 본문
디지털 회로를 설계하다 보면 상태가 1(HIGH)일 때 동작하는 신호가 있고 0(LOW)일 때 동작하는 신호가 있습니다.
상태가 1일 때 동작하는 회로를 active high, 상태가 0일 때 동작하는 회로를 active low라고 합니다.
사람마다 표기하기 나름이지만 일반적으로 active low로 동작하는 신호에는 negative라는 의미의 n이 붙습니다. 대표적으로 reset 신호가 있죠.
if(!nRST) begin
a <= 'd0;
end else begin
a <= b;
end
위의 예시에서도 negative reset이 0일 때는 reset이 활성화 상태여서 a에 0을 할당하지만, reset이 high가 되면 비활성화가 되어 a에 b가 할당됩니다.
보기에도 불편하고 active high로 표기하면 코딩하기도 편할텐데 왜 active low를 사용할까요?
그 이유로는 여러가지가 있지만 대표적으로는 아래의 이유가 있습니다.(더 있지만 공부하는 대로 추가하겠습니다)
1. 노이즈에 강함
active high로 동작하는 회로는 active low로 동작하는 회로보다 노이즈에 취약하다고 할 수 있습니다.
만약 reset이 active high로 동작한다면 어떻게 될까요? 갑작스런 정전기와 같은 외부 요인에 의해 동작 중에 reset신호 가 활성화 된다면... 끔찍하죠... 따라서 reset과 같은 신호는 외부 노이즈에 의해 활성화 되지 않도록 active low를 사용합 니다. 또 다른 예시로는 memory chip select신호와 write enable 등도 있죠. Memory의 데이터는 중요하기 때문에 함부로 read/write동작이 이루어져서는 안됩니다. 따라서 외부 노이즈에 의해 memory에서 데이터를 읽거나, 노이즈를 쓰지 않게 하기 위해 active low를 사용하기도 합니다.
2. 빠른 반응 속도
3. 적은 자원 소모(area)
2번과 3번의 경우는 전자회로 관련 내용입니다. 일반적으로 active low 회로가 active high 회로보다 반응속도도 빠를 뿐만 아니라 회로 구성에 있어 적은 면적을 차지합니다. 적은 면적을 차지하면 적은 자원을 사용하게 되고 소모전력이 줄어 많은 이점이 있습니다. 위의 내용은 아래의 유튜브를 통해 보겠습니다. (전자/반도체 전공이 아니라 회로쪽에는 아직 공부가 많이 필요합니다...)
https://www.youtube.com/watch?v=of9sEVUwvdg
'Digital logic' 카테고리의 다른 글
CMOS 동작 원리와 장/단점 (0) | 2022.01.09 |
---|---|
디지털 회로 설계 과정(Front End) (4) | 2021.06.13 |
Combinational feedback loop란 (3) | 2021.05.09 |
Clock Skew(클록 스큐) (0) | 2021.05.03 |
verilog 문법(4) and/or 비트연산자, 논리연산자 (0) | 2021.05.01 |