|
PCI Интерфейс на ПЛИС, Сложно ли реализовать... |
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 26)
|
Jan 27 2005, 06:30
|
Местный
  
Группа: Свой
Сообщений: 405
Регистрация: 4-10-04
Пользователь №: 777

|
Начинающему, по-моему, лучше для начала всё-таки взять чужое. Есть Альтеровские родные корки, а есть корки от PLDA (тут на ФТП лежат). Там есть и доки и готовая симуляция, чтобы ознакомиться. Вот с ознакомления с доками, потом симуляцией и начинай. А потом реализуешь в железе, запустишь всё и подумаешь: "А нафига мне своё делать, когда уже всё прекрасно работает?"  Удачи.
|
|
|
|
|
Jan 27 2005, 08:46
|
Участник

Группа: Свой
Сообщений: 42
Регистрация: 24-12-04
Пользователь №: 1 658

|
Если делаете Target без Burst'а то задача не такая уж и сложная. Возмите спецификацию и тщательно ее изучите для того чтобы отбросить все лишнее и оставить только то что необходимо. кроме того в и-нете полно информации и разного рода примеров реализации.
|
|
|
|
|
Jan 28 2005, 14:22
|
Частый гость
 
Группа: Участник
Сообщений: 105
Регистрация: 28-01-05
Из: Tula region
Пользователь №: 2 267

|
Цитата(M_A @ Jan 27 2005, 09:05) Мне необходимо сделать на Альтере PCI устройство, которое будет передавать внеш данные в комп. Вроде есть готовые варианты, но я пока новичок, и если чего не заработает, в чужом наверное фиг разберусь... Вопрос вот в чем, насколько сложно реализовать PCI на плис с нуля? Это поможет мне лучше освоить программироание ПЛИС и реализацию на них конкретных задач. Но не слишком ли неподъемная задача для начинающего? Буду благодарен не только ответам, но и советам! Лучше всего начать разбираться с MegaCore PCIT1. Я с этого PCI и осваивал. Потом к этому PCIT1 свой приписал модулек, который позволил получить на выходе ISA-подобный интерфейс. Также там не было поддержки Expansion ROM (хотя в документации декларировалось), а когда понадобилось - внимательно пересмотрел все исходники и нашел нужные сигналы, которые пришлось только "вывести" наружу. Потом прыгал от радости когда на мою часть BIOS передавалось управление... Все делал тогда именно как начинающий и в одиночку - начиная от разводки платы, изучения AHDL и кончая написанием софта, который позволил этой плате полноценно "задышать", на все ушло около 4 месяцев. Короче процесс освоения PCI был в кайф. Жалко что теперь это уже никому не нужно и все эти разработки и тестовый софт валяются без дела. Т.е. осваивать какой-либо интерфейс имеет смысл если это востребовано.
--------------------
Ждёт наркомана - анаша. Токсикомана - клей. Дубина, нож и автомат минуты ждут своей !
|
|
|
|
|
Jan 31 2005, 07:40
|
Участник

Группа: Новичок
Сообщений: 28
Регистрация: 18-01-05
Из: Тула
Пользователь №: 2 035

|
У меня Все было просто когда писалось PCI устройство M/T ....я по просту использовал Альтеровскую корку и МегаДекрипт  Но на изучение этой корки ушло где-то 2 месяца (особо не усердствуя) ... Зато все работает на УРА...... То же самое я советую сделать и тебе...... С Target устройствами все намного проще...... и код меньше..... Дезай......  Могу кинуть MegaDecript если нуна......
--------------------
Опыт - это такая вещь, которая появляется сразу после того, как была нужна.
|
|
|
|
|
Feb 1 2005, 08:00
|
Участник

Группа: Свой
Сообщений: 49
Регистрация: 12-01-05
Пользователь №: 1 912

|
Цитата(Artyom @ Jan 31 2005, 10:40) У меня Все было просто когда писалось PCI устройство M/T ....я по просту использовал Альтеровскую корку и МегаДекрипт  Но на изучение этой корки ушло где-то 2 месяца (особо не усердствуя) ... Зато все работает на УРА...... То же самое я советую сделать и тебе...... С Target устройствами все намного проще...... и код меньше..... Дезай......  Могу кинуть MegaDecript если нуна...... Можешь выложить на фтп? Пригодится
|
|
|
|
|
Feb 8 2005, 10:30
|
Участник

Группа: Новичок
Сообщений: 48
Регистрация: 11-01-05
Из: Минск
Пользователь №: 1 879

|
А насколько это сложно с "програмной" точки зрения ? Кто нибудь писал свой драйвер на PCI ? Нужно будет просто писать/читать несколько регистров как максимум делать это по прерыванию. Готовые решения вроде WinDriver и т.п использовать не хотелось бы. Поделитесь впечатлениями.....
|
|
|
|
|
Feb 8 2005, 15:32
|
Местный
  
Группа: Свой
Сообщений: 376
Регистрация: 30-06-04
Из: Moskow
Пользователь №: 218

|
Цитата(PhilipS @ Feb 8 2005, 13:30) А насколько это сложно с "програмной" точки зрения ? Кто нибудь писал свой драйвер на PCI ? Нужно будет просто писать/читать несколько регистров как максимум делать это по прерыванию. Готовые решения вроде WinDriver и т.п использовать не хотелось бы. Поделитесь впечатлениями..... Я писАл. Под линукс. WinDriver... выкинул эту бяку. Драйвер char-устройства (для платы ЦАП/АЦП, bus master) пишется за пол-недели. С драйвером сетевого устройства сейчас сижу. Спустя 2 месяца начинает работать (долго постигал тонкости сетевой подсистемы линукса). Лично моё мнение - написание драйверов достаточно простая и тривиальная задача. По крайней мере - для линукса. Гораздо сложнее сделать само устройство и программу работы с ним  .
--------------------
serpents on the way to paradise - dying for love, fighting for ages.
|
|
|
|
|
Feb 9 2005, 09:29
|
Участник

