OpenCores
URL https://opencores.org/ocsvn/tm1637/tm1637/trunk

Subversion Repositories tm1637

[/] [tm1637/] [trunk/] [hdl/] [intel_qp/] [dec_counter/] [tm1637_toplevel.vhd] - Blame information for rev 3

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 3 mongoq
-- https://staging.doulos.com/knowhow/vhdl/vhdl-2008-easier-to-use/
2
-- https://community.intel.com/t5/Programmable-Devices/VHDL-2008-DSP-Builder-and-Quartus-10/td-p/16379
3
 
4
library IEEE;
5
use IEEE.STD_LOGIC_1164.ALL;
6
use IEEE.NUMERIC_STD.ALL;
7
use IEEE.STD_LOGIC_ARITH.ALL;
8
use IEEE.STD_LOGIC_UNSIGNED.ALL;
9
 
10
entity tm1637_toplevel is
11
    Port (    clk25     : in  std_logic;
12
                             clk    : out std_logic;
13
                             dio    : out std_logic
14
          );
15
end tm1637_toplevel;
16
 
17
architecture Behavioral of tm1637_toplevel is
18
 
19
-----------------------------------------------------------------------------
20
--
21
-- Important!!! Change this to fit to hw oscillator frequency.
22
-- The divider must be set so that the result is a frequency of 10-20 kHz
23
--
24
   constant divider  : integer := 2500; -- 25000000/2500 => 10000 -> 1 sec -> +1
25
-- 
26
-----------------------------------------------------------------------------
27
 
28
 
29
component tm1637_decimal_count IS
30
  generic (divider : integer);
31
  PORT (clk25, en : IN std_logic;
32
        out3, out2, out1, out0: OUT std_logic_vector(3 DOWNTO 0));
33
end component;
34
 
35
component tm1637_external_connect is
36
        Generic (divider  : integer);
37
   Port (clk25   : in std_logic;
38
                   data          : in std_logic_vector(15 downto 0);
39
                        clk      : out std_logic;
40
                        dio      : out std_logic;
41
                        en : in std_logic
42
         );
43
end component;
44
 
45
signal output0: std_logic_vector(3 DOWNTO 0);--:= "0001";
46
signal output1: std_logic_vector(3 DOWNTO 0);--:= "0010";
47
signal output2: std_logic_vector(3 DOWNTO 0);--:= "0011";
48
signal output3: std_logic_vector(3 DOWNTO 0); --:= "0000";
49
signal bigdata: std_logic_vector(15 downto 0); -- := "0000000000000000";
50
 
51
begin
52
 
53
-- https://stackoverflow.com/questions/32927663/how-to-make-startup-process-in-vhdl  
54
-- https://www.mikrocontroller.net/topic/477730
55
 
56
bigdata(3  downto  0) <= output0;
57
bigdata(7  downto  4) <= output1;
58
bigdata(11 downto  8) <= output2;
59
bigdata(15 downto 12) <= output3;
60
 
61
dc: tm1637_decimal_count
62
  generic map (divider => divider)
63
  port map (
64
        clk25 => clk25,
65
        en => '1',
66
        out3 => output3,
67
        out2 => output2,
68
        out1 => output1,
69
        out0 => output0
70
);
71
 
72
tec: tm1637_external_connect
73
   generic map (divider => divider)
74
   port map (
75
   clk25 => clk25,
76
   en => '1',
77
        data => bigdata,
78
        clk => clk,
79
        dio => dio
80
);
81
 
82
end Behavioral;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.