Лабораторная работа №4

Счетчик делитель

Цель работы

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

Краткие теоретические сведения.

2.1 Счетчики делители.

Счетчик делитель предназначен для выработки выходного сигала в целое количество раз меньше, чем частота входного сигнала. То есть счетчик делитель осуществляет деление входного сигнала в целое число раз. Реализация счетчиков осуществляется с помощью процедурных блоков always. Пусть стоит задача реализовать делитель с коэффициентом деления 4. При этом входной сигнал, который нужно разделить, подается на входную линию «Х», а выходной снимается с линии «Y». Тогда алгоритм будет выглядеть следующим образом:

 

reg [1:0]i=0;

 

always@(posedge X)

begin

 

if(i>1)

begin

i=0;

Y=~Y;

end

else i=i+1;

  

end

 

Аргументом процедурного блока в данном случае служит posedge X, что обозначает выполнение действий в процедурном блоке только при изменении входного сигнала «Х» с логического нуля в логическую единицу. С каждым периодом тактового сигнала «Х» значение переменной i будет возрастать на единицу. При превышении значения больше 1 данная переменная сброситься в ноль, а в выходной порт «Y» запишется про инвертированное предыдущие значение порта «Y». Таким образом реализуется делитель на 4.

 

Задание к работе.

Создайте алгоритм делителя, формирующего меандр с частотой в 1 Гц. С формированный сигнал выведите на светодиод. В качестве тактового генератора используйте тактовый генератор стенда на 16 МГц. Следует отметить, что тактовый сигнал 16 МГц подается на 16 вывод ПЛИС. При этом запуск генерации происходит только при подаче на 91 вывод ПЛИС логической единицы.

 

Содержание отчета

4.1 Цель работы.

4.2 Алгоритм модуля на языке Verilog для реализации делителя, формирующего меандр с частотой в 1 Гц.

4.3 Вывод

 

Контрольные вопросы

5.1 Дайте определение процедурного блока always.

5.2 Опишите общий принцип построение делителей на языке Verilog.

5.3 Какой коэффициент деления должен быть, чтобы выполнить поставленную в лабораторной работе задачу?

5.4 Из каких соображений выбирается разрядность переменной делителя?

 


 


Лабораторная работа №5

Таймер счетчик

Цель работы

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

Краткие теоретические сведения.

2.1 Счетчик импульсов.

Счетчик импульсов является устройством подсчитывающее количество входных импульсов и выводящее результат на какое-либо устройство отображения. Распространённым элементом, производящим вывод чисел, является семи сегментный индикатор. Таким образом счётчик импульсов представляет собой двоичный счетчик с подключенным на его выходы преобразователем кода в код для семи сегментного индикатора. Реализация многоразрядных счетчиков, счетчиков с подсчетом импульсов больше 9, может быть различной. Рассмотрим один из возможных примеров такой реализации.

Пусть у нас есть переменная счетчик i, которая меняет своё значение с каждым новым импульсом от 0 до 99. Для отображения каждого разряда данного числа в нужном разряде семи сегментного индикатора требуется разбить переменную i на две переменные. Одна переменная должна хранить единицы числа i, вторая переменная должна хранить десятки числа i. Для это прибегнем к следующему способу и запишем:

 

a=i/10;

b=i%10;

 

При этом в переменную a будет записываться результат деления на 10 переменной i. Так как деление целочисленное, то остаток от деления отбрасывается и получается, что переменная a хранит десятки переменной i. В переменную b на оборот записывается остаток от деления на 10 числа i. То есть переменная b хранит единицы переменной i. Таким образом выводя значения переменных a и b на соответствующие разряды семи сегментного индикатора можно реализовать счетчик, подсчитывающий импульсы от 0 до 99.



Задание к работе.

Создайте алгоритм таймера счетчика, считающего от 0 до 99 с периодом счета 0,5 с.

 

Содержание отчета

4.1 Цель работы.

4.2 Алгоритм модуля на языке Verilog для реализации таймера счетчика, считающего от 0 до 99 с периодом счета 0,5 с.

4.3 Вывод

 

Контрольные вопросы

5.1 Дайте определение процедурного блока always.

5.2 Какой коэффициент деления должен быть, чтобы выполнить поставленную в лабораторной работе задачу?

5.3 Из каких соображений выбирается разрядность переменной делителя?

5.4 Как происходит разделение переменной счетчика на переменные единиц и десятков?

5.5 Как происходит отображение числа на семи сегментном индикаторе?

5.6 Как реализовать обратный счет от 99 до 0?

5.7 Как реализовать счетчик от 0 до значения меньше 99?

 

 



Лабораторная работа №6

Бегущий огонь

Цель работы

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

Краткие теоретические сведения.

2.1 Битовые операции сдвига

Операции сдвига осуществляют смещение операнда влево (<<) или вправо (>>) на число битов, задаваемое вторым операндом. Оба операнда должны быть целыми величинами. При сдвиге влево правые освобождающиеся биты устанавливаются в ноль. При сдвиге вправо свободные левые биты устанавливаются в ноль.

Синтаксис записи сдвига в лево и право выглядит следующим образом:

 

переменная << количество_бит; 

переменная >> количество_бит;

 

Например, произведем сдвиг числа 5 в лево на 3 бита и запишем результат в переменную y:

 

Y=5 << 3;

 

При этом в у запишется число 40. Так как 5 в двоичной форме 101и данное число мы сдвигаем в лево на 3 бита, то получаем число 101000. Двоичное число 101000 в десятичной форме 40.

Аналогично работает сдвиг в право.

Задание к работе.

Создайте алгоритм на основе операторов сдвига в право или в лево переключающий светодиоды стенда с 0 по 7 и обратно, и так до бесконечности. Период переключения светодиодов произвольный.

 



Содержание отчета

4.1 Цель работы.

4.2 Алгоритм модуля на языке Verilog для реализации «бегущего огня».

4.3 Вывод

 

Контрольные вопросы

5.1 Дайте определение процедурного блока always.

5.2 Какой коэффициент деления получился в вашем проекте?

5.3 Как работает оператор побитового сдвига в право?

5.4 Как работает оператор побитового сдвига в лево?

5.5 Как производится автоматическая смена направления перемещения «огонька»?

 


 



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: