Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пн дек 17, 2018 18:13

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Forth-процессор от whiteTigr-а
СообщениеДобавлено: Чт авг 16, 2012 16:25 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6454
Благодарил (а): 14 раз.
Поблагодарили: 101 раз.
whiteTigr развлекается. Развлекается, надо сказать, довольно продвинуто, так что необходимость тех или иных технических решений будет понятна только при наличии определенного практического опыта.
http://habrahabr.ru/post/149686/


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth-процессор от whiteTigr-а
СообщениеДобавлено: Ср дек 12, 2018 08:51 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Ср дек 06, 2006 09:23
Сообщения: 610
Благодарил (а): 6 раз.
Поблагодарили: 25 раз.
после некоторого шаманства (в основном распределение выводов, разбора принципа работы, перенаправления "отладочных/визуальных" сигналов) процессор успешно завёлся на плате Terasic DE0-CV.

В процессе разборок с кодом и внутренними сигналами добавлен стек счетчиков циклов (да, решение спорное, но.....теперь работает)), на его основе добавлены простейшие команды DO .. LOOP.

Для удобства работы на ассемблере данного процессора добавлены BEGIN ... UNTIL.

Модификация операций с 1/2 операндами достаточно проста и оставлена на "для конкретной задачи".

Проц уместился в 3% от Cyclon V. В силу полного в этом незнания никакие оптимизации и пр. не настраивались и не проводились (да пока и ни к чему).

как говорится - решение рабочее, интересное, рекомендую )))


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth-процессор от whiteTigr-а
СообщениеДобавлено: Ср дек 12, 2018 13:00 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 678
Благодарил (а): 0 раз.
Поблагодарили: 6 раз.
С LIT весьма интересное решение на мой непрофессиональный взгляд.

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth-процессор от whiteTigr-а
СообщениеДобавлено: Ср дек 12, 2018 14:08 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Ср дек 06, 2006 09:23
Сообщения: 610
Благодарил (а): 6 раз.
Поблагодарили: 25 раз.
Victor__v писал(а):
С LIT весьма интересное решение на мой непрофессиональный взгляд.


согласен - очень элегантно. а главное - можно любую разрядность делать (ну в пределах 32 бит без корректировки кода)


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6454
Благодарил (а): 14 раз.
Поблагодарили: 101 раз.
Есть несколько моментов:
1. WhiteTigr использовал 9-битную команду, и это хорошо ложится на 18-разрядную память в ПЛИС. Тогда одна команда загружает 8 бит, а не 7, как было бы в 8-битной команде. Если память будет не 1-2 блока, а больше, синтезатор может переупаковать блоки, сделав, к примеру, 8 блоков по 1 биту. Если блоков получается мало, экономии не будет, потому что 9-й бит будет просто пропадать. Сколько разрядов отдавать на команду, и сколько там будет разрядов для литерала - вопрос оптимизации.
2. Есть вариант разделения литералов с помещением на стек "затравки" (проще всего 0) специальной "не литеральной" командой. После этого следующие литералы вдвигают себя в вершину стека, не пытаясь что-то положить. Затравок может быть несколько. Тогда варианты такие

0 NOP 0 - кладем два нуля, между ними придется ставить NOP, чтобы завершить формирование первого литерала
LIT0 LIT0 - две команды-затравки, нет NOP между ними, потому что каждая кладет новое число на стек

Однако
0x123 NOP 0x1FF - положили два числа тремя командами

LIT0 0x23 LIT0 0x1FF - нужны четыре команды, потому что в предыдущем варианте короткие литералы кладутся сразу, а в этом литерал всегда начинается с нуля

Нулями, кстати, удобно включать-выключать флаги в периферийных регистрах, если добавить еще LIT1, кладущий в качестве затравки 1.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

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


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

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


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

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