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;
9 use work.debounce_pkg.all;
10 use work.sync_pkg.all;
14 sys_clk : in std_logic;
15 sys_res_n : in std_logic;
22 vsync_n : out std_logic;
23 hsync_n : out std_logic;
24 r : out std_logic_vector(RED_BITS - 1 downto 0);
25 g : out std_logic_vector(GREEN_BITS - 1 downto 0);
26 b : out std_logic_vector(BLUE_BITS - 1 downto 0);
28 ps2_clk : inout std_logic;
29 ps2_data : inout std_logic
33 architecture top of calc is
35 signal new_data : std_logic;
36 signal data : std_logic_vector(7 downto 0);
38 signal vga_clk, free : std_logic;
40 signal command : std_logic_vector(COMMAND_SIZE - 1 downto 0);
41 signal command_data : std_logic_vector(3 * COLOR_SIZE + CHAR_SIZE -1 downto 0);
43 signal d_new_eingabe, d_new_result, d_new_bs : std_logic;
44 signal d_zeile : hzeile;
45 signal d_spalte : hspalte;
46 signal d_get, d_done : std_logic;
47 signal d_char : hbyte;
49 signal s_char : hbyte;
50 signal s_take, s_done, s_backspace : std_logic;
52 signal p_rget : std_logic;
53 signal p_rdone : std_logic;
54 signal p_read : hbyte;
55 signal p_wtake : std_logic;
56 signal p_wdone : std_logic;
57 signal p_write : hbyte;
58 signal p_finished : std_logic;
60 signal pc_get : std_logic;
61 signal pc_spalte : hspalte;
62 signal pc_zeile : hzeile;
63 signal pc_char : hbyte;
64 signal pc_done : std_logic;
65 signal pc_busy : std_logic;
67 signal do_it, finished : std_logic;
69 signal sys_res_n_sync : std_logic;
71 signal rx_new, rxd_sync : std_logic;
72 signal rx_data : std_logic_vector (7 downto 0);
73 signal tx_new, tx_done : std_logic;
74 signal tx_data : std_logic_vector (7 downto 0);
76 signal btn_a_sync : std_logic;
80 textmode_vga_inst : entity work.textmode_vga(struct)
82 VGA_CLK_FREQ => 25000000,
83 BLINK_INTERVAL_MS => 500,
88 sys_res_n => sys_res_n_sync,
90 command_data => command_data,
93 vga_res_n => sys_res_n_sync,
102 vpll_inst : entity work.vpll(syn)
109 display_inst : entity work.display(beh)
112 sys_res_n => sys_res_n_sync,
114 d_new_eingabe => d_new_eingabe,
115 d_new_result => d_new_result,
116 d_new_bs => d_new_bs,
118 d_spalte => d_spalte,
124 command_data => command_data,
129 history_inst : entity work.history(beh)
132 sys_res_n => sys_res_n_sync,
137 s_backspace => s_backspace,
139 d_new_eingabe => d_new_eingabe,
140 d_new_result => d_new_result,
141 d_new_bs => d_new_bs,
143 d_spalte => d_spalte,
154 p_finished => p_finished,
157 pc_spalte => pc_spalte,
158 pc_zeile => pc_zeile,
166 parser_inst : entity work.parser(beh)
169 sys_res_n => sys_res_n_sync,
177 p_finished => p_finished,
184 scanner_inst : entity work.scanner(beh)
187 sys_res_n => sys_res_n_sync,
189 new_data => new_data,
195 s_backspace => s_backspace,
202 ps2_inst : entity work.ps2_keyboard_controller(beh)
204 CLK_FREQ => 33330000,
209 sys_res_n => sys_res_n_sync,
211 new_data => new_data,
217 -- debouncer fuer sys_res_n
218 sys_res_n_debounce_inst : debounce
220 CLK_FREQ => 33330000,
228 data_in => sys_res_n,
229 data_out => sys_res_n_sync
232 -- synchronizer fuer rxd
233 sync_rxd_inst : entity work.sync(beh)
240 sys_res_n => sys_res_n_sync,
245 -- debouncer fuer btn_a
246 btn_a_debounce_inst : debounce
248 CLK_FREQ => 33330000,
257 data_out => btn_a_sync
261 rs232rx_inst : entity work.uart_rx(beh)
263 CLK_FREQ => 33330000,
268 sys_res_n => sys_res_n_sync,
275 rs232tx_inst : entity work.uart_tx(beh)
277 CLK_FREQ => 33330000,
282 sys_res_n => sys_res_n,
289 pc_com_inst : entity work.pc_communication(beh)
292 sys_res_n => sys_res_n,
303 pc_zeile => pc_zeile,
304 pc_spalte => pc_spalte,
311 end architecture top;