Easyelectronics.ru

Электроника для всех
Текущее время: 14 окт 2019, 23:13

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Процессор на ПЛИС
СообщениеДобавлено: 25 июн 2019, 14:04 
Только пришел

Зарегистрирован: 25 июн 2019, 13:48
Сообщения: 11
Доброго всем времени суток. Какое-то время назад возникла идея сделать собственный процессор на ПЛИС. И что-бы этот опыт мог пригодиться еще кому-то, кроме меня, то видео о создании процессора было решено выкладывать на youtube. Если кому интересна данная тема, то добро пожаловать на мой канал :) Кроме процессора, там есть и другие видео, в основном посвященные программированию на ассемблере и Си под AVR и STM32 микроконтроллеры.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Процессор на ПЛИС
СообщениеДобавлено: 25 июн 2019, 14:22 
Старожил

Зарегистрирован: 23 мар 2017, 14:45
Сообщения: 5880
А смысл? В чем состоит выигрыш такой конструкции?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Процессор на ПЛИС
СообщениеДобавлено: 25 июн 2019, 14:40 
Старожил

Зарегистрирован: 08 авг 2013, 09:43
Сообщения: 2273
Смысл в том, что это реклама канала на ютубе.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Процессор на ПЛИС
СообщениеДобавлено: 25 июн 2019, 15:14 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 3643
У Альтера есть такие готовые решения эмуляции процессора - берите и пользуйтесь, даже ничего не изобретая.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Процессор на ПЛИС
СообщениеДобавлено: 25 июн 2019, 15:26 
Старожил

Зарегистрирован: 27 апр 2013, 13:53
Сообщения: 1024
В несложных и не ресурсоёмких ядрах процессоров в FPGA есть определённый смысл.
Один из примеров проекта c Github Forth Cpu (есть и другие)

P.S. Например J1 Форт процессор был сделан и применён в рамках проекта Gameduino :)
Вероятность появления данных разработок в рамках законченных кристалов мала.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Процессор на ПЛИС
СообщениеДобавлено: 25 июн 2019, 16:23 
Только пришел

Зарегистрирован: 25 июн 2019, 13:48
Сообщения: 11
Мне кажется главным преимуществом будет то, что внутреннюю логику такого процессора можно будет адаптировать под определенные задачи (в идеале при этом не меняя ISA). Так-же можно на том же ПЛИС разместить переферию, заточенную под конкретный проект. А вообще занялся я этим проектом больше потому что интересно разобраться в том как работает процессорная логика.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Процессор на ПЛИС
СообщениеДобавлено: 25 июн 2019, 16:32 
Старожил

Зарегистрирован: 27 апр 2013, 13:53
Сообщения: 1024
lldevlab писал(а):
А вообще занялся я этим проектом больше потому что интересно разобраться в том как работает процессорная логика.

Как насчёт таких минималистических проектов?
TTL компьютер Gigatron.io

P.S. Возможно и дизайн данного компьютера можно ускорить в реализации FPGA.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Процессор на ПЛИС
СообщениеДобавлено: 25 июн 2019, 17:11 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 3643
Тут на форуме недавно уже был один такой "одаптатор", выкладывал ссылки на видосы, где перед камерой в течение получаса лежит пустой кусок одностороннего текстолита и несколько разъемов, и закадровый голос мечтательно рассказывает о том, как он на этой плате создаст самодельный модульный комутер и сколько фенечек и плюшечек в нем будет. Это случайно не вы ли, lldevlab, снова вернулись?

Вас интересует работа логики? Это похвально. Но стоит ли изобретать велосипед? Разве что для тренировки скилов, для получения опыта.
Я и сам как-то раньше немного баловался. Там вобщем-то от АЛУ нужно, чтобы оно выполняло базовые лог.операции (and, or, xor, not), производило арифметическое икс-разрядное сложение с переносом/заёмом и инвертированием одного из операндов для реализации вычитания, а так же проводило циклический сдвиг в обе стороны с выдвиганием/задвиганием бита. Ну и опционально нужна схема быстрого переноса на матрице икс/икс разрядов, и желательно установку/сброс отдельного произвольного бита.
Любой процессор должен иметь набор команд. Тут тоже уже всё изобретено до нас. Ничего нового вы не скажете, ведь всё произрастает из законов двоичной математики. Схема двоичного икс-разрядного сумматора известна уже тыщщу лет. Закон вычитания методом сложения с инвертированным дополнением тоже давно известен. Сдвиги влево/вправо - это умножение/деление на степени двойки. Схема быстрого переноса - это для быстрого умножения чисел.


Последний раз редактировалось BusMaster 25 июн 2019, 17:29, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Процессор на ПЛИС
СообщениеДобавлено: 25 июн 2019, 17:23 
Только пришел

Зарегистрирован: 25 июн 2019, 13:48
Сообщения: 11
KPG писал(а):
lldevlab писал(а):
А вообще занялся я этим проектом больше потому что интересно разобраться в том как работает процессорная логика.

Как насчёт таких минималистических проектов?
TTL компьютер Gigatron.io

P.S. Возможно и дизайн данного компьютера можно ускорить в реализации FPGA.


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

BusMaster писал(а):
Тут на форуме недавно уже был один такой "одаптатор", выкладывал ссылки на видосы, где перед камерой в течение получаса лежит пустой кусок одностороннего текстолита и несколько разъемов, и закадровый голос мечтательно рассказывает о том, как он на этой плате создаст самодельный модульный комутер и сколько фенечек и плюшечек в нем будет. Это случайно не вы ли, lldevlab, снова вернулись?


Не, это не я :) Я больше по коду специализируюсь. Мои познания в функционировании реального железа (транзисторы, резисторы и пр.) довольно скромные, так что эти темы я стараюсь обходить стороной. Собственно по этой причине я и выбрал ПЛИС, ибо это уже готовый продукт, который надо только правильно запрограммировать.

BusMaster писал(а):
Вас интересует работа логики? Это похвально. Но стоит ли изобретать велосипед? Разве что для тренировки скилов, для получения опыта.
Я и сам как-то раньше немного баловался. Там вобщем-то от АЛУ нужно, чтобы оно выполняло базовые лог.операции (and, or, xor, not), производило арифметическое икс-разрядное сложение с переносом/заёмом и инвертированием одного из операндов для реализации вычитания, а так же проводило циклический сдвиг в обе стороны с выдвиганием/задвиганием бита. Ну и опционально нужна схема быстрого переноса на матрице икс/икс разрядов, и желательно установку/сброс отдельного произвольного бита.
Любой процессор должен иметь набор команд. Тут тоже уже всё изобретено до нас. Ничего нового вы не скажете, ведь всё произрастает из законов двоичной математики. Схема двоичного икс-разрядного сумматора известна уже тыщщу лет. Закон вычитания методом сложения с инвертированным дополнением тоже давно известен. Сдвиги влево/вправо - это умножение/деление на степени двойки. Схема быстрого переноса - это для быстрого умножения чисел.


Полностью с этим согласен. Как уже написал выше прежде всего хочется самому так сказать «пощупать» как это все работает. Ну и плюс ко всему насмотрелся я где-то год назад лекций про проектирование CPU, различные архитектуры (VLIW, Dataflow, выполнение SIMD инструкций, Векторные операции). Так сказать хочется прикоснуться к прекрасному :) К тому-же имея CPU работу которого я полностью понимаю, можно на его основе попробывать еще много всего интересного, например создать для него язык ассемблера, а если дать волю фантазии, то еще и прикрутить этот язык ассемблера к gcc :) Но последнее пока слишком круто для меня.


