nexto 0 30 мая, 2012 Опубликовано 30 мая, 2012 · Жалоба Приветствую всех. Столкнулся по работе с необходимостью запрограммировать плис Xilinx'a. Сам я по профессии программист и в схемотехнике не разбираюсь. Изучил немного VHDL, написал простенький хеллоу ворлд и проверил его на симуляторе, разобрался как связывать ножки микросхемы с портами ввода/вывода через ucf файл. Вставил перепрограммируемую плис(Xilinx Virtex-6) в компьютер и совершенно не понимаю что делать дальше. Как связать ПЛИС с компьютером? Можно ли достучаться до неё к примеру из обычной программы на С++? Может кто-нибудь посоветовать хотя бы какой-нить простейший пример типа "Из программы посылаются два числа на ПЛИС, там вычисляется сумма и отправляется обратно"? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kovigor 6 30 мая, 2012 Опубликовано 30 мая, 2012 · Жалоба Вставил перепрограммируемую плис(Xilinx Virtex-6) в компьютер и совершенно не понимаю что делать дальше. Как связать ПЛИС с компьютером? Куда вставили ? В PCI ? В PCI Express ? И как вставили ? У вас плата-StarterKit на этой ПЛИС ? Или разработанная вами плата ? Вот, гляньте вот эту страничку: http://www.fpga4fun.com/ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nexto 0 31 мая, 2012 Опубликовано 31 мая, 2012 (изменено) · Жалоба У вас плата-StarterKit на этой ПЛИС ? Полагаю, если я правильно понял, Evaluation Kit. По крайней мере полное название устройства Virtex-6 FPGA ML605 Evaluation Kit. Куда вставили ? Пока-что просто в USB =) Но там на плате просто дофига разъемов, т.е. есть возможность подсоединить и по PCI-Express и, например, по Ethernet. В целом мне не важно по чему подсоединять её. По указанной ссылке посмотрел - но там что-то как-то всё больше об уровне железа, а не на программном уровне и в целом ясности не добавило... P.S. Почитал аналогичные темы на форуме, но так и не понял что мне делать) Изменено 31 мая, 2012 пользователем nexto Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 29 31 мая, 2012 Опубликовано 31 мая, 2012 · Жалоба Пока-что просто в USB =) Но там на плате просто дофига разъемов, т.е. есть возможность подсоединить и по PCI-Express и, например, по Ethernet. В целом мне не важно по чему подсоединять её. Неужто доки нет? Hardware Demonstration Setup Instructions This section describes how to set up the hardware demonstration for the Virtex-6 FPGA Connectivity TRD. This demonstration outlines a bridging function between PCIe and XAUI protocols. It also provides accesses to an onboard DDR3 memory. 1. This equipment is needed to run the hardware demonstration: • Virtex-6 FPGA Connectivity Kit • PC system with a x8 PCIe slot on the motherboard, CD ROM drive, and a USB port • Monitor, keyboard, and mouse • Linux Operating System: Fedora 10 LiveCD 2. Run the alternate demonstration. If there is no access to any of the equipment in step 1, refer to Getting Started with the Virtex-6 FPGA IBERT Reference Design, page 38 to alternately bring up the ML605 board included in the Virtex-6 FPGA Connectivity Kit. Otherwise, continue with the PCIe to XAUI protocol demonstration in step 3. 3. If the instructions in the Virtex-6 FPGA Connectivity Kit Hardware Setup Guide have already been completed to bring up the Virtex-6 FPGA Connectivity Kit, proceed to Evaluating the Virtex-6 FPGA Connectivity TRD, page 19; otherwise, continue to step 4. 4. Hardware Setup I: Board setup and configuration. The ML605 board is shipped with the FMC Connectivity daughter card attached to the FMC_HPC connector (see Figure 2). To run the Connectivity TRD demonstration, you need to externally loop back the XAUI data through a CX4 loopback connector provided in the connectivity kit. a. Verify the switch settings are correct: - Switch S1: 1=OFF, 2=OFF, 3=OFF, 4=ON - Switch S2: 1 = ON, 2 = OFF, 3 = OFF, 4 = ON, 5 = ON, 6 = OFF b. Verify that Jumper J42 has pins 3-4 shorted. c. Plug in the CX4 loopback connector: - Remove the plastic pin protector. - Plug in the CX4 loopback connector on the FMC Connectivity daughter card’s J2 connector (see Figure 3). йандекс найдет Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nexto 0 31 мая, 2012 Опубликовано 31 мая, 2012 (изменено) · Жалоба 2MrYuran Хм... Наверное я не совсем ясно изложил проблему... Попробую по другому спросить. У меня подсоединена(не важно как - как скажите так и подсоединю =) ) плата. На плате ПЛИС уже запрограммирована и в ней записан нужный алгоритм. Плата рабочая, тестовые программы из Getting Started благополучно запускаются и всё такое. С этим проблем нет. Дальше - у меня есть основная программа, которая написана на языке С++. В каком-то месте мне необходимо "попросить" мою ПЛИС выполнить вшитый в неё алгоритм, т.е. передать на ПЛИС некоторые входные данные, передать некий управляющий сигнал что, мол, можешь запускать алгоритм, по выполнении алгоритма считать его выходные данные. Т.е. задача сводится к отправке и получению данных от ПЛИС из основной С++ программы. Вопрос - как это сделать на языке С++ либо на уровне ассемблера? Ну или, хотя бы, посоветуйте в какую сторону копать(гуглить)? Изменено 31 мая, 2012 пользователем nexto Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
eugen_pcad_ru 0 31 мая, 2012 Опубликовано 31 мая, 2012 · Жалоба Почитали прилагаемую документацию? Проверили что все заводские программы работают? 1 Остановитесь на самом простом (для Вас лично) интерфейсе. Если есть обычный сом-порт, это самое простое. 2 Реализуйте самостоятельно (или найдите готовый) код/схему для выбранного Вам интерфейса. В крайнем случае поищите тут в интерфейсах (таких тем полно) 3 Сделайте тестовый проект для ПЛИС (на аппратном уровне), реализующий запись/чтение 4 Напишите тестовую программу для обмена с ПЛИС 5 Проверьте что программа корректно общается с ПЛИС Всё! P.S.: Для "чистого" программиста тяжеловато будет сначала, но терпение (+время) и труд всё перетрут:) Если у Вас коммерческий проект, найдите специалиста (или в крайнем случае консультанта) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nexto 0 31 мая, 2012 Опубликовано 31 мая, 2012 · Жалоба О, а вот это уже интереснее. По пункту 2: т.е., грубо говоря, конкретные ножки микросхемы можно вывести на конкретные "проводки" соответствующего порта? P.S. Проект, да, коммерческий и специалиста уже нашли... "Специалистом" оказался я. =( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nexto 0 31 мая, 2012 Опубликовано 31 мая, 2012 · Жалоба Хм... Хочу сузить вопрос... Как обеспечить взаимодействие FPGA с PCI-Express портом под ISE? Вот у меня есть в PlanAhead различные ножки микросхемы. Но ведь это не конкретный порт? Как запрограммировать в ISE доступ к PCI-Express? Повторюсь, плата на которой стоит моя Virtex-6 - стандартная, ксилинксовская, Evaluation Kit. Если ткнете в документацию - тоже буду рад, т.к. все документации которые я нашел - не о том =( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kovigor 6 31 мая, 2012 Опубликовано 31 мая, 2012 · Жалоба Хм... Хочу сузить вопрос... Как обеспечить взаимодействие FPGA с PCI-Express портом под ISE? Вот у меня есть в PlanAhead различные ножки микросхемы. Но ведь это не конкретный порт? Как запрограммировать в ISE доступ к PCI-Express? Повторюсь, плата на которой стоит моя Virtex-6 - стандартная, ксилинксовская, Evaluation Kit. Если ткнете в документацию - тоже буду рад, т.к. все документации которые я нашел - не о том =( Так я же дал ссылку, там и про PCI Express написано. Но начать лучше с чего-то попроще. Начните с простого мигания лампочкой. Внимательно разберите примеры проектов на указанной мной страничке. В любом случае, вам придется разобраться с языком описания аппаратуры. Лучше всего - все же Verilog, а не VHDL. Сразу, без подготовки, реализовать обмен по PCI Express, наверное, не получится ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nexto 0 31 мая, 2012 Опубликовано 31 мая, 2012 (изменено) · Жалоба Хм, хорошо, я посмотрю конечно на счёт мигания лампочки, но с языком описания архитектуры не вижу особых проблем с точки зрения программирования. По Вашей ссылке я смотрел и уже отписывался ниже: По указанной ссылке посмотрел - но там что-то как-то всё больше об уровне железа, а не на программном уровне и в целом ясности не добавило... Но, хорошо, я посмотрю ещё. А вообще, тогда такой вопрос в лоб) У меня стоит плата ксилинксовская с ихней ПЛИСкой за 80 кусков, если не ошибаюсь. ISE предоставляет средства HDL, визуальные средства проектирования схемы и прочее. Неужели у них нет стандартных средств взаимодействия с PCI-Express(или любым другим портом) на предоставленной ими же плате, и чтобы отправить пару байт на компьютер нужно стать гуру Verilog/VHDL? Изменено 31 мая, 2012 пользователем nexto Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kovigor 6 31 мая, 2012 Опубликовано 31 мая, 2012 · Жалоба А вообще, тогда такой вопрос в лоб) У меня стоит плата ксилинксовская с ихней ПЛИСкой за 80 кусков, если не ошибаюсь. ISE предоставляет средства HDL, визуальные средства проектирования схемы и прочее. Неужели у них нет стандартных средств взаимодействия с PCI-Express(или любым другим портом) на предоставленной ими же плате, и чтобы отправить пару байт на компьютер нужно стать гуру Verilog/VHDL? Поставлю вопрос иначе. Вот вы вставили плату в слот. Включили машину. BIOS должен эту плату определить (наряду с другими) и вывести сведения о ней. Windows должна сказать, что в системе обнаружилось новое устройство. Это происходит ? Если да, то перечеркните все мои ссылки и разбирайтесь с тем, как из вашей программы на Си достучаться до готового и работающего на PCI Express устройства. Если же этого не наблюдается, то вооружитесь материалами, поставляемыми с платой, аппнотами от Xilinx, данными вам советами и терпением и разбирайтесь, как на базе вашей платы реализовать интерфейс PCI Express ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nexto 0 31 мая, 2012 Опубликовано 31 мая, 2012 · Жалоба Да, конечно, после установки драйверов всё это благополучно происходит и плата видится в диспетчере устройств. Как из Си достучаться до PCI-E для меня задача чисто технического характера. Я пока к ней не приступал, но она меня не беспокоит - в этой области опыта достаточно. Вопрос в другом. В ISE я знаю как связать входные/выходные порты с ножками микросхемы. Надо либо ручками .ucf файл подредактировать либо в PlanAhead. Но я в упор не понимаю как ножки микросхемы к которым я подключаю порты связаны с PCI-Express/USB/Ethernet/чем-угодно-ещё-на-плате. Ну вот отправлю я какой-то кусок байт по порту с компьютера, а дальше-то что? Ни в VHDL ни в Verilog нету мегафункции ПолучитьДанныеСPciExpress, а есть просто проводки тянущиеся от ножек микросхемы, не понятно как вообще связанной с портами. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kovigor 6 31 мая, 2012 Опубликовано 31 мая, 2012 · Жалоба Но я в упор не понимаю как ножки микросхемы к которым я подключаю порты связаны с PCI-Express/USB/Ethernet/чем-угодно-ещё-на-плате. Ну вот отправлю я какой-то кусок байт по порту с компьютера, а дальше-то что? Ни в VHDL ни в Verilog нету мегафункции ПолучитьДанныеСPciExpress, а есть просто проводки тянущиеся от ножек микросхемы, не понятно как вообще связанной с портами. О ! А вот организовать "проброс" данных между "ножками" и "PCI-Express/USB/Ethernet/чем-угодно-ещё-на-плате" - это уже ваша задача. А для этого и придется вникать в Verilog и изучать готовые примеры. Вот здесь очень простой пример - зажигание светодиода на PCI - плате: http://www.fpga4fun.com/PCI0.html А вот - то же, но для PCI-Express: http://www.fpga4fun.com/PCI-Express6.html Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nexto 0 31 мая, 2012 Опубликовано 31 мая, 2012 · Жалоба Да, я видел этот пример но подумал что это не то что-то. Вы хотите сказать, что он зажигает светодиод на _материнской_ плате компьютера? Если так, то я пошел курить его... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kovigor 6 31 мая, 2012 Опубликовано 31 мая, 2012 · Жалоба Да, я видел этот пример но подумал что это не то что-то. Вы хотите сказать, что он зажигает светодиод на _материнской_ плате компьютера? Если так, то я пошел курить его... Нет, на плате расширения, т.е., на вашей плате. При чем здесь материнка ??? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться