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

 
 
 
Reply to this topicStart new topic
> Максимальная частота работа схемы
Maverick
сообщение Apr 11 2008, 07:32
Сообщение #1


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

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



Мне прислали разработчики (работают на наше предприятие по наряд заказу) модуль (на VHDL) для работы с контролером USB CY7C68013A. Теперь собственно вопрос:
Может ли корректно работать модуль (на VHDL) на 200 МГц если синтезатор показывает следующее:


Timing Summary:

Selected Device : 3s400pq208-4

---------------
Speed Grade: -4

Minimum period: 8.431ns (Maximum Frequency: 118.610MHz)
Minimum input arrival time before clock: 8.758ns
Maximum output required time after clock: 9.216ns
Maximum combinational path delay: 10.426ns

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

З.Ы. Мое мнение это не есть гуд. Но всякое бывает. sad.gif


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

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


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

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Не очень конечно понятно, зачем контроллеру USB работать на 200 МГц. По поводу реальной частоты - синтезатор показывает низшую, если их несколько.
Go to the top of the page
 
+Quote Post
Maverick
сообщение Apr 11 2008, 08:33
Сообщение #3


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

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



Цитата(DmitryR @ Apr 11 2008, 11:19) *
Не очень конечно понятно, зачем контроллеру USB работать на 200 МГц.


Мне ответили так на этот вопрос. От контроллера приходит короткий импульс готовности (порядка 24 нс), модуль в ПЛИС должен не более чем через такт работы контроллера USB (48 МГц) дать сигнал готовности данных в фифо. Сказал, что на 100 МГц он не мог захватить передний фронт импульса


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

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


Гуру
******

Группа: Модераторы
Сообщений: 2 095
Регистрация: 27-08-04
Из: Россия, СПб
Пользователь №: 553



Цитата
От контроллера приходит короткий импульс готовности (порядка 24 нс), модуль в ПЛИС должен не более чем через так работы контроллера USB (48 МГц) дать сигнал готовности данных в фифо.

Заведите 48МГц и сигнал на вход фифо и не мучайтесь.
Go to the top of the page
 
+Quote Post
sazh
сообщение Apr 11 2008, 08:59
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804



Цитата(ZMaverickZ @ Apr 11 2008, 12:33) *
Мне ответили так на этот вопрос. От контроллера приходит короткий импульс готовности (порядка 24 нс), модуль в ПЛИС должен не более чем через так работы контроллера USB (48 МГц) дать сигнал готовности данных в фифо. Сказал, что на 100 МГц он не мог захватить передний фронт импульса


Вы бы кусочек схемы привели. Если за 20 нс нужно перейти из одного клокового домена в другой, то наверно 100 - маловато будет. А передний фронт действительно на 48 мГц можно захватить.
Go to the top of the page
 
+Quote Post
XVR
сообщение Apr 11 2008, 11:12
Сообщение #6


Гуру
******

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



Цитата(ZMaverickZ @ Apr 11 2008, 12:33) *
Мне ответили так на этот вопрос. От контроллера приходит короткий импульс готовности (порядка 24 нс), модуль в ПЛИС должен не более чем через так работы контроллера USB (48 МГц) дать сигнал готовности данных в фифо. Сказал, что на 100 МГц он не мог захватить передний фронт импульса
Это не значит, что всю схему нужно зафигачить на 200 MHz sad.gif Задайте соотвествующие констрейны для входов и смотрите, что напишет синтезатор и Post Fit Timing. Если будут нарушения - надо править.
Go to the top of the page
 
+Quote Post
des00
сообщение Apr 14 2008, 02:43
Сообщение #7


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



ИМХО разработчиков нужно трясти, зачем для 48 МГц блочка они использовали 200МГц тактовую. Там на 200МГц может быть работает только 1 КА. а все остальное в мультицикле или сигналами enable разруливается, но исе то об этом не знает...

ЗЫ. А режим то усб микрухи какой ? асинхронный или синхронный ?


--------------------
Go to the top of the page
 
+Quote Post
Maverick
сообщение Apr 14 2008, 07:10
Сообщение #8


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

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