Последний раз редактировалось lldevlab 25 июн 2019, 17:47, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Процессор на ПЛИС
СообщениеДобавлено: 25 июн 2019, 17:32 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 3643
аа, то есть, как функционирует разъем, вы знаете только в общих чертах? :)))
Ну ладно. А как дело обстоит с законами двоичной математики? Нет, не десятичной. А именно двоичной. Вам придется работать с двоичными числами. Как реализовать вычитание на сумматоре - знаете?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Процессор на ПЛИС
СообщениеДобавлено: 25 июн 2019, 17:50 
Только пришел

Зарегистрирован: 25 июн 2019, 13:48
Сообщения: 11
BusMaster писал(а):
аа, то есть, как функционирует разъем, вы знаете только в общих чертах? :)))
Ну ладно. А как дело обстоит с законами двоичной математики? Нет, не десятичной. А именно двоичной. Вам придется работать с двоичными числами. Как реализовать вычитание на сумматоре - знаете?


Да, с этим проблем нет, в свое время научили :) Я на самом деле уже провел первичную подготовку для создания процессора, если интересно, то вот результат моих последних изысканий в данном направлении. Теперь, дабы не писать все в машинных кодах, начал подготовку, для создания компилятора и соответственно языка ассемблера. Хочется верить, что не уподоблюсь тому "одаптатору".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Процессор на ПЛИС
СообщениеДобавлено: 25 июн 2019, 19:16 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 3643
ммм, ясно и понятно. Плохо то, что вы даже не нюхали железо в смысле логических элементов, всё исключительно софтово, буковками. Небось, даже не представляете таблицу истинности XOR или NAND.
Когда перейдете от теории к практике, вам никуда не деться от железа. Ведь надо будет изучить работу NOR Flash и понять её отличие от NAND Flash, изучить интерфейсы. К тому же, вам придется ставить не только конвейер, но и кэш инструкций.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Процессор на ПЛИС
СообщениеДобавлено: 25 июн 2019, 19:51 
Только пришел

Зарегистрирован: 25 июн 2019, 13:48
Сообщения: 11
BusMaster писал(а):
ммм, ясно и понятно. Плохо то, что вы даже не нюхали железо в смысле логических элементов, всё исключительно софтово, буковками. Небось, даже не представляете таблицу истинности XOR или NAND.
Когда перейдете от теории к практике, вам никуда не деться от железа. Ведь надо будет изучить работу NOR Flash и понять её отличие от NAND Flash, изучить интерфейсы. К тому же, вам придется ставить не только конвейер, но и кэш инструкций.


С таблицами истинности я знаком. Их еще в универе учил, на дискретной математике. Таблицы истинности все-таки в софте (особенно низкоуровневом) можно активно использовать для накладывания тех же битовых масок. Теорию железа я в принципе тоже понимаю, всякие там latch'и, flip-flop'ы, мультиплексоры и демультиплексоры. На эту тему успел посмотреть неплохой курс на youtube про цифровую электронику. Кое-что реализовал на ПЛИС (half-adder и full adder). На самом деле я даже успел посмотреть курс про аналоговую электронику, но применять эту теорию на практике меня как-то не тянет :) Да и устанавливать самому резисторы/транзисторы в цепь и высчитывать нужное напряжение мне не особо интересно. С принципами работы простых интерфейсов (UART, I2C), тоже вроде как разобрался. UART даже на ПЛИС удавалось реализовать (правда передал с его помощью только 1 байт и есть вероятность, что если передавать много байт, то что-то пойдет не так. Тут для отладки хорошо бы освоить Timing Analizer того же Quartus, но руки пока не дошли). I2C тестил в Atmega328p, настраивал через регистры, на этом этапе осознал важность подтягивающих и стягивающих резисторов в интерфейсах :) Но вот сам собрать обвязку того-же Atmega328p я бы пожалуй не смог, по этому и не лезу особо в железо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Процессор на ПЛИС
СообщениеДобавлено: 25 июн 2019, 21:58 
Старожил

Зарегистрирован: 10 июн 2011, 23:01
Сообщения: 3297
https://habr.com/ru/post/433342/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Процессор на ПЛИС
СообщениеДобавлено: 25 июн 2019, 23:04 
Старожил

