Hoksmur 0 8 июня, 2016 Опубликовано 8 июня, 2016 (изменено) · Жалоба Доброго! Осваиваю 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 Изменено 8 июня, 2016 пользователем Hoksmur Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demon3200 0 8 июня, 2016 Опубликовано 8 июня, 2016 · Жалоба Можете выложить проект? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Hoksmur 0 8 июня, 2016 Опубликовано 8 июня, 2016 (изменено) · Жалоба Можете выложить проект? Вот архив с голым PLL; всё лишнее убрал, когда начал бодаться с симуляцией. Там рядом и bdf (схема) лежит, если что. UPD: Выбор версии Quartus не случаен: эта последняя поддерживает Cyclone I. pllsim.zip Изменено 8 июня, 2016 пользователем Hoksmur Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demon3200 0 8 июня, 2016 Опубликовано 8 июня, 2016 · Жалоба У Вас в проекте отсутствует тестбенч. Вот здесь можно почитать, как его создавать и привязывать к проекту. Если все сделать правильно, ModelSim будет запускаться из Quartus'а. Кроме того, в тестбенче нужно прописать поведение внешних сигналов. Конкретно в Вашем случае - задать входную тактовую частоту pll. Почитать об этом можно здесь. Правда, пример на Verilog'е, но при желании можно найти и на VHDL. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Hoksmur 0 8 июня, 2016 Опубликовано 8 июня, 2016 · Жалоба Дмитрий, если я всё правильно понимаю, то задав 'Clock'-сигнал в Waveform с периодом 40 ns и подав константу на areset я делаю то же самое. Нет? PS: Сделаю - результат выложу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demon3200 0 8 июня, 2016 Опубликовано 8 июня, 2016 · Жалоба Дмитрий, если я всё правильно понимаю, то задав 'Clock'-сигнал в Waveform с периодом 40 ns и подав константу на areset я делаю то же самое. Нет? Не могу сказать, я всегда задавал сигналы вручную в тестбенче. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Hoksmur 0 8 июня, 2016 Опубликовано 8 июня, 2016 (изменено) · Жалоба Ну, как-то так. Есть идеи, почему так происходит? и где толковый мануал есть по написанию тестбенчей на VHDL? Или ещё и Verilog учить? Вывод консольки: # 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 И что из этого би-и-ип получается, когда сигналы задаются вручную. Изменено 8 июня, 2016 пользователем Hoksmur Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
likeasm 0 8 июня, 2016 Опубликовано 8 июня, 2016 · Жалоба тут http://www.testbench.in Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 9 июня, 2016 Опубликовано 9 июня, 2016 · Жалоба для старта: Circuit Design and Simulation with VHDL second edition Volnei A. Pedroni Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GREGOR_812 0 14 июня, 2016 Опубликовано 14 июня, 2016 (изменено) · Жалоба Посмотрите в RTL Viewer, как у вас подключился PLL. А ещё обратите внимание на активный уровень сброса, у альтеровских PLL это обычно лог. 1 А ещё прежде чем кидаться в гейт-левел симуляцию, попробуйте сначала ртл симуляцию провести) Изменено 14 июня, 2016 пользователем GREGOR_812 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться