Design
(counter.vhd)
-----------------------------------------------------------------
--
VHDL description for 3-bit counter circuit.
-----------------------------------------------------------------
-----------------------------------------------------------------
--
Library Definitions
-----------------------------------------------------------------
LIBRARY
ieee;
USE
ieee.std_logic_1164.ALL;
USE
ieee.numeric_std.ALL;
LIBRARY
COMPONENTS;
USE
COMPONENTS.LOGIC.ALL;
-----------------------------------------------------------------
--
Entity Definition
-----------------------------------------------------------------
ENTITY
counter IS
PORT ( Clk
:
IN
STD_LOGIC;
Reset :
IN
STD_LOGIC;
A
: OUT
STD_LOGIC;
B
: OUT
STD_LOGIC;
C
: OUT
STD_LOGIC);
end
counter;
-----------------------------------------------------------------
--
Architecture Definition
-----------------------------------------------------------------
ARCHITECTURE
structural OF counter IS
SIGNAL An
:
STD_LOGIC;
SIGNAL Bn
:
STD_LOGIC;
SIGNAL Cn
:
STD_LOGIC;
SIGNAL Db
:
STD_LOGIC;
SIGNAL Dc
:
STD_LOGIC;
SIGNAL X1
:
STD_LOGIC;
SIGNAL X2
:
STD_LOGIC;
SIGNAL X3
:
STD_LOGIC;
COMPONENT AND2
PORT ( I0
:
IN
STD_LOGIC;
I1 :
IN
STD_LOGIC;
O
: OUT
STD_LOGIC);
END COMPONENT;
COMPONENT AND3
PORT ( I0
:
IN
STD_LOGIC;
I1 :
IN
STD_LOGIC;
I2 :
IN
STD_LOGIC;
O
: OUT
STD_LOGIC);
END COMPONENT;
COMPONENT DFF
PORT ( C
:
IN
STD_LOGIC;
CLR :
IN
STD_LOGIC;
D
: IN
STD_LOGIC;
Q :
OUT
STD_LOGIC);
END COMPONENT;
COMPONENT INV
PORT ( I
:
IN
STD_LOGIC;
O
: OUT
STD_LOGIC);
END COMPONENT;
COMPONENT OR3
PORT ( I0
:
IN
STD_LOGIC;
I1 :
IN
STD_LOGIC;
I2 :
IN
STD_LOGIC;
O
: OUT
STD_LOGIC);
END COMPONENT;
COMPONENT XOR2
PORT ( I0
:
IN
STD_LOGIC;
I1 :
IN
STD_LOGIC;
O
: OUT
STD_LOGIC);
END COMPONENT;
BEGIN
I0 : AND2
PORT MAP (I0=>Cn, I1=>A, O=>X1);
I1 : AND2
PORT MAP (I0=>Bn, I1=>A, O=>X2);
I2 : AND3
PORT MAP (I0=>C, I1=>B, I2=>An, O=>X3);
I3 : DFF
PORT MAP (C=>Clk, CLR=>Reset, D=>Db, Q=>B);
I4 : DFF
PORT MAP (C=>Clk, CLR=>Reset, D=>An, Q=>A);
I5 : DFF
PORT MAP (C=>Clk, CLR=>Reset, D=>Dc, Q=>C);
I6 : INV
PORT MAP (I=>A, O=>An);
I7 : INV
PORT MAP (I=>B, O=>Bn);
I8 : INV
PORT MAP (I=>C, O=>Cn);
I9 : OR3
PORT MAP (I0=>X1, I1=>X2, I2=>X3, O=>Dc);
I10 : XOR2
PORT MAP (I0=>C, I1=>B, O=>Db);
END
structural;
-----------------------------------------------------------------
--
End of File
-----------------------------------------------------------------