Зарегистрирован: 23 мар 2017, 14:45
Сообщения: 5880
Согласен, что в исследовательских, учебных и игровых целях такое занятие имеет смысл.
Но как практическая технология - это навряд.
Почему я так думаю.
В чем главная сильная сторона процессора? - в том, что это перенастраиваемое устройство, он может быть запрограммирован под ту или иную задачу, и таким образом применим для решения широчайшего круга задач.
Но зачем программируемое эмулировать в уже и так программируемой ПЛИСке? Гораздо эффективнее запрограммировать непосредственно ПЛИСку под решение конкретной задачи.
А если задача такова, что ПЛИС ее решить не может, значит не может и с прошитым внутри нее эмулированным процессором.
Короче, я хочу сказать, что введение такой "посреднической" структуры как прошитый внутри процессор, приводит только к нерациональной потере ресурса в сравнении с прямым программированием под запрос.

Иное дело, если разрабатывается процессор и отлаживается в ПЛИС, для дальнейшего выпуска. Это разумеется удобно. Но это исследовательская работа, о чем я упомянул с самого начала.
Или учебная/игровая, если для собственного удовольствия только. :))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Процессор на ПЛИС
СообщениеДобавлено: 25 июн 2019, 23:31 
Старожил

Зарегистрирован: 10 июн 2011, 23:01
Сообщения: 3297
Кот495 писал(а):
А если задача такова, что ПЛИС ее решить не может, значит не может и с прошитым внутри нее эмулированным процессором.

это не совсем так, посмотрите сколько надо логики на, например, jpeg кодер и на какое-нибудь самое простое процессорное ядро (пусть даже под fpga не особо оптимизированное), которое пусть и небыстро, но всё-таки справится.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Процессор на ПЛИС
СообщениеДобавлено: 25 июн 2019, 23:50 
Старожил

Зарегистрирован: 23 мар 2017, 14:45
Сообщения: 5880
Логики на кодер не может быть больше, чем на ядро. В крайнем случае - столько же: это означает, что то ядро и является искомым кодером)))))))))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Процессор на ПЛИС
СообщениеДобавлено: 26 июн 2019, 22:00 
Только пришел

Зарегистрирован: 31 май 2019, 23:06
Сообщения: 5
Разве ПЛИС эмулирует процессор? Я так понимаю, что нет. ПЛИС конфигурируется таким образом, что внутри нее появляется нормальный железный процессор, а не эмулятор процессора.
Автора темы я полностью поддерживаю и даже по хорошему ему завидую! Он сохранил энергию и любознательность, чего многие в наше время лишены.
Я сам какое то время назад пытался работать над своим процессором, вдохновленный статьей "Микропроцессор своими руками" http://iosifk.narod.ru/up6.pdf
В этой статье есть и аргументы за подобный процессор.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Процессор на ПЛИС
СообщениеДобавлено: 26 июн 2019, 22:03 
Только пришел

Зарегистрирован: 31 май 2019, 23:06
Сообщения: 5
По моим грубым прикидкам, простой процессор в современной ПЛИС с дешевыми вентилями может стоить на уровне дешевой аврки типа меги-8, но иметь производительность в разы выше.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Процессор на ПЛИС
СообщениеДобавлено: 27 июн 2019, 00:54 
Старожил
Аватара пользователя

Зарегистрирован: 28 мар 2012, 10:33
Сообщения: 1196
Откуда: Сочи
Я думаю, самый рациональный вариант - повторить или улучшить ядро avr или pic, на таком уровне, чтобы использовать имеющийся для него компилятор С.
А уж периферию наращивать какую захочется.
Например, навороченный таймер для управления трехфазным двигателем.
Или вывод звука через I2S. Или видеоадаптер с внешней sdram.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Процессор на ПЛИС
СообщениеДобавлено: 27 июн 2019, 11:52 
Заглядывает иногда

