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

Один из самых дорогих ресурсов по входам. Распоряжаемся...

Приветствую, корифеи! :dance3:

Для общения с внешним процессором обычно стараются применять глобальные входы CLK для асинхронных шинных операций записи\чтения. Это удобно в построении регистров управления и данных.

Но нынешние FPGA имеют приличное количество такого ресурса и возникает соблазн задействовать эти смачные входы (в итоге дизайн работает быстрее) не только на стробирующие сигналы RD\WR но и на адресную шину.

Но эти сигналы скорее потенциальные ,а не динамические.  Как вы считаете, имеет смысл так поступать, если они "гуляют"?  Их обычно рекомендуют сажать на землю, чтобы потребление не чудило из-за серых состояний.

Конечно расположение на корпусе не компактно, а разбросано равномерно по краям, но думаю за них стоит бороться! Ради выигрыша благодаря вездесущему глобальному построению на чипе.

Что говорит ВАШ опыт?  Спасибо!

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


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

Приветствую!

25 minutes ago, Мур said:

...

Для общения с внешним процессором обычно стараются применять глобальные входы CLK для асинхронных шинных операций записи\чтения. Это удобно в построении регистров управления и данных.

Но нынешние FPGA имеют приличное количество такого ресурса и возникает соблазн задействовать эти смачные входы (в итоге дизайн работает быстрее) не только на стробирующие сигналы RD\WR но и на адресную шину.

Но эти сигналы скорее потенциальные ,а не динамические.  Как вы считаете, имеет смысл так поступать, если они "гуляют"?  Их обычно рекомендуют сажать на землю, чтобы потребление не чудило из-за серых состояний.

Линии  глобальных сигналов (CLK, Reset)  как  вход для шин данных ???  

IMHO В общем случае профита от такого обычно не много - эти линии внутри FPGA обычно оптимизированы для этих конкретных функций. И во многих архитектурах коммутация с глобальной линии на обычную логику (вход в LUT)  дает большую задержку чем использование этих пинов как обычного входа.  Так что надо проверять это на конкретном дизайне и конкретной FPGA. А тип сигналов на таких линиях не имеет значения.

     

Удачи! Rob. 

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


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

Если коротко, то профита по-моему мнению не будет никакого. Если хочется что-то крайне быстро передавать или принимать, используйте сериализаторы/дессериализаторы на портах ПЛИС, если таковы доступны.

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


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

8 hours ago, RobFPGA said:

....  как  вход для шин данных ???  

1.Только не данные, потому как они двунаправленные!..

2. Глобальные сигналы имеют большую нагрузочную способность.  Сажать такое на землю?  Не могу смириться...

3. Я перед тем как писать пост прогнал в TimeQuest проект с обычной шиной адреса и с задействованием глобальных сигналов тактирования.  Выигрыш получил в 15МГц. Это и создало иллюзию выигрыша.

5 hours ago, Inanity said:

Если коротко, то профита по-моему мнению не будет никакого. Если хочется что-то крайне быстро передавать или принимать, используйте сериализаторы/дессериализаторы на портах ПЛИС, если таковы доступны.

Я помню об этом, но шина-то параллельная!..  И сколько их надо? И они синхронны.. 

Зоопарк плодить не хоцца!

Начальство запретило применять Ситару(TI) с PCIe...:to_become_senile:

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


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

Приветствую!

5 hours ago, Мур said:

1.Только не данные, потому как они двунаправленные!..

Понятно дело - под "данные"  я и имел ввиду сигналы управления обычной шины данных

5 hours ago, Мур said:

2. Глобальные сигналы имеют большую нагрузочную способность.

У вас  что шина адреса асинхронно на весь кристалл роутится? Если да то то IMHO что то с дизайном не то :scratch_one-s_head:

5 hours ago, Мур said:

3. Я перед тем как писать пост прогнал в TimeQuest проект с обычной шиной адреса и с задействованием глобальных сигналов тактирования.  Выигрыш получил в 15МГц. Это и создало иллюзию выигрыша.

X +15 MHz  при каком X?   Да и эти 15 MHz  для  Qu могут быть просто  погрешности сборки. 

Использовать глобальные  линии для сигнала можно и иногда и нужно. Но делается это не по велению "душащей жабы",  в сознательно с учетом архитектуры конкретного чипа. 
Например для некоторых FPGA Intel  структура роутинга  позволяет использовать линии peripheral clock для обычных сигналов c пинов.  Но  только для роутинга  в определенной части кристалла. А при  питании логики в другой части задержки значительно возрастают :sad:

Удачи!  Rob.

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


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

22 minutes ago, RobFPGA said:

Приветствую!

Понятно дело - под "данные"  я и имел ввиду сигналы управления обычной шины данных

У вас  что шина адреса асинхронно на весь кристалл роутится? Если да то то IMHO что то с дизайном не то :scratch_one-s_head:

X +15 MHz  при каком X?   Да и эти 15 MHz  для  Qu могут быть просто  погрешности сборки. 

Использовать глобальные  линии для сигнала можно и иногда и нужно. Но делается это не по велению "душащей жабы",  в сознательно с учетом архитектуры конкретного чипа. 
Например для некоторых FPGA Intel  структура роутинга  позволяет использовать линии peripheral clock для обычных сигналов c пинов.  Но  только для роутинга  в определенной части кристалла. А при  питании логики в другой части задержки значительно возрастают :sad:

Удачи!  Rob.

Спасибо Rob!  Х = 110МГц

В том-то и дело, что внутренние события в FPGA тактируются общей с процессором частотой, и только в проце она поднимается до 200МГц и относительно уже этого правильно считать сигналы шины асинхронными (автоматически наблюдается систематический сдвиг синхронных сигналов). И никакой трагедии в этом нет, поскольку все механизмы поведения проводятся через регистры, управляемые только процессором. И тут глобальные сигналы весьма выигрышны, в особенности в циклах чтения.  И как раз задержки по адресам тут имеют решающее значение.  Собственно и почему я так ревниво  смотрю на адрес!

Может я слишком консервативен в представлениях и сказываются инженерные травмы  90хх в применении ПЛИС и не в состоянии учесть современные тенденции ячейкостроения и пора не покой, но глобальность специальных входов -серьёзный козырь в распределении ресурсов.

В общем случае будем считать входы CLK как обычные входы...  Только уникальность и в том, что поймать\подхватить в дешифраторах пользовательской логики\  их можно в любой части чипа. Тут явно будет экономия в ресурсах связей.

Ваш совет принял к сведению!

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


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

Приветствую!

Если не секрет - вы  к какому  CPU стыкуетесь и на какой FPGA?

 

Удачи! Rob. 

 

P.S. Попробую  угадать - какой нибудь TI  TMS..  через  EMIF шину  ? 

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


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

8 minutes ago, RobFPGA said:

Приветствую!

Если не секрет - вы  к какому  CPU стыкуетесь и на какой FPGA?

TMSx379D  +   10CL040YU484I7G

Именно EMIF 

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


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

Приветствую!

2 hours ago, Мур said:

TMSx379D  +   10CL040YU484I7G  Именно EMIF 

Знакомо немного - я в свое время с TMS320 62xx , 67xx, 64xx серий много возился.  

2 hours ago, Мур said:

...

В общем случае будем считать входы CLK как обычные входы...  Только уникальность и в том, что поймать\подхватить в дешифраторах пользовательской логики\  их можно в любой части чипа. Тут явно будет экономия в ресурсах связей.

А  смысл  то ловить по всему чипу? Самое критичное при асинхронном EMIF это  задержки на чтение,  а  в этом случае вам надо не только дешифрировать адрес но и данные вытянуть отовсюду на конкретные пины. Проще уж собрать критику поближе к выходным пинам, а значит и глобальные линии особенно и не нужны будут. Ну а с записью или с синхронным EMIF и подавно. 

 

Удачи! Rob.

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


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

2 hours ago, RobFPGA said:

А  смысл  то ловить по всему чипу? Самое критичное при асинхронном EMIF это  задержки на чтение,  а  в этом случае вам надо не только дешифрировать адрес но и данные вытянуть отовсюду на конкретные пины. Проще уж собрать критику поближе к выходным пинам, а значит и глобальные линии особенно и не нужны будут. Ну а с записью или с синхронным EMIF и подавно.    Удачи! Rob.

Система регистров присутствует в каждом кастомном периферийном модуле(их под 100 шт), а это значит, что к ним надо адресоваться. А для этого адреса и нужны! И это по всему чипу!

Ловит их всех фиттер, потому как он там уже есть (глобален!) и потому продергивать его по коммутационным линиям, как для обычных сигналов(автоматом задержки!), не нужно.

