[an error occurred while processing this directive] [an error occurred while processing this directive]
Ответ:
(«Телесистемы»: Конференция «Языки описания аппаратуры (VHDL и др.))
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Serge 23 октября 2001 г. 13:13
В ответ на: как задать начальное значение выходному порту при описании объекта. отправлено Виталий 23 октября 2001 г. 09:26

Если вы описываете автомат,то сделайте состояние в котором оказывается
автомат после сброса. И в этом состоянии опишите,то что вы хотите иметь на выходе по умолчанию. Примеры есть в документации по любому
синтезатору,если не найдете,то вот:

entity fsm( clk : in std_logic;
rst : in std_logic; -- Нужно обязательно
indata : in std_logic;
...
outdata : out std_logic_vector(3 downto 0)
);
end;

architecture behav of fsm is
type tfsm is (s0,s1,..... и так далее сколько надо);
signal state,nstate : tfsm;
begin
process(clk,rst)
begin
if rst = '1' then
state <='s0'; -- Состояние по умолчанию.
elsif clk'event and clk='1' then
state <= nstate;
end if;
end process;
process(state,indata)
begin
case state is
when s0 => outdata<="1011";
if indata='1' then --Событие
--выводящие
--автомат из
--начального состояния.
nstate <= s1;
else
nstate <= s0;
when s1 =>
...
when sn =>
when others => nstate <=s0;
end case;
end process;

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru