реклама на сайте
подробности

 
 
> Внутренний сигнал FPGA с большой нагрузкой, Как это корректно реализуется?
Волощенко
сообщение Jun 27 2007, 06:25
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 347
Регистрация: 16-02-06
Из: г.Николаев, Украина
Пользователь №: 14 377



1. Если один и тот же внутренний сигнал используется во многих логических узлах, т.е. имеет большую (многочисленную и разветвленную) нагрузку, то стоит ли самому заботиться о том, чтобы этот сигнал разгрузить, делая, например, каскады буферных повторителей (или вводя вспомогательные сигналы), или система проектирования сама выполняет это за нас?
2. Есть ли особенности по этой части для систем MAX+plus II, Quartus II и Xilinx ISE?
Понятно, что чипы имеют глобальные входы, но речь не о них, а о простых внутренних сигналах. Просто просматривая документацию, не встречал ни разу каких либо соображений по этому вопросу.
Спасибо за ответ.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
DSIoffe
сообщение Jun 27 2007, 09:36
Сообщение #2


Дима
*****

Группа: Свой
Сообщений: 1 683
Регистрация: 15-12-04
Из: Санкт-Петербург
Пользователь №: 1 486



Цитата
Констрейн в синтезаторе max_fanout

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


--------------------
© CОПЫРИГХТ: Дмитрий Иоффе, Советский Союз.
Приглашаю посмотреть: http://muradowa.spb.ru/ и http://www.drtata.narod.ru/index.html
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Jun 27 2007, 10:14
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(DSIoffe @ Jun 27 2007, 12:36) *
Во-во, пожалуйста, я давно хотел понять: что можно получить из такого констрейна? А заодно и вообще из информации о разветвлённости выходного сигнала какой-либо ячейки? А входного?

Что такое "разветвленность входного сигнала" и зачем она нужна?. Про выходной я расскажу.

Пример из живого проекта. ПЛИС - Спартан-3. Синтез - Synplify.
Ставим fanout_limit = 100. В логе появляются строчки:

pin:Q inst:map_frame_descr_gen.dmmisccnt[1] of UNILIB.FDCPE(PRIM) - loads: 102, segments 2, replicating source
pin:Q inst:map_frame_descr_gen.dmmisccnt[2] of UNILIB.FDCPE(PRIM) - loads: 105, segments 2, replicating source
Added 2 Registers via replication

Увеличиваем fanout_limit do 200, и ничего подобного нет. Но в этом месте это не критично. Критично оказалось в другом.

Тот же проект. Есть интерфейс с DSP TI320C6416 по EMIF. Интерфейс синхронный, 100 МГц. Шина данных -- 32 разряда, шина адреса -- 20 разрядов.
В FPGA реализовано несколько десятков регистров с режимом доступа "чтение/запись", некоторые -- "только чтение", многие из регистров 32-разрядные. Сами понимаете, мультиплексор, объединяющий все регистры в выходную шину данных, получается неслабый. Поэтому он сделан multi-cycle. Задан констрейн от начала этого multi-cycle-пути (clock enable -- выход триггера) до его конца (другой clock enable -- выход другого триггера). Но поскольку конечная точка -- это несколько сотен триггеров (нескольско сотен --- это больше, чем установленный fanout), то синтезатор размножил триггер, формирующий clock enable для конечной точки и, естественно, дал этому новому триггеру какое-то заранее неизвестное имя. Раз имя другое, то констрейн на этот сигнал не распространяется. Получается, что часть мультиплексора обконстрейнена, часть нет. В результате тайминги не сходятся. То, что легко укладывается в 2 такта частоты EMIF (20 нс), par пытается уложить в один (10 нс) и у него не получается.
Увеличиваем fanout до такого значения, чтобы покрывался весь мультиплексор, и все со свистом разводится.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Волощенко   Внутренний сигнал FPGA с большой нагрузкой   Jun 27 2007, 06:25
- - dxp   Цитата(Волощенко @ Jun 27 2007, 13:25) 1....   Jun 27 2007, 07:12
|- - andrew_b   Цитата(dxp @ Jun 27 2007, 10:12) о коэффи...   Jun 27 2007, 07:16
|- - Волощенко   Спасибо за ответы! Цитата(dxp @ Jun 27 20...   Jun 27 2007, 07:54
|- - dxp   Цитата(Волощенко @ Jun 27 2007, 14:54) Ес...   Jun 27 2007, 08:59
|- - dxp   Цитата(andrew_b @ Jun 27 2007, 17:14) При...   Jun 27 2007, 10:44
|- - andrew_b   Цитата(dxp @ Jun 27 2007, 13:44) На что в...   Jun 27 2007, 13:25
- - LeonY   max_fanout часто нужен, особенно на устройствах Ac...   Jun 27 2007, 12:33
|- - dxp   Цитата(LeonY @ Jun 27 2007, 19:33) max_fa...   Jun 27 2007, 13:04
- - RKOB   Значениеe MAX_FANOUT (default): = 100 для Virtex, ...   Jun 27 2007, 13:14
- - LeonY   ЦитатаПро пережигаемые речь не идет. Речь об FPGA,...   Jun 27 2007, 14:12
- - des00   думаю что к рассматриваемому примеру max_fanout пр...   Jun 28 2007, 03:27
- - TailWind   Самостоятельно можно размножать триггер с которого...   Jun 28 2007, 06:50


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 06:48
Рейтинг@Mail.ru


Страница сгенерированна за 0.01397 секунд с 7
ELECTRONIX ©2004-2016