Jump to content

    

Оптимизация quartus

Здравствуйте, вопрос.

Есть проект на verilog, вижу что-то похожее на то что писал посредством rtl viewer . Однако согласно "optimization results, почти все регистры удалены.

Также не вижу инстансов в "technology map viewer". Значит ли это что на самом деле что эти регистры удалены и удалены соответственно инстансы, в которых они использовались?

Спасибо

Share this post


Link to post
Share on other sites
40 минут назад, another_one сказал:

почти все регистры удалены.

Ищите где потеряли клоки на эти регистры. Или не убрали сбросы...

Share this post


Link to post
Share on other sites

.. или не подключили входы/выходы к падам...

Share this post


Link to post
Share on other sites
2 hours ago, Zig said:

.. или не подключили входы/выходы к падам...

все подключено, проверял

2 hours ago, iosifk said:

Ищите где потеряли клоки на эти регистры. Или не убрали сбросы...

так они удалены действительно? что же я тогда вижу во вьювере?, до оптимизации?

Share this post


Link to post
Share on other sites
9 часов назад, another_one сказал:

все подключено, проверял

так они удалены действительно? что же я тогда вижу во вьювере?, до оптимизации?

До оптимизации - это "Ваши художества"... После - это то, что инструмент "понял" из них. Если в схеме где-то заблокированы клоки, то по его мнению регистры не нужны.

При этом главный вопрос: а делали ли Вы симуляцию "без оптимизации", т.е. на уровне RTL? 

Share this post


Link to post
Share on other sites

Да делал, симуляция все ок, также пробовал тот же код на спартане, все в дивкю работает. Ранее в квартусе тоже всетбыло ок, но он как то глюкнул и пришлось сделать новый проект плюс немного его систематизиповал . В итоге симуляция моледстм, ок, симуляция айса ок, Спартан выдаёт то чтотнадо, а квартус все удаляет. Менял оптимизацию на по площади, та же фигня.

 

Вообще не понимаю что происходит, обычный таймер коцает

Share this post


Link to post
Share on other sites

Где-нибудь на стыке разных модулей вход с выходом не могут быть перепутаны? А то я давеча развлекался с подобным, пол дня убил.

Share this post


Link to post
Share on other sites
5 hours ago, another_one said:

В итоге симуляция моледстм, ок, симуляция айса ок, Спартан выдаёт то чтотнадо, а квартус все удаляет.

а если почитать логи синтеза на предмет всяких INFO|WARN???

Share this post


Link to post
Share on other sites

Даже не помогает syntesis keep атрибут в отношении сигналов инстансов, однако сами инстансы  в post map видны, но все равно ничего не работает, поскольку все необходимые регистры покоцал квартус согласно репорту.

Edited by another_one

Share this post


Link to post
Share on other sites
1 час назад, another_one сказал:

Даже не помогает syntesis keep атрибут в отношении сигналов инстансов, однако сами инстансы  в post map видны, но все равно ничего не работает, поскольку все необходимые регистры покоцал квартус согласно репорту.

 

А шо это за такой супер-секретный код, который не работает, а мы аки Настрадамусы угадать пытаемся где заковыка ? Может лучше выложить этот код сюда, тогда и сразу конструктивный диалог состоится...

Share this post


Link to post
Share on other sites
21 hours ago, another_one said:

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

где то отображение портов на чип побилось, вот и итог

Share this post


Link to post
Share on other sites
On 6/29/2019 at 8:09 AM, des00 said:

где то отображение портов на чип побилось, вот и итог

эту гипотезу легко проверить синтезнув в режиме out-of-context (или как он в квартус называется)

Share this post


Link to post
Share on other sites
8 hours ago, Doka said:

эту гипотезу легко проверить синтезнув в режиме out-of-context (или как он в квартус называется)

а такое есть в квартусе?

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

 

Share this post


Link to post
Share on other sites
45 minutes ago, yes said:

по крайней мере, я бы тоже поинтересовался - как это в квартусе сделать.

Нужно сделать все пины (кроме входного clock'а) виртуальными.

Quote

Use the Virtual Pin assignment to indicate pins of a partition that do not drive pins in the top-level design.

You can create a virtual pin assignment in the Assignment Editor for partition I/Os that will become internal nodes in the top-level design.

 

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