1. 실험 목적비동기/동기 Counter의 구조와 동작원리를 이해한다. 그리고 Mealy/Moore State machine을 분석하고 설계할 수 있는 능력을 기르고, ISE의 bus 구현에 대해 배운다.2. 실험 이론● CountersCounter는 일정한 주기를 가지고 0과 1의 신호를 반복하는 Clock 신호에 따라 0부터 까지, 혹은 부터 0까지 숫자 병렬 Counter로 나눌 수 있다. 우선 동기 직렬 Counter는 FF의 입력이 이전 FF의 입력과 출를 세는 것처럼 개의 상태를 반복적으로, 차례대로 출력하는 순차 논리회로로서, 보통 n개의 flip-flop을 연결하여 구성된다. 이 경우 n-bit binary counter라고도 한다.Counter는 크게 비동기와 동기 counter로 나눌 수 있다. 우선 비동기 counter는 counter를 구성하는 FF들이 Clock 입력을 공유하지 않고, 첫 FF를 제외한 모든 FF가 이전 FF의 출력을 Clock 신호로 받게 된다. T FF, 혹은 D FF나 JK FF를 이용해 1의 입력이 들어올 때마다 FF의 출력이 바뀌도록 하고 비동기 counter를 설계한다면 FF의 출력은 일정한 주기를 가진 신호가 되는데, 이는 m번째 FF에 대해 Clock 신호의 배에 해당하는 주기를 가지게 된다.이어서 동기 Counter는 counter를 구성하는 FF들이 Clock 입력을 동일한 하나의 신호로 받는다. 동기 직렬 Counter는 크게 동기 직렬 Counter와 동기력을 AND gate를 통해 연결되어 입력되는 방식이다. 다만 동기 직렬 Counter의 경우 Clock의 주기가 아주 짧을 경우 Clock 신호로부터 FF까지의 누적된 전달지연으로 인해 Clock 신호가 전달되지 않아 Counter로서 동작하지 않을 수도 있다. 반면에 동기 병렬 Counter의 경우 첫 번째 FF에 입력으로 들어가는 입력신호와 이전 FF들의 출력이 모두 AND gate를 통해 연결되어 다음 FF의 입력에 연결된다. 이로 인해 전달지연이 훨씬 줄어들어 동기 직렬 Counter에서 일어날 수 있는 문제를 미연에 방지할 수 있다.
1. 실험 목적Flip-flop의 종류를 파악하고, setip time과 hold time을 배우고 각각의 동작원리를 이해한다. 그리고 Registers의 동작원리를 이해하고 ISE의 simulation 기능에 대해 배운다.2. 실험 이론● Sequential logic circuitCombinational logic circuit ; 조합 논리회로에서는 gate들의 조합을 통해 구성된 회로로서, 주어진 입력에 대해 바로 출력이 나오고 이전의 출력이 다음 입력에 대한 출력에 영향을 미치지 않는다. 반면에 Sequential logic circuit ; 순차 논리회로에서는 이전의 회로 상태가 다음 출력에 영향을 미치는데, 이는 보통 활성화되는 주기를 가진 clock이라는 신호에 의해 출력이 결정되는 시점이 정해진다.● SR(Set-Reset) latchSR latch는 가장 기본적인 순차 논리회로 소자로서, XOR gate 두 개를 통해 구성되는데, 각 XOR gate의 입력으로 하나는 새로운 입력 신호를 받지만, 다른 하나는 두 개의 XOR gate가 서로의 출력을 각자의 입력으로 받도록 교차해 연결한다.
전체적으로 이론과 동일한 실험 결과가 나왔다. 하지만 시행착오로 인한 오차가 있었는데, 결과가 아예 반대로 나오는 경우가 생각보다 잦았었다. 그때마다 원인을 분석해보니 DIP 스 위치를 쓰는 실험에서 스위치의 Pull type가 pullup인 것을 잊고 연결을 실수했던 것이었 다. 이러한 실수는 이전 실험에서도 겪었었던 만큼 더욱 주의를 기울여야 한다는 것을 알 수 있었다. 그리고 STEP 1~3의 경우 가장 기초적이고 간단한 실험임에도 불구하고 다른 실험의 배로 시간이 걸렸는데, 이는 Cmod S6에 내장된 버튼을 PlanAhead에서 FPGA의 핀에 할당할 때 Pull Type을 잘못 설정한 채 알아차리지 못하고 있었기 때문이다. 이 간단 하지만 큰 실수를 통해 회로 실험에서는 하나하나 꼼꼼히 실험 환경을 준비해야 한다는 것 을 알 수 있었다.
TTL TTL은 이름 그대로 트랜지스터들을 조합해 만드는 논리 회로를 말한다. 이 TTL은 회로에 서 logic level을 입력 혹은 출력 신호와 GND 사이의 전압 차로 표현하는데, 일반적인 TTL 소자의 경우 신호의 전압이 입력일 때는 2.0V, 출력일 때는 2.7V 이상이여야 logic level이 1로, 입력일 때 0.8V, 출력일 때는 0.5V 이하여야 logic level이 0으로 적용된다. 이런 식으로 logic level을 갖는 전압 조건을 입력과 출력이 다르게 정하는 이유는 gate의 출력값이 다른 gate의 입력값으로 들어가며 신호가 전달되며 회로가 전개될 때 noise가 발생하며 전압에 변화가 생기기 때문이다. 이때 각각의 logic level에 대한 입력과 출력 전압 조건값의 차이를 noise margin이라고 한다. 위의 경우와 마찬가지로 일반적인 TTL 소자의 경우 logic level이 1일 때 noise margin이 0.7V, logic level이 0일 때는 noise margin이 0.3V다.
1. 실험 목적Shift register의 구조와 동작원리를 이해하고, Multiplier 설계를 통해 shift register의 활용방법을 익힌다. 그리고 4-digit 7-segment display의 구동원리를 이해하고 활용을 위한 회로를 설계한다.2. 실험 이론● Shift registersShift registers는 개별적인 flip-flop들의 연결을 통해 구성되고 clock 신호의 입력에 따라 여러 FF로 구성된 register의 data가 shift 되도록 설계된 소자다. clock의 한 주기 당 하나의 FF만큼 data를 shift하므로 1bit씩 shift 된다고 볼 수 있다.이러한 shift register는 입출력 방식을 각각 직렬, 혹은 병렬로 하는지에 따라 4가지로 나눌 수 있는데, 우선 입출력을 모두 직렬로 연결한 Serial-in, serial-out shift register는 입력하고자 하는 신호를 clock에 맞춰 첫 번째 FF에 입력하고, 이게 마지막 FF에 연결된 출력으로 나오게 되므로 단순히 FF의 개수만큼 출력이 delay 된다고 볼 수 있다. 반면에 입력을 직렬, 출력을 병렬로 하는 Serial-in, parallel-out shift register는 입력은 같지만 모든 FF의 출력값을 확인할 수 있게 되어 data를 병렬로 출력하게 된다.