회로실습 시험 문제가 나왔다.
문제.
램프 불빛으로 핸드볼 게임이 작동되도록 회로를 직접 구현하기
작동 원리를 완벽하게 이해하고 완벽하게 구현할 것.
구술 시험을 동시에 실시하며, 질문에 자세히 답할 것.
움직이는 공을 전자회로 상에서 시뮬레이션하는 게임.
실험에 앞서 주어진 조건
1. 단순히 IC 회로만 나와있는 논리도표
2. 74194 IC (이게 문제임 -_-)
3. 리셋과 스타트 순서
4. 펄서의 작동 시기
5. "스타트 스위치가 눌러진 후 다음 상태 입력"
처음에는 이 조건들을 고려하지 않고 회로 분석을 시도했다.
그러다보니 5번에 해당하는 문제가 발생했는데 그때까지도 난 내가 5번 조건을 고려하지 않았다는 것을
꿈에도 몰랐다. -_-
처음에 GND에 연결된 스타트 버튼을 누르게 되면 0이 들어간다.
5번 조건은 최초 0이 들어간 이후부터는 스타트가 열림 상태가 되면서 1이 들어가야 된다는 말인데
나는 계속 0이 들어간다는 조건으로 알고 시작했던 거다.
최초에만 0이 들어가고 이후에 1이 들어가야 되는 이유는
스타트 라인이 SR 보수 래치의 R' 선이기 때문이다.
SR 보수 래치는 S'와 R'의 입력이 동시에 0이 들어가면 안되도록 설계가 되어있고
0 0은 정의되지 않음 이라고 정의한다.
R'에서 0이 통과하면 1로 바뀌고 반대편 NAND로 들어가서 다시 0으로 나오고
되돌아와서 R' 라인과 함께 0으로 입력이 되는데
스타트를 누르기 이전에 리셋 버튼을 누르면
리셋이 GND에 연결되어 있기 때문에 0으로 들어가게 되는데 이 0은 AND 게이트에
통과된다.
통과된 0은 SR 보수 래치의 S'에 들어가게 되고... 그렇게 되면 S'와 R'에 0 0 이 입력되게 되므로
정상적인 결과값을 다음 회로에 줄 수가 없는 것이다.
그래서 74194 IC에 1을 보내주기 위해 최초에만 0을 입력하고 이후부터는 1을 입력하는 것이다.
1이 들어가게 되면 0 1 혹은 1 1이 입력되게 되니까 ㅋㅋ
역시 뭔가를 만들거나 할 땐 설명서를 잘 읽어봐야 한다는 말이 바로 이 말인 것 같다.
하지만! 문제는 74194 !!!!!!!!!!!!!!
구글링을 하든, 어디를 찾아봐도 74194 회로가 내부에서 어떤 원리로 작동하는지가 나와있지 않다.
74194는 4 bit Bidirectional Shift Register로써 "4비트 양방향 시프트 레지스터"이다
PIPO 방식이기 때문에 병렬 입력/병렬 출력을 하는 방식이다.
4비트 이므로 4개의 입력선과 출력선을 가지는데 문제는
CLK과 CLR는 뭐 다른 회로에도 있으니 그렇다 치고
SIL과 SIR, S1과 S0이란 희한한 녀석이 있는데
회로표가 원문으로 되어있어서 해석을 해보니
clr에 1, clk은 작동, S1이 0, S0가 1인 경우에는 SIR이 작동을 하고
반대의 경우엔 SIL이 작동을 하는 것으로 나왔다.
대충 보니 왼쪽으로 쉬프트, 오른쪽으로 쉬프트 한다는 뜻인데
문제는 이것들이 어떤 식으로 작용을 해서
입력 4개가 출력으로 빠져나가는가이다.
이걸 못찾아서 한참 고민하고 검색하다가 노형한테 물어봤는데
역시 전자공학과의 엘리트(?) 답게 이야기를 해주시는데
74194 IC 안에 4개의 D 플립플롭이 비동기식으로 작동을 해서 결과를 출력하지 않겠느냐
하는 것이었다.
순간! 이거다 싶었다.
생각해보니 4입력/4출력은 네개의 플립플롭이 필요한데 그 중 D 플립플롭인 것 같았다.
으음... 근데 이렇게 되면 74194 내부에 4개의 플립플롭을 연결해봐야 되겠네
아아 모르겠다 ㅠㅠ 왤케 복잡한지 ㅠㅠ
'공대남자 > 프로그래밍' 카테고리의 다른 글
Pointer Skill Master - Level 1 (0) | 2010.01.15 |
---|---|
함수는 참 쉽죠잉 (0) | 2010.01.11 |
쉽지 않은 재귀함수의 이해 (5) | 2009.08.11 |
하향식 프로그래밍 설계 기법 (1) | 2009.08.06 |
컴파일러에 따라 다르게 연산되는 증감연산자 (0) | 2009.08.05 |