Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт мар 28, 2024 16:17

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 408 ]  На страницу Пред.  1 ... 10, 11, 12, 13, 14, 15, 16 ... 28  След.
Автор Сообщение
 Заголовок сообщения: Re: Как сделать форт-процессор 2022
СообщениеДобавлено: Ср мар 02, 2022 20:35 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
KPG писал(а):
Если результаты не публикуются в рамках и местного форума, то как их можно наблюдать?

Подробная инструкция прикреплена в начале темы. Брать и делать.

KPG писал(а):
Вот же даже как - западные интернет помойки, а не i-net ресурсы

То есть старые проекты непонятного назначения - это благо просто потому, что 1) на гитхабе 2) нерусская фамилия у автора? Это называется низкопоклонством.


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

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Hishnik писал(а):
То есть старые проекты непонятного назначения - это благо просто потому, что 1) на гитхабе 2) нерусская фамилия у автора? Это называется низкопоклонством.

Объяснение личных когнитивных искажений восприятия чего то - это не ко мне.


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

Зарегистрирован: Пн окт 05, 2009 18:21
Сообщения: 405
Откуда: Минск SotnikSTO@mail.ru
Благодарил (а): 48 раз.
Поблагодарили: 3 раз.
Hishnik писал(а):
Любое западное старье непонятно от кого априори лучше, чем любые реZультаты, достигнутые здесь?
Результаты???
Ой как интересно - достигнутые здесь.

И где они?

_________________
Сотник. SotnikSTO@mail.ru


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

Зарегистрирован: Пн окт 05, 2009 18:21
Сообщения: 405
Откуда: Минск SotnikSTO@mail.ru
Благодарил (а): 48 раз.
Поблагодарили: 3 раз.
Total Vacuum писал(а):
Sotnik писал(а):
А при чем здесь вообще Форт-процессор? Там в ПЛИС реализован вполне конкретный процессор RCA1802
Это и называется Форт-процессор.
То что он "чуть-чуть не такой" - а какой он должен быть?
У Хищника это море вариантов.

А в моём примере один, но конкретный.

_________________
Сотник. SotnikSTO@mail.ru


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

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 463
Откуда: Москва
Благодарил (а): 57 раз.
Поблагодарили: 22 раз.
Sotnik писал(а):
Это и называется Форт-процессор.
Это не Форт-процессор. Это просто процессор с зашитым в него фортом. Если следовать такой логике, то и STM32 с вшитым в него Mecrisp тоже Форт-процессор? Или, допустим, микроконтроллер из семейства Z80 с любым залитым туда фортом?

Z80... :) Надо VZять на Zаметку... :)


Sotnik писал(а):
Результаты???
Ой как интересно - достигнутые здесь.
И где они?
Ну, допустим, на плате, на которой я сейчас тренируюсь, почти все ноги ПЛИС уже задействованы, сидят или на микроконтроллере или на микросхеме АЦП, свободных ног, которые торчат наружу, практически нет, и втиснуться в действующий проект по этой причине довольно сложно, но мне все-таки удалось выкроить пару пинов, которые удачно легли на нужные ноги TX/RX микроконтроллера, т.е. появилась возможность реализовать UART. Тестовая версия ядра готова, таймеры и GPIO готовы, ассемблер и кросс-компилятор Форт готовы, допилю UART и можно считать, что микроконтроллер в ПЛИС готов. Дальше уже чисто творческий процесс, можно экспериментировать в любом направлении, допустим, с системами команд, разрядностями, периферией и т.д., тут фантазия ничем не ограничивается. С рабочим UART-ом все-таки веселее дело пойдет... :) Главное, что появилось понимание, что самодельный процессор в ПЛИС - это не так уж и сложно даже при околонулевом изначальном уровне владения Verilog и примерно таком же уровне знакомства со средой Xilinx ISE, было бы желание... :) Безусловно, такой процессор будет проигрывать по всем параметрам изделиям того же Хищника, это даже не обсуждается... Да собственно и не ставилось задачи быть впереди планеты всей, наоборот старался сделать первую версию ядра примитивной до неприличия, чтобы легче было тренироваться. Впрочем, никто не может запретить мне и дальше саморазвиваться в этом направлении, ведь, как известно, не Боги горшки обжигают... :) И да, результатов на Гитхабе не будет. :D :D :D Но если кому-то будет нужно, исходники выложу здесь, когда все заработает и когда почищу мусор в коде...



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

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Total Vacuum писал(а):
Впрочем, никто не может запретить мне и дальше саморазвиваться в этом направлении, ведь, как известно, не Боги горшки обжигают... :)

Можно по горячим следам сделать какие то заметки со скриншотными картинками и при возможности и желании оформить их в виде познавательной статьи с публикацией на публичной площадке.

P.S. У самого осталась без освоения плата от Digilent (Nexus2) на Spartan XC3S500E . :)


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Total Vacuum писал(а):
Главное, что появилось понимание, что самодельный процессор в ПЛИС - это не так уж и сложно

Вот! :)
Total Vacuum писал(а):
Безусловно, такой процессор будет проигрывать по всем параметрам изделиям того же Хищника, это даже не обсуждается...

А вот и обсуждается. Сразу замечу, что есть понятие Парето-оптимальности. Грубо говоря, не обязательно быть лучше во всем, можно быть лучше в чем-то. Например, я не делал процессоры с 4-разрядной командой, поэтому тут уже можно говорить, что процессор лучше по этому параметру. Кроме того, есть принцип 80/20 - 80% результата за 20% усилий. Так что вовсе тут не непреодолимая пропасть.


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

Зарегистрирован: Пн окт 05, 2009 18:21
Сообщения: 405
Откуда: Минск SotnikSTO@mail.ru
Благодарил (а): 48 раз.
Поблагодарили: 3 раз.
Total Vacuum писал(а):
Sotnik писал(а):
Это и называется Форт-процессор.
Это не Форт-процессор. Это просто процессор с зашитым в него фортом.
Ага. И, поэтому, это Бейсик-процессор. :)) Не, я согласен с твоим определением. :)
Total Vacuum писал(а):
Тестовая версия ядра готова
Камень какой?
Total Vacuum писал(а):
Безусловно, такой процессор будет проигрывать по всем параметрам изделиям того же Хищника
А какие у тебя параметры получены в результате? В какую сторону возможен рост?
Total Vacuum писал(а):
Но если кому-то будет нужно, исходники выложу здесь, когда все заработает и когда почищу мусор в коде...
Тестировщик + грабли = это сила! :)

_________________
Сотник. SotnikSTO@mail.ru


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

Зарегистрирован: Пн окт 05, 2009 18:21
Сообщения: 405
Откуда: Минск SotnikSTO@mail.ru
Благодарил (а): 48 раз.
Поблагодарили: 3 раз.
KPG писал(а):
и при возможности и желании оформить их в виде познавательной статьи с публикацией на публичной площадке.
Редко тут такие трезвые мысли формируются!!! :idea:
Очевидно, что не у всех... :(
KPG писал(а):
P.S. У самого осталась без освоения плата от Digilent (Nexus2) на Spartan XC3S500E . :)
Так у тебя же валяется Parallella - сдуй пыль, может заработает. :)

_________________
Сотник. SotnikSTO@mail.ru


Последний раз редактировалось Sotnik Пт мар 04, 2022 22:09, всего редактировалось 1 раз.

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

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

Да, точно. Еще одну паузу взять, игнорируя готовые серии статей :))


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

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 463
Откуда: Москва
Благодарил (а): 57 раз.
Поблагодарили: 22 раз.
KPG писал(а):
Можно по горячим следам сделать какие то заметки со скриншотными картинками и при возможности и желании оформить их в виде познавательной статьи с публикацией на публичной площадке.
Я не зарегистрирован на всяких там Хабрах (там вроде только по приглашению), да и писун из меня так себе... :) Плюс начальство в угол поставит, если обнаружит в интернетах фото нашей платы... :)

KPG писал(а):
P.S. У самого осталась без освоения плата от Digilent (Nexus2) на Spartan XC3S500E . :)
Ну так надо брать и осваивать, там нет ничего архисложного... У меня, кстати, точно такая же ПЛИС, так что помогу, чем смогу... Ну и, подозреваю, Хищник с удовольствием подскажет и объяснит, если что... :)

Hishnik писал(а):
Например, я не делал процессоры с 4-разрядной командой, поэтому тут уже можно говорить, что процессор лучше по этому параметру.
Подумалось, что для конкретно моей ПЛИС оптимальной будет 6-разрядная команда, т.к. BRAM здесь заточена под 18-битные "слова" (18 = 3x6). Да, в 1 блок BRAM влезет лишь 3K команд, а не 4K, как в случае с 4-разрядными, но зато благодаря более развитой системе команд плотность кода должна возрасти... Впрочем, могу ошибаться. Сейчас главное 4-разрядную версию до ума довести, а к этому вопросу можно будет вернуться позже...

Sotnik писал(а):
Камень какой?
Самодельный жЫ! Какой, нахрен, камень? :D

Sotnik писал(а):
А какие у тебя параметры получены в результате? В какую сторону возможен рост?
На данный момент 16-битное ядро, которое может работать на частоте 60MHz, 16 4-разрядных команд (задействовано пока только 15), 2 стека глубиной по 4 элемента, сегмента кода 2КБ (4K команд), сегмент данных 2КБ (1K слов). Из периферии GPIO (светодиоды), Timer и UART. Получается примерно такое по ресурсам:
Код:
Timing Summary:
---------------
Speed Grade: -5

   Minimum period: 16.000ns (Maximum Frequency: 62.499MHz)
   Minimum input arrival time before clock: No path found
   Maximum output required time after clock: 4.063ns
   Maximum combinational path delay: No path found

Design Summary
--------------
Number of errors:      0
Number of warnings:    2
Logic Utilization:
  Number of Slice Flip Flops:           278 out of   9,312    2%
  Number of 4 input LUTs:               668 out of   9,312    7%
Logic Distribution:
  Number of occupied Slices:            392 out of   4,656    8%
    Number of Slices containing only related logic:     392 out of     392 100%
    Number of Slices containing unrelated logic:          0 out of     392   0%
      *See NOTES below for an explanation of the effects of unrelated logic.
  Total Number of 4 input LUTs:         749 out of   9,312    8%
    Number used as logic:               667
    Number used as a route-thru:         81
    Number used as Shift registers:       1

  The Slice Logic Distribution report is not meaningful if the design is
  over-mapped for a non-slice resource or if Placement fails.

  Number of bonded IOBs:                  4 out of      66    6%
  Number of RAMB16s:                      2 out of      20   10%
  Number of BUFGMUXs:                     1 out of      24    4%
  Number of DCMs:                         1 out of       4   25%
  Number of MULT18X18SIOs:                1 out of      20    5%

Average Fanout of Non-Clock Nets:                3.20

Видно, что по всем основным параметрам не больше 10% ресурсов ПЛИС отжирает. Сейчас UART не доделан, правильно работает только передача. Но не думаю, что сильно увеличится потребление ресурсов, когда прием доделаю. Так что при необходимости можно будет с десяток 16-битных (или даже 18-битных) ядер в эту ПЛИС впихнуть или штук 5 32-битных, или можно одно ядро оставить, но всю BRAM (20K 18-битных слов) ему скормить и/или разрядность до 64 увеличить, также можно любую другую периферию навешать, стеки данных/возвратов можно побольше сделать и т.д. и т.п. На что фантазии хватит...


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Total Vacuum писал(а):
Подумалось, что для конкретно моей ПЛИС оптимальной будет 6-разрядная команда, т.к. BRAM здесь заточена под 18-битные "слова" (18 = 3x6). Да, в 1 блок BRAM влезет лишь 3K команд, а не 4K,

Тут есть маленькая тонкость - один блок BRAM не конфигурируется совсем произвольно. Возможные разрядности 1, 2, 4, 8, 9, 16, 18 (в последних сериях еще 32 и 36). 6-разрядную память описать можно, но стоит следить, чтобы получилось 3 блока по 2 бита или 6 по 1.

Total Vacuum писал(а):
Получается примерно такое по ресурсам:

Все реалистично.

Цитата:
Сейчас UART не доделан, правильно работает только передача.


Это уже с загрузчиком. Он не относится к UART, просто как пример загрузки памяти.

Код:
process(clk)
begin
  if clk'event and clk = '1' then
    case rxstate is
      when 0 to FCORE / 2 / UART_BAUDRATE => if rx = '0' then rxstate <= rxstate + 1; end if;
      when 3  * FCORE / 2 / UART_BAUDRATE => received(0) <= rx; rxstate <= rxstate + 1;
      when 5  * FCORE / 2 / UART_BAUDRATE => received(1) <= rx; rxstate <= rxstate + 1;
      when 7  * FCORE / 2 / UART_BAUDRATE => received(2) <= rx; rxstate <= rxstate + 1;
      when 9  * FCORE / 2 / UART_BAUDRATE => received(3) <= rx; rxstate <= rxstate + 1;
      when 11 * FCORE / 2 / UART_BAUDRATE => received(4) <= rx; rxstate <= rxstate + 1;
      when 13 * FCORE / 2 / UART_BAUDRATE => received(5) <= rx; rxstate <= rxstate + 1;
      when 15 * FCORE / 2 / UART_BAUDRATE => received(6) <= rx; rxstate <= rxstate + 1;
      when 17 * FCORE / 2 / UART_BAUDRATE => received(7) <= rx; rxstate <= rxstate + 1;
      when 19 * FCORE / 2 / UART_BAUDRATE => rxstate <= 0; rxcounter <= rxcounter + 1;

        case conv_integer(received) is
          when 0 to 15 => LoadData(3 downto 0) <= received(3 downto 0); LoadSData <= LoadSData(DATAWIDTH - 5 downto 0) & received(3 downto 0);
          when 16 to 31 => LoadData(7 downto 4) <= received(3 downto 0);
          when 32 to 47 => LoadData(11 downto 8) <= received(3 downto 0);
          when 48 to 63 => LoadData(15 downto 12) <= received(3 downto 0);
          when 64 to 79 => LoadData(19 downto 16) <= received(3 downto 0);
          when 80 to 95 => LoadData(23 downto 20) <= received(3 downto 0);
          when 96 to 111 => LoadData(27 downto 24) <= received(3 downto 0);
          when 112 to 127 => LoadData(31 downto 28) <= received(3 downto 0);
          when 224 to 239 => ActiveCore <= received(3 downto 0);
          when 240 => LoadAddress <= (others => '0');
          when 241 => if conv_integer(ActiveCore) = CORE then LoadWe <= '1'; end if;
          when 242 => if conv_integer(ActiveCore) = CORE then LoadWe <= '0'; DataLoad <= '0'; LoadAddress <= LoadAddress + 1; end if;
          when 243 => if conv_integer(ActiveCore) = CORE then int_reset <= '1'; end if;
          when 244 => if conv_integer(ActiveCore) = CORE then int_reset <= '0'; end if;
          when 245 => if conv_integer(ActiveCore) = CORE then DataLoad <= '1'; end if;
          when others => null;
        end case;
        when others => rxstate <= rxstate + 1;
    end case;
  end if;
end process;


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

Зарегистрирован: Пн окт 05, 2009 18:21
Сообщения: 405
Откуда: Минск SotnikSTO@mail.ru
Благодарил (а): 48 раз.
Поблагодарили: 3 раз.
Total Vacuum писал(а):
Sotnik писал(а):
Камень какой?
Самодельный жЫ! Какой, нахрен, камень? :D
Понятно. xc3s500e в корпусе vqg100
Total Vacuum писал(а):
Видно, что по всем основным параметрам не больше 10% ресурсов ПЛИС отжирает.
Так что при необходимости можно будет с десяток 16-битных (или даже 18-битных) ядер в эту ПЛИС впихнуть
На что фантазии хватит...
10 ядер по 60 MHz - общее потребление?

_________________
Сотник. SotnikSTO@mail.ru


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

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 463
Откуда: Москва
Благодарил (а): 57 раз.
Поблагодарили: 22 раз.
Sotnik писал(а):
10 ядер по 60 MHz - общее потребление?
Без понятия. Ток 0.05A при 24В, от прошивки ПЛИС не зависит. На плате помимо ПЛИС есть еще STM32F446 и с десяток других мелких микросхем.


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
В ПЛИС с потреблением немного не так, как в обычных микросхемах. Во-первых, оно объективно больше, чем у аналогичного аппаратного решения. Во-вторых, оно определяется и размером самого кристалла, и размером+частотой проекта, который туда загружен. На практике такая ПЛИС будет потреблять 100-200 мА по ядру, плюс все то, что затребует подключенная периферия. В ISE есть возможность оценить потребление, но это делается на уровне таблицы Excel, куда вводится количество ячеек в проекте и тактовая частота. Статическое потребление не меняется и определяется просто типом кристалла.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 408 ]  На страницу Пред.  1 ... 10, 11, 12, 13, 14, 15, 16 ... 28  След.

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


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

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


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

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