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

Наведите на корку ядра 8-битного микроконтроллера

Захотелось сделать "умную периферию" в ПЛИС (ну чтобы там мат. ожидание посчитала, вела обслуживание низкого уровня на какой-нибудь шине и тому подобное.. в общем неважно) Смысл такой чтобы в ПЛИС поместить микроконтроллерное ядрышко, прицепить к нему периферийку написать программку порядка пол килобайта кода. Обратил внимание на PicoBlase - как положено погонял в моделсиме. Всё хороше, вот только нет для него (или не нашел) с-образного компилятора (компилятор от Франческо - не в счёт - глючной и сдулся совсем). На ассемблере же писать влом - простые вещи долго делаются и глючат (у меня по крайней мере).

Вопрос: наведите на исходники ядра микроконтроллера по весу сравнимую с PicoBlase но для которого существует с-компилятор. AVR и PIC16 - тиобразные корки на опенкорках слищком тяжеловесны.

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


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

А здесь были? (скорее всего были, но на всякий случай :) )

 

http://www.opencores.com/browse.cgi/filter..._microprocessor

 

1) tiny8

2) Z80

3) 8051

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

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


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

А здесь были? (скорее всего были, но на всякий случай :) )

 

http://www.opencores.com/browse.cgi/filter..._microprocessor

 

1) tiny8

2) Z80

3) 8051

 

Был конечно. Или там нет ничего подходящего - или просмотрел. Разбирался с PIC16 - ядром- слишком тяжеловесное (и не ядро вовсе а ядро+ периферия и стек аппаратный, кажется). Тоже самое с AVR (аля AT1200 - не очень хочется из- за аппаратного стека и тоже проблеммы с компиляторос). Остальные процессорные ядра мне незнакомы (Z80 и 51 - в счёт не берутся ибо это не RISC - архитектура и поэтому тяжёлые).

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


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

Захотелось сделать "умную периферию" в ПЛИС (ну чтобы там мат. ожидание посчитала, вела обслуживание низкого уровня на какой-нибудь шине и тому подобное.. в общем неважно) Смысл такой чтобы в ПЛИС поместить микроконтроллерное ядрышко, прицепить к нему периферийку написать программку порядка пол килобайта кода.

Боюсь, что лучше PicoBlase'а по размерам и быстродействию Вам не найти. Разработчики из Xilinx очень хорошо потрудились над этим ядром и оптимизировали под свою архитектуру. Трудности с написанием программы на ассемблере, тем более 0.5кБ, никак не соизмеримы с трудностями по отладке не проверенных ядер.

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


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

Захотелось сделать "умную периферию" в ПЛИС (ну чтобы там мат. ожидание посчитала, вела обслуживание низкого уровня на какой-нибудь шине и тому подобное.. в общем неважно) Смысл такой ...

 

Если производительности на частотах ядра (45...50)MHz будет хватать, можно посмотреть на http://www.latticesemi.com/products/intell...$EFu$. Полагаю, более высоких частот ядра, достичь не удасться.

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


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

Последняя версия (2.4 на Verilog, про VHDL не знаю) ядра 8-ми разрядного контроллера от Lattice нормально работает, если не использовать прерывания. Я в прошлом году это обнаружил и написал багрепорт. Они не сразу, но в конце концов признали ошибку и обещали быстро исправить. Через полгода они сказали, что у них нет на исправление ресурсов и обещали откорректировать документацию. До сих пор ситуация не изменилась.

Правда это все автору вопроса не интересно, т.к. там есть только ассемблер.

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


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

Последняя версия (2.4 на Verilog, про VHDL не знаю) ядра 8-ми разрядного контроллера от Lattice нормально работает, если не использовать прерывания. Я в прошлом году это обнаружил и написал багрепорт. Они не сразу, но в конце концов признали ошибку и обещали быстро исправить. Через полгода они сказали, что у них нет на исправление ресурсов и обещали откорректировать документацию. До сих пор ситуация не изменилась.

Правда это все автору вопроса не интересно, т.к. там есть только ассемблер.

Посмотрел это ядро. Опять - с-компилятора в сети не нашел. Не вникал: стек у этого ядра

сработан в таком же стиле что и у PicoBlaze - макс. 8 урвней вложенности ?? или по нормальному?

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


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

http://www.fpgacpu.org/xsoc/index.html

 

Можете поподробнее описать. Свои комментарии. Проект кажется староватым и заброшенным...

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


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

Там есть С компилятор.

Какое значение имеет срок давности если оно работает?

 

ЗЫ: как вам уже и говорили - проще взять 51 с фтп и поставить его, он работает на 60-80МГц и имеет 4 такта на машинный цикл. Из средств разработки - любые стандартные.

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


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

Захотелось сделать "умную периферию" в ПЛИС (ну чтобы там мат. ожидание посчитала, вела обслуживание низкого уровня на какой-нибудь шине и тому подобное.. в общем неважно) Смысл такой чтобы в ПЛИС поместить микроконтроллерное ядрышко, прицепить к нему периферийку написать программку порядка пол килобайта кода...

Очень многократно обсуждалось. Коммерческого смысла не имеет. Разве что сгородить что-нить на остатках логики ФПГА от какой-то исконно ФПГАшной задачи. А так, обычный МК с подходящей периферией, будет куда дешевле и проще. Ну мож МАХ или Кулраннера рядом поставить придётся.

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


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

Очень многократно обсуждалось. Коммерческого смысла не имеет. Разве что сгородить что-нить на остатках логики ФПГА от какой-то исконно ФПГАшной задачи. А так, обычный МК с подходящей периферией, будет куда дешевле и проще. Ну мож МАХ или Кулраннера рядом поставить придётся.

Ну, мне кажется, весьма спорное утверждение. Есть такие виды переферии, которые просто не найти ни у каких микроконтроллеров, решающие весьма специфические задачи. Есть пара проектов, где почти вся главная функциональность повешена на несколько самописных переферийных модулей, а встраиваемое ядро выступает в роли координатора этих модулей + работа с sdram, flash и тому подобное. Это оказалось проще, чем писать координатора на верилоге и описывать конченый автомат на дофига состояний.

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


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

Ну, мне кажется, весьма спорное утверждение. Есть такие виды переферии, которые просто не найти ни у каких микроконтроллеров, решающие весьма специфические задачи. Есть пара проектов, где почти вся главная функциональность повешена на несколько самописных переферийных модулей, а встраиваемое ядро выступает в роли координатора этих модулей + работа с sdram, flash и тому подобное. Это оказалось проще, чем писать координатора на верилоге и описывать конченый автомат на дофига состояний.

Ну а я обо што? "...остатках логики ФПГА от какой-то исконно ФПГАшной задачи..."

Ставить ФПГА, чтобы на ней тольк реализовать некий МК общего назначения, не имеет экономицкого смысла. По любому, десятибаксовый Блэкфин о 800 мипс уделает любую МКшку, реализованную на дваццатибаксовой ФПГА. На МК-задаче, разумеется. Умышленно не считаю загрузочную память там и там. Так у него на борту ещё вагон периферии, которую в данную ФПГА ещё попробуй впихни.

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


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

Последняя версия (2.4 на Verilog, про VHDL не знаю) ядра 8-ми разрядного контроллера от Lattice нормально работает, если не использовать прерывания. Я в прошлом году это обнаружил и написал багрепорт. Они не сразу, но в конце концов признали ошибку и обещали быстро исправить. Через полгода они сказали, что у них нет на исправление ресурсов и обещали откорректировать документацию. До сих пор ситуация не изменилась.

[offtop]

а можно попросить Вас выложить описание бага, и если есть - wоrkaround, например, создав тему в этом разделе, посвящённую LatticeMico-8.

В свою очередь мог бы продолжить начинание (если у кого возникнет интерес), выложив версию, адаптированную к Xilinx Spartan-3 cемейству. (имхо, лишь изначальная заточенность под Lattice ограничивает число использующих LatticeMico-8)

[/offtop]

 

Есть такие виды переферии, которые просто не найти ни у каких микроконтроллеров, решающие весьма специфические задачи. Есть пара проектов, где почти вся главная функциональность повешена на несколько самописных переферийных модулей, а встраиваемое ядро выступает в роли координатора этих модулей + работа с sdram, flash и тому подобное. Это оказалось проще, чем писать координатора на верилоге и описывать конченый автомат на дофига состояний.

+100

очень правильные слова

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


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

Случайно наткнулся. Может поможет http://www.opencores.org/projects.cgi/web/light8080

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


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

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

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

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

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

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

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

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

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

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