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

Just now, Sverlo1 said:

FPGA MAX10 10M02

Маловата ПЛИС для AVR ядра.

Я пробовал обрезать свой AVR по системе команд, но в MAX 10 меньше 2195 LUT на ядро не получалось.

Вам лучше посмотреть в сторону risc16f84.

https://github.com/freecores/risc16f84

Он намного меньше AVR.

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


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

>> Маловата ПЛИС для AVR ядра.

>> Я пробовал обрезать свой AVR по системе команд, но в MAX 10 меньше 2195 LUT на ядро не получалось.

Значит готовая плата M02mini не пойдёт...   :(

 

>> Вам лучше посмотреть в сторону risc16f84.

Другая архитектура. Наработанное не используешь.

 

10M02DCV36C8G    $1.70     SRAM 10K   EPROM  10K  www.fpgamall.com/altera/10M02DCV36C8G

И это великолепное соотношение. Было бы.

 

Тогда придётся делать свою плату под:

10M04SCE144C8G   $6.86    SRAM 20K   EPROM 124K

куда 2195 LUT влезет запросто и без обрезаний (наверное).

 

Пошёл рисовать плату под QFP144.

Большое спасибо Вам за чёткий расклад!   :)

 

 Вот шкала цен на серию MAX10, и я "прикинул" что туда влезет.

image.thumb.png.7a5b80a66b84e7be9b7fab5773d318b4.png

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

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


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

 

1 hour ago, Sverlo1 said:

Пошёл рисовать плату под QFP144.

 Вот шкала цен на серию MAX10, и я "прикинул" что туда влезет.

 

А что мешает взять и скомпилировать тестовый проект перед тем, как бросаться проектировать плату? И удостовериться, что не только нужное вам ядро, но и нужная вам _периферия_ влезет туда? Как дети, ей-же-ей!

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


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

28 minutes ago, Raven said:

 

А что мешает взять и скомпилировать тестовый проект перед тем, как бросаться проектировать плату? И удостовериться, что не только нужное вам ядро, но и нужная вам _периферия_ влезет туда? Как дети, ей-же-ей!

Спасибо. Ничто не мешало. Проверили.   :)

Хватает любой МС из таблицы что я привёл. (кроме 10M02)

Всё что в QFP144 подходит. Небольшая возня с распиновкой, т.к. надо просматривать и сравнивать все таблицы под все МС. И с квартусом тоже немного надо повозиться.

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

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


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

1 hour ago, Sverlo1 said:

куда 2195 LUT влезет запросто и без обрезаний (наверное).

Это чисто ядро без периферии.

Полноценный UART еще примерно 300 LUT.

Я бы рекомендовал брать 10M08.

1 hour ago, Sverlo1 said:

Другая архитектура. Наработанное не используешь.

Так если на C писать, то какая разница?

Или у Вас ассемблер? :)

1 hour ago, Sverlo1 said:

Значит готовая плата M02mini не пойдёт...   :(

Из готовых можете посмотреть платы от Trenz Electronic (не реклама!).

https://shop.trenz-electronic.de/en/TEI0001-03-08-C8-MAX1000-IoT-Maker-Board-8kLE-8-MByte-RAM?c=467

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


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

>> Я бы рекомендовал брать 10M08.

Я и выбрал как самый достаточный и дешёвый под одно ядро 10M04SCE144, а далее в серии и поболее влезет, но это всё уже на готовом железе провериться.

10M04SCE144 есть по $10 если брать 25 штук, вероятно так и будет - мне больше и не надо будет.

Потом туда любой камень в 144 ноги влезет - на дальнейший рост! Постараюсь так развести плату.

 

>> Или у Вас ассемблер? :)

Да. Богохульство?   :aggressive:

 

AVR-ов стало не хватать, а ради повышения производительности менять ВСЁ и переходить "вот сюда или туда", ходить по граблям, ломать мозг над чужими заморочками - ЗАЧЕМ?

XXI век на дворе, и ресурсы можно уже создавать свои. Надеюсь на минимальное кол-во граблей - 10 лет опыта однако!!!   :boast:

 

>> Из готовых можете посмотреть платы от Trenz Electronic (не реклама!).

Да смотрю я на них, и облизываюсь!   :beee:

Но только это не наш метод!   22 евро врагам отдавать!   :big_boss:

Плату делаю "под ARDUINO2560", что получается оптимально по фактору - привычка уже.

