Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Xilinx FPGA Editor Hard Macro, фиксировать сигналы
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Среды разработки - обсуждаем САПРы
Barktail
Вопрос короткий, существует ли возможность зафиксировать разводку сигналов в макросе, чтобы при использовании макроса в проекте, система заново не разводила цепи?
crono
Цитата(Barktail @ May 15 2015, 09:55) *
Вопрос короткий, существует ли возможность зафиксировать разводку сигналов в макросе, чтобы при использовании макроса в проекте, система заново не разводила цепи?

В Vivado существует что-то подобное. Погуглите UG905. Может, это то, что Вам надо.
FakeDevice
Цитата(Barktail @ May 15 2015, 09:55) *
Вопрос короткий, существует ли возможность зафиксировать разводку сигналов в макросе, чтобы при использовании макроса в проекте, система заново не разводила цепи?

Вообще система и не разводит заново цепи, пока вы не изменяете проект.
А если изменили, но хотите, чтобы не переразводилось, то лично мне это кажется странным.
Если просто зафиксировать (Xilinx) некоторые элементы -- можно использовать LOC/RLOC и прочее как из vhdl/verilog, так и из .ucf
Barktail
Цитата
В Vivado существует что-то подобное. Погуглите UG905. Может, это то, что Вам надо.


Работаю на Спартане 6, поэтому к сожалению практической пользы от этого мне не получить, но для развития посмотрю, спасибо.

Цитата
Вообще система и не разводит заново цепи, пока вы не изменяете проект.
А если изменили, но хотите, чтобы не переразводилось, то лично мне это кажется странным.
Если просто зафиксировать (Xilinx) некоторые элементы -- можно использовать LOC/RLOC и прочее как из vhdl/verilog, так и из .ucf


Речь не об изменении проекта, а о том что при размещении макроса в проекте, система не сохраняет цепи которые были заранее разведены в макросе, и разводит их заново.
Krys
Припоминаю, что когда-то делал такое для виртекса 6 серии. У Вас спартан, но тоже 6 серии, так что наверное всё то же самое. Может, здесь? http://www.xilinx.com/support/documentatio...ology_Guide.pdf
Помню, что для Planahead была команда сохранить сделанную вручную расстановку. Затем её как-то можно было оформить в отдельную ngc-шку.
crono
Цитата(Krys @ May 21 2015, 09:32) *
Припоминаю, что когда-то делал такое для виртекса 6 серии. У Вас спартан, но тоже 6 серии, так что наверное всё то же самое. Может, здесь? http://www.xilinx.com/support/documentatio...ology_Guide.pdf
Помню, что для Planahead была команда сохранить сделанную вручную расстановку. Затем её как-то можно было оформить в отдельную ngc-шку.

А разве при этом сохраняется и трассировка? По-моему, только расстановка.
Krys
Насчёт разводки не уверен. Но по опыту главное - расстановка. При правильной расстановке разводка делается за секунду.
zxcv
Цитата(Barktail @ May 15 2015, 09:55) *
Вопрос короткий, существует ли возможность зафиксировать разводку сигналов в макросе, чтобы при использовании макроса в проекте, система заново не разводила цепи?

Такая возможность есть.
Пример такого использования я видел в xapp514 в главе 16 "DVB-ASI Physical Layer Implementation".
Там, для приёма данных DVB-ASI без восстановления тактов, формируют две линии задержки на инверторах. Выходы инверторов защёлкивают в регистры. Затем в линиях задержки ищут фронт сигнала и по нему подстраивают момент считывания валидных данных.

Так вот. Линии задержки на инверторах и линии связи между ними, а также регистры и их связи с линией задержки выполнены в виде relative location macro. Компоненты фиксируются атрибутами RLOC, а разводка атрибутом ROUTE.

Исходники на Verilog и VHDL в архиве xapp514.zip.
Файл с макросом: xapp514.zip\xapp514_dvbasi-phy.zip\xapp509\lvds\vhdl\des.vhd

Глубоко с проектом не разбирался, использовал почти как есть.
Данные для атрибута ROUTE выглядят примерно так: 2;1;-6!-1;49128;-25040;14;66;54;30;13!0;1261;-1192;24!0;-1261;1152;4;66;54;41!1;-392;-59;0!3;232;-365;4;66;53;18!
Их можно получить в программе FPGA Editor выбрав разведённую линию связи.
Krys
Цитата(zxcv @ May 24 2015, 00:11) *
Такая возможность есть.
Спасибо за тайное знание! Вот уж точно хакерство )))


Цитата(zxcv @ May 24 2015, 00:11) *
Данные для атрибута ROUTE выглядят примерно так: 2;1;-6!-1;49128;-25040;14;66;54;30;13!0;1261;-1192;24!0;-1261;1152;4;66;54;41!1;-392;-59;0!3;232;-365;4;66;53;18!
Их можно получить в программе FPGA Editor выбрав разведённую линию связи.
Т.е. это придётся делать ручками для каждой цепи?...
Alex_AZ
Цитата(Krys @ May 25 2015, 09:12) *
Т.е. это придётся делать ручками для каждой цепи?...


Можете в FPGA Editor'e в окне "Tools\Direct Routing Constraints" выделить по маске цепи, разводку которых нужно зафиксировать, и экспортировать в файл ucf.
Barktail
Цитата(zxcv @ May 23 2015, 20:11) *
Такая возможность есть.

Спасибо! То что нужно.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.