2 use ieee.std_logic_1164.all;
3 use ieee.numeric_std.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;
12 sys_clk_real : in std_logic;
13 sys_res_n : in std_logic;
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);
25 ps2_clk : inout std_logic;
26 ps2_data : inout std_logic;
33 architecture top of calc is
35 signal sys_clk : std_logic;
37 signal new_data : std_logic;
38 signal data : std_logic_vector(7 downto 0);
40 signal vga_clk, free : std_logic;
42 signal command : std_logic_vector(COMMAND_SIZE - 1 downto 0);
43 signal command_data : std_logic_vector(3 * COLOR_SIZE + CHAR_SIZE -1 downto 0);
45 signal d_new_eingabe, d_new_result : std_logic;
46 signal d_zeile : hzeile;
47 signal d_spalte : hspalte;
48 signal d_get, d_done : std_logic;
49 signal d_char : hbyte;
51 signal s_char : hbyte;
52 signal s_take, s_done, s_backspace : std_logic;
54 -- tmp: history<>scanner
55 signal do_it, finished : std_logic;
59 CLKIN_IN : IN std_logic;
60 RST_IN : IN std_logic;
61 CLKIN_IBUFG_OUT : OUT std_logic;
62 CLK0_OUT : OUT std_logic;
63 CLK0_OUT1 : OUT std_logic;
64 LOCKED_OUT : OUT std_logic
73 textmode_vga_inst : entity work.textmode_vga(struct)
75 VGA_CLK_FREQ => 25000000,
76 BLINK_INTERVAL_MS => 500,
81 sys_res_n => sys_res_n,
83 command_data => command_data,
86 vga_res_n => sys_res_n,
95 dcm_s3e_inst : dcm_s3e PORT MAP(
96 CLKIN_IN => sys_clk_real,
98 CLKIN_IBUFG_OUT => sys_clk,
105 display_inst : entity work.display(beh)
108 sys_res_n => sys_res_n,
110 d_new_eingabe => d_new_eingabe,
111 d_new_result => d_new_result,
113 d_spalte => d_spalte,
119 command_data => command_data,
124 history_inst : entity work.history(beh)
127 sys_res_n => sys_res_n,
132 s_backspace => s_backspace,
134 d_new_eingabe => d_new_eingabe,
135 d_new_result => d_new_result,
137 d_spalte => d_spalte,
147 scanner_inst : entity work.scanner(beh)
150 sys_res_n => sys_res_n,
152 new_data => new_data,
158 s_backspace => s_backspace,
159 -- TODO: parser. temporaer mit history verbunden
165 ps2_inst : entity work.ps2_keyboard_controller(beh)
167 CLK_FREQ => 50000000,
172 sys_res_n => sys_res_n,
174 new_data => new_data,
179 end architecture top;