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

Gowin IDE 1.9.9.03 vs 1.9.8.11 непонятное поведение... Проект в 1.9.9 не работает

 

Quote

Гуру, а никто не сталкивался с проблемами сборки в версии 1.9.9.03 ?

Есть example от Sipeed - не могу его собрать в свежей версии(вернее он собирается, но не работает). При этом в версии 1.9.8.11 прекрасно и собирается и работает.
Уже пробовал и файл с таймингами переделать добавив derived_clock и переделав PLLные выходы с create_clock на create_generated_clock

При этом в свойствах проекта появилась опция Global->Constraints->Frequency(MHz) которая для моей FPGA 100MHz в дефолте, но на плате 27MHz. Попытки установить ее в Custom-27 в Windows версии обречены на провал - устанавливается после сохранения в 0.001, а в Linux версии хоть и устанавливается, но так же нерабочий битстрим собирает.

ПРИ ЭТОМ.
Если сперва залить битстрим из 1.9.8.11, а поверх него из 1.9.9.03 то всё работает...

Это дубль моего вопроса в общей ветке ниже подробности:

Исходные данные:
Проект Example из GitHub Sipeed

IDE1: Gowin 1.9.8.11 Education Windows
IDE2: Gowin 1.9.9.03 Education Windows

KIT: Tang Primer 20k Dock + OV5640


Результаты:

Шаг 1. Открываем проект в IDE2, собираем, прошиваем

Spoiler

scr1.thumb.jpg.4a599baf377d895f607e94f60fb5ea5f.jpg


Шаг2.  Открываем проект в IDE1, собираем, прошиваем

Spoiler

scr2.thumb.jpg.eaf2ce811753f82d288d06d978283a0d.jpg

 

Шаг 3. Повторяем Шаг 1.

Spoiler

scr3.thumb.jpg.9ac87eecb7fe47368d778fb1b182adc8.jpg

 

Шаг4. ОТКЛЮЧАЕМ KIT от питания, подключаем и повторяем Шаг 1.

Spoiler

scr4.thumb.jpg.993637a6866caa7c81517b847aaca823.jpg

 

При этом прошивка KIT-а проводилась Gowin Programmer из комплекта IDE2. Разницы в результатах между 1.9.9.03 Education и Full - нет

Spoiler

prg1.jpg.a6aedc212be8713272ea2ebb0207ecf7.jpg



Появившаяся опция Frequency в свойствах проекта не помогает и в Windows версии сбрасывается в 0.001 вместо 27.000

Spoiler

opt1.thumb.jpg.e54e4d1eab9d0612de01a6b4074dc3d8.jpg
opt2.thumb.jpg.1ba0e2b9f18f9dfffa364d46af1e7325.jpg
opt3.thumb.jpg.5e769c1e3c1eda0924470fe9cbe4c3ad.jpg

 

Изменено пользователем vvvictor
Подформатировал

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


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

39 минут назад, vvvictor сказал:

Education

Вопрос 1: вам это обязательно?

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


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

51 minutes ago, Zversky said:

Вопрос 1: вам это обязательно?

Я ниже писал, что разницы в результате между Full и Edu - нет.
Вообще я с Full вожусь...

Если вопрос обязательности касается именно примера - то это да - нужно....

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

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


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

И да, небольшое дополнение, до этого я "приаттачивал" к другим проектам HDMI для Tang Primer 20k Doc и Tang Nano 9k - вообще даже не заморачивался и не знал про эту опцию проекта с частотой и всё заработало...
Но там мною использовались только rPLL и DVI_TX  IP-блоки
А в этом проекте они использовали плюсом и DDR3, и I2C, и FrameBuffer

При этом, смею заметить, IP блоки у Sipeed сгенерированы еще в 1.9.8.07. Например в 1.9.9.03 у IP - DDR3 отсутствует один input, который применен в проекте. В документации его исключение упомянуто в истории...

 

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

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


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

38 минут назад, vvvictor сказал:

Если вопрос обязательности касается именно примера - то это да - нужно....

Я спросил не из праздного любопытства.
Работал всё время на Full версии, и уверен, что разница вполне может быть там, где и не подозреваете.
Знаю, что версия от версии имеют полное право генерировать битовый поток, не совпадающий с таковым (даже исключая заголовки), посему, если и коррелировать работу и отладку, то только на одинаковых версиях.
А ставить Edu ради того, чтобы проверить и помочь вам в настоящее время временных ресурсом не имею, ибо всё тратится на поиски следующей своей работы)

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


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

1 minute ago, Zversky said:

А ставить Edu ради того, чтобы проверить

Тут что-то чисто 1.9.8.11 vs 1.9.9.03, как мне кажется.
Еще раз повторюсь 1.9.9.03 - работаю с Full и сравнивал результат(работает/не работает) c Edu этой же версии - одинаково.

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


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

5 часов назад, vvvictor сказал:

прошиваем

покажите, как именно

5 часов назад, vvvictor сказал:

Шаг 1. Открываем проект в IDE2, собираем

5 часов назад, vvvictor сказал:

Шаг2.  Открываем проект в IDE1, собираем

Полученные битстримы покажите.

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


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

1 hour ago, Zversky said:

покажите, как именно

Spoiler

2024-06-28190718.thumb.png.d5f669876b41473f9b7710cb76864f76.png

Ну и в первом посте есть картинка с параметрами. А тут просто, даже не закрывая программатор, закрываю один IDE, открываю другой, пересобираю и измененный битстрим шью...

 

 

1 hour ago, Zversky said:

Полученные битстримы покажите.

Приложил  OV5640_HDMI1024_DDR3.7z

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


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

5 hours ago, Zversky said:

покажите, как именно

Полученные битстримы покажите.

Для "чистоты эксперимента" пересобрал в 1.9.8.11 Full top.7z
Работает

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


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

14 минут назад, vvvictor сказал:

Для "чистоты эксперимента" пересобрал в 1.9.8.11 Full top.7z
Работает

Сохраните логи сборки (выдачу синтезатора и плейсера) под разными версиями, заархивируйте и выложите здесь. Может быть их сравнение даст наводку на причину такого поведения.

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


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

7 minutes ago, makc said:

Сохраните логи сборки (выдачу синтезатора и плейсера) под разными версиями, заархивируйте и выложите здесь. Может быть их сравнение даст наводку на причину такого поведения.

OV5640_HDMI1024_DDR3.log.7z  Сохранил impl полностью.
Сборку вел через очистить и пересобрать. Битстримы внутри тоже есть.

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


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

Уже одну странность я вижу: в репорте top.rpt.html для 19811 VREF для сигналов шины DDR = VREF1_LOAD, а вот в варианте 19903 значение VREF = INTERNAL.

В документации сказано:

image.thumb.png.5e70b11ef533e910a224befcb59d3963.png

Неправильный референс - прямой путь к неработоспособности пинов проекта. Поэтому я вам предлагаю добиться, чтобы и у сборки под 19903 значение у VREF у пинов DDR было VREF1_LOAD.

Причём в проекте (в файле CST) явно задано значение VREF=INTERNAL. Но 19811 похоже на это забивает.

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


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

34 minutes ago, makc said:

Поэтому я вам предлагаю добиться, чтобы и у сборки под 19903 значение у VREF у пинов DDR было VREF1_LOAD.

Сделал, но пока никаких изменений...

 

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


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

9 минут назад, vvvictor сказал:

Сделал, но пока никаких изменений...

В репорте VREF изменился?

Ещё меня несколько смущают предупреждения синтезатора:

WARN  (CK3000) : Can't calculate clocks' relationship between: "DDR3_Memory_Interface_Top_inst/gw3_top/i4/fclkdiv/CLKOUT.default_gen_clk" and "cmos_8_16bit_m0/cmos_16bit_clk"
WARN  (CK3000) : Can't calculate clocks' relationship between: "cmos_8_16bit_m0/cmos_16bit_clk" and "DDR3_Memory_Interface_Top_inst/gw3_top/i4/fclkdiv/CLKOUT.default_gen_clk"
WARN  (CK3000) : Can't calculate clocks' relationship between: "DDR3_Memory_Interface_Top_inst/gw3_top/i4/fclkdiv/CLKOUT.default_gen_clk" and "u_clkdiv/CLKOUT.default_gen_clk"
WARN  (CK3000) : Can't calculate clocks' relationship between: "u_clkdiv/CLKOUT.default_gen_clk" and "DDR3_Memory_Interface_Top_inst/gw3_top/i4/fclkdiv/CLKOUT.default_gen_clk"
WARN  (CK3000) : Can't calculate clocks' relationship between: "DVI_TX_Top/Pout_vs_dn[4]" and "u_clkdiv/CLKOUT.default_gen_clk"

Обычно такие предупреждения не к добру...

И ещё обратите внимание на Timing Report, в 1.9.9.03 всё заметно печальнее, т.к. к нарушениям Recovery Paths Table добавляются ещё и Removal Paths Table в области интерфейса с DDR3. Причём нарушения в списке Recovery Paths Table для 1.9.9.03 местами на 2 нс хуже, чем для 1.9.8.11 и это наводит на мысль о больших проблемах. Если интерфейс DDR3 работает нестабильно, то и весь проект с большой вероятностью будет чудить.

PS: можно попробовать снизить рабочие частоты проекта и посмотреть, как это повлияет.

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


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

1 minute ago, makc said:

Обычно такие предупреждения не к добру...

Я обратил на них внимание, но забил по причине того, что они есть и в 1.9.8.11....

impl.7z последняя сборка с VREF1_LOAD

И кстати, кто то может мне объяснить такое поведение:
Если сборку от 1.9.9.03 залить поверх сборки 1.9.8.11, БЕЗ ОТКЛЮЧЕНИЯ ПИТАНИЯ - то проект работает.
Если же питание(сиречь USB кабель) отключить-включить - то сборка неработающая.
Предварительной очистки SRAM я не делаю - что такого там может неперезаписаться, что проект работает?

10 minutes ago, makc said:

Обычно такие предупреждения не к добру...

Там в *.sdc и не все сигналы похоже описаны...
Я уже пытался их переписать - пока безрезультатно, но до описания сигналов в ворненгах пока еще даже не добирался...

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


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

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

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

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

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

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

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

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

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

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