|
AVR CPU Core, Хочу поделиться |
|
|
|
Dec 7 2007, 20:27
|
Местный
  
Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056

|
Здравствуйте! В свое время искал AVR корку, но ничего подходящего не смог найти. В результате был создан данный проект, которым и хочу поделиться. В проекте создан CPU с SPI (master), GPIO, интерфейсом к DataFlash и линиями внешних прерываний. Тестовая программа реализует обмен по Ethernet через ENC28J60 (ARP, Ping и частично UDP). Из особенностей CPU: Программируемые адреса прерываний. Уменьшенное время выполнения некоторых команд. Список поддерживаемых команд находится в файле cpu.txt. Файлы: test_cpu.qar - проект с CPU. test_avr - тестовая программа I8I16.exe - конвертер файлов из Intel HEX в HEX для инициализации памяти в Quartus. С уважением, BSACPLD.
|
|
|
|
|
 |
Ответов
(1 - 86)
|
Dec 7 2007, 20:59
|
Местный
  
Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056

|
Цитата(Leka @ Dec 7 2007, 23:44)  А что в test_cpu.qar ? У меня ISE, Квартуса нет. rar подойдет?
|
|
|
|
|
Dec 7 2007, 22:57
|
Местный
  
Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056

|
Цитата(Leka @ Dec 8 2007, 01:08)  Web edition позже скачаю, объем меньше. Без Квартуса залить не получится? У меня тоже есть проект с софт-процессором(самопальным), скомпилированная прошивка заливается/обновляется через последовательный порт после конфигурации. Без Квартуса залить не получиться, потому, что память программ организована как ROM. Если сделать логику заливки, то можно будет заливать и после конфигурации. Данный вариант не окончательный, он является лишь частью двух больших проектов. Я заливаю следующим образом: 1) I8I16.exe 2) Update Memory Initialization File 3) Assembler 4) JTAG
|
|
|
|
|
Dec 8 2007, 13:09
|
Местный
  
Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056

|
Цитата(Leka @ Dec 8 2007, 13:13)  (Скачать Квартус не получилось.) Кстати, почему Циклон, а не Спартан? У Альтеры нет блочной памяти с асинхронным чтением (у Xilinx есть альтернатива - распределенная память), поэтому у софт-процессоров(альтеровских) с коротким конвейером хуже с компактностью и быстродействием. Cyclone потому, что этот процессор делался для проекта на Cyclone. К тому же у Альтеры несколько выше быстродействие, в проекте для которого создавался процессор весь упор был на быстродействие логики (генератор синхроимпульсов), а не процессора. Цитата(den_realan @ Dec 8 2007, 15:20)  Пара вопросов возникла: Есть ли возможность создать программу на "C", и скомпилить под этот процессор? У вас пример на ассемблере. Если реализовано лишь подмножество AVR, то потребуется доводка компилятора. Или разработка программ планируется только на ассемблере?
И второй. Процессор написан на AHDL. Это ограничивает его использование Альтерой. Почему небыл выбран Verilog или VHDL? Что Вы понимаете под подмножеством AVR? Если Вы имеете ввиду, что он совместим по системе команд, то да. Данный процессор, скорее даже не AVR, а совместимый по командам с AVR, у него своя собственная периферия и несколько отличная организация памяти. РОН и РВВ не отображаются на область ОЗУ. Сейчас процессор поддерживает не все команды (см. cpu.txt), если можно будет настроить компилятор соответствующим образом, то можно использовать и "C". AHDL потому, что Verilog я сейчас только изучаю, а AHDL пользуюсь уже давно. Кстати, а Вы не можете мне посоветовать какую-нибудь толковую книжку по Verilog?
|
|
|
|
|
Dec 8 2007, 17:23
|
Профессионал
    
Группа: Участник
Сообщений: 1 075
Регистрация: 30-09-05
Пользователь №: 9 118

|
2 ALLТема интересная, и думаю - нужная. Хотел бы поучаствовать в открытом 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 - Dec 8 2007, 17:41
|
|
|
|
|
Dec 8 2007, 18:49
|
Знающий
   
Группа: Свой
Сообщений: 654
Регистрация: 24-01-07
Из: Воронеж
Пользователь №: 24 737

|
Цитата(Leka @ Dec 8 2007, 20:23)  Хотел бы поучаствовать в открытом Verilog-проекте по АВР-совместимому софт-процессору Вот в чем смысла не вижу, так именно в этом. Если пользоваться каким-либо готовым ПО - надо делать копию или надмножество. Если делать "свое" - то в первую очередь задумываться о компиляторе. PS. Где-то тут проскакивала тема о компактном RISC ядре. Оставался вопрос о переделке backend компилятора.
|
|
|
|
|
Dec 8 2007, 19:46
|
Профессионал
    
Группа: Участник
Сообщений: 1 075
Регистрация: 30-09-05
Пользователь №: 9 118

|
Цитата(den_realan @ Dec 8 2007, 21:49)  Вот в чем смысла не вижу, так именно в этом. Если пользоваться каким-либо готовым ПО - надо делать копию или надмножество. Если делать "свое" - то в первую очередь задумываться о компиляторе. Имею в виду именно надмножество - разница в кодировании инструкций. Написать перекодировщик - вообще не проблема. Проблемные инструкции(типа LPM) замещать переходом на подпрограмму. Цитата PS. Где-то тут проскакивала тема о компактном RISC ядре. Оставался вопрос о переделке backend компилятора. Какого компилятора - Си? Это проблема. Ассемблер? Нет проблем!
Сообщение отредактировал Leka - Dec 8 2007, 19:52
|
|
|
|
|
Dec 10 2007, 04:23
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(Leka @ Dec 8 2007, 12:23)  2 ALLТема интересная, и думаю - нужная. Хотел бы поучаствовать в открытом Verilog-проекте по АВР-совместимому софт-процессору - при условии, если кто-то возмется за разработку/изготовление/рассылку, за недорого, простых макеток со Spartan3A(AN)/Cyclone2(3) (те с одинаковым форм-фактором, но разными FPGA) - на которых и будет доводка. Ну и остальные команды (арифметико-логические и переходов) - тоже ортогонализировать.  Смысла нет никакого. Если уж и делать процессор то не аврку. А что то легко расширяемое и конвейеризируемое. Иначе, если нужен универсальник проще XSOC16 взять, если жалко 500 баков за ниос, микроблейз отдавать или в асик ставить будете. На очень худой конец берем пиклоблейз и расширяем его до нужной функциональности.
--------------------
|
|
|
|
|
Dec 11 2007, 07:37
|
Группа: Новичок
Сообщений: 4
Регистрация: 11-11-06
Пользователь №: 22 186

|
А каков смысл альтернативных процев? Быстрее? Меньше по объему? Проще писать? Ну за исключением цены естественно. А то я на ниосе зациклился...
|
|
|
|
|
Dec 13 2007, 09:28
|
Бывалый
    
Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615

|
Цитата(sektoris @ Dec 11 2007, 10:37)  А каков смысл альтернативных процев? Быстрее? Меньше по объему? Проще писать? Ну за исключением цены естественно. А то я на ниосе зациклился... Смысла в альтернативных uC нет никаких: -цена -геморрой с компиляторами. Смысл есть только в связке готовый uC-ПЛИС.
|
|
|
|
|
Dec 14 2007, 04:05
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(torik @ Dec 13 2007, 16:40)  Ну вот, взяли и раскритиковали человека по полной  Ну и что, что не видите смысла. Зачем их тогда создают? На одном опенкорс куча всяких контроллеров. А ведь это какой замечательный опыт работы, многие ли могут похвастаться такими проектами? вы не внимательно читали, смысла нет делать универсальный контроллер ибо таки туева хуча и первыми из них идут арм7, леон, ниос, микроблейз. А вот сделать специализированный это пожалуйста. опыт создания есть, преимущества вроде тоже просматриваются, но подчеркну еще раз это специализированный, а не универсальный процессор.
--------------------
|
|
|
|
|
Dec 15 2007, 22:08
|
Местный
  
Группа: Свой
Сообщений: 420
Регистрация: 22-12-04
Пользователь №: 1 608

|
Нет смысла говорить "нет смысла".  Почти все подходит под определенные задачи. У меня был проэкт на Спартане 3 с Nanoblaze. Потом перешел на Cyclone, и передал управляющие функции PICу, найденному на opencores. Почему PIC? Для него все ассемблеры/компайлеры/симуляторы заточены. A AVR IMHO на порядок удобнее в работе с достаточно ортогональной системой комманд. Я их много повсюду понатыкал, в основном небольшие - от TINY15 do MEGA162. Так что в след. раз надо будет проц в FPGA - попробую этот AVR.
|
|
|
|
|
Dec 17 2007, 03:39
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(alexf @ Dec 15 2007, 17:08)  Нет смысла говорить "нет смысла".  Почти все подходит под определенные задачи. У меня был проэкт на Спартане 3 с Nanoblaze. Потом перешел на Cyclone, и передал управляющие функции PICу, найденному на opencores. Почему PIC? Для него все ассемблеры/компайлеры/симуляторы заточены. A AVR IMHO на порядок удобнее в работе с достаточно ортогональной системой комманд. Я их много повсюду понатыкал, в основном небольшие - от TINY15 do MEGA162. Так что в след. раз надо будет проц в FPGA - попробую этот AVR.  Опять же вы не внимательно(!!!) читаете мои посты. Нет смысла РАЗРАБАТЫВАТЬ универсальный процессор. Про применение универсального процессора я не сказал ни слова. Рассмотрим ваш пример. Может быть я ошибаюсь, но из вашего поста видно что вы не стали разрабатывать собственное ядро, а взяли его готовое с опенкоресов ? Вы же не стали сами с нуля делать полностью совместимое ядро. А вот разработать процессор для конкретной задачи, как это сделал iosifk (www.iosifk.narod.ru) это был правильный вариант решения. Подробности смотрите у него на сайте, все с пояснениями и графиками. ИМХО смысл разрабатывать универсальный процессор есть только в следующих случаях : 1. из-за любви к искусству, что мы и видим на опенкорес. 2. специфика применения (лицензионная частота например для асика, военные применения). 3. реклама, и это мы тоже видим на опенкорес. Удачи.
--------------------
|
|
|
|
|
Dec 17 2007, 08:35
|
Местный
  
Группа: Свой
Сообщений: 420
Регистрация: 22-12-04
Пользователь №: 1 608

|
Цитата(des00 @ Dec 16 2007, 19:39)  Опять же вы не внимательно(!!!) читаете мои посты. Я не спорил с Вами, а скорее с другим постом, но это не так важно. Цитата(des00 @ Dec 16 2007, 19:39)  Нет смысла РАЗРАБАТЫВАТЬ универсальный процессор. Про применение универсального процессора я не сказал ни слова.
Рассмотрим ваш пример. Может быть я ошибаюсь, но из вашего поста видно что вы не стали разрабатывать собственное ядро, а взяли его готовое с опенкоресов ? Вы же не стали сами с нуля делать полностью совместимое ядро. Не стал посколько нашел готовый для решения своей задачи. Надо было не шашечки, а ехать. А в другой раз, когда было скучно, сделал свой просто так... Цитата(des00 @ Dec 16 2007, 19:39)  А вот разработать процессор для конкретной задачи, как это сделал iosifk (www.iosifk.narod.ru) это был правильный вариант решения. Подробности смотрите у него на сайте, все с пояснениями и графиками.
ИМХО смысл разрабатывать универсальный процессор есть только в следующих случаях :
1. из-за любви к искусству, что мы и видим на опенкорес. 2. специфика применения (лицензионная частота например для асика, военные применения). 3. реклама, и это мы тоже видим на опенкорес.
Удачи. Не спорю ни по одному пункту. Удачи и Вам!
|
|
|
|
|
Dec 17 2007, 10:35
|
Бывалый
    
Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615

