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

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> Конвертер serial->8b parallel, Хочу сделать на CPLD от Альтеры
XVR
сообщение Jan 28 2008, 18:47
Сообщение #16


Гуру
******

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



Цитата(MAXvaLL @ Jan 28 2008, 14:43) *
XVR, спасибо вам за помощь! smile.gif


1) Параллельный интерфейс 8бит к CY7C68013 (8 должно хватить по скорости, а ноги нужны свободные у МП)
FD[0-7]
IFCLK
SLOE (SLCS я не видал, есть CS, но это к памяти. А SLOE надо отдельно)
SLRD
SLWR
PKTEND
FIFOADDR[0-1]

2) Последовательный интерфейс (2 шт)
clk
dat[0-3] (что значит 0-3 ?)


Это значит 4 канала


Цитата
strobe (есть. период = 8 БАЙТ если в слове 32 бита, либо 4БАЙТА, если в слове 16бит)

3) Управление
pkt_switch (не понял 05.gif )


Нарезка на USB пакеты. Насколько я понял CY работает так:

1) Данные заливаются в FIFO CY

2) Выставляется PKTEND, текущее FIFO начинает выливаться в USB

3) Переключаемся на другое FIFO



Цитата
А как можно ОДНОВРЕМЕННО? 07.gif Этаж невозможно...
Потоки-то льются одновременно, а FIFO на что? Как раз для разделения по времени.
Последовательные входные и выходные потоки - одновременно, потоки в FIFO CY - по очереди

Цитата
Да, сложно получается. Я тут попробовал сделать на логике - получилось, но для одинаковых частот.
2 регистра сдвига, с промежуточными регистрами, счетчик и по мелочи: и, или, инверторы...
Я думаю если хорошо подумать, то для кратных тоже можно сделать.
А для разных частот, я пока даже не представляю что делать... crying.gif
2 FIFO в FPGA + арбитер, выливающий данные из непустых FIFO в CY по очереди


Цитата
4х битный serial
Это как?
Это последовательно/паралельный интерфейс - последовательно по 4 бита за раз. От 4х отдельных serial каналов отличается порядком битов в выходной последовательности

Цитата
А какая разница как передавать? Пихаем в буфер, а USB контроллер сам пусть разбирается smile.gif
Боюсь, что не разберется. Похоже им надо управлять



Что касается FPGA то подойдет практически любая из младшего семейства, например Spartan2 (E) или Spartan3 (E) от Xilinx (у Alter'ы не знаю - не работал)
Go to the top of the page
 
+Quote Post
MAXvaLL
сообщение Jan 28 2008, 21:41
Сообщение #17


Местный
***

Группа: Свой
Сообщений: 221
Регистрация: 26-12-07
Пользователь №: 33 639



У меня оказывается был старый даташит на CY. В котором непонятно было нехрена. Отсюда и недопонимание было....
Новый оказался куда лучше smile.gif

SLCS# там таки появился. Но его можно всегда на select

Цитата(XVR @ Jan 28 2008, 21:47) *
Нарезка на USB пакеты. Насколько я понял CY работает так:
1) Данные заливаются в FIFO CY
2) Выставляется PKTEND, текущее FIFO начинает выливаться в USB
3) Переключаемся на другое FIFO

Да, но есть еще авто режим, когда пакет отправляется, набрав X байт.
В моем случае это удобнее, т.к. пакеты постоянной длинны.
Соотв-но PKTEND не нужен.

Цитата
2 FIFO в FPGA + арбитер, выливающий данные из непустых FIFO в CY по очереди

А если скорости в несколько раз (до 4х) отличаются? Там ничего не зашкалит?

Цитата
Это последовательно/паралельный интерфейс - последовательно по 4 бита за раз.

Не, это не пойдет однозначно. Либо 4 канала. Либо 1 на скорости в 4 раза выше.

Цитата
Боюсь, что не разберется. Похоже им надо управлять

Ткните меня в даташит пожалуйста (параграф). Что-то не вижу чем надо управлять...

Цитата
Что касается FPGA то подойдет практически любая из младшего семейства, например Spartan2 (E) или Spartan3 (E) от Xilinx (у Alter'ы не знаю - не работал)

А насколько это дорого? По сравнению с теми же CPLDхами?

Сообщение отредактировал MAXvaLL - Jan 28 2008, 22:00
Go to the top of the page
 
+Quote Post
XVR
сообщение Jan 29 2008, 10:16
Сообщение #18


Гуру
******

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



Цитата(MAXvaLL @ Jan 29 2008, 00:41) *
SLCS# там таки появился. Но его можно всегда на select


Его можно вообще на землю smile.gif


Цитата
Да, но есть еще авто режим, когда пакет отправляется, набрав X байт.
В моем случае это удобнее, т.к. пакеты постоянной длинны.
Соотв-но PKTEND не нужен.
Ок

Цитата
А если скорости в несколько раз (до 4х) отличаются? Там ничего не зашкалит?
Главное что бы скорость приема/передачи в CY была больше, чем у последовательных интерфейсов

Цитата
Не, это не пойдет однозначно. Либо 4 канала. Либо 1 на скорости в 4 раза выше.
А как надо биты из этих 4х каналов складавать в выходные байты в CY?

Цитата
Ткните меня в даташит пожалуйста (параграф). Что-то не вижу чем надо управлять...
Отбой, в datasheet'е было очень туманно описан процесс передачи буферов между SIE/CPU/Peripheral, скачал

Endpoint FIFO Architecture of EZ-USB FX1/FX2 - там вроде все проще, ничем управлять не надо.



Кстати, а что делать с исчерпанием/переполнением FIFO в CY?


Цитата
А насколько это дорого? По сравнению с теми же CPLDхами?


XC2S50E-PQ208C ~ $19

XC3S100E-4VQG100C ~ $12
Go to the top of the page
 
+Quote Post
MAXvaLL
сообщение Jan 29 2008, 11:59
Сообщение #19


Местный
***

Группа: Свой
Сообщений: 221
Регистрация: 26-12-07
Пользователь №: 33 639



Цитата(XVR @ Jan 29 2008, 13:16) *
Главное что бы скорость приема/передачи в CY была больше, чем у последовательных интерфейсов

А как надо биты из этих 4х каналов складавать в выходные байты в CY?

Кстати, а что делать с исчерпанием/переполнением FIFO в CY?

Больше. Полюбому smile.gif

Надо байты последовательно (по номерам)
Я думаю все же проще 1 канал скоросной. Там уже все само разложено как надо.

Ну, переполнения не должно быть - ибо авто отправка =) Надо только Х с умом выбрать.
Это надо для ручной отправки при помощи пакетенда, чтобы знать,что буфер уже забит.
А пустой - буфер - значит читать больше нечего smile.gif
Go to the top of the page
 
+Quote Post
XVR
сообщение Jan 29 2008, 15:09
Сообщение #20


Гуру
******

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



Цитата(MAXvaLL @ Jan 29 2008, 14:59) *
Ну, переполнения не должно быть - ибо авто отправка =) Надо только Х с умом выбрать.
Это надо для ручной отправки при помощи пакетенда, чтобы знать,что буфер уже забит.
А пустой - буфер - значит читать больше нечего smile.gif


А что делать для канала USB -> Serial если FIFO в CY пустое? Что передавать?



Да и с одним каналом на 50 МГц скорее всего получится, хотя потребуется указать тайминги фитеру.
Go to the top of the page
 
+Quote Post
MAXvaLL
сообщение Jan 29 2008, 15:27
Сообщение #21


Местный
***

Группа: Свой
Сообщений: 221
Регистрация: 26-12-07
Пользователь №: 33 639



Цитата(XVR @ Jan 29 2008, 18:09) *
А что делать для канала USB -> Serial если FIFO в CY пустое? Что передавать?

Да и с одним каналом на 50 МГц скорее всего получится, хотя потребуется указать тайминги фитеру.

Ничего. smile.gif
USB должен успевать подсовывать данные.

Можно подробнее - ничего не понял 05.gif
Go to the top of the page
 
+Quote Post
XVR
сообщение Jan 29 2008, 18:07
Сообщение #22


Гуру
******

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



Цитата(MAXvaLL @ Jan 29 2008, 18:27) *
Ничего. smile.gif
USB должен успевать подсовывать данные.

Можно подробнее - ничего не понял 05.gif


Нужно будет указать программе разводки FPGA, что у тебя на сериальных клоках идет 50 MHz, и указать все времена установок/задержек последовательных данных относительно клоков. Для 13 MHz это не обязательно (но желательно), FPGA успеет в любом случае smile.gif



Ну в общем, если это все устраивает, то берешь ISE WebPack (если Xilinx) или что там у Alter'ы, пишешь схему в Verilog'е, разводишь и заливаешь через CY (ноги для заливки придется предусмотреть)

Сообщение отредактировал XVR - Jan 29 2008, 18:20
Go to the top of the page
 
+Quote Post
MAXvaLL
сообщение Jan 29 2008, 21:51
Сообщение #23


Местный
***

Группа: Свой
Сообщений: 221
Регистрация: 26-12-07
Пользователь №: 33 639



Цитата(XVR @ Jan 29 2008, 21:07) *
Ну в общем, если это все устраивает, то берешь ISE WebPack (если Xilinx) или что там у Alter'ы, пишешь схему в Verilog'е, разводишь и заливаешь через CY (ноги для заливки придется предусмотреть)

А насколько это геморно будет? Ну, по объему, примерно.
Я тут видел конвертер SPI-I2C, шибко много кода. 05.gif

Предусмотреть надо в CY? И сколько?

Значит на FPGA полюбому лучше?

Сообщение отредактировал MAXvaLL - Jan 29 2008, 21:52
Go to the top of the page
 
+Quote Post
XVR
сообщение Jan 30 2008, 07:22
Сообщение #24


Гуру
******

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



Цитата(MAXvaLL @ Jan 30 2008, 00:51) *
А насколько это геморно будет? Ну, по объему, примерно.
Я тут видел конвертер SPI-I2C, шибко много кода. 05.gif
Это будет больше, чем SPI-I2C конвертер smile.gif FIFO будут сгенерированны автоматически CoreGen'ом, остальное придется писать ручками в Verilog'е (строк 500-1000 примерно)
Цитата
Предусмотреть надо в CY? И сколько?
2 выделенных + 3 разделяемых с параллельным интерфейсом (причем 1 из них Open-drain)
Цитата
Значит на FPGA полюбому лучше?
CPLD такой емкости, что бы туда влезла пара FIFO будет стоить на порядок больше.



Кстати, понадобится синхронизация скорости потоков USB->FPGA и FPGA->Serial, иначе никаких FIFO не хватит. Т.е. еще как минимум нужен входной сигнал о непустом передающем буфере FIFO в CY
Go to the top of the page
 
+Quote Post
MAXvaLL
сообщение Jan 30 2008, 18:18
Сообщение #25


Местный
***

Группа: Свой
Сообщений: 221
Регистрация: 26-12-07
Пользователь №: 33 639



Еще вопросец:
Есть разница на чем писать: AHDL/VHDL/Verilog? Что лучше начать изучать?

А что вы скажите по поводу графики? (ну, элементы там всякие клепать)

А можно прописать логику, а ПЛИС выбрать потом, по потребностям того, что получилось?

Сообщение отредактировал MAXvaLL - Jan 30 2008, 18:33
Go to the top of the page
 
+Quote Post
XVR
сообщение Jan 30 2008, 18:38
Сообщение #26


Гуру
******

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



Цитата(MAXvaLL @ Jan 30 2008, 21:18) *
Еще вопросец:
Есть разница на чем писать: AHDL/VHDL/Verilog? Что лучше начать изучать?
Verilog, однозначно smile.gif
Цитата
А что вы скажите по поводу графики? (ну, элементы там всякие клепать)
Забыть, как страшный сон. Объемы современных схем таковы, что в графическом виде они займут не одну пачку бумаги cranky.gif
Цитата
А можно прописать логику, а ПЛИС выбрать потом, по потребностям того, что получилось?
До некоторой степени можно. Для создания проекта в IDE всеравно придется выбрать какой то тип ПЛИС, потом можно его поменять.
Go to the top of the page
 
