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

миниатюрный аудио-видеорекордер mAVR

Отправлено javalenok 29 июня 2005 г. 14:31

procedure PROPAGATE(signal S: inout std_logic_vector (0 to 10)) is
begin
for I in 1 to 10 loop
S(I) <= not S(I-1);
end loop;
end;

signal S: std_logic_vector (0 to 10);
begin
S(0) <= '0';
PROPAGATE(S);

Ожидается, что процедура вычислит значения старшего бита на основе младшего. Бит 0 распространица по всему вектору. Не тут то было. Синтезатор ругается, но схему понимает правильно. Беда в симуляторе, ничего не соображает. По-моему я всё сделал "в духе" VHDL. Можно сигнал раздвоить на вход и выход, и вызывать
PROPAGATE(S, S);
но для симулятора разницы никакой. Младшие биты сигнала по прежнему управляют старшими, у каждого бита по одному драйверу. Где ошибка? Спасибо.

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

Ответы


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

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

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

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

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


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

E-mail: info@telesys.ru