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

Помогите с PLL на Cyclone I

Доброго!

Осваиваю FPGA, взял для внешнего FIFO Cyclone I. Для тактирования хочу взять частоту 100Мгц, как почти гарантированно работоспособную и в то же время минимизирующую задержки. Есть внешняя 25Мгц. MegaWizard "подарил" мне PLL с требуемой конфигурацией. Попытка запихать его в Modelsim-Altera потерпела неудачу. Делаю в Quartus: Start compilation, Start Analysis & Elaboration, Run EDA simulation tool - EDA Gate level simulation.

 

 Warning: Parallel compilation is not licensed and has been disabled
Warning: Output port clk0 of PLL "alt_pll:LB0|altpll:altpll_component|pll" feeds an output pin via global clocks -- jitter performance depends on switching rate of other design elements. Use PLL dedicated clock outputs to ensure jitter performance
Warning: Parallel compilation is not licensed and has been disabled
Warning: Output port clk0 of PLL "alt_pll:LB0|altpll:altpll_component|pll" feeds an output pin via global clocks -- jitter performance depends on switching rate of other design elements. Use PLL dedicated clock outputs to ensure jitter performance
Warning: Feature LogicLock is only available with a valid subscription license. You can purchase a software subscription to gain full access to this feature.
Warning: The Reserve All Unused Pins setting has not been specified, and will default to 'As output driving ground'.
Warning: Parallel compilation is not licensed and has been disabled
Warning: Clock latency analysis for PLL offsets is supported for the current device family, but is not enabled
Warning: Expected ENABLE_CLOCK_LATENCY to be set to ON but is set to OFF
Warning: Device family does not support board-level Boundary-Scan Description Language file generation
Warning: Skipped module PowerPlay Power Analyzer due to the assignment FLOW_ENABLE_POWER_ANALYZER

 

Modelsim пытаться-то пытается, но как-то неубедительно:

run -all

# ** Warning: Input clock freq. is not within VCO range : Cyclone PLL may not lock.

# Time: 60 ps Iteration: 7 Instance: /pll_sim/\LB0|altpll_component|pll\

На втором периоде тактовой он уже знает, что частоту не захватить? по тексту ошибки полез результат посмотреть - так нет же, Nominal VCO frequency 800.0 MHz, в то же время в описании рабочий диапазон от 500 МГц до 1000 МГц).

 

Соответственно, выходной сигнал ровный, как пульс у покойника.

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

 

Используется Quartus 11.0sp1 c Modelsim Altera Strtaer edition 6.6d

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

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


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

Можете выложить проект?

Вот архив с голым PLL; всё лишнее убрал, когда начал бодаться с симуляцией.

Там рядом и bdf (схема) лежит, если что.

 

UPD: Выбор версии Quartus не случаен: эта последняя поддерживает Cyclone I.

pllsim.zip

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

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


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

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

Кроме того, в тестбенче нужно прописать поведение внешних сигналов. Конкретно в Вашем случае - задать входную тактовую частоту pll. Почитать об этом можно здесь. Правда, пример на Verilog'е, но при желании можно найти и на VHDL.

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


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

Дмитрий, если я всё правильно понимаю, то задав 'Clock'-сигнал в Waveform с периодом 40 ns и подав константу на areset я делаю то же самое. Нет?

PS: Сделаю - результат выложу.

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


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

Дмитрий, если я всё правильно понимаю, то задав 'Clock'-сигнал в Waveform с периодом 40 ns и подав константу на areset я делаю то же самое. Нет?
Не могу сказать, я всегда задавал сигналы вручную в тестбенче.

 

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


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

post-40343-1465378880_thumb.png

 

Ну, как-то так. Есть идеи, почему так происходит? и где толковый мануал есть по написанию тестбенчей на VHDL? Или ещё и Verilog учить? :wacko:

Вывод консольки:

# vsim -t 1ps -L altera -L lpm -L sgate -L altera_mf -L altera_lnsim -L cyclone -L rtl_work -L work -voptargs="+acc" pll_sim_vhd_tst

# vsim -L altera -L lpm -L sgate -L altera_mf -L altera_lnsim -L cyclone -L rtl_work -L work -voptargs=\"+acc\" -t 1ps pll_sim_vhd_tst

 

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

post-40343-1465380502_thumb.png

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

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


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

Посмотрите в RTL Viewer, как у вас подключился PLL. А ещё обратите внимание на активный уровень сброса, у альтеровских PLL это обычно лог. 1

А ещё прежде чем кидаться в гейт-левел симуляцию, попробуйте сначала ртл симуляцию провести)

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

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


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

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

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

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

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

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

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

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

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

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