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

Quartus 13.1.0 internal error

Столкнулся со следующей проблемой, над которой бьюсь уже несколько часов. В тестовом проекте под arriav есть 4 ddr3 контроллера с тестовой обвязкой, в нем не выполнялись временные ограничения, поэтому было принято решение добавить физические ограничения на размещение некоторых сигналов. В определенный момент времени фиттер начал падать с internal error. Пробовал чистить папки db/incremental_db, менять настройки синтезатора/фиттера, компилировать на другой машине и даже создал заново проект. Ничего не помогает. При этом другие проекты компилятся нормально.

Может кто-то посоветует что-то еще?

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


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

Недостаток памяти?

У меня SSD, соответственно отключена виртуальная память (4 гигабайта физической). Если пока работает квартус начать запускать браузер на тяжелых сайтах (типа ulmart.ru) - квартус иногда сыпется.

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

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


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

Недостаток памяти?

С памятью все нормально, стал итерационно откатывать ограничения, проблема решилась после того, как закомментировал следующую строчку, типа:

set_location_assignment MLABCELL_X92_Y121_N0 -to "*mux_49b:rd_mux|12_w13_n0_mux_dataout*"

Похоже на чисто программную ошибку, т.к. в случае невозможности разместить конкретный элемент в заданной области ошибка конкретная, если путь не соответствует истинному, то ограничение просто игнорируется. А тут тупо internal error.

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


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

Ну как можно комментить internal error?

Одним словом - "недотестили"...

 

Сменить версию Квартуса не пробовали?

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


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

НУ у меня например при переходе на FIR compiler из следующих за 13.1 версий просто перестает проект работать... Как минимум - перестают формироваться SOP и EOP на выходе этого модуля.

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


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

НУ у меня например при переходе на FIR compiler из следующих за 13.1 версий просто перестает проект работать... Как минимум - перестают формироваться SOP и EOP на выходе этого модуля.

Гена, ты учёл, что начиная с версии 13.1, Альтера нафиг повыпилила кучу семейств плис? Возможно ты тащищь старую мегафункцию, заточенную под семейство, которого уже нет в новом Квартусе.

 

Столкнулся со следующей проблемой, над которой бьюсь уже несколько часов. В тестовом проекте под arriav есть 4 ddr3 контроллера с тестовой обвязкой, в нем не выполнялись временные ограничения, поэтому было принято решение добавить физические ограничения на размещение некоторых сигналов. В определенный момент времени фиттер начал падать с internal error. Пробовал чистить папки db/incremental_db, менять настройки синтезатора/фиттера, компилировать на другой машине и даже создал заново проект. Ничего не помогает. При этом другие проекты компилятся нормально.

Может кто-то посоветует что-то еще?

А что тут советовать? Вы, скорее всего (чисто предполагаю, например) вместо того, что бы поставить altddio, с помощью лоджиклока затащили какие-то из сигналы туда, где им неположено быть. Такой "наглости", видимо, разработчики Квартуса от вас не ожидали :) и вы нарвались на какой-то недопроверенный кусок кода. Выход только один: снимайте эти ограничения потихоньку и смотрите, когда падать перестанет. Либо прописывайте таём-констрейны и т.д. Что тут ещё посоветуешь?

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


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

Я как раз в 13.1 работаю с текущим проектом. При переносе в 14-й квартус (или 15-й, не помню) я всё "проапгрейдил" до текущего состояния. Естественно, то что не могло проапгрейдиться (CIC, о котором речь) пришлось вводить по новой. Получил странное поведение, сигналы SOP/EOP заменил дешифратором номера канала - всё работало, но другие пакости тоже были... Решил пока не барахтаться.

Да вроде 4-й циклон не выпилили. Выпилили мегавизард, это значительно менее приятное для меня новшество.

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

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


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

А что тут советовать? Вы, скорее всего (чисто предполагаю, например) вместо того, что бы поставить altddio, с помощью лоджиклока затащили какие-то из сигналы туда, где им неположено быть. Такой "наглости", видимо, разработчики Квартуса от вас не ожидали :) и вы нарвались на какой-то недопроверенный кусок кода.

Не, на физике приема/передаче проблем не было. Временные ошибки возникают при формировании адреса чтения cmd_address внутренней логики - там большие fan-out, все очень плотно и еще память рядом должна быть (автоматически фиттер все это дело при различных настройках самостоятельно не может утоптать). Суть проблемы в этом куске ограничений:

set_location_assignment MLABCELL_X92_Y121_N0 -to "*mux_49b:rd_mux|12_w13_n0_mux_dataout*"

На самом деле таких сигналов несколько (после звезды) и фиттер естественно не смог разместить их в одну ячейку (N0). Вот перед выводом ошибки его и заглючило, на другой версии (14.1) просто ошибка.

Либо прописывайте таём-констрейны и т.д.

Ограничения сгенерированным скриптом прописываются, что там еще можно дополнительно добавить? Вообще проблему пытаюсь решить не только ограничениями на координаты, но и дублированием логики и ограничением fan-out - может есть еще какие-нибудь методы (внутрь алгоритма влазить смысла нет - он по большей части закрыт для пользователя)?

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


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

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

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

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

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

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

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

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

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

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