novartis
Jan 20 2016, 05:03
Если в корку pcie засылать непрерывный поток данных, то рано или поздно она опустит сигнал tx_st_ready, означающий, что приёмный буфер заполнен, необходимо тормознуть передачу данных.
Почему то раньше думал, что сигнал формирует сама корка и заполняетсч её внутренний буфер.
Немного разбираюсь с pcie и прихожу к пониманию, что заполняется буфер на стороне ПК (направление данных ПЛИС -> ПК). Из контроллера pcie ПК как раз и излучается сигнал о том, что нужно притормозить поток.
Так ли это?
novartis
Mar 20 2016, 10:40
Вопрос все еще актуален!
Возник еще один вопрос по ядру PCIE от Альтеры: как оценить задержку передачи данных от входа ядра до выхода ядра.
То есть вот подаю я в ядро данные - 128 битные слова на частоте 250МГц (Стратикс 4 PCIE x8 Gen2),
ядро их сериализует, кодирует 8/10, производит все необходимые действия, и на выходе имеем 8 линков.
Можно ли оцеить время, затрачиваемое на эти операции?
При создании ядра альтера позволяет сгенерить модель для симуляции.
Я решил, что может с ее помощью получится что-то разузнать.
Запустил в моделсиме эту симуляцию, вывел нужные мне сигналы для просмотра,
но оказалось, что модель не затрагивает линки, на гигабитных ногах корки тишина.
Пошел другим способом. У ядра есть сигналы test_in и test_out.
С помощью test_out можно отслеживать внутренние состояния ядра.
Младшие 8 бит этого сигнала как я понял - это то, что непосредственно на lane.
Думал, если ничего не подавать, то там нули будут, если подать - то через какую то паузу там данные проскочат,
но опять оказалось, что там постоянно что-то передается, а чтобы именно свои данные там обнаружить - это нужно их кодировать 8/10 и может еще чего.
Вообщем, может кто что подскажет?
novartis
Mar 26 2016, 12:04
Неужели никто ничего не подскажет по этим вопросам?