작성일: 2004.03.05

Program이 간단한 Gate Preset 방식의 Programmable 분주 Counter...

동기 Preset 방식의 주파수 Counter를 사용하면 간단히 Programmable 분주 Counter를 만들 수 있습니다...

동작원리는 동기 Preset 방식인 Counter의 상태도에 의해 Up-counter를 사용하여 d, c, b, a에 입력된 Program 입력값부터 Q = "1111"이 될 때까지 Jump하도록 동작시킵니다...  (실제 d, c, b, a 입력단에 인가되는 Binary data의 1의 보수에 +1을 한 값이 원하는 분주비가 됩니다...)

여기서는 ALTERA MAX+plus II에서 제공되는 Macrofunction중 하나인 74163 (4-Bit Binary Up Counter with Synchronous Load and Synchronous Clear)을 가지고 실제 구현 및 설명을 진행합니다...

실제 회로는 위의 그림처럼 간단하게 구현할 수 있습니다...  그림에서 74163에 의한 Gate Preset 방식의 Programmable 1/2 ~ 1/16 분주 Counter를 사용하고 있기 때문에 Q[D..A]=15에서 RCO=H로 되고 이 값을 반전한 "L"값이 LDN에 인가될 때 Program 입력을 Preset 합니다...

따라서 Program 입력과 분주비와의 관계는 표 1과 같고 분주비와 Program 입력 값은 16에 대한 보수로 됩니다...

[표 1] 그림의 분주비와 Program 입력

분주비

1/2

1/3

1/4

1/5

1/6

1/7

1/8

1/9

1/10

1/11

1/12

1/13

1/14

1/15

1/16

Program 입력

d 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
c 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0
b 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0
a 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0

Note: VHDL로 Coding시는 다음과 같이 하실수 있습니다...

LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
LIBRARY altera;
USE altera.maxplus2.ALL;

ENTITY sn74ls163 IS
  PORT (clk, clrn, d, c, b, a : IN STD_LOGIC;
        out_p, out_n          : OUT STD_LOGIC);
END sn74ls163;

ARCHITECTURE arch_sn74ls163 OF sn74ls163 IS
SIGNAL vcc, rco_p, rco_n : STD_LOGIC;
BEGIN
freqdiv: a_74163 PORT MAP (	clk=>clk, ldn=>rco_n, clrn=>clrn,
			enp=>vcc, ent=>vcc,
			d=>d, c=>c, b=>b, a=>a,
			rco=>rco_p);
vcc <= '1';
rco_n <= NOT rco_p;
out_p <= rco_p;
out_n <= rco_n;
END arch_sn74ls163;

Target Device를 EP1K10TC100-3으로 하여 MAX+plus II에서 Function Simulation까지 완료된 Sample Project 파일을 아래에서 다운로드하실 수 있습니다...  (Schematic으로 작업한 것과 VHDL로 작업한 것, 이렇게 두가지입니다...)

* 파일명: sn74ls163-sch.zip (11,488 bytes) * download *

* 파일명: sn74ls163-vhd.zip (14,769 bytes) * download *

** - siMPLY BETTER iNFORMATIONs - **

** Send mail ** Send to a colleague | ** Print icon ** Print this document