Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вт дек 10, 2024 05:57

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 413 ]  На страницу Пред.  1 ... 22, 23, 24, 25, 26, 27, 28  След.
Автор Сообщение
 Заголовок сообщения: Re: Как сделать форт-процессор 2022
СообщениеДобавлено: Пн ноя 28, 2022 03:41 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Вложение:
Bugs18bis.7z [150.61 Кб]
Скачиваний: 174


forthBoard.pdf

P.S. Встретилось описание эмулятора компьютера Kestrel от автора (Samuel A. Falvo II) одноимённого проекта
KestrelComputer
Wiki проекта


Последний раз редактировалось KPG Пн ноя 28, 2022 06:34, всего редактировалось 1 раз.

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать форт-процессор 2022
СообщениеДобавлено: Пн ноя 28, 2022 05:43 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Вложение:
Steamer.7z [56.46 Кб]
Скачиваний: 181

Цитата:
NOP, {0} ( -- x y z) no operation

lit, {1} ( -- y z data) PC++ push data at PC, increment PC

@, {2} ( addr -- x y data) fetch data from addr

!, {3} ( data addr -- x x x) store data to addr

+, {4} ( n1 n2 -- x x n1+n2) add 2ND to TOP

AND, {5} ( n1 n2 -- x x n1&n2) and 2ND to TOP

XOR, {6} ( n1 n2 -- x x n1^n2) exclusive-or 2ND to TOP

zgo, {7} ( flg addr -- x x x) if flg equals 0 then jump to addr
else continue


P.S. Упомянутый проект Steamer (минимального процессора) в описании Kestrel S16X4A от 1999г (Myron Plichota - автор и BugsForth выше)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать форт-процессор 2022
СообщениеДобавлено: Вт ноя 29, 2022 16:49 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Total Vacuum писал(а):
У меня тоже валяется какая-то плата с надписями Digilent и Spartan-3E Starter Kit, но я даже не знаю, как к ней подступиться, инструкций нет, тренируюсь на рабочей плате, где Spartan-3E в корпусе VQ100 стоит, есть другие платы, где кажись 3A в коррусе PQ208. Думаю, что без разницы, на чем тренироваться. :)

Интересно с каким названием и ПЛИС микросхемой.
Для моей платы нужен был загрузчик взятый с сайта Digilent для загрузки при использовании популярной микросхемы USB Cypres 68013A установленной в плате.

P.S. Кстати есть (возможно действующий) сервис бесплатной аренды плат FPGA https://fpga-systems.ru/shop
Анонс этой инициативы 5-ть месяцев назад Бесплатная аренда отладок с FPGA /ПЛИС

Возможно интересно-познавательный канал с видео-лекциям по цифровой схемотехнике и применению FPGA


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать форт-процессор 2022
СообщениеДобавлено: Вт ноя 29, 2022 18:01 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7990
Благодарил (а): 26 раз.
Поблагодарили: 144 раз.
KPG писал(а):
P.S. Кстати есть (возможно действующий) сервис бесплатной аренды плат FPGA https://fpga-systems.ru/shop
Анонс этой инициативы 5-ть месяцев назад Бесплатная аренда отладок с FPGA /ПЛИС

Даже простой платы на многие проекты процессоров вполне хватает. Надо еще добраться до ситуации, когда проект перестанет влезать в ПЛИС. Про fpga-systems у меня большое подозрение, что этот ресурс поддерживается Михаилом Коробковым, который это все начинал (и которого я вполне неплохо знаю), так что вопрос легко можно перевести в практическую плоскость... вот только какую? Еще раз подчеркиваю - тут нечего раскочегаривать, надо садиться за САПР и пробовать куски кода.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать форт-процессор 2022
СообщениеДобавлено: Вт ноя 29, 2022 18:27 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 482
Откуда: Москва
Благодарил (а): 57 раз.
Поблагодарили: 24 раз.
KPG писал(а):
Интересно с каким названием и ПЛИС микросхемой.
Для моей платы нужен был загрузчик взятый с сайта Digilent для загрузки при использовании популярной микросхемы USB Cypres 68013A установленной в плате.
У меня эта плата: https://digilent.com/reference/programmable-logic/spartan-3e/start
Ради интереса запитал только что, завелась, на дисплейчике какая-то бегущая строка. Подключился к разъему USB, определился как программатор (т.е. здесь он встроенный, отдельный внешний не требуется), обнаружены 2 шт. ПЛИС и память, перепрошивать пока не стал, но readback содержимого памяти сделал успешно. На борту Spartan-3E XC3S500E в корпусе FGG320 (BGA).


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать форт-процессор 2022
СообщениеДобавлено: Вт ноя 29, 2022 18:41 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7990
Благодарил (а): 26 раз.
Поблагодарили: 144 раз.
Total Vacuum писал(а):

