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

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> Строковый парсер на VHDL
Jenya7
сообщение Jul 5 2017, 08:02
Сообщение #31


Профессионал
*****

Группа: Участник
Сообщений: 1 314
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(vladec @ Jul 5 2017, 13:45) *
Посмотрите по ресурсам, может уложите задачу в один-два PicoBlaze

я не хочу начинать миссию спасти рядового Райена портирования кора в FPGA. у меня в этом нету опыта и отладить такой кор для меня проблема. к тому же найди С компайлер под кор, учи его...

Цитата(Maverick @ Jul 5 2017, 13:52) *
правильно для общеня с микропроцессором/ПК возможно такой протокол и прокатит.
Для ПЛИС сделайте проще протокол обмена.
Данные это цифры правильно? передаете в аски коде Можно сделать после команды цифровые данные ПЛИС их сразу принимает и выполняет.
Не надо будет делать в ПЛИС преобразователя из аски кода в обычные цифры для ПЛИС.
Тогда сделать по одной букве в аске коде команду.
Количество данных фиксированное.
Тогда получиться

а236369к

что будет обозначать
а - аски код - команда top
4 байта - значение данных - 236369
к - аски код - команда окончание


я хочу чтоб это было юзер френдли. Красивые команды top, speed все понятно. а236369к - это ж надо человеку книгу написать с прояснением йоги комманд.
и я не думаю что это значительно усложнит задачу и увеличит потребление ресурсов послать такую строку а236369к или такую top 236369 \r

я так понимаю что если я в гугле не нашел готового решения - это не практикуется на FPGA.

Сообщение отредактировал Jenya7 - Jul 5 2017, 08:08
Go to the top of the page
 
+Quote Post
novikovfb
сообщение Jul 5 2017, 08:04
Сообщение #32


Местный
***

Группа: Участник
Сообщений: 369
Регистрация: 29-09-11
Пользователь №: 67 450



Цитата(Jenya7 @ Jul 5 2017, 11:57) *
я не хочу начинать миссию спасти рядового Райена портирования кора в FPGA. у меня в этом нету опыта и отладить такой кор для меня проблема. к тому же найди С компайлер под кор, учи его...

как ни печально, волшебным образом сделать парсер не получится. Надо или писать громоздкую конструкцию на VHDL (см. машины состояний), либо отвести изрядный кусок ПЛИС под готовое ядро микропроцессора и использовать готовый компилятор, либо взять за основу маленькое ядро микропроцессора, допилить в нужном направлении и мучиться с его ассемблером, либо заплатить тому, кто это сделает.
Ядра микропроцессоров и много другого интересного водятся на opencores.org
Go to the top of the page
 
+Quote Post
Maverick
сообщение Jul 5 2017, 08:14
Сообщение #33


я только учусь...
******

Группа: Модераторы
Сообщений: 3 386
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(Jenya7 @ Jul 5 2017, 11:02) *
я хочу чтоб это было юзер френдли. Красивые команды top, speed все понятно. а236369к - это ж надо человеку книгу написать с прояснением йоги комманд.
и я не думаю что это значительно усложнит задачу и увеличит потребление ресурсов послать такую строку а236369к или такую top 236369 \r
я так понимаю что если я в гугле не нашел готового решения - это не практикуется на FPGA.

как пожелаете... Все в Ваших руках...

Команда top не слишком понятно, лучше
"Установить верхний предел вращения 1 мотора равным 1000."
тогда юзеру все понятно... biggrin.gif


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Jul 5 2017, 08:23
Сообщение #34


Профессионал
*****

Группа: Участник
Сообщений: 1 314
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(novikovfb @ Jul 5 2017, 14:04) *
как ни печально, волшебным образом сделать парсер не получится. Надо или писать громоздкую конструкцию на VHDL (см. машины состояний), либо отвести изрядный кусок ПЛИС под готовое ядро микропроцессора и использовать готовый компилятор, либо взять за основу маленькое ядро микропроцессора, допилить в нужном направлении и мучиться с его ассемблером, либо заплатить тому, кто это сделает.
Ядра микропроцессоров и много другого интересного водятся на opencores.org

вариант "заплатить тому, кто это сделает" вполне приемлим.
Go to the top of the page
 
+Quote Post
Maverick
сообщение Jul 5 2017, 08:25
Сообщение #35


я только учусь...
******

Группа: Модераторы
Сообщений: 3 386
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(Jenya7 @ Jul 5 2017, 11:23) *
вариант "заплатить тому, кто это сделает" вполне приемлим.

тогда Вам в ветку " Предлагаю работу"


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
XVR
сообщение Jul 5 2017, 08:27
Сообщение #36


Гуру
******

Группа: Свой
Сообщений: 3 022
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(Jenya7 @ Jul 5 2017, 10:37) *
неужели никто до меня не решал такой задачи?
Решали конечно. Делали soft процессор и решали на нем