Цитата(des00 @ Apr 14 2008, 05:43) *
ИМХО разработчиков нужно трясти, зачем для 48 МГц блочка они использовали 200МГц тактовую. Там на 200МГц может быть работает только 1 КА. а все остальное в мультицикле или сигналами enable разруливается, но исе то об этом не знает...

ЗЫ. А режим то усб микрухи какой ? асинхронный или синхронный ?


Вот что ответил разработчик (дословно из письма):


. Для согласования двух разно скоростных потоков данных необходимо учитывать следующие их характеристики.

- Средняя интегральная мощность потоков, которая характеризуется средней скоростью передачи за время сеанса.

- Максимальная мощность потоков , которая характеризуется скоростью обмена при передачи одного непрерывного пакета

- Временем между двумя соседними пакетами.

В нашем случае поток данных от CCD матрицы практически равномерный и имеет мощность < 6* 16 Мбит/сек (с учетом межстрочных интервалов около 85 Мбит/сек ).

Контроллер USB в выбранном режиме работы ”balk” передает данные пакетами по 512х 16 бит на частоте чуть ниже 24 МГц, то есть с мощностью около 380 Мбит/сек. Но при этом между пакетами существуют временные интервалы, которые зависят от загрузки HOST контроллера. При моно связи они снижают производительность в два раза и средняя скорость становиться равной около 200 Мбит/сек. Существует еще один вид пакетирования верхнего уровня - данные принимаются программой обработки блоками по 32 000 шестнадцатиразрядных слов, после чего происходит их обработка до следующего приема. Это интервал обработки является самым критичным. Его время напрямую зависит от мощности используемого компьютера и его загрузки. В этом случае для передачи полного потока надо выбрать согласующее FIFO (в нашем случае внутренне FIFO ПЛИС), которое бы не успело переполниться за время интервала обработки.

В том проекте, который вам передан FIFO - 4096 х 16 бит будет заполнено за 680 мкс. На имеющихся у нас компьютерах с тактовой частотой 1.7 ГГц программа успевает выполнить обработку между принимаемыми блоками.

З.Ы. Маленькое пояснение к тексту. Это USB канал используется для передачи изображения с CCD матрицы (1002*1004), которая тактируется 6МГц.

З.Ы. З.Ы. Почитав книгу Агурова "Интерфейс USB Практика использования и программирования" на мой взгляд здесь более подходит изохронная передача.

К сожелению пока код выложить не могу (начальство не разрешает).
О том что код написан корректно я засомневался сразу, а здесь еще и:

WARNING:PhysDesignRules:372 - Gated clock. Clock net
u4_usb_data_controll/_cmp_eq0000 is sourced by a combinatorial pin. This is
not good design practice. Use the CE pin to control the loading of data into
the flip-flop.
WARNING:PhysDesignRules:372 - Gated clock. Clock net
u4_usb_data_controll/_not0011 is sourced by a combinatorial pin. This is not
good design practice. Use the CE pin to control the loading of data into the
flip-flop.

Спасибо des00 a14.gif


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

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


Гуру
******

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



Цитата(ZMaverickZ @ Apr 14 2008, 11:10) *
Вот что ответил разработчик (дословно из письма):


. Для согласования двух разно скоростных потоков данных необходимо учитывать следующие их характеристики.


...


В нашем случае поток данных от CCD матрицы практически равномерный и имеет мощность < 6* 16 Мбит/сек (с учетом межстрочных интервалов около 85 Мбит/сек ).

Контроллер USB в выбранном режиме работы "balk” передает данные пакетами по 512х 16 бит на частоте чуть ниже 24 МГц, то есть с мощностью около 380 Мбит/сек. Но при этом между пакетами существуют временные интервалы, которые зависят от загрузки HOST контроллера. При моно связи они снижают производительность в два раза и средняя скорость становиться равной около 200 Мбит/сек.
Не понял, они что, данные ПОБИТНО обрабатывают? 07.gif