|
Цитата(torik @ Dec 14 2007, 00:40)  Ну вот, взяли и раскритиковали человека по полной  Ну и что, что не видите смысла. Зачем их тогда создают? На одном опенкорс куча всяких контроллеров. А ведь это какой замечательный опыт работы, многие ли могут похвастаться такими проектами? Смысл м.б. только для создателей ядер попробовать на железе нюансы. Это лучше и быстрее, чем моделировать. Т.е. мы предполагаем, а чем собственно располагаем. PS. ARM торгует корками на Verilog.
|
|
|
|
|
Dec 26 2007, 23:50
|
Местный
  
Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056

|
Обнаружил ошибки при выполнении команд типа ld YL, X+. Исправленный файл прилагается.
|
|
|
|
|
Dec 31 2007, 19:44
|
Местный
  
Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056

|
Добавил команды MUL, MULS, SLEEP. Также добавлен захват прерываний, т.е. если сигнал прерывания исчез до того как прерывания были разрешены, то прерывание все равно будет обработано. Флаг прерывания нужно сбрасывать записью лог. 1 в EINT_IF. Поздравляю всех с Новым Годом!
|
|
|
|
|
Mar 28 2008, 19:10
|
Местный
  
Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056

|
Немного обновленный вариант. Добавлен интерфейс к FT245BM.
|
|
|
|
|
Apr 10 2008, 13:39
|
Местный
  
Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056

|
Цитата(Kuzmi4 @ Apr 9 2008, 12:45)  2 BSACPLD - а как для начинающих - можно описание как вы заливаете полученный хекс в плисину ?? Читайте тему с начала. Цитата Я заливаю следующим образом: 1) I8I16.exe 2) Update Memory Initialization File 3) Assembler 4) JTAG Программа I8I16.exe используется для конвертирования HEX файлов в файлы для инициализации памяти процессора. Путь к данному файлу необходимо указать в параметре INIT_PROGRAM.
Прикрепленные файлы
I8I16.rar ( 15.65 килобайт )
Кол-во скачиваний: 136
|
|
|
|
|
Jul 13 2008, 15:34
|
Местный
  
Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056

|
Вот, наконец, появилось немного свободного времени. Добавил поддержку команд lds/sts. Больше не нужно использовать I8I16.exe. Просто необходимо зайти в меню Assignments->Compilation Process Settings->More Settings... и установить параметр "Reading or writing Hexadecimal(.hex) File in byte addressable mode" в значение "On". Проект (Quartus 7.2 SP3) и список поддерживаемых команд во вложенном архиве.
|
|
|
|
|
Sep 3 2008, 11:52
|
Знающий
   
Группа: Свой
Сообщений: 509
Регистрация: 19-07-07
Из: г. Таганрог
Пользователь №: 29 246

|
Цитата(WEST128 @ Dec 8 2007, 21:23)  Так на opencores.org давно уже выложено AVR ядро, как там написано, на 100 % совместимое по системе команд, и можно использовать любой компилятор, поддерживающий AVR. Скомпилировал недавно opencore AVR на VHDL, получилось около 44 МГц при 3400 логических ячейках на самом маленьком втором циклоне. А какая у вас тактовая частота получилась?
--------------------
Умные речи подобны строкам, напечатанным курсивом. К. Прутков
|
|
|
|
|
Sep 3 2008, 12:38
|

МедвеД Инженер I
   
Группа: Свой
Сообщений: 816
Регистрация: 21-10-04
Пользователь №: 951

|
Цитата(Vitaliy_ARM @ Sep 3 2008, 20:52)  Скомпилировал недавно opencore AVR на VHDL, получилось около 44 МГц при 3400 логических ячейках на самом маленьком втором циклоне.
А какая у вас тактовая частота получилась? отвечу за автора 2400 50 МГц
--------------------
Cogito ergo sum
|
|
|
|
|
Sep 3 2008, 13:34
|

МедвеД Инженер I
   
Группа: Свой
Сообщений: 816
Регистрация: 21-10-04
Пользователь №: 951

