Pull to refresh
64
9.5
Андрей@MegaHard

программист

Send message

Ещё один ЧПУ интерпретатор

Level of difficultyEasy
Reading time3 min
Reach and readers8.1K

Самопал ЧПУ - это мой домашний проект программы для управления станком, которым пользуюсь уже давно, поэтому основные баги выловлены. Раньше он был выложен на форуме cnc-club.ru, но поскольку форум закрылся, решил написать статью. Код проекта и собранный бинарник можно посмотреть на гитхабе.

Читать далее

Процессор на коленке ч.6. Классический 5-этапный конвейер

Level of difficultyMedium
Reading time9 min
Reach and readers9.8K

Готовим процессор к добавлению суперскалярности - переделываем 3-х этапный конвейер RISC-V в 5-этапный и попутно измеряем производительность.

Читать далее

Процессор на коленке ч.5. Кэш

Level of difficultyMedium
Reading time14 min
Reach and readers8.7K


В прошлой статье приделали конвейер и теперь можно запускать программы, расположенные в локальной памяти процессора. Но с одной лишь локальной памятью далеко не уедешь, у маленького ПЛИСа её жалких 50 кБ, поэтому надо делать небольшое локальное хранилище, синхронизируемое с внешней памятью, то есть кэш. Есть отладочная плата с SD RAM, в идеальном случае хорошо бы добавить её поддержку, но для начала внешнюю память будет изображать внутренняя. Дополнительным эффектом от добавления кэша оказалось увеличение доступной памяти, потому что для чтения параллельно с двух адресов создавалось два набора памяти, а теперь чтение за один такт делается только с одного адреса.
Ветка реализации проекта лежит на гитхабе.

Читать дальше →

Процессор на коленке ч.4. Конвейер для ПЛИС

Level of difficultyMedium
Reading time23 min
Reach and readers2.5K

В прошлой части добавили расширение M (умножение и деление), теперь будем собирать под ПЛИС Cyclone IV. При попытке собрать проект Quartus говорит, что с асинхронной памятью работать не будет, поэтому заменяем её на синхронную, и это сразу приводит к серьёзным последствиям.

Читать далее

Процессор на коленке ч.3. Алгоритм быстрого деления

Level of difficultyMedium
Reading time33 min
Reach and readers5.4K


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

Процессор на коленке ч.2

Level of difficultyMedium
Reading time10 min
Reach and readers5.8K

В прошлой части собрали минимальное ядро, теперь хотелось бы его запустить. Для запуска нужен исполняемый файл, потом его надо загрузить в память процессора и запустить симуляцию. Ещё неплохо, чтобы в процессе работы можно было выводить что-то в консоль для отладки.
Читать дальше →

Процессор на коленке ч.1

Level of difficultyMedium
Reading time11 min
Reach and readers8.8K


Предыстория


Захотелось мне как-то перевести управление станком на ПЛИС, а для этого понадобилось ядро процессора. Поиск на opencores не особо помог, x86 лицензированный, ARM лицензированный, NIOS… ну, вы поняли. Если выдумывать свою систему команд, может получиться криво, и главное, где брать компилятор. В общем, всё было сложно, так что на время идею пришлось отложить.
С недавних пор ситуация изменилась, архитектура RISC-V пошла в массы.

Читать дальше →

Разгоняем оптрон до сотни

Reading time2 min
Reach and readers47K

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

Читать далее

Information

Rating
757-th
Location
Ростов-на-Дону, Ростовская обл., Россия
Registered
Activity