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

 
 
22 страниц V  « < 18 19 20 21 22 >  
Reply to this topicStart new topic
> Свои процессоры, Разработка своих процессоров со своей системой команд
Leka
сообщение Dec 9 2015, 11:09
Сообщение #286


Профессионал
*****

Группа: Участник
Сообщений: 1 075
Регистрация: 30-09-05
Пользователь №: 9 118



Цитата(Leka @ Nov 5 2015, 17:57) *
200 ЛЕ - это с запасом. 3х-уровневый конвейер естественным образом получается, без дополнительных элементов.
1 уровень - внутренние регистры одного порта памяти, 2 уровень - внутренние регистры другого порта памяти, 3 уровень - регистр аккумулятора.

Если интересно, и устраивает система команд - могу детально проработать и проверить практически.

На Марсоходе выложил исходники 16-разрядного аккумуляторного ядра, с 1К регистровым файлом в памяти (фон Неймановская архитектура). 3х-уровневый конвейер, команды регистр-аккумулятор за 1 такт. Чуть больше 200 ЛЕ (но можно ужать, если добавить синтезаторо-зависимые оптимизации, я их убрал). В f.hex.v можно посмотреть ассемблерный код, синтезируемый припомощи LCC, сам ассемблер еще не выкладывал.
Go to the top of the page
 
+Quote Post
~Elrond~
сообщение Dec 9 2015, 14:26
Сообщение #287


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

Группа: Свой
Сообщений: 100
Регистрация: 20-04-12
Из: Нижний Новгород
Пользователь №: 71 488



Leka
Глянул проц, спасибо. sm.gif Но где же самое интересное? Даже не сам ассемблер как таковой, а в первую очередь адаптация LCC под свой ассемблер?
Go to the top of the page
 
+Quote Post
Leka
сообщение Dec 9 2015, 14:45
Сообщение #288


Профессионал
*****

Группа: Участник
Сообщений: 1 075
Регистрация: 30-09-05
Пользователь №: 9 118



Позже выложу (подправленный symbolic.c + *.exe), надо рефакторинг сделать. У меня цепочка symbolic ---> asm ---> hex, состоящая из нескольких исполняемых файлов. В LCC я подправил symbolic.c, остальное - оптимизатор-транслятор на Паскале. Паскалевские исходники выкладывать не буду, только если позже перепишу на Си.

Адаптации LCC под ассемблер минимальна, тк используется target=symbolic, это и скармливается ассемблеру.

Сообщение отредактировал Leka - Dec 9 2015, 14:48
Go to the top of the page
 
+Quote Post
Leka
сообщение Dec 9 2015, 15:46
Сообщение #289


Профессионал
*****

Группа: Участник
Сообщений: 1 075
Регистрация: 30-09-05
Пользователь №: 9 118



0.asm - вывод с подправленным symbolic.c, дальше этот файл обрабатывается самопальным ассемблером. У меня модель памяти сильно отличается от общепринятой (из-за 1К регистрового файла), поэтому не стал разбираться/делать свой .md файл.
В symbolic просто закомментировал все ненужное мне, добавил вывод space вместо смещений, и поменял некоторые ключевые слова.

Рефакторинг (и выкладывание .exe) не скоро буду делать.

Сообщение отредактировал Leka - Dec 9 2015, 15:50
Прикрепленные файлы
Прикрепленный файл  symb.zip ( 6.01 килобайт ) Кол-во скачиваний: 21
 
Go to the top of the page
 
+Quote Post
Leka
сообщение Dec 10 2015, 22:07
Сообщение #290


Профессионал
*****

Группа: Участник
Сообщений: 1 075
Регистрация: 30-09-05
Пользователь №: 9 118



Кстати, "разгонные" потенциалы смотрел кто для разных ядер?
Чтобы STA мог правильно подсчитать частоты, нужно законстрейнить "ложные" пути, которые не влияют на реальное быстродействие. Это долго и нудно, для хобби проще задрать частоту, и посмотреть...
Для моего m16, например, STA дает ~110МГц на при 1200мВ/0Ц (de0-nano), попробовал 150МГц - работает...
Go to the top of the page
 
+Quote Post
~Elrond~
сообщение Dec 18 2015, 12:00
Сообщение #291


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

Группа: Свой
Сообщений: 100
Регистрация: 20-04-12
Из: Нижний Новгород
Пользователь №: 71 488



Для меня наибольший интерес представляют процессоры, которым на ассемблере можно написать что-то типа
Код
R1.H = (A1 = R3.L * R0.H), R1.L=(A0 = R3.L * R0.L) || [P0++] = R6 || R2 = [I2++];
Есть ли вообще в открытом доступе подобные soft-DSP?
Go to the top of the page
 
+Quote Post
Leka
сообщение Feb 19 2016, 15:05
Сообщение #292


Профессионал
*****

Группа: Участник
Сообщений: 1 075
Регистрация: 30-09-05
Пользователь №: 9 118



Упрощенный USB-хост для клавиатуры - чтобы беспроводную можно было подключить без софт-процессора с Линуксом (из проводных намного проще взять PS/2). Проект для DE0-nano, ~400 ЛЕ (спасибо разработавшей USB армии даунов). На выходе модуля скан-код последней нажатой клавиши, счетчик нажатий, и карта нажатых Ctrl/Alt/Shift. 0-я версия, комменты в исходниках писать лень, проверил на паре клавиатур - работает.

Сообщение отредактировал Leka - Feb 19 2016, 15:06
Прикрепленные файлы
Прикрепленный файл  usbkbd.zip ( 3.1 килобайт ) Кол-во скачиваний: 87
 
Go to the top of the page
 
+Quote Post
Maverick
сообщение Feb 19 2016, 17:42
Сообщение #293


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(Leka @ Feb 19 2016, 17:05) *
Упрощенный USB-хост для клавиатуры - чтобы беспроводную можно было подключить без софт-процессора с Линуксом (из проводных намного проще взять PS/2). Проект для DE0-nano, ~400 ЛЕ (спасибо разработавшей USB армии даунов). На выходе модуля скан-код последней нажатой клавиши, счетчик нажатий, и карта нажатых Ctrl/Alt/Shift. 0-я версия, комменты в исходниках писать лень, проверил на паре клавиатур - работает.

С Вашего разрешения добавил ссылку в "ссылки на готовые описания модулей на форуме, предлагаю собрать все в одном документе/ветке форума" sm.gif


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
bbb
сообщение Feb 19 2016, 18:33
Сообщение #294


Местный
***

Группа: Участник
Сообщений: 335
Регистрация: 29-01-16
Пользователь №: 90 261



После того как топикстартер сделает "свои процессоры", я так понимаю, потребуется свои компиляторы и среды разработки написать под них? Или я что-то не понимаю?
Go to the top of the page
 
+Quote Post
iosifk
сообщение Feb 19 2016, 19:25
Сообщение #295


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(bbb @ Feb 19 2016, 21:33) *
После того как топикстартер сделает "свои процессоры", я так понимаю, потребуется свои компиляторы и среды разработки написать под них? Или я что-то не понимаю?

Вообще это не проблема. Для меня достаточно было компилятора ассемблера, который в результате работы вписывал в файл процессора содержимое памяти команд... И заодно я сделал софт-симулятор. "Среда разработки" была мной же написана на Си в ВСВ6. И это все оказалось быстрее отладить, чем автомат на более чем 200 состояний...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Serhiy_UA
сообщение Feb 19 2016, 20:18
Сообщение #296


Знающий
****

Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112



Цитата(iosifk @ Feb 19 2016, 23:25) *
Вообще это не проблема. Для меня достаточно было компилятора ассемблера, который в результате работы вписывал в файл процессора содержимое памяти команд... И заодно я сделал софт-симулятор. "Среда разработки" была мной же написана на Си в ВСВ6. И это все оказалось быстрее отладить, чем автомат на более чем 200 состояний...

iosifk,, уточните структуру, систему команд, основные принципы построения, а также итоговые параметры (тактовую частоту и занимаемые ресурсы ПЛИС) для своего софт процессора. И какой получился свой компилятор, т.е. какие он имеет возможности. По софт-симулятору тоже хотелось получить представление...
Если все вместе сложить, то получается достаточно большой объем работы был Вами сделан. Хотелось бы с ней ознакомиться, хотя бы в общих чертах...
Go to the top of the page
 
+Quote Post
iosifk
сообщение Feb 19 2016, 20:48
Сообщение #297


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Serhiy_UA @ Feb 19 2016, 23:18) *
iosifk,, уточните структуру, систему команд, основные принципы построения, а также итоговые параметры (тактовую частоту и занимаемые ресурсы ПЛИС) для своего софт процессора. И какой получился свой компилятор, т.е. какие он имеет возможности. По софт-симулятору тоже хотелось получить представление...
Если все вместе сложить, то получается достаточно большой объем работы был Вами сделан. Хотелось бы с ней ознакомиться, хотя бы в общих чертах...

Дело было такое. Пришел работать на фирму и мне дали сделать проект в ПЛИС. Там должен был быть командо-аппарат, управляющий примерно 50 шт реле, 8-10 ЦАПов и столько же АЦП. Команды принимались по последовательной шине на 300 МГц, а весь проект работал на 50 МГц.
Там на самом деле нужен был DSP процессор, но руководитель проекта сказал, что программисты наверняка что-нибудь пожгут... А схемы он сам может проверить. Беда в том, что алгоритмы выполнения приходящих команд были довольно сложные - уставки, блокировки и пр...
Что я сделал? Я сделал связку из 2-х процессоров. Битовый процессор делал Булеву обработку флагов и входных сигналов и результаты выдавал в память и в порт. Этот битовый порт дела SPI последовательность, далее там сидела микросхема с ОК мощными выходами. И для каждого битового интервала выполнялся расчет для соотв. реле. Т.е на одно реле можно было успеть просчитать до 50 команд. И этого вполне хватало...
Процессор описан в одной из моих статей. У меня на сайте...
А с 17 разрядным процессором битовый общался через память и флаги. Команды -24 бита, шина данных - 17 бит, озу - 16 бит. Потому как 12 битовые данные из АЦП принимались 32 раза и потом усреднялись. Процессор довольно простой: аккумулятор, стек данных и стек возврата, несколько регистров... Команды соответственно подогнаны под задачу. Одной командой данные можно считать из порта в память, в регистр и в порт вывода. И при этом задать wait-state. Всего понадобилось около 1Кслов команд. Т.е. примерно раза в 3-4 меньше, чем у стандартного мк. А вместе с битовым - раз в 10 проще и быстрее...
Про ассемблер тоже писал статью. Но если кому интересно, могу по скайпу показать рабочий стол с запущенной программой...
Ассемблер -это практически визард, т.к. команды не набиваются вручную, а из меню выбирается что и куда делает команда, при этом кодируется машинный код сразу. А потом за дополнительный проход ассемблер только расставляет адреса переходов по меткам...
Да и софт-симулятор тоже дело не хитрое, когда знаешь какая команда в каком окне что должна изменить...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
bbb
сообщение Feb 19 2016, 22:03
Сообщение #298


Местный
***

Группа: Участник
Сообщений: 335
Регистрация: 29-01-16
Пользователь №: 90 261



Цитата(iosifk @ Feb 19 2016, 22:25) *
Вообще это не проблема. Для меня

Ну таких как Вы мало. Для большинства даже свою архитектуру процессора разработать и реализовать её на ПЛИС уже страшенный гемор. А если ещё и свой компилятор и свою IDE писать для своего процессора...

ИМХО, эта задача не посильна для одного разработчика.
Он будет решать эту задачу лет 10. Но так полностью "до ума" не доведет.
Go to the top of the page
 
+Quote Post
Timmy
сообщение Feb 20 2016, 06:44
Сообщение #299


Знающий
****

Группа: Участник
Сообщений: 835
Регистрация: 9-08-08
Из: Санкт-Петербург
Пользователь №: 39 515



Цитата(bbb @ Feb 20 2016, 01:03) *
Ну таких как Вы мало. Для большинства даже свою архитектуру процессора разработать и реализовать её на ПЛИС уже страшенный гемор. А если ещё и свой компилятор и свою IDE писать для своего процессора...

Свой компилятор и IDE писать не обязательно, обычно обходятся back-end-ом к GCC, и плагинами к Eclipse, что обеспечивает вполне вменяемый объём работы.
Go to the top of the page
 
+Quote Post
bbb
сообщение Feb 20 2016, 15:23
Сообщение #300


Местный
***

Группа: Участник
Сообщений: 335
Регистрация: 29-01-16
Пользователь №: 90 261



Цитата(Timmy @ Feb 20 2016, 09:44) *
Свой компилятор и IDE писать не обязательно, обычно обходятся back-end-ом к GCC, и плагинами к Eclipse, что обеспечивает вполне вменяемый объём работы.

А это, типо просто?
Я, к примеру, даже слов-то таких не знаю.
Go to the top of the page
 
+Quote Post

22 страниц V  « < 18 19 20 21 22 >
Reply to this topicStart new topic
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 12th August 2025 - 09:07
Рейтинг@Mail.ru


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