Dantist2k17 0 19 декабря, 2019 Опубликовано 19 декабря, 2019 (изменено) · Жалоба Добрый день. Разыскивается пример lib файла с описание FDE триггера для Yosys. Есть ли на форуме те, кто может проконсультировать по работе в Yosys? Изменено 19 декабря, 2019 пользователем Dantist2k17 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MickeyMouse 0 19 декабря, 2019 Опубликовано 19 декабря, 2019 · Жалоба А что там в это Yosys какие-то особенные либы нужны? Если речь идет об формате liberty то хорошие примеры можно найти в стандарте: https://media.c3d2.de/mgoblin_media/media_entries/659/Liberty_User_Guides_and_Reference_Manual_Suite_Version_2017.06.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dantist2k17 0 20 декабря, 2019 Опубликовано 20 декабря, 2019 · Жалоба 17 hours ago, MickeyMouse said: А что там в это Yosys какие-то особенные либы нужны? Если речь идет об формате liberty то хорошие примеры можно найти в стандарте: https://media.c3d2.de/mgoblin_media/media_entries/659/Liberty_User_Guides_and_Reference_Manual_Suite_Version_2017.06.pdf Была (есть) проблема, связанная с тем, что Yosys ругался на lib триггера, в котором при описании ff (IQ,IQB) { ... } next_state определяется выражением, например: next_state: (CE*D + !CE*IQ); а не просто как: next_state: D; Как мне рассказали программисты, проанализировавшие исходный код Yosys, там явно указано о том, что подобные выражения текущая версия не поддерживает, мол в разработке. Так что судя по всему дело не в либах. Однако сам Yosys имеет на вооружении команду dff2dffe, которая оптимизирует схему, выявляя ff с мультиплексорами в обратной связи и заменяя их на ffe. При этом в выходной netlist пишутся примитивы \$_DFFE_PP_. Всегда можно сделать автозамену, но это как-то... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MickeyMouse 0 20 декабря, 2019 Опубликовано 20 декабря, 2019 (изменено) · Жалоба 1 час назад, Dantist2k17 сказал: Была (есть) проблема, связанная с тем, что Yosys ругался на lib триггера, в котором при описании ff (IQ,IQB) { ... } next_state определяется выражением, например: next_state: (CE*D + !CE*IQ); а не просто как: next_state: D; Как мне рассказали программисты, проанализировавшие исходный код Yosys, там явно указано о том, что подобные выражения текущая версия не поддерживает, мол в разработке. Так что судя по всему дело не в либах. Однако сам Yosys имеет на вооружении команду dff2dffe, которая оптимизирует схему, выявляя ff с мультиплексорами в обратной связи и заменяя их на ffe. При этом в выходной netlist пишутся примитивы \$_DFFE_PP_. Всегда можно сделать автозамену, но это как-то... В описании на этот тул сказано: Mapping to Xilinx 7-Series and Lattice iCE40 FPGAs Если это не для красного словца, то где yosys берет библиотеки для мапинга? Ведь в xilinx вроде тоже все на либерти(по крайней мере либерти можно найти в папках вивадо). Попробуйте поискать нужный Вам флип-флоп в таргетах для yosys, если он есть значит они его как-то должны описывать. PS У меня была проблема с next_state, не знал как описать бифронтовый флип-флоп при характеризации, я как-раз в вивадо такой пример и нашел(это я к тому что там точно либерти есть на элементы). Изменено 20 декабря, 2019 пользователем MickeyMouse Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Avex 1 20 декабря, 2019 Опубликовано 20 декабря, 2019 · Жалоба @Dantist2k17 Флоп с разрешением имеет две схемы замещения - флоп с мультиплексором в обратной связи, и флоп с клок-гатором в цепи управления. Поэтому если не поддерживаются формулы в next_state, можете попробовать вставить формулу в clocked_on clocked_on : "CLK * EN"; а еще лучше, купите DC. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dantist2k17 0 21 декабря, 2019 Опубликовано 21 декабря, 2019 · Жалоба 12 hours ago, Aleх said: @Dantist2k17 Флоп с разрешением имеет две схемы замещения - флоп с мультиплексором в обратной связи, и флоп с клок-гатором в цепи управления. Поэтому если не поддерживаются формулы в next_state, можете попробовать вставить формулу в clocked_on clocked_on : "CLK * EN"; а еще лучше, купите DC. Спасибо, попробую. Про DC не поспоришь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться