Спасибо, это я посмотрел, все в порядке. Однако, меня интересует другое: в первом (начиная сверху) процессе по фронту клока увеличивается счетчик, и во втором процессе мы тоже по фронту клока смотрим значение этого-же счетчика. Весь вопрос-то в том, что получается, что в один и тотже момент времени (фронт клока) мы приращаем и читаем счетчик. Не может ли так получиться, что мы будем читать его именно в момент его приращения (либо до или после)?
Код
architecture behavioural of lcd_controller is
signal lcd_rs_sig, lcd_rw_sig, lcd_e_sig : std_logic;
signal lcd_data_sig : std_logic_vector(7 downto 0);
signal clk_counter : std_logic_vector(31 downto 0) := X"00000000";
constant lcd_state_0 : std_logic_vector(31 downto 0) := X"00000000";
constant lcd_state_1 : std_logic_vector(31 downto 0) := X"0007A120";
begin
process(reset, clk)
begin
if (reset = '0') then
clk_counter <= X"00000000";
else
if (clk'event and clk = '1') then
clk_counter <= clk_counter + X"00000001";
end if;
end if;
end process;
process(clk, clk_counter)
begin
if (clk'event and clk = '1') then
case clk_counter(31 downto 0) is
when lcd_state_0 =>
when lcd_state_1 =>
when others =>
end case;
end if;
end process;
lcd_rs <= lcd_rs_sig;
lcd_rw <= lcd_rw_sig;
lcd_e <= lcd_e_sig;
lcd_data(7 downto 0) <= lcd_data_sig(7 downto 0);
end architecture behavioural;