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

35 minutes ago, makc said:

Как будто бы в его конце нет команд, аналогичных START+DESYNC у Xilinx.

Как всё однако интересно...

Чтобы долго не ждать сборки проекта сделал простейший проект со светодиодом - успешный старт из FLASH.

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


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

Частоту загрузки большой прошивки снижать пробовали?

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


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

8 minutes ago, makc said:

Частоту загрузки большой прошивки снижать пробовали?

Самая низкая стоит - 2.99M.

Пробовал варианты 2.99, 11.76, 25.

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


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

Кажется я нашёл проблемное место...

Если убрать из проекта доступ к FLASH, то проект успешно грузится из FLASH.

generate
if (FPGA_VENDOR == "PANGO") begin


GTP_CFGCLK		GTP_CFGCLK_inst (
				.CE_N                  (1'b0),
				.CLKIN                 (qspi_sck_)
				) ;


end	// if (FPGA_VENDOR == "PANGO")
else if (FPGA_VENDOR == "XILINX") begin


STARTUPE2		#(
				.PROG_USR              ("FALSE"),			// Activate program event security feature. Requires encrypted bitstreams.
				.SIM_CCLK_FREQ         (0.0)				// Set the Configuration Clock Frequency(ns) for simulation.
				)
				
				STARTUPE2_inst (
				.CFGCLK                (),					// 1-bit output: Configuration main clock output
				.CFGMCLK               (),					// 1-bit output: Configuration internal oscillator clock output
				.EOS                   (),					// 1-bit output: Active high output signal indicating the End Of Startup.
				.PREQ                  (),					// 1-bit output: PROGRAM request to fabric output
				.CLK                   (1'b0),				// 1-bit input: User start-up clock input
				.GSR                   (1'b0),				// 1-bit input: Global Set/Reset input (GSR cannot be used for the port name)
				.GTS                   (1'b0),				// 1-bit input: Global 3-state input (GTS cannot be used for the port name)
				.KEYCLEARB             (1'b0),				// 1-bit input: Clear AES Decrypter Key input from Battery-Backed RAM (BBRAM)
				.PACK                  (1'b1),				// 1-bit input: PROGRAM acknowledge input
				.USRCCLKO              (qspi_sck_),			// 1-bit input: User CCLK input
															// For Zynq-7000 devices, this input must be tied to GND
				.USRCCLKTS             (1'b0),				// 1-bit input: User CCLK 3-state enable input
															// For Zynq-7000 devices, this input must be tied to VCC
				.USRDONEO              (1'b1),				// 1-bit input: User DONE pin output control
				.USRDONETS             (1'b1)				// 1-bit input: User DONE 3-state enable output
				) ;


end	// if (FPGA_VENDOR == "XILINX")
endgenerate

Если добавить, то перестаёт грузиться из FLASH.

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


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

2 минуты назад, BSACPLD сказал:

Если добавить, то перестаёт грузиться из FLASH.

Хм, а как же тогда работать с конфигурационной флешкой после завершения конфигурации? 🤦‍♂️

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


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

47 minutes ago, makc said:

Хм, а как же тогда работать с конфигурационной флешкой после завершения конфигурации? 🤦‍♂️

Вот у меня тот же вопрос...

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


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

33 минуты назад, BSACPLD сказал:

Вот у меня тот же вопрос...

Попробуйте подать на вход CE_N GTP_CFGCLK не ноль, как у вас, а единицу.

Идея проста: вам нужно включить управление выходом тактирования только после успешного завершения конфигурирования. А вы, возможно, его гробите где-то на раннем этапе.

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


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

24 minutes ago, makc said:

Попробуйте подать на вход CE_N GTP_CFGCLK не ноль, как у вас, а единицу.

Идея проста: вам нужно включить управление выходом тактирования только после успешного завершения конфигурирования. А вы, возможно, его гробите где-то на раннем этапе.

Если CE_N это tristate, тогда ещё и внешний pull-up на qspi_sck придётся добавить.

В принципе не страшно - можно 0805 припаять между 6 и 8 выводом FLASH.

Благо она у меня в SOIC и сделать это совсем несложно.

UPD.

Если чисто 1 подать, то грузится.

А вот если от логики, то не грузится.

Пробовал ~locked от PLL подавать.

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


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

5 минут назад, BSACPLD сказал:

Если чисто 1 подать, то грузится.

А вот если от логики, то не грузится.

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

7 минут назад, BSACPLD сказал:

Если CE_N это tristate, тогда ещё и внешний pull-up на qspi_sck придётся добавить.

Я думаю, что это скорее сигнал управления внутренним мультиплексором тактового сигнала конфигурационной флешки. Поэтому слабая подтяжка не повредит, но и не поможет в вашем случае.

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


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

1 hour ago, makc said:

Я думаю, что это скорее сигнал управления внутренним мультиплексором тактового сигнала конфигурационной флешки. Поэтому слабая подтяжка не повредит, но и не поможет в вашем случае.

Походу нужен.

CFG_CLK.thumb.png.9a0260d7a9c2ac2d21a198f50feebc04.png

Для Xilinx данный резистор не требуется.

Получается, что Logos2 в версии без трансиверов хоть и pin-to-pin, но по схемотехнике немного отличается.

1 hour ago, makc said:

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

Привязал к триггеру, который изначально в 0 (все триггеры у PangoMicro по включению питания 0), проинвертировал сигнал, а условие установки триггера поставил на первое обращение к регистру адреса контроллера QSPI.

Заработало.

Костыли, костыли, костыли...

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


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

8 часов назад, BSACPLD сказал:

Привязал к триггеру, который изначально в 0 (все триггеры у PangoMicro по включению питания 0), проинвертировал сигнал, а условие установки триггера поставил на первое обращение к регистру адреса контроллера QSPI.

А управлять с триггера, инициализированного единицей в прошивке (начальное значение после конфигурации), не получается? Если так, то непонятно чем инициализация инвертора и его коммутации отличается от инициализации начального состояния триггера, это ведь по сути одна и та же SRAM. Или вы так не пробовали?

8 часов назад, BSACPLD сказал:

Костыли, костыли, костыли...

Это ещё не костыли. 😅

У вас инженерные образцы Logos2 в 324 корпусе? Если да, то у них ещё была проблема с ресетом (точнее, установкой в '1' по ресету) триггеров в ячейках ВВ: единица не появлялась, только ноль. Если запретить размещение триггера в ячейке, то всё работает штатно.

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


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

2 hours ago, makc said:

А управлять с триггера, инициализированного единицей в прошивке (начальное значение после конфигурации), не получается? Если так, то непонятно чем инициализация инвертора и его коммутации отличается от инициализации начального состояния триггера, это ведь по сути одна и та же SRAM. Или вы так не пробовали?

Не пробовал, т.к. в Synplify с начальной инициализацией всегда были приколы.

На мой взгляд с инвертором более предсказуемый вариант с точки зрения синтеза в Synplify.

2 hours ago, makc said:

У вас инженерные образцы Logos2 в 324 корпусе? Если да, то у них ещё была проблема с ресетом (точнее, установкой в '1' по ресету) триггеров в ячейках ВВ: единица не появлялась, только ноль. Если запретить размещение триггера в ячейке, то всё работает штатно.

324

Вроде уже серийные должны быть...

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


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

Только что, BSACPLD сказал:

Вроде уже серийные должны быть...

Серийное производство намечается только в конце этого года. На сколько мне известно.

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


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

Just now, makc said:

Серийное производство намечается только в конце этого года. На сколько мне известно.

Т.е. то что сейчас предлагают поставщики со складов, это опытные образцы?

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


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

1 минуту назад, BSACPLD сказал:

Не пробовал, т.к. в Synplify с начальной инициализацией всегда были приколы.

Не сталкивался, у меня ЕМНИП с этим всё было хорошо, если железо поддерживает такую возможность. 

2 минуты назад, BSACPLD сказал:

На мой взгляд с инвертором более предсказуемый вариант с точки зрения синтеза в Synplify.

Возможно, но по-моему это выглядит избыточно.

5 минут назад, BSACPLD сказал:

Т.е. то что сейчас предлагают поставщики со складов, это опытные образцы?

Затрудняюсь ответить. Я узнавал по 25-м кристаллам, а для больших по ёмкости ситуация может быть иная. В общем нужно узнавать у поставщиков.

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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