Технический форум по робототехнике.
Правила форума
В данном разделе каждый может иметь не более одной темы. Тема должна начинаться с логина (ника) робофорума.
Strijar » 30 дек 2011, 10:08
C Альтерой не работал, но на Xilinx это делается просто через FIFO на встроенной памяти (BRAM) - компонента с нужными параметрами генерируется автоматом. Порты на чтение и запись используют свои клоки. При заполнении FIFO до нужного значения автоматом выставляется сигнал. Все написано до нас

Michael_K » 30 дек 2011, 23:26
blindman писал(а):С ПЛИСами никогда не работал. Имеется в наличии EPM3064ALC44-10. Ног вроде хватает впритык для интерфейсов и подключения ОЗУ на 32 кБ. Хватит ли ее для такой задачи? Что можно почитать про работу с ПЛИС для начала?
Вероятно хватит (если не наворачивать на ровном месте). По временам - скорее всего пробовать надо (там не все так прозрачно, особенно, если шина двунаправленная нужна, а она нужна)
Я бы смотрел скорее на серию MAX II.
Скачать квартус веб-эдишн, там нормальный хелп с пошаговыми примерами.
Добавлено спустя 6 минут 14 секунд:В принципе можно готовую ФИФОшку взять.... только она баксов в двадцать а то и больше встанет.
IDT, например, делает. Зато готовое и железно работающее.
blindman » 05 янв 2012, 06:52
Скачал квартус. Нашел на fpga4fun пример SPI slave. Скомпилировал. Пишет:
Total macrocells 37/64(58%). Как-то не воодушевляет

Michael_K » 05 янв 2012, 13:18
Ошибка в "Нашел на fpga4fun пример SPI slave".
Вы сейчас в тиньку printf засунули, чтобы циферку в порт выдать.
Там еще можно оптимизации всякие настраивать.
Грубо можно оценить как один триггер = один макроселл (ну плюс пара лишних обычно используется для разводки)
Strijar » 05 янв 2012, 20:56
Michael_K писал(а):Ошибка в "Нашел на fpga4fun пример SPI slave".
Вы сейчас в тиньку printf засунули, чтобы циферку в порт выдать.
Там еще можно оптимизации всякие настраивать.
Да, ладно! Чего там оптимизировать? По большому счету один сдвиговый регистр.
Michael_K » 05 янв 2012, 23:13
Strijar писал(а):По большому счету один сдвиговый регистр.
Угу... на 37 триггеров

blindman » 07 янв 2012, 14:00
Очередная попытка освоить ПЛИС-ы провалилась. Что-то не ладится у меня с ними. Китайская грамота какая-то. В итоге воткнул в макетку пропеллер и пару корпусов жесткой логики. Пару часов на прошивку пропеллера, еще пару на правку драйвера SPI для Linux - и усё у порядке

Strijar » 07 янв 2012, 14:04
Читер!
Добавлено спустя 2 минуты 2 секунды:Michael_K писал(а):Strijar писал(а):По большому счету один сдвиговый регистр.
Угу... на 37 триггеров

По логике должно быть столько сколько разрядов. Я с мелкими ПЛИСами давно дела не имел, как то не думаю даже об этом

blindman » 07 янв 2012, 14:21
Там были и прием, и передача, плюс какой-то хитрый протокол со счетчиком сообщений - 8 триггеров на прием, 8 на передачу, 8 - счетчик сообщений, 3 - счетчик битов, плюс SCK, MOSI и CS защелкивались. Я все это дело упростил, урезал. Но когда дело дошло до интерфейса с внешней памятью - плюнул на это дело.
Может когда будет задача, с которой контроллером ну никак не обойтись - тогда уж волей-неволей придется учиться.
Duhas » 07 янв 2012, 14:40
может придумаем ее ? давно хотелось бы поработать с плисиной..
Strijar » 07 янв 2012, 18:24
Я себе давно придумал. Я делаю шестинога только с одним ПЛИСом. На нем будет сам процессор, PWM контроллеры для серв, порт для CMOS-сенсора. Задача как раз

Duhas » 07 янв 2012, 19:13
а на каком железе ?
Strijar » 07 янв 2012, 19:17
Spartan-6,
ZTEX модуль на LX25 и еще один на LX75

Duhas » 07 янв 2012, 19:20
Strijar » 07 янв 2012, 19:23
У меня есть похожее (
forum29/topic10427.html). Я считаю, что удобней иметь один большой ПЛИС чем процессор + маленький. Мне по крайней мере так удобней.