Цитата
это ж маст! как без этого?
Делать этот 'маст' напрямую в железе - занятие для отъявленных мазохистов. На порядок проще сделать десяток разных процессоров и написать программу для них в ассемблере, чем делать то, что вы хотите
Go to the top of the page
 
+Quote Post
Maverick
сообщение Jul 5 2017, 08:46
Сообщение #37


я только учусь...
******

Группа: Модераторы
Сообщений: 3 386
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(XVR @ Jul 4 2017, 13:31) *
http://www.silicon-russia.com/2015/12/11/m...d-instructions/

Ну или просто возьмите MicroBlase - он и есть MIPS

не увидел, спасибо sm.gif

Цитата(Jenya7 @ Jul 5 2017, 11:23) *

Судя с темы
Вам там советовали брать несколько микроконтроллеров, пробуйте...
Только помните про возможное требование в синхронизации работы двигателей...


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
Leka
сообщение Jul 5 2017, 09:25
Сообщение #38


Знающий
****

Группа: Участник
Сообщений: 953
Регистрация: 30-09-05
Пользователь №: 9 118



Цитата
some_command arg1 arg2 \r

"Железный" парсер подобного займет меньше места, чем Ниос и тп.
Числа переводятся в бинарное представление "на лету", по мере поступления символов.
Текстовая строка также переводится "на лету" в сжатый бинарный код, с пропуском некоторых/последних символов, подбирается по списку команд.
На выходе получаем 3 числа.
Go to the top of the page
 
+Quote Post
XVR
сообщение Jul 5 2017, 10:12
Сообщение #39


Гуру
******

Группа: Свой
Сообщений: 3 022
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(Leka @ Jul 5 2017, 12:25) *
"Железный" парсер подобного займет меньше места, чем Ниос и тп.
Вот только Nios уже готовый, а 'железный парсер' писать надо
Цитата
Числа переводятся в бинарное представление "на лету", по мере поступления символов.
Текстовая строка также переводится "на лету" в сжатый бинарный код, с пропуском некоторых/последних символов, подбирается по списку команд.
Судя по коду на С, который тут приводил ТС, он еще отрабатывает минимальное редактирование принимаемой строки (отрабатывает код Backspace). Аппаратно 'на лету' это не так просто сделать sad.gif
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Jul 5 2017, 10:32
Сообщение #40


Профессионал
*****

Группа: Участник
Сообщений: 1 314
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(Leka @ Jul 5 2017, 15:25) *
"Железный" парсер подобного займет меньше места, чем Ниос и тп.
Числа переводятся в бинарное представление "на лету", по мере поступления символов.
Текстовая строка также переводится "на лету" в сжатый бинарный код, с пропуском некоторых/последних символов, подбирается по списку команд.
На выходе получаем 3 числа.

вот это слова не мальчика но мужа. а пример можно? хотя нет, не надо, а то и эту тему перенесут в раздел - Предлагаю работу.
Go to the top of the page
 
+Quote Post
Raven
сообщение Jul 5 2017, 20:58
Сообщение #41


Местный
***

Группа: Свой
Сообщений: 471
Регистрация: 16-01-05
Из: Санкт-Петербург
Пользователь №: 1 987



Цитата(Maverick @ Jul 3 2017, 22:10) *
хорошая статейка... sm.gif
не подскажите, где лежат исходники MIPSfpga процессора?

Дык, а разве на приводимой где-то по тексту ссылке на GitHub не исходники? Там нетлист? Я, если честно, не копался в этих репозиториях.

Вот статья с подборкой ссылок по MIPSfpga.
Go to the top of the page
 
+Quote Post
Maverick
сообщение Jul 5 2017, 21:24
Сообщение #42


я только учусь...
******

Группа: Модераторы
Сообщений: 3 386
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(Raven @ Jul 5 2017, 23:58) *
Дык, а разве на приводимой где-то по тексту ссылке на GitHub не исходники? Там нетлист? Я, если честно, не копался в этих репозиториях.

Вот статья с подборкой ссылок по MIPSfpga.

Спасибо за информацию sm.gif


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
Unfog
сообщение Jul 10 2017, 12:07
Сообщение #43


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 20-05-12
Из: Санкт-Петербург
Пользователь №: 71 932



Если есть возможность самому выбирать протокол, достаточно легко реализовать какой-нибудь простой байт-стаффинг, например как тут.
Собрали в буфер, расшифровав на лету, далее передали на обработку по коду команды.
При этом, по опыту, крайне желательно передавать длину посылки. Например 0-й байт - команда, 1-й - длина передачи, дальше тело, в конце контрольная сумма.
P.S. У данного алгоритма возможен большой оверхед (до двух раз, если все посылка из FEND будет состоять), но зато сам алгоритм очень простой.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 20th October 2017 - 01:24
Рейтинг@Mail.ru


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