<?xml version="1.0"?>
<rss version="2.0"><channel><title>&#x421;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x44B; &#x43D;&#x430; &#x41F;&#x41B;&#x418;&#x421; - System on a Programmable Chip (SoPC) Latest Topics</title><link>https://electronix.ru/forum/forum/164-sistemy-na-plis-system-on-a-programmable-chip-sopc/</link><description>&#x421;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x44B; &#x43D;&#x430; &#x41F;&#x41B;&#x418;&#x421; - System on a Programmable Chip (SoPC) Latest Topics</description><language>en</language><item><title>AXI CAN</title><link>https://electronix.ru/forum/topic/154213-axi-can/</link><description><![CDATA[
<p>
	Приветствую.
</p>

<p>
	Может кто пользовался и может подсказать. Есть проблема с приёмом сообщений от AXI CAN. Как понимаю какая-то ошибка с таймингами.
</p>

<p>
	В двух проектах используются ядра Xilinx AXI CAN. В одном всё классно работает, в другом - теряется половина сообщения. Для нерабочего проекта попробовал убрать всё и оставить в системе толко AXI CAN. В данном случае приём наладился. Посмотрел, каким образом расположена логика для AXI CAN, и попробовал привязать её таким же образом с помощью <em>create_pblock </em>для<em> </em>полной версии проекта. Не помогло.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="123283" href="https://electronix.ru/forum/uploads/monthly_2019_10/931920868_Screenshotfrom2019-10-2609-36-47.png.eed9a61d08a8a29f161961517e82183b.png" rel=""><img alt="Screenshot from 2019-10-26 09-36-47.png" class="ipsImage ipsImage_thumbnailed" data-fileid="123283" src="https://electronix.ru/forum/uploads/monthly_2019_10/1161129941_Screenshotfrom2019-10-2609-36-47.thumb.png.c5ae5776861075c91b43416e17d33510.png" /></a>
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="123284" href="https://electronix.ru/forum/uploads/monthly_2019_10/1835720507_Screenshotfrom2019-10-2610-18-19.png.c6c56ac121111498826759fca52ef592.png" rel=""><img alt="Screenshot from 2019-10-26 10-18-19.png" class="ipsImage ipsImage_thumbnailed" data-fileid="123284" src="https://electronix.ru/forum/uploads/monthly_2019_10/937397519_Screenshotfrom2019-10-2610-18-19.thumb.png.f35ede84f8167775d49581d7eeb8009a.png" /></a>
</p>

<p>
	На втором рисунке битое сообщение .
</p>
]]></description><guid isPermaLink="false">154213</guid><pubDate>Sat, 26 Oct 2019 10:36:35 +0000</pubDate></item><item><title>&#x425;&#x43E;&#x440;&#x43E;&#x448;&#x43E; &#x43B;&#x438; &#x440;&#x430;&#x437;&#x432;&#x435;&#x442;&#x432;&#x43B;&#x44F;&#x442;&#x44C; AXI &#x448;&#x438;&#x43D;&#x44B;?</title><link>https://electronix.ru/forum/topic/211976-horosho-li-razvetvlyat-axi-shiny/</link><description><![CDATA[<p>
	Доброго времени суток!
</p>

<p>
	Работаю над переделкой оного решения для PCIe без процессора, с высокоскоростными ЦАП АЦП на JESD204, DDR4 и кучей SPI периферии. Сделано Kintex UltraScale, разумеется, проект Vivado.
</p>

<p>
	В нём очень много модулей с AXI4 и есть Block Design. Так вот, этот в этом Block Design очень тяжело что то делать так как очень много проводов. В частности, AXI. Хотел я разбить на иерархические блоки, в которых будет по несколько модулей, соединённых через Crossbar, а наружу пойдёт один AXI.
</p>

<p>
	Сделать то это не проблема, только возник попутно вопрос - а хорошо это или плохо иметь древовидную топологию AXI, где много этих Crossbars? Надо ли стараться минимизировать их количество? Или Vivado там как то это всё оптимизирует и это всё не важно? 
</p>
]]></description><guid isPermaLink="false">211976</guid><pubDate>Fri, 12 Dec 2025 18:10:24 +0000</pubDate></item><item><title>DNNDK v3.1 &#x438;&#x449;&#x435;&#x442;&#x441;&#x44F;</title><link>https://electronix.ru/forum/topic/214319-dnndk-v31-ischetsya/</link><description><![CDATA[<p>
	Добрый день.
</p>

<p>
	На каком-то этапе потерялся проект с DPU на Zynq и архив xilinx_dnndk_v3.1_190809.tar.gz (около 2ГБ), который уже не скачивается из России<br />
	<a href="https://www.xilinx.com/member/forms/download/xef.html?filename=xilinx_dnndk_v3.1_190809.tar.gz." rel="external nofollow">https://www.xilinx.com/member/forms/download/xef.html?filename=xilinx_dnndk_v3.1_190809.tar.gz.</a><br />
	Поделитесь, пожалуйста, у кого может завялялся или кто знает как скачать.  Вообще на смену ему пришел Vitis-AI, который, к сожалению, не работает с Zynq7000.
</p>

<p>
	Какие-то части от DNNDK у меня остались, нужен только пакет для убунты c DECENT_Q и примеры (папка в этом архиве /host_x86),  само IP-ядро, драйвер-модуль ядра и т.д. - есть.
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">214319</guid><pubDate>Mon, 02 Feb 2026 06:41:07 +0000</pubDate></item><item><title>EBAZ4205 &#x441;&#x43E;&#x431;&#x440;&#x430;&#x442;&#x44C; petalinux "&#x441; &#x43D;&#x443;&#x43B;&#x44F;". &#x427;&#x435;&#x433;&#x43E; &#x431;&#x44B; &#x43F;&#x43E;&#x447;&#x438;&#x442;&#x430;&#x442;&#x44C; &#x43F;&#x440;&#x43E; device-tree?</title><link>https://electronix.ru/forum/topic/209163-ebaz4205-sobrat-petalinux-s-nulya-chego-by-pochitat-pro-device-tree/</link><description><![CDATA[<p>
	Добрый день!<br />
	Пытаюсь собрать petalinux для Zynq7010. Который стоит на дешёвой плате от майнера с Алиэкспресс.
</p>

<p>
	Как-то всё идёт очень тяжело. Мануала ug1144 и книжки Madieu J. Linux Device Drivers Development.2-nd.2022.pdf явно недостаточно.
</p>

<p>
	Никто не подскажет, чего бы почитать популярного, чтобы как-то освоить u-boot и device tree? И сборку linux для Zynq?
</p>

<p>
	Пытался переиспользовать чужой опыт - вязл пример с <a href="https://github.com/har-in-air/EBAZ4205_PETALINUX" rel="external nofollow">https://github.com/har-in-air/EBAZ4205_PETALINUX</a>. Он для petalinux 2022.2. Порадовался, что там всё "с нуля" в части линкуса - просто несколько инструкций, что делать. Но только ничего не заработало. Дальше u-boot не пошло. Ethernet не видит, ядро не грузит...
</p>

<p>
	Попробовал проект <a href="https://github.com/KeitetsuWorks/EBAZ4205" rel="external nofollow">https://github.com/KeitetsuWorks/EBAZ4205.</a> Не поленился, скачал для него petlinux 2021.2. Он хоть и с танцами, но похоже, заработает. Жалко, что там предлагается готовая папка с проектом petalinux, придётся делать "reverse engineering" - создавать самому пустой проект и сравнивать с этой папкой чтобы понять, что человек добавил.<br />
	<br />
	Нельзя ли чего-нибудь почитать, чтобы как-то более осознано себя вести, уметь решать задачи типа:<br />
	"Вот у меня на плате Zynq7010, к определённым пинам подключена микросхема Ethernet IP101GA. Чего и как наконфигурировать в petalinux, чтобы это добро зарабоало?" Или:<br />
	"На той же плате стоит еще NAND память, подключена туда-то. Чего наконфигурировать в petalinux, чтобы можно было с ней работать?"<br />
	"Что изменить, чтобы грузиться не с SD-карты, а с NAND? Как разбить её на partitions, почему так?"<br />
	<br />
	Пока какая-то каша в голове. Есть готовые ответы от "<a href="https://github.com/KeitetsuWorks/EBAZ4205" rel="external nofollow">KeitetsuWorks</a>", но шаг в сторону - и непонятно, чего делать. Как отлаживаться тоже непонятно.<br />
	<br />
	Почему всё так сложно? Линукс же на МК придумали, чтобы было просто! Похоже, я что-то не так делаю. Поправьте, пожалуйста!
</p>
]]></description><guid isPermaLink="false">209163</guid><pubDate>Thu, 16 Oct 2025 14:09:52 +0000</pubDate></item><item><title>&#x431;&#x435;&#x441;&#x43F;&#x43B;&#x430;&#x442;&#x43D;&#x43E;&#x435; IP &#x44F;&#x434;&#x440;&#x43E; &#x43E;&#x442; TI TI-JESD204C-IP</title><link>https://electronix.ru/forum/topic/212884-besplatnoe-ip-yadro-ot-ti-ti-jesd204c-ip/</link><description><![CDATA[<p>
	Добрый день.
</p>

<p>
	Необходимо бесплатное IP ядро от TI TI-JESD204C-IP для АЦП ADC12DJ5200RF.
</p>

<p>
	Кто-нибудь подскажет как скачать TI-JESD204C-IP  с сайта TI?
</p>

<p>
	У кого нибудь есть доступ с почтой с корпоративным доменом .com?
</p>

<p>
	Или подскажете другой способ?
</p>
]]></description><guid isPermaLink="false">212884</guid><pubDate>Tue, 30 Dec 2025 18:18:13 +0000</pubDate></item><item><title>Ultrascale+ DPU IP</title><link>https://electronix.ru/forum/topic/181973-ultrascale-dpu-ip/</link><description><![CDATA[<p>
	Здравствуйте, коллеги. Появилась задача - поднять AI на ПЛИС. Поиски навели на DPU. Само IP ядро добавил в схему. Собрал BOOT.bin. Дальше затык. Как поднять DPU без петалинукса ? Это вообще реально ?
</p>

<p>
	Скачал отсюда <a href="https://www.pynq.io/board.html" rel="external nofollow">https://www.pynq.io/board.html</a> файловую систему. DTB и ядро свои. Как добавить DPU в DTB вроде бы понятно, но где брать драйвер (вроде, как zocl.ko). В файловой системе от Pynq драйвера не оказалось.
</p>

<p>
	Может кто-нибудь уже пытался такое проделать ?
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">181973</guid><pubDate>Mon, 01 Apr 2024 14:18:53 +0000</pubDate></item><item><title>&#x41A;&#x430;&#x43A; &#x436;&#x435; &#x432;&#x441;&#x435; &#x442;&#x430;&#x43A;&#x438; DcacheInvalidateRange &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x435;&#x442;?</title><link>https://electronix.ru/forum/topic/212629-kak-zhe-vse-taki-dcacheinvalidaterange-rabotaet/</link><description><![CDATA[<p>
	Всем доброго дня.<br />
	Ситуация такая. Есть система на Zynq Ultrascale+. К PS подключен мастер (на AXI HP Slave у PS), который пишет в память. Если запускаю транзакцию, а затем делаю Xil_DcacheInvalidateRange, то в памяти для процессора изменения не видны (память не меняется якобы). При этом дебагом вижу по сигналам на AXI, что транзакция проходит как надо. Если до запуска транзакции поставить Xil_DcacheFlushRange, то после запуска транзакции  и Xil_DcacheInvalidateRange все изменения видны в памяти процессором.
</p>

<p>
	До сих пор думал, что Xil_DcacheFlushRange делает так, чтобы все, что видно процессору с учетом кэша, сохраняется в физической памяти. Xil_DcacheInvalidateRange делает всю кэш в диапазоне "грязной" и процессор при обращении к данным из этого диапазона берет их из физической памяти, а не из кэша.
</p>

<p>
	Поясните пожалуйста, как же все-таки Xil_DcacheInvalidateRange работает? Что нужно сделать, чтобы при обращении к памяти процессор заново читал данные из нее, а не из кэша?
</p>
]]></description><guid isPermaLink="false">212629</guid><pubDate>Thu, 25 Dec 2025 05:06:42 +0000</pubDate></item><item><title><![CDATA[Alinx AX7020 PYNQ 2.4 -> PYNQ 2.7]]></title><link>https://electronix.ru/forum/topic/211864-alinx-ax7020-pynq-24-pynq-27/</link><description><![CDATA[<p>
	Добрый день. 
</p>

<p>
	У меня есть плата Alinx AX7020 и SD карта с PYNQ версии 2.4 и версией Python 3.6. 
</p>

<p>
	Это очень старая версия питона,  и я хотела бы перейти хотя бы на python 3.8, который поддерживается в новом образе PYNQ версии 2.7 для моей платы.
</p>

<p>
	Я пробовала записать образ, который нашла на официальном сайте для платы Z2 (поскольку используется тот же SoC). Но моя плата даже не загружается с него (в окошке РuTTY пусто).
</p>

<p>
	Подскажите, друзья, есть ли у кого готовый образ .img PYNQ 2.7 собранный специально для платы AX7020?<br />
	Помогите, пожалуйста, очень интересно попробовать работать на питоне с ПЛИС.
</p>

<p>
	Работаю в ubuntu 22.04
</p>
]]></description><guid isPermaLink="false">211864</guid><pubDate>Wed, 10 Dec 2025 11:08:21 +0000</pubDate></item><item><title>Zync-7000 SoC. &#x432;&#x44B;&#x445;&#x43E;&#x434;&#x44B; "&#x43E;&#x442;&#x43A;&#x440;&#x44B;&#x442;&#x44B;&#x439; &#x43A;&#x43E;&#x43B;&#x43B;&#x435;&#x43A;&#x442;&#x43E;&#x440;"</title><link>https://electronix.ru/forum/topic/211559-zync-7000-soc-vyhody-otkrytyy-kollektor/</link><description><![CDATA[<p>
	Если кто работал с Zync-7000, подскажите, пожалуйста. Есть ли у этого зверя возможность сконфигурировать пользовательский выход как "открытый коллектор"? Есть необходимость несколькими оптронами с его помощью управлять.
</p>
]]></description><guid isPermaLink="false">211559</guid><pubDate>Fri, 05 Dec 2025 12:14:29 +0000</pubDate></item><item><title>&#x421;&#x432;&#x43E;&#x438; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x441;&#x43E;&#x440;&#x44B;</title><link>https://electronix.ru/forum/topic/60367-svoi-protsessory/</link><description><![CDATA[<p>Занимаюсь разработкой своего проца под SoC. Если есть предложения по системе команд и практической реализации пишем сюда.</p>]]></description><guid isPermaLink="false">60367</guid><pubDate>Thu, 12 Mar 2009 19:51:45 +0000</pubDate></item><item><title>SoC &#x442;&#x438;&#x43F;&#x430; Zynq &#x43E;&#x442; Gowin (ex. XA7Z020. &#x41A;&#x442;&#x43E; &#x442;&#x438;&#x441;&#x43A;&#x430;&#x43B; &#x442;&#x430;&#x43A;&#x43E;&#x433;&#x43E; &#x437;&#x432;&#x435;&#x440;&#x44F;? &#x412;&#x43F;&#x435;&#x447;&#x430;&#x442;&#x43B;&#x435;&#x43D;&#x438;&#x44F;?)</title><link>https://electronix.ru/forum/topic/208124-soc-tipa-zynq-ot-gowin-ex-xa7z020-kto-tiskal-takogo-zverya-vpechatleniya/</link><description><![CDATA[<blockquote class="ipsQuote" data-ipsquote="" data-ipsquote-contentapp="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentcommentid="2009810" data-ipsquote-contentid="208062" data-ipsquote-contenttype="forums" data-ipsquote-timestamp="1758028289" data-ipsquote-userid="19695" data-ipsquote-username="sonycman">
	<div class="ipsQuote_citation">
		В 16.09.2025 в 16:11, sonycman сказал:
	</div>

	<div class="ipsQuote_contents">
		<p>
			А какие-то платки на пробу с этими чипами у Вас можно приобрести физич. лицу?
		</p>
	</div>
</blockquote>

<p>
	Для частного лица самый недорогой и быстрый вариант - купить плату SiPEED для GW5AST-LV138 на Aliexpress, в официальном магазине SiPEED Store: 
</p>

<p>
	<a href="https://aliexpress.ru/item/1005007265305162.html?sku_id=12000040002814282&amp;spm=a2g2w.productlist.search_results.3.120967f2QelIdH" rel="external nofollow">https://aliexpress.ru/item/1005007265305162.html?sku_id=12000040002814282&amp;spm=a2g2w.productlist.search_results.3.120967f2QelIdH</a>
</p>

<p>
	Описание платы здесь: <a href="https://en.wiki.sipeed.com/hardware/en/tang/tang-mega-138k/mega-138k.html" rel="external nofollow">https://en.wiki.sipeed.com/hardware/en/tang/tang-mega-138k/mega-138k.html</a>
</p>

<p>
	 
</p>

<blockquote class="ipsQuote" data-ipsquote="" data-ipsquote-contentapp="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentcommentid="2009821" data-ipsquote-contentid="208062" data-ipsquote-contenttype="forums" data-ipsquote-timestamp="1758033000" data-ipsquote-userid="1343" data-ipsquote-username="dxp">
	<div class="ipsQuote_citation">
		В 16.09.2025 в 17:30, dxp сказал:
	</div>

	<div class="ipsQuote_contents">
		<p>
			Тут, правда, ещё есть фактор САПР -- после стройной, логичной и функциональной Vivado софт того же Gowin выглядит как игрушка.
		</p>
	</div>
</blockquote>

<p>
	Ну-у, господа... Сколько лет развивается связка XACT-ISE-Vivado-Vitis ?
</p>

<p>
	И сколько лет Gowin EDA ?
</p>

<p>
	 
</p>

<blockquote class="ipsQuote" data-ipsquote="" data-ipsquote-contentapp="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentcommentid="2009821" data-ipsquote-contentid="208062" data-ipsquote-contenttype="forums" data-ipsquote-timestamp="1758033000" data-ipsquote-userid="1343" data-ipsquote-username="dxp">
	<div class="ipsQuote_citation">
		В 16.09.2025 в 17:30, dxp сказал:
	</div>

	<div class="ipsQuote_contents">
		<p>
			... а вот то, что там полную автоматизацию не навести (те же IP ядра можно создавать только через тыкание кнопочек на GUI -- во всяком случае было так, когда я в последний раз это смотрел), это для меня серьёзный недостаток.
		</p>
	</div>
</blockquote>

<p>
	Постепенно идут перемены в лучшую сторону - см. <a href="https://www.gowinsemi.com/en/document/chkLogin/?a=upload%2Fdatabase_doc%2F3262%2Fdocument%2F68b8a001a6a92.pdf" rel="external nofollow">SUG1220-1.0E_Gowin Software Tcl Commands User Guide.pdf</a>  (он же во вложении), раздел IPFlow.
</p>

<p>
	 
</p>

<blockquote class="ipsQuote" data-ipsquote="" data-ipsquote-contentapp="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentcommentid="2009823" data-ipsquote-contentid="208062" data-ipsquote-contenttype="forums" data-ipsquote-timestamp="1758033675" data-ipsquote-userid="19695" data-ipsquote-username="sonycman">
	<div class="ipsQuote_citation">
		В 16.09.2025 в 17:41, sonycman сказал:
	</div>

	<div class="ipsQuote_contents">
		<p>
			Китайцев пока не щупал вообще никогда, ужасно раздражают иероглифы...
		</p>
	</div>
</blockquote>

<p>
	У Gowin документация и софт от рождения имели англолязычные версии. Но, правду сказать, до уровня Altera (или даже Lattice - это более справедливое сравнение) документация у Gowin пока не дотягивает. Но работать вполне можно !
</p>

<p>
	 
</p>

<blockquote class="ipsQuote" data-ipsquote="" data-ipsquote-contentapp="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentcommentid="2009824" data-ipsquote-contentid="208062" data-ipsquote-contenttype="forums" data-ipsquote-timestamp="1758033843" data-ipsquote-userid="1343" data-ipsquote-username="dxp">
	<div class="ipsQuote_citation">
		В 16.09.2025 в 17:44, dxp сказал:
	</div>

	<div class="ipsQuote_contents">
		<p>
			... хотя Gowin из РФ ушёл сразу же в 22-м году.
		</p>
	</div>
</blockquote>

<p>
	Ушел по-китайски - вроде бы да, но вроде бы и нет <span><span class="ipsEmoji">🙂</span></span>
</p>

<p>
	<span>Но я-то в любом случае остался !  <span class="ipsEmoji">😜</span></span>
</p>

<p>
	 
</p>
<p>
<a class="ipsAttachLink" href="https://electronix.ru/forum/applications/core/interface/file/attachment.php?id=175533&amp;key=62d2f981c95a8f8d18da91d3cd173387" data-fileExt='pdf' data-fileid='175533' data-filekey='62d2f981c95a8f8d18da91d3cd173387'>SUG1220-1.0E_Gowin Software Tcl Commands User Guide.pdf</a></p>]]></description><guid isPermaLink="false">208124</guid><pubDate>Tue, 16 Sep 2025 20:33:36 +0000</pubDate></item><item><title>&#x41F;&#x440;&#x43E;&#x448;&#x443; &#x43F;&#x43E;&#x43C;&#x43E;&#x447;&#x44C; &#x440;&#x430;&#x437;&#x43E;&#x431;&#x440;&#x430;&#x442;&#x44C;&#x441;&#x44F; &#x441; &#x442;&#x435;&#x440;&#x43C;&#x438;&#x43D;&#x43E;&#x43B;&#x43E;&#x433;&#x438;&#x435;&#x439; AXI : outstandings (&#x438; in-flight)</title><link>https://electronix.ru/forum/topic/210362-proshu-pomoch-razobratsya-s-terminologiey-axi-outstandings-i-in-flight/</link><description><![CDATA[<p>
	мне с точки зрения здравого смысла всегда казалось, что outstandings - это возможность системы обеспечить какое-то количество одновременных незавершенных транзакций (типа capability), а in-flight это реазизация этой возможности, сколько реально незавершенных транзакций "бегает" в рабочем состоянии, то есть in-flight &lt;= outstandings.
</p>

<p>
	и соответственно (опять здравый смысл - каких-то внятных определений я не нашел) имеет смысл считать outstandings/in-flights на конкретном пути маcтер-интерконнект-слэйв, а не по всей больнице
</p>

<p>
	=================
</p>

<p>
	на практике имею мастер, который может испустить 4 AR запроса, интерконект (от PULP), который имеет память, например, глубиной 8 запросов, и слэйв, который сугубо последовательный, задержка случайно зависит от адреса, накакой оптимизации, то есть переупорядочивания запросов (как в SDRAM контроллере) невозможно в принципе, нет смысла (по-моему) принимать несколько запросов, на 1 запрос - то есть получил адрес - опустил ARREADY
</p>

<p>
	причем память в интерконнекте - это не конвеер/FIFO, а специальная память, которая работает не обязательно in-order, то есть для разных RID запросы могут обрабатываться не по порядку (что неважно для этого примера)
</p>

<p>
	при этом мой оппонент говорит, что так как в слэйве аутстендингов 1, то число аутстэндингов min(4,8,1)=1 и значит система имеет 1 outstandings и будет плохо работать - то есть латенси интерконнекта будет влиять на пропускную способность.
</p>

<p>
	но в то же время, я с приблизительно такой же системой имел дело раньше и там вполне работало что 4 транзакции были "in-flight", то есть ARVALID у слэйва всегда был готов, backpresure не распространялась, то есть ARREADY у мастера всегда 1. получалось in-flight=4&gt;min(4,8,1).  
</p>

<p>
	приводить какие-то вэйформы я не могу, не тот уровень дискуссии (да и надо время, чтобы эти вэйформы получить).
</p>

<p>
	--------------------------------
</p>

<p>
	ИИ стал на сторону оппонента (что число оутстэндингов определяется как минимум чисел мастера/слэйва/интерконнекта) и приводит какие-то непонятные мне объяснения.
</p>

<p>
	собственно вопрос - в чем я ошибаюсь, почему outstandings для приведенной выше системы min(4,8,1)=1, а не например 8 - размер памяти в интерконнекте? какой может быть сценарий, если я сделаю память запросов в слэйве (например, на 4 запроса)? то есть если я соберу систему в которой outstandings min(4,4,4)=4, как это может дать выигрышь на практике?
</p>

<p>
	а корневой вопрос - что мешает мне переложить поддержку outstandings на интерконнект (готовое IP) и не делать ее в слэйве? при каком сценарии работы (допустем еще есть мастера и слейвы и они как хотят взаимодействуют) скажется отсутствие аутстэндингов у слэйва? только не надо про SDRAM контроллен, который может переупорядочивать и склеивать запросы для уменьшения времени обслуживания.
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">210362</guid><pubDate>Mon, 10 Nov 2025 10:07:38 +0000</pubDate></item><item><title>&#x421;&#x43A;&#x43E;&#x440;&#x43E;&#x441;&#x442;&#x44C; &#x43F;&#x440;&#x43E;&#x446;&#x430; zynq ultrascale+, &#x43D;&#x43E;&#x440;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x43E; &#x44D;&#x442;&#x43E;?</title><link>https://electronix.ru/forum/topic/209272-skorost-protsa-zynq-ultrascale-normalno-eto/</link><description><![CDATA[<p>
	Всем доброго дня!<br />
	Взываю к опыту Уважаемых.
</p>

<p>
	Выполняю на кортексе А53 XCZU4EV такой код (тактовая 1200МГц):<br />
	        for (int i=0;i&lt;32;i++)<br />
	        {<br />
	            int a=Xil_In32(CODE_IN);<br />
	            if (a&amp;0x1)<br />
	            {<br />
	                data[j]|=1;<br />
	            }<br />
	            data[j]&lt;&lt;=1;<br />
	            Xil_Out32(CODE_OUT,0x1);<br />
	            Xil_Out32(CODE_OUT,0x0);<br />
	        }
</p>

<p>
	CODE_OUT, CODE_IN - это обычные PIO, подключенные через AXI к процессору.
</p>

<p>
	Встроенным осциллографом вижу, что период следования импульсов на выходе PIO порядка 70 тактов частоты 150МГц,  (частота шины AXI), т.е. 0,5-1мкс.
</p>

<p>
	Это такие простые операции при частоте 1200МГЦ кортекс так долго делает? Может что-то у меня не так сделано? Кто-то тестировал, как быстро этот кортекс ворочает подобные операции? Вроде одна операция должны быть меньше наносекунды (ну кроме ввода-вывода, хз как оно там организовано через мост), или я что-то не так понимаю? Но даже если ввод-вывод 2 такта частоты AXI, то все равно это порядка 50-100 нс, но не 500-1000 же...
</p>

<p>
	 
</p>

<p>
	 
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">209272</guid><pubDate>Sun, 19 Oct 2025 13:06:46 +0000</pubDate></item><item><title>logic of connecting ip block to block diagram to sending samples to dac</title><link>https://electronix.ru/forum/topic/208563-logic-of-connecting-ip-block-to-block-diagram-to-sending-samples-to-dac/</link><description><![CDATA[<p style="background-color:#ffffff;color:#333333;font-size:13px;padding:0px;">
	<span dir="ltr">Hello I , have built an IP block which creates samples for the DAC in vitis HLS.</span>
</p>

<p style="background-color:#ffffff;color:#333333;font-size:13px;padding:0px;">
	<span dir="ltr">Could you help me uderstand If the samples will be delivered properly to the DAC?</span>
</p>

<p style="background-color:#ffffff;color:#333333;font-size:13px;padding:0px;">
	<span dir="ltr">pdf and TCL file are attached.</span>
</p>

<p style="background-color:#ffffff;color:#333333;font-size:13px;padding:0px;">
	<span dir="ltr">Thanks.</span>
</p>

<p style="background-color:#ffffff;color:#333333;font-size:13px;padding:0px;">
	<span dir="ltr"> </span>
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="pln">#include </span><span class="tag">&lt;ap_int.h&gt;</span><span class="pln">
#include </span><span class="tag">&lt;stdint.h&gt;</span><span class="pln">
#include </span><span class="tag">&lt;math.h&gt;</span><span class="pln">   // sinf
 
// Pack 8 x int16 into one 128-bit word
static inline ap_uint&lt;128&gt; pack8(
    int16_t s0,int16_t s1,int16_t s2,int16_t s3,
    int16_t s4,int16_t s5,int16_t s6,int16_t s7)
{
    ap_uint&lt;128&gt; w = 0;
    w.range( 15,  0) = (ap_uint&lt;16&gt;)s0;
    w.range( 31, 16) = (ap_uint&lt;16&gt;)s1;
    w.range( 47, 32) = (ap_uint&lt;16&gt;)s2;
    w.range( 63, 48) = (ap_uint&lt;16&gt;)s3;
    w.range( 79, 64) = (ap_uint&lt;16&gt;)s4;
    w.range( 95, 80) = (ap_uint&lt;16&gt;)s5;
    w.range(111, 96) = (ap_uint&lt;16&gt;)s6;
    w.range(127,112) = (ap_uint&lt;16&gt;)s7;
    return w;
}
 
void fill_ddr(                           // Top function
    volatile ap_uint&lt;128&gt;* out,          // M_AXI 128-bit (DDR destination)
    uint32_t               n_words,      // &lt;&lt; logic pin (set in BD)
    uint16_t               amplitude)    // &lt;&lt; logic pin (set in BD)
{
    // Data mover to DDR stays AXI master:
#pragma HLS INTERFACE m_axi     port=out       offset=slave bundle=gmem depth=1024 num_read_outstanding=4 num_write_outstanding=16 max_write_burst_length=64
 
    // Keep an AXI-Lite for ap_ctrl_hs (start/done/idle) and for passing 'out' base address:
#pragma HLS INTERFACE s_axilite port=out       bundle=ctrl
#pragma HLS INTERFACE s_axilite port=return    bundle=ctrl
 
    // Make these plain ports (no register), so they appear as pins in the BD:
#pragma HLS INTERFACE ap_none   port=n_words
#pragma HLS INTERFACE ap_none   port=amplitude
 
    // Tell HLS they won't change during a run (better QoR):
#pragma HLS STABLE   variable=n_words
#pragma HLS STABLE   variable=amplitude
 
    // Clamp amplitude to int16 range
    int16_t A = (amplitude &gt; 0x7FFF) ? 0x7FFF : (int16_t)amplitude;
 
    // Build one 32-sample period: s[n] = A * sin(2*pi*(15/32)*n)
    const float TWO_PI = 6.2831853071795864769f;
    const float STEP   = TWO_PI * (15.0f / 32.0f);
 
    int16_t wav32[32];
#pragma HLS ARRAY_PARTITION variable=wav32 complete dim=1
    for (int n = 0; n &lt; 32; ++n) {
        float xf = (float)A * sinf(STEP * (float)n);
        int tmp = (xf &gt;= 0.0f) ? (int)(xf + 0.5f) : (int)(xf - 0.5f);
        if (tmp &gt;  32767) tmp =  32767;
        if (tmp &lt; -32768) tmp = -32768;
        wav32[n] = (int16_t)tmp;
    }
 
    // Stream out, 8 samples per 128-bit beat, repeating every 32 samples
    uint8_t idx = 0; // 0..31
write_loop:
    for (uint32_t i = 0; i &lt; n_words; i++) {
    #pragma HLS PIPELINE II=1
        ap_uint&lt;128&gt; w = pack8(
            wav32[(idx+0) &amp; 31], wav32[(idx+1) &amp; 31],
            wav32[(idx+2) &amp; 31], wav32[(idx+3) &amp; 31],
            wav32[(idx+4) &amp; 31], wav32[(idx+5) &amp; 31],
            wav32[(idx+6) &amp; 31], wav32[(idx+7) &amp; 31]
        );
        out[i] = w;
        idx = (idx + 8) &amp; 31; // advance 8 samples per beat; wrap at 32
    }
}</span></pre>

<p>
	 
</p>
<p>
<a class="ipsAttachLink" href="https://electronix.ru/forum/applications/core/interface/file/attachment.php?id=175739&amp;key=bff10a6cdfea57d324ff9540090e83fb" data-fileExt='tcl' data-fileid='175739' data-filekey='bff10a6cdfea57d324ff9540090e83fb'>design_rf_26_fina (1).tcl</a> 
<a class="ipsAttachLink" href="https://electronix.ru/forum/applications/core/interface/file/attachment.php?id=175740&amp;key=3e3dbf0d2b8cf60399257fff12633a6c" data-fileExt='pdf' data-fileid='175740' data-filekey='3e3dbf0d2b8cf60399257fff12633a6c'>design_rf_26_final (1).pdf</a></p>]]></description><guid isPermaLink="false">208563</guid><pubDate>Sun, 28 Sep 2025 14:49:40 +0000</pubDate></item><item><title>XA7Z020. &#x41A;&#x442;&#x43E; &#x442;&#x438;&#x441;&#x43A;&#x430;&#x43B; &#x442;&#x430;&#x43A;&#x43E;&#x433;&#x43E; &#x437;&#x432;&#x435;&#x440;&#x44F;? &#x412;&#x43F;&#x435;&#x447;&#x430;&#x442;&#x43B;&#x435;&#x43D;&#x438;&#x44F;?</title><link>https://electronix.ru/forum/topic/208062-xa7z020-kto-tiskal-takogo-zverya-vpechatleniya/</link><description><![CDATA[<p>
	На днях вытащил практически из мусорки (в конторе склад переполнился от всякого хлама, настала фаза <s>выбрасывания</s> оптимизации) отладочную плату: <a href="https://www.trenz-electronic.de/en/Carrierboard-for-a-TE0728-Automotive-Zynq-7020-SoC-Module/TEB0728-02?path=Trenz_Electronic/Modules_and_Module_Carriers/6x6/6x6_Carriers/TEB0728/REV01/Documents" rel="external nofollow">https://www.trenz-electronic.de/en/Carrierboard-for-a-TE0728-Automotive-Zynq-7020-SoC-Module/TEB0728-02?path=Trenz_Electronic/Modules_and_Module_Carriers/6x6/6x6_Carriers/TEB0728/REV01/Documents</a>
</p>

<p>
	с сидящим на ней модулем TE0728: <a href="https://www.amd.com/en/search/partner/embedded-partner-solutions.html#/6609" rel="external nofollow">https://www.amd.com/en/search/partner/embedded-partner-solutions.html#/6609</a>
</p>

<p>
	на котором стоит SoC = XA7Z020 (XA Zynq-7000 SoC: Dual-Core ARM Cortex-A9 up to 667MHz + Artix-7 FPGA). SoC также имеет другую периферию. Обычную: 2x UART, 2x CAN 2.0B, 2x I2C, 2x SPI, 4x 32b GPIO, 2x USB 2.0 (OTG), 2x Tri-mode Gigabit Ethernet, 2x SD/SDIO, AES, SHA 256b, SerDes, PCI Express Block, ... в общем - полный фарш. Даже 2 АЦП. RM с регистрами вроде как есть (не углублялся в него пока). Есть блоки логики (FPGA). Я в них - дуб. У ядер есть кеш (32KB + 512KB) + 256KB просто ОЗУ. Не считая внешнего чипа SDRAM на 512МБ.
</p>

<p>
	Про FPGA написано: 85K Logic Cells (~1.3M), Peak DSP Performance(Symmetric FIR) = 276 GMACs (не понимаю даже - много ли это? и куда(как) использовать?)
</p>

<p>
	Ещё вроде какие-то DSP-блоки имеются (только не понял - отдельные или они уже входят в FPGA?)
</p>

<p>
	Даташит на SoC: <a href="https://docs.amd.com/v/u/en-US/ds188-XA-Zynq-7000-Overview" rel="external nofollow">https://docs.amd.com/v/u/en-US/ds188-XA-Zynq-7000-Overview</a>
</p>

<p>
	 
</p>

<p>
	По моим текущим задачам это конечно - просто монстр! Даже не знаю - куда такой можно применить? Кто-нить с таким работал? Как впечатления? Что на нём можно делать? Особенно - если stand-alone (без линухов).
</p>

<p>
	И особенно интересует - куда можно применить встроенную FPGA? Для каких целей? ЦОС?
</p>
]]></description><guid isPermaLink="false">208062</guid><pubDate>Mon, 15 Sep 2025 11:59:44 +0000</pubDate></item><item><title>USB 3.x &#x43D;&#x430; UltraScale+</title><link>https://electronix.ru/forum/topic/207160-usb-3x-na-ultrascale/</link><description><![CDATA[<p>
	Доброго времени суток.
</p>

<p>
	Есть плата ZCU102. На ней есть пример реализации USB 3. Линии SuperSpeed реализованы на трансиверах из процессорной системы.
</p>

<p>
	Делаю плату на Artix UltraScale+. Вопрос в том, можно ли реализовать линииSuperSpeed трансиверах Artrix(gth). И делал ли такое кто-нибудь.
</p>
]]></description><guid isPermaLink="false">207160</guid><pubDate>Mon, 25 Aug 2025 11:06:32 +0000</pubDate></item><item><title>Ultrascale+, USB3.0 &#x43A;&#x442;&#x43E;-&#x442;&#x43E; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x43A;&#x430;&#x43B;?</title><link>https://electronix.ru/forum/topic/205823-ultrascale-usb30-kto-to-zapuskal/</link><description><![CDATA[<p>
	Всем доброго дня. Пытаюсь сделать дизайн на USB30, но что-то очень мало информации. Использую в основном документ ug1085-zynq-ultrascale-trm, раздел USB. Как я понял, там специализированные MIO у HPS, для USB20 - параллельная шина, используется внешняя физика. Для USB30 - две пары от гигабитных трансиверов:
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" href="https://electronix.ru/forum/uploads/monthly_2025_07/image.png.1a0e42b6d90d663ee8c1e335a180cc18.png" data-fileid="174638" data-fileext="png" rel=""><img class="ipsImage ipsImage_thumbnailed" data-fileid="174638" data-ratio="94.49" width="508" alt="image.thumb.png.ce199e73694550dcd9f162dc85b5528d.png" src="https://electronix.ru/forum/uploads/monthly_2025_07/image.thumb.png.ce199e73694550dcd9f162dc85b5528d.png" /></a>
</p>

<p>
	Вопрос №1 - как происходит определение возможности работы по USB30 - автоматически при подключении? Или это где-то явно указывается в регистрах? Если  я использую 3.0, то обязательно ли ставить внешний чип физики на 2.0 (ULPI), как это сделано в отладочных платах?
</p>

<p>
	Вопрос №2 - есть где-то более детальная информация по интерфейсу? Там в конце раздела куча регистров, а детального описания нет.
</p>
]]></description><guid isPermaLink="false">205823</guid><pubDate>Wed, 30 Jul 2025 09:01:04 +0000</pubDate></item><item><title>&#x412;&#x430;&#x440;&#x438;&#x430;&#x43D;&#x442;&#x44B; &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438; &#x43A;&#x43E;&#x43D;&#x444;&#x438;&#x433;&#x443;&#x440;&#x430;&#x446;&#x438;&#x438; &#x432; &#x41F;&#x41B;&#x418;&#x421;</title><link>https://electronix.ru/forum/topic/205577-varianty-zagruzki-konfiguratsii-v-plis/</link><description><![CDATA[<p>
	День добрый. У меня есть уже существующая схема МК-ПЛИС-ПАМЯТЬ-ТЕРМОПАРА.
</p>

<p>
	Ни как не могу осуществить автоматическую загрузку конфигурации в плис. В схеме присутствует мк термопары, все компоненты висят на одном DCLK. Температуру мне можно измерять как до прошивки конфигурации, так и после - это не важно.
</p>

<p>
	Схему изменить не могу. Вот линии соединений. Прошу помощи в алгоритме загрузки конфигурации... Как сделать? (соответственно с JTAG прошивается без проблем...)
</p>

<table border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;width:570pt;" width="759">
	<colgroup>
		<col style="width:109pt;" width="145" />
		<col style="width:98pt;" width="130" />
		<col style="width:48pt;" width="64" />
		<col style="width:75pt;" width="100" />
		<col span="3" style="width:48pt;" width="64" />
		<col style="width:48pt;" width="64" />
		<col style="width:48pt;" width="64" />
	</colgroup>
	<tbody>
		<tr style="height:15pt;">
			<td height="60" rowspan="3" style="height:45pt;width:109pt;" width="145">
				<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="174477" href="https://electronix.ru/forum/uploads/monthly_2025_07/image.png.3448b9915fd8216787f50459c73e8255.png" rel=""><img alt="image.thumb.png.6034749b13ae3449c020deec2d0154f0.png" class="ipsImage ipsImage_thumbnailed" data-fileid="174477" data-ratio="34.22" width="640" src="https://electronix.ru/forum/uploads/monthly_2025_07/image.thumb.png.6034749b13ae3449c020deec2d0154f0.png" /></a>
			</td>
			<td colspan="2" style="border-left:none;width:146pt;" width="194">
				 
			</td>
			<td colspan="2" style="border-left:none;width:123pt;" width="164">
				 
			</td>
			<td colspan="2" style="border-left:none;width:96pt;" width="128">
				 
			</td>
			<td colspan="2" style="border-left:none;width:96pt;" width="128">
				 
			</td>
		</tr>
		<tr style="height:15pt;">
			<td colspan="2" height="20" style="height:15pt;border-left:none;">
				 
			</td>
			<td colspan="2" style="border-left:none;">
				 
			</td>
			<td colspan="2" style="border-left:none;">
				 
			</td>
			<td colspan="2" style="border-left:none;">
				 
			</td>
		</tr>
		<tr style="height:15pt;">
			<td height="20" style="height:15pt;border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
		</tr>
		<tr style="height:15pt;">
			<td height="20" style="height:15pt;border-top:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
		</tr>
		<tr style="height:15pt;">
			<td height="20" style="height:15pt;border-top:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
		</tr>
		<tr style="height:15pt;">
			<td height="20" style="height:15pt;border-top:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
		</tr>
		<tr style="height:15pt;">
			<td height="20" style="height:15pt;border-top:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
		</tr>
		<tr style="height:15pt;">
			<td height="20" style="height:15pt;border-top:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
		</tr>
		<tr style="height:15pt;">
			<td height="20" style="height:15pt;border-top:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
		</tr>
		<tr style="height:15pt;">
			<td height="20" style="height:15pt;border-top:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
		</tr>
		<tr style="height:15pt;">
			<td height="20" style="height:15pt;border-top:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
		</tr>
		<tr style="height:15pt;">
			<td height="20" style="height:15pt;border-top:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
		</tr>
		<tr style="height:15pt;">
			<td height="20" style="height:15pt;border-top:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
			<td style="border-top:none;border-left:none;">
				 
			</td>
		</tr>
	</tbody>
</table>

<p>
	 
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">205577</guid><pubDate>Tue, 22 Jul 2025 12:32:43 +0000</pubDate></item><item><title>Zync7k &#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x438;&#x435; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44C;&#x441;&#x43A;&#x438;&#x445; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x435; &#x432; &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43E;&#x447;&#x43D;&#x43E;&#x439; Flash</title><link>https://electronix.ru/forum/topic/199944-zync7k-hranenie-polzovatelskih-dannye-v-zagruzochnoy-flash/</link><description><![CDATA[<p>
	Всем добра.<br />
	Поиском на родине и по 10 страницам здесь ответа сразу не нашёл, посему просьба просветить и/или пнуть в нужном конкретном направлении:<br />
	имеется XC7Z020 загружающийся из S25FL128. Возможно ли иметь доступ к свободной части этой Flash SPI из PL или PS SoC?
</p>
]]></description><guid isPermaLink="false">199944</guid><pubDate>Thu, 06 Feb 2025 18:28:48 +0000</pubDate></item><item><title>ALINX AXU3EGB board</title><link>https://electronix.ru/forum/topic/198506-alinx-axu3egb-board/</link><description><![CDATA[<p>
	<span style="font-size:14px;">Доброго времени суток. кто нибудь встречался с такой платой ALINX AXU3EGB, как с ней работать, среды разработки и тд. в vivado этой платы нет (и мс <span style="background-color:rgb(255,255,255);color:rgb(23,28,45);">XCZU3EG-1SFVC784I соответственно тоже). буду благодарен за любую инфу</span></span>
</p>
]]></description><guid isPermaLink="false">198506</guid><pubDate>Wed, 01 Jan 2025 20:36:49 +0000</pubDate></item><item><title>YX4S020-484I &#x443; &#x43A;&#x43E;&#x433;&#x43E; &#x435;&#x441;&#x442;&#x44C; &#x43E;&#x43F;&#x44B;&#x442;?</title><link>https://electronix.ru/forum/topic/204323-yx4s020-484i-u-kogo-est-opyt/</link><description><![CDATA[<p>
	Всем добра.
</p>

<p>
	С таким камушком кто работал?
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="173916" href="https://electronix.ru/forum/uploads/monthly_2025_06/image.png.e846c42360b6ec7498147fd85137007b.png" rel=""><img alt="image.thumb.png.bcc51ae7d6e26b56a19326653d4cae5b.png" class="ipsImage ipsImage_thumbnailed" data-fileid="173916" data-ratio="90.91" width="528" src="https://electronix.ru/forum/uploads/monthly_2025_06/image.thumb.png.bcc51ae7d6e26b56a19326653d4cae5b.png" /></a>
</p>
]]></description><guid isPermaLink="false">204323</guid><pubDate>Mon, 09 Jun 2025 19:22:19 +0000</pubDate></item><item><title>PCIe &#x43E;&#x442; &#x43A;&#x441;&#x430;&#x439;&#x43B;&#x438;&#x43D;&#x43A;&#x441;, &#x440;&#x435;&#x436;&#x438;&#x43C; &#x445;&#x43E;&#x441;&#x442;&#x430;</title><link>https://electronix.ru/forum/topic/184086-pcie-ot-ksaylinks-rezhim-hosta/</link><description><![CDATA[<p>
	Всем доброго дня.
</p>

<p>
	Надо стало реализовать хост для PCIe X1 на ксайлинксе. Читаю-читаю, до сих пор не сложилось понимание, что должен сделать хост с PCIe эндпоинтом? Где-то пишут что только инициализация физики - <span dir="ltr">Detection, Polling, Configuration. Где-то пишут что нужен enumeration. Опять же что входит в enumeration? Четкого ответа не нашел. Давно уже работал с PCI, там есть стандартное пространство регистров конфигурации, из них можно прочитать что в устройстве есть (регистры, память, и сколько их), назначить адреса и писать-читать по этим адресам.  </span>
</p>

<p>
	В PCIe есть что-то такое же? И что должен хост сделать с эндпоинтом, не имея драйвера конкретного устройства, чтобы далее передать работу драйверу для инициализации непосредственно эндпоинта? Ну например, воткнул я неизвестную плату PCIe в комп, операционка опознала его (понимая, что для этого устройства нет драйвера) и сделала что? Назначила (как?) адреса? Прочитала какие размеры и виды IO (памяти,регистров - по аналогии с PCI) поддерживает эндпоинт, прочитала ID (прочитала откуда?). В описании на PCIe от ксалинкс у IP куча интерфейсов:
</p>

<p>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="164366" data-ratio="85.17" width="418" alt="image.png.cec88c015df9e40c4cba86e8388be7d6.png" src="https://electronix.ru/forum/uploads/monthly_2024_05/image.png.cec88c015df9e40c4cba86e8388be7d6.png" />
</p>

<p>
	Как понять что я хочу? <span class="ipsEmoji">🙂</span> Т.е. как понять что из этого надо эндпоинту?
</p>

<p>
	В общем какая-то каша пока в голове, перемешиваю <span class="ipsEmoji">🙂</span> . Подскажите пожалуйста что можно почитать доступное (от общего к частному). Есть конечно спецификация, но там, как мне кажется, слишком много того, что не нужно, а чего-то я подозреваю и нет (в частности, того что делает операционка при обнаружении устройства на шине). Но все равно, читаю пока, вникаю...
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">184086</guid><pubDate>Tue, 07 May 2024 21:11:11 +0000</pubDate></item><item><title>Vivado Processor System Reset</title><link>https://electronix.ru/forum/topic/202857-vivado-processor-system-reset/</link><description><![CDATA[<p>
	Добрый день. Не до конца понимаю задумки авторов xilinx по синхронизации сигнала locked в модуле Processor System Reset. Я так понимаю, что locked асихронный сигнал относительно входных и выходных клоков mmcm, то почему его не синхровали как входные сбросы aux_reset и ext_reset? Картинку прилагаю.
</p>

<p><a href="https://electronix.ru/forum/uploads/monthly_2025_04/Screenshotfrom2025-04-2316-59-58.png.455e2f6774549531d8715f54c43bb67b.png" class="ipsAttachLink ipsAttachLink_image" ><img data-fileid="173062" src="https://electronix.ru/forum/uploads/monthly_2025_04/Screenshotfrom2025-04-2316-59-58.thumb.png.e000c0233db0a725951fa76350b26e3d.png" data-ratio="55.63" width="640" class="ipsImage ipsImage_thumbnailed" alt="Screenshot from 2025-04-23 16-59-58.png"></a></p>]]></description><guid isPermaLink="false">202857</guid><pubDate>Wed, 23 Apr 2025 14:08:34 +0000</pubDate></item><item><title>&#x41F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x430; &#x438;&#x43D;&#x438;&#x446;&#x438;&#x430;&#x43B;&#x438;&#x437;&#x430;&#x446;&#x438;&#x438; QSPI Flash &#x432; U-Boot Zynq 7030</title><link>https://electronix.ru/forum/topic/199843-problema-initsializatsii-qspi-flash-v-u-boot-zynq-7030/</link><description><![CDATA[<p>
	Доброго времени суток. Помогите, пожалуйста, разобраться с проблемой. Она связана с инициализацией qspi flash внутри U-boot. Сам Uboot прошит в эту же флешку и отлично запускается. Но переменные с этой же флешки не грузятся. С самой флешкой проблем нет, так как есть проект, который отлично с ней работает. Uboot от xilinx, Vivado,Vitis 2023.2
</p>

<blockquote class="ipsQuote" data-ipsquote="">
	<div class="ipsQuote_citation">
		Цитата
	</div>

	<div class="ipsQuote_contents">
		<pre>U-Boot 2024.01 (Feb 03 2025 - 16:51:52 +0300)

CPU:   Zynq 7z030
Silicon: v3.1
DRAM:  ECC disabled 512 MiB
Core:  20 devices, 14 uclasses, devicetree: board
Warning: Device tree includes old 'u-boot,dm-' tags: please fix by 2023.07!
Flash: 0 Bytes
NAND:  0 MiB
MMC:   mmc@e0100000: 0
Loading Environment from SPIFlash... zynq_qspi spi@e000d000: Invalid chip select 0:0 (err=-19)
*** Warning - spi_flash_probe_bus_cs() failed, using default environment

