реклама на сайте
подробности

 
 
> PCI Интерфейс на ПЛИС, Сложно ли реализовать...
M_A
сообщение Jan 27 2005, 06:05
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 153
Регистрация: 27-12-04
Из: г. Иркутск
Пользователь №: 1 689



Мне необходимо сделать на Альтере PCI устройство, которое будет передавать внеш данные в комп.
Вроде есть готовые варианты, но я пока новичок, и если чего не заработает, в чужом наверное фиг разберусь...
Вопрос вот в чем, насколько сложно реализовать PCI на плис с нуля?
Это поможет мне лучше освоить программироание ПЛИС и реализацию на них конкретных задач.
Но не слишком ли неподъемная задача для начинающего?
Буду благодарен не только ответам, но и советам!
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 26)
Dimonira
сообщение Jan 27 2005, 06:30
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 405
Регистрация: 4-10-04
Пользователь №: 777



Начинающему, по-моему, лучше для начала всё-таки взять чужое.
Есть Альтеровские родные корки, а есть корки от PLDA (тут на ФТП лежат). Там есть и доки и готовая симуляция, чтобы ознакомиться.
Вот с ознакомления с доками, потом симуляцией и начинай.
А потом реализуешь в железе, запустишь всё и подумаешь: "А нафига мне своё делать, когда уже всё прекрасно работает?" smile.gif
Удачи.
Go to the top of the page
 
+Quote Post
makc
сообщение Jan 27 2005, 07:23
Сообщение #3


Гуру
******

Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904



Работать-то оно работает, но часто не поддерживает некторые функции, без которых не сделать требуемое устройство. Например, не поддерживает PCI Expansion ROM. И из-за этого может появиться необходимость в разработке своего...


--------------------
BR, Makc
В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
Go to the top of the page
 
+Quote Post
Elresearch
сообщение Jan 27 2005, 08:12
Сообщение #4


Местный
***

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



Если знаете что такое FSM, то не так уж сложно.
Go to the top of the page
 
+Quote Post
M_A
сообщение Jan 27 2005, 08:34
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 153
Регистрация: 27-12-04
Из: г. Иркутск
Пользователь №: 1 689



Угу, понятно, всем спасибо за помощь, подкинули пищу для ума.
Но все таки хотелось бы узнать, шибко ли запарочно сделать работающий PCI с нуля???

To Elresearch
Я пока начинающий, и что такое FSM Не знаю...

Сообщение отредактировал M_A - Jan 27 2005, 08:37
Go to the top of the page
 
+Quote Post
Elresearch
сообщение Jan 27 2005, 08:43
Сообщение #6


Местный
***

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



Functional State Machine :-) Просто ими в стандарте PCI описывается "как оно работает". так что без этого никак ;-)
Go to the top of the page
 
+Quote Post
Vitus
сообщение Jan 27 2005, 08:46
Сообщение #7


Участник
*

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



Если делаете Target без Burst'а то задача не такая уж и сложная. Возмите спецификацию и тщательно ее изучите для того чтобы отбросить все лишнее и оставить только то что необходимо. кроме того в и-нете полно информации и разного рода примеров реализации.
Go to the top of the page
 
+Quote Post
Vitus
сообщение Jan 28 2005, 09:00
Сообщение #8


Участник
*

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



А я всегда считал что FSM = Finite State Mashine blush.gif
Go to the top of the page
 
+Quote Post
Elresearch
сообщение Jan 28 2005, 09:45
Сообщение #9


Местный
***

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



:-D ну главное это State Mashine, а Finite иль Functional неважно. Просто если сказать SM, то могут непрально понять ;-)
Go to the top of the page
 
+Quote Post
CO2040
сообщение Jan 28 2005, 14:22
Сообщение #10


Частый гость
**

Группа: Участник
Сообщений: 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 был в кайф. Жалко что теперь это уже никому не нужно и все эти разработки и тестовый софт валяются без дела. Т.е. осваивать какой-либо интерфейс имеет смысл если это востребовано.


--------------------
Ждёт наркомана - анаша. Токсикомана - клей.
Дубина, нож и автомат минуты ждут своей !
Go to the top of the page
 
+Quote Post
M_A
сообщение Jan 29 2005, 02:22
Сообщение #11


Частый гость
**

Группа: Свой
Сообщений: 153
Регистрация: 27-12-04
Из: г. Иркутск
Пользователь №: 1 689



У меня то это точно будет востребовано и проработает на благо науки не один год biggrin.gif
Go to the top of the page
 
+Quote Post
Artyom
сообщение Jan 31 2005, 07:40
Сообщение #12


Участник
*

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



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


--------------------
Опыт - это такая вещь, которая появляется сразу после того, как была нужна.
Go to the top of the page
 
+Quote Post
prom
сообщение Feb 1 2005, 08:00
Сообщение #13


Участник
*

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



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


Можешь выложить на фтп? Пригодится wink.gif
Go to the top of the page
 
+Quote Post
Esquire
сообщение Feb 1 2005, 09:55
Сообщение #14


Эсквайр
*****

Группа: Почетный участник
Сообщений: 1 013
Регистрация: 19-06-04
Из: • ℮lectronﭑχ •
Пользователь №: 62



На FTP уже есть все, что нужно, см. pub/FPGA/_IPcores_/PCI/ cranky.gif .


--------------------
Кто ищет, тот всегда найдет
Go to the top of the page
 
+Quote Post
PhilipS
сообщение Feb 8 2005, 10:30
Сообщение #15


Участник
*

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



А насколько это сложно с "програмной" точки зрения ? Кто нибудь писал свой драйвер на PCI ? Нужно будет просто писать/читать несколько регистров как максимум делать это по прерыванию. Готовые решения вроде WinDriver и т.п использовать не хотелось бы. Поделитесь впечатлениями.....
Go to the top of the page
 
+Quote Post
Vjacheslav
сообщение Feb 8 2005, 14:55
Сообщение #16


Знающий
****

Группа: Свой
Сообщений: 621
Регистрация: 25-10-04
Из: Новосибирск
Пользователь №: 971



Если не хочется использовать WinDriver, с его готовым драйвером Kernel-уровня, то возьмите KernelDriver (той же фирмы Jungo) и напишите полностью свой драйвер - с помощью Wizard не представляет никакой сложности, при условии что Вы все-таки владеете некими зачатками программирования.
Для этого Вам понадобится Jungo Kernel Driver + Windows 2003 DDK. Здесь на Ftp все это есть.
Go to the top of the page
 
+Quote Post
gab
сообщение Feb 8 2005, 15:32
Сообщение #17


Местный
***

Группа: Свой
Сообщений: 376
Регистрация: 30-06-04
Из: Moskow
Пользователь №: 218



Цитата(PhilipS @ Feb 8 2005, 13:30)
А насколько это сложно с "програмной" точки зрения ? Кто нибудь писал свой драйвер на PCI ? Нужно будет просто писать/читать несколько регистров как максимум делать это по прерыванию. Готовые решения вроде WinDriver и т.п использовать не хотелось бы. Поделитесь впечатлениями.....
*

Я писАл. Под линукс. WinDriver... выкинул эту бяку. Драйвер char-устройства (для платы ЦАП/АЦП, bus master) пишется за пол-недели. С драйвером сетевого устройства сейчас сижу. Спустя 2 месяца начинает работать (долго постигал тонкости сетевой подсистемы линукса).
Лично моё мнение - написание драйверов достаточно простая и тривиальная задача. По крайней мере - для линукса.
Гораздо сложнее сделать само устройство и программу работы с ним smile.gif.


--------------------
serpents on the way to paradise -
dying for love, fighting for ages.

Go to the top of the page
 
+Quote Post
PhilipS
сообщение Feb 9 2005, 09:29
Сообщение #18


Участник
*

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



WinDriver/KernelDriver не хочется использовать только по одной причине - у Заказчика возникнет вопрос: "Куплен ли он официально?" Дело все в том что все ПО которое входит в комплект поставки за должно быть лицензионным даже винда на копьютер с которым все это поставляется покупается официально. Но в любом случае спасибо большое за информацию о ориентировочных сроках - хоть какая то информация для планирования есть !
Go to the top of the page
 
+Quote Post
k_george
сообщение Feb 9 2005, 11:23
Сообщение #19


Участник
*

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



