Top Entity--D flip flop and Counter

OP #2997901
Rate this post
useful
not useful
Hi,

I am writing entity which include both d flip flop and counter.
The output of d flip flop is qout and nqout. The qout is given as input 
to counter. Now while writing top entity I am considering qout and nqout 
as temporary signal. And its working fine. But I want to modify it such 
that these signal becomes my port and I can use it to excite some other 
circuit.
My code is as below.
1
---DFF
2

3
library ieee;
4
use ieee.std_logic_1164.all;
5

6
entity dff is
7
port ( din:     in std_logic;
8
       dclk:     in std_logic;
9
       qout:    out std_logic;
10
       nqout:   out std_logic
11
     );
12

13
end dff;
14

15
architecture behavioral of dff is
16

17
begin
18
        process(din,dclk)
19
        begin
20
          --- clock rising edge
21
        if(dclk='1' and dclk'event) then
22
                qout <= din;
23
                nqout <= not din;
24
        end if;
25
        end process;
26
end behavioral;
27

28

29
--UpdownCounter
30

31
library ieee;
32
use ieee.std_logic_1164.all;
33
use ieee.numeric_std.all;
34

35
entity counter is
36
generic(n: natural :=8);
37
port ( asynch_reset: in std_logic;
38
       qout: in std_logic;
39
       dclk: in std_logic;
40
       cnout: out std_logic_vector(n-1 downto 0)
41
     );
42
end counter;
43

44
architecture behavioral of counter is
45

46
signal Q: unsigned(n-1 downto 0);
47
begin
48

49
    process(asynch_reset, dclk,qout)
50
        begin
51

52
          if(asynch_reset = '1') then
53
                Q<="00000000";
54
          elsif (dclk'event and dclk = '1') then
55
                if (qout='1') then
56
                        Q<= Q + 1;
57
                else
58
                        Q<= Q - 1;
59
                end if;
60
          end if;
61
    end process;
62

63
    cnout<=     std_logic_vector(Q);
64
end behavioral;
65

66
----Top Entity
67
library ieee ;
68
use ieee.std_logic_1164.all;
69

70
entity top is
71
generic(n: natural :=8);
72
port(  din: in std_logic;
73
       asynch_reset: in std_logic;  
74
       dclk: in std_logic;
75
       cnout: out std_logic_vector(n-1 downto 0)
76
     );
77

78
end top;
79

80
architecture structure of top is
81

82
component dff is
83
port( din: in std_logic;
84
      dclk: in std_logic;
85
      qout: out std_logic;
86
      nqout: out std_logic
87
    );
88
end component;
89

90
component counter is
91
port( asynch_reset: in std_logic;
92
      qout: in std_logic;
93
      dclk:in std_logic;
94
      cnout:out std_logic_vector(n-1 downto 0)
95
    );
96
end component;
97

98
signal temp1,temp2:std_logic;
99

100
begin
101

102
flip_flop:dff
103
    PORT MAP(din,dclk,temp1,temp2);
104

105
updown_counter:counter
106
         PORT MAP(asynch_reset,temp1,dclk,cnout);
107
end structure;

Reply

Please log in before posting.

or

Log in with Google account

Registration is free and takes only a minute.

Register now