Зарегистрирован: 28 сен 2018, 20:50
Сообщения: 53
Простой процессор на FPGA - это очень просто, на самом деле. Клон упомянутого выше J1 у меня занял всего лишь 150 строк на верилоге.
avf12 писал(а):
Разве ПЛИС эмулирует процессор? Я так понимаю, что нет.
Тоже заметил. Такое впечатление, что люди, которые пишут про эмуляцию, не совсем в теме. Другое дело, что, как правило, нет смысла делать свой процессор со своим набором команд кроме как для обучения. А еще надо бы добавить, что ПЛИС - это вовсе не аналог кучки рассыпухи, которую можно соединять как угодно. В первом приближении отдельные ячейки FPGA состоят из маленькой памяти с 3-5 адресными входами и одним выходом, который еще может быть подсоединен к входу D-триггера, имеющегося в составе каждой ячейки.
Кот495 писал(а):
Но как практическая технология - это навряд.
Ну да, конечно. Microblaze, Nios и прочие софт-процессоры используются весьма широко. Наверное их дураки делали и используют тоже дураки. Простейший пример - приделать дисплей (хоть 1602), несколько кнопок и сделать на этом менюшку.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Процессор на ПЛИС
СообщениеДобавлено: 30 июн 2019, 09:15 
Старожил
Аватара пользователя

Зарегистрирован: 28 янв 2010, 11:56
Сообщения: 3463
Откуда: Винница
antonluba писал(а):
Я думаю, самый рациональный вариант - повторить или улучшить ядро avr или pic
Z80 (см. соседнюю тему). Добавив всю необходимую периферию.

_________________
Китайская комплектация - европейское качество!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Процессор на ПЛИС
СообщениеДобавлено: 30 июн 2019, 10:36 
Старожил
Аватара пользователя

Зарегистрирован: 13 дек 2010, 23:15
Сообщения: 2026
Откуда: Киев
Так уже есть наверное.
Вот тут например, https://opencores.org/projects.
ТС даже если будете своё ядро строить, покопайтесь на том сайте. Там куча переферии уже готова.
Касательно же процессора в ПЛИС, игрался я с NIOS 2. Бесплатная версия, типа без изысков, на 50 МГц имхо тормознутие меги8. Там походу 12 тактов на команду без pipeline.
Так что сделать годное ядро не так просто. Но, плис в любом случае быстрее и надёжнее чем софтовая эмуляция, особенно с учётом возможности добавления кастомных команд.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Процессор на ПЛИС
СообщениеДобавлено: 30 июн 2019, 12:46 
Только пришел

Зарегистрирован: 25 июн 2019, 13:48
Сообщения: 11
Signaller писал(а):
Так уже есть наверное.
Вот тут например, https://opencores.org/projects.
ТС даже если будете своё ядро строить, покопайтесь на том сайте. Там куча переферии уже готова.
Касательно же процессора в ПЛИС, игрался я с NIOS 2. Бесплатная версия, типа без изысков, на 50 МГц имхо тормознутие меги8. Там походу 12 тактов на команду без pipeline.
Так что сделать годное ядро не так просто. Но, плис в любом случае быстрее и надёжнее чем софтовая эмуляция, особенно с учётом возможности добавления кастомных команд.


Спасибо, на сайте обязательно покапаюсь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Процессор на ПЛИС
СообщениеДобавлено: 30 июн 2019, 22:12 
Заглядывает иногда

Зарегистрирован: 28 сен 2018, 20:50
Сообщения: 53
lldevlab писал(а):
Разбираться в уже готовых решениях на данном этапе пока не хочу, т. к. опыта в данной теме у меня еще не много, хочу перед тем как лезть в чужие проекты, самому лучше разобраться в базовых принципах работы процессора.
lldevlab писал(а):
Спасибо, на сайте обязательно покапаюсь.
Выглядит несколько непоследовательно.
Ну и если непонятно что-то более-менее конкретное, то я готов объяснить. Все же простейший процессор это одна-две сотни строк на верилоге - там и разбираться почти не в чем.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB