LINUX.ORG.RU

Хочу самостоятельно разработать новое PCI-устройство для компьютера: с чего начать?


1

4

Появилась у меня недавно идея-фикс, кратко описанная в заголовке темы. Естественно, знания по теме у меня практически отсутствуют, так что прошу население ЛОР'а подсказать годных книжек по следующим темам:

  • Принципы работы шин и интерфейсов современного компьютера. Конкретно интересующие темы: PCI и PCI-Express.
  • Работа операционных систем с железом. Желателен уклон в сторону Linux.
  • FPGA и разработка под них.

Если что-то упустил - прошу дополнить.

Есть ещё вопрос. Погуглив, я заметил, что в основном логику для FPGA пишут на Verilog'е и VHDL'е. Что из этого выбрать мне? Или не принципиально, что больше понравится?

Deleted

интересная фигня, подписываюсь. HDL выбирать придётся в зависимости от выбранного производителя FPGA, они часто поддерживают что-то одно. Я бы поглядел в сторону OpenRISC.

последние спеки PCIe можно тут нарыть http://www.pcisig.com/specifications/pciexpress/base3/, там в принципе всё написано.

anonymous
()

под FPGA Xilinx и Altera в библиотеках родных IDE емнип уже есть IP Core для PCI/PCIe Device

exception13 ★★★★★
()

можешь начать с разработки виртуального устройства для qemu)) может тебе хватит и того?

dimon555 ★★★★★
()

PCI - параллельная шина, поэтому более простая в понимании. В принципе, в английской википедии протокол более-менее описан, но можно поискать и что-то поподробнее(в ссылках в статье есть неплохое описание протокола)

PCIe уже сложнее - это последовательная шина использующая высокоскоростные SERDES(serializer-deserializer). Советую перед знакомством с протоколом почитать «High-Speed Serial I/O Made Simple», написанное инженерами Xilinx - станут понятны принципы устройства шины.

Большинство производителей FPGA предлагают свою реализацию для PCI/PCIe, что экономит довольно много времени, так как не надо разрабатывать/дебажить свой велосипед.

Verilog/VHDL примерно идентичны по функциональности. Мне как-то рассказывали, что в Америке предпочитают больше verilog, а в Европе VHDL - то есть на начальном этапе во многом дело вкуса и наличия под рукой специалистов того или иного языка.

xawe
()

единственная годная книжка - официальный даташит со спецификацией протокола

Harald ★★★★★
()
Ответ на: комментарий от xawe

Цитируем xawe

«High-Speed Serial I/O Made Simple»

поддерживаю, классная книжка. По поводу языка — пытался когда-то что-то писать на верилоге, неизменно получался отвратительный нечитаемый код. VHDL с его строгой типизацией как-то приятнее. Хотя говорят, что нынче модно писать еще и на System Verilog. В общем, лучше луркать electronix.ru, там куча годной инфы.

demidrol ★★★★★
()

PCI? Через пару лет даже десктопную мать с PCI не найдёшь. Мути сразу под PCIe.

Написание драйвера для PCI (PCI-e тут не отличается) в LDD3 достаточно подробно описана.

Как уже отметили, основные производители ПЛМ уже предоставляют свои реализации PCI/PCI-e ядер (и DMA, и много чего ещё). Так что только фактическую логику своего железа надо будет сделать.

mv ★★★★★
()

Про pci забудь, учи сразу pcie, тем более, что програмно они на столько похожи, что и не отличишь. есть ньюансы, конечно, но весьма специфичные.

Второй и третьий пункт читай одновременно в доках ядра + мануал к фпгашной железке. Рекомендую xilinx.

официально datasheet по pcie за деньюшку. но расспространять можно легально. я когда то нашел по pci, а вот с -e проблемы, искал, но так и не нашел. если найдёшь - кидай сюда ссылку пожалуйста. Буду благодарен.

mi_estas
()

А собственно что за девайс ? М. б. проще USB какой нибудь освоить ?

ef37 ★★
()

С технического задания.

Одно время ферма, где я работал, обслуживала другую ферму, которая разрабатывала контроллеры на ISA (тогда ещё) шине.

drSchur ★★★
()

Советую с USB начать: намного проще же!

Eddy_Em ☆☆☆☆☆
()

1) Читай спеки PCI. Обычного PCI, читать нужно про регистры (configuration space, BAR*, interrupt хэндлинг/роутинг)

2) Если ты сторонник Си, то бери верилог. Если нравится С++ - бери VHDL

3) В качестве старта берёшь любую дев-боард для PCI крупного производителя (Xilinx, Altera). У них есть софт под Linux

4) Перед началом работы у тебя должнен быть background разработки драйверов и знание основ цифровой электроники. Они у тебя есть?

anonymous
()
Ответ на: комментарий от Harald

> единственная годная книжка - официальный даташит со спецификацией протокола

Какого протокола, укорок?

anonymous
()

несколько лет назад в универе делал лабу: плата с какой-то альтерой и pci. писал драйвер для линукса, который мигал светодиодом. для плис писал на vhdl и си (ниос-2).

в основном логику для FPGA пишут на Verilog'е и VHDL'е.

имхо, vhdl используется чаще.

ymn ★★★★★
()
Ответ на: комментарий от anonymous

протокола PCIe, мой неучёный анонимный коллега. Или в шарашке, которую ты закончил, тебе не объяснили, что такое протокол?

anonymous
()
Ответ на: комментарий от anonymous

протокола PCIe, мой неучёный анонимный коллега. Или в шарашке, которую ты закончил, тебе не объяснили, что такое протокол?

Не будь идиотом, не путай протокол передачи данных на физическом уровне и описание шины и работы устройств на шине. А

И datasheet != спецификация

anonymous
()

Есть ещё вопрос. Погуглив, я заметил, что в основном логику для FPGA пишут на Verilog'е и VHDL'е.

на тематических форумах такой вопрос приравнивается к пассажам разина в толксах :)

грубо, разница между ними в основном синтаксическая, Verilog похож на Си, VHDL напоминает паскаль. только имей в виду, что и на тот и на другой есть несколько разных стандартов. не все тулзы поддерживают самый последний стандарт (SystemVerilog и VHDL-2008), да и качество поддержки разнится. у альтеры несколько лучше в этом плане

registrant ★★★★★
()
Ответ на: комментарий от anonymous

нет, где-то видел статистику что в россии большинство разработчиков используют верилог, в то время как в мире популярнее вхдл. возможно я ошибаюсь.

ymn ★★★★★
()

нет, где-то видел статистику что в россии большинство разработчиков используют верилог, в то время как в мире популярнее вхдл. возможно я ошибаюсь.

нет, все верно, у нас только Verilog в основном - вот почитай http://www.asic-world.com/verilog/veritut.html и сравни с http://www.asic-world.com/vhdl/tutorial.html

Verilog явно более лаконичный, современный легкий и удобный язык, но это лишь мое мнение, НЕ ВЕРЬ МНЕ, просто убедись сам ;)

особенно программисты будут любить Verilog, ведь там Си-подобные логические конструкции

I-Love-Microsoft ★★★★★
()
Ответ на: Идея же! от x4DA

ЛNCП - процессор, на PCIe.

имакс будет летать.

anonymous
()
Ответ на: комментарий от registrant

грубо, разница между ними в основном синтаксическая, Verilog похож на Си, VHDL напоминает паскаль.

lmao

anonymous
()
Ответ на: Идея же! от x4DA

ЛNCП - процессор, на PCIe.

In order to run our Warcraft2 clone, you will need to purchase and install our LИSP™-enabling PCIe board!!!111oneone

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.