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

 
 
> осторожно: метастабильность!, ( старое название: Спартан збоит!?... )
irum4
сообщение Oct 24 2005, 10:15
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 224
Регистрация: 18-06-04
Пользователь №: 54



Прибор с кристаллом XC2S30. Загрузка кристалла 99% (хотя добавление или убирание кода не влияет на эту цифру).Одна часть работает на частоте 50 МГц. Из них формируется 1МГц на которой работает вторая часть схемы. На 1МГц работает автомат состояний, который в зависимости от разводки кристалла ЗБОИТ blink.gif , т.е. может заходить в промежуточное состояние и после этого соответсвенно нужна его инициализация. Переделка схемы на работу всего кристалла на 50 МГц, приводит к тем же результатам! Также наблюдаются збои некоторых регистров, причем самопроизвольно, без привязки ко времени и процессам excl.gif
Всякое видел, но такое впервые. Правда надо сказать, что разводка земель не ахти, но кондюки распаяны на каждую ногу, как положено.
Какие будут мысли, рекомендации. Понятно, что плату нужно переразводить, но что-то мне подсказывает, что собака не там зарыта. ninja.gif


--------------------
Электроника - наука о контактах.
Go to the top of the page
 
+Quote Post
3 страниц V  < 1 2 3 >  
Start new topic
Ответов (15 - 29)
v_mirgorodsky
сообщение Oct 24 2005, 16:42
Сообщение #16


Местный
***

Группа: Свой
Сообщений: 342
Регистрация: 21-02-05
Пользователь №: 2 804



Цитата(irum4 @ Oct 24 2005, 16:41)
Такой пример. СИНХРОННЫЙ автомат имеет 6 состояний:а,б,в,г,д,е,ж. Каждому синтезатор присваивает код 000001,000010,000100,001000,010000,100000.
Входной управляющий сигнал привязан к 50МГц из которого формируется 1МГц (пробовал автомат и на 50 МГц - ничего не дало)
После запуска автомат бегает по определенным состояниям согласно алгоритму, но в какой-то момент (типа кто-то голове грохнул) автомат переходит в состояние 000000! (никаких конфликтов внутри нет). И все... стоим-с.
Асинхронными сбросами, управлением я уже давно не пользуюсь - на рассыпухе их наелся. Бред какой-то. В какой-то момент становиться просто смешно, но потом становится очень грустно - не первый день сижу,
*


Чудес в электронике не бывает sad.gif Один из триггеров успевает сброситься, а второй просто не успевает установиться. Можно попробовать упростить логику автомата и проверять его по частям. Кстати, если входной ассинхронный сигнал идет на два или более синхронизирующих триггера параллельно, то можно получить аналогичный еффект.

У нас похожее поведение было с ассинхронными сигналами на машину. Полечилось установкой триггеров на все источники и отладкой логики КА. Больше без конкретной схемы и описания сказать будет сложно cranky.gif


--------------------
WBR,
V. Mirgorodsky
Go to the top of the page
 
+Quote Post
irum4
сообщение Oct 25 2005, 13:40
Сообщение #17


Местный
***

Группа: Свой
Сообщений: 224
Регистрация: 18-06-04
Пользователь №: 54



w00t.gif w00t.gif w00t.gif w00t.gif w00t.gif
Заработало. Всем спасибо cheers.gif . Всему виной преславутая метастабильность
Теперь все выстроилось в четкую линию. Делитель с 50 МГц до 1 МГц я делал на счетчике (последний разряд на BUFG). Входной асинхронный сигнал стробированный 50 МГцами поступал на вход КА, поскольку задержка с выхода счетчика делителя до BUFG и задержка сигнала от тригера стробирования входного сигнала зависили от разводки, то в некоторых случаях фронты входного сигнала КА и такта 1МГц совпадали и вышибали мой КА в состояни 0, причем непрогнозируемо.
Поставил тригер на вхоной сигнал, тактируемый 1МГц, вместо 50 и все полетело, как миленькое. tongue.gif
М-да такую засаду чипскоупом не выловиш, а крышка точно чуть не съехала. biggrin.gif
Заодно нарыл ссылочку на счет метастабильности http://www.platan.ru/shem/pdf/st13-14.pdf
Цитата(v_mirgorodsky @ Oct 24 2005, 19:42)
Чудес в электронике не бывает