|
Цитата(Leka @ Sep 3 2008, 21:51)  А сколько ЛЕ приходится на регистровый файл(чтобы сравнить с вариантами для Xilinx)? чуток соврал 2624 точная цифра
регистровый файл занимает столько сколько бит в каждом регистре * колво регистров
--------------------
Cogito ergo sum
|
|
|
|
|
Sep 3 2008, 14:47
|
Знающий
   
Группа: Свой
Сообщений: 509
Регистрация: 19-07-07
Из: г. Таганрог
Пользователь №: 29 246

|
Цитата(Postoroniy_V @ Sep 3 2008, 16:38)  отвечу за автора 2400 50 МГц Ну тогда автору  . Еще бы отладку сделать и будет блеск. Opencor'ный авр отдыхает. А кто-нибудь это ядро уже использует? Есть ли нюансы
--------------------
Умные речи подобны строкам, напечатанным курсивом. К. Прутков
|
|
|
|
|
Sep 3 2008, 23:34
|

МедвеД Инженер I
   
Группа: Свой
Сообщений: 816
Регистрация: 21-10-04
Пользователь №: 951

|
Цитата(Leka @ Sep 3 2008, 23:48)  Sorry, имел в виду - со всей обвязкой, те вместе с декодерами/мультиплексорами чтения/записи. У Альтеры нет распределенной памяти, поэтому при сравнении размера ядер регистровые файлы лучше считать отдельно, если они не в блочной памяти. Например, для Xilinx однопортовый регистровый файл 32*8бит занимает 16 LUT(Спартан3). это будет зависеть от плис, тоесть в стратиксе поменьше в циклоне больше я уже привел цифры для циклонов для всего авр-а а сравнить кол-во лутов для регистрового файла между альтерами и хилыми мне кажется несколько странным желанием. вы можете посмотреть на приатаченые картинки и увидеть что control_сpu:control_avr занимает 2255 LE/1880(1282) LUT-only LCs/266(151) LUT-Register LCs внутри оного и сидит: рег файл, обвязка и т.д. добавил картинку с инфой про луты
тактовая 52 Мгц
--------------------
Cogito ergo sum
|
|
|
|
|
Sep 4 2008, 06:50
|
Знающий
   
Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489

|
Цитата(Postoroniy_V @ Sep 3 2008, 17:34)  чуток соврал 2624 точная цифра Я тоже попробовал скомпилировать. Но у меня другая цифра почему-то 2259. Откуда может быть такая разница? Тактовая 50.34MHz Остальные цифры те же. У меня QuartusII v7.1 sp1. При открытии проекта ругался на строчку #set_global_assignment -name READ_OR_WRITE_IN_BYTE_ADDRESS ON и я её убрал. В остальном все нормально. Разбираться пока не пробовал. А control_cpu:control_avr занимает 1941LE.
--------------------
В действительности всё не так, как на самом деле.
|
|
|
|
|
Sep 7 2008, 09:34
|
Местный
  
Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056

|
Исправил глюк с неправильной записью в регистры INT_ADDR[7..1]. Добавил WDT с прерыванием. Тактовая частота 51.72 МГц (оптимизация по занимаемой площади) - 52.63 МГц (оптимизация по скорости). Цитата(slog @ Sep 4 2008, 10:50)  Я тоже попробовал скомпилировать. Но у меня другая цифра почему-то 2259. Откуда может быть такая разница? Тактовая 50.34MHz Остальные цифры те же. У меня QuartusII v7.1 sp1. При открытии проекта ругался на строчку #set_global_assignment -name READ_OR_WRITE_IN_BYTE_ADDRESS ON и я её убрал. В остальном все нормально. Разбираться пока не пробовал. А control_cpu:control_avr занимает 1941LE. Возможно, все зависит от версии Квартуса. У меня было примерно 2400 и 52 МГц, Quartus 7.2 SP3. Строчка READ_OR_WRITE_IN_BYTE_ADDRESS ON необходима для того, чтобы Квартус читал HEX файл с байтовой адресацией. По умолчанию там стоит пословная адресация. В данном случае нужно будет использовать конвертер I8I16.exe.
|
|
|
|
|
Sep 12 2008, 09:28
|
Местный
  
