Во второй части этого цикла публикаций речь шла про универсальный тест корректности передачи данных через универсальный скоростной последовательный интерфейс GTX/GTP встроенный в ПЛИС фирмы Xilinx. Однако, хотелось бы этот тест настроить именно на параметры SATA интерфейса и посмотреть, как все будет работать.
Первое, что необходимо для такой перенастройки — это установка кварцевого генератора на 150 МГц. Такая доработка уже выполнена.
Вторая доработка потребовалась из-за того, что на плате «Wukong» нет SATA портов. Пришлось «подвесить» их на дополнительной плате. Вот что получилось:
Посмотрим, каким ножкам SATA разъема, какие соответствуют функции со стороны контроллера, а какие со стороны накопителя информации. Разобраться в этом поможет SATA спецификация этими картинками:
Определение положения ключа:
Процесс конфигурации ядра IBERT для SATA под микросхему Artix-7.
Добавляем к проекту новое IP-ядро.
Настройка скорости:
Указания положения GTP приемопередатчика в микросхеме ПЛИС.
Следует заметить, что указав номер задействованного GTP автоматически указываются ножки выхода TX_p, TX_n и ножики входа RX_p и RX_n.
Готовый проект выложен на gitgub: https://github.com/rlabru/SATA_IBERT
Не смотря на то, что дифференциальные линии реализованы проводом МГТФ на переходной плате и висят в воздухе на скорости 3 гигабита, ошибок нет. Да это еще при том, что полная длина линии от передатчика до приемника больше метра…
А вот так выглядит плата замыкания интерфейса самого на себя:
Тут тоже не обошлось без провода МГТФ подвешенного в воздухе…
Наблюдать работу теста можно в программе Chipscope:
А что видно через SAS/SATA анализатор Lecroy?
Кстати, при подключении через анализатор тест идет без проблем. Плюс анализатор показывает 3 гигабита скорости.
Не забывайте делать бэкап. До новых встреч!
PS. Все публикации этой серии доступны по метке «SATA».