Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблема неопределенного фазового сдвига
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
sergunas
Системная частота f = 50Мгц. В ПЛИС семейства Stratix поступают данные от АЦП с этой же частотой f, но ясно, что с каким-то фазовым сдвигом. АЦП предоставляет специальные стробы, по которым эти данные можно защёлкивать в регистрах ПЛИС.

Вопрос: а чем тактировать схему дальнейшей обработки этих данных?

Этими же стробами? А как быть если в системе несколько АЦП и несколько стробов? Или всё-таки есть какой-то универсальный (т.е. для неопределенного фазового сдвига) способ приведения к единой системной частоте?
Barbarossa
Цитата(sergunas @ Dec 17 2004, 13:55)
Системная частота f = 50Мгц. В ПЛИС семейства Stratix поступают данные от АЦП с этой же частотой f, но ясно, что с каким-то фазовым сдвигом. АЦП предоставляет специальные стробы, по которым эти данные можно защёлкивать в регистрах ПЛИС.

Вопрос: а чем тактировать схему дальнейшей обработки этих данных?

Этими же стробами? А как быть если в системе несколько АЦП и несколько стробов? Или всё-таки есть какой-то универсальный (т.е. для неопределенного фазового сдвига) способ приведения к единой системной частоте?
*

Можно во входные регистры защелкнуть частотой с АЦП, а дальше все тактировать системной частотой.
sergunas
Спасибо за ответ, но а если фазовый сдвиг будет кратен периоду, не начнутся ли здесь гонки?
vetal
Стандартная схема синхронизации из 2-х последовательно вкл. триггеров, по моему оба могут находиться в эвв.
3.14
<Спасибо за ответ, но а если фазовый сдвиг будет кратен периоду, не начнутся ли здесь гонки? >
Еще как начнутся, а вместе с ними и ваши запарки wink.gif

<Стандартная схема синхронизации из 2-х последовательно вкл. триггеров, по моему оба могут находиться в эвв.>
Хочется добавить. Я не смог заставить ModelSim праильно моделировать такие цепи. Поясню тем кто не вкурсе, у каждой модели есть параметр (вроде setup) ограничивающий минимальное время установления сигнала перед приходом тактового импульса. Когда пишу тестбенч, стараюсь как можно более "ужасней" подавать сигналы посредством добавления в периоды "других" тактовых вставлять случайную задержку. Так вот, ест-но при этом происходит нарушение вышеописанного ограничения, далее ModelSim считает что на выходе первого регистра получается неопределенка и кердык sad.gif.
sergunas
Цитата(vetal @ Dec 20 2004, 11:22)
Стандартная схема синхронизации из 2-х последовательно вкл. триггеров, по моему оба могут находиться в эвв.
*

Не уточните, плиз, что за стандартная схема? И что такое "эвв"?
vetal
AN42 - Metastability in altera devices.
Эвв - элемент ввода-вывода мсх, по моему у Stratix там аж 4 dff.

Я такое не моделировал(принимал как есть), но могу предположить, что для отработки данной ситуации лучше всего адаптировать(написать другую) библиотеку std_logic.
Barbarossa
Наверно, можно использовать FIFO. Мне кажется, что в этом случае не страшно, если фазововый сдвиг кратен периоду внутренней частоты.
3.14
<Я такое не моделировал(принимал как есть), но могу предположить, что для отработки данной ситуации лучше всего адаптировать(написать другую) библиотеку std_logic. >
Дык ели убрать "setup" тогда дальнейшая логика может неправильно моделироваться, моделька то одна использоваться будет.
vetal
Цитата
<Я такое не моделировал(принимал как есть), но могу предположить, что для отработки данной ситуации лучше всего адаптировать(написать другую) библиотеку std_logic. >
Дык ели убрать "setup" тогда дальнейшая логика может неправильно моделироваться, моделька то одна использоваться будет.


Чуть поправлюсь, написать данную модель так, что бы не появлялось 'X', и пр. дряни, так же можно попробовать использовать тип real(симмитировать фронты) и поставить виртуальный компаратор(dac) с гестерезисом, на выходе этой штуки всегда будет либо '1' либо '0'.
3.14
<и поставить виртуальный компаратор(dac) с гестерезисом, на выходе этой штуки всегда будет либо '1' либо '0'.>

<логика может неправильно моделироваться, моделька то одна использоваться будет. >

Может Вы знаете способ как сделать так чтоб для определенных инстансов брались определенные модели. А лучше какой то автоматизированный способ, потому как имена инстансам синтезатор генерит и при каждой редакции прийдется проверять имена.
Igor_S
Mozhet, ja i ne prav - gluboko ne izuchal etot wopros. No ja w swoem proekte ispolzowal "dual port RAM" s edinstwennym adresom. Mozhete rassmatriwatj eto kak registr, w kotoryj "zapisj" i "chtenie" mogut proishoditj odnowremenno. Ispolzowalsja STRATIX EP1S20. Problem ne bylo kak pri simuljacii, tak i w zhizni (prawda, simulirowal ja w "rodnom" simuljatore Quartus'a
vetal
Для автоматической подмены можно:
1. присвоить такие имена что бы их легко можно было выделить из основного описания.
2. написать программку которая их все посчитает и.т.д.
3. эта программка напишет конфигурацию(на vhdl эта замена пройдет на ура).
3.14
to Igor_S
Это конечно выход, если BRAM не жалко. Да и не всегда надо синхронизироваться с шиной, если сигналов всего пара, на каждый BRAM ставить жалко.

to vetal
На мой взгляд Вы увлеклись. Вы только вдумайтесь на какие страдания обрекаете тех кто попробует это воплощать в жизнь.
Igor_S
To 3.14

Tak wedj po uslowiju zadachi - estj kak-by 2 kloka: odin (whodnoj) ot A/D, drugoj (wnutrennij, s proizwoljnym fazowym sdwigom) klok sistemy. Tak whodnoj klok igraet rolj kloka zapisi w DPRAM, a wnutrennij sistemnyj klok - klok chtenija.
A chto kasaetsja dpram, to odnoj jachejki RAM i neskolkih dff, kotorye ujdut na realizaciju "lpm_dpram" glubinoj w odnu jachejku (pardon, 2 jachejki - menjshe ne poluchitsja) - tjazhelo predstawitj, komu eto mozhet bytj zhalko...
3.14
Похоже я тоже увлекся (не подумал что Вы писали для sergunas) wink.gif
А кстати Вы подали идею, вместо явно прописанного первого регистра использовать черный ящик с нужной (поправленной) моделью.
Slavik
Если фазовый сдвиг равен периоду - считай, равен нулю.

Теперь по поводу АЦП.
Как правило в ацп режим работы схемы управления может выбираться, делая ацп либо в качестве подчиненного, либо в качестве активного устройства на шине. Если несколько ацп, то понятно какой режим предпочтительней. Если такой возможности нет (в чем очень самневаюсь), то вам нужно делать промежуточную схему (возможно с регистром) для согласования шины, скоростей, и времени считывания (хотя это справедливо для обоих случаев). Здесь надо будет привезать фронт одного клока к другому с учетом фазового сдвига (двух тригеров будет достаточно), тогда гонок не будет. При необходимости в ПЛИС можно внести нужные задержки.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.