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

2 ALL

Тема интересная, и думаю - нужная. :1111493779:

Хотел бы поучаствовать в открытом Verilog-проекте по АВР-совместимому софт-процессору - при условии, если кто-то возмется за разработку/изготовление/рассылку, за недорого, простых макеток со Spartan3A(AN)/Cyclone2(3) (те с одинаковым форм-фактором, но разными FPGA) - на которых и будет доводка.

 

"Чистый" АВР мне неинтересен(зачем клонировать изъяны), я бы подумал об

1) максимально ортогонализированной системе 18-битных команд и программе перекодирования скомпилированного 16-битного кода АВР в загружаемый 18-битный код софт-процессора (естественно, придется отказаться от поддержки команд LPM/ELPM/SPM),

2) однотактном исполнении всех команд (по возможности - опция вставки пустых тактов для совместимости по таймингам).

Это позволит оптимизировать софт-процессор по компактности/быстродействию

и сохранить возможность использовать ПО для АВР.

 

Под максимальной ортогонализацией понимаю, например, такие частные случаи для команды "MOV dst, src" - как раз укладывается в 18 бит и в 1 такт(по предварительным прикидкам для Спартанов), и вроде охватывает все случаи АВР

(кроме LPM/ELPM/SPM):

 

MOV Rd, Rs

MOV Rd, (Rs)

MOV Rd, (-Rs)

MOV Rd, (Rs+)

MOV Rd, (s) // (s) ::= {SR|(PC+)|(SP)|Pn|,...}

 

MOV (Rd), Rs

MOV (Rd), (Rs)

MOV (Rd), (-Rs)

MOV (Rd), (Rs+)

MOV (Rd), (s)

 

MOV (-Rd), Rs

MOV (-Rd), (Rs)

MOV (-Rd), (-Rs)

MOV (-Rd), (Rs+)

MOV (-Rd), (s)

 

MOV (Rd+), Rs

MOV (Rd+), (Rs)

MOV (Rd+), (-Rs)

MOV (Rd+), (Rs+)

MOV (Rd+), (s)

 

MOV (d), Rs // (d) ::= {SR|(PC+)|(SP)|Pn|,...}

MOV (d), (Rs)

MOV (d), (-Rs)

MOV (d), (Rs+)

MOV (d), (s)

 

MOV Rd, K

MOV Rd, (Rz) // Rz ::= {X|Y|Z}

MOV (Rz), Rs // Rz ::= {X|Y|Z}

 

Ну и остальные команды (арифметико-логические и переходов) - тоже ортогонализировать. :)

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

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


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

Хотел бы поучаствовать в открытом Verilog-проекте по АВР-совместимому софт-процессору

Вот в чем смысла не вижу, так именно в этом.

Если пользоваться каким-либо готовым ПО - надо делать копию или надмножество. Если делать "свое" - то в первую очередь задумываться о компиляторе.

 

PS. Где-то тут проскакивала тема о компактном RISC ядре. Оставался вопрос о переделке backend компилятора.

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


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

Вот в чем смысла не вижу, так именно в этом.

Если пользоваться каким-либо готовым ПО - надо делать копию или надмножество. Если делать "свое" - то в первую очередь задумываться о компиляторе.

 

Имею в виду именно надмножество - разница в кодировании инструкций. Написать перекодировщик - вообще не проблема. Проблемные инструкции(типа LPM) замещать переходом на подпрограмму.

 

PS. Где-то тут проскакивала тема о компактном RISC ядре. Оставался вопрос о переделке backend компилятора.

Какого компилятора - Си? Это проблема. Ассемблер? Нет проблем!

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

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


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

2 ALL

Тема интересная, и думаю - нужная. :1111493779:

Хотел бы поучаствовать в открытом Verilog-проекте по АВР-совместимому софт-процессору - при условии, если кто-то возмется за разработку/изготовление/рассылку, за недорого, простых макеток со Spartan3A(AN)/Cyclone2(3) (те с одинаковым форм-фактором, но разными FPGA) - на которых и будет доводка.

Ну и остальные команды (арифметико-логические и переходов) - тоже ортогонализировать. :)

 

Смысла нет никакого. Если уж и делать процессор то не аврку. А что то легко расширяемое и конвейеризируемое.

Иначе, если нужен универсальник проще XSOC16 взять, если жалко 500 баков за ниос, микроблейз отдавать или в асик ставить будете.

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

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


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

А каков смысл альтернативных процев? Быстрее? Меньше по объему? Проще писать? Ну за исключением цены естественно. А то я на ниосе зациклился...

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


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

