오늘은 맑음

active high와 active low 본문

Digital logic

active high와 active low

자전거 타는 구구 2021. 5. 16. 18:38
반응형

 디지털 회로를 설계하다 보면 상태가 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 

 

반응형
Comments