Группа: Свой
Сообщений: 322
Регистрация: 2-07-04
Из: Minsk
Пользователь №: 240

|
Цитата(Leka @ Sep 12 2008, 11:50)  А что от житага ожидается? работа из IAR`а, кроссворка и прочих отладчиков. чтобы они не отличали софтпроц от обычного. но это в иделальном случае.
|
|
|
|
|
Sep 15 2008, 11:10
|

Бывалый
  
Группа: Validating
Сообщений: 375
Регистрация: 19-10-05
Из: Kiev, UA
Пользователь №: 9 853

|
Цитата(slog @ Sep 15 2008, 13:52)  Смысл делать "стандартные" процы в том что для них уже есть все нужные tools. Компиляторы, отладчики, библиотеки и т.п. Без которых не возможно удобное использование процессора. Нет, я имел в виду именно МСП430. С АВР понятно: Компиляторы, отладчики, библиотеки и т.п. Я не думаю, что под МСП430 есть что-то такое, чего нет под авр.
--------------------
|
|
|
|
|
Sep 15 2008, 11:16
|
Местный
  
Группа: Свой
Сообщений: 322
Регистрация: 2-07-04
Из: Minsk
Пользователь №: 240

|
Цитата(des00 @ Sep 15 2008, 06:44)  ну можно и msp430, правда никогда с ними не работал и по в пределах досягаемости нет ни одной платы с этим чипом. Как я понимаю вы хотите сделать полный аналог родного и большинство тонкостей работы с отладочным софтом придется вытаскивать ручками ? да. придётся ручками. существует описание работы с регистрами отладки. но оно под NDA. в свободном доступе только частичный доступ - программирование флешки, ползанье по памяти и т.п. Цитата(bloodden @ Sep 15 2008, 14:10)  Нет, я имел в виду именно МСП430. С АВР понятно: Компиляторы, отладчики, библиотеки и т.п. Я не думаю, что под МСП430 есть что-то такое, чего нет под авр. а) мне очень, просто очень нравиться это ядро. б) оно уже написано. почти полностью.
|
|
|
|
|
Sep 15 2008, 17:35
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(Mahagam @ Sep 15 2008, 06:16)  да. придётся ручками. существует описание работы с регистрами отладки. но оно под NDA. в свободном доступе только частичный доступ - программирование флешки, ползанье по памяти и т.п. предлагаю подождать реакции BSACPLD, т.к. под авр у меня подопытных кроликов много, а под мсп ни одного Цитата мне очень, просто очень нравиться это ядро. все на старость оставляю разработку своего ядра pdp-11, может быть, когда нибудь..... %))
--------------------
|
|
|
|
|
Sep 16 2008, 11:10
|
Знающий
   
Группа: Свой
Сообщений: 509
Регистрация: 19-07-07
Из: г. Таганрог
Пользователь №: 29 246

|
Цитата(slog @ Sep 16 2008, 09:25)  Еще один момент - ядро из этой темы написано на AHDL. Нельзя ли его конвертнуть без ущерба для качества во что-то более современное VHDL/Verilog? Для удобства так сказать. Если никто не перепишет на Verilog, может смогу переписать на VHDL, но код скорее всего будет больше.
--------------------
Умные речи подобны строкам, напечатанным курсивом. К. Прутков
|
|
|
|
|
Sep 16 2008, 13:02
|
Местный
  
Группа: Свой
Сообщений: 322
Регистрация: 2-07-04
Из: Minsk
Пользователь №: 240

|
Цитата(des00 @ Sep 15 2008, 20:35)  все на старость оставляю разработку своего ядра pdp-11, может быть, когда нибудь..... %)) гы. пдп-11 это бабушка эмэспэшки? внучка получилась с поддержкой софтом и жтагом.
|
|
|
|
|
Sep 16 2008, 15:07
|
Местный
  
Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056

|
Насчет JTAG пока не знаю. Если делать так, чтобы процессор был виден как какой-нибудь ATmega8, то соответственно данное ядро должно быть полным клоном ATmega8. Если позиционировать данный процессор как универсальное ядро, то, наверное, возможно будет сделать только пошаговую отладку, аппаратные брейкпойнты и просмотр состояния регистров. Если рассматривать второй случай, то встает вопрос софта для ПК: или адаптировать AVR Studio, или писать свой отладочный терминал. Кстати я так и не нашел на сайте Атмела какие команды JTAG используются для отладки. Есть только описание команд для программирования. Может кто-нибудь поделится ссылкой на данную тематику? По поводу переписывания на Verilog. Процесс идет, но медленно. Пока готов только топ-левел. Цитата(des00 @ Sep 12 2008, 09:04)  Могу безвозмездно помочь с этим, давно хотел житаг освоить.
Правда размеры ядра могут сильно увеличится %) Спасибо большое за поддержку, но как я уже писал выше, пока не знаю с какой стороны подойти к этому вопросу. Может быть, у Вас есть какие-нибудь предложения?
|
|
|
|
|
Sep 17 2008, 01:59
|

МедвеД Инженер I
   
Группа: Свой
Сообщений: 816
Регистрация: 21-10-04
Пользователь №: 951

|
Цитата(BSACPLD @ Sep 17 2008, 00:07)  Насчет JTAG пока не знаю. Если делать так, чтобы процессор был виден как какой-нибудь ATmega8, то соответственно данное ядро должно быть полным клоном ATmega8. Если позиционировать данный процессор как универсальное ядро, то, наверное, возможно будет сделать только пошаговую отладку, аппаратные брейкпойнты и просмотр состояния регистров. Если рассматривать второй случай, то встает вопрос софта для ПК: или адаптировать AVR Studio, или писать свой отладочный терминал. Кстати я так и не нашел на сайте Атмела какие команды JTAG используются для отладки. Есть только описание команд для программирования. Может кто-нибудь поделится ссылкой на данную тематику? По поводу переписывания на Verilog. Процесс идет, но медленно. Пока готов только топ-левел. Спасибо большое за поддержку, но как я уже писал выше, пока не знаю с какой стороны подойти к этому вопросу. Может быть, у Вас есть какие-нибудь предложения? ищите это - sld_virtual_jtag Megafunction User Guideпример использования 1 http://www.altera.com/literature/ug/ug_vir...n_example_1.zipпример использования 2 http://www.altera.com/literature/ug/ug_vir...n_example_2.zipDebugging & Communicating with an FPGA Using the Virtual JTAG Megafunction (OVJTAG1110) 0.5 Hours Online Course http://www.altera.com/education/training/c...=virtual%20jtag
--------------------
Cogito ergo sum
|
|
|
|
|
Oct 5 2008, 16:54
|
Местный
  
Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056

|
Исправлен глюк с невозможностью сброса процессора, когда сигнал reset приходил во время выполнения команды sleep. Исправлено неправильное выполнение команды SEI. Теперь команда, следующая за SEI, будет выполняться до перехода на вектор прерывания. Обнаружен следующий глюк: Код .org 0x000; вектор сброса rjmp begin; команда будет выполнена неправильно ...
; ----------------------------------------------- ; вариант исправления .org 0x000; вектор сброса nop rjmp begin; далее все команды будут выполняться правильно ... Данный глюк проявляется только по адресу 0x000.
|
|
|
|
|
Oct 28 2008, 17:04
|
Участник

Группа: Участник
Сообщений: 55
Регистрация: 7-09-05
Пользователь №: 8 305

|
Хочу также поделиться, я создал модель AVR Mega103 затем доработал до Mega128. Несколько публикаций имеется по данному проекту, вот нашел один выложенный уже в интернете http://www.russianelectronics.ru/review/op...50/doc551.phtmlНа данный момент кол-во модулей и функций увеличено, реализована вся система команд. Модуль использовался в проектах разработки тепловизров и декодера ЦТВ. Даже изготовлен в виде СБИС, и даже работает ))
Сообщение отредактировал Andrey_GTI - Oct 28 2008, 17:07
|
|
|
|
|
Oct 28 2008, 20:07
|
Участник

Группа: Участник
Сообщений: 55
Регистрация: 7-09-05
Пользователь №: 8 305

|
Пока модель используется в незавершенном проекте и дошлифовывается, боюсь я не могу её пока рапространять.
|
|
|
|
|
Mar 19 2009, 15:45
|
Участник

Группа: Участник
Сообщений: 38
Регистрация: 1-02-07
Пользователь №: 24 959

|
Народ, тут уже писали и я ПОВТОРЮ! На опенкорес лежит ядро АВР. Уже полгода, как юзаю и нормально пашет Спартан2, 2Е. Слегка доработал на схематике, заработало быстрее. Родное без проблем работает на 50-ти МГц-ах (из ОЗУ, пришлось сделать бутлоадер аля техас)).
|
|
|
|
|
Apr 17 2009, 10:20
|
Местный
  
Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056

|
Выкладываю вариант на SystemVerilog 2005. Проект выполнен в Quartus 9.0.
|
|
|
|
|
Jan 3 2010, 18:59
|
Группа: Участник
Сообщений: 9
Регистрация: 26-11-09
Пользователь №: 53 896

|
Цитата(PVL @ Mar 19 2009, 19:45)  Народ, тут уже писали и я ПОВТОРЮ! На опенкорес лежит ядро АВР. Уже полгода, как юзаю и нормально пашет Спартан2, 2Е. Слегка доработал на схематике, заработало быстрее. Родное без проблем работает на 50-ти МГц-ах (из ОЗУ, пришлось сделать бутлоадер аля техас)). Там несколько ядер, напишите плз. какое конкретно вы использовали
|
|
|
|
|
Sep 3 2010, 10:07
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Цитата(yuriy_v @ Sep 3 2010, 13:29)  .... но микроконтроллеры хочу начать осваивать на базе ПЛИС. ... но на ПЛИС. Ужасно! Более извращенный способ, это терновый венец, хлестание себя плетью, сон на гвоздях... Примерно так... Если решили изучить софт, так для этого есть симуляторы работы программы. В них и изучается софт. А инструменты для ПЛИС - это проектирование аппаратной части, но никак не софтовой. Мне на прошлой работе легче было написать самодельный многооконный симулятор для отладки встроенного в ПЛИС самодельного микроконтроллера, чем считать "зубчики" в Моделсиме... Микроконтроллеры изучаются на 3-м курсе. Я не поверю, что человек, 5 лет проработавший с ПЛИС не способен разобраться с простейшим программированием микроконтроллеров... А весы на ПЛИС - на несколько порядков будут дороже, чем на микроконтроллерах. Это уж гарантированно... Так что постарайтесь не расстраивать участников форума... Удачи!
--------------------
www.iosifk.narod.ru
|
|
|
|
|
Aug 4 2011, 11:16
|
Местный
  
Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056

|
Новая версия процессора. Отличия от предыдущей версии: 1. Тактовая частота 45 МГц. 2. Добавлены команды микроконтроллеров семейства XMEGA. 3. Теперь все команды выполняются за 1 такт (за исключением команд вызова подпрограмм и команд перехода, а также sts и lds). 4. В качестве среды разработки можно использовать Programmer's Notepad + AvrAssembler2 или GCC.
|
|
|
|
|
Nov 14 2011, 22:30
|
Местный
  
Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056

|
Цитата(AVR @ Nov 13 2011, 01:04)  мои 5 копеек - странный способ делиться своим богатством, выкладывая какие-то rar есть Google Code, есть BitBucket, SourceForge и т.п. - вот почему туда не выложить? А в чём проблема разархивировать RAR?
|
|
|
|
|
  |
8 чел. читают эту тему (гостей: 8, скрытых пользователей: 0)
Пользователей: 0
|
|
|