Перейти к содержанию
    

изучаю vhdl

вот возникло 3 вопроса:

 

1) можно ли процесс остановить из этого же процесса? То есть сам себя остановил чтобы?

2) можно ли сигнал, установленный в одном процессе перехватить в другом процессе(то есть менять в новом процессе)

 

3) в скобках у процессов указываются сигналы по которым он запускается. А вот допустим есть сигнал, запускающий процесс №1 . А каким он дожен быть? Переход из одного логического уровня в другой?

 

 

 

Прошу сильно не ругаться, за столь простые вопросы, просто не успеваю литературу читать. Заранее спасибо.

Изменено пользователем skilful

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прошу сильно не ругаться, за столь простые вопросы, просто не успеваю литературу читать. Заранее спасибо.

 

Гы :)

 

1) можно ли процесс остановить из этого же процесса? То есть сам себя остановил чтобы?

Процесс нельзя никак остановить (в синтезируемых конструкциях) ...

 

 

2) можно ли сигнал, установленный в одном процессе перехватить в другом процессе(то есть менять в новом процессе)

Это будет несинтезируемая конструкция, поэтому делать так не рекомендуется..

 

 

3) в скобках у процессов указываются сигналы по которым он запускается. А вот допустим есть сигнал, запускающий процесс №1 . А каким он дожен быть? Переход из одного логического уровня в другой?

Процесс по условию начинает работать при любом изменении сигнала в скобках (сигнала чувствительности).

Изменено пользователем Link

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если вдаваться в тонкости, то 3) не совсем правильно. Драйвить один сигнал из нескольких процессов можно при условии, что активный уровень - '0' или '1' выставляется только в одном из процессов. Остальные должны выдавать нечто типа "слабая единица", "слабый нуль" или "hi-z". К стати, совершенно не вижу никаких проблем с синтезируемостью данной конструкции - все выше перечисленные примитивы есть на выходных буферах современных FPGA, а некоторые семейства от Хилых и вообще имеют внутренние tri-state драйверы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

К стати, совершенно не вижу никаких проблем с синтезируемостью данной конструкции

Тут дело не в синтезируемоста, а в языке.

 

Пусть есть два процесса запускающихся от клока.

В первом:

if(a='1') then
   b<='1';
end if;

Во втором:

if( a/='1') then
   b<='0';
end if;

конструкция вполне синтезируема, но компилятор ее не пропустит

Изменено пользователем DuHast

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...