Перейти к содержанию
    

Многоуважаемые проектировщики собственных процессоров.

Поделитесь, пожалуйта, информацией, где можно почитать про микрокоды,

для разработки собственного процессора.

Разработка, инструментарий, практические советы, внятные примеры...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

есть книжка в свободном доступе VHDL Coocbook

там в качестве примера процессор

 

но по хорошему, нужно брать на Opencores.org ядро процессорное и смотреть, как сделано. еще есть leon от gaisler-а - но это лучше для понимания как делать микропроцессорную систему, само ядро там, по-моему, сложно описано - трудно разбираться

 

ведь процессор не для развлечения, а для исполнения программ - то есть нужны компиляторы, отладчики и пр. поэтому совсем "свой" процессор смысла делать мало

 

для совсем простого - просто посмотреть Zylin ZPU проект

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Представляю свой 8-разрядный софт процессор miniByte, реализованный в среде QII 8.1 на Cyclone III.

Приложение miniByte.rar включает:

miniByte.pdf – краткое описание структуры процессора и сиcтемы команд.

mb.exe - транслятор с ассемблера mb.asm в файл mb.mif

mb.asm – пример кода с выводом текста «HELLO» на LCD.

 

Процессор miniByte предназначен для программирования внутри ПЛИС, с возможностью изменять под задачу его архитектуру и систему команд.

Система команд miniByte схожа с 51 архитектурой, но сокращена до 32 команд с длинами в один или два байта.

Тактовая частота до 100 МГц, а команды выполняются за 1 или 2 такта. Память RAM и ROM емкостью по 4096*8 реализована на 2-х портовой внутренней памяти М9К. Стек в RAM произвольной длины. Систему прерывания пока не делал.

 

Синтез софт процессора на verilog и транслятор на С++ написал сам.

Для трансляции запустить mb.exe в том же директории, где и mb.asm. Создастся файл mb.mif, используемый далее в QII при загрузках в ROM.

Средствами QII 8.1 можно симулировать программу из mb.mif до уровня регистров.

После конфигурирования ПЛИС, процессор сбрасывается сигналом locked от мега-функции ALTPLL.

miniByte.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Представляю свой 8-разрядный софт процессор miniByte, реализованный в среде QII 8.1 на Cyclone III.

 

Конкуренция растёт. :)

А я предлагаю 32-разрядный микропроцессор. Точнее, архитектуру. Вот, намедни сделал карту системы команд.

 

MAP_EVER_1_1-300x257.png

 

Разумеется, по простоте и компактности он не может конкурировать с 8-ми битными микроконтроллерами, но у него есть другие преимущества - отличная расширяемость и высокая плотность кода. Желтым помечены неназначенные коды операций.

 

Когда (и если) заработает встроенная многозадачность, то проект будет достоин отдельной темы в этом подфоруме.

 

А вот так может выглядеть программа на ассемблере для этого процессора

 

sample_2_code.png

 

Знаю проекты, которые продвинулись значительно дальше моего, но с точки зрения возможностей архитектуры я готов пободаться.:)

Изменено пользователем alman

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Конкуренция растёт. :)
8 –разрядный софт процессор не конкурент 32-разрядному. У них разное предназначение, скорее он мог бы быть младшим партнером. Для меня главное, что мой miniByte уже работает и его можно легко втыкать в ПЛИС взамен очень больших FSM.

Здесь мне интересны методы аппаратной реализации процессора в HDL, а также способы и детали программирования транслятора с ассемблера, ну и архитектура в целом. То есть, кто и как это все реализует…

У Вас, как я понимаю, задача аппаратной реализации операционной системы... Один мой знакомый, правда в Америке, что-то подобное делает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Serhiy_UA

Представляю свой 8-разрядный софт процессор miniByte, реализованный в среде QII 8.1 на Cyclone III.
А исходники самого проца (rtl) и ассемблера вы можете выложить?
Изменено пользователем ~Elrond~

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Serhiy_UA

А исходники самого проца (rtl) и ассемблера вы можете выложить?

это Вам не подходит?

на 2 поста выше...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Maverick

А вы вообще скачивали этот архив? Буду весьма благодарен, если вы найдёте там хоть один verilog файл. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мне кажется, что miniByte подходит только для самых простых задач - ну типа светодиодом поморгать, передать в ком порт константную строчку и т.п. Поскольку в нём нет даже сложения двух регистров(сложение возможно только с константой), более сложные операции придётся выполнять, примерно как на машине Тьюринга :).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мне кажется, что miniByte подходит только для самых простых задач - ну типа светодиодом поморгать, передать в ком порт константную строчку и т.п. Поскольку в нём нет даже сложения двух регистров(сложение возможно только с константой), более сложные операции придётся выполнять, примерно как на машине Тьюринга :).

ну не факт. вот на таких чипах народ даже работал, минибайт по сравнению с этим супер пупер проц :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мне кажется, что miniByte подходит только для самых простых задач - ну типа светодиодом поморгать, передать в ком порт константную строчку и т.п. Поскольку в нём нет даже сложения двух регистров(сложение возможно только с константой), более сложные операции придётся выполнять, примерно как на машине Тьюринга :).

Timmy, спасибо за замечание!

Проглядел, исправлю. Бывает, когда все делаешь сам.

Теперь вместо команды INC A, введу двухбайтную ADD A, Rx. Ведь аккумулятор инкрементируется и через ADD A, xy.

Проблем нет, я как раз и хотел обсуждения…

 

Сравнение с машиной Тьюринга забавно, а какая на самом деле там была система команд, кто знает?

 

Да, еще для затравки. Хотел сделать софт-процессор "полуБайт". То есть с данными в 4 бита. Пока только хочу... Тоже для микро применений.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сравнение с машиной Тьюринга забавно, а какая на самом деле там была система команд, кто знает?

описание языка brainfuck почитайте. это оно и есть

Да, еще для затравки. Хотел сделать софт-процессор "полуБайт". То есть с данными в 4 бита. Пока только хочу... Тоже для микро применений.

возьмите пикоблейз и прокачайте его до нормального уровня (большой регистровый файл, 4К команд, AXI), вот это будет дело

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как раз 3 команд не хватает до pic'а (35 команд).

 

Может тогда все команды, где осуществляются операции с заданной константой, перевести в режим работы с аккумулятором, как у Motorola MC14500B, ссылку на который привел ув. des00.

 

#1    LD    A        RR ← A
#2    AND   B        RR ← A • B
#3    STO   TEMP     RR = A • B → TEMP
#4    LD    C        RR ← C
#5    AND   D        RR ← C • D
#6    OR    TEMP     RR ← C • D + (TEMP = A • B) = A • B + C • D
#7    STO   LOAD     RR = A • B + C • D → LOAD

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Maverick

А вы вообще скачивали этот архив? Буду весьма благодарен, если вы найдёте там хоть один verilog файл. :)

честно признаюсь, не скачивал - verilog файлов в архиве действительно не оказалось... :laughing:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня для проекта "Си как HDL, или Верилог без always" (см. marsohod.org ) написан софт-процессор, совместимый по ассемблеру с ядром msp430 - программы можно писать на Си с использованием GCC. Но компиляция с ассемблера в машинные коды делается самопальной программой. Проект делался только как демо-пример, поэтому без поддержки библиотек и тп. Без периферии занимает ~350 ЛЕ, быстродействие ~50МГц msp430.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...