Данные это отдельный вопрос. Вот их можно теснить ближе к CPU! И обязательно в одном домене...

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


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

Приветствую!

2 hours ago, Мур said:

Система регистров присутствует в каждом кастомном периферийном модуле(их под 100 шт), а это значит, что к ним надо адресоваться. А для этого адреса и нужны! И это по всему чипу!

Ловит их всех фиттер, потому как он там уже есть (глобален!) и потому продергивать его по коммутационным линиям, как для обычных сигналов(автоматом задержки!), не нужно.

Данные это отдельный вопрос. Вот их можно теснить ближе к CPU! И обязательно в одном домене...

Трудно судить конкретный дизайн по набору фраз  но  просто для  обсуждения -

Вот вы пишете  ~100 модулей по всему  кристаллу  - получается  что линий адреса  как минимум 7, а с учетом что внутри модуля еще и регистры отдельные то нужно добавить еще 3-5 . Получается чтобы  ваша глобальная схема  работала надо бы ~15 (с учетом RD/WR/CS) глобальных  линий. А  иначе какой смысл если часть адреса быстро добежит по глобальному "хайвею", а часть будет трюхать по обычному роутингу :scratch_one-s_head:  А на сколько я помню, для Itel чипа глобальных сигналов  на LAB может быть всего 6 (включая клоки) :unknw: . 
Касаемо данных, ~100  модулей - ~7 уровней mux. И  если их (источники данных и muxы) "теснить"  к  выходу  то какой смысл  делать дешифрацию адреса где-то вдали,  а потом медленно тянуть к выходу управление mux? :to_take_umbrage:

Если  в дизайне проблемы из за этого то тут напрашивается  пересмотр структуры дизайна и идеологии работы с регистрами.   

 

Удачи! Rob.

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


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

ИМХО, глобальные линии, для этой задачи, как мёртвому припарка. А подобная система для emif, большие задержки в самом интерфейсе

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


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

10 hours ago, RobFPGA said:

Приветствую!

Трудно судить конкретный дизайн по набору фраз  но  просто для  обсуждения -

Приветствую корифеев!

Линий адреса всего 12. Остальные сведены к CS...

Логика тут проста. Самыми востребованными(присутствующие во всех модулях) младшие 3\4 разряда. Остальные дешифрируют сами модули.

Весело получается с данными. Там на отдачу (RD) идет сборка по или  со всех закоулков. И во вьювере  видны слои логики, которые надо преодолеть, если хочешь нормальной работы на асинхронной шине.  WR уже можно делать синхронным. И там это не так критично...

В общем - есть ресурс входов. Особенный. И просто отвергать такое аппетитное совершенство  глупо... А их теперь настрогали нам  16 шт.

Какие будут предложения?   Альтернатива применению...  Дескать, - я бы постарался бы сделать  вот так! (Исключая  естественно сам CLK...)

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


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

Приветствую!

4 hours ago, Мур said:

В общем - есть ресурс входов. Особенный. И просто отвергать такое аппетитное совершенство  глупо... А их теперь настрогали нам  16 шт.

Какие будут предложения?   Альтернатива применению...  Дескать, - я бы постарался бы сделать  вот так! (Исключая  естественно сам CLK...)

Что делать  я уже предлагал - для начала подумать  :biggrin: 
Для вашего  DSP  при асинхронной шине проще добавить такт-другой  в  настройке EMIF добавив время для  Read Setup/Read Strobe (как минимум 5 ns на такт) чем парится выжимая  последние 5 капель задержек на глобальных линиях. Только не говорите что вы уже и так по максимуму  все поставили  (16 + 64) * 5 ns = 400 ns !:shok:  и теперь надежда только  сэкономленные на глобальных линиях 1-2 ns :sarcastic_hand:   Ну а вот если и их не хватит то тогда  последнем выходом останется веревка вход EMxWAIT.  :biggrin:  

Удачи! Rob.

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


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

56 minutes ago, RobFPGA said:

Что делать  я уже предлагал - для начала подумать  :biggrin: 

Такое вызывает истерику  тэмээсников. Они молятся на DMA(я это уже сделал по их структуре) и времянка жестко определена. Потому мне  столь не уютно.

Впрочем "жизнь нам диктует свои суровые законы"...

Мне хотелось для полноты услышать мнение вообще. Не применительно к ситуации.

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

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


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

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

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

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

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

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

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

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

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

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