|
CPU или конечный автомат, что лучше |
|
|
|
 |
Ответов
|
May 5 2012, 14:19
|
Знающий
   
Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650

|
Цитата(anatolich @ May 5 2012, 16:53)  Я по uart получаю пакеты данных - некие команды с параметрами. Задача простая, мне нужно команду разобрать и в зависимости от команды и ее параметров перенаправить ее туда или туда дальше на другие UARTы. Может иногда поменяв параметр. Что-то типа роутера.
Из соображений масштабируемости и пр и пр наверное лучше навернуть небольшой CPU в мой Xilinx. Но тогда понадобится дополнительный тулчейн и время на осваивание этой технологии.
Другой вариант - просто парсить команды c параметрами CASEом на родном VHDL
Что лучше? А в чём собственно разница между CPU и FSM? Любой процессор в конце концов и есть конечный автомат. Вопрос лишь в том что лучше - написать свою машинку, потом долго и нудно её отлаживать, либо взять готовый маааленький проц, написать для него программу, и потом её долго и нудно отлаживать. Каждый подход имеет свои плюсы минусы. Если спешить особо некуда (UART - штука медленная) и лишних несколько сотен плиток не жалко, то проще взять что-то типа пикоблейза. Но это не избавит вас от процесса отладки.
|
|
|
|
|
May 5 2012, 17:39
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Цитата(Bad0512 @ May 5 2012, 18:19)  А в чём собственно разница между CPU и FSM? .... Но это не избавит вас от процесса отладки. Как я уже писал в статьях есть небольшая разница. Процессор отлаживается "как железо" только один раз. И потом, при модификации программ он, "как железо" всегда работает... А вот автомат при добавлении каждого состояния или условия надо "как железо" отлаживать каждый раз... Ибо комбинационная логика при добавлении каждого состояния или условия будет увеличиваться и в конце концов может всю схему затормозить... Мне было легче сделать программный симулятор и ассемблер, чем заниматься отладкой автомата в пару сотен состояний... И, кстати, если делать свой простенький процессор, то его система команд выбирается так, что таких команд надо в 2-4 раза меньше, чем у стандартного... Читайте, все об этом написано... удачи!
--------------------
www.iosifk.narod.ru
|
|
|
|
|
May 6 2012, 03:06
|
Знающий
   
Группа: Свой
Сообщений: 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)  Читайте, все об этом написано... удачи! Если вы опять (как обычно) намекаете на курс ваших лекций, то извините, описание Кена Чапмана на пикоблейз всё-таки получше написано. Ну это естественно если нет проблем с английским. Если есть такие проблемы - тогда по-моему вообще в нашей индустрии делать нечего, канавы копать надо идти, больше пользы будет.
|
|
|
|
|
May 6 2012, 13:40
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Цитата(Bad0512 @ May 6 2012, 07:06)  А вот тут чушь полную пишите.... Смотрите внимательнее на то, как вы высказываетесь... Высказываетесь вы грубо, а простых вещей не понимаете, потому как сами процессоры не делали.... Проект синхронный - это всем понятно... Вот только дальше все наоборот. "Берем процессор Кена"... Постойте, для него же лицензия нужна! А она не у всех есть... Вы оплатите лицензию для ТС? Далее... Только ненормальный будет заниматься "урезанием" стандартного процессора... И это тоже обсуждать бессмысленно. Я же написал, что я делал для своей задачи специализированный микроконтроллер, со специализированной системой команд... И именно это дает выигрыш на конкретной задаче... И далее... Компилятор никогда не будет перекладывать проект по другому, если в проекте поменялся только файл инициализации памяти... Вся отладка программ выполняется в "программных" симуляторах и в Моделсиме. МоделСим тоже не компилит проект, если ему дамп памяти подгружать из текстового файла. Просто "сброс-пуск"... Так что для хорошего проекта экономия времени получается приличная... А отладка процессора в железе несравнимо проще отладки автомата... На прошлой работе мои два процессора заменили автомат с 206 срстояниями... А ведь есть состояния в которые "трудно" попасть, например аппаратные сбои в приемных данных... Скажем сделать генератор пакетов с неправильной CRC и смотреть на обработку этих пакетов... Для микропроцессора всегда можно определить максимальную тактовую частоту и она при изменении софта увеличиваться не будет... А с автоматом - при увеличении состояний - будет... А потому нельзя заранее заложиться на частоту, близкую у пределу... Что касается моих статей и вашего к ним отношения, то это статистика. Кому-то нравится, кому-то - нет... И эта самая статистика показывает, что таких как вы - мало... Следовательно, этим высказыванием можно пренебречь... Увы! Так что еще раз повторюсь, каждый отвечающий представляет задачу по-своему. Для кого-то встроенный процессор - это то, сто обрабатывает сложные протоколы. Тогда тут нужен процессор, имеющий компилятор С. Для меня процессор - это обработка несложного протокола приема-передачи данных из периферии. Тут достаточно ассемблера и я показал, как это просто сделать... Выбор за ТС. Желаю ему удачи и дальнейшая дискуссия здесь мне не интересна...
--------------------
www.iosifk.narod.ru
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|