Цитата
Существует еще один вид пакетирования верхнего уровня - данные принимаются программой обработки блоками по 32 000 шестнадцатиразрядных слов, после чего происходит их обработка до следующего приема. Это интервал обработки является самым критичным. Его время напрямую зависит от мощности используемого компьютера и его загрузки. В этом случае для передачи полного потока надо выбрать согласующее FIFO (в нашем случае внутренне FIFO ПЛИС), которое бы не успело переполниться за время интервала обработки.

В том проекте, который вам передан FIFO - 4096 х 16 бит будет заполнено за 680 мкс.
Считаем тактовую частоту FIFO: 4096/680 (mks) ~ 6 MHz, что ооочень далеко от затребованных 200 MHz 1111493779.gif



У кого то нелады с арифметикой - или у меня или у аффторов wacko.gif


Цитата
WARNING:PhysDesignRules:372 - Gated clock. Clock net
u4_usb_data_controll/_cmp_eq0000 is sourced by a combinatorial pin. This is
not good design practice. Use the CE pin to control the loading of data into
the flip-flop.
WARNING:PhysDesignRules:372 - Gated clock. Clock net
u4_usb_data_controll/_not0011 is sourced by a combinatorial pin. This is not
good design practice. Use the CE pin to control the loading of data into the
flip-flop.
Это тоже не есть good - может быть оправданно если ДЕЙСТВИТЕЛЬНО понадобился гейтованный клок. Кстати, у 3 Spartan'а есть clock multiplexor - его использование в любом случае предпочтительнее, чем гейтование клока на логике.
Go to the top of the page
 
+Quote Post
des00
сообщение Apr 15 2008, 03:08
Сообщение #10


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(ZMaverickZ @ Apr 14 2008, 02:10) *
Вот что ответил разработчик (дословно из письма):


ИМХО кто-то кому-то вешает лапшу на уши или вопрос аутсорсеру был поставлен не правило.

Выбор размера фифо к делу не относиться. Вопрос был зачем для корректной работы нужна тактовая под 200МГц.

Если мне память не изменяет :
Если усб чип стоит у вас в синхронном режиме то там максимум 46 МГц тактовая.
Если в асинхронном то тактовая может быть любая, но при этом требования на ширину стробов такие, что даже если формировать их на удвоенной частоте, там будет не более 100МГц (сам делал подобное %))

ЗЫ. Насчет асинхры : Может быть ТЗ было поставлено не правильно, не были оговорены требования о проектировании. Вот аутсорсер и сделал как умеет.

ЗЗЫ. Если по ТЗ модуль содержал в себе переход из домена в домен (например как eth_mac корка), то может быть 200МГц это целевая частота вашей системы ? а 118 МГц это частота усб части (которая укладывается в требование на 48МГц)

ЗЗЗЫ. FPGA УСБ мост на CY7C68013A там же ничего сложного. со всеми тестбенчами и примитивной докой делается где-то за 1.5 недели. Неужели не нашли разработчика поблизости ? smile.gif

В общем нужно разбираться подробно, опираясь на поставленное аутсорсеру ТЗ иначе ничего хорошего не выйдет %)

Удачи !!!


--------------------
Go to the top of the page
 
+Quote Post
Maverick
сообщение Apr 15 2008, 05:00
Сообщение #11


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

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



Тут вот какое дело получилось. Это предприятие (которое работает на наше предприятие) взяло на практику студента. Дали ему задание разбираться с USB контроллером и его программировать. Связавшись с ним, он ответил что просто забыл вывести сигнал синхронизации автомата GPIF наружу. Студент этот потом уволился и получилось как всегда smile.gif. Разработчик работая вместе, я так понимаю, даже не вникал в работу студента и USB контроллера.

Я с этим разработчиком (который писал модуль для ПЛИС) разговаривал и при разговоре было видно вообще делиться информацией никакой не хочет, отвечая работает и пользуйся, мне такой ответ не подходит. Когда вопрос по USB контроллеру он отвечает, что он этим не занимался и отправляет к разработчику. Его конечно я могу понять деньги и все такое, но все таки...

Всем спасибо за помощь!!! a14.gif


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

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

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 20:11
Рейтинг@Mail.ru


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