Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Nios + SSRAM
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
ISK
Доброе время суток! Помогите разобраться.

Создаю в qsys проект. Нужно присоединить ниос (StratixIV) к внешней SSRAM (CY7C1460). Для этого добавляю в проект Generic Tri-state Controller и Tri-State Conduit Bridge. В настройках Tri-state контроллера во вкладке "Signal Timing" устанавливаю:
Read wait time = 0
Write wait time = 0
Setup wait time = 0
Data hold time = 2
Maximum pending read transactions = 8
Turn around time = 1
Timing units = cycles
Read latency = 3

Тактовая частота системы 50 МГц.

Компилирую, запускаю. На команде testRdData = IORD_32DIRECT(SSRAM_2_BASE, 2) (а вообще при любом чтении из SSRAM) виснет процессор.
Меняю параметр Data hold time c 2 на 0 : процессор не виснет, данные в память пишутся и читаются (смотрю сигналтапом), но данные записываются неправильно, так как всё-таки при записи нужен hold. Другие варианты настроек не подходят, т.к. нужно максимальное быстродействие.
Может что-то упустил?
vadimuzzz
Цитата(ISK @ Jan 25 2012, 23:56) *
Может что-то упустил?

почти наверняка sm.gif
насколько я помню, всякие * wait time исчисляются в циклах процессора/шины, так что вбитые времянки округлятся.
желательно посмотреть в моделсиме или в сигнал-тапе и свериться с даташитом.
Цитата
нужно максимальное быстродействие.

а конкретнее - максимальная тактовая или минимальная латентность? они как бы противоречат друг другу
ISK
Не совсем понял, как времянки округлятся? в настройках tristate контроллера есть параметр Timing units = cycles. Тактовая частота 50 Мгц. Память синхронная, тактируется той же частотой, что и процессор, только со сдвижкой. Вообще-то именно с времянкой сигналов на шине всё в порядке, проверял и по даташиту, и на практике. Проблема в том что при правильных (как мне кажется) установках tristate контроллера зависает ниос.

По поводу быстродействия. Насколько я понимаю, максимально возможную скорость чтения данных из данного типа SSRAM (при правильных установках) можно сделать равной тактовой частоте (в данном случае 50 МГц, в идеале хотелось бы 200) При этом Read latency равно 3, то есть данные на выходе SSRAM появляются через 3 такта. И альтеровский авалон это правильно интерпретирует во внутреннюю шину. Что касается записи, то авалон вроде бы не поддерживает латентность, соответственно, в установках нет такого параметра как Write latency. Зато есть параметр Data hold time, что позволяет растянуть цикл записи до нужного числа тактов, в данном случае 2. Поэтому максимальная скорость записи данных будет в три раза меньше тактовой. Конечно всё это имеет смысл при потоковом чтении/записи данных.
ISK
Забыл добавить - QuartusII и Nios EDS - версии 11.1 Build 173
vadimuzzz
Цитата(ISK @ Jan 26 2012, 14:52) *
Не совсем понял, как времянки округлятся? в настройках tristate контроллера есть параметр Timing units = cycles.

раньше там был вариант и с наносекундами. скорее всего проблема среди 3-х нулей в первых показанных параметрах.
ISK
Цитата(vadimuzzz @ Jan 27 2012, 09:08) *
раньше там был вариант и с наносекундами. скорее всего проблема среди 3-х нулей в первых показанных параметрах.


Так там и сейчас можно перейти на наносекунды. Но надо в клоках sm.gif А насчёт нулей - не знаю, а чем плохо? В документации на авалон ничего об этом не сказано.
Я всё-таки предполагаю что проблема где-то на уровне Quarus - Nios EDS. Вот, например, в этом же проекте была проблема с DDR3 (ошибка калибровки). Так вот решается она если перед перекомпиляцией удалить все файлы из папки DB рабочего проекта. Может и здесь что-то подобное. Но не исключено что и руки немного кривые sm.gif
vadimuzzz
Цитата(ISK @ Jan 27 2012, 17:05) *
Вот, например, в этом же проекте была проблема с DDR3 (ошибка калибровки).

вряд ли, тут намного проще, чем с ddr. либо кривые времянки (сверяемся с даташитом), либо ноги неправильно назначены. в любом случае, в сигналтапе д.б. видно
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.