Добавил:
Только когда поступишь в технический вуз поймешь на сколько ты гуманитарий Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

PR-6

.pdf
Скачиваний:
0
Добавлен:
19.03.2025
Размер:
571.01 Кб
Скачать

СОДЕРЖАНИЕ

ВВЕДЕНИЕ……………………………………………………………………...3

ПОСТАНОВКА ЗАДАЧИ……………………………………………………...4

ПРОЕКТИРОВАНИЕ И РЕАЛИЗАЦИЯ……………………………………...4

ВЫВОДЫ………………………………………………………………………..7

ИНФОРМАЦИОННЫЕ ИСТОЧНИКИ……………………………………….8

2

ВВЕДЕНИЕ

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

3

1 ПОСТАНОВКА ЗАДАЧИ

Спроектировать универсальный параметрический схемотехнический узел

- счётчик - при помощи Verilog HDL. Произвести верификацию полученного устройства средствами САПР Vivado. На основе разработанного модуля счётчика создать модуль делителя частоты на 117. Произвести верификацию полученного устройства средствами САПР Vivado. Подготовить отчёт о проделанной работе. Варианты заданий присутствуют в приложении Г или могут быть изменены преподавателем самостоятельно.

2 ПРОЕКТИРОВАНИЕ И РЕАЛИЗАЦИЯ

С помощью САПР Vivado, были построены программы для реализации и тестирования счетчика и делителя частоты на 117 (Листинг 2.1, Листинг 2.2,

Листинг 2.3)[1]

Листинг 2.1 – Код модуля, описывающий реализацию счетчика

`timescale 1ns / 1ps

module shotchik#(sh = 1, mod = 117)( input dir,clk,

output reg [$clog2(mod)-1:0] out );

initial

out = 0;

always@(clk) begin

if (dir == 0)

out <= (out + sh) % mod;

else

if (out == 0) out = (mod - 1); else out <= (out - sh) % mod;

end endmodule

4

Листинг 2.2 – Код модуля, описывающий реализацию делителя частоты на 117

`timescale 1ns / 1ps module del_clk( input clk, output reg out );

wire [8:0] out_count;

initial

out = 0;

shotchik#(.mod(117)) count2(.clk(clk), .dir(0), .out(out_count) ); always@(clk)

begin

if (out_count[0] == 0 && out_count[1] == 0 && out_count[2] == 0 && out_count[3] == 0 && out_count[4] == 0 && out_count[5] == 0 && out_count[6] == 0 )

begin

out <= ~out; end

end endmodule

Листинг 2.3 – Код тестового модуля

`timescale 1ns / 1ps module test();

reg clk = 0;

reg clk_ref = 0; reg di = 0;

wire [6:0] out; wire clk_div;

always #1 clk = ~clk;

always #117 clk_ref = ~clk_ref; always #116 di = ~di;

shotchik shot(.clk(clk), .dir(di), .out(out)); del_clk del(.clk(clk), .out(clk_div)); endmodule

5

Необходимо создать временную диаграмму для верификации созданных

схем.(Рисунок 2.1)

Рисунок 2.1 – Временная диаграмма

Рисунок 2.2 – Верификация счетчиков

6

ВЫВОДЫ

В ходе выполнения практической работы были спроектированы счетчик и делитель частоты на 117 при помощи языка Verilog средствами САПР Vivado, а

также была проведена верификация.

7

ИНФОРМАЦИОННЫЕ ИСТОЧНИКИ

1. Дуксин Н. А., Люлява Д. В., Тарасов И. Е. - Архитектура вычислительных машин и систем. Основы построения вычислительной техники:

Практикум.

8

Соседние файлы в предмете Архитектура вычислительный машин и систем