Миландр

Ключевым подразделением нашей компании
является Центр Проектирования интегральных микросхем
Текущее время: 2022-янв-28 12:25

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 323 сообщения ]  На страницу « 118 19 20 21 22
Автор Сообщение
СообщениеДобавлено: 2021-ноя-26 13:46 
Не в сети
Support
Аватара пользователя

Зарегистрирован: 2018-авг-10 23:14
Сообщения: 680
Организация: АО «ПКК Миландр»
Откуда: Зеленоград
Здравствуйте!

Закончили верифицировать BSDL на соответствие фактическим ячейкам BS на кристалле микросхемы ПЛИС, при этом протестировали тесты JTAG ProVision, которые покрывают работу как с регистром IDCODE, так и с регистром BSR (в частности, тестирование закороток методом "Interconnect" на соответствие правильности переключений ячеек IN и OUT отработало верно с максимальным количеством векторов в рамках всех GPIO).

Можно использовать при построении функциональных тестов, BSDL-файл во вложении к посту. Уже в следующей версии кристалла ПЛИС IDCODE будет отличен, однако, в рамках процедуры размещения всех файлов на страницах микросхем с официального сайта это будет учтено, здесь же файл публикуется, поскольку официальной страницы микросхемы на данный момент еще нет. Спасибо.


Вложения:
BSDL_FPGA_MILANDR_rev1.zip [3.2 КБ]
58 скачиваний

_________________
Отдел технической поддержки support@milandr.ru

Информационный портал отдела технической поддержки support.milandr.ru
Вернуться к началу
СообщениеДобавлено: 2022-янв-14 13:33 
Не в сети

Зарегистрирован: 2012-окт-26 20:29
Сообщения: 15
Пока как-то работает только "архивный" 64-битный MilandrIDE_Installer_x64 (20-06-05).exe.

В 32-битном MilandrIDE_Installer_x32 (20-06-05).exe не ставится (отсутствует?) opensta, процесс компиляции проекта соответственно останавливается где-то с ошибкой запуска sta.

В более новом 64-битном MilandrIDE_Installer_x64 (20-11-02).exe при запуске constraint_editor.exe какая-то проблема с выходами с 3-м состоянием (z), и на этом процесс останавливается по ошибке.

Например, если добавить в ваш HelloWorld.v ещё выход ledok с открытым коллектором с такими изменёнными или добавленными строками:
module helloworld(clk, led0, led1, ledok);
output wire led0, led1, ledok;

