Jump to content

    
Sign in to follow this  
ovn

Откуда взять clk для логического анализатора ILA c Zynq?

Recommended Posts

Пробую пример работы с ILA

CLK зависимый, пока регистры не инициализируются, генерации нет, выдаёт ошибку.

WARNING: [Labtools 27-3361] The debug hub core was not detected.

Resolution:

1. Make sure the clock connected to the debug hub (dbg_hub) core is a free running clock and is active.

2. Make sure the BSCAN_SWITCH_USER_MASK device property in Vivado Hardware Manager reflects the user scan chain setting in the design and refresh the device.  To determine the user scan chain setting in the design, open the implemented design and use 'get_property C_USER_SCAN_CHAIN [get_debug_cores dbg_hub]'.

For more details on setting the scan chain property, consult the Vivado Debug and Programming User Guide (UG908).

WARNING: [Labtools 27-3413] Dropping logic core with cellname:'Zynq_i/ila_0' at location 'uuid_DF5D93A22A4E59DE8D60AFA4B2F66593' from probes file, since it cannot be found on the programmed device.

 

Откуда взять CLK для PL, если на отладочной плате лишь один генератор, заведён на PS_CLK. Может его как то можно вытащить? Как заставить работать логический анализатор ILA?

ZedBoardCounter.png

Share this post


Link to post
Share on other sites

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

Если что, в ядре Zynq нет генератора. Есть только PLL/MMCM, которая подстраивает частоту, опираясь на внешний опорный генератор, подключённый к ПЛИСине. Заведите клок, может тогда начнёт генерировать. А вообще запитывать ILA от ядра плохая идея: В ядре есть свои инструменты дебага и ядро может не стартовать/неактивно быть, в то время, когда нужно уже что-то дебагать

Share this post


Link to post
Share on other sites

Тут две разных проблемы. Клок для PL должен быть тот, на котором PL взаимодействует с PS. Т.е. все правильно сделано. Но ILA туповат и не работает без free-running clock. Поэтому можно взять, конфигурационный, вытащив из примитива STARTUPE* (выход CFGMCLK). Но он будет не синхронен клокам в PS.

Напрямую PS_CLK в PL вроде не протащить.

 

 

Share this post


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

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

Если что, в ядре Zynq нет генератора. Есть только PLL/MMCM, которая подстраивает частоту, опираясь на внешний опорный генератор, подключённый к ПЛИСине. Заведите клок, может тогда начнёт генерировать. А вообще запитывать ILA от ядра плохая идея: В ядре есть свои инструменты дебага и ядро может не стартовать/неактивно быть, в то время, когда нужно уже что-то дебагать

Сообщили то, что в первом посте написано, без конкретного ответа. Откуда клок завести, если на плате один генератор для Zynq, на отдельную ножку со внешнего генератора, без проблем, но абсолютно не нужно. 

Share this post


Link to post
Share on other sites
9 minutes ago, alexadmin said:

Напрямую PS_CLK в PL вроде не протащить.

а разве M_AXI_GPIO при подключении внешнего порта не пробросит тактовую акси во внешку?

UPD. Ааа, речь про то, что без инициализации цинка ничего не работает. Да, есть такое. ЕМНИП, там как минимум FSBL должен выполнится. 

Share this post


Link to post
Share on other sites

Ну да, основной интерес откуда взять clk для PL, если Zynq как бы отдельно живёт. ILA, да, корявенький, он должен запуститься и ничего не показывать по идее. 

Edited by ovn

Share this post


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

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

Если что, в ядре Zynq нет генератора. Есть только PLL/MMCM, которая подстраивает частоту, опираясь на внешний опорный генератор, подключённый к ПЛИСине.

Опорная частота берется как раз с вывода PS_CLK. Автору скорей всего нужно активировать выход FCLK_CLK0: во-первых "поставить галочку", а во-вторых, выполнить в SDK код, который пишет эту "галочку" в нужный регистр. То есть пока программа не начала выполняться, такта не будет.

Share this post


Link to post
Share on other sites
Только что, vitzap сказал:

Опорная частота берется как раз с вывода PS_CLK. Автору скорей всего нужно активировать выход FCLK_CLK0: во-первых "поставить галочку", а во-вторых, выполнить в SDK код, который пишет эту "галочку" в нужный регистр. То есть пока программа не начала выполняться, такта не будет.

Это понятно, галочки поставлены, Hello Word запущен, тут не запускается ILA, потому что ему независимое тактирование нужно. Опять же, хотелось бы тактировать логику в PL независимо от Zynq. 

Share this post


Link to post
Share on other sites
Just now, ovn said:

Это понятно, галочки поставлены, Hello Word запущен, тут не запускается ILA, потому что ему независимое тактирование нужно. Опять же, хотелось бы тактировать логику в PL независимо от Zynq. 

про ILA странно, на запущенном проце, с тактированием от него, проблем с запуском не наблюдал. Может все же нет частоты там и проц не прогружен?

Share this post


Link to post
Share on other sites
Just now, ovn said:

Это понятно, галочки поставлены, Hello Word запущен, тут не запускается ILA, потому что ему независимое тактирование нужно. Опять же, хотелось бы тактировать логику в PL независимо от Zynq. 

Для ILA не нужно независимого тактирования - ему просто нужен такт.

Попробуйте после старта программы сделать Refresh Target в Hardware Manager-е.

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

 

Share this post


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

про ILA странно, на запущенном проце, с тактированием от него, проблем с запуском не наблюдал. Может все же нет частоты там и проц не прогружен?

Проц не запущен, генерации нет, пока в SDK не проинициализировались регистры PS, генерации не будет. А как мне тактировать чисто PL без PS в Vivado без SDK?

Edited by ovn

Share this post


Link to post
Share on other sites
5 minutes ago, ovn said:

Проц не запущен, генерации нет, пока в SDK не проинициализировались регистры PS, генерации не будет. А как мне тактировать чисто PL без PS чисто в Vivado?

эмм, это как? если проц не запущен тогда что такое hello word и откуда там тактовая? Если проц не запущен, то вам уже ответили, что никак не затактировать PL с этого генератора. 

13 minutes ago, ovn said:

Это понятно, галочки поставлены, Hello Word запущен, тут не запускается ILA, потому что ему независимое тактирование нужно. Опять же, хотелось бы тактировать логику в PL независимо от Zynq. 

 

Share this post


Link to post
Share on other sites
2 minutes ago, ovn said:

Проц не запущен, генерации нет, пока в SDK не проинициализировались регистры PS, генерации не будет. А как мне тактировать чисто PL без PS чисто в Vivado?

Насколько я понимаю, никак. Да и работа PL части без инициализации проца в "реальной жизни" неосуществима - загрузкой PL занимается проц. Вы же не будете в реальном изделии грузить ПЛИС по JTAG?

Share this post


Link to post
Share on other sites
Только что, des00 сказал:

эмм, это как? если проц не запущен тогда что такое hello word и откуда там тактовая? Если проц не запущен, то вам уже ответили, что никак не затактировать PL с этого генератора. 

 

ILA в PL создаётся до Hello Word из SDK. Вот Вивада и ругается. 

Share this post


Link to post
Share on other sites
5 minutes ago, ovn said:

ILA в PL создаётся до Hello Word из SDK. Вот Вивада и ругается. 

 может я туплю, но эта ошибка возникает когда вы загрузили битстрим, он стартанул и нет тактовой на ILA. Решается реконектом когда тактовая есть. Как оно вам сбивает исполнение проца, не доходит до меня(

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this