고급디지털 회로설계 - 111 DETECTOR 설계
1. 설계 내용
VHDL을 이용하여 연속적인 111을 detect하여 111의 개수를 count 한다. 또한, 111이 15번 count되면 동작을 멈추어야 하며, S=1이 입력되었을 경우에는 처음으로 되돌아가는 프로그램을 설계한다.
2. State Diagram
mealy 형태를 이용하여 state diagram을 그렸다.
a, b, c, d, e, f, g, h는 detector을 위한 mealy이고, option의 조건을 만족시키기 위해 STOP과 WORK로 state를 또 나누어 동작하도록 설계하였다.
3. 결과 예측
input을 다음과 같이 주었을 때, detect한 output은 다음과 같을 것이다. 이는 뒤에서 두 번째 111을 detect하기 위해서 2 bit delay된다.
input
0 0 1 1 1 0 1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0
output
0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 1 0 1 1 0 0 0 0 1 0 0 0 1 1
하지만 option의 조건에서, 111의 개수를 count 할 때 첫 번째와 마지막 2개의 111만 count 하는 것이 아니라 연속적인 111의 전체 개수를 count 해야 하므로 이를 count하면
위와 같은 input일 때
input
0 0 1 1 1 0 1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0
output
0 0 0 0 1 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0
이 된다.
하지만 뒤에서 coding 할 때 count한 것이 15, 즉 “1111”이 되면 초기 상태로 돌아가도록 하였다.
4. Code
.... |