Denis Nktn 0 May 13 Posted May 13 · Report post Доброго времени суток, занимаюсь курсовой работой по предмету "Электроника и схемотехника", в этом деле ещё "зеленый", поэтому прошу прощения, если вопрос покажется простым В работе подразумевается вычисления значений sin / cos посредством ядра Cordic и с последующим выводом на монитор посредством hdmi Столкнулся со следующей проблемой - после написания автомата передачи слова "sin" (см. /src/svo_hdmi.v, закомментирован), и попытке синтезировать вылетает следующая ошибка: ERROR (PA2122) : Not support 'mem_mem_0_0_s'(DPB) WRITE_MODE0 = 2'b10, please change write mode WRITE_MODE0 = 2'b00 or 2'b01. При этом нигде в проекте не используются ядра памяти (DPB), или я их не нашел Сама база проекта взята с официального GitHub репозитория - https://github.com/sipeed/TangNano-9K-example/tree/main/hdmi, EDA - Gowin EDA Архив с проектом прилагается Что делать в моей ситуации? Как можно исправить ошибку? Заранее спасибо за ответы! hdmi.rar Quote Share this post Link to post Share on other sites More sharing options...
r_dot 43 May 13 Posted May 13 · Report post 52 минуты назад, Denis Nktn сказал: вопрос покажется простым Вопрос показался недоформулированным. HDMI интерфейс не предназначен для передачи текста. У вас должна быть ещё какая-то оболочка, преобразующая текст в изображение, которое уже можно передать по HDMI на устройство отображения. А в этом случае для "передачи текста" уже не имеет никакого значения, HDMI там, Display Port или вообще VGA. Вы вероятно всё-таки не напрямую с HDMI имеете дело, а с какой-то программой. Разбираться в этой ерунде по вашему приложенному архиву - жалко времени. Напишите словами. Quote Share this post Link to post Share on other sites More sharing options...
Denis Nktn 0 May 13 Posted May 13 · Report post Если я правильно понял суть изначального проекта, вывод текста возможен посредством svo_term.v, который как раз таки и преобразует текст в необходимый для вывода через HDMI формат Иных программ, кроме как Gowin EDA, не используется Quote Share this post Link to post Share on other sites More sharing options...
Zversky 23 May 13 Posted May 13 · Report post 3 часа назад, Denis Nktn сказал: Архив с проектом прилагается Первый раз такое встречаю Поясните Quote Share this post Link to post Share on other sites More sharing options...
Denis Nktn 0 May 13 Posted May 13 · Report post 48 минут назад, Zversky сказал: Первый раз такое встречаю Поясните Хм, странно, вроде бы пароля я не делал, сейчас попробую переотправить проект 56 минут назад, Zversky сказал: Первый раз такое встречаю Поясните Как я понял, virustotal всегда запрашивает пароль от архива, даже если он не имеет пароля hdmi_2.rar Сам проект я смог без него на virustotal загрузить, просто оставив поле пустым Но на всякий случай прикладываю архив без пароля (точнее, где я проверил, что пароля нет) Quote Share this post Link to post Share on other sites More sharing options...
Zversky 23 May 14 Posted May 14 · Report post 10 часов назад, Denis Nktn сказал: virustotal всегда запрашивает пароль от архива, даже если он не имеет пароля Нет, ваш первый, попавшийся мне из десятков архивов, такой 10 часов назад, Denis Nktn сказал: Но на всякий случай прикладываю архив без пароля Quote Share this post Link to post Share on other sites More sharing options...
Denis Nktn 0 May 14 Posted May 14 · Report post 2 минуты назад, Zversky сказал: Нет, ваш первый, попавшийся мне из десятков архивов, такой Хм, странно однако, даже не могу предположить, что именно тригерит блокировку загрузки / запрос пароля на virustotal Единственное, что могу сказать - у меня все проверки на virustotal проходят успешно, база проекта взята с офф. GitHub'а, мои добавления "смуты" внести никак не могли, т.к. по сути менялся один файл Quote Share this post Link to post Share on other sites More sharing options...
_4afc_ 50 May 14 Posted May 14 · Report post 2 hours ago, Denis Nktn said: мои добавления "смуты" внести никак не могли, т.к. по сути менялся один файл выполните как минимум в своём проекте: cd ".\impl\pnr\" del "*.pr" del "*.p" del "*.db" del /a:r "*.bin" REM del /a:r "*.binx" cd "..\gwsynthesis" del "*.vg" pause в принципе и *.fs по вашему вопросу нам не интересен. и киньте проект в zip. Не бывает текстов, что в архиве весят 600кБ, у Вас там что "Война и Мир"? Quote Share this post Link to post Share on other sites More sharing options...
Zversky 23 May 14 Posted May 14 · Report post 4 часа назад, Denis Nktn сказал: менялся один файл или так попробуйте 19 часов назад, Denis Nktn сказал: ERROR (PA2122) : Not support 'mem_mem_0_0_s'(DPB) WRITE_MODE0 = 2'b10, please change write mode WRITE_MODE0 = 2'b00 or 2'b01. Вы ИИ пользовать пробовали?: ------------------------------------ Эта ошибка возникает на этапе Place & Route в Gowin EDA (например, при сборке проектов под Tang Nano 9K). Она означает, что синтезатор автоматически сгенерировал блок памяти Dual Port Block RAM (DPB) в режиме Read-before-Write (WRITE_MODE = 2'b10), который аппаратно не поддерживается используемой серией ПЛИС Gowin. [1, 2, 3, 4, 5] Ниже приведены способы быстрого решения этой проблемы. Вариант 1. Исправление кода (для проектов типа Picotiny / HDMI / SVO) Чаще всего эта ошибка возникает из-за неопределенного поведения в логике чтения/записи, когда в коде присваивается значение 'bx (X-состояние). [6] Откройте файл, в котором описывается или используется видеопамять (например, svo_term.v или svo_hdmi.v). Найдите строку, где порту чтения присваивается неопределенное значение при записи: mem_portA_rdata <= 'bx; Закомментируйте эту строку или замените её на явный ноль: // mem_portA_rdata <= 'bx; // Уберите или закомментируйте Это заставит синтезатор выбрать поддерживаемый режим WRITE_MODE0 = 2'b00 (Normal Mode). [3, 6, 7] Вариант 2. Явное изменение режима записи в коде (Inference) [5] Если вы описываете память вручную (RAM Inference) и используете раздельную маску байт (byte-enabled), синтезатор Gowin v1.9.9+ может ошибочно выбирать режим 2'b10. [2] Измените логику синхронного чтения так, чтобы чтение происходило строго после или независимо от записи (перейдите на режим Normal или Write-Through). Убедитесь, что данные считываются в регистр по фронту тактовой частоты отдельно от условия записи if (we). [5, 8] Вариант 3. Использование IP Core Generator (Самый надежный способ) Вместо автоматического вывода памяти (Inference) через массивы Verilog/VHDL, сгенерируйте блок памяти через стандартные инструменты Gowin: В Gowin IDE откройте IP Core Generator. Перейдите в раздел Memory -> Block Memory -> Dual Port RAM (DPB). В настройках конфигурации явно укажите Write Mode: Normal (00) или Write-Through (01). Замените массив в вашем коде на сгенерированный IP-модуль. [5, 8] Если вы собираете конкретный готовый проект, напишите его название или прикрепите фрагмент кода, где объявляется память mem_mem, и я помогу вам точно изменить логику под требования Gowin EDA. [1] https://github.com [2] https://www.reddit.com [3] https://electronix.ru [4] https://stardot.org.uk [5] https://github.com [6] https://github.com [7] https://electronix.ru [8] https://support.huawei.com Quote Share this post Link to post Share on other sites More sharing options...
Denis Nktn 0 May 14 Posted May 14 · Report post 25 минут назад, Zversky сказал: Вы ИИ пользовать пробовали?: Да, пробовал, и ничего из предложенного вами она мне не предложила (даже сгенерировать ядро DPB не порекомендовала) 26 минут назад, Zversky сказал: Вариант 1. Исправление кода (для проектов типа Picotiny / HDMI / SVO) Чаще всего эта ошибка возникает из-за неопределенного поведения в логике чтения/записи, когда в коде присваивается значение 'bx (X-состояние). [6] Откройте файл, в котором описывается или используется видеопамять (например, svo_term.v или svo_hdmi.v). Найдите строку, где порту чтения присваивается неопределенное значение при записи: mem_portA_rdata <= 'bx; Закомментируйте эту строку или замените её на явный ноль: // mem_portA_rdata <= 'bx; // Уберите или закомментируйте Это заставит синтезатор выбрать поддерживаемый режим WRITE_MODE0 = 2'b00 (Normal Mode). [3, 6, 7] Совет про комментирование строки "mem_portA_rdata <= 'bx" помог синтезировать проект (ошибка ушла), но проверить на практике возможности пока нет, как проверю - дам знать Прикладываю на всякий случай уменьшенный zip-архив (сделал clean по совету Zversky и удалил .vg файл) hdmi_4.rar Quote Share this post Link to post Share on other sites More sharing options...
Zversky 23 May 14 Posted May 14 · Report post 1 час назад, Denis Nktn сказал: проверить на практике до проверки на практике нужно проверить моделированием. Вы, например, ваш ФАПЧ проверяли на работоспособность? Quote Share this post Link to post Share on other sites More sharing options...
Denis Nktn 0 May 14 Posted May 14 · Report post 7 часов назад, Zversky сказал: до проверки на практике нужно проверить моделированием. Вы, например, ваш ФАПЧ проверяли на работоспособность? Прошу простить за поздний ответ Вообще тестовый вывод работает, т.е. все модули, включая pll, функционируют нормально В крайнем случае проект я смогу проверить в среду, но постараюсь пораньше добраться до рабочего места 9 часов назад, Zversky сказал: Вы ИИ пользовать пробовали?: Можете сказать, какую модель ИИ использовали? Quote Share this post Link to post Share on other sites More sharing options...
Zversky 23 May 15 Posted May 15 · Report post 8 часов назад, Denis Nktn сказал: Прошу простить за поздний ответ Не имейте привычки просить прощения за то, в чём нет никакой вашей вины. Этим извинением (если только оно - не placeholder) вы ставите себя ниже меня, а это ни в коем случае нельзя делать чисто психологически. Мы с вами равноправны. Да и ЧСД держите высоко: по жизни очень пригождается. Это было лирическое отступление ) 8 часов назад, Denis Nktn сказал: Вообще тестовый вывод работает, т.е. все модули, включая pll, функционируют нормально Покажите. Смоделированные ВД есть? 8 часов назад, Denis Nktn сказал: но постараюсь пораньше добраться до рабочего места Не спешите. Кто понял жизнь, тот не спешит (с) )) 8 часов назад, Denis Nktn сказал: Можете сказать, какую модель ИИ использовали? ПС. Хотите, пишите в ЛС Quote Share this post Link to post Share on other sites More sharing options...
Denis Nktn 0 May 15 Posted May 15 · Report post 20 минут назад, Zversky сказал: Покажите. Смоделированные ВД есть? Смоделированных данных у меня пока нет, тк с конкретно моделированием verilog-модулей я пока не сталкивался (если не считать симуляцию через icarus verilog, но через неё прогнать проект не получится) Как можно моделирование провести? Я слышал о ModelSim, оно подойдет или нужные иные утилиты? 25 минут назад, Zversky сказал: Не имейте привычки просить прощения за то, в чём нет никакой вашей вины. Этим извинением (если только оно - не placeholder) вы ставите себя ниже меня, а это ни в коем случае нельзя делать чисто психологически. Мы с вами равноправны. Да и ЧСД держите высоко: по жизни очень пригождается. Это было лирическое отступление Понял, обязательно учту 🙂 Quote Share this post Link to post Share on other sites More sharing options...
Zversky 23 May 15 Posted May 15 · Report post 1 час назад, Denis Nktn сказал: Как можно моделирование провести? Я слышал о ModelSim, оно подойдет или нужные иные утилиты? Спросите ИИ ) Quote Share this post Link to post Share on other sites More sharing options...