Добрый день! Пишет вам благодарный, но немного бестолковый пользователь вашего проекта

Только начал вникать в ваши исходники, поэтому вопросов огромное множество, но пока не буду их все вываливать, надеюсь что постепенно сам разберусь.
Итак, скачал с ds-dev.ru архив ambpex5_v20_sx50t_core_2012_04_09_v1_1_build_0x100.zip. Собрал в ISE, немного исправил под свою плату с XC5VFX30T. Скачал оттуда же исходники под linux, скомпилил то что в application/adm_test. Результаты тестов примерно такие (соединение x1):
test_dio_s128.cfg
Код
BLOCK_WR BLOCK_RD BLOCK_OK BLOCK_ERR SPD_CURR SPD_AVR STATUS
TRD : 4 0 -544350728 0 0 1423616.0 100837.2 0xFFFF 0 0
TRD : 6 0 0 0 0 0.0 0.0 0x004F 1 0
out_dio_s128.cfg
Код
BLOCK_WR BLOCK_RD BLOCK_OK BLOCK_ERR SPD_CURR SPD_AVR STATUS
TRD : 4 0 1919343662 0 0 1485236.4 5566.9 0xFFFF 0 0
TRD : 7 1024 0 0 0 0.0 0.0 0x0073
Тест test_main.cfg вылетает с segmentation fault. Результаты вроде обнадеживают. Непонятны некоторые величины, выдаваемые прогой:
если текущая скорость остается примерно одинаковой, то средняя скачет многократно и показывает явно заниженные значения. Это какой-то глюк? Можно вкратце пояснить способ измерения скорости?
Можно пояснить смысл столбцов в логе? Для меня только значения скорости оказались интуитивно понятны.
Касаемо прошивки плис:
правильно ли я понимаю, что само ядро интерфейса это PCIE_CORE64_M1, ну или PCIE_CORE64_M2, если нужна обычная параллельная шина LC bus? И для того, чтобы использовать ядро, достаточно приделать к этой шине свой источник данных, например FIFO-буфер?