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

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

|
Прибор с кристаллом XC2S30. Загрузка кристалла 99% (хотя добавление или убирание кода не влияет на эту цифру).Одна часть работает на частоте 50 МГц. Из них формируется 1МГц на которой работает вторая часть схемы. На 1МГц работает автомат состояний, который в зависимости от разводки кристалла ЗБОИТ  , т.е. может заходить в промежуточное состояние и после этого соответсвенно нужна его инициализация. Переделка схемы на работу всего кристалла на 50 МГц, приводит к тем же результатам! Также наблюдаются збои некоторых регистров, причем самопроизвольно, без привязки ко времени и процессам Всякое видел, но такое впервые. Правда надо сказать, что разводка земель не ахти, но кондюки распаяны на каждую ногу, как положено. Какие будут мысли, рекомендации. Понятно, что плату нужно переразводить, но что-то мне подсказывает, что собака не там зарыта.
--------------------
Электроника - наука о контактах.
|
|
|
|
|
 |
Ответов
(15 - 29)
|
Oct 24 2005, 16:42
|
Местный
  
Группа: Свой
Сообщений: 342
Регистрация: 21-02-05
Пользователь №: 2 804

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

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

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

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

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

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

|
Цитата(DmitryR @ Jan 11 2008, 15:00)  А симулятор бывает и Spice, как справедливо уже тут замечали. Но не требуется на самом деле ни то, ни другое: когда система работает неправильно - обычно всем все равно, как именно неправильно она работает. Хе. Проверяется именно, что в НЕПРАВИЛНЫх условиях схема работает ПРАВИЛЬНО. Это разговор уже дальше уйдет в тестовое покрытие функционала...
--------------------
Насколько проще была бы жизнь, если бы она была в исходниках
|
|
|
|
|
Jan 12 2008, 21:02
|
Знающий
   
Группа: Свой
Сообщений: 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 периода)
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|