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

Непрерывное присвоение на Verilog

Так тем и отличается непрерывное присваивание (соединение), которое непрерывно подключает несколько драйверов к одной net, от регистрового типа, который хранит моментно-записанные значения по событиям из always (по-этому, и не непрерывное оно тут).

 

Кстати, можно в цикле и net испольовать. Только инициализировать не надо!!!!

 

wor b;

 

generate

for

b = a;

endgenerate

 

и получите b= a[0] | a[1] | ... a[N] - куча драйверов a[x], объединенных в "монтажное ИЛИ"

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


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

вот тут понятность падает, коментов надо напихать...

 

Да не падает она - точнее падает для тех, кто плохо знает язык. Это, вообще, не угадаешь, где для какого "читателя" она упадет. Обычно там, где самому даже и не кажется.

 

 

А вообще, хорошее понимание всех особенностей работы с типами net - дает изучение AHDL. Там главная вкусность есть - объявление переменной типа "модуль". И других типов переменных нет в природе. Модуль может быть как и примитивным проводом или регистром (модули-примитивы), так и любым своим большим блоком. А все присваивания - только непрерывные. И, также, можно использовать в присваиваниях модули как функции. Хотя, в общем, язык куда более простой, чем verilog, так как в принципе не предназначен для моделирования, а только для синтеза, но, зато, зная AHDL, сразу не совершаешь многих ошибок ни на верилоге, ни на VHDL. Особенно, вот конкретно таких.

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


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

Да с WOR как раз все нормально - монтажное "или" более наглядно описать нельзя. Вот циклы - это уже шаг в сторону. ИМХО.

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


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

монтажное "или" более наглядно описать нельзя
Зато можно схему смешения, например, сигналов прерываний сделать в явном виде на логике, без монтажного "или".

 

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


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

Зато можно схему смешения, например, сигналов прерываний сделать в явном виде на логике, без монтажного "или"

 

можно. Но имхо, если драйверов действительно дофига, то удобнее WOR. Меня, как схемотехника, ставят в ступор циклы в синтезируемом модуле ))

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


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

А без циклов наверное в любом случае не получится, если число суммируемых сигналов заранее неизвестно и определяется параметром

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


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

Зато можно схему смешения, например, сигналов прерываний сделать в явном виде на логике, без монтажного "или".

Зато лишние сигналы объявлять надо, чтобы от каждого модуля отводить отросток до "большого или". Лишнюю работу делать. Для каждого случая надо использовать свою конструкцию языка, которая более удобна. Для того их и придумывали.

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


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

объявить сигнал как wor.

и передать его на каждый модуль при подключении модуля.

вот они все и поилится, правильно же я понимаю да?

 

правда я лучше пару строк напишу чтобы даже еж догадался что я сделал...

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


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

объявить сигнал как wor.

и передать его на каждый модуль при подключении модуля.

вот они все и поилится, правильно же я понимаю да?

именно - просто и красиво. А если надо, к нему еще чего нибудь домешать и assign-ами, что не из модулей.

также и выходные шины данных мешать можно, при условии, что невыбранный модуль выдает на нее нули - передается всем одна шина типа wor (или wand - если невыбранный модуль вылает FFFFF).

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


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

именно - просто и красиво. А если надо, к нему еще чего нибудь домешать и assign-ами, что не из модулей.

также и выходные шины данных мешать можно, при условии, что невыбранный модуль выдает на нее нули - передается всем одна шина типа wor (или wand - если невыбранный модуль вылает FFFFF).

Однажды я попробовал сделать именно так в Квартусе 13.1. Выяснилось, что шина wor нормально работает, только если смешивать сигналы исключительно assign-ами, а если её ещё указывать прямо в port mappings, то не работает. А потом это увидел заказчик, и попросил wor вообще не использовать, так как ему ничего не понятно:).

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


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

А потом это увидел заказчик, и попросил wor вообще не использовать, так как ему ничего не понятно:).

Э... А какое дело заказчику до этого, если не секрет? Я, вообще, пока еще не видел заказчиков, которые бы понимали верилог :)

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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