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

Проясните про виваду

C нулём все ок. А все биты в единицы как будете присваивать? Если так же, то у меня для вас плохая новость.

Если речь идёт за SV (а вивада его таки поддерживает немножко) то почему нельзя так :

a <= '1;

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


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

Если речь идёт за SV (а вивада его таки поддерживает немножко) то почему нельзя так :

a <= '1;

 

Я говорил о Verilog, а не о SystemVerilog.

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


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

Получается, Vivado надо в связке с Synplify использовать :-( Особенно, если подсел на SystemVerilog. Да-а-а... Квартус имеет, конечно, свои болячки, но так злобно не поступает.

Кстати, а в ISE что-то подобное этим тихим оптимизациям наблюдалось? Когда мне доводилось немного с ним работать, что-то не припомню таких проблем.

 

Я когда начинал в ISE работать, 2 недели убил на сборку разрушенного проекта.

 

Я не был корифеем ПЛИС как des, до ПЛИС программировал контроллеры.

 

Как программист и написал:

Шина4 <= {Шина1,Шина2,Шина3}, и Шина 2 оказалась не определена.

 

Конструкция была формальная (она была связана с протоколом обмена), данные Шины2 нигде не использовались, но ISE с его топорной солдатской логикой, разумеется, понять такого не смог. Он провел глубокие оптимизации, в результате от проекта не осталось ничего.

Начав с Шины2, потом расхерил саму объединенную шину, потом цепанул чего-то важное из объединенного регистра-накопителя, а потом все что осталось перестало иметь смысл, и он вырезал уже все что оставалось.

 

Очень большое и неприятное удивление я получил, когда узнал, что синтезируемое подмножество VHDL в ISE гораздо больше чем VERILOG. Например, в VHDL ISE поддерживает двумерные массивы, а в Verilog-е нет.

 

Разумеется воздушные SV конструкции он не может вкурить как класс, также мне кажется очень дерзко предлагать ему структуры.

Текст должен быть написан сапогом - вот тогда все должно быть в ISE хорошо.

 

У меня все стало хорошо, когда я начал делать синтез и логанализатор в Syn.

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


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

С таким дерзким поведением Vivado не сталкивался, сижу на нём с 2013 года, до того - Quartus.

Когда надо, использовал (* keep_hierarchy = "yes" *) - всегда ок.

Правда я редко применяю >> и << и никогда не пишу многостроковые if'ы без begin/end'ов, только одностроковые.

>> добавлвяет слева 0; >>> - добавляет слева знак.

может сдвиги работают только с int'ами? вряд ли, хотя не проверял.

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


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

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

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

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

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

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

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

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

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

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