Введение
При практическом проектировании устройств, в которых предполагается использование ПЛИС Spartan‑6, необходимо организовать ее питание, загрузку конфигурации и подключить выводы, имеющие специальное или двойное назначение. Эти вопросы подробно освещены в документации , однако для разработчиков, находящихся на этапе выбора элементной базы для нового проекта, желательно иметь сжатую, но при этом исчерпывающую информацию о конкретных действиях, которые они должны произвести с прежде не использованной микросхемой. В практике многих инженеров наверняка встречались конструкции, требовавшие доработки из-за пропущенного pull-up-резистора или несоблюдения правил включения микросхемы в нужном режиме. В данной статье описаны основные вопросы, касающиеся обязательных соединений для Spartan‑6, позволяющих разработчикам оценить, какие дополнительные компоненты понадобятся им для проекта, как ПЛИС дополнительно нагрузит подсистему питания и т. п. Речь пойдет в первую очередь о двух представителях семейства Spartan‑6 — XC6SLX4 и XC6SLX9, которые выпускаются в планарных корпусах TQFP144. Остальные актуальные на сегодня FPGA Xilinx существуют только в корпусах BGA, что заставляет искать соответствующее оборудование для монтажа.
Приборы и Измерения
Схемы измерительных приборов
Этот раздел посвящен измерительному и вспомогательному оборудованию которое необходимо для радиолюбительской лаборатории или мастерской: различные генераторы, измерители ESR, вспомогательное оборудование необходимое телемастеру, самодельные приборы и так далее…
Самодельные измерительные приборы
Приставка к мультиметру для измерения ESR конденсаторовESR-метр из китайского стрелочного прибораПростой испытатель транзисторов (проверка h21э)простой генератор на ОУГенераторы звуковых частотАктивный щуп для осциллографаДвухлучевой осциллограф из однолучевогоПростой измеритель ESR с питанием 1,5VИзмеритель RCLПрибор для проверки параметров аккумуляторовПрибор для измерения индуктивностиПрибор для проверки конденсаторовПрибор для проверки электролитических конденсаторовЛогический пробник с семисегментным индикаторомПрибор для определения межвитковых замыканийПрибор для проверки полевых транзисторовИндикатор плохих контактовИзмеритель емкости конденсаторов на операционном усилителеКак измерить электромагнитное излучение мультиметромИндикатор электрического поляЧастотомер на микроконтроллере ATtiny2313Измеритель длины изделийИзмеритель идентичности веществРезонансный частотомерОсциллограф из телевизораСамодельный счетчик ГейгераРеле в качестве генератораГенератор синусоидального сигнала на логических микросхемахСветодиодный осциллографИзмеритель емкости и индуктивностиLC измеритель на простой логикеРадиолюбительские приборы для измерения индуктивностисчётчик Гейгера из неоновой лампыИндикатор высокочастотного излученияМетодика проверки дросселя или индуктивности на насыщениеПортативный прибор для измерения сопротивлений и емкостиВолномер FM диапазонаДетектор наличия аудио сигналаПробник транзисторов со светодиодной индикациейЛогический щуп-пробникВысокочастотный генератор (до 15 мГц)Генератор импульсов треугольной и прямоугольной формыНесложный транзисторный генератор звуковой частотыПрибор для проверки транзисторов и диодов без выпаиванияСветодиодный испытатель транзисторовУниверсальный измерительный приборИзмеритель нелинейных искаженийЧастотомер- измеритель емкостиМилливольтметр переменного токаИскровой дефектоскопПрибор для измерения влажности, температуры и освещенности почвыШирокополосный генератор шумаФункциональный генератор на XR2206Лабораторный генератор звуковой частотыПрибор для определения параметров стабилитронаПростейший генератор для ремонта телевизоровПростейший Ом-метрПрибор для проверки оксидных конденсаторов без выпаиванияИзмеритель емкости конденсаторовДоработка авометра Ц435Щуп-генератор для проверки радиоприемного трактаПробник универсальныйСветозвуковой пробникФункциональный генератор с электронной перестройкой частотыГенератор ЗЧ на микросхеме К174УН7Генератор тональных импульсовИзмеритель емкости- приставка к мультиметру DT-830B (М-830В)Измеритель емкости аккумуляторовГенератор-пробник для проверки трактов ПЧ и ЗЧЧастотомер из радиоприемникаПрибор для проверки пультовПрибор для проверки работоспособности кварцевых резонаторовГенератор функциональныйЛогический щуп без источника питанияИспытатель операционных усилителейМикровольтметр для проверки аудиоустройствЦифровой вольтметр со светодиодным индикаторомГенератор периодических импульсовГенератор НЧ на основе К174УН7Индикатор напряжения с автоматическим переключением пределов измеренийФазометрГенератор частоты 50 ГцЛогический пробник с цифровой индикацией
Схемы промышленных приборов
Ц4317МПрибор Ц4326Прибор Ц4342Прибор Ц4353Mastech М266F (C) схемаMastech MS2001Mastech m932мультиметр Mastech MY6013Мультиметр Mastech MY61 схемаМультиметр Mastech MY62мультиметр Mastech MY63мультиметр Mastech MY64мультиметр Mastech MY65мультиметр Mastech MY68мультиметр Mastech M300мультиметр Mastech M320мультиметр Mastech M3900Мультиметр М830мультиметр MASTECH M-832мультиметр MASTECH M-838мультиметр MASTECH M-890мультиметр MASTECH MAS-830, 830Lмультиметр MASTECH MAS-838мультиметр MASTECH M 93 (93А)Мультиметр DT9208A схема и характеристикимультиметр MASTECH M 9502мультиметр MASTECH MS 8220 схемамультиметр MASTECH MS 8221 схемамультиметр MASTECH MS 8222 схемаМультиметры APPA107, APPA207 схемаОсциллограф ОМЛ-2МОсциллограф ЛО-70Телетест Ласпи ТТ-03Генератор ГЗ-118Осциллограф ВМ556АОсциллограф С1-64Осциллограф С1-49Осциллограф С1-71Осциллограф С1-73Осциллограф С1-96Осциллограф С1-103Осциллограф С1-131Авометр (тестер) Ц20. Схема, доработки
ПЗУ для ПЛИС
ПЛИС 5578ТС084 и 5578ТС094, выпускаемые отечественной промышленностью, — достаточно новые функциональные аналоги изделий EP3C16 и EP3C25 от компании Altera. Для сравнения с предыдущей версией, 5578ТС024 , функциональным аналогом ЕР2С8, параметры ПЛИС представлены в таблице 1.
Параметр |
5578ТС024 |
5578ТС084 |
5578ТС094 |
Количество логических элементов |
7200 |
15 408 |
24 624 |
Объем встроенной памяти, бит |
368 640 |
516 096 |
608 256 |
Количество умножителей 18×18, шт. |
20 |
56 |
66 |
Количество пользовательских выводов |
172 |
84 |
195 |
Количество глобальных цепей тактирования |
8 |
16 |
16 |
Количество блоков PLL |
4 |
4 |
|
Количество каналов LVDS |
|||
Максимально возможная тактовая частота, МГц |
138* |
125* |
125* |
Корпус |
4244.256-3 |
4248.144-1 |
4251.304-2 |
Напряжение ядра, В |
1,8 |
1,2 |
1,2 |
Напряжение периферии, В |
3,3 |
2,5 |
2,5 |
Примечание. *Параметр получен косвенным путем по формуле f = 1/τ из параметра: минимальный интервал межрегистровой пересылки.
Для хранения конфигурационных данных ПЛИС 5578ТС084(094) АО «КТЦ «Электроника» рекомендует применять ОППЗУ 5578РС025 объемом 8 Мбит, а для 5578ТС024 — ЭСППЗУ 5578РС015 объемом 2 Мбит.
Новые ПЛИС выполнены по 90‑нм КМОП-технологии и обладают преимуществом характеристик в сравнении с 5578ТС024, а это означает увеличенное количество аппаратных умножителей, блоков пользовательской памяти и, что не менее важно, наличие блоков ФАПЧ (PLL), однако здесь по-прежнему отсутствуют LVDS. На данный момент имеется несколько ПЗУ отечественного производства для конфигурирования ПЛИС серий 5576 и 5578 (табл. 2)
На данный момент имеется несколько ПЗУ отечественного производства для конфигурирования ПЛИС серий 5576 и 5578 (табл. 2).
Модель |
ТИП ПЗУ |
Uпитания, В |
Объем, Мбит |
Режим конфигурации |
Корпус |
5576РС1У |
ЭСППЗУ |
3,3 |
4 |
PS, AS |
Н09.28-1В |
5576РТ1У |
ОППЗУ |
3,3 |
1 |
PS, AS |
5134.64-6 |
5578РС015 |
ЭСППЗУ |
3,3 |
2 |
PS, AS, FPP |
Н09.28-1В |
5578РТ025 |
ОППЗУ |
2,5 |
8 |
PS, FPP |
Н16.48-2В |
5578РТ035 |
ОППЗУ |
2,5 |
16 |
PS, FPP |
5134.64-6 |
5578РТ044 |
ОППЗУ |
2,5 |
24 |
PS, FPP |
4235.88-1 |
Как видно из таблицы 2, среди основных характеристик ПЗУ для конфигурирования ПЛИС особое внимание обращает на себя то, что львиная доля ПЗУ имеет однократное программирование. На этапе проектирования модуля или прибора, где может быть применима ПЛИС, конфигурируемая с внешней ПЗУ, не всегда удобно использовать ПЗУ однократного действия
Особенно если речь идет о модернизации программного обеспечения на стадии опытного образца или готового изделия
На этапе проектирования модуля или прибора, где может быть применима ПЛИС, конфигурируемая с внешней ПЗУ, не всегда удобно использовать ПЗУ однократного действия. Особенно если речь идет о модернизации программного обеспечения на стадии опытного образца или готового изделия.
Одним из авторов статьи, опубликованной в журнале «Компоненты и технологии» , был описан метод конфигурирования ПЛИС 5578ТС024 с ЭСППЗУ 5576РС1У от компании АО «ПКК Миландр», а также способ получения *.pof-файла прошивки для одной ЭСППЗУ . Для использования 5576РС1У с новыми ПЛИС 5578ТС084(094) необходимо учесть, что напряжение питания ПЛИС составляет 2,5 В, а ЭСППЗУ — 3,3 В. По этой причине для согласования сигналов между ПЛИС и ЭСППЗУ автор рекомендует применять микросхему 8‑разрядного шинного формирователя выходных уровней 5572ИН2АУ или проработать схему согласования с помощью транзисторов (рис. 1) и расположить их на обратной стороне платы печатного монтажа.
Рис. 1. Схема согласования
Схема подключения ЭСППЗУ 5576РС1У с ПЛИС должна выполняться согласно спецификации на микросхему (рис. 2).
Рис. 2. Схема включения ПЛИС с несколькими конфигурационными микросхемами
Сборка
Сборка прибора не должна вызвать особых проблем и при отсутствии ошибок монтажа и исправных деталях частотомер должен заработать сразу. В противном
случае, надо покаскадно проверить прохождение сигнала от входа до микроконтроллера. Проще всего сделать это осциллографом.
На плате надо распаять только один из формирователей Analog-1 или Analog-2. Вообще, в использовании оригинального формирователя Analog-2 сейчас нет
никакого смысла (ну разве что отсутствие необходимых для Analog-1 деталей и потребности проверять кварцы).
Плата в сборе:
К сожалению, на изготовленных платах обнаружилось пара ошибок. Первая — в формирователе Analog-1 — вывод резистора R15 (470 Ом) висит в воздухе.
Исправить можно просверлив рядом отверстие и прокинув небольшую перемычку как показано на фото. Как вариант, можно кинуть провод через одно из
свободных отверстий чтобы не сверлить новые.
Вторая ошибка — пропущено соединение между выводом 5 микросхем 74hct132 и выводом 2 микросхемы 74hct93, для исправления надо кинуть проводок
как на фото:
5 Вопросы для самопроверки:
- С чем связана погрешность регулировки частоты сигнала. Какие параметры влияют на это.
- С чем связана погрешность регулировки начальной фазы сигнала, какие параметры влияют на это.
- Почему при сдвиге начальной фазы значение сдвига нужно добавлять до усечения?
- Почему уровень паразитных гармоник в сигнале зависит от кода частоты?
- Какие факторы определяют уровень паразитных гармоник в спектре сигнала DDS, каким образом?
- При каких значениях разрядности ЦАП наращивать разрядность фазы теряет смысл?
- Каким образом с помощью DDS получить сигналы прямоугольной, треугольной и пилообразной формы?
Источники тактовых сигналов
У FPGA нет внутри высококачественного источника тактового сигнала. Среди аппаратных примитивов есть генератор, используемый в Master-режимах загрузки конфигурации (когда FPGA является источником тактового сигнала для внешней флэш-памяти), однако он имеет большой разброс номинального значения частоты между отдельными микросхемами. Рекомендуется использовать внешний кварцевый генератор (рис. 8), подключаемый к входу, помеченному как GCLK (Global Clock).
Рис. 8. Внешний вид внешнего кварцевого генератора
Отдельным вопросом является повторение схемы с внешним кварцевым резонатором (не интегральным генератором). Если широко известная схема на дискретных логических компонентах выглядит, как показано на рис. 8, очевидным желанием может быть ее повторение на базе FPGA, где в качестве инверторов выступали бы программируемые ячейки ПЛИС. Формально данная схема имеет право на существование, однако на практике ее параметры нестабильны. Стоимость интегрального генератора несущественно превышает стоимость отдельного кварцевого резонатора, но для резонатора можно подобрать такое сочетание параметров ПЛИС и взаимного размещения ячеек, реализующих инверторы генератора, что надежный запуск этой схемы окажется под вопросом. Здесь можно отметить, что эксперименты с реализацией генератора на базе FPGA не являются доказательством надежной работы такой схемы во всем диапазоне допустимых условий эксплуатации и, что особенно актуально для одиночных экспериментов, при серийном изготовлении изделий. Поэтому, если нет острой необходимости, не следует экономить на данном компоненте проекта.
Тактовые генераторы внутри FPGA имеют собственный диапазон допустимых входных частот. Для Spartan‑6 он составляет 5–350 МГц. Это означает, что, например, популярная частота 4 МГц не может быть использована для DCM (что подтверждается экспериментально). Однако сами DCM могут сформировать эту частоту из внешнего тактового сигнала.
При подключении генератора с высокой (свыше 100 МГц) частотой рекомендуется использовать дифференциальный интерфейс. Для этого необходим специальный выход генератора в виде дифференциальной пары, подключаемой к GCLK_P- и GCLK_N-входам FPGA. Входы не могут быть выбраны произвольно среди всех P и N тактовых входов, а должны образовывать дифференциальную пару на кристалле. Ввод дифференциального сигнала в проект при этом выполняется с помощью специального буфера IBUFGDS (входной глобальный тактовый буфер с дифференциальным входом).
Частотомер на PIC16F628 своими руками
Первым делом рассмотрим простую и дешевую схему частотомера. Он может измерять сигналы от 16 до 100Гц с максимальной амплитудой 15В. Чувствительность высокая, разрешение — 0,01 Гц. Входной сигнал может быть синусоидальной, прямоугольной или треугольной волной.
Частотомер может использоваться во многих приложениях. Например, для наблюдения за точностью генератора, для измерения частоты сети или нахождения оборотов двигателя, соединенного с датчиком.
Схема частотомера и необходимые детали для монтажа
Файл печатной платы представлен в формате PDF, архив можно скачать ниже. Вы можете сделать плату используя метод ЛУТ.
CCP (Capture(Захват)/Compare(Сравнение)/PWM(ШИМ)) модуль PIC-микроконтроллера считывает входной сигнал. Используется только функция захвата.
Необходимые детали для сборки частотомера:
- МК PIC 8-бит — PIC16F628A (PIC16F628-04/P).
- 4 биполярных транзистора — BC547.
- 2 керамических конденсатора — 22 пФ.
- 12 резисторов — 1х4.7 кОм, 4х1 кОм, 7х330 Ом.
- Кварц — 4 МГц.
- 4 семисегментных индикатора (общий катод).
Радиоэлементы для изоляции:
- Биполярный транзистор — BC547.
- Выпрямительный диод — 1N4148
- Оптопара — 4N25M.
- 4 резистора — 2х1 кОм, 1х10 кОм, 1х470 Ом.
Необходимые комплектующие для сборки питания:
- Линейный регулятор — LM7805.
- 2 электролитических конденсатора — 100 мкФ, 16В.
- 2 полиэфирных конденсатора — 220 нФ.
Дисплеи — красные, 7-сегментные светодиодные, 14,2 мм с общим катодом.
Рекомендации по подключению частотомера
Перед измерением частоты входного сигнала, он должен быть преобразован в прямоугольный. Для этой цели используется схема оптической развязки с оптроном 4N25. Таким образом, входной сигнал надежно изолирован от микроконтроллера и превращается в меандр. Амплитуда сигнала не должна превышать 15В. Если это произойдет, резистор 1кОм может сгореть. Если вы хотите измерить частоту сети, вы должны использовать 220В/9В трансформатор.
Схема DDS-генератора сигналов
Напряжение питания должно быть в пределах 8–12В. При большем напряжении схема может быть повреждена. Нужно быть осторожными с полярностью при подключении питания.
Принципиальная схема счетчика (частотомера) приведена в файле проекта. Есть 4 дисплея, которые работают по методу мультиплексирования (динамическая индикация). Для измерения вывод RB3 подключен к выходу оптического изолятора. 5 вывод второго дисплея подключен к питанию через резистор 1 кОм, так что точка после второго дисплея горит. Это соединение не показано на схеме.
C-код, написанный в PIC C компиляторе, доступен для скачивания. HEX также прилагается.
Мы использовали два дополнительных разъема. Первый (18 контактный, 2 ряда) для микроконтроллера PIC16F628, и второй (40 контактный, 2 ряда).
Видео о сборке частотомера на PIC16F628A:
Настройка генераторов тактовых сигналов
Компоненты DCM и PLL имеют довольно много сигналов, и их применение в проекте требует определенного внимания. В то же время для формирования внутреннего тактового сигнала настоятельно рекомендуется использовать именно такую схему. Для упрощения настройки DCM и PLL можно воспользоваться инструментом Clocking Wizard, интерфейс которого показан на рис. 9.
Рис. 9. Настройка генератора тактовых сигналов
Результат работы данного мастера — сгенерированное IP-ядро с настроенным формирователем тактового сигнала. Также создается шаблон для его использования в проекте в структурном стиле. Его пример приведен ниже. Курсивом выделены сигналы, которые должны быть введены пользователем.
clock_generator : clock port map (-- Clock in ports CLK_IN1 => CLK_IN, -- Clock out ports CLK_OUT1 => clk, CLK_OUT2 => clk_2);
Схема входной цепи
Большое значение при измерениях частоты имеет качество входного каскада — формирователя сигнала. Он должен иметь высокое входное сопротивление чтобы не оказывать влияния на измеряемую цепь и преобразовывать сигналы любой формы в последовательность прямоугольных импульсов. В данной конструкции применена схема согласующего каскада с полевым транзистором на входе:
Эта схема частотомера, конечно, не лучшая из возможных, но всё-таки обеспечивает более-менее приемлемые характеристики. Она была выбрана в основном исходя из общих габаритов конструкции, которая получилась очень компактная. Вся схема собрана в пластиковом корпусе-футляре от зубной щётки:
Микросхемы и прочие элементы запаяны на узкой полоске макетной платы и все соединения сделаны с помощью проводов типа МГТФ. При настройке входного каскада-формирователя сигнала следует подбором сопротивлений R3 и R4 добиться установления напряжения 0,1…0,2 вольт на истоке полевого транзистора. Транзисторы здесь можно заменить на аналогичные, достаточно высокочастотные.
Работа схемы
Схема устройства представлена на следующем рисунке.
ЖК дисплей в схеме предназначен для отображения измеренной частоты. Ко входу ‘Wave Input’ будет подсоединяться наш генератор сигналов. Триггер Шмитта (микросхема 74LS14) нужен для того, чтобы на вход платы Arduino Uno поступала строго прямоугольная волна. Для фильтрации нежелательных помех в схему добавлены два конденсатора, включенных по питанию. Наш частотомер будет способен измерять частоты до 1 МГц.
Схема используемого нами генератора сигналов на основе таймера 555 представлена на следующем рисунке.
Этот генератор представляет собой так называемый несинхронизованный мультивибратор. Данный генератор будет необходим нам для того, чтобы проверить корректность работы нашего проектируемого частотомера – то есть нам будет необходимо устройство, частота колебаний которого нам будет известна. С его помощью мы и будем тестировать наш частотомер. Внешний вид собранного на макетной плате генератора прямоугольных колебаний показан на следующем рисунке.
Типовая же схема несинхронизованного мультивибратора на основе таймера 555, которую мы использовали для создания нужного нам генератора колебаний, выглядит следующим образом:
Частота выходного сигнала данного генератора зависит от резисторов RA, RB, конденсатора C и может быть рассчитана по формуле:
Frequency (F) = 1/ (Time period) = 1.44/ ((RA+RB*2)*C).
Подставляя в данную формулу значения номиналов резисторов и емкости конденсатора, мы можем рассчитать частоту колебаний на выходе представленной схемы.
Мы в данной схеме заменили резистор RB на потенциометр для того, чтобы можно было изменять частоту колебаний генератора. Для простоты эксперимента вы можете заменить его на обычный резистор – тогда частоту на выходе схемы вы изменять не сможете.
Частотомер — цифровая шкала. Схема и инструкция по монтажу
Рассматриваемое устройство выполняет функции:
- частотомера с выводом измеренного значения частоты в герцах (до 8 разрядов);
- цифровой шкалы с АПЧ генератора плавного диапазона (ГПД) для радиолюбительского трансивера;
- электронных часов.
Основу устройства составляет программируемый контроллер PIC16F84 фирмы Microchip. Быстродействие и широкие функциональные возможности этого контроллера позволяют подавать сигнал частотой до 50 МГц прямо на его счетный вход, то есть можно обойтись без предварительного делителя, обычно применяемого в устройствах подобного типа.
Основные характеристики цифрового частотомера
- Диапазон измеряемых частот — 0–50 МГц.
- Диапазон программируемых значений ПЧ — 0–16 МГц.
- Минимальный уровень входного сигнала — 200 мВ.
- Время измерения частоты — 1 с.
- Погрешность измерения — ±1 Гц.
- Напряжение питания — 5±0,5 В.
- Ток потребления устройства — не более 30 мА.
Наличие электрически перепрограммируемой памяти данных внутри PIC16F84 позволило без специального оборудования перепрограммировать значение промежуточной частоты (ПЧ). Это дает возможность оперативно встраивать цифровую шкалу в трансивер с любым (0–16 МГц) значением промежуточной частоты.
Смотрите схему измерителя емкости конденсаторов
В качестве устройства индикации применен модуль ЖКИ от телефонных аппаратов типа Panaphone. Ввод информации в модуль осуществляется по двум линиям в последовательном коде. Полезной оказалась встроенная функция электронных часов. Малый ток потребления обуславливает малые помехи радиоприемной аппаратуре, в которую может встраиваться данное устройство.
Цифровой частотомер — схема и её описание, необходимые комплектующие
Список необходимых радиоэлементов:
- Микросхема (DD1) — КР1554ЛА3.
- МК PIC 8-бит (DD2) — PIC16F84A.
- 2 биполярных транзистора (VT1, VT2) — КТ368А и КТ315Б.
- 6 диодов (VD1–VD6) — КД521Б.
- 3 конденсатора (С1, С2, С6) — 0.1 мкФ, 0.033 мкФ, 68 пФ.
- Электролитический конденсатор (С3, С4, С7) — 6.8 мкФ и 2х100 мкФ.
- Подстроечный конденсатор (С5) — 68 пФ.
- 14 резисторов — R1 (330 Ом); R2 (47 кОм); R3, R4, R6, R8–R11 (7х15 кОм); R5, R12–R14 (4х5.1 кОм); R7 (430 Ом).
- Кварцевый резонатор (ZQ1) — 4 МГц.
- LCD-дисплей (HG1) — КО-4В, от телефонного аппарата.
- 3 тактовых кнопки S1, S2, WR_IF.
- Кнопка на размыкание НК.
- Батарея питания — 1.5 В.
- Блок питания — 5В.
На транзисторе VT1 и микросхеме DD1 выполнен формирователь входного сигнала. Микросхема DD2 выполняет функции контроллера частотомера, цифровой шкалы с АПЧ, управления модулем ЖКИ, а также позволяет оперативно изменять режим работы устройства.
Если на выводе 1 микросхемы DD2 присутствует уровень логической «1», то прибор выполняет функцию частотомера, если уровень логического «0» — цифровой шкалы. В режиме цифровой шкалы на индикатор выводится значение частоты входного сигнала равное Рвх+Р„ч при наличии уровня логической «1» на выводе 2 микросхемы DD2; или Fвх-Fпч — при уровне логического «0» на выводе 2 DD2.
Смотрите, как сделать щуп для осциллографа
Для записи необходимого значения Fпч надо в режиме частотомера подать на вход устройства сигнал с частотой Fпч (сигнал опорного генератора или телеграфного гетеродина, настроенных на центральную частоту полосы пропускания фильтра ПЧ), а на вывод 8 микросхемы DD2 на время 1,5–2 с подать уровень логического «0». Значение Fпч сохраняется в памяти при отключении питания и может неоднократно (не менее 106 раз) перепрограммироваться приведенным выше способом.
Система АПЧ ГПД работает следующим образом. После измерения частоты входного сигнала производится анализ числа равного сотням герц и, если оно четное, на вывод 8 микросхемы DD2 выдается уровень логического «0». Если нечетное, на вывод 8 микросхемы DD2 выдается уровень логической «1». Эти логические сигналы, предварительно проинтегрировав, можно использовать для управления емкостью варикапа в контуре ГПД. В результате осуществляется стабилизация частоты возле четных значений сотен герц с точностью ±10 Гц.
В режиме цифровой шкалы можно осуществить гашение десятков и единиц герц, если установить уровень логического «0» на выводе 9 микросхемы DD2.
Для перевода устройства в режим электронных часов необходимо нажать кнопку «НК». Для корректировки часов и минут служат кнопки «S1» и «S2».
Печатная плата частотомера:
Скачать прошивку и исходный код можно ниже:
Функциональные схемы
Для достижения максимально возможной частоты обработки при реализации комплексного умножения на ПЛИС фирмы Xilinx следует использовать аппаратный блок DSP48, который содержит в себе умножитель, сумматор, предварительный сумматор, а так же наборы триггеров для входных/выходных данных и промежуточных результатов вычислений. В качестве примера будут рассмотрены схемы на основе DSP48E1.
Один из таких вариантов реализации «Схемы 1» представлен на рисунке 3.
Рисунок 3 – реализация «Схемы 1» на блоках DSP48
Как видно из рисунка, данный вариант комплексного умножителя полностью укладывается в ресурсы аппаратных блоков DSP48E1 без использования дополнительной логики. Блоки 0 и 1 используются для расчета действительной части, 2 и 3 – мнимой части выходного числа.
Ввиду того, что умножитель DSP48E1 имеет разрядность 25×18, это накладывает ограничения на максимальную разрядность входных данных. В данном случае для входа A выбрана разрядность 25 бит, для входа B– 18 бит. Выход в таком случае будет иметь разрядность 44 бита.
Латентность данной схемы равняется четырем тактам.
«Схему 2» можно реализовать аналогичным образом, если использовать предварительный сумматор, как показано на рисунке 4.
Рисунок 4 — реализация «Схемы 2» на блоках DSP48
Как видно из рисунка, данный вариант также полностью укладывается в ресурсы DSP48E1 и при этом используется на один аппаратный блок меньше. Блоки 0 и 1 используются для расчета действительной части, 1 и 2 – мнимой части выходного числа.
В данной схеме дополнительные ограничения на разрядность входных данных вносит тот факт, что данные поступают на предварительный сумматор и умножитель в различных комбинациях, поэтому максимальная разрядность входов A и B равна 17 битам. Выход в таком случае будет иметь разрядность 35 бит.
Латентность данной схемы также равняется четырем тактам.
Формирование выходного тактового сигнала
Семейство Spartan‑6 имеет некоторые ограничения по трассировке внутренних цепей. Они не являются критичными, но не позволяют напрямую вывести тактовый сигнал на внешний вывод микросхемы. Вместо этого необходимо использовать прием, именуемый clock forwarding. Тактовый сигнал действительно нельзя подать непосредственно на выход ПЛИС, однако его можно подать на тактовый вход триггера ODDR, находящегося непосредственно в нужном блоке ввода/вывода. Этот триггер не может быть автоматически применен синтезатором и требует установки в структурном стиле, как показано в примере ниже. В этом примере жирным шрифтом выделены строки, сигналы в которых требуют заполнения разработчиком. На рис. 10 показано технологическое представление синтезированной схемы.
Рис. 10. Технологическое представление схемы формирования выходного тактового сигнала
ODDR2_clka_inst: ODDR2 generic map ( DDR_ALIGNMENT => "NONE", — Sets output alignment to "NONE", "C0", "C1" INIT => '0', — Sets initial state of the Q output to '0' or '1' SRTYPE => "SYNC") — Specifies "SYNC" or "ASYNC" set/reset port map ( Q => gen_clk, — 1‑bit output data C0 => clk, — 1‑bit clock input C1 => not (clk), — 1‑bit clock input CE => clk_en, — 1‑bit clock enable input D0 => '1', — 1‑bit data input (associated with C0) D1 => '0', — 1‑bit data input (associated with C1) R => '0', — 1‑bit reset input S => '0' — 1‑bit set input );
Схема работает следующим образом. Триггер ODDR имеет два входа данных — D0 и D1, связанных с тактовыми входами C0 и C1 соответственно. В примере видно, что на D0 подана логическая единица, а на D1 — логический ноль. Поэтому по фронту тактового сигнала clk, который также подан на C0, триггер запишет логическую единицу (с D0), а по спаду clk, который после инвертирования окажется фронтом для C1, будет записан логический ноль с D1. Временные диаграммы работы такой схемы изображены на рис. 11. Таким образом, на выходе окажется не сам тактовый сигнал, а данные, которые будут меняться точно так же. Этот прием может быть применен и для других семейств ПЛИС Xilinx, однако для Spartan‑6 он является обязательным.
Рис. 11. Временные диаграммы работы триггера ODDR