Jump to content

    

Quartus 13.1.0 internal error

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

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

Share this post


Link to post
Share on other sites

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

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

Edited by Genadi Zawidowski

Share this post


Link to post
Share on other sites
Недостаток памяти?

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

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

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

Share this post


Link to post
Share on other sites

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

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

 

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

Share this post


Link to post
Share on other sites

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

Share this post


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

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

 

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

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

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

Share this post


Link to post
Share on other sites

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

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

Edited by Genadi Zawidowski

Share this post


Link to post
Share on other sites
А что тут советовать? Вы, скорее всего (чисто предполагаю, например) вместо того, что бы поставить 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 - может есть еще какие-нибудь методы (внутрь алгоритма влазить смысла нет - он по большей части закрыт для пользователя)?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this