EPI00 개발일지

저항-트랜지스터 논리 본문

회로..?

저항-트랜지스터 논리

EPI00 2020. 9. 6. 20:38

최근 물리학I 수업에서 반도체에 대해 배우고 있습니다. 물론 수특 물I 및 물I 교과서 어디를 찾아봐도 트랜지스터에 관한 얘기는 전혀 없습니다만...그래도 반도체를 이용한 제품이라 하면 트랜지스터를 빼놓을 수 없을 것입니다. 

라는건 핑계고, 최근 저항-트랜지스터 논리에 관심이 생겼습니다. 얼마 전부터 논리 게이트를 통해 가산기라던가, 메모리라던가, 가산기를 응용해 감산기를 만든다던가... 셋을 적당히 섞어 곱셈연산도 하게 해본다거나 이런걸 많이 해봤는데 컴퓨터 속에만 있어서는 뭔가 좀 뭔가 그래서 직접 만들어볼 생각을 하게 되었고, 그 결과 쉽게 만들 수 있는 저항-트랜지스터 논리에 대해 많이 공부하고 있습니다. 때문에 이 글은 그걸 실제로 만들어 볼 나중의 제가 까먹었다고 또 조사하는 헛짓거리를 최소화 하게 하기 위해서 쓰는 글입니다. 

 

우선 저항-트랜지스터 논리는 쉽게 말해서 저항과 트랜지스터 만으로 논리연산을 하는 것입니다. Resistor-Transistor Logic, 줄여서 RTL이라고도 합니다. 이 RTL의 장점으론 트랜지스터를 최소로 사용하며, 이 이유로 초기 시장에선 RTL이 많이 사용되었었다고 합니다. 트랜지스터가 꽤나 고가의 물품이었었기 때문이죠. 하지만 지금은 트랜지스터가...하나에 몇십원 정도밖에 안하죠. 딱히 큰 장점은 아닙니다... 오히려 트랜지스터가 싸지고난 뒤엔 다이오드-트랜지스터 논리와 트랜지스터-트랜지스터 논리가 많이 사용되었다는 것 같습니다. 

 

잠시만, OR연산은 그냥 다이오드 두개면 되는거 아닌가?

잘 모르겠으니 아무튼.

 

RTL의 단점으로는...전력 소모가 큽니다. 제가 구글링해서 얻어낸 회로도에선 NPN트랜지스터 두개와 10KΩ저항 두개, 1KΩ저항 한개로 게이트 하나를 구성하더군요. 베이스와 콜렉터마다 이렇게 저항이 꽂히니 당연히 전류가 많이 필요하고 때문에 전력 낭비가 심하겠죠. 그 외에 단점으로 팬인이 제한되어있다는 점이 있다는데 사실 뭐 제가 전기전자 전공자도 아니고 그쪽을 전공할 생각도 없기에 딱히 잘 모르겠습니다...

 

그래서 저항과 트랜지스터로 게이트를 어떻게 구성할까?

 

우선, 아래 그림들은 구글링한 결과를 토대로 제가 그린 것이니 뭐 딱히 저작권은...상관 있을 수도 없을 수도 있겠네요. 저작권 문제가 만약 생긴다면 글을 내리거나 사진을 삭제하거나 하도록 하죠.

 

먼저 AND게이트입니다.

 

RTL AND. Input1, 2에 입력을 넣으면 Output에 두 입력을 AND연산한 값이 출력된다.

NPN트랜지스터 두개의 베이스에 각각 10KΩ저항을 하나씩 붙이고, 그 저항에 입력을 하는 것입니다. 사실 전기쪽에 대한 공부가 부족한 편이라 몇 V가 들어가야하는지 잘 모르겠어서 일단 가장 친근한 5V로 했습니다만... 일단 아래 Tinkercad에서 만들어본 것에서는 3V를 선택하긴 했습니다. LED가 보통 3.3V니까..?

 

 

RTL AND. 두 스위치와 LED를 이용해 입력과 출력을 확실하게 했다.

위 회로는 https://www.tinkercad.com/things/8Whj6cFQ9lh 에 들어가셔서 직접 시뮬레이션 돌려보실 수 있습니다.

 

 

다음으로 NAND 게이트입니다.

RTL NAND. AND와 다른 점이라고는 저항의 위치가 전부이다.

 

RTL NAND

역시 이 회로 또한 https://www.tinkercad.com/things/g9fdP0IBpad 에 들어가시면 직접 시뮬레이션 해보실 수 있습니다.

 

 

 

다음은 OR게이트입니다

RTL OR. 두 트랜지스터의 콜렉터와 이미터가 각각 연결되어 있다.
RTL OR

마찬가지로 OR게이트는 https://www.tinkercad.com/things/6rFixbtc1PB 에서 시뮬레이션 돌려보실 수 있습니다.

 

다음은 NOR입니다. 그 전에, AND와 NAND를 보시면 OR을 어떻게 바꾸면 NOR로 바뀔지 예상이 될 거라고 생각합니다. 

RTL NOR. 역시 OR과 다른건 저항의 위치밖에 없다.
RTL NOR

역시 시뮬레이션은 https://www.tinkercad.com/things/i5cHeoFHdHx 에 들어가셔서 돌려보실 수 있습니다.

 

 

다음은...XOR입니다. XOR의 경우 아무리 구글링을 해봐도 트랜지스터 몇개로 만드는건 안나오네요. 때문에 NAND값과 OR값을 AND하여 얻는 방식으로 만들어보았습니다. 트랜지스터는 무려 6개나 필요하긴 하지만요

 

.

RTL XOR. NAND와 OR을 연산한 뒤 두 값에 대해 AND연산했다. 진리표를 생각해보면 이해하기 쉬울듯.
RTL XOR. 사실 3V 하나로 했더니 LED가 약하길래 두개 직렬로 했더니 또 전류가 많이 온다길래 두개 직렬에 저항까지 달아줬습니다..

시뮬레이션은.... https://www.tinkercad.com/things/0vQvhc0AMb1 으로....

 

 

 

마지막으로 NOT인데요, XNOR은 생략하도록 하겠습니다. XOR을 구성하는데 들어가는 세 게이트 중 AND를 NAND로 바꾸기만 하면 XNOR이니깐요.

 

RTL NOT. 입력도 하나, 트랜지스터도 하나, 출력도 하나다. "하나는 모두를 위해, 모두는 하나를 위해"
RTL NOT

시뮬레이션은 https://www.tinkercad.com/things/1dwZ3UUzQwU 입니다.

 

 

 

 

 

 

 

재밌는데 힘드네요 젠장.

내가 저 회로만 한시간동안 그리고있었다니. 

 

============================수정============================
글쎄 제가 지금까지 쓴 글들 중에서 이 글이 가장 조회수가 높으니... 구걸좀 해보겠습니다..
별 내용은 없지만 만약 이 내용이 정말로 도움이 되셨다면 저 밑에 공감하기(하트)와 댓글....부탁드립니다