Научная статья на тему 'ФОРМИРОВАНИЕ ТАКТОВЫХ ИМПУЛЬСОВ ДЛЯ ТЕСТИРОВАНИЯ ЦИФРОВЫХ УСТРОЙСТВ НА ОСНОВЕ ПЛИС'

ФОРМИРОВАНИЕ ТАКТОВЫХ ИМПУЛЬСОВ ДЛЯ ТЕСТИРОВАНИЯ ЦИФРОВЫХ УСТРОЙСТВ НА ОСНОВЕ ПЛИС Текст научной статьи по специальности «Электротехника, электронная техника, информационные технологии»

CC BY
207
13
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ГЕНЕРАТОР ОДИНОЧНОГО ТАКТОВОГО ИМПУЛЬСА / ГЕНЕРАТОР ТАКТОВОЙ ИМПУЛЬСНОЙ ПОСЛЕДОВАТЕЛЬНОСТИ / ИНСТРУМЕНТАЛЬНЫЙ МОДУЛЬ ФИРМЫ XILINX / ПЛИС / ЯЗЫК VERILOG / ЛАБОРАТОРНЫЕ РАБОТЫ / МОДЕЛИРОВАНИЕ

Аннотация научной статьи по электротехнике, электронной технике, информационным технологиям, автор научной работы — Кучеренко А.А., Оводенко А.В.

В статье решена задача формирования тактовых импульсов для тестирования изучаемых цифровых устройств. Показана перспективность применения языка Verilog для описания модулей формирователей для их последующего копирования в проекты лабораторных работ. Приведены результаты моделирования модулей формирователей.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по электротехнике, электронной технике, информационным технологиям , автор научной работы — Кучеренко А.А., Оводенко А.В.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

GENERATION OF CLOCK PULSES FOR TESTING DIGITAL DEVICES BASED ON FPGAS

The article solves the problem of generating clock pulses for testing the studied digital devices. The prospects of using the Verilog language for describing shaper modules for their subsequent copying into laboratory work projects are shown. The results of simulation of shaper modules are presented.

Текст научной работы на тему «ФОРМИРОВАНИЕ ТАКТОВЫХ ИМПУЛЬСОВ ДЛЯ ТЕСТИРОВАНИЯ ЦИФРОВЫХ УСТРОЙСТВ НА ОСНОВЕ ПЛИС»

УДК 551.465.4

КУЧЕРЕНКО А.А., канд. техн. наук, доцент (Донецкий институт железнодорожного

транспорта»)

ОВОДЕНКО А.В., канд. техн. наук, доцент (Донецкий институт железнодорожного

транспорта»)

Формирование тактовых импульсов для тестирования цифровых устройств на основе ПЛИС

Kucherenko A.A., Candidate of Technical Science, Associate Professor (DRTI) Ovodenko A.V., Candidate of Technical Science, Associate Professor (DRTI)

Generation of clock pulses for testing digital devices based on FPGAs

Введение

Современный этап развития цифровой электроники предполагает, что инженер понимает и использует технологию синтеза схем на основе ПЛИС и языка описания аппаратуры, главный из которых - Verilog. Все инженеры-разработчики известных зарубежных фирм Apple, Intel и других электронных компаний во время учёбы в университетах выполняли

лабораторные работы с использованием учебных отладочных плат (Evaluation Development Board) на ПЛИС. Такие занятия позволяют наработать опыт проектирования, который применим в различных областях промышленности и транспорта. России предстоит пройти тот же путь, который прошли развитые западные страны и который сейчас проходит Китайская Народная Республика [1].

Проектирование цифровых

устройств на основе ПЛИС проводится с помощью специализированных САПР, в которых для ввода схем могут использоваться языки описания аппаратуры или универсальные схемные редакторы. Для организации учебного процесса по изучению и

практическому освоению этапов проектирования цифровых устройств на основе ПЛИС FPGA фирмы Xilinx, ДОНИЖТ приобрёл инструментальный модуль Spartan-3A Starter Kit.

Данная статья посвящена вопросам практического освоения этого инструментального модуля и является продолжением нашей предыдущей работы [2].

Анализ последних исследований и публикаций

Инструментальный модуль

Spartan-3A Starter Kit построен на базе ПЛИС XC3S700A, обладающей высоким быстродействием, большим объёмом логических и трассировочных ресурсов. Время проектирования цифрового устройства или системы существенно уменьшается за счёт исключения этапов проектирования их интерфейса (используются ресурсы кристалла ПЛИС) и применения САПР фирмы Xilinx серии ISE Design Suite 14.7 [3].

Для практического освоения студентами различных этапов проектирования цифровых устройств на основе ПЛИС FPGA необходимо

выполнить цикл лабораторных работ, которые позволят изучить особенности программирования и прошивки ПЛИС при реализации заданных цифровых устройств. Примером таких

лабораторных работ могут быть методические указания для студентов направления подготовки

«Радиотехника» [4].

Лабораторные работы отражают особенности используемого в работах инструментального модуля и разделы изучаемой дисциплины. Но есть ряд общих проблем, которые необходимо решить не зависимо от изучаемой дисциплины: организация тактирования изучаемых цифровых устройств.

Цель работы

Целью настоящей статьи является выработка практических рекомендаций по формированию тактовых импульсов для тестирования изучаемых цифровых устройств.

Основная часть

Системный тактовый сигнал инструментального модуля

CLK_50MHZ формируется кварцевым генератором, установленным на плате модуля. Этот сигнал поступает на один из шестнадцати специально

выделенных контактов кристалла, сопряженных с глобальными буферными элементами: GCLK5 (вывод E12 ПЛИС). Так как выход каждого глобального буфера связан с глобальной сетью тактовых линий и цифровыми блоками управления синхронизацией

(Digital Clock Manager, DCM) ПЛИС XC3S700A, то такое решение оптимальным образом обеспечивает возможность применения модуля DCM для получения требуемой тактовой частоты реализуемого проекта.

Для выполнения лабораторных работ по исследованию

комбинационных и

последовательностных схем

необходимо сформировать два вида тактовых импульсов:

- импульс по нажатию одной из кнопок модуля (генератор одиночного импульса - GOI);

- импульсная последовательность частотой 5 кГц (для отображения входных и выходных сигналов изучаемого цифрового устройства на осциллографе - SYNC).

На рис. 1 показан формирователь одиночного импульса длительностью 1 секунда, а на рис. 2 - импульсной последовательности частотой 5 кГц, выполненные в схемотехническом редакторе. Тактирование

формирователей проводится системным сигналом модуля CLK_50MHZ, который поступает на вход CLK (вывод E12 ПЛИС). На вход BTN подключается одна из пяти кнопок инструментального модуля. Обычно мы использовали центральную кнопку ROT_CENTER (вывод R13 ПЛИС). Схема формирования выхода этой кнопки приведена на рис. 3. При формировании файла пользовательских ограничений (*.ucf) необходимо применить опцию подтяжки выводов pull-down.

Рис. 1. Генератор одиночного импульса GOI длительностью 1 секунда

Рис. 2. Формирователь импульсной последовательности SYNC частотой 5 кГц

3,3 В

R13

-о о-

ROT CENTER

GND

-► Выход

PULLDOWN

rdown

Рис. 3. Формирование выхода кнопки инструментального модуля

Для формирования одиночного импульса по нажатию кнопки необходимо подавить её дребезг. Дребезг механических контактов кнопки возникает из-за того, что невозможно мгновенно зафиксировать контакт. Поэтому вместо одиночного импульса на фронте и срезе выходного сигнала кнопки возникает случайное изменение его состояния. Вместо одного импульса наблюдаются пачки случайных импульсов при нажатии и отключении кнопки. Длительность дребезга контакта кнопки составляет около 2 мС [5].

В аналоговой электронике самым простым способом для устранения дребезга является включение RC-фильтра нижних частот. За счёт подбора постоянной времени фильтра время заряда и разряда конденсатора превышает длительность дребезга и динамически изменяющийся

высокочастотный сигнал преобразуется в постоянное значение.

Аналог фильтра в цифровой технике - формирование задержки на время большее, чем длительность дребезга в сигнале нажатой кнопки (рис. 1). Сигнал с кнопки поступает на вход BTN. На двух D - триггерах FD происходит синхронизация сигнала кнопки с тактовой последовательностью CLK_50MHZ. Тем самым исключается наложение асинхронного сигнала кнопки и метастабильного состояния триггера. RS-триггер на логических элементах «ИЛИ-НЕ» NOR2 выделяет момент изменения сигнала кнопки и формирует сигнал разрешения CE для 16-ти разрядного счётчика CB16CE. Счётчик CB16CE и компаратор COMP16 формируют импульс переноса ЕО в соответствии с установленной константой const. Модули счёта устанавливаются записью констант: для первой ступени М1 = C350h, а для

