Рис. 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