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