Наводка - далеко не единственная возможная причина пободного поведения, если Вы используете не готовые электронные компоненты, а проектируете свои. Это цифровая микроэлектроника. В ней запросто возможны "плавающие" баги, на счет раз. Взять, скажем, "метастабильность", класс ошибок, возникающий на границе клоковых доменов. Развел один раз - все работает. Почти ничего не менял, выполнил синтез прошивки заново - хроенак - и уже не работает.
Вот этот симптом:
"Сначала мне удалось установить систему в расположении белых точек - они определялись цветовым паттерном точек вокруг. Что было уже прикольно, заподозрили шлейф и аналоговую багу."
На самом деле не позволяет исключить ошибку в цифровой части в ПЛИС, а наоборот, говорит в его пользу. Внутри видеоконтроллера есть "миксер", который смешивает два слоя (видео и меню), и он находится как раз близко к границе клокового домена. Белая точка - может проявляться при ошибке переполнения арифметики в миксере. Нараз, учитывая, что там вообще-то не RGB, а довольно странный YCrCb. Первое, что я сделал - попросил программистов снять выход цифровым граббером внутри ПЛИС, и проверить диапазоны значений YCrCb, и мы в самом деле нашли ошибки переполнения. Однако, их устранение не помогло :). В рассказ я это включать не стал.
Так что все далеко не так просто, когда речь идет о микроэлектронике.
Вот этот симптом:
"Сначала мне удалось установить систему в расположении белых точек - они определялись цветовым паттерном точек вокруг. Что было уже прикольно, заподозрили шлейф и аналоговую багу."
На самом деле не позволяет исключить ошибку в цифровой части в ПЛИС, а наоборот, говорит в его пользу. Внутри видеоконтроллера есть "миксер", который смешивает два слоя (видео и меню), и он находится как раз близко к границе клокового домена. Белая точка - может проявляться при ошибке переполнения арифметики в миксере. Нараз, учитывая, что там вообще-то не RGB, а довольно странный YCrCb. Первое, что я сделал - попросил программистов снять выход цифровым граббером внутри ПЛИС, и проверить диапазоны значений YCrCb, и мы в самом деле нашли ошибки переполнения. Однако, их устранение не помогло :). В рассказ я это включать не стал.
Так что все далеко не так просто, когда речь идет о микроэлектронике.
Reply
Reply
Leave a comment