
논리회로설계실험 10주차 up down counter설계
본 내용은
"
논리회로설계실험 10주차 up down counter설계
"
의 원문 자료에서 일부 인용된 것입니다.
2023.09.12
문서 내 토픽
-
1. Moore machineMoore machine의 가장 큰 특징은 output이 current state에 의해서만 결정된다는 것이다. 이러한 특징을 이용하여 3-bit up-down counter를 Moore machine-style diagram으로 그려보았다. 오른쪽의 diagram과 같이 current state에 의해서만 output이 결정되는 Moore machine-style diagram이 그려진다. Input으로 reset, mode가 필요하며, output으로는 next_state가 필요하다. S0부터 S7까지 총 8개의 state가 필요할 것이므로 3-bit의 state가 필요하고, output과 next_state도 마찬가지로 3-bit가 필요할 것이다.
-
2. Mealy machineMealy machine은 current state와 input에 의해서 output이 결정된다. 이러한 특징을 이용하여 3-bit up-down counter를 Moore machine-style diagram으로 그려보았다. 오른쪽의 diagram과 같이 current state와 input으로 output이 결정되는 Mealy machine-style diagram이 그려진다. Input으로 reset, mode가 필요하며, output으로는 state와 output이 필요하다. S0부터 S7까지 총 8개의 state가 필요할 것이므로 3-bit의 state가 필요하고, output도 마찬가지로 3-bit가 필요할 것이다.
-
3. Moore machine 구현Moore-machine style로 3-bit up-down counter를 구현한 코드는 위와 같다. Input에는 clk, rst, mode를 입력할 수 있고, output으로는 3-bit의 out, state, next_state를 설정하였으며, reg에도 동일하게 두었다. State를 구분하기 위한 Parameter은 S0~S7까지 설정하였고, 각각 0~7의 숫자로 두었다. 먼저 output은 Moore machine의 특성상 current state에만 의존하여 정해진다. 따라서 always @ (state)로 always 구문을 작성하였고, 그 아래로 현재의 state에 따라 output을 어떻게 출력할 지 구현하였다. 그 다음으로는 current state를 update하는 코드를 작성하는데 clk이 posedge일 때 RESET = 1 인 경우를 제외하고 state가 next_state의 값으로 update 되도록 구현하였다. 마지막으로 next_state를 update하는 코드를 작성하였다.
-
4. Mealy machine 구현Mealy-machine style로 3-bit up-down counter를 구현한 코드는 위와 같다. Input에는 clk, rst, mode를 입력할 수 있고, output으로는 3-bit의 out, state를 설정하였으며, reg에도 동일하게 두었다. State를 구분하기 위한 Parameter은 S0~S7까지 설정하였고, 각각 0~7의 숫자로 두었다. 먼저 output은 Mealy machine의 특성상 current state와 input에 의존하여 정해진다. 따라서 always @ (state or mode)로 always 구문을 작성하였고, 그 아래로 mode값과 현재의 state에 따라 output을 어떻게 출력할 지 if문과 case문을 사용하여 구현하였다. 그 다음으로 작성한 코드는 다음 state를 결정하는 코드이다.
-
5. Testbench 구현Testbench code의 input에는 Moore counter와 Mealy counter 둘 다 reg로 RESET, MODE를 선언하였다. output에는 Moore counter에서는 OUT, STATE, NEXT_STATE를 wire로, Mealy counter에서는 OUT, STATE를 wire로 선언하였다. Module instantiation 부분에서는 구현한 두가지의 Moore counter, Mealy counter의 module을 선언하였다. RESET과 MODE의 초기값을 지정하는 부분에서는 Moore과 Mealy 둘 다 RESET 초기값은 1'b1, MODE의 초기값은 1'b0으로 설정하였다. 또한 test pattern 코드에서는 1'b1이던 Moore과 Mealy의 RESET값을 1'b0으로 바꾼다. 그 후, Moore과 Mealy의 MODE값을 1로 150ns동안 유지하고, 그 후엔 MODE값을 다시 0으로 유지하게 test pattern을 구현해보았다.
-
6. Moore machine 실행 결과위의 그래프는 Moore-machine style로 3-bit up-down counter를 구현하여 simulation 결과 출력된 wave이다. 가장 위에는 CLK의 파형이고 그 아래는 RESET, MODE, OUT, STATE, NEXT_STATE의 wave이다. 170ns 이전까지는 RESET = 1이므로 output은 000이 출력된다. 이후에 RESET = 0이 되고 이때 MODE = 0 이므로 000에서 down되어 111이 출력된다. 이후로 111, 110, 101, 100 … 000으로 계속 down동작이 이어지다가 320ns에 MODE = 1로 바뀌고 000부터 001, 010, 011…111로 up 동작이 이어진다. 이후에 470ns이후에 MODE = 0으로 바뀌고나서 다시 down 동작이 일어난다. Moore machine으로 설계한 module은 OUT이 현재의 State에만 의존하므로 바로 바뀌지 않고 Clock의 Positive edge에서 OUT이 바뀌는 모습을 관찰할 수 있다.
-
7. Mealy machine 실행 결과위의 그래프는 Moore-machine style로 3-bit up-down counter를 구현하여 simulation 결과 출력된 wave이다. 가장 위에는 CLK의 파형이고 그 아래는 RESET, MODE, OUT, STATE의 wave이다. 170ns 이전까지는 RESET = 1이므로 output은 000이 출력된다. 이후에 RESET = 0이 되고 이때 MODE = 0 이므로 000에서 down되어 111이 출력된다. 이후로 111, 110, 101, 100 … 000으로 계속 down동작이 이어지다가 320ns에 MODE = 1로 바뀌고 000부터 001, 010, 011…111로 up 동작이 이어진다. 이후에 470ns이후에 MODE = 0으로 바뀌고나서 다시 down 동작이 일어난다. Mealy machine으로 설계한 module은 OUT이 현재 State와 MODE 둘의 조합에 따라 결정되므로 320ns에서 바로 up counter의 동작이 OUT으로 나타나는 것을 확인할 수 있다.
-
8. 실습 결과 및 고찰이번 실습에서는 Moore machine-style과 Mealy machine-style 두가지로 3-bit up-down counter를 구현해보았다. 코드를 작성하기전에 각 machine-style diagram을 직접 그려보고 참고하였고 3-bit up-down counter를 좀 더 쉽게 구현할 수 있었다. 구현한 두개의 modeling을 Modelsim의 simulation을 이용하여 출력되는 wave를 확인하였더니 두가지 3-bit up-down counter모두 정상적으로 작동함을 알 수 있었다. 이번 실습에서는 FSM type중 하나인 Moore machine과 Mealy machine에 대한 더욱 깊은 이해를 할 수 있었으며 이들의 동작 방식에 대한 이론을 바탕으로 3-bit up-down counter를 설계해보며 이전 실습시간에 다루었던 counter를 복습할 수 있는 기회가 되었다는 점에서 이번 실습의 의의가 있다.
-
1. Moore machineMoore machine은 유한 상태 기계(FSM)의 한 종류로, 출력이 현재 상태에만 의존하는 특징을 가지고 있습니다. 이는 Mealy machine과 달리 출력이 현재 상태와 입력에 모두 의존하는 것과 구분됩니다. Moore machine은 상태 천이 다이어그램을 통해 쉽게 설계할 수 있으며, 구현이 상대적으로 간단합니다. 또한 출력이 안정적이라는 장점이 있어 제어 시스템 등에 널리 사용됩니다. 하지만 Mealy machine에 비해 상태 수가 많아질 수 있다는 단점이 있습니다.
-
2. Mealy machineMealy machine은 유한 상태 기계(FSM)의 한 종류로, 출력이 현재 상태와 입력에 모두 의존하는 특징을 가지고 있습니다. 이는 Moore machine과 달리 출력이 현재 상태에만 의존하는 것과 구분됩니다. Mealy machine은 상태 천이 다이어그램을 통해 설계할 수 있으며, 상태 수가 Moore machine에 비해 적다는 장점이 있습니다. 또한 입력에 따라 출력이 달라질 수 있어 더 복잡한 동작을 구현할 수 있습니다. 하지만 출력이 불안정할 수 있다는 단점이 있어 제어 시스템 등에서는 Moore machine이 더 선호되기도 합니다.
-
3. Moore machine 구현Moore machine을 구현하기 위해서는 상태 천이 다이어그램을 설계하고, 이를 바탕으로 상태 천이 로직과 출력 로직을 구현해야 합니다. 상태 천이 로직은 현재 상태와 입력에 따라 다음 상태를 결정하는 것이며, 출력 로직은 현재 상태에 따라 출력을 결정하는 것입니다. 이를 위해 상태 레지스터와 조합 논리 회로를 사용하여 구현할 수 있습니다. 또한 상태 천이 다이어그램을 바탕으로 상태 천이 테이블을 작성하면 구현이 더 용이해질 수 있습니다. Moore machine은 구현이 상대적으로 간단하지만, 상태 수가 많아질수록 복잡도가 증가할 수 있습니다.
-
4. Mealy machine 구현Mealy machine을 구현하기 위해서는 상태 천이 다이어그램을 설계하고, 이를 바탕으로 상태 천이 로직과 출력 로직을 구현해야 합니다. 상태 천이 로직은 현재 상태와 입력에 따라 다음 상태를 결정하는 것이며, 출력 로직은 현재 상태와 입력에 따라 출력을 결정하는 것입니다. 이를 위해 상태 레지스터와 조합 논리 회로를 사용하여 구현할 수 있습니다. 또한 상태 천이 다이어그램을 바탕으로 상태 천이 테이블을 작성하면 구현이 더 용이해질 수 있습니다. Mealy machine은 Moore machine에 비해 상태 수가 적지만, 출력 로직이 복잡해질 수 있다는 단점이 있습니다.
-
5. Testbench 구현유한 상태 기계(FSM)인 Moore machine과 Mealy machine을 검증하기 위해서는 Testbench를 구현해야 합니다. Testbench는 입력 시퀀스를 생성하고, 출력을 모니터링하여 FSM의 동작을 검증하는 역할을 합니다. 이를 위해 입력 시퀀스 생성기, 출력 모니터링 로직, 그리고 검증 결과 확인 등의 기능이 필요합니다. 또한 다양한 입력 시퀀스와 초기 상태를 고려하여 충분한 테스트 케이스를 작성해야 합니다. Testbench 구현은 FSM의 정확한 동작을 검증하는 데 필수적이며, 디버깅 및 최적화에도 활용될 수 있습니다.
-
6. Moore machine 실행 결과Moore machine의 실행 결과를 확인하기 위해서는 Testbench를 통해 다양한 입력 시퀀스를 적용하고, 출력 동작을 관찰해야 합니다. Moore machine은 출력이 현재 상태에만 의존하므로, 상태 천이 다이어그램에 따라 예측 가능한 출력 동작을 보일 것입니다. 실행 결과를 통해 Moore machine의 상태 천이 로직과 출력 로직이 올바르게 구현되었는지 확인할 수 있습니다. 또한 다양한 입력 시퀀스에 대한 출력 동작을 관찰하여 Moore machine의 동작을 종합적으로 검증할 수 있습니다.
-
7. Mealy machine 실행 결과Mealy machine의 실행 결과를 확인하기 위해서는 Testbench를 통해 다양한 입력 시퀀스를 적용하고, 출력 동작을 관찰해야 합니다. Mealy machine은 출력이 현재 상태와 입력에 모두 의존하므로, 상태 천이 다이어그램에 따라 예측 가능한 출력 동작을 보일 것입니다. 실행 결과를 통해 Mealy machine의 상태 천이 로직과 출력 로직이 올바르게 구현되었는지 확인할 수 있습니다. 또한 다양한 입력 시퀀스에 대한 출력 동작을 관찰하여 Mealy machine의 동작을 종합적으로 검증할 수 있습니다.
-
8. 실습 결과 및 고찰이번 실습을 통해 Moore machine과 Mealy machine의 특성과 구현 방법을 이해할 수 있었습니다. Moore machine은 상태 천이 다이어그램이 간단하고 출력이 안정적이라는 장점이 있지만, 상태 수가 많아질수록 복잡도가 증가할 수 있습니다. 반면 Mealy machine은 상태 수가 적고 더 복잡한 동작을 구현할 수 있지만, 출력이 불안정할 수 있다는 단점이 있습니다. 이번 실습을 통해 각 FSM의 특성을 이해하고, 주어진 문제에 적합한 FSM을 선택할 수 있는 능력을 기를 수 있었습니다. 또한 Testbench 구현을 통해 FSM의 동작을 체계적으로 검증하는 방법을 익힐 수 있었습니다.
-
7주차 예비보고서- 디지털 시스템 설계 및 실험 4페이지
디지털 시스템 설계 및 실험 KEEE209 전기전자전파 공학부디지털 시스템 설계 및 실험이름 :학번 :실험제목Sequential Circuit 설계 및 구현실험목표1. 동기식 UP/DOWN 카운터를 설계한다.2. 카운터를 이용한 Sequential Circuit을 설계한다.기본지식1. 이론? 일반적으로 카운터는 입력 펄스에 따라 미리 정해진 순서대로 상태 전이가 진행되는 레지스터를 말한다. 0, 1, 2, 3, 4, 5, … 처럼 숫자를 차례대로 세는 것을 카운터라 한다. 여기에서 0~9의 숫자가 반복되면 10진 카운터라고 부른다....2020.07.29· 4페이지 -
충북대 기초회로실험 카운터 회로 예비 4페이지
실험 19. 카운터 회로(예비보고서)실험 목적(1) 비동기식 카운터의 구조와 동작원리를 이해한다.(2) 동기 계수기의 구조와 동작을 이해한다.(3) 임의의 mod 동기 계수기를 설계하는 방법을 익힌다.(4) 증계수, 감계수 및 증/감계수의 논리를 이해한다.이론(1) 비동기식 카운터플립플롭의 구동방식에 따라 비동기식 카운터와 동기식 카운터로 나뉜다. 이들은 각각 직렬 카운터와 병렬 카운터라고도 한다. 동기식 카운터는 장치를 구성하고 있는 모든 플립플롭이 하나의 공통된 클럭신호에 의해 구동되는 장치를 의미하며, 모든 플립플롭이 같은 시...2021.09.10· 4페이지 -
디지털회로실험 동기식 카운터, 비동기식 카운터 7페이지
1. 실험 목적실험1,2)- 비동기식 카운터(Asynchronous Counter)의 동작원리를 이해하고 구성한다.실험3)- 동기식 카운터(Synchronous)의 동작원리를 이해하고 Presettable Up/Down 10진 counter를 구성한다.2. 실험 과정실험 1) MOD-16 DOWN 카운터 회로와 7-segment 표시- 그림과 같이 회로를 결선한 후, PR을 접지에 연결했다가 다시 +5V에 연결한다.- 함수 발생기로부터 1Hz의 클럭펄스를 입력한 후에 CK단자, 출력 A, B, C, D에 연결한 LED를 통해 결과를...2023.10.24· 7페이지 -
8주차-실험19 예비 - 카운터 회로 14페이지
2015년도 제2학기기초회로실험Ⅱ기초회로실험Ⅱ실험19. 카운터 회로담당교수 : 교수님학 부 : 전자공학부학 번 :이 름 :실 험 조 :제 출 일 : 2015. 10. 28실험제목 : 카운터 회로실험목적 : (1) 비동기식 카운터의 구조와 동작원리를 이해한다.(2) 동기 계수기의 구조와 동작을 이해한다.(3) 임의의 mod 동기 계수기를 설계하는 방법을 익힌다.(4) 증계수, 감계수 및 증/감계수의 논리를 이해한다.실험준비물(1) SN7400(2) SN7404(3) SN7408(4) SN7411(5) SN7421(6) SN7472(7...2020.10.02· 14페이지 -
충북대학교 전자공학부 기초회로실험II 예비보고서 실험 19. 카운터 회로 5페이지
예비 보고서실험 19. 카운터 회로과목명기초회로실험 II담당교수실험 조학과전자공학과학번이름1. 목 적(1) 비동기식 카운터의 구조와 동작원리를 이해한다.(2) 동기 계수기의 구조와 동작을 이해한다.(3) 임의의 mod 동기 계수기를 설계하는 방법을 익힌다.(4) 증계수, 감계수 및 증/감계수의 논리를 이해한다.2. 이 론(1) 비동기식 카운터비동기식 카운터는 첫 단의 플립플롭에 클럭신호가 인가되어, 이 첫 단 플립플롭의 출력이 다음 단의 플립플롭을 트리거 시키도록 되어 있는 회로를 말하며, 클럭의 영향이 물결처럼 후단으로 파급된다는...2020.09.19· 5페이지