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

Непонятка с описанием клока в Квартусе

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

set Clk10 "10mhz" 
create_clock -name {gclk10} -period $Clk10 [get_ports {gclk10}] 

Раньше этот клок назывался Clk50 и имел частоту 50 МГц.

После компиляции в отчётах вижу:

image.png.0266daf917bc3da463c137bca8313138.png

Этот клок питает PLL с умножением в 10 раз, в итоге весь проект рушится по слэкам.

В файле sdc этот клок больше нигде не упоминается, очистка баз проекта не помогает.

Почему запоминается старое значение частоты? Что ещё можно почистить?

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


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

В 30.06.2022 в 11:35, blackfin сказал:

А в настройках IP Core PLL входную частоту поправили?

Да, конечно, 10 МГц.

image.png.6df27cfc611e724877ddba91898759a0.png

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


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

Не может быть причиной синтаксис

set Clk10 "10mhz"

может его Квартус не понимает? В ворнингах ничего не находится об  этом ?

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


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

On 6/30/2022 at 12:10 PM, _sda said:

Да, конечно, 10 МГц.

Можно попробовать удалить IP Core PLL из проекта (не меняя самого кода проекта), и создать новую PLL с чистого листа, с тем же именем и с теми же параметрами..

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


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

В 30.06.2022 в 12:21, Yuri124 сказал:

Не может быть причиной синтаксис

set Clk10 "10mhz"

может его Квартус не понимает? В ворнингах ничего не находится об  этом ?

Такая строчка прекрасно позволяет это проверить.

post_message "***gclk10 = $Clk10***"

 

В 30.06.2022 в 12:24, blackfin сказал:

Можно попробовать удалить IP Core PLL из проекта (не меняя самого кода проекта), и создать новую PLL с чистого листа, с тем же именем и теми же параметрами..

Да, этого я не делал. Спасибо, проверю.

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


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

On 6/30/2022 at 12:34 PM, _sda said:

Такая строчка прекрасно позволяет это проверить.

Всё же, не очень хорошая идея использовать не описанный в стандартах синтаксис. :)

 

Пример такого синтаксиса действительно приведен в handbook на Quartus за 2010 год, но в современных версиях Quartus'а уже даже нет упоминания о таком формате команды:

TimeQuestExtension.jpg

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


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

On 6/30/2022 at 11:15 AM, _sda said:
10mhz

лично я понимаю , что это 10 миллиГерц.
А МегаГерцы задавал бы MHz...

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


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

В 30.06.2022 в 14:21, Yuri124 сказал:

лично я понимаю , что это 10 миллиГерц.
А МегаГерцы задавал бы MHz...

Ладно, вот другой клок из этого же sdc

set clkddr "275mhz" 
create_clock -name clk_ddr -period $clkddr -waveform [list $tPeriod14 $tPeriod34] [get_ports clk_ddr] 

А это выдержка из репорта

image.thumb.png.613f996bda81dee9409903b1fc388d97.png

image.png.b9a2c241a0bfae52d74d26f4ee0537b2.png

Правильно воспринимаются единицы измерения.

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


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

On 6/30/2022 at 3:30 PM, _sda said:

вот другой клок из этого же sdc

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

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


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

В 30.06.2022 в 13:56, blackfin сказал:

Всё же, не очень хорошая идея использовать не описанный в стандартах синтаксис. :)

Согласен, но ведь работает, а от добра добра не ищут.

Благодаря вашему совету я вспомнил что в применяемой в этом проекте ip core DDR3 тоже используется PLL и кормится она от того же клока (50 МГц => 10 МГц).

После изменения корки и её перекомпиляции заметил что в файле описания этой PLL не изменилось значение опоры

// Clock settings
parameter REF_CLK_FREQ = "50.0 MHz";

хотя в самой корке всё нормально

image.thumb.png.f29c26364b152ac7287c48d0b1d4cfe3.png

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

Рихтовать сам верилоговский файл? Можно ввести свои ошибки.

Как быть?

 

 

Кажется нашёл где изменить. Теперь два часа компиляции и всё должно стать на свои места.

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


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

Всё стало на свои места. Всем спасибо, особенно blackfin!

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


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

В 30.06.2022 в 12:34, _sda сказал:
post_message "***gclk10 = $Clk10***"

Это TCL? Его запускать из TCL-консоли или с пре или пост скрипте?

В 30.06.2022 в 18:00, _sda сказал:

Всё стало на свои места.

Расскажите, пожалуйста, как именно решилось?

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


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

1).Я пишу это прямо в файле sdc для контроля

2).Уже несколько раз наступал на эти грабли. Нужно помнить что указанное значение частоты опорного клока для PLL имеет приоритет над указанным значением в sdc.

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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