반가산기(Half Adder)를 만들것이다. 반만 동작하는 가산기라는 뜻이다. 왜 반만 동작하는 것일까? 기능이 반만 있기 때문이다. 나머지 없는 기능 반은 무엇일까? 바로 올림수를 받는 기능이다. 반가산기는 올림수를 출력하긴 하지만 올림수를 받지 않기 때문에 반가산기라고 하는 것이다. 반가산기를 모델링한다.
앞 장까지 모델을 하나 만들고 테스트할 때 화면에 결과를 출력하여 값을 확인하는 방식을 사용했다. 단순하고 간단하여 가장 빠르게 테스트 할 수 있는 방식이다. 그러나 모델이 계속 늘어서 몇 십개, 몇 백개가 된다고 가정했을 때도 유용한 테스트 방법은 분명히 아니다. 나중에 모델링 코드가 계속 커지는 것을 대비해서 지금쯤에 자동화 유닛 테스트를 만드는 것이 좋다.
XOR 연산을 하는 게이트다. XOR 게이트는 트랜지스터 조합으로 만들지 않고 게이트 조합으로 만든다. NAND나 NOR 게이트를 조합해서 XOR 게이트를 만들 수 있다. XOR 게이트를 만드는 여러 조합 중에 이 책에서는 NAND 게이트 4개로 만드는 조합으로 XOR 게이트를 모델링한다.
NAND 게이트는 NOT-AND 게이트의 약자다. AND 게이트의 반대라는 뜻이다. 반대라는 말은 AND 게이트의 진리표와 결과가 반대라는 말이다. AND 게이트의 출력이 0일 때 NAND 게이트는 1이다. 반대로 AND 게이트 출력이 1이면 NAND 게이트 출력은 0이다.
KLDP 블로그는 그다지 화려하지도, 많은 기능을 제공하지도 않지만 F/OSS, IT에 관련된 충실한 내용을 담고자 노력하는 분들이 함께 만들어 나가고 있습니다. 혹시라도 이곳에서 블로그를 운영하시고자 하는 분은 이곳으로 어떤 내용으로 운영하실지를 알려 주십시오. 확인 후 개설 여부를 결정하여 알려 드리도록 하겠습니다.