Как стать автором
Обновить

Комментарии 9

Спасибо за статью!
На здоровье!

В цикле остались две штуки. Они уже сделаны, просто ещё на Хабр не выложены (теги вписывать — не в WORDе форматирование делать). И что дальше — пока не придумал. Но в анализатор уже по проекту реально играю. Проект как ждал, чтобы вовремя свалиться.
Я глядя на ваши статьи, достал свой старый проект и начал более менее в порядок приводить. И по ходу дела успел уже помучатся с SPI альтеровским, с его мерзкой длинной по чтению данных. А теперь вот SGDMA который судя по даташиту если он начал работать то не остановить.
В общем веселье со всех сторон, но проект более менее приобретает цивильный вид, а не набор подпорок.
Недавно пришлось придумывать на ходу подобный протокол, для взаимодействия 4 ПЛИС И 1 ARM. В итоге вылилось в подобный формат чтения:
image

Вполне успешно работает на 50МГц. Кстати, а если slave медленнее(ну мало ли) чем spi?

P.S. conduit_end можно было бы назвать как-то более подходяще по смыслу

Кстати, а если slave медленнее(ну мало ли) чем spi?

Об этом я позаботился в прошлой статье. Мастер точно тормознутый. Проверено! Я этот анализатор задумал в 2017-м и очень активно делаю уже год. Некогда идеала достигать было! Надо было уже добить его! Опять же, в статье показан подход, как проектировать, не тратя излишних усилий, если они не нужны.

Как выжимать из системы побольше — уже было. Например, первая часть, вторая часть и третья часть. Или вот. Ну, или вот. Но иногда лучше выиграть по сроку разработки, если производительности и так хватает.

P.S. conduit_end можно было бы назвать как-то более подходяще по смыслу
Это Квартус так назвал. А я просто не стал переименовывать. Как-то привык в таких простых вещах переименовывать только то, что без смены имени работать не будет. Каждой линии SPI пришлось сменить имя. А тут… Работает и ладно. Вот если бы их было два! Там имело бы смысл осмысленные имена дать, чтобы самому не запутаться.
Об этом я позаботился в прошлой статье. Мастер точно тормознутый. Проверено!

К сожалению у нас такой уверенности нет, потому пришлось городить огород с подтверждением и генерацией ошибок, если slave «повис», что б за собой не тянул nios.
Сейчас не по велению сердца, а по желанию Заказчика разбираемся с Litex и RISC-V. Там у всех шин стоят таймеры, которые таймауты ловят. Забавная штука. Заодно удобно проверять, что попал в область адресного пространства, которая не имеет аппаратуры. Если запись/чтение ужасно тормозят — значит как раз на такой таймер попал. Причём там это принудительно добавляется, отказаться, не применяя бубен, нельзя. Но зато точно ничего не подвиснет. Шина точно будет освобождена.
Привет. Спасибо за интересный цикл статей.

Тут скоро будет проходить FPGA конференция fpga-systems.ru/conference/2021-1/index.html, не хотели бы рассказать о своем изделии чуть более подробно в формате короткого доклада-«карапули»?
Да само-то изделие тривиальное. Его мой знакомый по моим эскизам за один вечер набросал в PCAD и ещё за один — развёл. Оно интересно именно методикой разработки «прошивки». Большинство знакомых делают без применения «стержня» (Platform Designer). Вернее, некоторые уже не делают, а делали. Вроде, я кое-кого сумел уже убедить сменить подход.

В общем, тут изделие само — тривиально. Предыдущее (Redd) было посложнее, но идеологически — тоже типовое с точки зрения железа. Важно показать тем, кто работает по-старинке, что есть красивая методика, как быстро и удобно «прошивки» писать. И я это делаю, по мере сил.

Если что-то и рассказывать, то в этом направлении. Но опять же, «серьёзные» разработчики это и так знают. Я этих методик от разных «серьёзных» людей нахватался, только с Xilinx на Альтеру перенёс идеи.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории