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

Как объяснить ModelSim, что clock глобальный?

Народ!

Работаю на Quartus 16. Пишу на VHDL. При симуляции на ModelSim столкнулся со следующей проблемой:

- ModelSim не может понять, что Clock в схеме глобальный. Этот Clock в проекте, путешествуя из модуля в модуль, называется по разному, но по сути остаётся одним и тем же сигналом(при разводке в кристалле превращается в один и тот же сигнал - я проверял и он является Global). Однако ModelSim этого не понимает с в каждой ипостаси дает этому сигналу свою задержку относительно исходного.

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

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

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


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

Народ!

Работаю на Quartus 16. Пишу на VHDL. При симуляции на ModelSim столкнулся со следующей проблемой:

- ModelSim не может понять, что Clock в схеме глобальный. Этот Clock в проекте, путешествуя из модуля в модуль, называется по разному, но по сути остаётся одним и тем же сигналом(при разводке в кристалле превращается в один и тот же сигнал - я проверял и он является Global). Однако ModelSim этого не понимает с в каждой ипостаси дает этому сигналу свою задержку относительно исходного.

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

1. У Вас что нет соглашения об именах сигналов? И что так сложно в редакторе текста заменить одно название на другое в десятке файлов?

2. "каждой ипостаси дает этому сигналу свою задержку" - это каким же образом Моделсим "дает"? Задержка формируется из списка связей после размещения проекта, а к этому Моделсим никакого отношения не имеет. Он получает все это из Квартуса.

3. А что Вы хотите увидеть на симуляции с задержками?

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


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

1. У Вас что нет соглашения об именах сигналов? И что так сложно в редакторе текста заменить одно название на другое в десятке файлов?

2. "каждой ипостаси дает этому сигналу свою задержку" - это каким же образом Моделсим "дает"? Задержка формируется из списка связей после размещения проекта, а к этому Моделсим никакого отношения не имеет. Он получает все это из Квартуса.

3. А что Вы хотите увидеть на симуляции с задержками?

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

2017-09-25_21-27-17.png

3. Я хочу, что бы все события от моего глобального клока происходили в симуляции одномоментно.

 

 

Пока писал все это нашёл ответ в ModelSim User Manual. Оказывается никак эта проблема автоматически не решается. Предлагают самим следить за этим:

 

 

 

2017-09-25_22-07-33.png

 

 

2017-09-25_22-07-50.png

 

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


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

Я хочу, что бы все события от моего глобального клока происходили в симуляции одномоментно.

Так какая Вам симуляция нужна?

RTL или с задержками, после размещения проекта на кристалле?

 

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


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

Так какая Вам симуляция нужна?

RTL или с задержками, после размещения проекта на кристалле?

Нужна с задержками, после размещения проекта на кристалле, но сейчас Quartus и ModelSim ее не делает.

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

Я думал, что если буду использовать IP ALTCLKCTRL это решит проблему, ан нет. Та же фигня.

 

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


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

Нужна с задержками, после размещения проекта на кристалле, но сейчас Quartus и ModelSim ее не делает.

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

Я думал, что если буду использовать IP ALTCLKCTRL это решит проблему, ан нет. Та же фигня.

Тяжело! У Вас в голове какая-то странная каша. При RTL симуляции задержки вообще не учитываются. И для RTL симуляции Квартус не только не нужен, а даже вреден. Поскольку бесполезно жрет память. Сформируйте в тестбенче клок и подайте его на Ваш проект...

 

Чтобы запустить симулятор с задержками Моделсиму надо скормить файл задержек. Правда если МС установлет вместе с Ква, то может они сами договорились...

Но вот что хочу сказать. На кой черт Вам вообще нужны графики с задержками?

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

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


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

Тяжело! У Вас в голове какая-то странная каша. При RTL симуляции задержки вообще не учитываются. И для RTL симуляции Квартус не только не нужен, а даже вреден. Поскольку бесполезно жрет память. Сформируйте в тестбенче клок и подайте его на Ваш проект...

 

Чтобы запустить симулятор с задержками Моделсиму надо скормить файл задержек. Правда если МС установлет вместе с Ква, то может они сами договорились...

Но вот что хочу сказать. На кой черт Вам вообще нужны графики с задержками?

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

Я понимаю, что при RTL симуляции задержки не фигурируют, а все происходит по событиям, но кто просит ModelSim строку типа clk1 <= clk2 считать процессом и создавать на этом месте отдельное событие?

Что касается симуляции моего проекта на уровне задержек, Quartus мне прямо заявил, что моё семейство это не поддерживает (Array V).

 

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

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


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

Я понимаю, что при RTL симуляции задержки не фигурируют, а все происходит по событиям, но кто просит ModelSim строку типа clk1 <= clk2 считать процессом и создавать на этом месте отдельное событие?

Что касается симуляции моего проекта на уровне задержек, Quartus мне прямо заявил, что моё семейство это не поддерживает (Array V).

 

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

Если говорить о "логике работы", то это RTL и ничего более. Вы же скармливаете Моделсиму clk1 и clk2... Зачем? Уберите лишнее, отредактируйте исходники и все...

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


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

Если говорить о "логике работы", то это RTL и ничего более. Вы же скармливаете Моделсиму clk1 и clk2... Зачем? Уберите лишнее, отредактируйте исходники и все...

 

Не всегда это удобно и даже возможно, но что делать. Сейчас как раз этим и занялся.

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


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

Не всегда это удобно и даже возможно, но что делать. Сейчас как раз этим и занялся.

Так это Вы "по-Суворовски, через Альпы" проекты начинаете делать. Тут никто не виноват. Сначала пишется соглашение о названиях сигналов в проекте, потом блок-схема проекта, потом уже куча файлов на HDL...

Откуда в верхнем файле берутся разные клоки в одном клоковом домене?

И что для Вас "не удобно"?

 

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


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

Так это Вы "по-Суворовски, через Альпы" проекты начинаете делать. Тут никто не виноват. Сначала пишется соглашение о названиях сигналов в проекте, потом блок-схема проекта, потом уже куча файлов на HDL...

Откуда в верхнем файле берутся разные клоки в одном клоковом домене?

И что для Вас "не удобно"?

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

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


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

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

Завтра после 11 я буду на связи. Можем поговорить о Ваших проблемах.

 

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


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

кто просит ModelSim строку типа clk1 <= clk2 считать процессом и создавать на этом месте отдельное событие?
"Просит" его об этом стандарт языка VHDL. Каждый драйвер порождает дельта-задержку со всеми вытекающими из этого нюансами.

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


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

Именно дельта задержку! На картинке с моделсимом не указан масштаб. А там вероятно 1 пс.

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


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

Именно дельта задержку! На картинке с моделсимом не указан масштаб. А там вероятно 1 пс.

Так а разве дельта задержку можно увидеть при увеличении масштаба ?

Изменено пользователем Flip-fl0p

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


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

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

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

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

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

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

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

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

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

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