Vadim 0 13 июля, 2007 Опубликовано 13 июля, 2007 · Жалоба Всегда делал примерно так: library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_UNSIGNED.all; entity COUNTER is port( RESET : in std_logic; CLOCK : in std_logic; COUNT : out std_logic_vector(7 downto 0) ); end COUNTER; architecture Behavioral of COUNTER is signal COUNT_INT : std_logic_vector(7 downto 0); begin PR_COUNT: process(CLOCK) begin if CLOCK'event and CLOCK = '1' then if RESET = '1' then COUNT_INT <= (others => '0'); else COUNT_INT <= COUNT_INT + 1; end if; end if; end process; COUNT <= COUNT_INT; end Behavioral; Но проекты усложняются, и уже нет сил заниматься этим идиотизмом. Использовать порты типа buffer не рекомендуется. Может быть делать примерно так: library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_UNSIGNED.all; entity COUNTER is port( RESET : in std_logic; CLOCK : in std_logic; COUNT : inout std_logic_vector(7 downto 0) ); end COUNTER; architecture Behavioral of COUNTER is begin PR_COUNT: process(CLOCK) begin if CLOCK'event and CLOCK = '1' then if RESET = '1' then COUNT <= (others => '0'); else COUNT <= COUNT + 1; end if; end if; end process; end Behavioral; ? Смущает, что по сути port COUNT - это in, а не inout :crying: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
oval 0 13 июля, 2007 Опубликовано 13 июля, 2007 · Жалоба Делайте так, как делали всегда. Не нужно ничего выдумывать, да и выдумать-то ничего не удастся. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 13 июля, 2007 Опубликовано 13 июля, 2007 · Жалоба ждите окончательного принятия VHDL-2007 и его поддержки в симуляторах, синтезаторах. Или переходите на систем/пьюре верилог! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vadim 0 13 июля, 2007 Опубликовано 13 июля, 2007 · Жалоба Ну раз такое дело, буду продолжать в том же ключе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться