'Flip Flop VHDL'에 해당되는 글 1건

  1. 2010.01.09 VHDL Basic 5
Studyhard/VHDL2010.01.09 02:23
JK 플립플롭

LIBRARY ieee;  
USE ieee.std_logic_1164.ALL;   
-
ENTITY ex IS
PORT(n_cp, j, k   : IN    std_logic;
         q        : BUFFER std_logic);
END ex;

ARCHITECTURE arc OF ex IS
SIGNAL jk : std_logic_vector (1 DOWNTO 0);
BEGIN
jk<=j&k;
PROCESS (n_cp, j, k)
BEGIN
IF (n_cp'EVENT AND n_cp= '0') THEN        -- Negative edge trigger
CASE jk IS
WHEN "00" => q <= q; -- Hold
WHEN "01" => q <= '0'; -- Reset
WHEN "10" => q <= '1'; -- Set
WHEN "11" => q <= NOT q; -- Toggle
WHEN OTHERS => q <= q;
END CASE;
END IF; 
END PROCESS;
END arc;

* 다른 플립플롭도 설계 후 시뮬레이션을 확인하길 바랍니다. ^ ^

VHDL Basic 5

 - 비동기식 상승 카운터
   비동기식 상승 카운터는 동기식처럼 클럭을 공통으로 사용하지 않고 앞쪽에 있는 플립플롭의 출력이 뒤쪽에 있는 플립플롭의 클럭으로 사용된다. 위 회로는 하강모서리 트리거 방식이므로 클럭이 1에서 0으로 떨어지는 순간 동작하게 된다.


- 비동기식 하강 카운터
   상승 카운터와 반대로 역순으로 카운트되는 것을 말한다. 매 클럭 수 마다 1씩 감소한다

- 비동기식 MOD-N 카운터
  mod-N 카운터는 N개의 카운터 순서를 반복하는 카운터를 말한다. 10진 카운터는 mod-10, 12진 카운터는 mod-12, 4비트 2진 카운터는 mod-16 이다.
  
  EX) MOD -6 카운터

 - 과제 
JK 플립 플롭을 이용하여 상승 카운터, 하강 카운터를 만들어 본다. 

설계 예시 (Shift Register)

 - JK플립플롭읠 4개로 직렬 연결하여 구성, 처음 JK 플립플롭에 J=1,K=0 을 넣고, Clock은 4개에 동시에 집어 넣는다. 다음 JK플립플롭은 이전 플립플롭의 출력 Q, /Q를 각각 J,K에 넣어준다. 그리고 Waveform 파일을 확인하면 차례로 Shift 되는 걸 확인할 수 있다.

저작자 표시 비영리 변경 금지
신고
Posted by 리얼한놈

티스토리 툴바