P.S. Мой шеф когда-то говорил также


--------------------
Электроника - наука о контактах.
Go to the top of the page
 
+Quote Post
des00
сообщение Oct 26 2005, 03:29
Сообщение #18


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

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



Цитата(irum4 @ Oct 25 2005, 08:40)
Заработало. Всем спасибо cheers.gif . Всему виной преславутая метастабильность


Поздравляю, cheers.gif
я же вам сразу про это грил wink.gif


--------------------
Go to the top of the page
 
+Quote Post
Doka
сообщение Jan 10 2008, 13:20
Сообщение #19


Electrical Engineer
******

Группа: СуперМодераторы
Сообщений: 2 163
Регистрация: 4-10-04
Пользователь №: 778



Цитата(3.14 @ Oct 24 2005, 18:27) *
А Ваш тестбенч имитирует метастабильность?


детский вопрос: а разве симулятором (кроме spice-симулятора) вообще можно проверить метастабильность??? (вернее то, верно ли она отрабатывается вашей схемой синхронизатора клоковых доменов)

я так понимаю все эти схемы рекомендованных синхронизаторов предполагают, что априори работают "как надо" и тем самым исключают необходимость моделирования корректной отработки метастабильности.
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Jan 10 2008, 15:34
Сообщение #20


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

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



Цитата(Doka @ Jan 10 2008, 16:20) *
детский вопрос: а разве симулятором (кроме spice-симулятора) вообще можно проверить метастабильность???

Запросто: нормальные модели триггеров выдают на выходе X, когда нарушается setup/hold.
Go to the top of the page
 
+Quote Post
Doka
сообщение Jan 10 2008, 19:00
Сообщение #21


Electrical Engineer
******

Группа: СуперМодераторы
Сообщений: 2 163
Регистрация: 4-10-04
Пользователь №: 778



Цитата(DmitryR @ Jan 10 2008, 18:34) *
Запросто: нормальные модели триггеров выдают на выходе X, когда нарушается setup/hold.

у меня практический интерес в этом вопросе: что мне делать с этим Х, если я хочу промоделировать правильность работы собственной схемы синхронизатора клоковых доменов (а точнее передачи данных) при возникновении нарушения времён setup/hold?


--------------------
Блог iDoka.ru
CV linkedin.com/in/iDoka
Sources github.com/iDoka


Never stop thinking...........................
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Jan 11 2008, 10:27
Сообщение #22


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

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



Цитата(Doka @ Jan 10 2008, 22:00) *
у меня практический интерес в этом вопросе: что мне делать с этим Х, если я хочу промоделировать правильность работы собственной схемы синхронизатора клоковых доменов (а точнее передачи данных) при возникновении нарушения времён setup/hold?

Как что делать, исправлять схему. Если Х прошел - значит синхронизатор работает неверно. Правильно работающий синхронизатор должен обеспечивать захват в принимающем домене только тогда, когда данные в передающем домене установились и ожидают захвата.
Go to the top of the page
 
+Quote Post
Kopart
сообщение Jan 11 2008, 11:38
Сообщение #23


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 1-03-05
Из: Spb
Пользователь №: 2 972



Цитата(DmitryR @ Jan 11 2008, 13:27) *
Как что делать, исправлять схему. Если Х прошел - значит синхронизатор работает неверно. Правильно работающий синхронизатор должен обеспечивать захват в принимающем домене только тогда, когда данные в передающем домене установились и ожидают захвата.

А как проверить - как схема будет себя вести при нарушении условий??
Верификация бывает и полная..


--------------------
Насколько проще была бы жизнь, если бы она была в исходниках
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Jan 11 2008, 12:00
Сообщение #24


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

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



Цитата(NiOS @ Jan 11 2008, 14:38) *
А как проверить - как схема будет себя вести при нарушении условий??
Верификация бывает и полная..

А симулятор бывает и Spice, как справедливо уже тут замечали. Но не требуется на самом деле ни то, ни другое: когда система работает неправильно - обычно всем все равно, как именно неправильно она работает.
Go to the top of the page
 
+Quote Post
Kopart
сообщение Jan 11 2008, 12:44
Сообщение #25


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 1-03-05
Из: Spb
Пользователь №: 2 972



