EmbDev.net

Forum: FPGA, VHDL & Verilog Top Entity--D flip flop and Counter


von Fahim K. (fahimk)


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;

von Lothar M. (Company: Titel) (lkmiller) (Moderator)


Rate this post
useful
not useful
Fahim Khan wrote:
> But I want to modify it such that these signal becomes my port
Of which entity?
> and I can use it to excite some other circuit.
Connectet to where?

von Fahim K. (fahimk)


Rate this post
useful
not useful
Actually I want to use that signal as port so that I can give it to some 
other part of circuit let say to some analog part. I want it to include 
in my top entity as port not as signal.

Please log in before posting. Registration is free and takes only a minute.
Existing account
Do you have a Google/GoogleMail account? No registration required!
Log in with Google account
No account? Register here.