А каков смысл альтернативных процев? Быстрее? Меньше по объему? Проще писать? Ну за исключением цены естественно. А то я на ниосе зациклился...

Смысла в альтернативных uC нет никаких:

-цена

-геморрой с компиляторами.

Смысл есть только в связке готовый uC-ПЛИС.

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


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

Ну вот, взяли и раскритиковали человека по полной :(

 

Ну и что, что не видите смысла. Зачем их тогда создают? На одном опенкорс куча всяких контроллеров.

А ведь это какой замечательный опыт работы, многие ли могут похвастаться такими проектами?

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


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

Ну вот, взяли и раскритиковали человека по полной :(

 

Ну и что, что не видите смысла. Зачем их тогда создают? На одном опенкорс куча всяких контроллеров.

А ведь это какой замечательный опыт работы, многие ли могут похвастаться такими проектами?

 

вы не внимательно читали, смысла нет делать универсальный контроллер ибо таки туева хуча и первыми из них идут арм7, леон, ниос, микроблейз.

 

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

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


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

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

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


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

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

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


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

Нет смысла говорить "нет смысла". :)

Почти все подходит под определенные задачи.

 

У меня был проэкт на Спартане 3 с Nanoblaze. Потом перешел на Cyclone, и передал управляющие функции PICу, найденному на opencores. Почему PIC? Для него все ассемблеры/компайлеры/симуляторы заточены.

 

A AVR IMHO на порядок удобнее в работе с достаточно ортогональной системой комманд. Я их много повсюду понатыкал, в основном небольшие - от TINY15 do MEGA162.

 

Так что в след. раз надо будет проц в FPGA - попробую этот AVR. :a14:

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


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

Нет смысла говорить "нет смысла". :)

Почти все подходит под определенные задачи.

 

У меня был проэкт на Спартане 3 с Nanoblaze. Потом перешел на Cyclone, и передал управляющие функции PICу, найденному на opencores. Почему PIC? Для него все ассемблеры/компайлеры/симуляторы заточены.

 

A AVR IMHO на порядок удобнее в работе с достаточно ортогональной системой комманд. Я их много повсюду понатыкал, в основном небольшие - от TINY15 do MEGA162.

 

Так что в след. раз надо будет проц в FPGA - попробую этот AVR. :a14:

 

Опять же вы не внимательно(!!!) читаете мои посты.

 

Нет смысла РАЗРАБАТЫВАТЬ универсальный процессор. Про применение универсального процессора я не сказал ни слова.

 

Рассмотрим ваш пример. Может быть я ошибаюсь, но из вашего поста видно что вы не стали разрабатывать собственное ядро, а взяли его готовое с опенкоресов ? Вы же не стали сами с нуля делать полностью совместимое ядро.

 

А вот разработать процессор для конкретной задачи, как это сделал iosifk (www.iosifk.narod.ru) это был правильный вариант решения. Подробности смотрите у него на сайте, все с пояснениями и графиками.

 

ИМХО смысл разрабатывать универсальный процессор есть только в следующих случаях :

 

1. из-за любви к искусству, что мы и видим на опенкорес.

2. специфика применения (лицензионная частота например для асика, военные применения).

3. реклама, и это мы тоже видим на опенкорес.

 

Удачи.

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


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

Опять же вы не внимательно(!!!) читаете мои посты.

 

Я не спорил с Вами, а скорее с другим постом, но это не так важно.

 

Нет смысла РАЗРАБАТЫВАТЬ универсальный процессор. Про применение универсального процессора я не сказал ни слова.

 

Рассмотрим ваш пример. Может быть я ошибаюсь, но из вашего поста видно что вы не стали разрабатывать собственное ядро, а взяли его готовое с опенкоресов ? Вы же не стали сами с нуля делать полностью совместимое ядро.

 

Не стал посколько нашел готовый для решения своей задачи. Надо было не шашечки, а ехать.

А в другой раз, когда было скучно, сделал свой просто так...

 

А вот разработать процессор для конкретной задачи, как это сделал iosifk (www.iosifk.narod.ru) это был правильный вариант решения. Подробности смотрите у него на сайте, все с пояснениями и графиками.

 

ИМХО смысл разрабатывать универсальный процессор есть только в следующих случаях :

 

1. из-за любви к искусству, что мы и видим на опенкорес.

2. специфика применения (лицензионная частота например для асика, военные применения).

3. реклама, и это мы тоже видим на опенкорес.

 

Удачи.

 

Не спорю ни по одному пункту. Удачи и Вам!

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


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

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

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

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

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

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

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

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

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

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