Не совсем понятно что там ОНИ с ADC намудрили, и как цепи строить, но это ещё впереди.

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

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


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

2 hours ago, Sverlo1 said:

Да. Богохульство?

Да нет.

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

И то из-за того, что на процессор положили то, что не влезло в логику по причине выбора слишком маленькой ПЛИС.

Во всех остальных проектах было удобнее на C, т.к. небольшая потеря в производительности была абсолютно не критична.

2 hours ago, Sverlo1 said:

XXI век на дворе, и ресурсы можно уже создавать свои. Надеюсь на минимальное кол-во граблей - 10 лет опыта однако!!!

Сразу замечу, что периферия у меня своя - готовые драйвера от Arduino не подойдут.

В SPI, например, сделана двойная буферизация - позволяет слать байты вплотную друг к другу (было нужно для обхода бага в одном Ethernet SPI контроллере).

В UART добавлен отдельный сигнал для управления драйвером RS485.

Количество бит можно задавать от 1 до 9.

Время исполнения команд также отличается (в лучшую сторону).

Настройка прерываний тоже нестандартная. У меня они не по фиксированным адресам, а программируемые - экономия 2 тактов при входе в прерывание за счёт отсутствия команды rjmp для перехода с вектора прерывания на подпрограмму обработки прерывания. Т.е. адрес вектора прерывания настраивается сразу на адрес функции обработчика прерывания.

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


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

>> Во всех остальных проектах было удобнее на C, т.к. небольшая потеря в производительности была абсолютно не критична.

Для меня ASM - не приговор. Мне он нужен по факту, для выжимания ресурсов. И его мне хватает.   :hi:

>> готовые драйвера от Arduino не подойдут

Arduino ерунда, но код под "чистый" вариант, например, ATmega8 не получится?

Или пройдёт, если в программе не будут затронуты особенности версии - эти команды?

>> В SPI, например, сделана двойная буферизация - позволяет слать байты вплотную друг к другу (было нужно для обхода бага в одном Ethernet SPI контроллере).

SPI не всегда нужен. Но запрограммить я его смогу как обычный проц через обычный адаптер ?

>> В UART добавлен отдельный сигнал для управления драйвером RS485.

Отлично! Для 485-го самое то! При "обычной" работе, например как RS232 <-> IBM он не мешает?

>> Настройка прерываний тоже нестандартная. У меня они не по фиксированным адресам, а программируемые - экономия 2 тактов при входе в прерывание

>> за счёт отсутствия команды rjmp для перехода с вектора прерывания на подпрограмму обработки прерывания. Т.е. адрес вектора прерывания настраивается сразу на адрес функции обработчика прерывания.

В стандартные адреса можно же будет прописать свои векторы?

А в последующем легко можно учесть это преимущество!!!

 

Вообще-то я категорически "ЗА" улучшение архитектуры, когда это делает опытный пользователь.   :bye:

Что позволит из камня выжать особенности его структуры, по максимуму заюзать SRAM и EPROM.

 

Так и помечтать можно немного:      :rtfm:

- Ещё бы в прерывания свои банки регистров, типа, как это было в Z80.

- В окне команд AVR есть окна Reserved штук пять, это лечится?

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


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

53 minutes ago, Sverlo1 said:

Arduino ерунда, но код под "чистый" вариант, например, ATmega8 не получится?

Или пройдёт, если в программе не будут затронуты особенности версии - эти команды?

Команды как раз поддержаны все необходимые.

Различия в периферии.

Вообще этот проект это именно ядро.

Периферию каждый пользователь может делать свою, какая ему требуется.

Нет смысла повторять оригинальную периферию, когда можно сделать ее "под задачу" и упростить прошивку CPU.

54 minutes ago, Sverlo1 said:

SPI не всегда нужен. Но запрограммить я его смогу как обычный проц через обычный адаптер ?

Вы имеете ввиду прошивку CPU?

Нет.

Прошивка добавляется в образ памяти команд средствами Quartus.

Отдельный программатор для AVR не нужен.

Все шьется через USB-Blaster.

57 minutes ago, Sverlo1 said:

Отлично! Для 485-го самое то! При "обычной" работе, например как RS232 <-> IBM он не мешает?

Конечно не мешает. Это просто отдельный сигнал индицирующий, что передатчик в данный момент активен.

58 minutes ago, Sverlo1 said:

В стандартные адреса можно же будет прописать свои векторы?

А в последующем легко можно учесть это преимущество!!!

Можно.

