Блок задержки импульсов

Полезная модель относится к измерительной технике, а именно к устройствам многоканальной программируемой цифровой задержки пускового импульса, которые служат для синхронизации по пусковому импульсу регистрирующих приборов в физическом эксперименте. Пусковой импульс задерживается на разные времена в каналах задержки многоканального устройства, благодаря этому запуск регистрирующих приборов, например осциллографов и АЦП, производится в необходимые моменты времени.
Наиболее близким к заявленному блоку (прототипом) является устройство задержанного пуска [1], содержащее источник питания, канал пускового импульса, генератор, микроконтроллер, канал выходного импульса, канал связи с компьютером, формирователь задержки, содержащий канал задержки; в канале задержки содержится регистр кода задержки, регистр кода длительности, счетчик задержки, счетчик длительности, первый триггер; отличающееся тем, что формирователь задержки спроектирован в программируемой логической интегральной схеме (ПЛИС) и дополнительно содержит умножитель частоты; канал задержки в ПЛИС дополнительно содержит умножитель двоичных чисел, второй, третий и четвертый триггеры, логический элемент И, счетчик задержки и счетчик длительности являются двоичными счетчиками с входом синхронной загрузки, первый и четвертый триггеры являются синхронными RS триггерами, второй и третий триггеры являются синхронными D триггерами; кроме того устройство дополнительно содержит контроллер Ethernet; при этом генератор соединен с тактовым вводом ПЛИС, тактовый ввод ПЛИС соединен внутри ПЛИС с тактовым входом умножителя частоты, выход которого соединен в канале задержки с тактовым входом первого, второго, третьего, четвертого триггеров, с тактовым входом счетчика задержки и счетчика длительности; канал пускового импульса соединен с первым вводом ПЛИС, первый ввод ПЛИС соединен внутри ПЛИС в канале задержки с входом второго триггера, выход которого соединен с входом третьего триггера и с первым входом логического элемента И, второй вход логического элемента И соединен с инверсным выходом третьего триггера, а выход логического элемента И соединен с входом синхронной установки в лог. «1» четвертого триггера и с входом синхронной загрузки счетчика задержки, выход переполнения счетчика задержки соединен с входом синхронной загрузки счетчика длительности, с входом синхронной установки в лог. «1» первого триггера и с входом синхронной установки в лог. «0» четвертого триггера, выход четвертого триггера соединен с входом разрешения счета счетчика задержки, вход данных счетчика задержки соединен с выходом данных умножителя двоичных чисел, вход данных умножителя двоичных чисел соединен с выходом данных регистра кода задержки; канал выходного импульса соединен со вторым вводов ПЛИС, второй ввод ПЛИС соединен внутри ПЛИС в канале задержки с выходом первого триггера и с входом разрешения счета счетчика длительности, выход переполнения счетчика длительности соединен с входом синхронной установки в лог. «0» первого триггера; вход данных счетчика длительности в канале задержки соединен с выходом данных регистра кода длительности; шина данных микроконтроллера соединена с шиной данных контроллера Ethernet и с группой третьих вводов ПЛИС, группа третьих вводов ПЛИС соединена внутри ПЛИС в канале задержки с входом данных регистра кода задержки; контроллер Ethernet соединен с каналом связи с компьютером, канал связи с компьютером является каналом интерфейса Ethernet; выходы источника питания соединены с цепями питания генератора, ПЛИС, микроконтроллера и контроллера Ethernet.
Недостатком прототипа является большая погрешность времени задержки пускового импульса при заданной тактовой частоте в ПЛИС.
Погрешность времени задержки пускового импульса в прототипе зависит от тактовой частоты в ПЛИС. Для уменьшения погрешности в прототипе нужно увеличивать тактовую частоту в ПЛИС, но тактовая частота в ПЛИС ограничена максимальной частотой срабатывания триггеров в ПЛИС.
Техническим результатом полезной модели является уменьшение погрешности времени задержки пускового импульса при заданной тактовой частоте в ПЛИС.
Технический результат достигается тем, что блок задержки импульсов, содержащий канал пускового импульса, генератор, микроконтроллер, канал выходного импульса, контроллер Ethernet, канал связи с компьютером, программируемую логическую интегральную схему (ПЛИС), содержащую умножитель частоты, первый, второй, третий и четвертый триггеры, первый элемент И, первый счетчик задержки, первый счетчик длительности, регистр кода задержки, регистр кода длительности, при этом первый счетчик задержки и первый счетчик длительности являются двоичными счетчиками с входом синхронной загрузки, первый и четвертый триггеры являются синхронными RS триггерами, второй и третий триггеры являются синхронными D триггерами; при этом генератор соединен с тактовым вводом ПЛИС, тактовый ввод ПЛИС соединен внутри ПЛИС с тактовым входом умножителя частоты, первый выход которого соединен с тактовым входом первого, второго, третьего, четвертого триггеров, с тактовым входом первого счетчика задержки и первого счетчика длительности; канал пускового импульса соединен с первым вводом ПЛИС, первый ввод ПЛИС соединен внутри ПЛИС с D-входом второго триггера, выход которого соединен с D-входом третьего триггера и с первым входом первого элемента И, второй вход первого элемента И соединен с инверсным выходом третьего триггера, а выход первого элемента И соединен с S-входом синхронной установки в лог. «1» четвертого триггера и с входом синхронной загрузки первого счетчика задержки, выход переполнения первого счетчика задержки соединен с входом синхронной загрузки первого счетчика длительности, с S-входом синхронной установки в лог. «1» первого триггера и с R-входом синхронной установки в лог. «0» четвертого триггера, выход четвертого триггера соединен с входом разрешения счета первого счетчика задержки, вход данных первого счетчика задержки соединен с выходом данных регистра кода задержки; выход первого триггера соединен с входом разрешения счета первого счетчика длительности, выход переполнения первого счетчика длительности соединен с R-входом синхронной установки в лог. «0» первого триггера; вход данных первого счетчика длительности соединен с выходом данных регистра кода длительности; канал выходного импульса соединен со вторым вводом ПЛИС, шина данных микроконтроллера соединена с шиной данных контроллера Ethernet и с группой третьих вводов ПЛИС, группа третьих вводов ПЛИС соединена внутри ПЛИС с входом данных регистра кода задержки; контроллер Ethernet соединен с каналом связи с компьютером, канал связи с компьютером является каналом интерфейса Ethernet; ПЛИС дополнительно содержит пятый, шестой, седьмой и восьмой триггеры, второй элемент И, второй счетчик задержки, второй счетчик длительности, элемент ИЛИ, при этом второй счетчик задержки и второй счетчик длительности являются двоичными счетчиками с входом синхронной загрузки, пятый и восьмой триггеры являются синхронными RS триггерами, шестой и седьмой триггеры являются синхронными D триггерами; при этом второй выход умножителя частоты соединен с тактовым входом пятого, шестого, седьмого, восьмого триггеров, с тактовым входом второго счетчика задержки и второго счетчика длительности, первый ввод ПЛИС соединен внутри ПЛИС с D-входом шестого триггера, выход которого соединен с D-входом седьмого триггера и с первым входом второго элемента И, второй вход второго элемента И соединен с инверсным выходом седьмого триггера, а выход второго элемента И соединен с S-входом синхронной установки в лог. «1» восьмого триггера и с входом синхронной загрузки второго счетчика задержки, выход переполнения второго счетчика задержки соединен с входом синхронной загрузки второго счетчика длительности, с S-входом синхронной установки в лог. «1» пятого триггера и с R-входом синхронной установки в лог. «0» восьмого триггера, выход восьмого триггера соединен с входом разрешения счета второго счетчика задержки, вход данных второго счетчика задержки соединен с выходом данных регистра кода задержки; выход первого триггера соединен с первым входом элемента ИЛИ, выход пятого триггера соединен со вторым входом элемента ИЛИ и с входом разрешения счета второго счетчика длительности, выход переполнения второго счетчика длительности соединен с R-входом синхронной установки в лог. «0» пятого триггера; вход данных второго счетчика длительности соединен с выходом данных регистра кода длительности, второй ввод ПЛИС соединен внутри ПЛИС с выходом элемента ИЛИ.
На фиг. 1 представлена структурная схема блока задержки импульсов.
На фиг. 2 представлены временные диаграммы формирования задержки пускового импульса.
На фиг. 3 представлены временные диаграммы формирования длительности выходного импульса.
Принятые обозначения на фиг. 1:
1 - генератор;
2 - канал пускового импульса;
3 - ПЛИС - программируемая логическая интегральная схема;
4 - умножитель частоты в ПЛИС, имеет первый выход, второй выход;
5 , 6 - второй и шестой триггеры соответственно, имеют вход D синхронной записи;
7 , 8 - третий и седьмой триггеры соответственно, имеют вход D синхронной записи;
9 , 10 - первый элемент И, второй элемент И соответственно;
11 , 12 - четвертый и восьмой триггеры соответственно, имеют:
вход S синхронной установки в лог. «1»;
вход R синхронной установки в лог. «0»;
13 , 14 - первый счетчик задержки, второй счетчик задержки соответственно, имеют:
вход Sload синхронной загрузки;
вход Data данных;
вход Cnt_En разрешения счета;
выход Сout переполнения;
15 - регистр кода длительности, имеет:
выход данных;
16 , 17 - первый и пятый триггеры соответственно, имеют:
вход S синхронной установки в лог. «1»;
вход R синхронной установки в лог. «0»;
18 , 19 - первый счетчик длительности, второй счетчик длительности соответственно, имеют:
вход Sload синхронной загрузки;
вход Data данных;
вход Cnt_En разрешения счета;
выход Сout переполнения;
20 - элемент ИЛИ;
21 - регистр кода задержки, имеет:
вход данных;
выход данных.
22 - канал выходного импульса;
23 - микроконтроллер;
24 - шина данных;
25 - контроллер Ethernet;
26 - канал связи с компьютером - канал интерфейса Ethernet.
Принятые обозначения на фиг. 2 и фиг. 3:
С0 - тактовые импульсы на первом выходе умножителя 4 с нулевой фазой. Импульсы С0 распространяются по выделенным линиям внутри ПЛИС 3 с минимальной и одинаковой задержкой на тактовые входы триггеров 5, 7, 11, 16 и счетчиков 13, 18.
С1 - тактовые импульсы на втором выходе умножителя 4 с фазой 180 градусов, т. е. запаздывающие на 1/2 периода относительно импульсов С0. Импульсы С0, С1 одной частоты. Импульсы С1 распространяются по выделенным линиям внутри ПЛИС 3 на тактовые входы триггеров 6, 8, 12, 17 и счетчиков 14, 19.
Т(0; 1; 2 и т.д.) - порядковые метки положительных фронтов импульсов С0 относительно условного начала генерации. Например, метка Т2 показывает местоположение фронта второго импульса С0 на временной шкале.
Т(0+1/2; 1+1/2; 2+1/2 и т.д.) - порядковые метки положительных фронтов импульсов С1, запаздывающих на 1/2 периода относительно импульсов С0. Например, метка Т(2+1/2) показывает местоположение фронта второго импульса С1 относительно второго импульса С0.
m - число периодов тактовой частоты, равное коду задержки пускового импульса, содержащемуся в регистре 21;
n - число периодов тактовой частоты, равное коду длительности выходного импульса, содержащемуся в регистре 15.
Тр.5_вх, Тр.6_вх - пусковой импульс на входе D триггеров 5 и 6;
Тр.5_вых, Тр.6_вых - импульс на выходе триггеров 5 и 6;
Тр.7_вых, Тр.8_вых - импульс на инвертирующем выходе триггеров 7 и 8;
И9_вых, И10_вых - импульс на выходе элементов 9 и 10;
Сч.13_вых, Сч.14_вых - выход данных счетчиков 13 и 14 задержки (на фиг. 1 не показан);
Тр.11_вых, Тр.12_вых - уровень на выходе триггеров 11 и 12;
Сч.13_Cout, Сч.14_Cout - импульс переполнения счетчиков 13 и 14 задержки;
Сч.18_вых, Сч.19_вых - выход данных счетчиков 18 и 19 длительности (на фиг. 1 не показан);
Тр.16_вых, Тр.17_вых - уровень на выходе триггеров 16 и 17;
Сч.18_Cout, Сч.19_Cout - импульс переполнения счетчиков 18 и 19 длительности;
ИЛИ20_вых - импульс на выходе элемента 20.
Блок задержки импульсов (см. фиг. 1) содержит генератор 1, соединенный с тактовым вводом ПЛИС 3, тактовый ввод ПЛИС 3 соединен внутри ПЛИС 3 с тактовым входом умножителя 4 частоты; первый выход умножителя 4 соединен с тактовым входом второго триггера 5, с тактовым входом третьего триггера 7, с тактовым входом четвертого триггера 11, с тактовым входом первого триггера 16, с тактовым входом первого счетчика 13 задержки и с тактовым входом первого счетчика 18 длительности; второй выход умножителя 4 соединен с тактовым входом шестого триггера 6, с тактовым входом седьмого триггера 8, с тактовым входом восьмого триггера 12, с тактовым входом пятого триггера 17, с тактовым входом второго счетчика 14 задержки и с тактовым входом второго счетчика 19 длительности; канал 2 пускового импульса соединен с первым вводом ПЛИС 3, первый ввод ПЛИС 3 соединен внутри ПЛИС 3 с D-входом триггеров 5 и 6, выход триггера 5 соединен с D-входом триггера 7 и с первым входом первого логического элемента И 9, второй вход элемента И 9 соединен с инвертирующим выходом триггера 7, а выход элемента И 9 соединен с S-входом триггера 11 и с входом «Sload» счетчика 13, выход «Сout» счетчика 13 соединен с входом «Sload» счетчика 18, а также с S-входом триггера 16 и с R-входом триггера 11, выход триггера 11 соединен с входом «Cnt_En» счетчика 13, вход «Data» счетчика 13 соединен с выходом данных регистра 21 кода задержки; выход триггера 6 соединен с D-входом триггера 8 и с первым входом второго логического элемента И 10, второй вход элемента И 10 соединен с инвертирующим выходом триггера 8, а выход элемента И 10 соединен с S-входом триггера 12 и с входом «Sload» счетчика 14, выход «Сout» счетчика 14 соединен с входом «Sload» счетчика 19, а также с S входом триггера 17 и с R-входом триггера 12, выход триггера 12 соединен с входом «Cnt_En» счетчика 14, вход «Data» счетчика 14 соединен с выходом данных регистра 21 кода задержки; канал 22 выходного импульса соединен со вторым вводом ПЛИС 3, второй ввод ПЛИС 3 соединен внутри ПЛИС 3 с выходом логического элемента ИЛИ 20, первый вход элемента ИЛИ 20 соединен с выходом триггера 16 и с входом «Cnt_En» счетчика 18, выход «Сout» счетчика 18 соединен с R-входом триггера 16, второй вход элемента ИЛИ 20 соединен с выходом триггера 17 и с входом «Cnt_En» счетчика 19, выход «Сout» счетчика 19 соединен с R-входом триггера 17, вход «Data» счетчиков 18 и 19 соединен с выходом данных регистра 15 кода длительности; шина 24 данных микроконтроллера 23 соединена с шиной данных контроллера 25 Ethernet и с группой третьих вводов ПЛИС 3, группа третьих вводов ПЛИС 3 соединена внутри ПЛИС с входом данных регистра 21 кода задержки; контроллер 25 Ethernet соединен с каналом 26 связи с компьютером, канал 26 связи с компьютером является каналом интерфейса Ethernet. Контроллер 25 Ethernet обеспечивает подключение блока к компьютеру с целью управления блоком (компьютер на фиг. 1 не показан). Питание генератора 1, канала 2 пускового импульса, ПЛИС 3, канала 22 выходного импульса, микроконтроллера 23, контроллера 25 Ethernet осуществляется от внешнего источника питания (на фиг. 1 внешний источник питания не показан).
Генератор 1 служит для генерации высокочастотных импульсов синхронизации, которые подаются на тактовый ввод ПЛИС 3. Генератор 1 может быть выполнен, например, на микросхеме B525CEM3 100.000MHZ фирмы BFC (Brookdale Frequency Controls), которая генерирует прямоугольные импульсы частотой 100МГц с относительной стабильностью 5×10-6 .
Канал 2 пускового импульса служит для приема пускового импульса. В канале 2 производится дискриминация пускового импульса по уровню порогового напряжения и формирование прямоугольного пускового импульса на уровне лог. «1», который подается на первый ввод ПЛИС 3. Канал 2 может содержать, например, компараторы MAX912 фирмы MAXIM (задержка распространения не более 10 нс), которые не пропускают в ПЛИС 3 пусковой импульс ниже положительного и выше отрицательного уровня напряжения и формируют на выходе прямоугольный импульс. Уровни порогового напряжения могут формировать, например, микросхема ЦАП MAX506, микросхема опорного напряжения MAX873, операционный усилитель ICL7611 - все фирмы MAXIM (на фиг. 1 эти схемы не показаны).
В ПЛИС 3 спроектированы из внутренних логических элементов с помощью программных средств умножитель 4 частоты, триггеры 5, 6, 7, 8, 11, 12, 16, 17, счетчики 13, 14 задержки, счетчики 18, 19 длительности, регистр 15 кода длительности, регистр 21 кода задержки, элементы И 9, И10, ИЛИ 20. ПЛИС 3 может являться, например, программируемой логической интегральной схемой EP3C16F484C6 семейства Cyclone III фирмы ALTERA, имеющей следующие ресурсы: 15,5 тыс. логических элементов, 504 Кбит памяти, двоичные умножители и сумматоры, выделенные тактовые линии синхронизации, четыре умножителя частоты и четыре тактовых ввода, общее количество вводов 484. Максимальная частота переключения триггеров и счетчиков в ПЛИС 3 - 330 МГЦ. Программа конфигурирования ПЛИС 3 хранится в микросхеме Flash памяти EPCS16SI8 фирмы ALTERA, содержащей 16 Кбит памяти (Flash память на фиг. 1 не показана).
Умножитель 4 частоты внутри ПЛИС 3 служит для умножения частота генератора 1 на программируемый коэффициент вплоть до максимальной внутренней частоты, а также фазового сдвига выходных импульсов на программируемую величину фазы или времени. Тактовые импульсы с выходов умножителя 4 распространяются внутри ПЛИС 3 по выделенным тактовым линиям синхронизации на тактовые входы триггеров 5, 6, 7, 8, 11, 12, 16, 17 и счетчиков 13, 14, 18, 19.
Триггеры 5, 6, 7, 8 внутри ПЛИС 3 являются синхронными D триггерами.
Триггеры 5 и 6 служат для синхронизации пускового импульса с тактовыми импульсами С0 и С1 внутри ПЛИС 3.
Элементы 9 и 10 внутри ПЛИС 3 выполняет двухвходовую логическую функцию «И».
Элемент 20 внутри ПЛИС 3 выполняет двухвходовую логическую функцию «ИЛИ».
Триггеры 11, 12, 16, 17 внутри ПЛИС 3 являются синхронными RS триггерами с входом S установки в лог. «1» и входом R сброса в лог. «0».
Счетчики 13, 14 задержки и счетчики 18, 19 длительности являются внутри ПЛИС 3 двоичными счетчиками с входом «Sload» синхронной загрузки, входом «Cnt_En» разрешения счета, входом «Data» данных и выходом «Сout» переполнения.
Триггеры 5, 7 и элемент И 9 служат для формирования импульса загрузки кода задержки из регистра 21 в счетчик 13 по входу «Sload» синхронно с тактовыми импульсами С0 в начале пускового импульса.
Триггеры 6, 8 и элемент И 10 служат для формирования импульса загрузки кода задержки из регистра 21 в счетчик 14 по входу «Sload» синхронно с тактовыми импульсами С1 в начале пускового импульса.
Счетчики 13 и 18 служат для счета тактовых импульсов С0 внутри ПЛИС 3.
Счетчики 14 и 19 служат для счета тактовых импульсов С1 внутри ПЛИС 3.
Триггер 11 служит для управления счетчиком 13 по входу «Cnt_En», разрешая счет импульсов С0 в начале пускового импульса и запрещая при достижении кода задержки.
Триггер 12 служит для управления счетчиком 14 по входу «Cnt_En», разрешая счет импульсов С1 в начале пускового импульса и запрещая при достижении кода задержки.
Триггер 16 служит для управления счетчиком 18 по входу «Cnt_En», разрешая счет импульсов С0 после достижении кода задержки и запрещая при достижении кода длительности.
Триггер 17 служит для управления счетчиком 19 по входу «Cnt_En», разрешая счет импульсов С1 после достижении кода задержки и запрещая при достижении кода длительности.
Регистр 21 кода задержки внутри ПЛИС 3 служит для оперативного хранения двоичного кода программируемой задержки.
Регистр 15 кода длительности внутри ПЛИС 3 служит для оперативного хранения двоичного кода длительности выходного импульса.
Микроконтроллер 23 хранит в постоянной памяти программу работы, код порога срабатывания, код задержки и др. При подаче напряжения питания микроконтроллер 23 записывает код порога в ЦАП канала 2, код задержки в ПЛИС 3 в регистр 21. Микроконтроллер 23 может содержать, например, микросхему LPC2294 фирмы NXP Semiconductors и кварцевый резонатор РК386М-5АМ-14745,6К. Микросхема LPC2294 содержит 32-бит ARM ядро, 16 Кбайт ОЗУ, 256 Кбайт Flash памяти программ, работает на частотах до 60 МГц. Микроконтроллер 23 имеет 32-бит шину данных.
Контроллер 25 Ethernet служит для поддержки интерфейса Ethernet и может содержать, например, микросхему DM9000 фирмы Davicom и кварцевый резонатор РК386М-5АМ-25000К. Контроллер 25 Ethernet имеет 32-бит шину данных.
Канал 22 выходного импульса служит для формирования выходного импульса. Канал 22 содержит формирователь амплитуды (12 В), фронта (5 нс) и мощности выходного импульса на нагрузку 50 Ом (формирователь на фиг. 1 не показан). Может быть реализован, например, на транзисторах 2Т3129А9 и КТ3172А9, обеспечивающих фронт нарастания напряжения 5 нс.
Шина 24 данных служит для передачи команд и данных между микроконтроллером 23, ПЛИС 3 и контроллером 25 Ethernet.
Канал 26 связи с компьютером служит для физической связи блока с компьютером по интерфейсу Ethernet. Канал 26 может содержать, например, трансформатор J00-0065NL фирмы Pulse.
В блоке с помощью микроконтроллера 23 и контроллера 25 Ethernet посредством шины 24 данных и канала 26 связи с компьютером осуществляется программное управление блоком благодаря виртуальной панели управления на экране компьютера: запись порога срабатывания, запись кода задержки и др.
Все элементы с 1 по 26, установлены на общей печатной плате поверхностным или объемным монтажом. Связи между элементами выполнены печатным способом на общей печатной плате. Печатная плата на фиг.1 не показана.
Блок задержки импульсов работает следующим образом.
После включения питания, происходит инициализация микроконтроллера 23 и загрузка программы конфигурации в ПЛИС 3 из микросхемы Flash памяти (микросхема Flash памяти на фиг.1 не показана). При загрузке программы конфигурации в ПЛИС 3 записывается двоичный код длительности выходного импульса в регистр 15. Микроконтроллер 23 приступает к выполнению программы, хранящейся в его постоянной памяти.
Под управлением микроконтроллера 23 по шине 24 через группу третьих вводов ПЛИС 3 проходит команда установки в лог. «0» триггеров 5, 6, 7, 8, 11, 12, 16, 17 и счетчиков 13, 14, 18, 19 внутри ПЛИС 3. Микроконтроллер 23 записывает код порога в ЦАП канала 2 (запись порога в ЦАП производится через ПЛИС 3 по цепям, которые на фиг. 1 не показаны). Микроконтроллер 23 записывает в ПЛИС 3 двоичный код задержки. Код задержки поступает по шине 24 на группу третьих вводов ПЛИС 3, группа третьих вводов ПЛИС 3 соединена внутри ПЛИС 3 с входом данных регистра 21. Код порога, код задержки первоначально были загружены в постоянную память микроконтроллера 23 по шине 24 под управлением контроллера 25 Ethernet из компьютера по каналу 26 пользователем с помощью виртуальной панели управления блоком (компьютер на фиг. 1 не показан).
Импульсы генератора 1 поступают на тактовый ввод ПЛИС 3, далее внутри ПЛИС 3 они проходят на тактовый вход умножителя 4. Частота импульсов в умножителе 4 умножается на программируемый коэффициент. Тактовые импульсы на первом и втором выходах умножителя 4 сдвинуты по фазе относительно друг друга. Импульсы С0 на первом выходе умножителя 4 с нулевой фазой распространяются внутри ПЛИС 3 по выделенным тактовым линиям на тактовые входы триггеров 5, 7, 11, 16 и счетчиков 13, 18 (см. «С0» на фиг. 2). Импульсы С1 на втором выходе умножителя 4 со сдвигом по фазе на 180 градусов, т. е. с запаздыванием на 1/2 периода тактовой частоты, распространяются внутри ПЛИС 3 по другим выделенным тактовым линиям на тактовые входы триггеров 6, 8, 12, 17 и счетчиков 14, 19 (см. «С1» на фиг. 2).
В произвольный момент времени в канал 2 поступает пусковой импульс. Пусковой импульс, превысивший порог срабатывания, преобразуется в канале 2 в прямоугольный логический импульс уровня лог. «1», который поступает на первый ввод ПЛИС 3 и далее внутри ПЛИС 3 на вход «D» триггеров 5 и 6. На фиг. 2 показан пусковой импульс на входе «D» триггеров 5 и 6, положительный фронт которого, перепад уровня с лог. «0» на лог. «1», отмечен между метками Т1 и Т(1+1/2) (см. «Тр.5_вх, Тр.6_вх» на фиг. 2). Уровень лог. «1» записывается в триггер 5 по фронту Т2 импульсов С0 с небольшой задержкой срабатывания триггера 5 (см. «Тр.5_вых» на фиг. 2). Уровень лог. «1» с выхода триггера 5 поступает на вход «D» триггера 7 и на первый вход элемента И 9. Уровень лог. «1» записывается по фронту Т3 в триггер 7 с небольшой задержкой срабатывания триггера 7. Уровень лог. «0» с инвертирующего выхода триггера 7 поступает на второй вход элемента И 9 (см. «Тр.7_вых» на фиг. 2). В элементе И 9 происходит сравнение логических уровней по логике И, в результате на выходе элемента И 9 возникает импульс лог. «1» во втором периоде импульсов С0 с небольшой задержкой относительно фронтов Т2 и Т3 (см. «И9_вых» на фиг. 2). Аналогично, уровень лог. «1» записывается в триггер 6 по фронту Т(1+1/2) импульсов С1 с небольшой задержкой срабатывания триггера 6 (см. «Тр.6_вых» на фиг. 2). Уровень лог. «1» с выхода триггера 6 поступает на вход «D» триггера 8 и на первый вход элемента И 10. Уровень лог. «1» записывается по фронту Т(2+1/2) в триггер 8 с небольшой задержкой срабатывания триггера 8. Уровень лог. «0» с инвертирующего выхода триггера 8 поступает на второй вход элемента И 10 (см. «Тр.8_вых» на фиг. 2). В элементе И 10 происходит сравнение логических уровней по логике И, в результате на выходе элемента И 10 возникает импульс лог. «1» в первом периоде импульсов С1 с небольшой задержкой относительно фронтов Т(1+1/2) и Т(2+1/2) (см. «И10_вых» на фиг. 2). Импульс на выходе элемента И 9 задержан относительно импульса на выходе элемента И 10 на 1/2 периода тактовой частоты.
Импульс с выхода элемента И 9 поступает на вход «Sload» счетчика 13 и на вход «S» триггера 11. В счетчик 13 по фронту Т3 импульсов С0 через вход «Data» загружается код задержки с выхода данных регистра 21 (см. «Сч.13_вых» на фиг. 2). Одновременно по фронту Т3 триггер 11 устанавливается в лог. «1» с небольшой задержкой срабатывания триггера 11 (см. «Тр.11_вых» на фиг. 2). Аналогично, импульс с выхода элемента И 10 поступает на вход «Sload» счетчика 14 и на вход «S» триггера 12. В счетчик 14 по фронту Т(2+1/2) импульсов С1 через вход «Data» загружается код задержки с выхода данных регистра 21 (см. «Сч.14_вых» на фиг. 2). Одновременно по фронту Т(2+1/2) триггер 12 устанавливается в лог. «1» с небольшой задержкой срабатывания триггера 12 (см. «Тр.12_вых» на фиг. 2).
Уровень лог. «1» с выхода триггера 11 поступает на вход «Cnt_En» счетчика 13 и разрешает производить счет импульсов С0 в счетчике 13. В счетчике 13 по фронту импульсов С0, начиная с фронта Т4, каждый раз прибавляется единица к коду задержки в счетчике 13 вплоть до переполнения счетчика 13 (см. «Сч.13_вых» на фиг. 2 и 3). Аналогично, уровень лог. «1» с выхода триггера 12 поступает на вход «Cnt_En» счетчика 14 и разрешает производить счет импульсов С1 в счетчике 14. В счетчике 14 по фронту импульсов С1, начиная с фронта Т(3+1/2), каждый раз прибавляется единица к коду задержки в счетчике 14 вплоть до переполнения счетчика 14 (см. «Сч.14_вых» на фиг. 2 и 3).
При переполнении счетчика 13 на выходе «Cout» появляется импульс переполнения, расположенный в периоде (m+1) импульсов С0 с небольшой задержкой относительно фронтов Т(m+1) и Т(m+2) (см. «Сч.13_Cout» на фиг. 3). Импульс переполнения с выхода «Cout» счетчика 13 поступает на вход «R» триггера 11, на вход «Sload» счетчика 18 и на вход «S» триггера 16. Триггер 11 сбрасывается в лог. «0» по фронту Т(m+2) импульсов С0 (см. «Тр.11_вых» на фиг. 3). Уровень лог. «0» с выхода триггера 11 поступает на вход «Cnt_En» счетчика 13 и блокирует счет импульсов С0 в счетчике 13. В счетчик 18 по фронту Т(m+2) через вход «Data» загружается код длительности с выхода данных регистра 15 (см. «Сч.18_вых» на фиг. 3). Одновременно по фронту Т(m+2) триггер 16 устанавливается в лог. «1» с небольшой задержкой срабатывания триггера 16 (см. «Тр.16_вых» на фиг. 3). Уровень лог. «1» с выхода триггера 16 поступает на вход «Cnt_En» счетчика 18 и на первый вход элемента ИЛИ 20. Уровень лог. «1» на вход «Cnt_En» счетчика 18 разрешает производить счет импульсов С0 в счетчике 18. В счетчике 18 по фронту импульсов С0, начиная с фронта Т(m+3), каждый раз прибавляется единица к коду длительности вплоть до переполнения счетчика 18 (см. «Сч.18_вых» на фиг. 3).
При переполнении счетчика 14 на выходе «Cout» появляется импульс переполнения, расположенный в периоде (m+1/2) импульсов С1 с небольшой задержкой относительно фронтов Т(m+1/2) и Т(m+3/2) (см. «Сч.14_Cout» на фиг. 3). Импульс переполнения с выхода «Cout» счетчика 14 поступает на вход «R» триггера 12, на вход «Sload» счетчика 19 и на вход «S» триггера 17. Триггер 12 сбрасывается в лог. «0» по фронту Т(m+3/2) импульсов С1 (см. «Тр.12_вых» на фиг. 3). Уровень лог. «0» с выхода триггера 12 поступает на вход «Cnt_En» счетчика 14 и блокирует счет импульсов С1 в счетчике 14. В счетчик 19 по фронту Т(m+3/2) через вход «Data» загружается код длительности с выхода данных регистра 15 (см. «Сч.19_вых» на фиг. 3). Одновременно по фронту Т(m+3/2) триггер 17 устанавливается в лог. «1» с небольшой задержкой срабатывания триггера 17 (см. «Тр.17_вых» на фиг. 3). Уровень лог. «1» с выхода триггера 17 поступает на вход «Cnt_En» счетчика 19 и на второй вход элемента ИЛИ 20. Уровень лог. «1» на вход «Cnt_En» счетчика 19 разрешает производить счет импульсов С1 в счетчике 19. В счетчике 19 по фронту импульсов С1, начиная с фронта Т(m+5/2), каждый раз прибавляется единица к коду длительности вплоть до переполнения счетчика 19 (см. «Сч.19_вых» на фиг. 3).
В элементе ИЛИ 20 происходит сравнение логических уровней по логике ИЛИ, поэтому на выходе элемента ИЛИ 20 возникает уровень лог. «1» по фронту Т(m+3/2) импульсов С1, поступившему раньше фронта Т(m+2) импульсов С0 (см. «ИЛИ 20_вых» на фиг. 3).
При переполнении счетчика 18 на выходе «Cout» появляется импульс переполнения, расположенный в периоде (m+1+n) импульсов С0 с небольшой задержкой относительно фронтов Т(m+1+n) и Т(m+2+n) (см. «Сч.18_Cout» на фиг. 3). Импульс переполнения с выхода «Cout» счетчика 18 поступает на вход «R» триггера 16. Триггер 16 сбрасывается в лог. «0» по фронту Т(m+2+ n) импульсов С0 (см. «Тр.16_вых» на фиг. 3). Уровень лог. «0» с выхода триггера 16 поступает на вход «Cnt_En» счетчика 18 и на первый вход элемента ИЛИ 20. Уровень лог. «0» блокирует счет импульсов С0 в счетчике 18. На выходе элемента ИЛИ 20 уровень лог. «1» сбрасывается в лог. «0». Аналогично, при переполнении счетчика 19 на выходе «Cout» появляется импульс переполнения, расположенный в периоде (m+1/2+n) импульсов С1 с небольшой задержкой относительно фронтов Т(m+1/2+n) и Т(m+3/2+n) (см. «Сч.19_Cout» на фиг. 3). Импульс переполнения с выхода «Cout» счетчика 19 поступает на вход «R» триггера 17. Триггер 17 сбрасывается в лог. «0» по фронту Т(m+3/2+ n) импульсов С1 (см. «Тр.17_вых» на фиг. 3). Уровень лог. «0» с выхода триггера 17 поступает на вход «Cnt_En» счетчика 19 и на второй вход элемента ИЛИ 20. Уровень лог. «0» блокирует счет импульсов С1 в счетчике 19.
Импульс с выхода элемента ИЛИ 20 поступает на второй ввод ПЛИС 3 и далее в канал 22 выходного импульса. В канале 22 выходного импульса происходит усиление импульса по амплитуде и мощности.
Задержка пускового импульса, произведенная в ПЛИС 3, равна задержке импульса на выходе элемента ИЛИ 20 относительно импульса на входе триггеров 5 и 6. Фронт импульса на выходе элемента ИЛИ 20 отмечен меткой Т(m+3/2) по срабатыванию триггера 17 (см. фиг. 3), фронт импульса на входе триггеров 5 и 6 отмечен между метками Т1 и Т(1+1/2) (см. фиг. 2). Величина задержки в периодах тактовой частоты будет находиться в пределах от m до (m+1/2). Погрешность задержки равна 1/2 периода тактовой частоты. В случае, если пусковой импульс поступит в следующий полупериод тактовой частоты между метками Т(1+1/2) и Т2, то импульс на выходе элемента ИЛИ 20 будет отмечен меткой Т(m+2) по срабатыванию триггера 16. В этом случае, величина задержки будет находиться также в пределах от m до (m+1/2) и погрешность задержки составит те же 1/2 периода тактовой частоты. Таким образом, погрешность задержки пускового импульса в предлагаемом блоке уменьшена в два раза по сравнению с прототипом, в котором погрешность равна периоду тактовой частоты в ПЛИС.
Следует отметить, что синхронизация тактовой частотой триггеров и счетчиков в ПЛИС 3 предотвращает накопление задержек в ПЛИС 3 в результате их сложения. Задержки в канале пускового импульса 2, в канале выходного импульса 22, а также в вводах ПЛИС 3, составляющие начальную задержку, могут быть измерены и учтены в определении задержки пускового импульса без увеличения погрешности.
Счетчики 13, 14 и 18, 19 производят прямой счет кода задержки и кода длительности соответственно. Для счета количества периодов тактовой частоты до переполнения, равного коду задержки и коду длительности необходимо, чтобы в счетчики 13, 14 и 18, 19 были загружены коды, дополняющие до кода переполнения. Такие коды могут быть получены в микроконтроллере 23.
Таким образом, достигается заявленный технический результат, а именно: уменьшение погрешности времени задержки пускового импульса при заданной тактовой частоте в ПЛИС.
Полезная модель может быть использована в многоканальном блоке задержки импульсов, поскольку большие ресурсы ПЛИС 3 по количеству триггеров, счетчиков и логических элементов позволяют многократно повторить предложенный блок задержки импульсов в одной ПЛИС 3.
Источники информации
1. Полезная модель к патенту RU 189547, МПК H03K 3/00, H03K 3/64, 28.05.2019.