Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SATA на Arria II GX Development Kit
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
Tue
Делаем проект SATA Rev. 2.0 на Arria II GX Dev. Kit + SATA/SAS Daughter Card платах. Используем ALTGX-мегафункцию для доступа к трансиверам (настраивали так, как указывается в AN635). На моделях отладили - все работает. Проблема на физическом уровне, OOB-последовательность. ALTERA указывает, что в микросхемах Arria 2 GX, есть аппаратный баг, при котором "в железе" сигнал rx_signaldetect от ALTGX корректно не работает (все время в лог. '1'). По этой ссылке они советуют пользователям Quartus 11.0 и выше (мы используем Quartus 11.0 SP1) добавить в qsf-файл строки :
Код
set_instance_assignment -name ARRIAIIGX_RX_CDR_LOCKUP_FIX_OVERRIDE ON -to rx_datain[0]

Where rx_datain[0] is the RX channel net name using rx_signaldetect signal (e.g. SAS/SATA channel).
Добавляем - НЕ помогает, rx_signaldetect все также в лог. '1'. Потерся на alteraforum'e, там у человека возникла такая же проблема, он применил указанное решение и говорит, что все заработало. Нам это не помогло. Читая доки на Arria 2 GX трансиверы на странице 596 Arria 2 GX Handbook нашел следующее:
Цитата
For other functional modes that do not have the rx_signaldetect output port but require hot socketing, you have several options available to determine the link status. You can logically AND together any combinations of these options and use them alternatively as a loss-
of-link status indicator.
.........

Option 2: Implement a Digital Loss of Signal detector by enabling the Run Length Violation option in the Word Aligner to detect bit transitions in a predetermined sliding window length.
...........


Вообщем предлагают использовать сигнал rx_rlv. Вывел. Судя по моделированию ведет он себя примерно как инверсия нужного мне сигнала rx_signaldetect.

Собрал проект с Хостом и Девайсом внутри ПЛИС, замкнул друг на друга Хост с Девайсом на SATA/SAS Daughter Card - хорошо, OOB-механизм отрабатывает и устанавливает Link.

Далее соединяю Хост внутри ПЛИС с реальным Девайсом (жестким диском) - хорошо, OOB-механизм также отрабатывает и устанавливает Link.

Далее соединяю Девайс внутри ПЛИС с реальным Хостом (компьютером на Intel ICH10, Intel H67 - чипсетах) - плохо. OOB-механизм не отрабатывает, потому что сигнал rx_rlv, который я пытаюсь использовать как rx_signaldetect не ведет себя так, как надо во время OOB. И в этом проблема, не могу связаться с Хостом.

Всвязи с этим есть такие вопросы:

1. Кто-нибудь пользовал ALTGX трансиверы в Basic-режиме на микросхемах Arria 2 GX ? Как боролись с аппаратным багом сигнала rx_signaldetect ? Как все-таки заставить его работать корректно ?

2. Пока не решен вопрос 1, в чем может быть проблема в установлении соединения с Хостом ?
Tue
Никто не сталкивался с подобной проблемой ?
Наверняка на форуме тусуются технические специалисты фирм-дистрибьютеров ALTERы в России. Что скажете ?
Stewart Little
Цитата(Tue @ Oct 24 2011, 11:06) *
Никто не сталкивался с подобной проблемой ?
Наверняка на форуме тусуются технические специалисты фирм-дистрибьютеров ALTERы в России. Что скажете ?

Скажу, что Ваш запрос в альтеру отправлен. Ждем ответа...
Tue
Решил проблему с сигналом rx_signaldetect. Необходимо в qsf-файле добавить строки
Код
set_instance_assignment -name ARRIAIIGX_RX_CDR_LOCKUP_FIX_OVERRIDE ON -to rx_datain
, где rx_datain - это название пина микросхемы (или порта в top_level_module), в который приходит сигнал и поступает в ALTGX. Оказывается не надо указывать всю нисходящую иерархию с самого верха до ALTGX. Т.к. решился вопрос с rx_signaldetect автоматически решился вопрос связи с Хостом. Надеюсь кому-нибудь это пригодится. Всем спасибо за внимание.

Забыл сказать. Если в ПЛИС делать Device (на SATA/SAS меззанинной плате от Terasic) и подключать его к компьютеру-хосту, то нельзя использовать обычный SATA-кабель, пристствующий в системном блоке. Необходимо использовать кроссовый (crossover) кабель.
myq
Занимаюсь примерно тем же. Но пока - в симуляции. Скоро буду подключать к хосту и диску - посмотрю, что у меня будет.

p.s.
Вообще в последнее время общее мнение об Альтере можно выразить цитатой из кино "5-й элемент": "I AM DISAPPOINTED".
Сначала мы предполагали использовать cyclone iv gx и заказали их. Потом Альтера (спутя год, после запуска производства этих ПЛИС) сказала, что SSC для SATA в cyclone iv gx не работает. Теперь частичные проблемы с Arria. Были и другие проблемы, всех здесь не перечислить.
А меж тем на Spartan 6 - работает всё - sata 3gb/s + ssc. Обновлённый Spartan 6 - Artix 7 будет способен держать ещё и sata 6 gb/s (в отличие от cyclone v).

P.p.s.
Если не секрет, ядро sata делали сами, или воспользовались готовым?

p.p.p.s
По Вашей ссылке на Альтеру тема вопроса звучит так:
Why does the Arria II GX transceiver CDR, configured in automatic locked mode, keeps the rx_freqlocked signal asserted in any other mode except PCIe mode?

Вы использовали Automatic lock mode? Мне казалось, надо использовать Manual... Или у Вас rx_signaldetect не работал в Manual mode ?
myq
(удалить это сообщение)
Tue
Цитата(myq @ Mar 17 2012, 11:46) *
Потом Альтера (спутя год, после запуска производства этих ПЛИС) сказала, что SSC для SATA в cyclone iv gx не работает.

насколько я помню, Cyclone 4 GX на передачу SSC на уровне трансиверов не поддерживает (если нужно SSC на Tx - использовать соответствующий тактовый генератор с модуляцией). А вот принимать SSC сигнал - пожалуйста.
Делали сами
Цитата
По Вашей ссылке на Альтеру тема вопроса звучит так:
Why does the Arria II GX transceiver CDR, configured in automatic locked mode, keeps the rx_freqlocked signal asserted in any other mode except PCIe mode?

Вы про какую ссылку ? по моей ссылке тема вопроса звучит так: Why is rx_signaldetect always stuck high in hardware and stuck low in simulation for Arria II GX devices?
Цитата
Вы использовали Automatic lock mode? Мне казалось, надо использовать Manual... Или у Вас rx_signaldetect не работал в Manual mode ?
Мы использовали Manual Lock Mode
myq
По поводу SSC в C4GX у меня была долгая переписка, закончилась их ответом:

Based on the latest factory characterization result, Cyclone IV GX EP4CGX30 (F484 package), EP4CGX50, and EP4CGX75 are not compatible for protocols (DisplayPort, Vx1 & Sata) that use Spread Spectrum Clocking (SSC).

The transceiver channels do not support tracking of the incoming data with asynchronous spread spectrum clock
(SSC) modulation even though you turn on the SSC feature.

Noticed that this is device problem, not quartus problem, so not related to which Quartus version you used.


Нет, мы на Xilinx не перешли ещё, это такой момент негодования. До массового выхода Cyclone V, Arria V и Artix 7 ещё далеко. Может оказаться что младший Arria V GX, который поддержит 6 gb/s окажется сравним по цене с топовым artix 7, который также его поддержит. (Текущий Arria II, который держит 6 gb/s стоит как Stratix). Может и нет, и тогда Альтера текущий раунд конкуретной борьбы может проиграть. Подождём - посмотрим.
Tue
По поводу SSC на Cyclone 4 GX могу сказать, что мы завели проект ПЛИС SATA 2.0 (3 Гбит/с) на этой отладочной плате, отлично работает. В даташите на Cyclone 4 GX читаю следующее:
Цитата
Cyclone IV devices can accept a spread-spectrum input with typical modulation
frequencies. However, the device cannot automatically detect that the input is a
spread-spectrum signal. Instead, the input signal looks like deterministic jitter at the
input of the PLL. PLLs of Cyclone IV devices can track a spread-spectrum input clock
as long as it is in the input jitter tolerance specifications and the modulation frequency
of the input clock is below the PLL bandwidth, that is specified in the fitter report.
Cyclone IV devices cannot generate spread-spectrum signals internally.

Если взглянуть на "Table 27 - General Specification", максимальное значение параметра Fssc (SSC Modulation Frequency) может достигать 33кГц. PLL Bandwidth для Cyclone 4 GX на этом ките по отчету Fitter'a составляет 1.03 - 1.97 МГц. Так что с этим все впрорядке.
CDR ppm tolerance (with synchronous SSC enabled): (-5350) - (+350) - как раз укладывается в SATA спецификацию. А что такое "asynchronous spread spectrum clock" ?
myq
А что такое "asynchronous spread spectrum clock"
Не знаю. Они ещё мне в переписке сказали, что если я буду использовать Async SSC для SATA - то плохо, а вот, если Synchronous SSC - то ок. В чём разница - не знаю, знаю только, что Sync SSC - это для PCIe.

Может это случай, когда модуляции приёмной и передающей стороны - согласованы..
myq
Всем привет.

Начал пробовать SATA-Host ядро на Arria II GX с патчем rx_signaldetect, о котором писали выше.
Странная вещь - rx_signaldetect во время OOB находится в верхнем состоянии время порядка 6 двойных слов (размер шины - 16 бит).
А должно быть во время OOB bursts - 4 двойных слова, уж больно велика разница.
При этом на rx_ctrldetect/rx_dataout - наблюдается также 4 двойных слова, почему же тогда rx_signaldetect высокий гораздо больше по времени.

Кто-нибудь с этим сталкивался?
Tue
Цитата(myq @ Jun 15 2012, 21:36) *
Начал пробовать SATA-Host ядро на Arria II GX с патчем rx_signaldetect, о котором писали выше.
Странная вещь - rx_signaldetect во время OOB находится в верхнем состоянии время порядка 6 двойных слов (размер шины - 16 бит).
А должно быть во время OOB bursts - 4 двойных слова, уж больно велика разница.
При этом на rx_ctrldetect/rx_dataout - наблюдается также 4 двойных слова, почему же тогда rx_signaldetect высокий гораздо больше по времени.

Кто-нибудь с этим сталкивался?

Не понял про 6 двойных слов и 4 двойных слова. Если я правильно помню, во время OOB подается 6 пульсаций длительностью 160 OOBI. Думаю, что во время OOB не надо всерьез принимать то, что выдают rx_ctrldetect/rx_dataout
myq
Спасибо за отклик.
"1 Burst - 4 двойных слова", тут я имею в виду то, что 160 UI = 160 бит на скорости Gen1 = 4 двойных слова Gen1 по длительности передачи.
Так вот, длительность высокого уровня rx_signaldetect процентов на 30 выше, чем 160 UI, а длительность низкого уровня - ниже, чем 480 UI. Ощущение, что signaldetect взводится сразу, как только сигнал на линии есть, а сбрасывается - не сразу, а с большой задержкой.
У Вас не было такого?
Tue
В одной книге я прочитал такое: "The receiver does not have to verify the proper burst time and only measures the idle times". Также посмотрите прикрепленную картинку, мне она в свое время помогла
Tue
Недавно столкнулись с проблеммой рассинхронизации приемника (нашего на C4GX) с передатчиком (ЖД или Хост-компьютер) на физическом уровне. Раньше все было нормально. Но недавно принесли какие-то жесткие диски, с которыми происходит указанная проблема. Включаем питание, отрабатывает OOB и очень быстро из ALTGX начинают сыпаться ошибки Disparity Error (сигнал rx_disperr) 8b10b Error (rx_errdetect). Такое чувство, что это происходит как раз из-за SSC. То ли предыдущие ЖД не использовали SSC, то ли использовали какой-то простой вариант модулирования что на них синхронизация не терялась. А вот на этом ЖД Seagate Barracuda ST500DM002 видимо используется какой-то "умный" SSC, что мой ALTGX-приемник теряет синхронизацию. Как проверить что дело именно в этом - не знаю, приборов для такой частоты нет. Кто-нибуль сталкивался с подобным на C4GX-микросхемах ? Или уходили на Spartan'ы ? Там таких проблем нет ?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.