Digital design with CPLD applications and VHDL (R. Dueck, 2000)
.pdfAnswers to Selected Odd-Numbered Problems |
809 |
BEGIN
—— Instantiate flip-flop from an LPM component dff12: lpm_ff
GENERIC MAP (LPM_WIDTH => 12)
PORT MAP ( data => d_in,
clock => clk, aclr => clrn, aset => prn,
q=> q_out);
——Make set and reset active-LOW clrn <= not reset;
prn <= not set;
END a;
FIGURE ANS7.41
7.43See Figure ANS7.43.
CLK
T
Q
FIGURE ANS7.43
7.45—— syn4tprm.vhd
—— 4-bit sync counter (TFF primitives)
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
LIBRARY altera;
USE altera.maxplus2.ALL;
ENTITY syn4tprm |
IS |
PORT (clock, reset : IN STD_LOGIC; |
|
q |
: OUT STD_LOGIC_VECTOR(3 downto 0)); |
END syn4tprm; |
|
812 Answers to Selected Odd-Numbered Problems
Recycle
CLK
Q0
Q1
Q2
Q3
|
|
|
|
|
FIGURE ANS9.7 |
|
|
|
9.7 Figure ANS9.7 shows the timing diagram of a mod-10 |
9.13 |
J0 K0 1 |
||||||
|
counter. |
|
|
|
|
|
J1 K1 Q0 |
|
|
|
|
|
|
|
|
|
J2 K2 Q1Q0 |
|
|
Q3 |
Q2 |
Q1 |
Q0 |
|
J3 K3 Q2Q1Q0 |
|
|
|
|
|
|
|
|
|
J4 K4 Q3Q2Q1Q0 |
|
0 |
0 |
0 |
0 |
|
|
||
|
|
|
J5 K5 Q4Q3Q2Q1Q0 |
|||||
|
0 |
0 |
0 |
1 |
|
|
J6 K6 Q5Q4Q3Q2Q1Q0 |
|
|
0 |
0 |
1 |
0 |
|
|
||
|
|
|
J7 K7 Q6Q5Q4Q3Q2Q1Q0 |
|||||
|
0 |
0 |
1 |
1 |
|
|
||
|
|
9.15 |
a. J3 Q2Q1Q0 |
|||||
|
0 |
1 |
0 |
0 |
|
|||
|
0 |
1 |
0 |
1 |
|
|
K3 Q1Q0 |
|
|
0 |
1 |
1 |
0 |
|
|
J2 Q3Q1Q0 |
|
|
0 |
1 |
1 |
1 |
|
|
K2 Q1Q0 |
|
|
1 |
0 |
0 |
0 |
|
|
J1 Q0 |
|
|
1 |
0 |
0 |
1 |
|
|
K1 Q0 |
|
|
|
|
|
|
|
|
|
J0 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
K0 1 |
9.9 |
Q0: 24 kHz; Q1: 12 kHz; Q2: 6 kHz; Q3: 3 kHz |
|
b. 1011, 0000, 0001 |
|||||
9.19 |
|
|||||||
9.11 |
See Figure ANS9.11 |
|
|
|
See Figure ANS9.19 |
|||
|
|
|
|
|
|
|
|
AND2 |
|
|
AND3 |
|
VCC |
|
|
|
|
|
|
|
JKFF |
|
JKFF |
|
JKFF |
|
JKFF |
|
J |
PRN |
J |
PRN |
J |
PRN |
J |
PRN |
Q |
Q |
Q |
Q |
||||
K |
|
K |
|
K |
|
K |
|
CLRN |
CLRN |
CLRN |
CLRN |
||||
INPUT |
|
|
|
|
|
|
|
clock |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
OUTPUT |
|
|
|
|
|
|
|
q3 |
|
|
|
|
|
|
|
OUTPUT |
|
|
|
|
|
|
|
q2 |
|
|
|
|
|
|
|
OUTPUT |
|
|
|
|
|
|
|
q1 |
|
|
|
|
|
|
|
OUTPUT |
|
|
|
|
|
|
|
q0 |
FIGURE ANS9.11 |
|
|
|
|
|
|
|
Answers to Selected Odd-Numbered Problems |
815 |
FIGURE ANS9.27
FIGURE ANS 9.29
Answers to Selected Odd-Numbered Problems |
817 |
FIGURE ANS9.33B
9.35—— ct_mod24
——Presettable counter with synchronous clear and load
——and a modulus of 24
ENTITY ct_mod24 IS |
|
|
PORT( |
|
|
clk |
: IN |
BIT; |
clear, direction |
: IN |
BIT; |
q |
: OUT INTEGER RANGE 0 TO 23); |
|
END ct_mod24; |
|
|
ARCHITECTURE a OF ct_mod24 IS
BEGIN
PROCESS (clk)
VARIABLE cnt : INTEGER RANGE 0 TO 23;
BEGIN
IF (clk‘EVENT AND clk ‘1’) THEN
|
IF (clear = ‘0’) |
THEN |
—— Synchronous clear |
|
|
|
cnt := |
0; |
|
|
ELSIF |
(direction = ‘0’) THEN |
||
|
|
IF cnt = 0 THEN |
|
|
|
|
cnt := 23; |
|
|
|
|
ELSE |
|
|
|
|
cnt := cnt - 1; |
||
|
|
END IF; |
|
|
|
ELSIF |
(direction = ‘1’) THEN |
||
|
|
IF cnt = 23 THEN |
|
|
|
|
cnt := 0; |
|
|
|
|
ELSE |
|
|
|
|
cnt := cnt + 1; |
||
|
|
END IF; |
|
|
|
END IF; |
|
|
|
END IF; |
|
|
|
|
q |
<= |
cnt; |
|
|
END PROCESS;
END a;
See Figure ANS9.35 for simulation.