+Quote Post
dvladim
сообщение Jan 30 2008, 20:41
Сообщение #27


Знающий
****

Группа: Свой
Сообщений: 654
Регистрация: 24-01-07
Из: Воронеж
Пользователь №: 24 737



Цитата(XVR @ Jan 30 2008, 21:38) *
Verilog, однозначно smile.gif

Не однозначно.

Verilog и VHDL занимают примерно по 50% рынка.
Исторически повелось, что Verilog чаще использовался для проектов в ASIC. Для проектов в ПЛИС чаще используют VHDL. Но оба этих языка примерно равны и являются лидерами.
Перспективным считается SystemVerilog, но его рынок пока невелик.
Go to the top of the page
 
+Quote Post
MAXvaLL
сообщение Jan 30 2008, 22:02
Сообщение #28


Местный
***

Группа: Свой
Сообщений: 221
Регистрация: 26-12-07
Пользователь №: 33 639



Цитата(XVR @ Jan 30 2008, 21:38) *
Забыть, как страшный сон. Объемы современных схем таковы, что в графическом виде они займут не одну пачку бумаги cranky.gif

Видал я тут:
Цитата
Ну вот например, как сделать грубо говоря, видеоплату? Интересен сам подход. Т.е. в моем девайсе есть два SRAMа по 1Мбайт каждый. Есть видеоцап (ADV7123), в альтере сидит загружаемая таблица - палитра. И того имеем 256 цветов из палитры 2^24. Надо разворачивать видеобуфер сквозь эту таблицу в ЦАП, причем SRAM читаем с интерливом (т.к. они 10 нс, а максимальная частота на выходе - 200МГц). А еще надо уметь в SRAM записывать, желательно во время чтения. А еще там болтается SPI DataFlash на 1Мбайт, из которой надо уметь вытащить данные, разжать из RLE и сунуть в SRAM. Да, а тактируется это все от PLL, которая умеет давать частоты от 2 до 200МГц с шагом 1 КГц, снаружи только ГУН. Ну и само собой, должны быть счетчики синхронизации. Вот примерно такой девайс. Добавлю, что он у меня сейчас стоит на столе, а справа стоит монитор, на котором светится картинка, формируемая этим девайсом 100% схемного ввода... Тактовая сейчас 135, разрешение 1280*1024@75Hz (больше LCD монитор не тянет), работает превосходно (после долгих мучений), распаковывает картинку за 0.12 секунды, правда с монопольным доступом к SRAM во время записи.

А что бы мне тут дал верилог??

И как вам такое? smile.gif
Go to the top of the page
 
+Quote Post
RHnd
сообщение Jan 31 2008, 07:23
Сообщение #29


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Проект не видел, но с верояностью 99% verilog/vhdl при достаточных навыках его использования сократил бы время разработки, существенно упростил бы отладку и дальнейшую поддержку изделия. Это знаете, у меня тут баланс предприятия лежит, посчитанный на арифмомитре, и нафига бух. программы осваивать?
Go to the top of the page
 
+Quote Post
khach
сообщение Jan 31 2008, 08:15
Сообщение #30


Гуру
******

Группа: Свой
Сообщений: 3 439
Регистрация: 29-12-04
Пользователь №: 1 741



Цитата(MAXvaLL @ Jan 31 2008, 01:02) *
Видал я тут:

И как вам такое? smile.gif

удаление гланд через непредназначенное для этого отверстие. Полное отсутствие возможности пользоваться отлаженным сторонним кодом.
@MAXvaLL
Опишите функцию своего устройства, а то меня терзают смутные сомнения что городиться преобразователь I2S-шина CY7C68013 для аудиоустройства? Тгда всю проблему можно решить парой ссылок на opencores.
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 Текстовая версия Сейчас: 7th July 2025 - 06:39
Рейтинг@Mail.ru


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