assign ledok = (led == 0) ? led : {1'bz};
то процесс компиляции проекта вылетает с такой ошибкой:
----
Запускаю C:/Program Files (x86)/Milandr_IDE/util/util2/constraint_editor.exe -z verilog -p C:/milandrprj/hellok/hellok/build/hellok.mfp -c C:/milandrprj/hellok/hellok/build/helloworld.pcf -m C:/Program Files (x86)/Milandr_IDE/model//PLISM3/data/PLISM3_device_8307.144-AH3.json

2022-01-14 11:55:25,329 ERROR [default] Failed to find master block for declaration of cell '_093_' (C:/milandrprj/hellok/hellok/build/synthesis.v:585)
----

При этом в строке 585 synthesis.v наблюдается ссылка на \$_TBUF_, для которого типа не может найтись какой-то мастер блок в вышеприведённой диагностике:
\$_TBUF_ _093_ (


Как попробовать более новый MilandrIDE_Installer_x64 (20-11-02).exe со схемой с выходами с 3-м состоянием?


Вернуться к началу
СообщениеДобавлено: 2022-янв-17 15:31 
Не в сети
Support
Аватара пользователя

Зарегистрирован: 2018-авг-10 23:14
Сообщения: 680
Организация: АО «ПКК Миландр»
Откуда: Зеленоград
Открыть обращение пользователя _ys_
_ys_ писал(а): *
Пока как-то работает только "архивный" 64-битный MilandrIDE_Installer_x64 (20-06-05).exe.

В 32-битном MilandrIDE_Installer_x32 (20-06-05).exe не ставится (отсутствует?) opensta, процесс компиляции проекта соответственно останавливается где-то с ошибкой запуска sta.

В более новом 64-битном MilandrIDE_Installer_x64 (20-11-02).exe при запуске constraint_editor.exe какая-то проблема с выходами с 3-м состоянием (z), и на этом процесс останавливается по ошибке.

Например, если добавить в ваш HelloWorld.v ещё выход ledok с открытым коллектором с такими изменёнными или добавленными строками:
module helloworld(clk, led0, led1, ledok);
output wire led0, led1, ledok;

assign ledok = (led == 0) ? led : {1'bz};
то процесс компиляции проекта вылетает с такой ошибкой:
----
Запускаю C:/Program Files (x86)/Milandr_IDE/util/util2/constraint_editor.exe -z verilog -p C:/milandrprj/hellok/hellok/build/hellok.mfp -c C:/milandrprj/hellok/hellok/build/helloworld.pcf -m C:/Program Files (x86)/Milandr_IDE/model//PLISM3/data/PLISM3_device_8307.144-AH3.json

2022-01-14 11:55:25,329 ERROR [default] Failed to find master block for declaration of cell '_093_' (C:/milandrprj/hellok/hellok/build/synthesis.v:585)
----

При этом в строке 585 synthesis.v наблюдается ссылка на \$_TBUF_, для которого типа не может найтись какой-то мастер блок в вышеприведённой диагностике:
\$_TBUF_ _093_ (


Как попробовать более новый MilandrIDE_Installer_x64 (20-11-02).exe со схемой с выходами с 3-м состоянием?
Закрыть
Здравствуйте!
_ys_ писал(а):
В 32-битном MilandrIDE_Installer_x32 (20-06-05).exe не ставится (отсутствует?) opensta, процесс компиляции проекта соответственно останавливается где-то с ошибкой запуска sta.
В данной версии действительно отсутствует OpenSTA.
_ys_ писал(а):
В более новом 64-битном MilandrIDE_Installer_x64 (20-11-02).exe при запуске constraint_editor.exe какая-то проблема с выходами с 3-м состоянием (z), и на этом процесс останавливается по ошибке.

Например, если добавить в ваш HelloWorld.v ещё выход ledok с открытым коллектором с такими изменёнными или добавленными строками:
module helloworld(clk, led0, led1, ledok);
output wire led0, led1, ledok;

assign ledok = (led == 0) ? led : {1'bz};
то процесс компиляции проекта вылетает с такой ошибкой:
----
Запускаю C:/Program Files (x86)/Milandr_IDE/util/util2/constraint_editor.exe -z verilog -p C:/milandrprj/hellok/hellok/build/hellok.mfp -c C:/milandrprj/hellok/hellok/build/helloworld.pcf -m C:/Program Files (x86)/Milandr_IDE/model//PLISM3/data/PLISM3_device_8307.144-AH3.json

2022-01-14 11:55:25,329 ERROR [default] Failed to find master block for declaration of cell '_093_' (C:/milandrprj/hellok/hellok/build/synthesis.v:585)
----

При этом в строке 585 synthesis.v наблюдается ссылка на \$_TBUF_, для которого типа не может найтись какой-то мастер блок в вышеприведённой диагностике:
\$_TBUF_ _093_ (
Обратите, пожалуйста, внимание, что в представленном примере не хватает объявления направления порта clk. Также не хватает объявления сигнала led, который стоит объявить входным портом. Для синтеза конструкции в двунаправленную IO порт ledok следует объявить двунаправленным. Если его объявить выходом, то синтезатор попытается вставить буфер, являющийся источником z-состояния, что в ПЛИС не встроено. При использовании двунаправленного порта для организации z-состояния он тогда будет переключаться в режим входа.
_ys_ писал(а):
Как попробовать более новый MilandrIDE_Installer_x64 (20-11-02).exe со схемой с выходами с 3-м состоянием?
В ближайшее время, на фоне выхода новой ревизии ПЛИС, будет обсуждаться функциональный состав среды для предоставления пользователям. С нашей же стороны гарантируем, что будем держать в курсе событий и по ходу разработки (помимо актуальной информации в облаке компании Миландр) предоставлять информацию в том числе в данной теме форума.

_________________
Отдел технической поддержки support@milandr.ru

Информационный портал отдела технической поддержки support.milandr.ru


Вернуться к началу
СообщениеДобавлено: 2022-янв-19 13:19 
Не в сети

Зарегистрирован: 2012-окт-26 20:29
Сообщения: 15
Lampadov писал(а): *
Обратите, пожалуйста, внимание, что в представленном примере не хватает объявления направления порта clk. Также не хватает объявления сигнала led, который стоит объявить входным портом.
Они есть, просто они остались без изменений относительно вашего исходного примера HelloWorld.v из облака, я ведь отметил, что мною приведены только отличающиеся или новые строки.
Lampadov писал(а): *
Для синтеза конструкции в двунаправленную IO порт ledok следует объявить двунаправленным. Если его объявить выходом, то синтезатор попытается вставить буфер, являющийся источником z-состояния, что в ПЛИС не встроено. При использовании двунаправленного порта для организации z-состояния он тогда будет переключаться в режим входа.
А почему же тогда "архивный" MilandrIDE_Installer_x64 (20-06-05).exe нормально такую конструкцию с выходом обрабатывает и всё компилирует без каких-либо сообщений об ошибках? Раз в ПЛИС это не встроено?

И, кстати, Ваша информация про "в ПЛИС не встроено" противоречит файлам документации (MLDR125_M3A (Спецификация предварительная).pdf) в облаке:
"Ячейки, работающие как выход или вход-выход, могут устанавливаться в третье состояние сигналом EO (enable output) из логического массива."

upd. Тем не менее, действительно, определение ledok через inout позволило скомпилировать проект в MilandrIDE_Installer_x64 (20-11-02).exe и даже почему-то без предупреждения, что входной сигнал с такого inout никуда не подключён.


Вернуться к началу
СообщениеДобавлено: 2022-янв-19 15:23 
Не в сети

Зарегистрирован: 2012-окт-26 20:29
Сообщения: 15
Большой проект, который ранее нормально компилировался в MilandrIDE_Installer_x64 (20-06-05).exe, перестал компилироваться в MilandrIDE_Installer_x64 (20-11-02).exe с ошибкой, что не находит некоторые сигналы (Net 'blablabla' has no source). Разбирательство в файле ..._ioswitch.v показало, что если где-то в иерархии модулей цепь разветвляется (через assign) и выходит под разными именами через разные выходы модулей на более верхние по иерархии уровни модулей, то наверху она в итоге 'оптимизируется' в одну цепь с каким-то одним именем с выхода какого-то элемента, а выходы всех других вариантов имён той же цепи теряются, но при этом на входах продолжают использоваться разные имена цепей, а не одно 'соптимизированное'. Соответственно, для всех таких нагрузок других имён той же цепи - source не находится.


Вернуться к началу
СообщениеДобавлено: 2022-янв-20 08:33 
Не в сети

Зарегистрирован: 2019-июн-06 09:14
Сообщения: 7
Организация: частное лицо
_ys_ писал(а): *
Большой проект, который ранее нормально компилировался в MilandrIDE_Installer_x64 (20-06-05).exe, перестал компилироваться в MilandrIDE_Installer_x64 (20-11-02).exe с ошибкой, что не находит некоторые сигналы (Net 'blablabla' has no source). Разбирательство в файле ..._ioswitch.v показало, что если где-то в иерархии модулей цепь разветвляется (через assign) и выходит под разными именами через разные выходы модулей на более верхние по иерархии уровни модулей, то наверху она в итоге 'оптимизируется' в одну цепь с каким-то одним именем с выхода какого-то элемента, а выходы всех других вариантов имён той же цепи теряются, но при этом на входах продолжают использоваться разные имена цепей, а не одно 'соптимизированное'. Соответственно, для всех таких нагрузок других имён той же цепи - source не находится.
Влезу вперед паровоза (представителей Миландра).
Если нужно быстро получить результат, то раскомментируйте "#flatten" в compile_m3.tcl и перезапустите маршрут с логического синтеза.
Если нужно потерять коня, то сверните направо.


Вернуться к началу
СообщениеДобавлено: 2022-янв-20 15:12 
Не в сети

Зарегистрирован: 2012-окт-26 20:29
Сообщения: 15
Tapochek писал(а): *
Если нужно быстро получить результат, то раскомментируйте "#flatten" в compile_m3.tcl и перезапустите маршрут с логического синтеза.
Спасибо, срочности пока нет, пробуем для чего можно применить, это в данный момент больше Миландру для информации, чтобы в будущем всё работало.
Указанную ошибку пройти помогло. Правда, дальше всё равно вывалилась другая ошибка:
----
2022-01-20 14:57:01,451 INFO [default] Transferring ports



2022-01-20 14:57:01,952 ERROR [default] Caught unexpected exception when copying top module static objects:

2022-01-20 14:57:01,952 ERROR [default] CopyPortsVisitor::visit(Port): unsupported composite type
2022-01-20 14:57:01,952 INFO [default] Exiting...
----
Повторю, в MilandrIDE_Installer_x64 (20-06-05).exe компилировалось нормально.
Tapochek писал(а): *
Если нужно потерять коня, то сверните направо.
Это не стали пробовать...


Вернуться к началу
СообщениеДобавлено: 2022-янв-21 15:52 
Не в сети
Support
Аватара пользователя

Зарегистрирован: 2018-авг-10 23:14
Сообщения: 680
Организация: АО «ПКК Миландр»
Откуда: Зеленоград
Открыть обращение пользователя _ys_
_ys_ писал(а): *
Lampadov писал(а): *
Обратите, пожалуйста, внимание, что в представленном примере не хватает объявления направления порта clk. Также не хватает объявления сигнала led, который стоит объявить входным портом.
Они есть, просто они остались без изменений относительно вашего исходного примера HelloWorld.v из облака, я ведь отметил, что мною приведены только отличающиеся или новые строки.
Lampadov писал(а): *
Для синтеза конструкции в двунаправленную IO порт ledok следует объявить двунаправленным. Если его объявить выходом, то синтезатор попытается вставить буфер, являющийся источником z-состояния, что в ПЛИС не встроено. При использовании двунаправленного порта для организации z-состояния он тогда будет переключаться в режим входа.
А почему же тогда "архивный" MilandrIDE_Installer_x64 (20-06-05).exe нормально такую конструкцию с выходом обрабатывает и всё компилирует без каких-либо сообщений об ошибках? Раз в ПЛИС это не встроено?

И, кстати, Ваша информация про "в ПЛИС не встроено" противоречит файлам документации (MLDR125_M3A (Спецификация предварительная).pdf) в облаке:
"Ячейки, работающие как выход или вход-выход, могут устанавливаться в третье состояние сигналом EO (enable output) из логического массива."

upd. Тем не менее, действительно, определение ledok через inout позволило скомпилировать проект в MilandrIDE_Installer_x64 (20-11-02).exe и даже почему-то без предупреждения, что входной сигнал с такого inout никуда не подключён.
Закрыть
Здравствуйте!
_ys_ писал(а):
А почему же тогда "архивный" MilandrIDE_Installer_x64 (20-06-05).exe нормально такую конструкцию с выходом обрабатывает и всё компилирует без каких-либо сообщений об ошибках? Раз в ПЛИС это не встроено?
Связываем это с отсутствующими зависимостями в рамках работы старой версии IDE, не учитывающих специфику работы ПЛИС.
_ys_ писал(а):
И, кстати, Ваша информация про "в ПЛИС не встроено" противоречит файлам документации (MLDR125_M3A (Спецификация предварительная).pdf) в облаке:
"Ячейки, работающие как выход или вход-выход, могут устанавливаться в третье состояние сигналом EO (enable output) из логического массива."
Обратите, пожалуйста, внимание, что все выводы ПЛИС - есть ячейки ввода-вывода, которые могут быть сконфигурированы следующим образом:

- Как вход: выходной буфер отключен и на выводе будет Z-состояние;
- Как выход: выходной буфер включен и на выводе будет либо уровень логического нуля, либо единицы;
- Как вход-выход: выходной буфер управляется сигналом разрешения выхода OE, и на выводе будет либо логический ноль/единица, если OE = 0, либо Z, если OE = 1.

Версия документации является предварительной, тем не менее, замечание зафиксировано, большое спасибо.
_ys_ писал(а):
Большой проект, который ранее нормально компилировался в MilandrIDE_Installer_x64 (20-06-05).exe, перестал компилироваться в MilandrIDE_Installer_x64 (20-11-02).exe с ошибкой, что не находит некоторые сигналы (Net 'blablabla' has no source). Разбирательство в файле ..._ioswitch.v показало, что если где-то в иерархии модулей цепь разветвляется (через assign) и выходит под разными именами через разные выходы модулей на более верхние по иерархии уровни модулей, то наверху она в итоге 'оптимизируется' в одну цепь с каким-то одним именем с выхода какого-то элемента, а выходы всех других вариантов имён той же цепи теряются, но при этом на входах продолжают использоваться разные имена цепей, а не одно 'соптимизированное'. Соответственно, для всех таких нагрузок других имён той же цепи - source не находится.
Направьте, пожалуйста, testcase с данной ошибкой.
_ys_ писал(а):
Спасибо, срочности пока нет, пробуем для чего можно применить, это в данный момент больше Миландру для информации, чтобы в будущем всё работало.
Указанную ошибку пройти помогло. Правда, дальше всё равно вывалилась другая ошибка:
----
2022-01-20 14:57:01,451 INFO [default] Transferring ports



2022-01-20 14:57:01,952 ERROR [default] Caught unexpected exception when copying top module static objects:

2022-01-20 14:57:01,952 ERROR [default] CopyPortsVisitor::visit(Port): unsupported composite type
2022-01-20 14:57:01,952 INFO [default] Exiting...
----
Повторю, в MilandrIDE_Installer_x64 (20-06-05).exe компилировалось нормально.
К сожалению, с разработчиками не удаётся воспроизвести данную ошибку. Ошибка возникает в трассировщике: если не затруднит, направьте, пожалуйста, файлы synthesis.v и nametopmodule_ioswitch.v из каталога build (по возможности целиком папку /build), если проект не является секретной информацией. Направить можно любым удобным способом (прикрепить на форуме, отправить в личные сообщения или по почте support@milandr.ru). Большое спасибо.

_________________
Отдел технической поддержки support@milandr.ru

Информационный портал отдела технической поддержки support.milandr.ru


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 323 сообщения ]  На страницу « 118 19 20 21 22

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти: 

Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB