|
Выбор схемы приоритетного шифратора, Красивый не собирается |
|
|
|
Jan 30 2013, 18:53
|
Профессионал
    
Группа: Свой
Сообщений: 1 687
Регистрация: 11-01-05
Из: Москва
Пользователь №: 1 884

|
Решаю задачу: есть матрица N*N Любой из N передатчиков может хотеть передать свое сообщение любому из N приемников. N = 5 Каждый передатчик имеет свое собственное фифо, количество данных в котором в каждый момент времени известно. Разрядность шины количества данных в фифо iFifoRdDCntBus = 10 (стандартное фифо Xilinx 2к) Реализую full mesh коммутатор т.е. в какой то момент времени может одновременно идти N передач. Старая схема имела стандартный приоритетный шифратор с вращающимися приоритетами, и все отлично собиралось. Но она не совсем корректна, передача может быть отдана не тому, у кого больше данных, структура потоков в системе определена, и фиксирована, и в определенных направлениях текут основные потоки, в то время как в других потоки очень малы. Поэтому схема с вращающимися приорететами некорректна - передача может быть отдана тому, кто меньше в ней нуждается. Собрал новую схему, в которой наивысшим приорететом обладает наиболее загруженный передатчик, из всех, кто претендует на данный канал. В модели все замечательно, но при попытке синтеза времянка не выполняется. Коммутатор работает на 85 Мгц, кристалл - Virtex2. Скриншот приложил, Ise пишет 24 уровня логики, 19 нан лучшее время. Чешу голову, как бы собраться чтоб все было и ничего за ето не было. Какие еще шифраторы бывают ? Схему со строго фиксированными приорететами собрать нельзя, они все таки зависят от конкретной сборки системы, полагаю, проблема в 10- разрядных компараторах, и дурацкой перекрестной адресации - любой может обратиться к любому, поетому получается сложно. Help
Эскизы прикрепленных изображений
--------------------
Если хочешь узнать, что ждет тебя на дороге впереди, спроси у тех, кто возвращается по ней.
|
|
|
|
|
 |
Ответов
|
Jan 31 2013, 10:44
|
Профессионал
    
Группа: Свой
Сообщений: 1 687
Регистрация: 11-01-05
Из: Москва
Пользователь №: 1 884

|
Цитата(Timmy @ Jan 31 2013, 11:06)  Используйте конвейер, в первые несколько ступеней можно положить компараторы, на выходе получить вектор из пяти трёхбитовых чисел, описывающих приоритет каждого передатчика. Этим вектором будут пользоваться все приёмники. И ещё одну ступень конвейера для выбора передатчика к каждому приёмнику(предполагается, что каждый передатчик выставляет пять бит запроса на передачу для каждого приёмника), тут требуется три слоя логики, частота должна получиться около 150МГц. Идея неплоха. Возникает лишь вопрос, как бороться с ситуацией, когда в конце передачи в конвейере хранится для отработавшего передатчика число слов = 2, а в реальности там уже ничего нет. Он получит грант, а передавать будет нечего) К тому же, общий приоритет, ето неплохо. Но в конкретный приемник хотят попасть не все, а лишь некоторые передатчики. Мда решено. огромное спасибо, комбинирование идей и дает нужный результат. Я просто придумал, как сделать преобразование: число данных -> приоритет. таким образом компараторы становятся 3 разрядными, плюс общий механизм приоритетов - и схема существенно упростится. Кстати вчера вяснилась интересная вещь. Я синтезирую в Syn есно, и 9.6.2 построил схему с 24 уровнями, а 2011.9 развел тот же проект без проблем со времянкой. Ето еще более интересно тем, что на других проектах, когда я сравнивал эти синтезаторы, 9.6.2. имел преимущество во времянке и плотности упаковки не менее 5%.
--------------------
Если хочешь узнать, что ждет тебя на дороге впереди, спроси у тех, кто возвращается по ней.
|
|
|
|
|
Jan 31 2013, 11:13
|
Знающий
   
Группа: Участник
Сообщений: 835
Регистрация: 9-08-08
Из: Санкт-Петербург
Пользователь №: 39 515

|
Цитата(a123-flex @ Jan 31 2013, 14:44)  Идея неплоха. Возникает лишь вопрос, как бороться с ситуацией, когда в конце передачи в конвейере хранится для отработавшего передатчика число слов = 2, а в реальности там уже ничего нет. Он получит грант, а передавать будет нечего) К тому же, общий приоритет, ето неплохо. Но в конкретный приемник хотят попасть не все, а лишь некоторые передатчики. Конвейер я предполагаю только для предварительного вычисления вектора приоритетов, гранты раздаются уже после того в одном цикле. Запросы на передачу не обязательно конвейеризовать. Кроме того, даже получение гранта на передачу при отсутствии данных не является проблемой - можно сразу завершить транзакцию, ничего не передавая, всё равно других срочных данных от других передатчиков для этого приёмника нет. Каждый приёмник имеет своего персонального арбитра, но входными данными для арбитров являются не исходные 10 битовые числа, а обработанные и отсортированные трёхбитовые, обеспечивающие тривиальный алгоритм арбитража.
|
|
|
|
Сообщений в этой теме
a123-flex Выбор схемы приоритетного шифратора Jan 30 2013, 18:53 Maverick Цитата(a123-flex @ Jan 30 2013, 20:5... Jan 30 2013, 21:48 litv я бы рекомендовал синтезатор synplify. Jan 31 2013, 03:50   a123-flex Цитата(Timmy @ Jan 31 2013, 14:13) Конвей... Jan 31 2013, 11:17    Timmy Цитата(a123-flex @ Jan 31 2013, 15:1... Jan 31 2013, 11:38     a123-flex Цитата(Timmy @ Jan 31 2013, 14:38) Причём... Jan 31 2013, 11:42
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|