subtype cinteger is integer;
-- 50 zeilen * 71 zeichen * 2 (berechnung + ergebnis) = 7100 bytes
+ constant hspalte_max : integer := 71;
+ constant hzeile_max : integer := 50;
constant H_RAM_SIZE : integer := 7100;
constant H_RAM_WIDTH : integer := log2c(H_RAM_SIZE);
subtype hspalte is std_logic_vector(6 downto 0);
ABCDEFGHIJKLMNOPQRSTUVXYZABCDEFGHIJKLMNOPQRSTUVXYZABCDEFGHIJKLMNOPQRSTU
abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstu
ABCDEFGHIJKLMNOPQRSTUVXYZABCDEFGHIJKLMNOPQRSTUVXYZABCDEFGHIJKLMNOPQRSTU
+abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstu
+ABCDEFGHIJKLMNOPQRSTUVXYZABCDEFGHIJKLMNOPQRSTUVXYZABCDEFGHIJKLMNOPQRSTU
+abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstu
+ABCDEFGHIJKLMNOPQRSTUVXYZABCDEFGHIJKLMNOPQRSTUVXYZABCDEFGHIJKLMNOPQRSTU
tx_done : in std_logic;
--uart_rx
- rx_data : in std_logic_vector(7 downto 0); --not really required
+ rx_data : in std_logic_vector(7 downto 0);
rx_new : in std_logic;
-- History
architecture beh of pc_communication is
signal push_history, push_history_next : std_logic;
- signal spalte, spalte_next : integer range 1 to 73;
- signal zeile , zeile_next : integer range 1 to 73;
+ signal spalte, spalte_next : integer range 1 to hspalte_max + 1;
+ signal zeile , zeile_next : integer range 1 to hzeile_max + 1;
signal spalte_up, spalte_up_next : std_logic;
signal get, get_next : std_logic;
signal new_i, new_i_next : std_logic;
spalte_next <= spalte;
zeile_next <= zeile;
- if (spalte_up = '1') then
- if (spalte > 72) then
- if zeile + 1 > 50 then
+ if spalte_up = '1' then
+ if spalte = hspalte_max then
+ if zeile = hzeile_max then
spalte_next <= 1;
zeile_next <= 1;
- s_done_next <= '1'; --lets assume this false
- --assert false severity failure;
+ s_done_next <= '1';
else
spalte_next <= 1;
zeile_next <= zeile + 1;