Koluchiy 0 24 апреля, 2015 Опубликовано 24 апреля, 2015 · Жалоба Здравствуйте, уважаемые гуры. С некоторых пор вернулся к использованию Sinplify (2013.09) применительно к Xilinx ISE (14.3). Поскольку без Чипскопа никуда, нужно чтобы при компиляции не выкидывались нужные для него сигналы. Согласно мануалу, пишу /* synthesis syn_preserve=1 */, /* synthesis syn_keep=1 */, /* synthesis syn_noprune=1 */ (сначала пробовал ставить нужную директиву в зависимости от ситуации, потом начал пробовать различные комбинации). Результат примерно одинаковый - не то чтобы Sinplify совсем уж игнорирует директиву, т.к. при добавлении ее результат синтеза несколько изменяется. Проблема в том, что на выходе я нужных сигналов не получаю. Или получаю в каком-нибудь хитром виде, который непригоден для использования в ЧипСкопе. Кто-нибудь знает, что делать? Чтобы блин директивы были для Sinplify законом, а не рекомендацией. Отдельный вопрос: где-то можно посмотреть репорт по директивам, которые Sinplify встретил в исходниках? С указанием, выполнил или проигнорил. И если проигнорил, то почему. Всем заранее спасибо за ответы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hlebn 0 26 апреля, 2015 Опубликовано 26 апреля, 2015 · Жалоба Тоесть при просмотре физик. сигнал отсутствует? Сигналы как и результат синтеза Sinplify может менять(гадить) ISE. есть у него там такие галки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gate 0 26 апреля, 2015 Опубликовано 26 апреля, 2015 · Жалоба У меня было похожее игнорирование атрибутов в синплифае, пока я не заметил, что ";" в конце оператора должна ставиться после атрибута. Это в верилоге. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Timmy 1 26 апреля, 2015 Опубликовано 26 апреля, 2015 · Жалоба Результат примерно одинаковый - не то чтобы Sinplify совсем уж игнорирует директиву, т.к. при добавлении ее результат синтеза несколько изменяется. Проблема в том, что на выходе я нужных сигналов не получаю. Или получаю в каком-нибудь хитром виде, который непригоден для использования в ЧипСкопе. Sinplify может выкидывать фактически неиспользуемый сигнал, даже если на нём стоят сохранятельные атрибуты. Чтобы этого не было, я подключаю к такому сигналу специальный "пустой" модуль, обвешанный атрибутами, тогда сигнал не выкидывается. library ieee, ecp2m; use ieee.std_logic_1164.all; use ecp2m.components.all; entity keep_buf is generic(dw:integer:=1); port ( i:in std_logic_vector(dw-1 downto 0); o:out std_logic_vector(dw-1 downto 0) ); end entity; architecture arch of keep_buf is attribute NOCLIP:boolean; attribute syn_keep:boolean; attribute syn_noprune:boolean; signal d:std_logic_vector(i'range); attribute syn_noprune of arch:architecture is true; begin d <= i; bufs:for j in i'range generate attribute syn_noprune of b:label is true; attribute NOCLIP of b:label is true; begin b:AND2 port map(A=>d(j),B=>'1', Z=>o(j)); end generate; end architecture; Это для Латтис. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Koluchiy 0 27 апреля, 2015 Опубликовано 27 апреля, 2015 · Жалоба директивы пишу вроде правильно, ; там где надо (иначе оно бы вообще не влияло бы на результаты). Заниматься танцами с бубном типа генерации лишних модулей - ну, я и так этим занимаюсь, чтобы хоть что-то получить. Но вопрос же о том, как этого избежать. Вот в XST я пишу KEEP и оно реально потом в Чипскопе есть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dimidrol 0 28 апреля, 2015 Опубликовано 28 апреля, 2015 · Жалоба Почему бы модуль ChipScope не сгенерировать в Coregen и подключать к нему интересующие сигналы? Гарантировано ничего не будет выкидываться. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TRILLER 0 28 апреля, 2015 Опубликовано 28 апреля, 2015 · Жалоба Согласно мануалу, пишу /* synthesis syn_preserve=1 */, /* synthesis syn_keep=1 */, /* synthesis syn_noprune=1 */ (сначала пробовал ставить нужную директиву в зависимости от ситуации, потом начал пробовать различные комбинации). Результат примерно одинаковый - не то чтобы Sinplify совсем уж игнорирует директиву, т.к. при добавлении ее результат синтеза несколько изменяется. Проблема в том, что на выходе я нужных сигналов не получаю. Или получаю в каком-нибудь хитром виде, который непригоден для использования в ЧипСкопе. Попробуйте добавить атрибут сохранения иерархии для нужного модуля. Что-нибудь hard/fixed для syn_hier, потому как если он разматывает весь дизайн, то результат будет не предсказуем. Отдельный вопрос: где-то можно посмотреть репорт по директивам, которые Sinplify встретил в исходниках? С указанием, выполнил или проигнорил. И если проигнорил, то почему. А вот это действительно проблема, во всяком случае для меня. Не раз задавался этим вопросом, но найти ответ так и не смог. Может кто подскажет, присоединяюсь.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться