|
ATA контроллер & ПЛИС |
|
|
|
Jun 22 2009, 14:29
|
Группа: Участник
Сообщений: 3
Регистрация: 11-06-09
Пользователь №: 50 191

|
Посоветуйте, пожалуйста, как лучше реализовать ATA контроллер, работающий на одной плате с ПЛИС (Virtex-5). Отдельная микросхема или IP Core?
|
|
|
|
|
Jun 23 2009, 05:23
|
Участник

Группа: Участник
Сообщений: 23
Регистрация: 15-08-06
Из: Russia
Пользователь №: 19 554

|
Цитата(SD713 @ Jun 22 2009, 18:29)  Посоветуйте, пожалуйста, как лучше реализовать ATA контроллер, работающий на одной плате с ПЛИС (Virtex-5). Отдельная микросхема или IP Core? А какие задачи решает ПЛИС?
|
|
|
|
|
Jun 23 2009, 11:04
|
Группа: Участник
Сообщений: 3
Регистрация: 11-06-09
Пользователь №: 50 191

|
Цитата(water @ Jun 23 2009, 09:23)  А какие задачи решает ПЛИС? ПЛИС управляет потоком данных, которые должны как читаться с HDD, так и записываться на HDD.
|
|
|
|
|
Jun 24 2009, 04:37
|
Участник

Группа: Участник
Сообщений: 23
Регистрация: 15-08-06
Из: Russia
Пользователь №: 19 554

|
Цитата(DmitryR @ Jun 23 2009, 19:29)  Все может и переходят, только ATA можно сделать самому довольно легко или взять на OpenCores, а SATA говорят где-то в человеко-год выходит, и стоит несколько десятков тысяч долларов. Тогда совсем не понятно, что Вы хотите сделать? На мой взгляд стоит делать то что будет иметь смысл и через 5 лет, а заниматься ради того что бы через пару лет все переделывать заново - какой смысл? Ну это мой взгляд, Ваше право с ним не согласиться. А что касательно вопроса непосредственной реализации то, на мой взгляд, лучшим решением будет упаковка в одну ПЛИС всех ваших задач.
|
|
|
|
|
Jun 25 2009, 11:18
|
Частый гость
 
Группа: Свой
Сообщений: 195
Регистрация: 9-01-09
Из: Москва
Пользователь №: 43 085

|
Цитата(DmitryR @ Jun 23 2009, 19:29)  Все может и переходят, только ATA можно сделать самому довольно легко или взять на OpenCores, а SATA говорят где-то в человеко-год выходит, и стоит несколько десятков тысяч долларов. Virtex 5 имеет гигабитные трансиверы, так что самая сложная часть SATA уже считай готова. А уже сам протокол реализовать, по-моему, дело нехитрое.
|
|
|
|
|
Jul 6 2009, 12:16
|
Частый гость
 
Группа: Свой
Сообщений: 199
Регистрация: 2-03-05
Из: МОСКВА
Пользователь №: 3 016

|
Цитата(SD713 @ Jun 22 2009, 18:29)  Посоветуйте, пожалуйста, как лучше реализовать ATA контроллер, работающий на одной плате с ПЛИС (Virtex-5). Отдельная микросхема или IP Core? Я делал на V4. Для согласования ставил 95хх(CPLD), она у меня работала как выходной регистр. Сам автомат делал на Виртексе. Ничего сложного. Обычный, в общем-то , последовательно -параллельный интерфейс.
|
|
|
|
|
Jul 16 2009, 13:09
|
Частый гость
 
Группа: Свой
Сообщений: 199
Регистрация: 2-03-05
Из: МОСКВА
Пользователь №: 3 016

|
Цитата(Kuzmi4 @ Jul 16 2009, 16:40)  2 tolik1 - то есть вы использовали 95хх(CPLD) как переходник уровней для PATA-V4 ? Да. Не очень оптимально, но работает.
|
|
|
|
|
Jul 16 2009, 13:23
|
Частый гость
 
Группа: Свой
Сообщений: 199
Регистрация: 2-03-05
Из: МОСКВА
Пользователь №: 3 016

|
Цитата(VslavX @ Jul 16 2009, 17:19)  А UDMA делали? Для ATA100-133 уже по времянке могут быть проблемы. Нет. Такого не делал. Писать надо было не быстро, но много.
|
|
|
|
|
Sep 24 2009, 08:18
|

Гуру
     
Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329

|
Здравствуйте. Забуксовал я что-то на реализации этого контроллера.. Разжился даже ANSI INCITS 397-2005, однако это не помогло.. Винт - HM160HC Проблема вся заключается в том, что времянку организовываю согласно "Register transfer to/from device timing" для PIO 0, а поведение железяки совсем не по стандарту. Делаю согласно стандарта(после ресета плиски) - "hardware reset protocol", после того как читаю статус и получаю BSY==0, перехожу к стадии идентификации устроства - записываю сначала в Device/Head Register Dev==0, а потом в Device Control Register nIEN ==0 последовательно, после этого записываю в Command Register == EC - то есть комманду идентификации - жду, получаю INTRQ, читаю статус и вываливаюсь по (BSY == 0) & (DRQ == 0).. Вот интересно- было ли у кого то такое поведение - это где-то чтот опропустил или как ?? И что самое печальное, вот чипскопленая картинка транзакций
Лапы на вход-выход определены так: Код assign ch1_dd_pad_i = ch1_dd_pad; assign ch1_dd_pad = (ch1_dd_padoe_o)? ch1_dd_pad_o : 16'bz; Откуда мусор на ch1_dd_pad_i когда ch1_dd_padoe_o == 1 ??  Если сделать есчё 3 раза ресет плиски - вообсче стадию выхода из "hardware reset protocol" не прохожу уже - BSY == 1 всегда...
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|