In:    serial@e0000000
Out:   serial@e0000000
Err:   serial@e0000000
Net:
ZYNQ GEM: e000b000, mdio bus e000b000, phyaddr 0, interface rgmii-id

Warning: ethernet@e000b000 (eth0) using random MAC address - 8e:0c:17:5e:56:dc
eth0: ethernet@e000b000
Hit any key to stop autoboot:  0
Zynq&gt; sf probe 0
zynq_qspi spi@e000d000: Invalid chip select 0:0 (err=-19)
Failed to initialize SPI flash at 0:0 (error -19)
Zynq&gt; sf probe 0 0
SF: Detected s25fl256s0 with page size 256 Bytes, erase size 256 KiB, total 32 MiB
Zynq&gt; setenv test 1
Zynq&gt; saveenv
Saving Environment to SPIFlash... Erasing SPI flash...Failed (-22)</pre>
	</div>
</blockquote>

<p>
	Делаю по этому гайду <a href="https://habr.com/ru/articles/565368/" rel="external nofollow">https://habr.com/ru/articles/565368/</a> . У меня плата с Zynq 7030.
</p>

<p>
	<a class="ipsAttachLink" data-fileext="dts" data-fileid="170713" href="https://electronix.ru/forum/applications/core/interface/file/attachment.php?id=170713&amp;key=f742bbc9322256f2fa2fc6ad850e8122" rel="">zynq7030.dts</a>
</p>
]]></description><guid isPermaLink="false">199843</guid><pubDate>Tue, 04 Feb 2025 08:39:36 +0000</pubDate></item><item><title>&#x41F;&#x440;&#x43E;&#x431;&#x43B;&#x435;&#x43C;&#x44B; &#x441; &#x43B;&#x438;&#x43D;&#x43A;&#x435;&#x440;&#x43E;&#x43C; &#x43D;&#x430; Vitis?</title><link>https://electronix.ru/forum/topic/201586-problemy-s-linkerom-na-vitis/</link><description><![CDATA[<p>
	Добрый день! Осваиваю ZynQ
</p>

<p>
	Имеется устройство ADALM-PLUTO (Analog Devices) с квадратурным трансивером AD9363 и SoC XC7Z010-1CLG225.
</p>

<p>
	Электрическая схема:
</p>

<p>
	<a href="https://wiki.analog.com/university/tools/pluto/hacking/hardware" rel="external nofollow">https://wiki.analog.com/university/tools/pluto/hacking/hardware</a>
</p>

<p>
	На плате имеется светодиод и кнопка. Задача – поморгать светодиодом (далее – считывать нажатие кнопки) на ОС Линукс на ядре Arm Cortex-A9. Пока без использования PL ZynQ.
</p>

<p>
	В среде Vivado 2024.2 создаю простейший дизайн, включающий в себя только ZynQ PS IP Core:
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="172216" href="https://electronix.ru/forum/uploads/monthly_2025_03/Screenshotfrom2025-03-1311-47-15.png.b5c23500acb9f94420ced2792a9fb07d.png" rel=""><img alt="Screenshotfrom2025-03-1311-47-15.thumb.png.d6b9a50b6eeae4fc74562ce32843ee8c.png" class="ipsImage ipsImage_thumbnailed" data-fileid="172216" data-ratio="27.66" width="640" src="https://electronix.ru/forum/uploads/monthly_2025_03/Screenshotfrom2025-03-1311-47-15.thumb.png.d6b9a50b6eeae4fc74562ce32843ee8c.png" /></a>
</p>

<p>
	Программируемая логика вообще не задействуется, выводы MIO жестко связаны с PS.
</p>

<p>
	Ограничения беру из образцового проекта ADI:
</p>

<p>
	<a href="https://github.com/analogdevicesinc/hdl/blob/main/projects/pluto/system_constr.xdc" rel="external nofollow">https://github.com/analogdevicesinc/hdl/blob/main/projects/pluto/system_constr.xdc</a>
</p>

<p>
	копирую пока только то, что касается выводов кнопки и светодиода согласно схеме, а также интерфейсов с QuadSPI и USB, подредактировав согласно неймингу в созданном проекте.
</p>

<p>
	В результате имплементация проходит без ошибок (с двумя критическими предупреждениями, которые, как написано, could be safely ignored).
</p>

<p>
	После этого генерируется файл .xsa для экспорта в проект Vitis.
</p>

<p>
	Далее включается среда разработки Vitis 2024.2 и вызывается функция Create Platform Component, где указывается этот файл .xsa со структурой PL и желаемая операционная система (linux).
</p>

<p>
	Настройка Pre-Built Image Dir - указываю папку, где содержатся fsbl, u-boot и т.д.
</p>

<p>
	Для этого качаю и компилирую проект Analog Devices <a href="https://github.com/analogdevicesinc/plutosdr-fw" rel="external nofollow">https://github.com/analogdevicesinc/plutosdr-fw</a>
</p>

<p>
	упомянутые файлы появляются в каталоге build.
</p>

<p>
	Build платформы проходит успешно.
</p>

<p>
	Затем в Vitis вызывается функция Create Embedded Application, где указывается созданная платформа, а также каталог с ОС.
</p>

<p>
	Операционная система находится в каталоге
</p>

<p>
	<strong>plutosdr-fw/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot</strong>
</p>

<p>
	Кроме того, доступно несколько готовых операционных систем из каталога установки Xilinx, в каталоге установки среды разработки - /tools/Xilinx/Vitis/2024.2/gnu). Из этого всего, кажется, подходит
</p>

<p>
	<strong>/tools/Xilinx/Vitis/2024.2/gnu/aarch32/lin/gcc-arm-linux-gnueabi/cortexa9t2hf-neon-xilinx-linux-gnueabi</strong>
</p>

<p>
	Простейший helloworld.c успешно компилируется.
</p>

<p>
	После этого вставляю код управления выводом GPIO процессорной подсистемы ZynQ, заимствованный из примера в каталоге Vitis (и сильно упрощенный):
</p>

<p>
	<strong>/tools/Xilinx/Vitis/2024.2/data/embeddedsw/XilinxProcessorIPLib/drivers/gpiops_v3_13/examples/xgpiops_polled_example.c</strong>
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted"><span class="com">#include</span><span class="pln"> </span><span class="str">&lt;stdio.h&gt;</span><span class="pln">
</span><span class="com">#include</span><span class="pln"> </span><span class="str">&lt;xgpiops.h&gt;</span><span class="pln">


</span><span class="kwd">static</span><span class="pln"> u32 </span><span class="typ">Output_Pin</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="lit">15</span><span class="pun">;</span><span class="pln"> </span><span class="com">/* LED button */</span><span class="pln">

