Перейти к содержанию
    

Xilinx FPGA Editor Hard Macro, фиксировать сигналы

Вопрос короткий, существует ли возможность зафиксировать разводку сигналов в макросе, чтобы при использовании макроса в проекте, система заново не разводила цепи?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос короткий, существует ли возможность зафиксировать разводку сигналов в макросе, чтобы при использовании макроса в проекте, система заново не разводила цепи?

В Vivado существует что-то подобное. Погуглите UG905. Может, это то, что Вам надо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос короткий, существует ли возможность зафиксировать разводку сигналов в макросе, чтобы при использовании макроса в проекте, система заново не разводила цепи?

Вообще система и не разводит заново цепи, пока вы не изменяете проект.

А если изменили, но хотите, чтобы не переразводилось, то лично мне это кажется странным.

Если просто зафиксировать (Xilinx) некоторые элементы -- можно использовать LOC/RLOC и прочее как из vhdl/verilog, так и из .ucf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В Vivado существует что-то подобное. Погуглите UG905. Может, это то, что Вам надо.

 

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

 

Вообще система и не разводит заново цепи, пока вы не изменяете проект.

А если изменили, но хотите, чтобы не переразводилось, то лично мне это кажется странным.

Если просто зафиксировать (Xilinx) некоторые элементы -- можно использовать LOC/RLOC и прочее как из vhdl/verilog, так и из .ucf

 

Речь не об изменении проекта, а о том что при размещении макроса в проекте, система не сохраняет цепи которые были заранее разведены в макросе, и разводит их заново.

Изменено пользователем Barktail

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Припоминаю, что когда-то делал такое для виртекса 6 серии. У Вас спартан, но тоже 6 серии, так что наверное всё то же самое. Может, здесь? http://www.xilinx.com/support/documentatio...ology_Guide.pdf

Помню, что для Planahead была команда сохранить сделанную вручную расстановку. Затем её как-то можно было оформить в отдельную ngc-шку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Припоминаю, что когда-то делал такое для виртекса 6 серии. У Вас спартан, но тоже 6 серии, так что наверное всё то же самое. Может, здесь? http://www.xilinx.com/support/documentatio...ology_Guide.pdf

Помню, что для Planahead была команда сохранить сделанную вручную расстановку. Затем её как-то можно было оформить в отдельную ngc-шку.

А разве при этом сохраняется и трассировка? По-моему, только расстановка.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Насчёт разводки не уверен. Но по опыту главное - расстановка. При правильной расстановке разводка делается за секунду.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос короткий, существует ли возможность зафиксировать разводку сигналов в макросе, чтобы при использовании макроса в проекте, система заново не разводила цепи?

Такая возможность есть.

Пример такого использования я видел в 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 выбрав разведённую линию связи.

Изменено пользователем zxcv

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Такая возможность есть.
Спасибо за тайное знание! Вот уж точно хакерство )))

 

 

Данные для атрибута 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 выбрав разведённую линию связи.

Т.е. это придётся делать ручками для каждой цепи?...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Т.е. это придётся делать ручками для каждой цепи?...

 

Можете в FPGA Editor'e в окне "Tools\Direct Routing Constraints" выделить по маске цепи, разводку которых нужно зафиксировать, и экспортировать в файл ucf.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...