|
как поправить общую шину?, разваливаются тайминги шины ибо много узлов на ней |
|
|
|
Dec 1 2010, 14:36
|
Знающий
   
Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543

|
1) Какая тактовая шины? 2) Недопонял - шина соединяет внутренние блоки одной ПЛИС, и/или эту ПЛИС с еще чем-то? А вообще, проще всего впаять более быструю градацию микросхемы  . Как показывает практика, если начинаешь чего-то менять в доставшемся по наследству проекте, заканчивается это полной его переделкой  .
|
|
|
|
|
Dec 1 2010, 14:41
|
Местный
  
Группа: Участник
Сообщений: 319
Регистрация: 27-09-07
Пользователь №: 30 877

|
Цитата(Koluchiy @ Dec 1 2010, 17:36)  1) Какая тактовая шины? 2) Недопонял - шина соединяет внутренние блоки одной ПЛИС, и/или эту ПЛИС с еще чем-то? А вообще, проще всего впаять более быструю градацию микросхемы  . Как показывает практика, если начинаешь чего-то менять в доставшемся по наследству проекте, заканчивается это полной его переделкой  . Тактовая 50 МГц Шина соединяет кучу узлов - регистров в плисе и выставляет их наружу - другая плиса их считывает\пишет по етой шине. Цитата(Koluchiy @ Dec 1 2010, 17:36)  А вообще, проще всего впаять более быструю градацию микросхемы  . непрокатит - я поддерживаю рабочий проект, изделия уже работают, их не поменять
|
|
|
|
|
Dec 2 2010, 06:19
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Цитата(AlexRayne @ Dec 1 2010, 16:33)  Здрасте. Достался мне в наследство проект системы на Cyclone2 имеющий общую шину (16бит) с обычным управлением подобно интерфейсу SRAM (Adres, CS, WR, OE).
Вобчем ищу умного совета, как организовывать большую шину и как возможно проще поправить то что есть? В такой шине есть два узких места. Первое - это мультиплексор данных от каждого регистра на общую шину. Впорое - это селектор адреса. С первым - можно бороться так: если известно, что например в регистре готовности читаются только 2 бита из 16-ти, то можно сделать остальные входы оп нулям, а не коммутировать всю шину. И далее, если что-то есть байтное, то тоже написать, что коммутируем байт, а остальное - нули... Со вторым - делается частичная дешифрация. Т.е. в идеале для дешифрации адреса регистра берутся только 2 или 3 старших адреса. Это тоже помогает сократить дешифратор... Далее идет косвенная адресация, как тут уде было сказано. Потом - вставление NOP перед чтением и т.д. Удачи!
--------------------
www.iosifk.narod.ru
|
|
|
|
|
Dec 2 2010, 06:55
|
Местный
  
Группа: Участник
Сообщений: 319
Регистрация: 27-09-07
Пользователь №: 30 877

|
Цитата(iosifk @ Dec 2 2010, 09:19)  В такой шине есть два узких места. Первое - это мультиплексор данных от каждого регистра на общую шину. Впорое - это селектор адреса.
С первым - можно бороться так: если известно, что например в регистре готовности читаются только 2 бита из 16-ти, то можно сделать остальные входы оп нулям, а не коммутировать всю шину. И далее, если что-то есть байтное, то тоже написать, что коммутируем байт, а остальное - нули... как правило младшие биты регистров используются полюбому, так что разгрузить получится только мультиплексоры старших битов Цитата Со вторым - делается частичная дешифрация. Т.е. в идеале для дешифрации адреса регистра берутся только 2 или 3 старших адреса. Это тоже помогает сократить дешифратор... Далее идет косвенная адресация, как тут уде было сказано. очень трудно будет уговорить программиста использовать косвенную адресацию, ето в 2 раза нагрузит канал обмена с хостовым компом, а он и так нагружен понемогуй, и там есть потери, а делать индексную адресацию плисой другой я запарюсь. Цитата вот только не понятно, где вы там нашли мультицикл. 1 такт установление адреса, второй такт чтение, вам бы 3-х тактовую шину, тогда мультицикл на чтение можно было бы использовать. есть возможность ввести как раз лишний такт на адресацию задержкой сигнала HOLDACK - подтвержение захвата шины\он же опознавание наличия узла. но ето ведь только решение половины проблемы, надо же еще както конвейеризовать сам мультиплескор для того чтобы данные не разваливались. неужели такой проблемы невозникает нигде? должнож быть какоето стандартное и приемлемое решение. Цитата по масочке и TCL циклом %) какая блин масочка, проект рисованый схемами, и автор не заморачивался с именами. я запарился конвертить схемы в верилог даже, ибо разные схемы используя символы с одинаковыми именами перетирали модели символов друг друга.
Сообщение отредактировал AlexRayne - Dec 2 2010, 07:06
|
|
|
|
|
Dec 2 2010, 07:19
|
Местный
  
Группа: Участник
Сообщений: 319
Регистрация: 27-09-07
Пользователь №: 30 877

|
Цитата(iosifk @ Dec 2 2010, 10:15)  А частичную дешифрацию адресов?
Может быть есть сигнал "готовности"? Если так, то все просто... а чего просто то? мультиплексор то ведь никуда не девается, по нему данные от регистров должны както пролезть. у меня ведь еще и пакетные передачи активно используются.
|
|
|
|
|
Dec 2 2010, 07:40
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(AlexRayne @ Dec 2 2010, 01:19)  а чего просто то? мультиплексор то ведь никуда не девается, по нему данные от регистров должны както пролезть. с сигналом готовности можно будет мультицикл использовать. Цитата у меня ведь еще и пакетные передачи активно используются. лучше используйте более быструю плис, для вас это самый простой выход.
--------------------
|
|
|
|
|
Dec 2 2010, 07:53
|
Местный
  
Группа: Участник
Сообщений: 319
Регистрация: 27-09-07
Пользователь №: 30 877

|
Цитата(des00 @ Dec 2 2010, 10:40)  с сигналом готовности можно будет мультицикл использовать.
лучше используйте более быструю плис, для вас это самый простой выход. ну а в общем виде как такие беды решаются для систем где скорость имеет значение, ну неохота мультицикл делать? есть ведь у квартуса свои стандарты - авалон к примеру. как я понимаю у него тоже будут такие же беды если узлов на шине много.
|
|
|
|
|
Dec 2 2010, 09:04
|
Местный
  
Группа: Участник
Сообщений: 319
Регистрация: 27-09-07
Пользователь №: 30 877

|
Цитата(des00 @ Dec 2 2010, 10:56)  шины с нормальным handshake + дробление на сегменты с мостами между сегментами.
ЗЫ. скорость != частота это большое ФПГАшное заблуждение. наверно буду дробить на сегменты
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|