</span><span class="typ">int</span><span class="pln"> main</span><span class="pun">()</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
    printf</span><span class="pun">(</span><span class="str">"Hello World\n"</span><span class="pun">);</span><span class="pln">

    </span><span class="typ">int</span><span class="pln"> </span><span class="typ">Status</span><span class="pun">;</span><span class="pln"> 
    </span><span class="typ">XGpioPs_Config</span><span class="pln"> </span><span class="pun">*</span><span class="typ">ConfigPtr</span><span class="pun">;</span><span class="pln">
    </span><span class="typ">XGpioPs</span><span class="pln"> gpio</span><span class="pun">;</span><span class="pln">

    </span><span class="typ">ConfigPtr</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">XGpioPs_LookupConfig</span><span class="pun">(</span><span class="pln">XPAR_XGPIOPS_0_DEVICE_ID</span><span class="pun">);</span><span class="pln">
	</span><span class="typ">Status</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">XGpioPs_CfgInitialize</span><span class="pun">(&amp;</span><span class="pln">gpio</span><span class="pun">,</span><span class="pln"> </span><span class="typ">ConfigPtr</span><span class="pun">,</span><span class="pln"> </span><span class="typ">ConfigPtr</span><span class="pun">-&gt;</span><span class="typ">BaseAddr</span><span class="pun">);</span><span class="pln">
	</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="typ">Status</span><span class="pln"> </span><span class="pun">!=</span><span class="pln"> XST_SUCCESS</span><span class="pun">)</span><span class="pln"> 
    </span><span class="pun">{</span><span class="pln">
		</span><span class="kwd">return</span><span class="pln"> XST_FAILURE</span><span class="pun">;</span><span class="pln">
	</span><span class="pun">}</span><span class="pln"> 

	</span><span class="typ">XGpioPs_SetDirectionPin</span><span class="pun">(&amp;</span><span class="pln">gpio</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Output_Pin</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">);</span><span class="pln">
	</span><span class="typ">XGpioPs_SetOutputEnablePin</span><span class="pun">(&amp;</span><span class="pln">gpio</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Output_Pin</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">);</span><span class="pln">

    </span><span class="typ">XGpioPs_WritePin</span><span class="pun">(&amp;</span><span class="pln">gpio</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Output_Pin</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0x1</span><span class="pun">);</span><span class="pln">

    </span><span class="kwd">return</span><span class="pln"> XST_SUCCESS</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span></pre>

<p>
	Папку с заголовком для XGpioPS подключаю вручную в UserConfig.cmake в раздел Include Paths:
</p>

<p>
	<strong>/tools/Xilinx/Vitis/2024.2/data/embeddedsw/XilinxProcessorIPLib/drivers/gpiops_v3_13/src</strong>
</p>

<p>
	После этого компилятор не находит еще кое-каких файлов (которые указаны уже в include в xgpiops), что решается включением в UserConfig.cmake еще двух каталогов
</p>

<p>
	<strong>plutosdr-fw/build/sdk/system_top/ps7_cortexa9_0/standalone_domain/bsp/ps7_cortexa9_0/include<br />
	plutosdr-fw/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include</strong>
</p>

<p>
	Затем в процессе сборки возникает ошибка линкера:
</p>

<blockquote class="ipsQuote" data-ipsquote="">
	<div class="ipsQuote_citation">
		Quote
	</div>

	<div class="ipsQuote_contents">
		<p>
			 
		</p>

		<p>
			/tools/Xilinx/Vitis/2024.2/gnu/aarch32/lin/gcc-arm-linux-gnueabi/x86_64-petalinux-linux/usr/bin/arm-xilinx-linux-gnueabi/arm-xilinx-linux-gnueabi-ld.real: CMakeFiles/neon_app.elf.dir/src/helloworld.c.obj: in function `main':
		</p>

		<p>
			/home/dima/projects/vitis/zynq7_blink_led/neon_app/src/helloworld.c:18:(.text+0x20): undefined reference to `XGpioPs_LookupConfig'
		</p>

		<p>
			 
		</p>
	</div>
</blockquote>

<p>
	При этом линкер - совсем не тот, который должен быть.
</p>

<p>
	Откуда-то взялся <span style="color:#ffffff;"><strong><span style="background-color:#000000;">x86_64-petalinux-linux</span></strong></span>
</p>

<p>
	при этом в папке, которую указал в качестве sysroot:
</p>

<p>
	<strong>/tools/Xilinx/Vitis/2024.2/gnu/aarch32/lin/gcc-arm-linux-gnueabi/cortexa9t2hf-neon-xilinx-linux-gnueabi/usr/bin/</strong>
</p>

<p>
	никакого компилятора и линкера, компилятор используется из папки чуть выше:
</p>

<p>
	<strong>/tools/Xilinx/Vitis/2024.2/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin/arm-linux-gnueabihf-gcc</strong>
</p>

<p>
	и там же есть линкер, но он почему-то не используется.
</p>

<p>
	При этом в файле самго проекта -
</p>

<p>
	<strong>/home/dima/projects/vitis/zynq7_blink_led/neon_app/build/CMakeCache.txt</strong>
</p>

<p>
	линкер указан правильно, там вот такая строка:
</p>

<blockquote class="ipsQuote" data-ipsquote="">
	<div class="ipsQuote_citation">
		Quote
	</div>

	<div class="ipsQuote_contents">
		<p>
			 
		</p>

		<p>
			//Path to a program.
		</p>

		<p>
			CMAKE_LINKER:FILEPATH=/tools/Xilinx/Vitis/2024.2/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin/arm-linux-gnueabihf-ld
		</p>

		<p>
			 
		</p>
	</div>
</blockquote>

<p>
	Далее, в попытках обойти этот undefined reference, добавляю в UserConfig.cmake поочередно еще несколько файлов исходников (по умолчанию там только helloworld.c), на которых спотыкается билд. В итоге выглядит вот так:
</p>

<blockquote class="ipsQuote" data-ipsquote="">
	<div class="ipsQuote_citation">
		Quote
	</div>

	<div class="ipsQuote_contents">
		<p>
			set(USER_COMPILE_SOURCES<br />
			"src/helloworld.c"<br />
			"/tools/Xilinx/Vitis/2024.2/data/embeddedsw/XilinxProcessorIPLib/drivers/gpiops_v3_13/src/xgpiops.c"<br />
			"/tools/Xilinx/Vitis/2024.2/data/embeddedsw/lib/bsp/standalone_v9_2/src/common/xil_assert.c"<br />
			"/tools/Xilinx/Vitis/2024.2/data/embeddedsw/lib/bsp/standalone_v9_2/src/common/xplatform_info.c"<br />
			)
		</p>
	</div>
</blockquote>

<p>
	после чего снова появляется 
</p>

<blockquote class="ipsQuote" data-ipsquote="">
	<div class="ipsQuote_citation">
		Quote
	</div>

	<div class="ipsQuote_contents">
		<div style="background-color:#21222b;color:#d4d4d4;font-size:14px;">
			<div>
				<span style="color:#d4d4d4;">/tools/Xilinx/Vitis/2024.2/gnu/aarch32/lin/gcc-arm-linux-gnueabi/x86_64-petalinux-linux/usr/bin/arm-xilinx-linux-gnueabi/arm-xilinx-linux-gnueabi-ld.real: CMakeFiles/neon_app.elf.dir/src/helloworld.c.obj: in function `main':</span>
			</div>

			<div>
				<span style="color:#d4d4d4;">/home/dima/projects/vitis/zynq7_blink_led/neon_app/src/helloworld.c:16:(.text+0x20): undefined reference to `XGpioPs_LookupConfig'</span>
			</div>
		</div>
	</div>
</blockquote>

<p>
	Круг замкнулся. Добавлять больше нечего, все и так уже добавлено.
</p>

<p>
	В файле лога 
</p>

<p>
	<strong>/home/dima/projects/vitis/zynq7_blink_led/neon_app/build/CmakeFiles/CmakeOutput.log</strong>
</p>

<p>
	есть такие строки:
</p>

<blockquote class="ipsQuote" data-ipsquote="">
	<div class="ipsQuote_citation">
		Quote
	</div>

	<div class="ipsQuote_contents">
		<p>
			<font size="2" style="font-size:10pt;"><i>Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_a9e40/fast &amp;&amp; /usr/bin/gmake -f CMakeFiles/cmTC_a9e40.dir/build.make CMakeFiles/cmTC_a9e40.dir/build</i></font>
		</p>

		<p>
			<font size="2" style="font-size:10pt;"><i>gmake[1]: Entering directory '/home/dima/projects/vitis/zynq7_blink_led/neon_app/build/CMakeFiles/CMakeTmp'</i></font>
		</p>

		<p>
			<font size="2" style="font-size:10pt;"><i>Building C object CMakeFiles/cmTC_a9e40.dir/CMakeCCompilerABI.c.obj</i></font>
		</p>

		<p>
			<font size="2" style="font-size:10pt;"><i>/tools/Xilinx/Vitis/2024.2/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin/arm-linux-gnueabihf-gcc -v -o CMakeFiles/cmTC_a9e40.dir/CMakeCCompilerABI.c.obj -c /tools/Xilinx/Vitis/2024.2/tps/lnx64/cmake-3.24.2/share/cmake-3.24/Modules/CMakeCCompilerABI.c</i></font>
		</p>

		<p>
			<font color="#c9211e"><font size="2" style="font-size:10pt;"><i>Using built-in specs.</i></font></font>
		</p>

		<p>
			<font color="#c9211e"><font size="2" style="font-size:10pt;"><i>COLLECT_GCC=/tools/Xilinx/Vitis/2024.2/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin/../x86_64-petalinux-linux/usr/bin/arm-xilinx-linux-gnueabi/arm-xilinx-linux-gnueabi-gcc.real</i></font></font>
		</p>
	</div>
</blockquote>

<p>
	Вот тут впервые, если я првильно понял, на основании каких-то built-in specs, появляется x86_64-linux, и далее везде.
</p>

<p>
	ВОПРОС: Где эти настройки по умолчанию (мне не удалось их найти), где я могу принудительно указать линкер?  Или то я делаю не так?
</p>

<p>
	Спасибо.
</p>
]]></description><guid isPermaLink="false">201586</guid><pubDate>Mon, 17 Mar 2025 11:07:58 +0000</pubDate></item></channel></rss>