Группа: Новичок
Сообщений: 48
Регистрация: 11-01-05
Из: Минск
Пользователь №: 1 879

|
WinDriver/KernelDriver не хочется использовать только по одной причине - у Заказчика возникнет вопрос: "Куплен ли он официально?" Дело все в том что все ПО которое входит в комплект поставки за должно быть лицензионным даже винда на копьютер с которым все это поставляется покупается официально. Но в любом случае спасибо большое за информацию о ориентировочных сроках - хоть какая то информация для планирования есть !
|
|
|
|
|
Feb 9 2005, 11:47
|

Местный
  
Группа: Свой
Сообщений: 272
Регистрация: 17-01-05
Из: Ростов-на-Дону
Пользователь №: 2 018

|
Цитата Как часто (mS, uS, ... pS ;-) можно прерывать шину под WinNT? На моей махарайке прерывания обслуживались так: драйвер, когда получал от винды управление по приходу прерывания - эти прерывания запрещал, и взводил событие. Приложение, проснувшись по этому событию - в конце своей работы прерывание разрешало. Поэтому вопрос о максимальной частоте прерываний закрвался автоматически - "лишние" прерывания просто не обслуживались, а количество работы, которое необходимо проделать по прерыванию, определяло приложение. Частота прерывний у нас не превышала нескольких десятков Гц в худшем случае. Максимальная частота прерываний, ИМХО, ограничена временем обработки прервания драйвером. Реакция на них, насколько я понял из бесед с программёрами, минимальна, ибо обслуживаются они на каком-то там высоком уровне привелегий, и если в этот момент не обслуживаются другие прервания - всё происходит практически мгновенно.
--------------------
/* Всё хорошо в меру. */
|
|
|
|
|
Feb 9 2005, 12:46
|

Участник

Группа: Свой
Сообщений: 33
Регистрация: 23-06-04
Из: г. Рязань
Пользователь №: 131

|
Хочу немного пояснить свою траблу. Задача следущая: извне поступает информация, прореживается, накапливается и передаётся в шину, причём хотелось бы передавать её по внешнему событию (условно - шпиндель переместился на 3мм, а это происходит раз в ~ 80 uS ;-). Что касаемо соотношения входного потока и слива результатов в шину, то это примерно 100 к 1, накапливаем 120-150 uS передаём 1-1.2 uS (PCI/66/32). Так вот мои программеры говроят:"Ты накопляй её полдня или хотя бы 10-100 mS, а потом мы заберём, а чаще ВИНДА не успевает и усё виснет", но буфер тоже не резиновый, хотя прерывать можно и на 8, 16 ... событие. Так вот мне хотелось бы знать кто мне тут мозги парит, и где компромис.
|
|
|
|
|
Feb 9 2005, 13:02
|

Местный
  
Группа: Свой
Сообщений: 272
Регистрация: 17-01-05
Из: Ростов-на-Дону
Пользователь №: 2 018

|
Ну уж не знаю, кому верить. Наверняка покажет только эксперимент. Похоже, что Вам плясать нужно от размеров буфера. Заполнился на половину (примерно), и тогда сливать. Драйвер сами пишите или используете нечто готовое типа ВыньДривер? В последнем случае заморочки по быстодействию могут иметь место, причём фиг что сделаешь.  Наши то программёры напряглись и написали свой, избавив меня от кучи проблем.
--------------------
/* Всё хорошо в меру. */
|
|
|
|
|
Jun 16 2005, 10:11
|
Местный
  
Группа: Свой
Сообщений: 399
Регистрация: 8-06-05
Пользователь №: 5 832

|
Цитата(Vitus @ Jan 27 2005, 11:46) Если делаете Target без Burst'а то задача не такая уж и сложная. А если с Burst ом, то намного сложнее получается? За счет чего?
|
|
|
|
|
Jun 18 2005, 20:24
|
Группа: Новичок
Сообщений: 1
Регистрация: 18-06-05
Пользователь №: 6 124

|
Сам не програмист, но стал свидетелем того как человек понимающий в этом деле не многим более меня, в частности что такое Visual Studio, написал драйвер обеспечивающий доступ к портам, примерно за 1 месяц. Из этого следует что стоит только захотеть.
|
|
|
|
|
Jun 20 2005, 05:38
|
Частый гость
 
Группа: Свой
Сообщений: 82
Регистрация: 7-07-04
Пользователь №: 284

|
Цитата(Vitёk @ Feb 9 2005, 14:47) Цитата Как часто (mS, uS, ... pS ;-) можно прерывать шину под WinNT? На моей махарайке прерывания обслуживались так: драйвер, когда получал от винды управление по приходу прерывания - эти прерывания запрещал, и взводил событие. Приложение, проснувшись по этому событию - в конце своей работы прерывание разрешало. Поэтому вопрос о максимальной частоте прерываний закрвался автоматически - "лишние" прерывания просто не обслуживались, а количество работы, которое необходимо проделать по прерыванию, определяло приложение. Частота прерывний у нас не превышала нескольких десятков Гц в худшем случае. Максимальная частота прерываний, ИМХО, ограничена временем обработки прервания драйвером. Реакция на них, насколько я понял из бесед с программёрами, минимальна, ибо обслуживаются они на каком-то там высоком уровне привелегий, и если в этот момент не обслуживаются другие прервания - всё происходит практически мгновенно.  Капец!!! С таким же успехом можно сделать в апликации бесконечный цикл со вставленным туда например Sleep(10) и не пользовать никаких прерываний Но зато гении дровописатели очень напрягались
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|