|
|
  |
CPU или конечный автомат, что лучше |
|
|
|
May 10 2012, 09:08
|
Частый гость
 
Группа: Участник
Сообщений: 101
Регистрация: 4-05-07
Пользователь №: 27 512

|
Уважаемые коллеги, извините что не мог на праздники участвовать в дискуссии. Был приятно удивлен таким участием в моей проблемме. Несколько месяцев назад делал контроллер под видео сенсор. Уже все работает в железе Сейчас впихиваем все это в форм фактор. Там все было гораздо проще. Было пять команд по УАРТу: 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 - May 10 2012, 09:11
|
|
|
|
|
May 10 2012, 16:37
|
Знающий
   
Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650

|
Цитата(iosifk @ May 9 2012, 13:58)  Я для себя все это прошел лет 10 назад. И все это описал, как сумел... Потому здесь заниматься этим ради полусотни посетителей и для непонятной цели не буду. Нет времени и сил. А Вам предлагаю следующее. Если Вы действительно можете и хотите показать, что Вы что-то способны, то напишите об этом статью, а я, как член редколлегии Кит, помогу Вам ее напечатать. К примеру, свяжите в одну тему CPU в ПЛИС и автоматное программирование от Шалыто... Вот это и будет серьезный подход. И тогда 6 тыс. читателей КиТ Вам скажут спасибо. ТС тоже может поучаствовать, т.к. он может сформулировать конкретную задачу и для нее сделать автомат, например... А я проверю текст и подскажу, что и где надо будет добавить или изменить. Почту и личку мою знаете. Так что предложение Вам сделано и опыт в таких делах у меня есть. Да и "понятые" тоже здесь присутствуют, подтвердят, что предложение реальное... Думайте. А все кто хочет присоединиться к статье - милости просим... Удачи всем... Я бы не хотел заниматься написанием статьи по разным причинам. 1. Время. Сейчас мне его адски не хватает, а статья - это серьёзно, много времени потратить нужно. 2. Не считаю себя достаточно компетентным в эттом вопросе, развивать тему влубь - это опять же время, а его сейчас просто нет. Потратить пару часов на написание небольшого примера - на это я пойти готов. Потратить несколько дней на написание статьи - увы, слишком большая роскошь...
|
|
|
|
|
May 15 2012, 07:45
|
Частый гость
 
Группа: Участник
Сообщений: 101
Регистрация: 4-05-07
Пользователь №: 27 512

|
Цитата(SFx @ May 7 2012, 00:38)  если UART на ~4 команд до FSM. Fmax = Highest если UART на ~50 команд, то picoblaze. Fmax = High, но требуется bram иначе что то более тяжелое. Fmax = Medium, и не один bram а то и внешние микросхемы памяти. Мне удалось анимировать пример с http://www.echelonembedded.com/fpgaresources/ для платы NEXYS2 на своей плате. Программа ПикоБлэйза работает с УАРТом нормально. Но адр.шина этого проца 8. То есть, только 256 инструкций? Или как-то через порты и этот ваш brяm можно увеличить размер программы?
|
|
|
|
|
May 15 2012, 07:54
|
Участник

Группа: Участник
Сообщений: 63
Регистрация: 14-12-11
Пользователь №: 68 851

|
Цитата(anatolich @ May 15 2012, 11:45)  Мне удалось анимировать пример с http://www.echelonembedded.com/fpgaresources/ для платы NEXYS2 на своей плате. Программа ПикоБлэйза работает с УАРТом нормально. Но адр.шина этого проца 8. То есть, только 256 инструкций? Или как-то через порты и этот ваш brяm можно увеличить размер программы? Шина адреса памяти команд у пикоблейза(того который KCPSM3) 10 разрядов, так что 1024 инструкции.
|
|
|
|
|
May 15 2012, 09:24
|

Местный
  
Группа: Свой
Сообщений: 426
Регистрация: 23-02-12
Пользователь №: 70 424

|
Хочу поделится своими соображениями когда что лутше.... Сначала договоримся, что всё должно быть лицензионное.
Учтём следующее:
1) Процессор требует порядка ~100 флопов + ROM + RAM Если FSM требует меньше площади - она лутше. Если разнообразие задач большое, то понадобиться много FSM-мов, а значит и площади. 2) Процессор требует лицензии, компилятора (минимум ASM). без компилятора - не стоит тратить время (дебаг "не С кода" очень затруднён). Соотв. "самопальные процессоры" - себе дороже (кто сделает компилятор?). 3) В ASIC вставлять память - создавать проблему с тестированием, масками прошивки, дебагом и т.д.
Таким образом, на практике, процессор надо использовать везде где: -он успевает -у Вас есть лицензия и компиляторы, а также IP памятей -много разнообразных задач, особбенно с логикой и вычислениями -предполагаемый розмер FSM соизмерим с процессором
|
|
|
|
|
May 15 2012, 11:38
|

Местный
  
Группа: Свой
Сообщений: 426
Регистрация: 23-02-12
Пользователь №: 70 424

|
Цитата(anatolich @ May 15 2012, 13:57)  ...Тем более, что ПикоБлэйз is free.... А фиг там: "The license of the cores allows their free use, albeit only on Xilinx devices" Оно фрии для Xilinx и только. В Альтеру нельзя, ASIC нельзя...... ----------------- Кстати, кто знает конфигурируемый процессор (8-16 бит) с дебагером, бесплатный и с GCC компилятором?
|
|
|
|
|
May 15 2012, 11:59
|
Частый гость
 
Группа: Участник
Сообщений: 101
Регистрация: 4-05-07
Пользователь №: 27 512

|
Вот хорошая дискусия по поводу >1024 инструкций http://forums.xilinx.com/t5/PicoBlaze/Pico...ctions/td-p/710only on Xilinx devices наверное потому, что kcpsm3.vhd написан на встроенных компонентах типа LUT4, MUXCY а не по злоби?
|
|
|
|
|
May 15 2012, 12:12
|

Местный
  
Группа: Свой
Сообщений: 426
Регистрация: 23-02-12
Пользователь №: 70 424

|
Цитата(anatolich @ May 15 2012, 14:59)  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.
|
|
|
|
|
May 15 2012, 12:27
|
Участник

Группа: Участник
Сообщений: 63
Регистрация: 14-12-11
Пользователь №: 68 851

|
Цитата(Torpeda @ May 15 2012, 16:12)  Злоба тут не при чем)) Просто бонус для пользователей их и только их плис. Бизнес.
|
|
|
|
|
May 16 2012, 13:16
|

Местный
  
Группа: Свой
Сообщений: 426
Регистрация: 23-02-12
Пользователь №: 70 424

|
Цитата(Postoroniy_V @ May 15 2012, 22:04)  похоже это действительно бесплатный процессор с GCC тулзами (включая С компилятор). Спасибо за подсказку. Цитата(des00 @ May 16 2012, 09:45)  так то оно так, но народ переписал VHDL пикоблейз на верилог под фришной лицензией, ну а то что он совместим с пикоблейзвым асмом (от хилых и не только), то так получилось %) А Xilinx не возражает против такого клонирования? Всётаки система команд может быть запатентована....
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|