Jump to content

    

Моделирование PLL для Cyclone

Здравствуйте все!

Пробую моделировать работу IP-ядра PLL (PLL Intel FPGA IP) в Questa Sim.

Работаю в Quartus 18.1, ПЛИС Cyclone V. Библиотеки Quartus откомпилированы и добавлены в Questa Sim. Файл vhd называется mypll.vhd. Questa Sim пишет предупреждение, что некий файл mypll_0002" is not bound. Моделирование не получается. В файле mypll.vhd есть ссылка на файл mypll_0002. Он есть, но сгенерирован на Verilog. При попытке добавить его в проект вылетает целая куча ошибок.

Ещё странное. Раньше для редактирования своей реализации мегафункции я открывал из Quartus файл с расширением vhd, который сгенерировал мегавизард. После этого мегавизард сам запускался уже с той мегафункцией, и я мог править отдельные параметры. Теперь тот файл vhd открывается в Quartus как текстовый. Править отдельные параметры не получается, приходится запускать мегавизард с нуля и всё вбивать заново.

Сразу скажу, что в прошлом году у меня это получалось. Даже как-то моделировался начальный запуск PLL. Теперь не работают и прошлогодние проекты. Откат на Quartus 18.0 не помог.

Подскажите, пожалуйста, как вернуть старое поведение?

Заранее признателен.

Share this post


Link to post
Share on other sites
19 minutes ago, DSIoffe said:

Пробую моделировать работу IP-ядра PLL (PLL Intel FPGA IP) в Questa Sim.

...

В файле mypll.vhd есть ссылка на файл mypll_0002. Он есть, но сгенерирован на Verilog. При попытке добавить его в проект вылетает целая куча ошибок.

Корка PLL - гора библиотечных файликов, так что мб, что-то не так с библиотеками квартуса (не та версия, не все сгенерировались, сгенерировались с ошибкой)? И нужно разобираться с той кучей ошибок, что появляются при добавлении в проект mypl_0002. Может, там есть какие-то подсказки, куда копать?

Вообще, ИМХО, тащить полную корку PLL в симулятор - дело неблагодарное. Все нужные сигналы с PLL легко описываются конструкциями языка (захват, сами частоты и т.д.). Хотя, возможно, просто не сталкивался с задачами, которые требуют этого.

25 minutes ago, DSIoffe said:

Ещё странное. Раньше для редактирования своей реализации мегафункции я открывал из Quartus файл с расширением vhd, который сгенерировал мегавизард. После этого мегавизард сам запускался уже с той мегафункцией, и я мог править отдельные параметры. Теперь тот файл vhd открывается в Quartus как текстовый. Править отдельные параметры не получается, приходится запускать мегавизард с нуля и всё вбивать заново.

Было такое, когда руками таскал с места на место файлы ip корки. Вылечилось пересозданием корки. А редактирование запускаю тыкая на Project Navigator -> IP components -> нужная корка. Правда, для этого нужно хранить в проекте ВСЕ файлы, созданные мегавизардом.

31 minutes ago, DSIoffe said:

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

Клево, у меня за несколько подходов не получилось - глянул бы с удовольствием)

Share this post


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

И нужно разобираться с той кучей ошибок, что появляются при добавлении в проект mypl_0002.

Спасибо.

Оно попросило altera_pll. Я нашёл altera_pll.v в потрохах Quartus, добавил его в проект, тогда сказали, что некая конструкция оттуда допустима только в SystemVerilog, на этом всё кончилось.

Share this post


Link to post
Share on other sites
1 hour ago, DSIoffe said:

Оно попросило altera_pll. Я нашёл altera_pll.v в потрохах Quartus, добавил его в проект, тогда сказали, что некая конструкция оттуда допустима только в SystemVerilog, на этом всё кончилось. 

что-то мне подсказывает, что у вас не скомпилированы и не подключены корректно библиотеки Altera. А полуичлось, потому что когда то, вы использовали настроенный симулятор, а потом снесли библиотеки или сменили софт)

Share this post


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

что-то мне подсказывает, что у вас не скомпилированы и не подключены корректно библиотеки Altera. А полуичлось, потому что когда то, вы использовали настроенный симулятор, а потом снесли библиотеки или сменили софт)

Я их компилировал вот так: Tools -> Launch Simulation Library Compiler , указал где лежит Questa Sim и куда складывать результат. А в проекте Questa Sim добавлял полученные библиотеки через File - New Library в режиме a map to an existing library, как на картинке. А как надо?

lib.gif

Share this post


Link to post
Share on other sites
22 minutes ago, DSIoffe said:

Я их компилировал вот так: Tools -> Launch Simulation Library Compiler , указал где лежит Questa Sim и куда складывать результат. А в проекте Questa Sim добавлял полученные библиотеки через File - New Library в режиме a map to an existing library, как на картинке. А как надо?

lib.gif

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

Share this post


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

Я их компилировал вот так: Tools -> Launch Simulation Library Compiler , указал где лежит Questa Sim и куда складывать результат. А в проекте Questa Sim добавлял полученные библиотеки через File - New Library в режиме a map to an existing library, как на картинке. А как надо?

А исходники библиотек компилировались только vhdl'ные, или и vhdl'ные и verilog'овские?

А по поводу добавления скомпилированных библиотек в квесту - можно в корневом modelsim.ini их прописать раз и навсегда.

Share this post


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

А исходники библиотек компилировались только vhdl'ные, или и vhdl'ные и verilog'овские?

А по поводу добавления скомпилированных библиотек в квесту - можно в корневом modelsim.ini их прописать раз и навсегда.

И те, и другие.

Я прописал скомпилированные библиотеки в корневой modelsim.ini, вот этот: C:\questasim64_10.4c\modelsim.ini. Не сам придумал, а скопировал из того modelsim.ini, которого родил Quartus при компиляции библиотек. А они всё равно не появились на закладке Library в Questa Sim. Почему такое может быть? Если их списать в файл проекта, тогда они на закладке Library появятся.

Но на результат это не влияет.

20 часов назад, des00 сказал:

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

В текущем проекте только те жалобы, про которые я написал. А старые проекты вообще запускаются молча, сплошное # Errors: 0, Warnings: 0, но нет выходных сигналов PLL и всего, что от них зависит.

И ещё: почему перестали нормально редактироваться реализации IP-ядер?

Edited by DSIoffe
Забыл важное

Share this post


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

Я прописал скомпилированные библиотеки в корневой modelsim.ini, вот этот: C:\questasim64_10.4c\modelsim.ini.

Отредактированный modelsim.ini в студию!

Share this post


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

Не туда прописали. Прописывать нужно было вот в эту секцию:

[Library]
std = $MODEL_TECH/../std
ieee = $MODEL_TECH/../ieee
vital2000 = $MODEL_TECH/../vital2000

Вставьте строчки со всеми альтеровскими библиотеками с путями к ним перед строчкой std и не забудьте изменения в файле сохранить :)

И я  еще порекомендовал бы атрибут "read only" на этот modelsim.ini вернуть, от греха.

Share this post


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

Не туда прописали. Прописывать нужно было вот в эту секцию:

Вроде до [DefineOptionset] всё продолжается секция [Library] ?

Вставил эти строки перед std. Не влияет :( Атрибут "read only" вернул. Добавляются только те библиотеки, которые вписаны в mpf.

UPD: если запустить Questa Sim, не загружая в неё проект, то все библиотеки отображаются на закладке Library, в том числе и те, которые я вписал в корневой ini. Но если после этого загрузить mpf, в котором этих вписанных нет, то последние исчезают с закладки library. Если этот проект закрыть, то опять показаны все.

Share this post


Link to post
Share on other sites
4 hours ago, DSIoffe said:

И ещё: почему перестали нормально редактироваться реализации IP-ядер?

Откройте файл *.lst в папке IP-ядра и добавьте строку с названием.

примерно так:

<ALIAS>Custom PHY Intel FPGA IP v18.1</ALIAS>

Share this post


Link to post
Share on other sites

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

Share this post


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

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

Прикладываю. Спасибо.

pll.zip

19 часов назад, iglaz3 сказал:

Откройте файл *.lst в папке IP-ядра и добавьте строку с названием.

примерно так:

<ALIAS>Custom PHY Intel FPGA IP v18.1</ALIAS>

Сделал. Вставил эту строку последней, перед закрывающим тегом </INFO>. Не помогло :(

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