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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> как поправить общую шину?, разваливаются тайминги шины ибо много узлов на ней
AlexRayne
сообщение Dec 1 2010, 13:33
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 319
Регистрация: 27-09-07
Пользователь №: 30 877



Здрасте.
Достался мне в наследство проект системы на Cyclone2 имеющий общую шину (16бит) с обычным управлением подобно интерфейсу SRAM (Adres, CS, WR, OE). На шине навешаны регистры управляющие работой системы. Регистры как записываются так и читаются по етой общей шине - для етого их выходы выставляются на нее через tribuf - буферы. И ква эту шину нормально конвертит в мультиплексор.
беда моя началась после добавления к шине очередного регистра - тайминг анализ стал показывать что выход одного регистра до входа другого не укладывается в тактовую шины.

Глобально ломать тайминги шины нехочется ибо придется перепиливать проекты других устройств сопряженных с проблемным.
Есть надежда что если я както сумею разделить пути: от шины ко входам регистров и от выходов к шине то уложусь в тактовую.
Еще есть одна надежда:
у меня 1 такт шины занят выставлением адреса перед чтением\записью - этот такт можно былобы использовать для синхронного мультиплексора, если бы я сам делал его, но он синтезируется самим квартусом;
или можно попробовать обконстрейнить мультиклок, одна беда узлов больше полусотни, я заколебусь это делать.

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

Go to the top of the page
 
+Quote Post
Koluchiy
сообщение Dec 1 2010, 14:36
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543



1) Какая тактовая шины?
2) Недопонял - шина соединяет внутренние блоки одной ПЛИС, и/или эту ПЛИС с еще чем-то?

А вообще, проще всего впаять более быструю градацию микросхемы smile.gif.
Как показывает практика, если начинаешь чего-то менять в доставшемся по наследству проекте, заканчивается это полной его переделкой smile.gif.
Go to the top of the page
 
+Quote Post
AlexRayne
сообщение Dec 1 2010, 14:41
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 319
Регистрация: 27-09-07
Пользователь №: 30 877



Цитата(Koluchiy @ Dec 1 2010, 17:36) *
1) Какая тактовая шины?
2) Недопонял - шина соединяет внутренние блоки одной ПЛИС, и/или эту ПЛИС с еще чем-то?

А вообще, проще всего впаять более быструю градацию микросхемы smile.gif.
Как показывает практика, если начинаешь чего-то менять в доставшемся по наследству проекте, заканчивается это полной его переделкой smile.gif.

Тактовая 50 МГц
Шина соединяет кучу узлов - регистров в плисе и выставляет их наружу - другая плиса их считывает\пишет по етой шине.

Цитата(Koluchiy @ Dec 1 2010, 17:36) *
А вообще, проще всего впаять более быструю градацию микросхемы smile.gif.


непрокатит - я поддерживаю рабочий проект, изделия уже работают, их не поменять
Go to the top of the page
 
+Quote Post
Koluchiy
сообщение Dec 1 2010, 14:56
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543



Дайте временную диаграмму работы шины.
Go to the top of the page
 
+Quote Post
des00
сообщение Dec 1 2010, 17:30
Сообщение #5


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(AlexRayne @ Dec 1 2010, 07:33) *
или можно попробовать обконстрейнить мультиклок, одна беда узлов больше полусотни, я заколебусь это делать.

по масочке и TCL циклом %)

вот только не понятно, где вы там нашли мультицикл. 1 такт установление адреса, второй такт чтение, вам бы 3-х тактовую шину, тогда мультицикл на чтение можно было бы использовать.


--------------------
Go to the top of the page
 
+Quote Post
Shtirlits
сообщение Dec 2 2010, 02:43
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905



Надо разгрузить мультиплексор. Сделать ревизию, выбросить ненужное.
А что если договориться с программистом, чтобы чтение регистров нового блока предварялось записью индекса читаемого регистра?
Такое было в старых видеоплатах.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Dec 2 2010, 06:19
Сообщение #7


Гуру
******

Группа: Модераторы
Сообщений: 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
Go to the top of the page
 
+Quote Post
AlexRayne
сообщение Dec 2 2010, 06:55
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
sazh
сообщение Dec 2 2010, 07:14
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804



Цитата(AlexRayne @ Dec 2 2010, 09:55) *
проект рисованый схемами, и автор не заморачивался с именами. я запарился конвертить схемы в верилог

Придется переписать.
Непонятно, почему не успеваете. Да и мультиплексирование получается, если шины по z состоянию без выхода на внешние пины реализованы.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Dec 2 2010, 07:15
Сообщение #10


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



А частичную дешифрацию адресов?

Может быть есть сигнал "готовности"? Если так, то все просто...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
AlexRayne
сообщение Dec 2 2010, 07:19
Сообщение #11


Местный
***

Группа: Участник
Сообщений: 319
Регистрация: 27-09-07
Пользователь №: 30 877



Цитата(iosifk @ Dec 2 2010, 10:15) *
А частичную дешифрацию адресов?

Может быть есть сигнал "готовности"? Если так, то все просто...


а чего просто то? мультиплексор то ведь никуда не девается, по нему данные от регистров должны както пролезть.
у меня ведь еще и пакетные передачи активно используются.
Go to the top of the page
 
+Quote Post
des00
сообщение Dec 2 2010, 07:40
Сообщение #12


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(AlexRayne @ Dec 2 2010, 01:19) *
а чего просто то? мультиплексор то ведь никуда не девается, по нему данные от регистров должны както пролезть.

с сигналом готовности можно будет мультицикл использовать.

Цитата
у меня ведь еще и пакетные передачи активно используются.

лучше используйте более быструю плис, для вас это самый простой выход.


--------------------
Go to the top of the page
 
+Quote Post
AlexRayne
сообщение Dec 2 2010, 07:53
Сообщение #13


Местный
***

Группа: Участник
Сообщений: 319
Регистрация: 27-09-07
Пользователь №: 30 877



Цитата(des00 @ Dec 2 2010, 10:40) *
с сигналом готовности можно будет мультицикл использовать.


лучше используйте более быструю плис, для вас это самый простой выход.


ну а в общем виде как такие беды решаются для систем где скорость имеет значение, ну неохота мультицикл делать? есть ведь у квартуса свои стандарты - авалон к примеру. как я понимаю у него тоже будут такие же беды если узлов на шине много.
Go to the top of the page
 
+Quote Post
des00
сообщение Dec 2 2010, 07:56
Сообщение #14


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(AlexRayne @ Dec 2 2010, 01:53) *
ну а в общем виде как такие беды решаются для систем где скорость имеет значение, ну неохота мультицикл делать? есть ведь у квартуса свои стандарты - авалон к примеру. как я понимаю у него тоже будут такие же беды если узлов на шине много.

шины с нормальным handshake + дробление на сегменты с мостами между сегментами.

ЗЫ. скорость != частота это большое ФПГАшное заблуждение.


--------------------
Go to the top of the page
 
+Quote Post
AlexRayne
сообщение Dec 2 2010, 09:04
Сообщение #15


Местный
***

Группа: Участник
Сообщений: 319
Регистрация: 27-09-07
Пользователь №: 30 877



Цитата(des00 @ Dec 2 2010, 10:56) *
шины с нормальным handshake + дробление на сегменты с мостами между сегментами.

ЗЫ. скорость != частота это большое ФПГАшное заблуждение.

наверно буду дробить на сегменты
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 11:50
Рейтинг@Mail.ru


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