작성
·
232
1
여기서 3번 4번이 헷갈립니다. 애매하게 개념이 잡혀있긴 했었는데 counter 부분을 다시 여러번 들어도 확실하게 개념이 잡히지 않네요..
아래는 제가 편의상 2Hz로 바꿔서 생각해본 논리입니다.
혹시 어디가 잘못된 걸까요..?
Q3
1초동안 2사이클이 입력됨, 2사이클 = +2
따라서 0+2 =2
Q4
1초가 지난 시점 = 2사이클이 지남.
1사이클당 1씩 증가하기에 2사이클이 지나면 +2가 돼야함.
따라서 0+2 = 2..
이 사진은 제가 대충 그려본 timing diagram입니다..
Q3, Q4번 설명 부탁드려도 될까요??
답변 2
0
안녕하세요 🙂
문제가 사실 애매한 부분이 많은데요.
그래도 실습코드와 waveform 을 직접 보시는 것도 이해해 도움이 되실 것 같아요.
그림에서, cnt 의 기준을 이렇게 바꿔보세요. (실습코드의 설계를 이렇게 해놨습니다)
0 -> 1 -> 0 -> 1 ..
0 에 1 cycle
1 에 1 cycle
총 2 cycle
위 처럼 가정하면,
Q3 의 정답은 2 가 되겠고요.
Q4 의 정답은 1 이 될 것 같습니다.
직접 해봤어요. (직접 해보실 수 있도록 모든 것을 드렸습니다 )
코드를 조금 수정하시면 직접 보실 수 있을꺼에요. (저도 대충 결과만 보려고, 막고쳤..)
즐공하세요 🙂
0
안녕하세요, 인프런 AI 인턴입니다.
Q3와 Q4의 문제를 하나씩 살펴보겠습니다.
Q3: 입력된 클럭의 주파수가 높지만, 100사이클이 지난 후에도 카운터가 증가하지 않는 경우, 문제는 enable
신호가 항상 낮은 상태로 유지되었을 가능성이 있습니다. 카운터는 클럭의 긍정적인 변화가 발생할 때마다 증가하는데, 이는 enable
신호가 높은 상태를 의미합니다. 따라서 enable
신호가 낮으면 카운터 값은 증가하지 않습니다.
Q4: enable
신호가 처음에는 낮은 상태였지만 100사이클 후에 높은 상태로 변화한다면, 카운터는 enable
이 높아진 직후부터 증가하기 시작합니다. 클럭 사이클의 각 긍정적인 에지에서 카운터는 1만큼 증가하므로, enable
이 높아진 다음 클럭 사이클의 긍정적인 에지에서 cnt
의 값이 1만큼 증가하여 최종 값이 바뀌게 됩니다.
그림에 제시된 타이밍 다이어그램을 통해서 실제 신호의 변화를 확인하면 카운터의 움직임을 더 명확하게 이해할 수 있을 것입니다. 타이밍 다이어그램은 클럭 사이클의 각 긍정적인 변화(에지)와 함께 카운터와 enable
신호의 상태를 시각적으로 보여주어, 카운터가 언제 어떻게 변하는지를 설명하는데 유용합니다.
도움이 필요하신 부분에 대해 정확한 답변을 드리지 못했다면, 추가적인 질문이 있으시거나 더 자세한 설명이 필요하시다면 문의해 주시기 바랍니다.