реклама на сайте
подробности

 
 
> CPU или конечный автомат, что лучше
anatolich
сообщение May 5 2012, 09:53
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 101
Регистрация: 4-05-07
Пользователь №: 27 512



Я по uart получаю пакеты данных - некие команды с параметрами.
Задача простая, мне нужно команду разобрать и в зависимости от
команды и ее параметров перенаправить ее туда или туда дальше на другие UARTы.
Может иногда поменяв параметр. Что-то типа роутера.

Из соображений масштабируемости и пр и пр наверное лучше
навернуть небольшой CPU в мой Xilinx. Но тогда понадобится дополнительный
тулчейн и время на осваивание этой технологии.

Другой вариант - просто парсить команды c параметрами CASEом на родном VHDL

Что лучше?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Bad0512
сообщение May 5 2012, 14:19
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650



Цитата(anatolich @ May 5 2012, 16:53) *
Я по uart получаю пакеты данных - некие команды с параметрами.
Задача простая, мне нужно команду разобрать и в зависимости от
команды и ее параметров перенаправить ее туда или туда дальше на другие UARTы.
Может иногда поменяв параметр. Что-то типа роутера.

Из соображений масштабируемости и пр и пр наверное лучше
навернуть небольшой CPU в мой Xilinx. Но тогда понадобится дополнительный
тулчейн и время на осваивание этой технологии.

Другой вариант - просто парсить команды c параметрами CASEом на родном VHDL

Что лучше?

А в чём собственно разница между CPU и FSM?
Любой процессор в конце концов и есть конечный автомат. Вопрос лишь в том что лучше - написать свою машинку, потом долго и нудно её отлаживать, либо взять готовый маааленький проц, написать для него программу, и потом её долго и нудно отлаживать. Каждый подход имеет свои плюсы минусы. Если спешить особо некуда (UART - штука медленная) и лишних несколько сотен плиток не жалко, то проще взять что-то типа пикоблейза. Но это не избавит вас от процесса отладки.
Go to the top of the page
 
+Quote Post
iosifk
сообщение May 5 2012, 17:39
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Bad0512 @ May 5 2012, 18:19) *
А в чём собственно разница между CPU и FSM?
.... Но это не избавит вас от процесса отладки.


Как я уже писал в статьях есть небольшая разница. Процессор отлаживается "как железо" только один раз. И потом, при модификации программ он, "как железо" всегда работает... А вот автомат при добавлении каждого состояния или условия надо "как железо" отлаживать каждый раз... Ибо комбинационная логика при добавлении каждого состояния или условия будет увеличиваться и в конце концов может всю схему затормозить... Мне было легче сделать программный симулятор и ассемблер, чем заниматься отладкой автомата в пару сотен состояний...
И, кстати, если делать свой простенький процессор, то его система команд выбирается так, что таких команд надо в 2-4 раза меньше, чем у стандартного...
Читайте, все об этом написано...
удачи!


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Bad0512
сообщение May 6 2012, 03:06
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650



Цитата(iosifk @ May 6 2012, 00:39) *
Как я уже писал в статьях есть небольшая разница. Процессор отлаживается "как железо" только один раз. И потом, при модификации программ он, "как железо" всегда работает...

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

Цитата(iosifk @ May 6 2012, 00:39) *
А вот автомат при добавлении каждого состояния или условия надо "как железо" отлаживать каждый раз... Ибо комбинационная логика при добавлении каждого состояния или условия будет увеличиваться и в конце концов может всю схему затормозить...

А вот тут чушь полную пишите. Никто никого не может "затормозить". Есть понятие синхронного дизайна. И если правильно написаны временные ограничения, и дизайн тоже написан в синхронном стиле, без асинхронщины, без латчей, без gated clocks - то этот дизайн либо укладывается в ограничения, либо нет. Во втором случае он просто не должен работать.А если тайминги все выполняются - всё должно работать как задумано.И количество комбинаторики тут не определящий фактор.В тяжёлых случаях можно для ускорения сделать автомат на встроенной памяти.

Цитата(iosifk @ May 6 2012, 00:39) *
Мне было легче сделать программный симулятор и ассемблер, чем заниматься отладкой автомата в пару сотен состояний...
И, кстати, если делать свой простенький процессор, то его система команд выбирается так, что таких команд надо в 2-4 раза меньше, чем у стандартного...

Всё зависит от задачи.Урезать систему команд готового процессора (например того же пикоблейза) ради мизерной экономии ресруса смысла не вижу.А если учесть, что после этих изменений вам придётся переписать компилятор (он-то не знает, что половину команд выкинули), то сложность и длительность этой задачи сразу ставят её в класс научно-познавательных, т.е. "довольно интересно, сложно, долго, но практически не применимо".

Цитата(iosifk @ May 6 2012, 00:39) *
Читайте, все об этом написано...
удачи!

Если вы опять (как обычно) намекаете на курс ваших лекций, то извините, описание Кена Чапмана на пикоблейз всё-таки получше написано. Ну это естественно если нет проблем с английским. Если есть такие проблемы - тогда по-моему вообще в нашей индустрии делать нечего, канавы копать надо идти, больше пользы будет.
Go to the top of the page
 
+Quote Post
iosifk
сообщение May 6 2012, 13:40
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Bad0512 @ May 6 2012, 07:06) *
А вот тут чушь полную пишите....

Смотрите внимательнее на то, как вы высказываетесь...
Высказываетесь вы грубо, а простых вещей не понимаете, потому как сами процессоры не делали....
Проект синхронный - это всем понятно...
Вот только дальше все наоборот. "Берем процессор Кена"... Постойте, для него же лицензия нужна! А она не у всех есть... Вы оплатите лицензию для ТС?
Далее... Только ненормальный будет заниматься "урезанием" стандартного процессора... И это тоже обсуждать бессмысленно. Я же написал, что я делал для своей задачи специализированный микроконтроллер, со специализированной системой команд... И именно это дает выигрыш на конкретной задаче...
И далее... Компилятор никогда не будет перекладывать проект по другому, если в проекте поменялся только файл инициализации памяти... Вся отладка программ выполняется в "программных" симуляторах и в Моделсиме.
МоделСим тоже не компилит проект, если ему дамп памяти подгружать из текстового файла. Просто "сброс-пуск"... Так что для хорошего проекта экономия времени получается приличная... А отладка процессора в железе несравнимо проще отладки автомата... На прошлой работе мои два процессора заменили автомат с 206 срстояниями... А ведь есть состояния в которые "трудно" попасть, например аппаратные сбои в приемных данных... Скажем сделать генератор пакетов с неправильной CRC и смотреть на обработку этих пакетов...
Для микропроцессора всегда можно определить максимальную тактовую частоту и она при изменении софта увеличиваться не будет... А с автоматом - при увеличении состояний - будет... А потому нельзя заранее заложиться на частоту, близкую у пределу...

Что касается моих статей и вашего к ним отношения, то это статистика. Кому-то нравится, кому-то - нет... И эта самая статистика показывает, что таких как вы - мало... Следовательно, этим высказыванием можно пренебречь... Увы!

Так что еще раз повторюсь, каждый отвечающий представляет задачу по-своему. Для кого-то встроенный процессор - это то, сто обрабатывает сложные протоколы. Тогда тут нужен процессор, имеющий компилятор С. Для меня процессор - это обработка несложного протокола приема-передачи данных из периферии. Тут достаточно ассемблера и я показал, как это просто сделать...
Выбор за ТС. Желаю ему удачи и дальнейшая дискуссия здесь мне не интересна...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- anatolich   CPU или конечный автомат   May 5 2012, 09:53
- - iosifk   Цитата(anatolich @ May 5 2012, 13:53) ......   May 5 2012, 11:59
- - des00   picoblaze - time to study is less that a day   May 5 2012, 12:13
- - Джеймс   Цитата(anatolich @ May 5 2012, 13:53) нав...   May 5 2012, 12:29
|- - alexPec   Цитата(Джеймс @ May 5 2012, 16:29) Из пуш...   May 5 2012, 13:11
|- - des00   Цитата(iosifk @ May 6 2012, 08:40) Вот то...   May 6 2012, 16:24
|- - Bad0512   Цитата(iosifk @ May 6 2012, 20:40) Смотри...   May 7 2012, 17:52
|- - iosifk   Цитата(Bad0512 @ May 7 2012, 21:52) ...В ...   May 9 2012, 06:58
|- - Bad0512   Цитата(iosifk @ May 9 2012, 13:58) Я для ...   May 10 2012, 16:37
- - Mad_max   Выскажу свое мнение. Резких высказываний на форум...   May 6 2012, 18:26
- - SFx   если UART на ~4 команд до FSM. Fmax = Highest ес...   May 6 2012, 20:38
|- - anatolich   Цитата(SFx @ May 7 2012, 00:38) если UART...   May 15 2012, 07:45
|- - Barktail   Цитата(anatolich @ May 15 2012, 11:45) Мн...   May 15 2012, 07:54
- - Leka   Вообще-то полезно решать иногда несложные задачи ...   May 10 2012, 06:27
- - anatolich   Уважаемые коллеги, извините что не мог на праздник...   May 10 2012, 09:08
- - anatolich   Хорошо! А если не влезает, то наверное я долже...   May 15 2012, 08:40
- - Torpeda   Хочу поделится своими соображениями когда что лутш...   May 15 2012, 09:24
- - anatolich   Совершенно согласен. Тем более, что ПикоБлэйз is f...   May 15 2012, 10:57
|- - Torpeda   Цитата(anatolich @ May 15 2012, 13:57) .....   May 15 2012, 11:38
|- - Postoroniy_V   Цитата(Torpeda @ May 15 2012, 20:38) ... ...   May 15 2012, 19:04
|- - Torpeda   Цитата(Postoroniy_V @ May 15 2012, 22:04)...   May 16 2012, 13:16
|- - Leka   Цитата(Torpeda @ May 16 2012, 17:16) похо...   May 16 2012, 13:33
|- - Torpeda   Цитата(Leka @ May 16 2012, 16:33) Это мед...   May 16 2012, 13:52
- - anatolich   Вот хорошая дискусия по поводу >1024 инструкций...   May 15 2012, 11:59
|- - Torpeda   Цитата(anatolich @ May 15 2012, 14:59) on...   May 15 2012, 12:12
|- - Barktail   Цитата(Torpeda @ May 15 2012, 16:12) таки...   May 15 2012, 12:27
|- - des00   Цитата(Torpeda @ May 15 2012, 06:12) Таки...   May 16 2012, 06:45
|- - Torpeda   Цитата(des00 @ May 16 2012, 09:45) так то...   May 16 2012, 16:27
|- - des00   Цитата(Torpeda @ May 16 2012, 11:27) Вот ...   May 16 2012, 16:55
||- - Torpeda   Цитата(des00 @ May 16 2012, 19:55) переве...   May 17 2012, 07:48
||- - Bad0512   Цитата(Torpeda @ May 17 2012, 14:48) То ч...   May 18 2012, 10:43
||- - alexadmin   Цитата(Bad0512 @ May 18 2012, 14:43) Я не...   May 18 2012, 11:39
||- - Bad0512   Цитата(alexadmin @ May 18 2012, 18:39) От...   May 19 2012, 05:24
|- - ReAl   Цитата(Torpeda @ May 16 2012, 19:27) Вот ...   May 19 2012, 08:06
- - anatolich   И по сравнению с ниос Альтеры, не плохой бонус.   May 15 2012, 13:26
- - SpyBot   Подскажите, пожалуйста, почему как альтернативу пр...   Jun 3 2012, 16:23
- - Victor®   Цитата(SpyBot @ Jun 3 2012, 19:23) Но вед...   Jun 4 2012, 12:15
- - Serhiy_UA   Хотел бы добавить. Конечные автоматы (КА) бывают с...   Jun 5 2012, 05:27
- - Джеймс   Цитата(Victor® @ Jun 4 2012, 16:15) Не фа...   Jun 5 2012, 11:45


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 22:06
Рейтинг@Mail.ru


Страница сгенерированна за 0.01548 секунд с 7
ELECTRONIX ©2004-2016