воскресенье, 7 ноября 2010 г.

Формирователь кодограммы на ПЛИС


Проект является демонстрацией схемотехнического формирования последовательной кодограммы длиной 80 бит (0...79).



Состав

Структурно основной модуль 'main' включает следующие макроблоки:
  1. RS-TRIGGER
  2. DIV-SUM
  3. DIV24
  4. FK (или альтернативный FK)
Макроблок FK включает в себя макроблоки BP0-19, BP20-39, BP40-59 и BP60-79.

Описание работы

По приходу импульса запуска CP положительной полярности защелкивается RS-триггер, разрешающий счет тактовых импульсов макроблоку DIV-SUM. Макроблок DIV-SUM осуществляет сдвиг начала кодограммы от импульса запуска на заданный интервал, и реализован на классическом счетчике и Flip-Flop триггере-делителе на два. По срабатыванию триггера-делителя на два (формирующего меандр) с выхода макроблока DIV-SUM дается разрешение работы макроблока DIV24, который формирует длительность каждого импульса (бита) в кодограмме. В макроблоке DIV24 для удобства задания интервала установлен двоично-десятичный дешифратор. С выхода макроблока DIV24 счетные импульсы с заданной длительностью поступают на счетный вход асинхронного счетчика CB8CE, разрешение работы которого определяется макроблоком DIV-SUM, т.е. начало кодограммы. С выхода счетчика код поступает на формирователь кодограммы - макроблок FK (или альтернативный FK, реализованный на дешифраторах). FK представляет собой не что иное, как преобразователь параллельного кода в последовательный. Принцип работы данного преобразователя очень прост - по заданной комбинации со счетчика производится логическое умножение заданного кода на заданный сигнал (единичный бит), т.е. для каждого из 0...79 битов задана соответствующая комбинация кода со счетчика, далее все сигналы складываются по ИЛИ. Таким образом, для каждого момента времени на выходе схемы сложения будет присутствовать свой бит из параллельного кода. Для того, чтобы в остальные моменты времени за пределами начала и конца кодограммы на выходе формирователя кодограммы присутствовал нулевой уровень, разрешение прохождения реализуется схемой "И" по разрешению счета с выхода макроблока DIV-SUM. Для того, чтобы обеспечить синхронность передачи последовательного кода и исключения "дрючков" переключения из-за разности задержек, на вход схемы "И" добавлены FD-триггеры, привязанные к общим тактам. По коду 80 = 01010000 схемой дешифратора по "И" формируется общий сброс всех макроблоков и счетчика для окончания (запрета) кодограммы, и перекидывающий RS-триггер в начальное состояние до прихода следующего импульса запуска.

Особенности реализации
  1. Для уменьшения наводок и влияния помех, трассировка печатной платы должна выполняться с одним сплошным слоем металлизации, блокировочными керамическими емкостями около питающих пинов. Все незадействованные пользовательские пины I/O посажены внутри ПЛИС на землю и сконфигурированы как выходы.
  2. Все счетчики и триггеры асинхронные.
  3. Использование библиотечных дешифраторов в макроблоке альтернативного FK уменьшает размер проекта лишь на 1% по сравнению с собственными макроблоками дешифраторов BP0-19, BP20-39, BP40-59 и BP60-79 (так что оправданность отказа от библиотечных сомнительна).
Схемотехника

...распиновка на схеме под CPLD XC95288TQ144-10.

 Видео



забрать архив

Комментариев нет:

Отправить комментарий

В комментариях уважайте собеседника, внимательно читайте посты и не додумывайте. Просьбы и предложения из разряда: «можно ваш Skype/Viber/телефон», «напишите мне в vk/FB», а также другие им подобные — игнорируются. Выход новых версий ПО, внешняя ссылка, переставшая работать с течением времени и т.п. не является основанием для претензий. Желающие спокойно подискутировать и высказаться — Welcome. Желающие спонсировать блог — Donate. Нарушение этих простых правил ведет к бану и удалению комментариев без предупреждения.