Leka 1 December 8, 2007 Posted December 8, 2007 (edited) · Report post 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} Ну и остальные команды (арифметико-логические и переходов) - тоже ортогонализировать. :) Edited December 8, 2007 by Leka Quote Share this post Link to post Share on other sites More sharing options...
dvladim 0 December 8, 2007 Posted December 8, 2007 · Report post Хотел бы поучаствовать в открытом Verilog-проекте по АВР-совместимому софт-процессору Вот в чем смысла не вижу, так именно в этом. Если пользоваться каким-либо готовым ПО - надо делать копию или надмножество. Если делать "свое" - то в первую очередь задумываться о компиляторе. PS. Где-то тут проскакивала тема о компактном RISC ядре. Оставался вопрос о переделке backend компилятора. Quote Share this post Link to post Share on other sites More sharing options...
Leka 1 December 8, 2007 Posted December 8, 2007 (edited) · Report post Вот в чем смысла не вижу, так именно в этом. Если пользоваться каким-либо готовым ПО - надо делать копию или надмножество. Если делать "свое" - то в первую очередь задумываться о компиляторе. Имею в виду именно надмножество - разница в кодировании инструкций. Написать перекодировщик - вообще не проблема. Проблемные инструкции(типа LPM) замещать переходом на подпрограмму. PS. Где-то тут проскакивала тема о компактном RISC ядре. Оставался вопрос о переделке backend компилятора. Какого компилятора - Си? Это проблема. Ассемблер? Нет проблем! Edited December 8, 2007 by Leka Quote Share this post Link to post Share on other sites More sharing options...
des00 27 December 10, 2007 Posted December 10, 2007 · Report post 2 ALL Тема интересная, и думаю - нужная. :1111493779: Хотел бы поучаствовать в открытом Verilog-проекте по АВР-совместимому софт-процессору - при условии, если кто-то возмется за разработку/изготовление/рассылку, за недорого, простых макеток со Spartan3A(AN)/Cyclone2(3) (те с одинаковым форм-фактором, но разными FPGA) - на которых и будет доводка. Ну и остальные команды (арифметико-логические и переходов) - тоже ортогонализировать. :) Смысла нет никакого. Если уж и делать процессор то не аврку. А что то легко расширяемое и конвейеризируемое. Иначе, если нужен универсальник проще XSOC16 взять, если жалко 500 баков за ниос, микроблейз отдавать или в асик ставить будете. На очень худой конец берем пиклоблейз и расширяем его до нужной функциональности. Quote Share this post Link to post Share on other sites More sharing options...
Leka 1 December 10, 2007 Posted December 10, 2007 · Report post http://electronix.ru/forum/index.php?showtopic=449 Quote Share this post Link to post Share on other sites More sharing options...
dvladim 0 December 10, 2007 Posted December 10, 2007 · Report post Какого компилятора - Си? Это проблема. Ассемблер? Нет проблем! Си. Quote Share this post Link to post Share on other sites More sharing options...
sektoris 0 December 11, 2007 Posted December 11, 2007 · Report post А каков смысл альтернативных процев? Быстрее? Меньше по объему? Проще писать? Ну за исключением цены естественно. А то я на ниосе зациклился... Quote Share this post Link to post Share on other sites More sharing options...
alexander55 1 December 13, 2007 Posted December 13, 2007 · Report post А каков смысл альтернативных процев? Быстрее? Меньше по объему? Проще писать? Ну за исключением цены естественно. А то я на ниосе зациклился... Смысла в альтернативных uC нет никаких: -цена -геморрой с компиляторами. Смысл есть только в связке готовый uC-ПЛИС. Quote Share this post Link to post Share on other sites More sharing options...
torik 0 December 13, 2007 Posted December 13, 2007 · Report post Ну вот, взяли и раскритиковали человека по полной :( Ну и что, что не видите смысла. Зачем их тогда создают? На одном опенкорс куча всяких контроллеров. А ведь это какой замечательный опыт работы, многие ли могут похвастаться такими проектами? Quote Share this post Link to post Share on other sites More sharing options...
des00 27 December 14, 2007 Posted December 14, 2007 · Report post Ну вот, взяли и раскритиковали человека по полной :( Ну и что, что не видите смысла. Зачем их тогда создают? На одном опенкорс куча всяких контроллеров. А ведь это какой замечательный опыт работы, многие ли могут похвастаться такими проектами? вы не внимательно читали, смысла нет делать универсальный контроллер ибо таки туева хуча и первыми из них идут арм7, леон, ниос, микроблейз. А вот сделать специализированный это пожалуйста. опыт создания есть, преимущества вроде тоже просматриваются, но подчеркну еще раз это специализированный, а не универсальный процессор. Quote Share this post Link to post Share on other sites More sharing options...
Kuzmi4 0 December 14, 2007 Posted December 14, 2007 · Report post 2 des00 - не ругайте сильно, я товарисч новый в этом деле , но можно примеры специализированных контроллеров ? Quote Share this post Link to post Share on other sites More sharing options...
tims 0 December 15, 2007 Posted December 15, 2007 · Report post Специализированные контроллеры - заточенные под определенные задачи со спецефически оптимизированными инструкциями и ресурсами. От небольших микропрограмных автоматов до процессоров с N - количеством инструкций. Иногда автоматы делать проще. Quote Share this post Link to post Share on other sites More sharing options...
alexf 0 December 15, 2007 Posted December 15, 2007 · Report post Нет смысла говорить "нет смысла". :) Почти все подходит под определенные задачи. У меня был проэкт на Спартане 3 с Nanoblaze. Потом перешел на Cyclone, и передал управляющие функции PICу, найденному на opencores. Почему PIC? Для него все ассемблеры/компайлеры/симуляторы заточены. A AVR IMHO на порядок удобнее в работе с достаточно ортогональной системой комманд. Я их много повсюду понатыкал, в основном небольшие - от TINY15 do MEGA162. Так что в след. раз надо будет проц в FPGA - попробую этот AVR. :a14: Quote Share this post Link to post Share on other sites More sharing options...
des00 27 December 17, 2007 Posted December 17, 2007 · Report post Нет смысла говорить "нет смысла". :) Почти все подходит под определенные задачи. У меня был проэкт на Спартане 3 с Nanoblaze. Потом перешел на Cyclone, и передал управляющие функции PICу, найденному на opencores. Почему PIC? Для него все ассемблеры/компайлеры/симуляторы заточены. A AVR IMHO на порядок удобнее в работе с достаточно ортогональной системой комманд. Я их много повсюду понатыкал, в основном небольшие - от TINY15 do MEGA162. Так что в след. раз надо будет проц в FPGA - попробую этот AVR. :a14: Опять же вы не внимательно(!!!) читаете мои посты. Нет смысла РАЗРАБАТЫВАТЬ универсальный процессор. Про применение универсального процессора я не сказал ни слова. Рассмотрим ваш пример. Может быть я ошибаюсь, но из вашего поста видно что вы не стали разрабатывать собственное ядро, а взяли его готовое с опенкоресов ? Вы же не стали сами с нуля делать полностью совместимое ядро. А вот разработать процессор для конкретной задачи, как это сделал iosifk (www.iosifk.narod.ru) это был правильный вариант решения. Подробности смотрите у него на сайте, все с пояснениями и графиками. ИМХО смысл разрабатывать универсальный процессор есть только в следующих случаях : 1. из-за любви к искусству, что мы и видим на опенкорес. 2. специфика применения (лицензионная частота например для асика, военные применения). 3. реклама, и это мы тоже видим на опенкорес. Удачи. Quote Share this post Link to post Share on other sites More sharing options...
alexf 0 December 17, 2007 Posted December 17, 2007 · Report post Опять же вы не внимательно(!!!) читаете мои посты. Я не спорил с Вами, а скорее с другим постом, но это не так важно. Нет смысла РАЗРАБАТЫВАТЬ универсальный процессор. Про применение универсального процессора я не сказал ни слова. Рассмотрим ваш пример. Может быть я ошибаюсь, но из вашего поста видно что вы не стали разрабатывать собственное ядро, а взяли его готовое с опенкоресов ? Вы же не стали сами с нуля делать полностью совместимое ядро. Не стал посколько нашел готовый для решения своей задачи. Надо было не шашечки, а ехать. А в другой раз, когда было скучно, сделал свой просто так... А вот разработать процессор для конкретной задачи, как это сделал iosifk (www.iosifk.narod.ru) это был правильный вариант решения. Подробности смотрите у него на сайте, все с пояснениями и графиками. ИМХО смысл разрабатывать универсальный процессор есть только в следующих случаях : 1. из-за любви к искусству, что мы и видим на опенкорес. 2. специфика применения (лицензионная частота например для асика, военные применения). 3. реклама, и это мы тоже видим на опенкорес. Удачи. Не спорю ни по одному пункту. Удачи и Вам! Quote Share this post Link to post Share on other sites More sharing options...