второй - М2=3Е8к Импульс сброса второй ступени устанавливает выход триггера IMP в ноль, тем самым формируется задержка в 1 С - аналог постоянной времени RC-фильтра.

Для формирования импульсной последовательности с частотой 5 кГц используем одну ступень с константой 9С4к Так как длительность импульса сброса мала и составляет один период тактовой последовательности

CLK_50MHZ, к выходу ступени ЕО подключаем двухразрядный счётчик CB2CE (рис. 2). На выходе Q1 счётчика будет сформирован меандр с частотой 5кГц.

Схемы формирователей с помощью САПР ISE Design Suite 14.7 сгенерированы в файл микропрограммы ПЛИС и составлен конфигурационный файл прошивки для ОЗУ ПЛИС. Работоспособность устройств

протестирована с помощью

осциллографа: амплитуда импульсов составляет 3,36 В, частота последовательности F 5kHZ - 4,999 кГц.

Большую помощь и поддержку в освоении методики проектирования цифровых устройств на основе ПЛИС оказывает сайт fpga-cpld.ru, автор которого данным направлением занимается с 1993 года. В разделе «Создание нового символа в САПР Xilinx 10.1i» описан метод создания компактных схем в схемотехническом редакторе. Конечно, формат проекта можно увеличить, но чем больше формат листа, тем мельче элементы схем и ухудшается читаемость схемы. Для выхода из этой ситуации можно воспользоваться приёмом - создание нового символа в САПР. В следующих версиях САПР этот подход сохранён. В результате получим два новых символа: GOI, SYNC - прямоугольники, подобные «чёрному ящику». Слева входы, а справа - выходы. Новые

символы записываются на жёсткий диск проекта и в элементе выбора Symbols автоматически отобразится как библиотечный символ. Далее символ можно поместить в новый проект как обычный элемент.

На практике этот приём приводит к конфликтам нового элемента и других элементов схемы проекта. Видимо, существуют ряд ограничений, описание которых нам нигде не встретилось. Поэтому мы перешли к описанию формирователей на языке System Verilog. В середине 80-х годов Фил

Мурби изобрёл язык Verilog и предполагал его применение для описания микросхем при цифровом моделировании. Со временем Verilog стал использоваться для синтеза на уровне вентилей. Популярность языка Verilog отчасти объясняется близостью его структуры к языку Си [6].

Проект цифрового устройства на языке Verilog имеет модульную структуру, поэтому модули

формирователей просто копируются в него с учётом имён переменных.

Листинг 1. Код формирователя одиночных импульсов. 4imescale 1ns / 1ps

// Модуль генератора одиночных импульсов на 1 секунду

module GOI1 (

input CLK, BTN, output reg IMP, output reg CN, output reg [1:0] data, output reg [25:0] cnt

);

initial data = 2'b00;

initial cnt = 26'b00_0000_0000_0000_0000_0000_0000; initial IMP = 0; initial CN = 0;

always @ (negedge CLK) begin

data <= {data[0], BTN};

IMP <= ~(~(data[1] | IMP) | CN);

end

always @ (posedge CLK) begin if (CN)

begin

cnt <= 26'b00_0000_0000_0000_0000_0000_0000; CN <= 1'b0; end else if (IMP) begin

cnt <= cnt + 1'b1;

CN <= 1'b0; end

if (cnt == 26'b10_1111_1010_1111_0000_1000_0000)

CN <= 1'b1;

else

CN <= 1'b0;

end

endmodule

Листинг 2. Код ГТИ на 5 кГц. 4imescale 1ns / 1ps // Модуль ГТИ на 5 кГц

module SYNC5 (

input CLK, R, output reg F10k, output reg FS, output reg [12:0] cnt

);

always @ (posedge CLK) begin if (~ R)

begin

cnt <= 13'b0_0000_0000_0000; F10k <= 1'b0; FS <= 1'b0; end

else

cnt <= cnt + 1'b1; if (cnt == 13'b1_0011_1000_1000)

begin

F10k <= 1'b1;

cnt <= 13'b0_0000_0000_0000; end

else

F10k <= 1'b0; if (F10k == 1'b1) FS <= ~FS;

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

end endmodule

Коды модулей основаны на описании счётчика с переносом. В основе описаний - оператор always с неблокирующими присваиваниями. В

модуле GOI1 использованы два оператора always, чтобы разделить комбинационную часть ГОИ (описание RS-триггера) и последовательностью

