Подскажите, есть ли какие-нибудь грамотные приёмы для преодоления этого явления ресурсами самого чипа.
Как побороть "дребезг".
- Сообщения: 251
- Зарегистрирован: Вт апр 29, 2008 14:19:10
- Откуда: Великий Новгород (не путать с Нижним)
Делаю проект на ПЛИС MAX II. В симуляции всё выглядит вполне прилично, а в железе получается, что при записи в регистры происходит не 1 запись, а несколько. При чём, и по фронту и по спаду сигнала WR. Навешивал R/C фильтр - помогает, но не радикально. Да и некрасиво как-то, сопли одним словом.
Подскажите, есть ли какие-нибудь грамотные приёмы для преодоления этого явления ресурсами самого чипа.
Подскажите, есть ли какие-нибудь грамотные приёмы для преодоления этого явления ресурсами самого чипа.
- Реклама
- Сообщения: 251
- Зарегистрирован: Вт апр 29, 2008 14:19:10
- Откуда: Великий Новгород (не путать с Нижним)
Да нет, не кнопки. И "дребезгом" я это назвал чисто условно. На самом деле, не знаю, что это. Возможно переходные процессы на индуктивности входных проводов. По крайней мере, фильтр немного уменьшает это явление, триггер шмидта на входе, похоже, решил проблему, но хотелось бы по возможности обойтись без внешних "соплей".
- Сообщения: 251
- Зарегистрирован: Вт апр 29, 2008 14:19:10
- Откуда: Великий Новгород (не путать с Нижним)
В проекте 16 регистров, в которые данные пишутся в один адрес, друг за другом. Дык вот, счётчик, который раздаёт эти данные по регистрам, мельтешит. Т.е. считает не по разу, а по несколько.
- Реклама
Если ты подключаешь к своей плате что-то внешнее, будь то датчики, или исполнительные устройства или ещё что-то, то надо соблюдать некие правила.
Причём, для входных цепей - одни, а для выходных - другие, а есть и общие для всех..
..
Это называется грамотным проектированием устройств..
Только - без обид..
Сейчас очень много развелось "дилетантов-чайников", которые нахватавшись верхушек - сразу берутся за что-то более-менее сложное,
а потом, когда это не работает как надо, то удивляются..
Есть проектирование - от слова "проект",
а тут встретил "проектировку" - это от слова "проЖект" наверное..
..
Если хочешь конкретный ответ - приведи кусок схемы и сформулируй конкретный вопрос.. С удовольствием отвечу..
Могу те, порекомендовать одну книжку, но она у мя дома..
Названия сейчас не вспомню - длинное...
Причём, для входных цепей - одни, а для выходных - другие, а есть и общие для всех..
..
Это называется грамотным проектированием устройств..
Только - без обид..
Сейчас очень много развелось "дилетантов-чайников", которые нахватавшись верхушек - сразу берутся за что-то более-менее сложное,
а потом, когда это не работает как надо, то удивляются..
Есть проектирование - от слова "проект",
а тут встретил "проектировку" - это от слова "проЖект" наверное..
..
Если хочешь конкретный ответ - приведи кусок схемы и сформулируй конкретный вопрос.. С удовольствием отвечу..
Могу те, порекомендовать одну книжку, но она у мя дома..
Названия сейчас не вспомню - длинное...
- Сообщения: 251
- Зарегистрирован: Вт апр 29, 2008 14:19:10
- Откуда: Великий Новгород (не путать с Нижним)
Да приводить "кусок схемы", мне кажется, нет смысла. Тут кусок не получится, придётся вываливать весь "прожект"
. Дело в том, что схема-то из нескольких кусков. Это надо все составные части сюда вываливать. А проблема-то ясна и на пальцах - счётчик по каждому фронту инкрементит не на 1-цу, а на 2-3-5-7 и т.д. И по спаду тоже иногда дёргается. То есть, да, как ты и говоришь, обыкновенный "звон" входных верёвок. Дык вот хотелось бы побороть это как-то внутри ПЛИСки. Снаружи, вроде бы удалось, но это ж не гламурно. 
- Сообщения: 251
- Зарегистрирован: Вт апр 29, 2008 14:19:10
- Откуда: Великий Новгород (не путать с Нижним)
Ну да, это про тот цифровой тестер. Каналы у меня уже работают. Щас делаю контроллер. С ISA хочу перейти на IDE. Поскольку адресное пространчтво маловато, приходится грузить и выгружать канальные регистры по очереди через один адрес.
А как это тактировать запись? Т.е., пустить через DFF, к примеру? Тогда опять-таки будет дело случая. Клок DFF-а вполне иногда может прийти одновременно с мусором на линии WR.
Мне так кажется.
А по типу ИР22 это как будет? LATCH? У меня всё DFF. Да и не в регистрах же проблема (повторяюсь). Забудем об регистрах. С ними всё хорошо. Колбасится счётчик, который этим регистрам включает ENABLE.
А как это тактировать запись? Т.е., пустить через DFF, к примеру? Тогда опять-таки будет дело случая. Клок DFF-а вполне иногда может прийти одновременно с мусором на линии WR.
Мне так кажется.
А по типу ИР22 это как будет? LATCH? У меня всё DFF. Да и не в регистрах же проблема (повторяюсь). Забудем об регистрах. С ними всё хорошо. Колбасится счётчик, который этим регистрам включает ENABLE.
Последний раз редактировалось Штабскапитан Овечкин Чт янв 29, 2009 18:20:39, всего редактировалось 1 раз.
с мусором на линии WR
Это, что за линия WR по которой идёт мусор..
Любой сигнал записи данных, куда-то, должен выставляться активным, после гарантированного нахождения данных на шине..
И не должен содержать никакого мусора..
..
А насчёт тактированной записи - мя подумал, что ты внутри ПЛИСки сделал стек регистров и в них пишешь..
..
Стандарт на IDE не читал, но принципы обмена везде одинаковы..
..
У тя вообще буфера между ПЛИС и IDE имеются или как на входе, т.е. "ничего нет"..?
Это, что за линия WR по которой идёт мусор..
Любой сигнал записи данных, куда-то, должен выставляться активным, после гарантированного нахождения данных на шине..
И не должен содержать никакого мусора..
..
А насчёт тактированной записи - мя подумал, что ты внутри ПЛИСки сделал стек регистров и в них пишешь..
..
Стандарт на IDE не читал, но принципы обмена везде одинаковы..
..
У тя вообще буфера между ПЛИС и IDE имеются или как на входе, т.е. "ничего нет"..?
- Сообщения: 251
- Зарегистрирован: Вт апр 29, 2008 14:19:10
- Откуда: Великий Новгород (не путать с Нижним)
Буфера - это внешние какие-то? Нет, снаружи ничего. Сразу из порта в ПЛИСку. Или такое недопустимо? Тогда и вопрос снимается.
Под мусором я разумею как раз "звон" длинной верёвки. А то, что IDE выставляет WR корректно, т.е. на фоне стабильного адреса и данных, это никоим образом в моём случае не спасает. Ещё раз повторю (может быть недостаточно толково объяснил) - идёт счёт сигнала WR, а потом уже запись в соответствующий регистер, на который укажет счётчик.
Под мусором я разумею как раз "звон" длинной верёвки. А то, что IDE выставляет WR корректно, т.е. на фоне стабильного адреса и данных, это никоим образом в моём случае не спасает. Ещё раз повторю (может быть недостаточно толково объяснил) - идёт счёт сигнала WR, а потом уже запись в соответствующий регистер, на который укажет счётчик.
- Сообщения: 251
- Зарегистрирован: Вт апр 29, 2008 14:19:10
- Откуда: Великий Новгород (не путать с Нижним)
Понял. Значит надо ставить шмиттер на входе и не выделываться. Ну что ж. Раз так все делают, значит и меня это устраивает. Тем более, что оно даже и работает!
Будем считать, что вопрос исчерпан.
Будем считать, что вопрос исчерпан.
- Сообщения: 70
- Зарегистрирован: Пт янв 30, 2009 18:02:40
- Сообщения: 251
- Зарегистрирован: Вт апр 29, 2008 14:19:10
- Откуда: Великий Новгород (не путать с Нижним)
Если не трудно, по-подробне. Что это за схема?
- Сообщения: 70
- Зарегистрирован: Пт янв 30, 2009 18:02:40
Ну, я, наверное, сгоряча назвал схемку мажоритарной - она даже проще, это, скорее, интегратор. Ну, представьте сдвиговый регистр на n разрядов (чем больше n, тем ниже должна быть частота внешнего сигнала, обычно n = 3...4). Вот. На вход регистра подаём наш приходящий сигнал (со звоном), тактируем его самой высокой внутренней частотой. Тоже понятно. Этой же частотой тактируем ещё один D-триггер (со входом разрешения!). На его D вход подаём сигнал с одного из разрядов (любого) нашего регистра. А вот вход разрешения... тут самое интересное. Его соединяем с выходом схемки, которая формирует "1", только если на её входах - а они соединены с выходами всё того же регистра - одинаковые значения. Или все "0", или все "1". Эту схемку Вы, наверное, и сами можете нарисовать. Всё! Теперь высокочастотный "звон" подавлен.
- Сообщения: 70
- Зарегистрирован: Пт янв 30, 2009 18:02:40
Да, ещё "вдогонку". Как уже говорилось, линию всё-таки очень желательно согласовать. Худший вариант передачи сигнала - длинный ненагруженный "хвост". Ну, или нагруженный только на КМОП вход, что почти одно и тоже.
А вышеописанная схема у нас применяется уже много лет. Только желательно её ставить на все "звенящие" входы - и данные, и стробы, тогда задержки между ними нет.
А вышеописанная схема у нас применяется уже много лет. Только желательно её ставить на все "звенящие" входы - и данные, и стробы, тогда задержки между ними нет.
- Сообщения: 251
- Зарегистрирован: Вт апр 29, 2008 14:19:10
- Откуда: Великий Новгород (не путать с Нижним)
Спасибо! Идея понятна. Другими словами, если я всё правильно понял, надо дождаться момента, когда на выходах регистра соберутся все 1-цы. По правде сказать, мне такое приходило в голову. Но думал, что, может быть, существует более элегантрое решение.
- Сообщения: 70
- Зарегистрирован: Пт янв 30, 2009 18:02:40
Или все единицы, тогда на выходе D-триггера "1", или все нули, тогда на его выходе - "0". В других случаях на его выходе состояние остаётся прежним!!! Только так!Штабскапитан Овечкин писал(а):Спасибо! Идея понятна. Другими словами, если я всё правильно понял, надо дождаться момента, когда на выходах регистра соберутся все 1-цы. По правде сказать, мне такое приходило в голову. Но думал, что, может быть, существует более элегантрое решение.
А когда сделаете соответствующую комбинационную схему. увидете, что интегратор получается достаточно-таки элегантным.