Хочу задать Уважаемой публике пару вопросов.
Вопрос №1 к ЯдроПисателям:
Не встречал ли кто исходники хорошего TestBench'а для шины на VHDL? Типа как компилёные библиотеки в корке от PLDA.
Вопрос №2 к ДровоПисателям:
Как часто (mS, uS, ... pS ;-) можно прерывать шину под WinNT? Хотелось бы услышать что-нибудь из практического опыта.
Go to the top of the page
 
+Quote Post
Vitёk
сообщение Feb 9 2005, 11:47
Сообщение #20


Местный
***

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



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


--------------------
/* Всё хорошо в меру. */
Go to the top of the page
 
+Quote Post
k_george
сообщение Feb 9 2005, 12:46
Сообщение #21


Участник
*

Группа: Свой
Сообщений: 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 ... событие. Так вот мне хотелось бы знать кто мне тут мозги парит, и где компромис.
Go to the top of the page
 
+Quote Post
Vitёk
сообщение Feb 9 2005, 13:02
Сообщение #22


Местный
***

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



Ну уж не знаю, кому верить. Наверняка покажет только эксперимент.
Похоже, что Вам плясать нужно от размеров буфера. Заполнился на половину (примерно), и тогда сливать.
Драйвер сами пишите или используете нечто готовое типа ВыньДривер? В последнем случае заморочки по быстодействию могут иметь место, причём фиг что сделаешь. sad.gif Наши то программёры напряглись и написали свой, избавив меня от кучи проблем.


--------------------
/* Всё хорошо в меру. */
Go to the top of the page
 
+Quote Post
Vjacheslav
сообщение Feb 10 2005, 07:36
Сообщение #23


Знающий
****

Группа: Свой
Сообщений: 621
Регистрация: 25-10-04
Из: Новосибирск
Пользователь №: 971



PhilipS
Windows 2003 DDK не требует никакого лицензирования и поставлялся Microsoft бесплатно - только оплатить 25 $ за доставку. В нем много уже готовых заготовок для разного вида драйверов, на основе которых можно сделать свой и никаких заморочек с лицензированием. Да и Jungo Kernel Driver выдает исходную заготовку, которая в дальнешем компилируется Windows 2003 DDK.
Go to the top of the page
 
+Quote Post
FLTI
сообщение Jun 16 2005, 10:11
Сообщение #24


Местный
***

Группа: Свой
Сообщений: 399
Регистрация: 8-06-05
Пользователь №: 5 832



Цитата(Vitus @ Jan 27 2005, 11:46)
Если делаете Target без Burst'а то задача не такая уж и сложная.
*


А если с Burst ом, то намного сложнее получается? За счет чего?
Go to the top of the page
 
+Quote Post
ALexx_V
сообщение Jun 18 2005, 20:24
Сообщение #25





Группа: Новичок
Сообщений: 1
Регистрация: 18-06-05
Пользователь №: 6 124



Сам не програмист, но стал свидетелем того как человек понимающий в этом деле не многим более меня, в частности что такое Visual Studio, написал драйвер обеспечивающий доступ к портам, примерно за 1 месяц. Из этого следует что стоит только захотеть. excl.gif
Go to the top of the page
 
+Quote Post
dachny
сообщение Jun 20 2005, 05:38
Сообщение #26


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 7-07-04
Пользователь №: 284



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



Капец!!! С таким же успехом можно сделать в апликации бесконечный цикл со вставленным туда например Sleep(10) и не пользовать никаких прерываний
Но зато гении дровописатели очень напрягались
Go to the top of the page
 
+Quote Post
IEC
сообщение Nov 25 2005, 14:28
Сообщение #27


Местный
***

Группа: Свой
Сообщений: 263
Регистрация: 22-03-05
Из: г. Харьков, Украина
Пользователь №: 3 598



При первой разработке PCI устройства Я вообще начал с PLX9052, потом создал другую плату уже л на Альтеровской корке 1999г. Использовал ACEX. Новый альтеровский софт 3.2.0 так и не впихнул в кристал, машина зависала. Корка от PLDA 7.0.1 пошла на этой же плате.
7.0.2 не смог дешифрировать.

А вообще удачи в начинаниях.
Особенно если для науки.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 14:24
Рейтинг@Mail.ru


Страница сгенерированна за 0.01584 секунд с 7
ELECTRONIX ©2004-2016