Нужен совет впециалиста по VHDL. Вроде как позволяется создавать свои списки. Но мне чего-то не удается сделать это. Допустим, простая задача: хочу сделать счетчик, который проходит следующие состояния: "11", "01", "10". Вот код который я попытался накропать читая учебник, но он не компилируется. Утверждает, что слову 'type' там не место. Конечно присваивание следующего значения - тоже сомниваюсь, что так можно делать. скорее должно быть что-то вроде инкремента переменной индекса массива и затем выбор элемента массива, но и на строчку variable i : integer; - компилятор тоже ругается, что "так можно делать только для SHARE переменных".
Код: Выделить всё
entity counter is
Port(clk in: std_logic;
count out : std_logic_vector);
end counter;
architecture Behavioral of counter is
type thd is ("11", "01","10");
type thd_array is array (integer range <>) of thd;
signal count_signal : std logic_vector (1 downto 0) := thd_array(0);
begin
process(clk)
begin
if clk'event and clk='1' then
count_signal <= count_signal+1;
end if;
end process;
count <= count_signal;
end Behavioral;
Покажите образец как такие вещи писать.
p.s. Таблицы перекодировки, pls, не предлагать. Интересует именно использование выразительных средств языка.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."