Цитата(DmitryR @ Jan 11 2008, 15:00) *
А симулятор бывает и Spice, как справедливо уже тут замечали. Но не требуется на самом деле ни то, ни другое: когда система работает неправильно - обычно всем все равно, как именно неправильно она работает.

Хе. Проверяется именно, что в НЕПРАВИЛНЫх условиях схема работает ПРАВИЛЬНО.
Это разговор уже дальше уйдет в тестовое покрытие функционала...


--------------------
Насколько проще была бы жизнь, если бы она была в исходниках
Go to the top of the page
 
+Quote Post
makc
сообщение Jan 11 2008, 16:50
Сообщение #26


Гуру
******

Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904



Цитата(Doka @ Jan 10 2008, 22:00) *
у меня практический интерес в этом вопросе: что мне делать с этим Х, если я хочу промоделировать правильность работы собственной схемы синхронизатора клоковых доменов (а точнее передачи данных) при возникновении нарушения времён setup/hold?


Нужно, чтобы для первого триггера в цепочке синхронизатора в симуляторе была отключена проверка нарушения времён setup/hold. Либо, нужно отключить для синхронизатора трансляцию состояния X через триггеры синхронизатора, чтобы обеспечить подобие его правильной работы в реальных условиях.


--------------------
BR, Makc
В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
Go to the top of the page
 
+Quote Post
dvladim
сообщение Jan 12 2008, 21:02
Сообщение #27


Знающий
****

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



Цитата(makc @ Jan 11 2008, 19:50) *
Нужно, чтобы для первого триггера в цепочке синхронизатора в симуляторе была отключена проверка нарушения времён setup/hold. Либо, нужно отключить для синхронизатора трансляцию состояния X через триггеры синхронизатора, чтобы обеспечить подобие его правильной работы в реальных условиях.

А для эмуляции метастабильности можно описать триггер так:
при нарушении setup/hold выход переходит в X, а затем в D. Где D - 0 или 1 произвольно. При любых значениях должно работать нормально.
Длительность X - длительности метастабильного состояния. (можно взять 1/2 или 3/4 периода)
Go to the top of the page
 
+Quote Post
Doka
сообщение Jan 13 2008, 22:10
Сообщение #28


Electrical Engineer
******

Группа: СуперМодераторы
Сообщений: 2 163
Регистрация: 4-10-04
Пользователь №: 778



Цитата(den_realan @ Jan 13 2008, 00:02) *
А для эмуляции метастабильности можно описать триггер так:
при нарушении setup/hold выход переходит в X, а затем в D. Где D - 0 или 1 произвольно. При любых значениях должно работать нормально.
Длительность X - длительности метастабильного состояния. (можно взять 1/2 или 3/4 периода)

да это уже более-менее похоже. спасибо.


--------------------
Блог iDoka.ru
CV linkedin.com/in/iDoka
Sources github.com/iDoka


Never stop thinking...........................
Go to the top of the page
 
+Quote Post
Tiro
сообщение Jan 13 2008, 22:23
Сообщение #29


Знающий
****

Группа: Свой
Сообщений: 781
Регистрация: 3-10-04
Из: Санкт-Петербург
Пользователь №: 768



Спасибо, познавательно.
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Jan 14 2008, 07:45
Сообщение #30


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

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



Цитата(den_realan @ Jan 13 2008, 00:02) *
А для эмуляции метастабильности можно описать триггер так:
при нарушении setup/hold выход переходит в X, а затем в D. Где D - 0 или 1 произвольно. При любых значениях должно работать нормально.
Длительность X - длительности метастабильного состояния. (можно взять 1/2 или 3/4 периода)

Это самоуспокоение какое-то. Триггер НЕ ДОЛЖЕН попадать в метастабильное состояние. Поэтому и ставится там X на весь период.
Потом, если вы сделаете случайное выпадение в валидное состояние через пол-периода - то будете ошибку искать вечность. Так делаете в симуляторе ChaseX на любом развалившемся выходе - и он вас приводит в то место и время, когда у элемента входы валидны, а выход - X. А так будете ручками все, ручками, а postPAR модели ох как велики. Я уж не говорю про случаи, когда случайные ошибки будут друг друга компенсировать.
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 Текстовая версия Сейчас: 25th June 2025 - 00:01
Рейтинг@Mail.ru


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