Материал: Разработка и прототипирование цифровых устройств на языках VHDL и Verilog. Барабанов В.Ф., Гребенникова Н.И

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Рис. 5.4. Выбор Divider Generator

В открывшемся окне, ознакомьтесь со сводной информацией о добавляемом в проект IP-ядре, и нажмите Finish. После чего откроется окно, представленное на рис. 5.5.

Рис. 5.5. Задание параметров блока делителя

51

В открывшемся окне задайте параметры операндов блока делителя. Затем, нажмите Generate и дождитесь окончания операции.

Пример использования данного IP-ядра для вывода десятичных чисел от 0 до 99 на 7-ми сегментный индикатор представлен в приложении к данной лабораторной работе.

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

module btn_filter( input clk,

input din, output dout );

reg prev_data; reg [2:0] cntr = 0; reg data_out = 0;

always @ (posedge clk) begin

prev_data <= din;

if ( din == prev_data ) begin

case(cntr)

3'b000 : cntr <= 3'b001; 3'b001 : cntr <= 3'b010; 3'b010 : cntr <= 3'b011; 3'b011 : cntr <= 3'b100; 3'b100 :

begin

data_out <= din;

52

cntr <= 3'b100; end

default : cntr <= 0; endcase;

end else

begin

cntr <= 0; end

end

assign dout = data_out; endmodule

Для тактирования данного модуля необходимо использовать медленную тактовую частоту (порядка 10-100 Гц).

5.3.Задание на лабораторную работу

1.Разработать модель цифрового устройства на языках Verilog HDL и VHDL согласно выбранному варианту.

2.Провести функциональное тестирование разработанной модели с использованием отладочного комплекта

Spartan 3 Starter Kit.

Варианты заданий Вариант 1. Разработать устройство, позволяющее

считать количество нажатий на кнопку и отображать их на 7- сегментном индикаторе. Предусмотреть возможность сброса количества нажатий.

Вариант 2. Разработать устройство, позволяющее рассчитать сумму двух 4-х битных чисел. Числа задаются с помощью 2-х позиционных переключателей. Результат вывести на 7-сегментный индикатор.

Вариант 3. Разработать устройство, позволяющее подсчитать количество единиц в 8-битном двоичном числе.

53

Число задается с помощью. 2-х позиционных переключателей. Результат вывести на 7-сегментный индикатор.

Вариант 4. Разработать устройство, функционирующее следующим образом: после одного нажатия на кнопку светодиодный индикатор включается, затем после двух нажатий индикатор выключается. После трех нажатий индикатор снова включается и так далее. Количество нажатий кнопки, требуемых для смены состояния светодиода вывести на 7-сегментный индикатор. Предусмотреть возможность сброса количества требуемых нажатий.

Вариант 5. Разработать устройство, реализующее 4-х битный счетчик кода Грея. Счет производится по нажатию на кнопку. Предусмотреть возможность сброса счетчика. Результат вывести в двоичном виде на светодиодные индикаторы, а также в десятичном виде на 7-сегментные индикаторы.

Вариант 6. Разработать устройство, реализующее 8-ми битный циклический сдвиговый регистр. Направление сдвига задается с помощью 2-х позиционного переключателя. Предусмотреть возможность сброса регистра в начальное состояние (00000001). Результат вывести в двоичном виде на светодиодные индикаторы и также в десятичном виде на 7- сегментные индикаторы.

Вариант 7. Разработать устройство, позволяющее рассчитать произведение двух 3-х битных чисел. Числа задаются с помощью. 2-х позиционных переключателей. Результат вывести на 7-сегментные индикаторы.

Вариант 8. Разработать устройство, формирующее 8- битное псевдослучайное число на основе генератора m- последовательности. Каждое новое число генерируется при нажатии на кнопку. Результат вывести в двоичном виде на светодиодные индикаторы, а также в десятичном виде на 7- сегментные индикаторы.

Вариант 9. Разработать устройство, представляющее собой счетчик, позволяющий вести прямой и обратный счет количества нажатий на кнопку (счет ведется от 0 до 9 или от 9

54

до 0). Режим работы счетчика задается с помощью 2-х позиционного переключателя. Результат вывести на 7- сегментный индикатор.

Вариант 10. Разработать устройство, позволяющее рассчитать сумму двух 5-битных двоичных чисел. Числа задаются с помощью 2-х позиционных переключателей в 2 этапа: по первому нажатию кнопки запоминается первый операнд, по второму нажатию запоминается второй операнд и производится вычисление. Результат выводится на 7- сегментный индикатор.

Вариант 11. Разработать устройство, позволяющее подсчитать количество одновременно нажатых кнопок на отладочной плате (не более 4). Результат вывести на 7- сегментный индикатор.

Вариант 12. Разработать устройство, позволяющее рассчитать сумму по модулю 2 (исключающее ИЛИ) двух 4-х битных чисел. Числа задаются с помощью 2-х позиционных переключателей. Результат вывести в двоичном виде на светодиодные индикаторы, а также в десятичном виде на 7- сегментные индикаторы.

Вариант 13. Разработать устройство позволяющее выполнить операции И, ИЛИ, исключающее ИЛИ с двумя 3-х битными числами. Числа и вид выполняемой операции задаются с помощью 2-х позиционных переключателей. Результат операции вывести в двоичном виде на светодиодные индикаторы, а также в десятичном виде на 7- сегментные индикаторы.

Вариант 14. Разработать устройство, представляющее собой счетчик с настраиваемым значением инкремента. При каждом нажатии на кнопку значение счетчика увеличивается на 1, 2 3, или 4. Значение инкремента задается с помощью с помощью 2-х позиционных переключателей. Предусмотреть возможность сброса счетчика. Результат вывести на 7- сегментный индикатор.

Вариант 15. Разработать устройство, позволяющее рассчитать разность двух 4-х битных чисел. Числа задаются с

55

Источник: https://studfile.net/preview/16568813/