1 hour ago, Sverlo1 said:

по максимуму заюзать SRAM и EPROM

EPROM в ПЛИС нет.

Только FLASH.

И доступ к ней очень сильно различается в зависимости от выбранного семейства ПЛИС.

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


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

Спасибо за подробный ответ. Общая картина понятна.
Мне надо сначала потренироваться на кроликах, чтоб задавать меньше вопросов.   :to_become_senile:

Для этого мне проще вернуться в начало.

>> Малая занимаемая площадь на кристалле (ядро ~2100 LE).
>> GPIO интерфейс.

Прочитав это, и уточнив что  1 км = 1024 метра  в камне 10M02 всего 2304 LE.

>> Я пробовал обрезать свой AVR по системе команд, но в MAX 10 меньше 2195 LE на ядро не получалось.

В 100 LUT получится два восьмибитных GPIO, и таймер 8 бит?


Тогда готовая плата M02mini пойдёт мне для старта. Схема платы M02mini 

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


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

33 minutes ago, Sverlo1 said:

Прочитав это, и уточнив что  1 км = 1024 метра  в камне 10M02 всего 2304 LE.

>> Я пробовал обрезать свой AVR по системе команд, но в MAX 10 меньше 2195 LE на ядро не получалось.

В 100 LUT получится два восьмибитных GPIO, и таймер 8 бит?


Тогда готовая плата M02mini пойдёт мне для старта. Схема платы M02mini 

Не пойдет.

2195 это только ядро с обрезанными командами.

Еще же нужен мультиплексор шины данных.

Он тоже место занимает.

И запас на разводку в зависимости от настроек.

Вот Вам скриншот для понимания масштаба проблемы.

2749 при оптимизации по тактовой частоте.

Это с полным ядром где из периферии только калькулятор CRC и сторожевой таймер.

Снимок экрана от 2020-11-15 01-35-19.png

Обратите внимание, что при оптимизации по скорости ядро распухло до 2358 LUT.

Поэтому я и говорю, что запас по логической емкости нужен как минимум 30-40% от оценочного значения.

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


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

39 minutes ago, BSACPLD said:

Не пойдет.

2195 это только ядро с обрезанными командами.

А-а-а, вот оно как... В 1км оказалось больше чем 1024м.    :(

Ну тогда делаю свою плату для QFP144, а это с месяц.

 

А пока закуплю M02mini для тренировок.

 

Спасибо. Было оч позновательно.   :)

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


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

57 minutes ago, Sverlo1 said:

Ну тогда делаю свою плату для QFP144, а это с месяц.

Еще важный момент.

Нужно брать ПЛИС с маркировкой SAE.

С SCE просто так не получится - у них нет возможности инициализировать RAM начальными значениями (прошивка).

Порт для динамической смены прошивки в моем AVR есть, но придется добавлять логику для работы с UFM (перекачивание прошивки из UFM в RAM).

А она тоже место съест.

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


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

On 11/14/2020 at 6:39 PM, Sverlo1 said:

>> Маловата ПЛИС для AVR ядра.

>> Я пробовал обрезать свой AVR по системе команд, но в MAX 10 меньше 2195 LUT на ядро не получалось.

Значит готовая плата M02mini не пойдёт...   :(

 

 

Проект для M02mini: Процессор языка Forth в FPGA https://marsohod.org/projects/proekt-m02mini/410-forth-j1

Проект для M02mini: Простейший интерпретатор Forth в плате M02mini https://marsohod.org/411-prostejshij-interpretator-forth-v-plate-m02mini

 

Процессор Forth J1 в FPGA плате M02mini

 

Forth CPU. Что это такое? (Часть 1) habr.com/ru/post/133338
Forth CPU. Что это такое? (Часть 2) habr.com/ru/post/133380

 

https://wiki.ros.org/wge100_camera_firmware 

 

P.S. J1A есть и порт для плат  Lattice HX1K and HX8K и  http://mecrisp.sourceforge.net/

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


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

14.11.2020 в 01:29, Sverlo1 сказал:

Прописать туда AVR любой, какой влезет.

Нужно только ядро, из периферии порты и таймер T0 (8бит).

И, если получится, USART.

Если не секрет, в чем смысл? Тем более убедились, что в дешевую плиску не влезет, а только в 6и баксовую. Готовый АВР, типа тиньки 2313 с 1м таймером и 1м уартом стоит три копейки...

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


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

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

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

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

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

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

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

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

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

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