?

Log in

No account? Create an account
Мы с Алексом Белицем спортировали MIPSfpga на плату Terasic DE0-CV с Altera Cyclone V - Юрий Панчул [entries|archive|friends|userinfo]
Money can buy bandwidth. Latency requires bribing God.

[ website | My Website ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Мы с Алексом Белицем спортировали MIPSfpga на плату Terasic DE0-CV с Altera Cyclone V [Jul. 29th, 2015|12:39 am]
Yuri Panchul
Мы с Алексом Белицем abelits спортировали MIPSfpga на плату Terasic DE0-CV с Altera Cyclone V. Крутизна этой платы заключается в том, что она дешевая ($150) и ее просто импортировать в Россию из Тайваня (отсюда).





Вейвы от чего на экране моего лаптопа?

Synopsys VCS/DVE
1(11.1%)
Cadence IUS/SimVision
1(11.1%)
Mentor ModelSim/Questa
5(55.6%)
Xilinx Vivado
0(0.0%)
Icarus / GTKWave
1(11.1%)
Другое / пояснить в комментариях
1(11.1%)

Платы с какими FPGA есть у вас на руках или доступны на работе или на учебе?

Xilinx Virtex-7
1(3.6%)
Xilinx Kintex-7
2(7.1%)
Xilinx Artix-7
1(3.6%)
Xilinx Virtex-6
1(3.6%)
Xilinx Spartan-6
6(21.4%)
Xilinx Spartan-3
6(21.4%)
Другие Xilinx - пояснить в комментариях
2(7.1%)
Altera Stratix
0(0.0%)
Altera Arria
0(0.0%)
Altera Cyclone V
0(0.0%)
Altera Cyclone IV
5(17.9%)
Altera Cyclone III
0(0.0%)
Altera Cyclone II
2(7.1%)
Другая Altera - пояснить в комментариях
1(3.6%)
Другие FPGA - Lattice и т.д. - пояснить в комментариях
1(3.6%)

Через какую хрень вы готовы грузить на плату программы для рабоющего на ней soft core?

Через BusBlaster / OpenOCD
4(10.3%)
Через USB - UART - DMA - custom logic
13(33.3%)
Через Xilinx-овую тулзу (объяснить как)
3(7.7%)
Через Altera-вскую тулзу (объяснить как)
2(5.1%)
Загружать с SD-карты
10(25.6%)
Другое дешевое решение не требующее пересинтезирования системы для каждой программы(пояснить в комментариях)
4(10.3%)
У меня много лишнего времени, я готовить хардкодить программу прямо в память во время синтеза системы на верилоге
2(5.1%)
Я московская журналистка. Правильно ли я поняла, что Панчул еще на один шаг ближе к приезду в Россию в октябре?
1(2.6%)
LinkReply

Comments:
[User Picture]From: ramlamyammambam
2015-07-29 07:48 am (UTC)
Классно.
Теперь бы еще Линукс запустить на этой плате.
(Reply) (Thread)
[User Picture]From: abelits
2015-07-29 08:14 am (UTC)
Как можно не запустить, если я в этом участвую?
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: kamarado_anton
2015-07-29 08:01 am (UTC)
извините, а будут фотографии с Ричардом Столлманом?
(Reply) (Thread)
[User Picture]From: panchul
2015-07-29 02:35 pm (UTC)
Я на конференции, на которых можно встретить Столлмана, был только один раз, в Сан-Диего в прошлом веке :-) Я еще там Ленина видел спорил с Линусом Торвальдсом!
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: fabless
2015-07-29 08:21 am (UTC)
Какая правильная комбинация плат нужна, чтобы залить свой процессор в FPGA и чтобы свой процессор отдавал часть вычислений в ядро MIPS (в FPU) и забирал результат?
(Reply) (Thread)
[User Picture]From: suvorow_
2015-07-29 08:46 am (UTC)
Привет Саше и Серёже!
У меня в столе валяется железка на Altera EPM7064, сделанная мной в незапамятные времена :)
Реально, незапамятные, тогда SPDIF вход на писишках был редкостью несусветной. Эта железка его и реализовала. Причём, на ISA, и с тамошним DMA. 16-битным.
Эти микросхемы давно не выпускаются. Чтоб не соврать, это был 1997 год, самый конец.
(Reply) (Thread)
[User Picture]From: Валерий Казанцев
2015-07-29 09:14 am (UTC)
Сколько мегагерц получилось?
(Reply) (Thread)
[User Picture]From: panchul
2015-07-29 01:52 pm (UTC)
64. Теоретически, можно сделать больше, если заменить синтезируемые блоки скажем в ALU на Altera-specific macros.

Edited at 2015-07-29 11:14 pm (UTC)
(Reply) (Parent) (Thread)
[User Picture]From: sergegers1
2015-07-29 09:23 am (UTC)
А пёс одобрил?
(Reply) (Thread)
[User Picture]From: andrey_yurin
2015-07-29 11:27 am (UTC)
Юрий! А можно ли осветить тему написания драйверов? Вот взял я, к примеру, ваше ядрышко. Хочу запустить, например, ОС. Пусть это будет какой-то из Linux-ов. На плате у меня стоит Marvell-овский Ethernet мост. Как мне, например, прикрутить TCP|IP к этой штуке? Тоесть насколько я понимаю работа с тем-же Ethernet из под ОС - эторабота с сокетом. А общением на физическом уровне с мостом занимается драйвер. Так вот если у меня уникальная плата - то мне и драйвер же под неё надо писать. Так? А как это делается?
(Reply) (Thread)
[User Picture]From: abelits
2015-07-29 12:26 pm (UTC)
Linux начинает работать со всеми поддерживаемыми его драйверами чипами, как только в нём начинает работать соответствующая шина и механизм определения ресурсов. Определение ресурсов, принадлежащих устройствам, делается либо через встроенный механизм шины (PCI, все её "потомки" и эмуляция её регистров), либо описание через дерево устройств (device tree), которое обычно скармливается ядру при загрузке. На гнуснопрославленном x86 есть также ACPI, PnP BIOS, и проверки устройств с фиксированным адресом на шине ISA, то есть, сейчас это программно почти совместимый с ней LPC.

Для чипов и модулей, реализованных на FPGA, для которых не существует драйверов, их нужно написать. Это, как раз, хорошая учебная задача -- сделать устройство и драйвер к нему.

Сетевой стек о драйверах знает только их интерфейс -- если драйвер его предоставляет, сеть работает. Есть разнообразные детали всего этого, и от них может зависеть производительность и работа автоматической конфигурации параметров, однако минимум обеспечивается легко.

Edited at 2015-07-29 12:27 pm (UTC)
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: prof_killjoy
2015-07-29 05:24 pm (UTC)
Юрий, поучаствовал я тут в учебных экспериментах с MIPSfpga. Надо сказать у меня были большие ожидания, поскольку пока разбирался с не очень удобной процедурой доступа к материалам на сайте Imagination, по ходу прочел различные многообещающие тексты на том сайте. К сожалению, впечатления можно описать фразой «полное разочарование», хотя , быть может, мне не удалось понять что-то важное и скрытое от первого взгляда.

Начну с того, что я попытался представить себя на месте студента технического ВУЗа. Надо сказать, что сейчас есть очень много ядер на FPGA с очень неплохими параметрами, подходящими для учебных задач. Но к сожалению, поскольку как Вы писали, в MIPSfpga используется промышленное ядро, то с точки зрения студента, для его учебных задач, оно просто нереально большое и нереально медленное. Синтезируется промышленное ядро также очень медленно, это понятно само по себе, на порядок медленнее, чем ожидаемо для ядра из студенческой образовательной программы. Ведь студенту надо большое количество раз ставить эксперименты походу одного занятия.

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

Понятно, что «все, что не некролог — это пиар», но иной пиар может лишь ускорить некролог.

Возможно, не стоит судить строго, первый блин всегда комом и наверняка сейчас на MIPS идет активная работа по выпуску новой версии, но это лишь мое предположение.

Хотя, если мною был не понят некий замысел, хотелось бы немного развеять свою дремучесть. И узнать, какие именно реальные преимущества у ядра MIPSfpga для образовательных задач, которые я, может быть по невнимательности, не разглядел.

Edited at 2015-07-29 05:26 pm (UTC)
(Reply) (Thread)
[User Picture]From: panchul
2015-07-29 05:44 pm (UTC)
Пакет пока довольно сырой (есть много неряшливостей), а лабы действительно требуют существенной переделки, так как текущие лабы не показывают зачем нужен MIPSfpga по сравнению с простыми урезанными подмножествами MIPS и других архитектур, которые испольхуются в academia. Я сам планирую перед поездкой в Москву сделать пару более наглядных и полезных лаб, чем это сделали Харрисы, которых мы подрядили сформировать пакет.

Насчет кода - он написал в структурном стиле (куча комбинаторных assign-ментов и инстанциация некоторых примитивов). В ядрах других линеек (например mid-range MIPS I6400) мы используем более "высокоуровнево" выглядящий код.

Я также согласен, что при введении студента в тему (например с помощью изучения учебника Harris & Harris) лучше использовать совсем простецкий процессор на несколько страниц кода, который быстро синтезируется.

При этих недостатках у MIPSfpga есть несколько важных достоинств:

1. Это ядро (точнее его промышленную версию MIPS microAptiv UP и другие варианты на том же коде) лицензировали несколько десятков компаний, в том числе Samsung для своей платформы Artik 1 (объявленной в мае) и Microchip для микроконтроллера PIC32MZ (выпущенного в начале 2014 года). Помимо простых студенческих ядер для студентов полезно поработать и с ядром, которое используют инженеры в Samsung и Microchip.

2. В отличие от популярных для университетов OpenRISC и новой моды на RISC/V, у которых ограничена экосистема поддержки со стороны софтвера, MIPSfpga поддерживается кучей софтвера - от GCC и LLVM до Linux-а и дюжины RTOS-ов.

3. Существует учебное ядро от ARM, но оно в obfuscated виде - студенты не могут видеть исходники, не могут подсоединить провода к внутренним регистрам и наблюдать конвейер в действии.

4. Существует ядро MicroBlaze, но оно Xilinx-specific - студенты не могут ни использовать его на других FPGA, ни сделать с ним ASIC.

5. И мелочи - MIPSfpga поддерживает кэши и MMU + еще разные разности, про которые я могу рассказать.



Edited at 2015-07-29 05:54 pm (UTC)
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: 18cc
2015-07-29 06:11 pm (UTC)
Ну так от чего вейвы? Мне как новичку, который только начал играться кажется, что это либо modelsim, либо gtkwave.
(Reply) (Thread)
[User Picture]From: panchul
2015-07-29 06:44 pm (UTC)
Это от Synopsys VCS / DVE, связь с линуксным сервером через VNC
(Reply) (Parent) (Thread)
[User Picture]From: sir66
2015-07-29 08:24 pm (UTC)
Эта та плата что у меня?

Да, Basys3 тоже у меня (1 шт). В Москве будет 3 августа.

А можно подробнее описать получившуюся конфигурацию MIPS (частота, интерфейсы, память и пр...)
(Reply) (Thread)
[User Picture]From: panchul
2015-07-29 09:31 pm (UTC)
64 MHz, AHB-Lite, занимает 1/3 FPGA (правда я урезал память). Я тебе могу все прислать и ты можешь сам с ним играться, но чтобы на меня не серчал Роберт Оуэн, скооперируйся скажем с Димой Северовым, чтобы он загрузил основной пакет от его лица на Физтехе. (Я потом сделаю эдакую дельту - дополнения от общественности, и выложу ее на гитхаб).

Edited at 2015-07-29 11:14 pm (UTC)
(Reply) (Parent) (Thread)
[User Picture]From: stalingrad_city
2015-08-03 12:39 pm (UTC)

Гимн РФ на пляже в Сочи

Юрий, зацените :)
Гимн РФ на пляже в Сочи.

https://www.youtube.com/watch?v=4QhxR8_omXA

(Reply) (Thread)