Блог страдающего Лиса
Lorem ipsum hello dolor sit world amet
30 окт 2024 Ср
Навертывание AVR
Вчера я взял свой проект на AVR эмуляторе и оттуда перетащил в новый код, и получилось уже весьма успешно, поскольку с утра у меня получилось нарисовать и в текстовом режиме "Привет мир" и в графическом тоже что-то сделать, причем работает весьма прилично, выдает даже 60 кадров в секунду, и при этом не отстает графика от той, которая будет в реальной ПЛИС. Это радует, потому что в прошлый раз у меня хост-процессор еле справлялся с нагрузкой. Думаю, это из-за того что он уже был довольно старый, 3.2 Ггц по сравнению с 5 Ггц сейчас, да и с опцией оптимизации ускорилось в 2 раза, так что ускорение получилось минимум раза в 3, что по сути дает 30% загрузки ядра, а это хорошо.
Теперь моя задача сначала сделать всю мне необходимую периферию вроде клавиатуры, прерываний, таймера, SD карточки, эмулятора видеоускорителя и так далее. Потом второй задачей будет создать сам видеоускоритель, контроллер SD, и так далее, и внедрить это все в ПЛИС.
Как я и говорил, основная моя задача в том, чтобы сделать процессор, который бы позволял быстро тестировать какие-то определенные модули на верилоге, да и просто рисовать различные демы, конечно же. Также я попробую создать что-то вроде операционной системы, которая будет исполнять байт-код.
Но вообще будущее этой системы пока что неопределенное, на самом деле. Я не знаю что буду делать для нее.
Теперь моя задача сначала сделать всю мне необходимую периферию вроде клавиатуры, прерываний, таймера, SD карточки, эмулятора видеоускорителя и так далее. Потом второй задачей будет создать сам видеоускоритель, контроллер SD, и так далее, и внедрить это все в ПЛИС.
Как я и говорил, основная моя задача в том, чтобы сделать процессор, который бы позволял быстро тестировать какие-то определенные модули на верилоге, да и просто рисовать различные демы, конечно же. Также я попробую создать что-то вроде операционной системы, которая будет исполнять байт-код.
Но вообще будущее этой системы пока что неопределенное, на самом деле. Я не знаю что буду делать для нее.
29 окт 2024 Вт
Проект AVR
Очень часто мне хочется сделать какую-нибудь небольшую программу для ПЛИС на Си и сделать этого мне не удается потому, что у меня нет нормально стандартизированного рабочего проекта на AVR. Возьму из закромов этот проект и вдохну новую жизнь. Сейчас я работаю над проблемой растеризации 3Д-треугольника на ПЛИС, и думаю, что AVR мне сможет помочь быстро писать программу под эти цели. У него все-таки есть большие преимущества для быстрого навертывания кода.
Моя основная задача не в написании процессоров сейчас, а именно в создании и использовании модуля ускорения трехмерной графики. На самом деле, это для меня играет большую роль в данный момент, чем процессоры. Я сделаю процессор AVR, встрою, настрою, но основная цель будет как обычно, демки, цифровые арты, трехмерный ускоритель.
Для процессора будет использовано 64Кб ПЗУ + 64Кб ОЗУ = 128К, и 64+64 двойной видеобуфер. Остается 52К свободной памяти, 32К из которых потрачено будет на текстуры и 20К на различные операционные буферы вроде 4К на знакогенератор и 16Кб для видеоускорителя, к примеру. Мой процессор будет ориентирован на графику, трехмерную и не очень.
Процессор будет писать и читать в видеопамять через порты, чтобы не делать ненужные банки памяти. Скорость записи и чтения из портов в моем процессоре равны 1Т всего, но для закраски экрана будет использоваться запись команды
А еще бы неплохо сделать ускоритель FPU. Процессор AVR тратит много инструкции на то, чтобы умножить и поделить числа, а можно сделать иначе, можно через всего лишь 4Т записи и 4Т чтения поделить 32х битное число, наверное. Ну там еще надо конечно 4Т подождать, наверняка, но все равно, за 12Т делить число быстрее чем за 120Т.
Моя основная задача не в написании процессоров сейчас, а именно в создании и использовании модуля ускорения трехмерной графики. На самом деле, это для меня играет большую роль в данный момент, чем процессоры. Я сделаю процессор AVR, встрою, настрою, но основная цель будет как обычно, демки, цифровые арты, трехмерный ускоритель.
Для процессора будет использовано 64Кб ПЗУ + 64Кб ОЗУ = 128К, и 64+64 двойной видеобуфер. Остается 52К свободной памяти, 32К из которых потрачено будет на текстуры и 20К на различные операционные буферы вроде 4К на знакогенератор и 16Кб для видеоускорителя, к примеру. Мой процессор будет ориентирован на графику, трехмерную и не очень.
Процессор будет писать и читать в видеопамять через порты, чтобы не делать ненужные банки памяти. Скорость записи и чтения из портов в моем процессоре равны 1Т всего, но для закраски экрана будет использоваться запись команды
CLS
в видеоускоритель.А еще бы неплохо сделать ускоритель FPU. Процессор AVR тратит много инструкции на то, чтобы умножить и поделить числа, а можно сделать иначе, можно через всего лишь 4Т записи и 4Т чтения поделить 32х битное число, наверное. Ну там еще надо конечно 4Т подождать, наверняка, но все равно, за 12Т делить число быстрее чем за 120Т.
13 янв 2023 Пт
Конфигурация компьютера на AVR
Однажды, я решил, что мне не нужны никакие высокие разрешения для того, чтобы выводить что-то на экране. И самым интересным и самым ретро-олдовым решением стало 256 x 192 от ZX Spectrum.
Мне пришла мысль, что можно сделать интерфейс даже несмотря на такое низкое разрешение от спектрума. Но вот ядро процессора я выбрал не Z80, а другое, а именно AVR. Почему такой выбор я сделал?
Эта система на чипе (SoC) все еще не дописана из-за моей легендарной лени. Это не я такой, это жизнь такая, что мне лениво все делать.
Какие у меня планы на этот компьютер и процессор? Да, если подумать, особо то и никаких. Мне лично не требуется какой-то отдельный компьютер для работы и хобби, хватает вообще лишь только одного. Даже два монитора не нужно, обхожусь единственным. У меня есть два монитора, но я их не использую, так что под большим вопросом, а буду ли я вообще использовать свой собственный компьютер? Ответ — нет. А зачем? Что на нем делать? Софта нет, писать не хочу. Конечно, мне как-то хотелось создать что-то вроде своего уютного уголка компьютерного, где я мог бы отдыхать, такая у меня была задача и стремление.
Допустим, что я бы сделал? Ну, к примеру, календарь. Зачем, когда и так есть под рукой несколько на разные вкусы. Или текстовый редактор, и опять-таки, зачем? Зачем, зачем — эти вопросы мучают меня. Есть более выгодные, приятные и правильные альтернативы. Все что я делаю, полностью бессмысленно.
Мне пришла мысль, что можно сделать интерфейс даже несмотря на такое низкое разрешение от спектрума. Но вот ядро процессора я выбрал не Z80, а другое, а именно AVR. Почему такой выбор я сделал?
- Он относительно простой в реализации
- Быстрый, большинство инструкции за 1 такт
- Достаточно распространен
- Под него есть компилятор avr-gcc
- Памяти всего 64Кб
- Гарвардская архитектура — память программ и оперативная память раздельные
Эта система на чипе (SoC) все еще не дописана из-за моей легендарной лени. Это не я такой, это жизнь такая, что мне лениво все делать.
Какие у меня планы на этот компьютер и процессор? Да, если подумать, особо то и никаких. Мне лично не требуется какой-то отдельный компьютер для работы и хобби, хватает вообще лишь только одного. Даже два монитора не нужно, обхожусь единственным. У меня есть два монитора, но я их не использую, так что под большим вопросом, а буду ли я вообще использовать свой собственный компьютер? Ответ — нет. А зачем? Что на нем делать? Софта нет, писать не хочу. Конечно, мне как-то хотелось создать что-то вроде своего уютного уголка компьютерного, где я мог бы отдыхать, такая у меня была задача и стремление.
Допустим, что я бы сделал? Ну, к примеру, календарь. Зачем, когда и так есть под рукой несколько на разные вкусы. Или текстовый редактор, и опять-таки, зачем? Зачем, зачем — эти вопросы мучают меня. Есть более выгодные, приятные и правильные альтернативы. Все что я делаю, полностью бессмысленно.
<< Ранние записи |
Поздние записи >>