Муравей 0 4 июня Опубликовано 4 июня · Жалоба On 6/3/2024 at 11:25 AM, vladec said: Не совсем понятно, если вы грузите по SSPI, то откуда в еще не загруженной ПЛИС возьмется USER CODE? До этого работал с FPGA Lattice - там без проблем USER CODE вычитывался, предварительно зашитый по JTAG. Что-то Gowin перемудрил с внешней настройкой режима загрузки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Raven 9 6 июня Опубликовано 6 июня · Жалоба On 6/3/2024 at 11:51 AM, Муравей said: Через JTAG прошиваю USER CODE. А как это будет работать после включения питания? Или в любом другом случае, когда внутри FPGA еще ничего нет? Если в процедуре по-любому задействован JTAG, то что мешает и дальше через него грузить? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Муравей 0 6 июня Опубликовано 6 июня · Жалоба 1 hour ago, Raven said: А как это будет работать после включения питания? Или в любом другом случае, когда внутри FPGA еще ничего нет? Если в процедуре по-любому задействован JTAG, то что мешает и дальше через него грузить? JTAG может быть задействован при производстве модуля. В дальнейшем модуль общается с другим модулем через SSPI. Но это не важно, важно то, что по документации SSPI имеет команду для чтения USER_CODE, а по факту читает нули. При этом ID_CODE и прочее читает без проблем . Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
selax 19 6 июня Опубликовано 6 июня · Жалоба 58 минут назад, Муравей сказал: JTAG может быть задействован при производстве модуля. В дальнейшем модуль общается с другим модулем через SSPI. Но это не важно, важно то, что по документации SSPI имеет команду для чтения USER_CODE, а по факту читает нули. При этом ID_CODE и прочее читает без проблем . А что он должен читать? usercode - это же контрольная сумма, а если нет прошивки вполне может быть, что она нулю и равняется как раз. В 03.06.2024 в 11:51, Муравей сказал: Через JTAG прошиваю USER CODE Там только читать можно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Муравей 0 6 июня Опубликовано 6 июня · Жалоба 9 minutes ago, selax said: А что он должен читать? usercode - это же контрольная сумма, а если нет прошивки вполне может быть, что она нулю и равняется как раз. Там только читать можно. User code прекрасно задаётся из среды в настройках проекта и так же прекрасно зашивается вместе с конфигурацией. Вопрос снимаю, для идентификации модуля решил использовать фрагмент user flash. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
l-proger 0 13 июня Опубликовано 13 июня · Жалоба Всем привет. Есть одно интересное наблюдение по Gowin FPGA и вопрос. Наблюдение: Работаю сейчас с GW1N-UV4LQ100C6/I5 и пишу для него свой код программирования через JTAG для микроконтроллера. Написал программирование SRAM - всё сразу взлетело успешно, после чего принялся писать программирование внутреннего флеша. В процессе написания кода я несколько раз (видимо, не удачно) "прошил" своим кодом internal flash и ... DEVICE ID код у FPGA поменялся ) Как такое может быть - не понятно. Вместо 0x1100381b стал читаться 0x1100181b ! Конечно все подумают, что у меня просто мой код JTAG бажил, но я сделал дамп логическим анализатором и убедился, что реально отсылаются именно такие биты. Более того я попробовал использовать мой код прошивания SRAM, залил прошивку и получил в статусном регистре ошибку VerifyIDCODEFailed (bit 2), то есть FPGA внутри себя тоже верила новому ID CODE ) Я пробовал отключать питание, но это не помогало. Я даже перепаял на всякий случай FPGA, подключил, прочитал ID CODE - ни чего не поменялось, он всё ещё был не верным. И только одна вещь помогла - я дёрнул ногу RECONFIG_N (к земле) и о чудо - теперь снова всегда читается правильный ID и конфигурится SRAM без проблем. Вопрос: К сожалению я не заметил изначально какое значение у меня было в статус регистре до экспериментов с прошиванием internal flash, но сейчас при старте оно равно 0x18020 (MemoryErase, ReadyStatus, PORSuccess), то есть не установлен флаг GowinVLD (бит 12). Кроме того, что он связан как-то с internal flash я ни чего о нём не нашёл. Может тут кто-то знает больше об этом флаге? Может ли это быть из за "мусора" во флеше? Кто-то выводил FPGA из этого состояния? Судя по диаграммам в даташитах без этого флага я не могу писать флеш. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
StewartLittle 45 13 июня Опубликовано 13 июня · Жалоба В 13.06.2024 в 15:08, l-proger сказал: Вопрос: К сожалению я не заметил изначально какое значение у меня было в статус регистре до экспериментов с прошиванием internal flash, но сейчас при старте оно равно 0x18020 (MemoryErase, ReadyStatus, PORSuccess), то есть не установлен флаг GowinVLD (бит 12). Кроме того, что он связан как-то с internal flash я ни чего о нём не нашёл. Может тут кто-то знает больше об этом флаге? Может ли это быть из за "мусора" во флеше? Кто-то выводил FPGA из этого состояния? Судя по диаграммам в даташитах без этого флага я не могу писать флеш. Данный вопрос обсуждался в этой же теме несколькими страницами выше. Коллегам удавалось оживить ПЛИС с взведенным битом VDL Down. И еще в этой теме полезное обсуждение: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
l-proger 0 13 июня Опубликовано 13 июня · Жалоба 36 minutes ago, StewartLittle said: Данный вопрос обсуждался в этой же теме несколькими страницами выше. Коллегам удавалось оживить ПЛИС с взведенным битом VDL Down. И еще в этой теме полезное обсуждение: Да, я почитал и эту тему и указанную вами соседнюю перед тем, как писать вопрос ) Тема GOWIN JTAG программирование из МК полезная, но с алгоритмом прошивания я уже разобрался. Изучил svf файл, даташиты, дамп с логического анализатора успешного прошивания официальным программатором. Тут как раз вопросов уже (вроде как ) нет. По VLD - тут в теме видел несколько сообщений. Кто-то писал, что OpenFpgaLoader волшебным образом выводит FPGA из такого состояния. Я изучил его код и попробовал странные действия, которые там есть, но безуспешно. Потому и написал ещё раз - вдруг у кого-то информация обновилась по этой теме ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Liseev 0 21 июня Опубликовано 21 июня · Жалоба А может кто-то прояснить про ассортимент микросхем от GoWin, конкретно интересует GW1N-LV1QN48C6/I5. На сайте Гаммы она значится в наличии, IDE тоже знает про этот корпус. Но на сайте GoWin и в актуальной документации этой микросхемы как бы нет. Однако, если посмотреть "GW1N series of FPGA Products Package & Pinout User Guide" в раздел Revision History, можно увидеть следующее: Чего китайцев так штормит? Вообще можно закладывать подобное в изделие? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 210 21 июня Опубликовано 21 июня · Жалоба 41 минуту назад, Liseev сказал: Чего китайцев так штормит? Похоже они ищут себя и судя по таблице из DS теперь для GW1N-1 будет только один корпус: Вот на него и нужно ориентироваться, если хотите закладывать их в серию. А что было раньше - то было раньше. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Liseev 0 21 июня Опубликовано 21 июня · Жалоба 11 minutes ago, makc said: Похоже они ищут себя и судя по таблице из DS теперь для GW1N-1 будет только один корпус: да, но если глянуть в ту табличку, то и этот корпус тоже пропадал и появлялся... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
StewartLittle 45 21 июня Опубликовано 21 июня · Жалоба В 21.06.2024 в 15:06, Liseev сказал: да, но если глянуть в ту табличку, то и этот корпус тоже пропадал и появлялся... Gowin сотрудничал с тремя фабриками - HLMC, TSMC и SMIC. На HLMC выпускались как раз пластины с чипами GW1N-1/1S. На SMIC выпускаются пластины с чипами GW1NS/NSE. Все прочее выпускается на TSMC. С некоторого времени Gowin перестал использовать мощности HLMC, и объявил о снятии GW1N-1/1S с производства. Наличие на локальных складах - это остатки от старых заказов. Поддержка в новых версиях САПР сохраняется для обратной совместимости. Для новых разработок, вместо GW1N-1 я рекомендовал бы использовать GW1N-2 , тем более, что там есть варианты со встроенным LDO (UV). Можно было бы и GW1N-1P5, но там номенклатура типов корпусов победнее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Вадим Н. 1 22 июня Опубликовано 22 июня · Жалоба On 2/23/2024 at 2:55 AM, milt said: код, который вроде как однозначен, время от времени работает со сбоем удалось решить проблему? посмотрел код который вы ниже запостили. В топ-модуле есть два параллельных места где присваивается pcm_memrq // 1) стр 440 if (pcm_memrqexec) pcm_memrq <= MC_IDLE; // сброс запроса // ... // 2) параллельное место стр 446 case (pcm_state) // ... // вот к этому "кейсу" в конечном счёте относится проблемный код в строке 679 pcm_memrq <= MC_PBSPCRD; так можно? Что в RTL сгенерировано для этих конструкций? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Liseev 0 22 июня Опубликовано 22 июня · Жалоба 12 hours ago, StewartLittle said: Gowin сотрудничал с тремя фабриками - HLMC, TSMC и SMIC. О как, спасибо, прояснили Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться