922a2a6481d136a21d4a69424d92b93f28920334
[hwmod.git] / src / calc.vhd
1 library ieee;
2 use ieee.std_logic_1164.all;
3 use ieee.numeric_std.all;
4 use work.gen_pkg.all;
5 use work.textmode_vga_component_pkg.all;
6 use work.textmode_vga_pkg.all;
7 use work.textmode_vga_platform_dependent_pkg.all;
8 use work.ps2_keyboard_controller_pkg.all;
9
10 entity calc is
11         port (
12                 sys_clk : in std_logic;
13                 sys_res_n : in std_logic;
14                 -- btnA
15                 -- TODO: pins
16                 -- rs232
17                 -- TODO: pins
18                 -- vga
19                 vsync_n : out std_logic;
20                 hsync_n : out std_logic;
21                 r : out std_logic_vector(RED_BITS - 1 downto 0);
22                 g : out std_logic_vector(GREEN_BITS - 1 downto 0);
23                 b : out std_logic_vector(BLUE_BITS - 1 downto 0);
24                 -- ps/2
25                 ps2_clk : inout std_logic;
26                 ps2_data : inout std_logic
27         );
28 end entity calc;
29
30 architecture top of calc is
31         -- vga
32         signal vga_clk, free : std_logic;
33         signal command : std_logic_vector(COMMAND_SIZE - 1 downto 0);
34         signal command_data : std_logic_vector(3 * COLOR_SIZE + CHAR_SIZE -1 downto 0);
35 begin
36         -- vga/ipcore
37         textmode_vga_inst : entity work.textmode_vga(struct)
38         generic map (
39                 VGA_CLK_FREQ => 25000000,
40                 BLINK_INTERVAL_MS => 500,
41                 SYNC_STAGES => 2
42         )
43         port map (
44                 sys_clk => sys_clk,
45                 sys_res_n => sys_res_n,
46                 command => command,
47                 command_data => command_data,
48                 free => free,
49                 vga_clk => vga_clk,
50                 vga_res_n => sys_res_n,
51                 vsync_n => vsync_n,
52                 hsync_n => hsync_n,
53                 r => r,
54                 g => g,
55                 b => b
56         );
57
58         -- pll fuer vga
59         vpll_inst : entity work.vpll(syn)
60         port map (
61                 inclk0 => sys_clk,
62                 c0 => vga_clk
63         );
64
65         -- TODO: display
66         -- TODO: history
67         -- TODO: scanner
68         -- TODO: ps/2
69 end architecture top;
70