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

CPU или конечный автомат

Уважаемые коллеги,

извините что не мог на праздники участвовать в дискуссии. Был приятно удивлен

таким участием в моей проблемме.

Несколько месяцев назад делал контроллер под видео сенсор. Уже все работает в железе

Сейчас впихиваем все это в форм фактор.

Там все было гораздо проще. Было пять команд по УАРТу: Reset, Read/Write Memory, Get/Set Register. (типа 001, 010, 011, 100, 101)

Используя http://www.gaisler.com/doc/vhdl2proc.pdf я написал простой командник и очень упрощенный DMA

 

Теперь мне нужно два сенсора подцепить к одному хосту. У него уже утвержденный список телеграмм (10 штук)

Телеграмма имеет СТАРТ, КОНЕЦ, ДЛИНА, ДАННЫЕ (начинаются с ID), КОНТРОЛЬНАЯ_СУММА. Спец символы дополняются префиксом

Например 04h совпадает с ESC, поэтому заменяется на 040Сh

 

Задача у меня простая(я пока все остальное отбросил для нулевого цикла), от двух сенсоров нужно послать одну общую телеграмму, потомучто хост может работать только с одним сенсором. В основном это логическое умножение. Если одни сенсор отвечает Ок, а второй не Ок, то отправить в телеграмме не Ок, соответственно пересчитав контрольную сумму и проследив, что бы символы, случайно совпадающие с спец символами были заменены на два байта и соответственно пересчитана контрольная сумма и длина.

 

Сделать для этого машину состояний мне уже не очень сложно. (Я начал работать в этой области с полного нуля год назад сразу над реальным проектом, читал гуглил и тут же лабал. Сейчас хочется во второй итерации делать все грамотно)

Поэтому начал читать iosifk статьи, записался на осень на курсы по НИОСУ в ЭФО в Политехе. Накачал варианты МикроБлэйза с ОпенСоурса. Так что месяца через два у меня будет оба варианта - МашинаСостояний и ЦПУ. Отпишусь.

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

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

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


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

Я для себя все это прошел лет 10 назад. И все это описал, как сумел... Потому здесь заниматься этим ради полусотни посетителей и для непонятной цели не буду. Нет времени и сил.

А Вам предлагаю следующее.

Если Вы действительно можете и хотите показать, что Вы что-то способны, то напишите об этом статью, а я, как член редколлегии Кит, помогу Вам ее напечатать. К примеру, свяжите в одну тему CPU в ПЛИС и автоматное программирование от Шалыто... Вот это и будет серьезный подход. И тогда 6 тыс. читателей КиТ Вам скажут спасибо. ТС тоже может поучаствовать, т.к. он может сформулировать конкретную задачу и для нее сделать автомат, например... А я проверю текст и подскажу, что и где надо будет добавить или изменить. Почту и личку мою знаете. Так что предложение Вам сделано и опыт в таких делах у меня есть. Да и "понятые" тоже здесь присутствуют, подтвердят, что предложение реальное...

Думайте.

А все кто хочет присоединиться к статье - милости просим...

Удачи всем...

Я бы не хотел заниматься написанием статьи по разным причинам.

1. Время. Сейчас мне его адски не хватает, а статья - это серьёзно, много времени потратить нужно.

2. Не считаю себя достаточно компетентным в эттом вопросе, развивать тему влубь - это опять же время, а его сейчас просто нет.

Потратить пару часов на написание небольшого примера - на это я пойти готов. Потратить несколько дней на написание статьи - увы, слишком большая роскошь...

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


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

если UART на ~4 команд до FSM. Fmax = Highest

если UART на ~50 команд, то picoblaze. Fmax = High, но требуется bram

иначе что то более тяжелое. Fmax = Medium, и не один bram а то и внешние микросхемы памяти.

 

Мне удалось анимировать пример с http://www.echelonembedded.com/fpgaresources/ для платы NEXYS2

на своей плате. Программа ПикоБлэйза работает с УАРТом нормально.

Но адр.шина этого проца 8. То есть, только 256 инструкций?

Или как-то через порты и этот ваш brяm можно увеличить размер программы?

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


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

Мне удалось анимировать пример с http://www.echelonembedded.com/fpgaresources/ для платы NEXYS2

на своей плате. Программа ПикоБлэйза работает с УАРТом нормально.

Но адр.шина этого проца 8. То есть, только 256 инструкций?

Или как-то через порты и этот ваш brяm можно увеличить размер программы?

Шина адреса памяти команд у пикоблейза(того который KCPSM3) 10 разрядов, так что 1024 инструкции.

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


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

