Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: UCF
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
deast
Возникло затруднение. Некоторый модуль в проекте, имеет вывод, который нужно посадить на контакт ПЛИС. Там даже OBUF структурно вставлен. Сам модуль находится глубоко в иерархии. Как в .UCF это сказать, чтобы система повесила этот вывод куда надо, чтобы не тащить этот контакт через всю иерархию. Спасибо...
YGin
Цитата(deast @ Jun 30 2006, 08:34) *
Как в .UCF это сказать, чтобы система повесила этот вывод куда надо

Трах-тибидох-тибидох!! smile.gif
Может и ошибаюсь но если не изменяет склироз такого делать нельзя!
Там можно вешать только порты топа!
Vitёk
Попробуйте использовать макросы типа IPAD, IBUF (OPAD/IOPAD, OBUF/IOBUF) (это на Xilinx). Будучи нарисованым в схемном редакторе, такое работало. Там же в атрибуте LOC можно указать конкретную ножку (тут могут быть траблы с синтезатором, что бы он не выкинул атрибут).
Rok
Цитата(deast @ Jun 30 2006, 14:34) *
Возникло затруднение. Некоторый модуль в проекте, имеет вывод, который нужно посадить на контакт ПЛИС. Там даже OBUF структурно вставлен. Сам модуль находится глубоко в иерархии. Как в .UCF это сказать, чтобы система повесила этот вывод куда надо, чтобы не тащить этот контакт через всю иерархию. Спасибо...

Ну здесь я вижу аж целых три решения.
1. Если пишите на верилог, то просто в топ модуле можете написать типа:
wire probe_1 = u_Module.u_block_1.u_inst.net_name
ну и потом завести его на выход. Но этот способ я не гарантирую так как не пользовался, просто вспомнилось, что в testbench так делаю.
Может для синтеза и не пройдет.

2. Если синтез делаете в Synplify, тот там есть такой аттрибут syn_probe.
Его можнл описать, как и в самом RTL, так и в SDC. Я обычно использую второе, т.е. типа:
define_attribute {n:u_inst.net_name} syn_probe {1}
Т.е. ваш выходной netlist будет включать этот выход. Только нужно посмотреть как его синтезатор обозвал, чтобы корректно описать этот выход в UCF.

3. FPGA_Editor - это уже когда проект полностью разведен, чтобы не возвращаться обратно к синтезу.
Там есть такая фича - probes. Там все просто, как грабли. Нажимаете на кнопочку, выбираете любой сигнал из списка и пин куда хотите его подсоединить - он автоматом разводит.
Ну тут может быть такая проблема, что именно того сигнала, который вам нужен его, то и нет. Т.е. это синтезатор постарался его убрать. В этом случае нужно синтезатору сказать, чтобы он его не трогал. На примере Synplify, там есть директива syn_keep.

Ну вот вроде и все, дерзайте smile.gif
kas
Цитата(deast @ Jun 30 2006, 13:34) *
Возникло затруднение. Некоторый модуль в проекте, имеет вывод, который нужно посадить на контакт ПЛИС. Там даже OBUF структурно вставлен. Сам модуль находится глубоко в иерархии. Как в .UCF это сказать, чтобы система повесила этот вывод куда надо, чтобы не тащить этот контакт через всю иерархию. Спасибо...


После синтеза, если цепь никуда не была подключена, Вы ее скорее всего не найдете, синтезатор удалит.

У меня получилось так:
наложить атрибуты "KEEP" и "LOC" на нужную цепь прямо в модуле
Как это сделать написано в Constraints Guide.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.