Знаю такую, когда-то сделали учебную лабораторию на них, вполне приличная штука. Первую микросхему, которая CPLD, трогать совсем не надо, иначе даже боюсь прикидывать, как там восстанавливать все. Кристалл вполне приличный, не мелкий, в силу особенностей технической стратегии Xilinx по частоте не сильно отличается от Spartan-6 (точнее, Spartan-6 не стали делать быстрее, хотя техпроцесс совсем другой). Там и VGA есть, но встроенный UART плюс LCD более чем достаточный набор чтобы попробовать.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать форт-процессор 2022
СообщениеДобавлено: Вт ноя 29, 2022 19:52 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 482
Откуда: Москва
Благодарил (а): 57 раз.
Поблагодарили: 24 раз.
Hishnik писал(а):
Первую микросхему, которая CPLD, трогать совсем не надо, иначе даже боюсь прикидывать, как там восстанавливать все.
Ну я собственно потому и побоялся шить в XCF04 что-либо, т.к. сначала нужно понять, какая из плисин кормится содержимым этой памяти. :) Так что сначала поизучаю инструкцию, чтобы не наломать дров.
По поводу VGA, кстати, пока не понял. Там 8 цветов всего получается? :) Впрочем, по большому счету все равно, сколько там цветов. Главное - сам принцип отработать.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать форт-процессор 2022
СообщениеДобавлено: Вт ноя 29, 2022 21:03 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7990
Благодарил (а): 26 раз.
Поблагодарили: 144 раз.
А, в XCF04 как раз можно шить, это для автономной работы проекта. Но ей надо подготовить специальный файл mcs, там немного нетривиальные окошки для его создания. Но в принципе ничего сложного. Это когда CPLD видны в JTAG, их не надо портить.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать форт-процессор 2022
СообщениеДобавлено: Ср ноя 30, 2022 11:51 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 482
Откуда: Москва
Благодарил (а): 57 раз.
Поблагодарили: 24 раз.
:D Я, кстати, всю жизнь именно так и делал: создавал mcs и шил в xcf04. Вроде еще можно bit грузить прямо в ПЛИС, но, понятное дело, оно теряется после рестарта.
В impact видны 2 ПЛИС и xcf04:
tdi --[xc3s500e]--[xcf04s]--[xc2c64a]-- tdo

А тем временем вчера завелась версия ядра с такой системой команд:
0 nibble byte xxx word jz call ret @ ! swap pick nand - mla rshift
Команды 0/nibble/byte/word запихивают в стек 0 и переключают процессор в режим чтения литералов на 0/1/2/4 такта, соответственно вода из литералов ушла, код стал более плотным, в версии без параллельного выполнения команд литералы вместо 1-9 тактов стали выполняться за 1-5, а jz/call вместо 2-10 за 2-6. Например, бродилка похудела с 1841 команды до 1477, ну и, естественно, заметно быстрее стала (98 fps против 74 fps). И при этом остался свободный слот под еще один опкод (команда xxx) :)
Еще забавную ошибку выловил попутно: у меня прошивка раньше всегда стартовала с адреса 1, а не 0, но т.к. стек в процессе ресета самоочищался, на предыдущих версиях ядра проблема себя не проявляла. А здесь вылезла во всей красе, поэтому счетчик команд во время ресета теперь инициализирую значением -1, а не 0, чтобы "будущее" значение счетчика команд стало 0, а не 1 :) Век живи - век учись :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать форт-процессор 2022
СообщениеДобавлено: Ср ноя 30, 2022 17:55 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Total Vacuum писал(а):
Команды 0/nibble/byte/word запихивают в стек 0 и переключают процессор в режим чтения литералов на 0/1/2/4 такта, соответственно вода из литералов ушла,

Можно ещё рассмотреть варианты загрузки литералов сразу в 2-е ячейки стека одной командой (может и один из них в стек возвратов для какой то возможности)
- это может быть интересно при использовании mla команды

P.S. Загрузка сразу двух литералов интересна и в плане поддержки ! команды, а если ввести в формат литерала
адрес (c сегментым регистpом), к примеру из 2-ух битов, то появится в рамках литерала возможность обратиться к окну переменных как это сделано в контроллере КР1878ВЕ1, то несколько снимется и вопрос непосредственной работы с памятью в стиле RISC (PIC).
Сам адрес в окне, может быть и 4, 5 ... бит и для 16-ти битной команды один из форматов литерала может быть
1xss.sssssdd.ddddd (ss. dd. сегментные регистры в команде) - удобно, наверное, добавить такой двойной литерал в систему команд J1A процессора. бит x 0/1 или эта команда или загрузка 14-ти битного литерала (14-ть бит можно применять и для маскирования/анализа знакового бита и 0-го можно сдвинуть влево на один бит инвертировать и далее И операция @"А и Б сидели на стеке трубе")
Сами сегментные регистры (4-е штуки) можно, наверное и группировать в пары как в процессоре Z80, если они будут 8-ми битные. В КP1878BE1 они именуются A, B, C, D и для D как у PIC есть возможность определённые адреса в окне использовать как косвенные - хранящие адрес для чтения данных.
Можно и присвоить имена этим индексным регистрам как SP0, RP0, PC, SR ... в применении с какими то отдельными командами. :)

При зазрузке сразу одной командой T и N и если ячейка стека, к примеру, 8-мь бит, то в таком варианте можно загрузить одним действием данные в формате 16-ть для их дальнейшей обработки если периферийное устройство предоставляющее такие данные (16-ти битное) соединяя их в одну ячейку при необходимости к примеру так T*256+N
Можно в этом варианте и работу с памятью рассматривать как сегментную N - сегмент, T - адрес в сегменте и с командами перехода/вызова.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать форт-процессор 2022
СообщениеДобавлено: Чт дек 01, 2022 00:50 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7990
Благодарил (а): 26 раз.
Поблагодарили: 144 раз.
KPG писал(а):
Можно ещё рассмотреть варианты загрузки литералов сразу в 2-е ячейки стека одной командой (может и один из них в стек возвратов для какой то возможности)

Это в зависимости от ПЛИС. RTL-то поддерживает такое, но можно выпасть в набор регистров (которые flip-flop). В ряде случаев следование простым шаблонам вида "одно число пишем, одно читаем" позволяет уложиться в более компактные структуры, например, распределенную память (а это плотность x16 по сравнению с flip-flop). Опять же, если место позволяет, а стек не такой уж большой, обычные триггеры могут быть приемлемы.

Потому и надо пробовать, пробовать, пробовать...


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать форт-процессор 2022
СообщениеДобавлено: Чт дек 01, 2022 15:32 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Интересная площадка для Оnline програмирования для Ретро железа, а также представлена возможность использования
Verilog для симуляции поведения схемы для Lattice iCEstick
8bitworkshop.com

Animated Bars (Silice) (Verilog)

P.S. Как пример IDE с запуском примера для Atari 2600

Поиск проектов по слову 8bitworkshop на Github.
(встречаются и на Verilog запускаемые в рамках этой платформы или с прямыми ссылками или,если в проекте есть файл Json то проект можно из IDE экспортировать напрямую с Github)



За это сообщение автора KPG поблагодарил: Total Vacuum
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать форт-процессор 2022
СообщениеДобавлено: Чт дек 01, 2022 19:59 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 482
Откуда: Москва
Благодарил (а): 57 раз.
Поблагодарили: 24 раз.
Переобозначил ноги в ucf-файле, пересобрал, подключился через usb и залил в свой spartan-3e starter kit через встроенный в него программатор. Светодиоды замигали, теперь можно будет и на этой плате тренироваться, но пока мне удобнее на боевой... :) Так что, KPG, надо попробовать, может и в Nexys2 без проблем и отдельных программаторов зашьется. На глаз она примерно такая же, как моя, просто чуть лучше и новее. Но сама плис и периферия вроде бы те же. Я просто не в курсе, что там за проблема с загрузчиком.

KPG писал(а):
Можно ещё рассмотреть варианты загрузки литералов сразу в 2-е ячейки стека одной командой (может и один из них в стек возвратов для какой то возможности)
Да как? У меня ж 4-битные команды пока. И по возможности максимально примитивные :)

KPG писал(а):
регистры (4-е штуки)
:D Не положено. В форт-процессоре вообще не должно быть регистров. Точнее, там есть регистр, но он гигантский и резиновый. А сам процессор не может работать со всем содержимым этого регистра, а может лишь манипулировать отдельными частями этого регистра. Регистр называется стек. :) И есть еще один регистр, который называется стек возвратов :)
Впрочем, не обязательно себя ограничивать только форт-процессорами, можно и любые другие придумывать, просто форт-процессор, как мне кажется, проще всего в реализации. Особенно на начальном этапе. Но несмотря на свою простоту уже пригоден для решения любых задач, да к тому же очень даже эффективен, особенно если писать под него на форте :)

P.S. Забавно, что скомпилированная под виртуальную машину бродилка весит 952 байта. Если вычесть из этого числа размер самой виртуальной машины (296 байт), то получается, что код бродилки весит 656 байт. Почти cubicDoom получился с той лишь разницей, что исходник не на асм, а на языке сверхвысокого уровня Форт :D


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать форт-процессор 2022
СообщениеДобавлено: Пн дек 05, 2022 14:10 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 482
Откуда: Москва
Благодарил (а): 57 раз.
Поблагодарили: 24 раз.
Заказал себе в Китае для тренировок плату Tang Nano 9K (там стоит ПЛИС Gowin GW1NR-LV9), должны прислать в этом году. Там вроде какие-то подводные камни с лицензиями и синтезом, но буду решать проблемы по мере их поступления :)
Кто-нибудь имел дело с такой плисиной? Поделитесь опытом... :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать форт-процессор 2022
СообщениеДобавлено: Пн дек 05, 2022 23:52 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7990
Благодарил (а): 26 раз.
Поблагодарили: 144 раз.
Total Vacuum писал(а):
Заказал себе в Китае для тренировок плату Tang Nano 9K (там стоит ПЛИС Gowin GW1NR-LV9), должны прислать в этом году. Там вроде какие-то подводные камни с лицензиями и синтезом, но буду решать проблемы по мере их поступления
Кто-нибудь имел дело с такой плисиной? Поделитесь опытом...

Есть такая, только у САПР не хочет обновляться лиценZия...


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 413 ]  На страницу Пред.  1 ... 22, 23, 24, 25, 26, 27, 28  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


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

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


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

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