Хорошо!

А если не влезает, то наверное я должен через некий порт переключать банки

и менять РС?

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


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

Хочу поделится своими соображениями когда что лутше....

Сначала договоримся, что всё должно быть лицензионное.

 

Учтём следующее:

 

1) Процессор требует порядка ~100 флопов + ROM + RAM

Если FSM требует меньше площади - она лутше.

Если разнообразие задач большое, то понадобиться много FSM-мов, а значит и площади.

2) Процессор требует лицензии, компилятора (минимум ASM).

без компилятора - не стоит тратить время (дебаг "не С кода" очень затруднён).

Соотв. "самопальные процессоры" - себе дороже (кто сделает компилятор?).

3) В ASIC вставлять память - создавать проблему с тестированием, масками прошивки, дебагом и т.д.

 

Таким образом, на практике, процессор надо использовать везде где:

-он успевает

-у Вас есть лицензия и компиляторы, а также IP памятей

-много разнообразных задач, особбенно с логикой и вычислениями

-предполагаемый розмер FSM соизмерим с процессором

 

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


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

Совершенно согласен.

Тем более, что ПикоБлэйз is free, и о нем достаточно много информации.

Только пережевать ее чтобы, нужно много времени.

Весь день сегодня читаю ug129.pdf но правду о программе более 1024 инструкций так и не нашел

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


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

...Тем более, что ПикоБлэйз is free....

А фиг там: "The license of the cores allows their free use, albeit only on Xilinx devices"

Оно фрии для Xilinx и только. В Альтеру нельзя, ASIC нельзя......

 

-----------------

Кстати, кто знает конфигурируемый процессор (8-16 бит) с дебагером, бесплатный и с GCC компилятором?

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


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

Вот хорошая дискусия по поводу >1024 инструкций

http://forums.xilinx.com/t5/PicoBlaze/Pico...ctions/td-p/710

 

only on Xilinx devices

наверное потому, что kcpsm3.vhd написан на встроенных компонентах типа LUT4, MUXCY

а не по злоби?

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


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

only on Xilinx devices

наверное потому, что kcpsm3.vhd написан на встроенных компонентах типа LUT4, MUXCY

а не по злоби?

Таки по жлоби....

Вот на Xilinx форуме нашёл (http://forums.xilinx.com/xlnx/board/crawl_...;message.id=665):

As Barrie points out, the picoBlaze IP is not well suited to a standard cell implementation (it is intentionally intended to be an optimal mcro-controller in the Xilinx architecture), and it is also a prohibited use to implement it in anything other than Xilinx components under the quoted agreement.

 

Of course, everything is negotiable (for the right $), so one could obtain a license to use it elsewhere, but I am unaware of anyone negociating, paying for, and obtaining one.

If you plan on going to an ASIC, you would probably be better off to choose another controller.

 

Good luck,

Austin Lesea

Principal Engineer

Xilinx San Jose

Ну и цитата с "Xilinx Reference Design License"

Access to the Designs is provided only to purchasers of Xilinx programmable logic devices or

Xilinx HardWire™ devices for the purposes set forth herein.

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


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

таки по злоби....

Вот на Xilinx форуме нашёл (http://forums.xilinx.com/xlnx/board/crawl_...;message.id=665):

Злоба тут не при чем)) Просто бонус для пользователей их и только их плис. Бизнес.

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


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

...

Кстати, кто знает конфигурируемый процессор (8-16 бит) с дебагером, бесплатный и с GCC компилятором?

32

http://opencores.org/project,zpu

 

The ZPU has a FreeBSD license for the HDL and GPL for the rest. This allows deployments to implement any version of the ZPU they want without running into commercial problems, but if improvements are done to the architecture as such, then they need to be contributed back.

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


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

Таки по жлоби....

так то оно так, но народ переписал VHDL пикоблейз на верилог под фришной лицензией, ну а то что он совместим с пикоблейзвым асмом (от хилых и не только), то так получилось %)

 

 

В общем, как это ни банально, читайте вики http://ru.wikipedia.org/wiki/PicoBlaze ;)

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


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

похоже это действительно бесплатный процессор с GCC тулзами (включая С компилятор). Спасибо за подсказку.

 

 

так то оно так, но народ переписал VHDL пикоблейз на верилог под фришной лицензией, ну а то что он совместим с пикоблейзвым асмом (от хилых и не только), то так получилось %)

А Xilinx не возражает против такого клонирования?

Всётаки система команд может быть запатентована....

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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