|
FIFO (CPLD+SRAM) |
|
|
|
Sep 5 2015, 13:37
|
Местный
  
Группа: Свой
Сообщений: 248
Регистрация: 2-02-09
Из: Тверь
Пользователь №: 44 309

|
Доброго времени суток уважаемые!!! Есть задача построить модуль FIFO на связке CPLD+SRAM. Это образно говоря решение будет использоваться как простое FIFO для передачи данных в микроконтроллер. Мозги кипят и требуется помощь знающих людей которые смогут помочь разобраться в проблеме. Вопрос коммутационного плана на выложенной схеме дело в том что мк и плис работают на разных тактовых частотах и тут то и проблема. Я думаю так сделать: Данные со входа IN_DATA[15..0] поступают во внешнюю sram и там фиксируются сигналом (wd_sram) по адресу схемы которая тут не представлена в принципе это не важно. Начало работы начинается с того что мк подаёт запрос на то чтоб данные записались в регистр (inst5) сигналом (request) и если sram находится в режиме чтения то данные записываются в регистр при этом выставляется флаг регистр загружен -(confirmation) и сбрасывается регистр запроса на запись данных из sram. По приходу следующего запроса записи из sram в регистр (inst5) флаг (confirmation) сбрасывается в ноль и мк ожидает загрузки регистра (inst5) из него потом сдвиговым регистром будут выгружены данные в мк. Так я предположил выйти из проблемы пересечения клоковых доменов асинхронной фифо. Подскажите в правильном ли я направлении двигаюсь?
Прикрепленные файлы
FIFO.pdf ( 1.19 мегабайт )
Кол-во скачиваний: 59
|
|
|
|
|
 |
Ответов
|
Sep 5 2015, 17:55
|
Профессионал
    
Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596

|
я прошу прощения за мазню в paint, но это было быстрее всего. я понял вашу задачу следующим образом.
у вас есть АЦП и есть микроконтроллер. но поскольку АЦП имеет скорость выдачи отсчетов выше, чем может принять мк, то было сгорожено CPLD и SRAM. т.е. процесс примерно следющий 1) МК запускает выборку АЦП. 2) АЦП отсылает выборку в CPLD. 3) по мере передачи отсчетов от АЦП в SRAM в CPLD формируются счетчики уровня заполненности. wrptr-rdptr, сигналы fifo_empty, fifo_full, некий аналог usedw 4) при активации SPI со стороны мк вычитывается очередной байт данных. (ограничение - вычитывать из "фифо" можно только по 1 байту за каждую активацию SPI) оно?
--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
|
|
|
|
|
Sep 5 2015, 18:02
|
Местный
  
Группа: Свой
Сообщений: 248
Регистрация: 2-02-09
Из: Тверь
Пользователь №: 44 309

|
Цитата(krux @ Sep 5 2015, 21:55)  я прошу прощения за мазню в paint, но это было быстрее всего. я понял вашу задачу следующим образом.
у вас есть АЦП и есть микроконтроллер. но поскольку АЦП имеет скорость выдачи отсчетов выше, чем может принять мк, то было сгорожено CPLD и SRAM. т.е. процесс примерно следющий 1) МК запускает выборку АЦП. 2) АЦП отсылает выборку в CPLD. 3) по мере передачи отсчетов от АЦП в SRAM в CPLD формируются счетчики уровня заполненности. wrptr-rdptr, сигналы fifo_empty, fifo_full, некий аналог usedw 4) при активации SPI со стороны мк вычитывается очередной байт данных. (ограничение - вычитывать из "фифо" можно только по 1 байту за каждую активацию SPI) оно? Да! Вы правы! Это то что я имел ввиду в общих чертах, с тем лишь отличием что плис сама загружает данные в срам и мк не как не воздействует на этот прцес! Мк лишь посылает запрос в плис на загрузку очередного байта в выходной spi буфер и как только это произойдёт то плис сигнализирует мк о готовности байта для передачи из плис в мк, а мк по spi выгружает байт к себе
|
|
|
|
Сообщений в этой теме
uragan90 FIFO (CPLD+SRAM) Sep 5 2015, 13:37 uragan90 И вообще как такое реализовать можно?
Я делаю так... Sep 5 2015, 15:10 Maverick Цитата(uragan90 @ Sep 5 2015, 18:10) И во... Sep 5 2015, 15:43  uragan90 Цитата(Maverick @ Sep 5 2015, 19:43) Для ... Sep 5 2015, 15:48   Maverick Цитата(uragan90 @ Sep 5 2015, 18:48) Мне ... Sep 5 2015, 15:58    uragan90 Цитата(Maverick @ Sep 5 2015, 19:58) Тогд... Sep 5 2015, 16:05 krux ЦитатаМне не нужна двух клоковая фифо! Мне дос... Sep 5 2015, 16:02 uragan90 Цитата(krux @ Sep 5 2015, 20:02) тогда эт... Sep 5 2015, 16:11  Maverick Цитата(uragan90 @ Sep 5 2015, 19:11) Запи... Sep 5 2015, 16:13   uragan90 Цитата(Maverick @ Sep 5 2015, 20:13) Пожа... Sep 5 2015, 16:26 krux ЦитатаПросто криво возможно как то но возможно вед... Sep 5 2015, 16:10 Gorby Цитата(krux @ Sep 5 2015, 20:10) я полага... Sep 24 2015, 13:04  uragan90 Цитата(Gorby @ Sep 24 2015, 17:04) Тут пр... Sep 24 2015, 13:22   Gorby Цитата(uragan90 @ Sep 24 2015, 17:22) Так... Sep 24 2015, 13:49    uragan90 Цитата(Gorby @ Sep 24 2015, 17:49) Да, ко... Sep 24 2015, 13:58    EvgenyNik Цитата(Gorby @ Sep 24 2015, 16:49) Если о... Sep 24 2015, 14:04     uragan90 Цитата(EvgenyNik @ Sep 24 2015, 18:04) Но... Sep 24 2015, 14:09      EvgenyNik Цитата(uragan90 @ Sep 24 2015, 17:09) Чит... Sep 24 2015, 15:10 krux ЦитатаЗапись в срам должна быть выше по приоритету... Sep 5 2015, 16:16 krux ЦитатаСообщает об этом мк и мк с помощью сдвиговог... Sep 5 2015, 16:31 uragan90 Цитата(krux @ Sep 5 2015, 20:31) сколько ... Sep 5 2015, 16:50 krux Цитатая вот тоже не пойму проблемы что вас волнует... Sep 5 2015, 16:52 uragan90 Цитата(krux @ Sep 5 2015, 20:52) волнуют ... Sep 5 2015, 17:06 krux ура! ко второй странице разродились на верхний... Sep 5 2015, 18:09 uragan90 Цитата(krux @ Sep 5 2015, 22:09) тактиров... Sep 5 2015, 18:33 bugdesigner А какие сигналы идут от ADC? Если данные поступают... Sep 5 2015, 18:34 uragan90 Клока, клока... Я ж говорю что по импульсу от мк в... Sep 5 2015, 19:45  x736C Цитата(uragan90 @ Sep 5 2015, 22:45) Это ... Sep 5 2015, 20:55 krux для корректной работы плис нужно стабильное тактир... Sep 5 2015, 18:46 bugdesigner Трудность здесь в пересечении доменов клоков. Как ... Sep 6 2015, 05:15 x736C Цитата(bugdesigner @ Sep 6 2015, 08:15) Т... Sep 6 2015, 09:27 Golikov A. ЦитатаЭто что так сложно привести к основному клок... Sep 6 2015, 17:09 EvgenyNik Просто переключающими регистрами задачу красиво ре... Sep 7 2015, 05:21 Golikov A. Цитатапринимая управляющие сигналы, будет прокручи... Sep 7 2015, 05:36 Maverick Цитата(Golikov A. @ Sep 6 2015, 20:09) На... Sep 7 2015, 06:02  uragan90 Цитата(Maverick @ Sep 7 2015, 10:02) как ... Sep 7 2015, 06:57 EvgenyNik Цитата(Golikov A. @ Sep 7 2015, 08:36) и ... Sep 7 2015, 06:06 krux при старте, если указатели чтения и записи равны (... Sep 7 2015, 07:22 uragan90 Цитата(krux @ Sep 7 2015, 11:22) при стар... Sep 7 2015, 08:21 uragan90 Удалось реализовать такой модуль FIFO на внешней S... Sep 24 2015, 12:44 Golikov A. задача проста как 2 копейки, вы мудрите...
первое... Sep 24 2015, 19:32 uragan90 Цитата(Golikov A. @ Sep 24 2015, 23:32) з... Sep 25 2015, 07:45  EvgenyNik Цитата(uragan90 @ Sep 25 2015, 10:45) У м... Sep 25 2015, 07:55   Corner Цитата(EvgenyNik @ Sep 25 2015, 11:55) Ды... Sep 28 2015, 19:28    RobFPGA Приветствую!
Цитата(Corner @ Sep 28 2015... Sep 28 2015, 23:46     uragan90 Цитата(RobFPGA @ Sep 29 2015, 03:46) Прив... Sep 30 2015, 09:00  Gorby Цитата(uragan90 @ Sep 25 2015, 10:45) У м... Sep 25 2015, 10:23 uragan90 Начертал схемку которая решает практически половин... Sep 30 2015, 17:49
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|