часть (описание счётчика cnt). В модуле SYNC5 формируется перенос F10k, используемый в описании Т-триггера, на выходе FS которого и образуется меандр с частотой 5 кГц. Перенос в модулях основан на сравнении текущего значения содержимого счётчика cnt с константой (выделена полужирным шрифтом).

Работоспособность модулей

проверена с помощью осциллографа. При отладке кодов модулей проводилось их поведенческое моделирование. На рис. 4-6 представлены результаты

моделирования.

imp

ifecn ► Щ data[1:0]

cnt [2 5:0]

Ui CLK BTN

(ооооооофооооо... ХОООООООфООООО... ХОООООООфООООО..

Рис. 4. Формирование выходного импульса IMP

lililí 1 1,000,000,060.200 ns 1,000,000,080 ns 1 1 1 1 1 1 1 1 1

I Name | Value | 1,000,000,040 ns 1 1 1 1 1 1 1 1 1

щщ :_

I^TcN^H

► Чй data[1:0] 00 1-1 00

р. Щ cnt[25:0] 101111101С 101111101С 1111000010000... »MIIIIMMIII 1000010000001 oooooooooooooboooooooooooo

Tfc CLK 0

BTN 0

Рис. 5. Формирование импульса переноса CN

► cnt[12:0] oooooooooc

CLK 1

1& R 1

100,050.000 ns

0000000000001 X 000000Q000010 X OOOOOOQOOOOll ; 0000000.

Рис. 6. Формирование импульса переноса F10k и импульса FS

Моделирование позволило

проверить правильность временных соотношений для формируемых сигналов и скорректировать коды модулей.

Выводы

1. Рекомендованы схемы формирования тактовых импульсов: GOI - генератор одиночных импульсов длительностью 1 секунда и SYNC -генератор импульсной последовательности частотой 5 кГц;

2. Обосновано применение языка Verilog для описания модулей формирователей для их последующего копирования в проекты лабораторных работ. Приведены листинги кодов формирователей;

3. Моделирование является обязательным этапом в процессе разработки проекта цифрового устройства на базе ПЛИС. Этот этап во многом проясняет ошибки, допущенные на более ранних этапах проектирования.

Список литературы:

1. Цифровой синтез: практический курс/ Под общ. ред. А.Ю. Романова, Ю.В. Панчула. - М.: ДМК Пресс, 2020. - 556 с.

2. Кучеренко А.А., Оводенко А.В. Практические аспекты организации цикла лабораторных работ на основе инструментального модуля фирмы Xilinx Spartan-3A Starter Kit // Сборник научных трудов ДОНИЖТ. Выпуск 62/ ДОНИЖТ, 2021. - С. 10-20.

3. Зотов В. Новый инструментальный комплект Spartan-3A Starter Kit для практического освоения методов проектирования и отладки

цифровых устройств с аппаратной и программной реализацией операций, реализуемых на основе ПЛИС семейства FPGA фирмы ХШпх // Компоненты и технологии, 2007. - №9. - 84 - 94 с.

4. Фунтиков М.Н. Методические указания к выполнению лабораторных работ и внеаудиторной самостоятельной работы по дисциплине «Разработка аппаратно-программируемых радиотехнических устройств». -Донецк: ДонНТУ, 2020. - 88 с.

5. Ьйр//,^^^хШпх.сот/Ьуёос8/ше г§шёе8/и§330.рёГ.

6. Соловьёв В.В. Основы языка проектирования цифровой аппаратуры Уеп1о§ - М.: Горячая линия - Телеком, 2014. - 208 с.

Аннотации:

В статье решена задача формирования тактовых импульсов для тестирования изучаемых цифровых устройств. Показана перспективность применения языка Verilog для описания модулей формирователей для их последующего копирования в проекты лабораторных работ. Приведены результаты моделирования модулей формирователей.

Ключевые слова: генератор одиночного тактового импульса, генератор тактовой импульсной последовательности,

инструментальный модуль фирмы ХШпх, ПЛИС, язык Verilog, лабораторные работы, моделирование.

The article solves the problem of generating clock pulses for testing the studied digital devices. The prospects of using the Verilog language for describing shaper modules for their subsequent copying into laboratory work projects are shown. The results of simulation of shaper modules are presented.

Keywords: Single clock generator, clock pulse generator, Xilinx tool module, FPGA, Verilog language, laboratory work, simulation.

i Надоели баннеры? Вы всегда можете отключить рекламу.