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

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

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

5.4. Требования к отчету по лабораторной работе

Отчет должен содержать следующую информацию по лабораторной работе:

название работы, цель и задание, согласно варианту;

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

56

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1.Методические указания к выполнению лабораторных работ по дисциплине «Автоматизированное проектирование вычислительных систем» для студентов специальности 230101 «Вычислительные машины, комплексы, системы и сети» очной и ускоренной форм обучения / ГОУВПО «Воронежский государственный технический университет»; сост. В. Ф. Барабанов, И. Н. Дырда, Д. Ю. Скляднев. Воронеж, 2009. 49 с.

2.Методические указания к выполнению лабораторных работ «Основы проектирования цифровых устройств на языках VHDL и Verilog» по дисциплине «Основы автоматизированного проектирования электронных наноматериалов и 3d изделий микроэлектронной техники» / ГОУВПО «Воронежский государственный технический университет»; сост. В.Ф. Барабанов, С.Л. Подвальный, В.В. Сафронов.

Воронеж, 2010. 113 с.

3.Spartan-3 FPGA Starter Kit Board User Guide( UG130 (v1.2) June 20, 2008).

4.Digital Design and Computer Architecture 2nd Edition / David Money Harris & Sarah L. Harris, July 2012, 712 с.

57

ПРИЛОЖЕНИЕ 1

Пример выполнения задания лабораторной работы 1

Разработать модель цифровой схемы

Код модели на языке Verilog HDL: `timescale 1ns / 1ps

module top(input x, input y, input z, input c, output res );

assign res = (x & y) ^ (y | z) ^ c;

endmodule

Код тестовой оболочки на языке Verilog HDL: `timescale 1ns / 1ps

module source_laba1; reg [3:0] data; wire res;

top uut (.x( data[3] ), .y(data [2] ), .z(data [1] ), .c(data [0] ), .res( res ));

integer i;

initial begin

data = 0;

for (i = 0; i <= 15; i=i+1) begin

#10 data = data + 1;

58

end

end endmodule

Результат моделирования:

Код модели на языке VHDL:

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

entity code_lab1 is

Port ( x : in STD_LOGIC; y : in STD_LOGIC; z : in STD_LOGIC; c : in STD_LOGIC; res : out STD_LOGIC); end code_lab1;

architecture Behavioral of code_lab1 is begin

res <= (x and y ) xor ( y or z) xor c; end Behavioral;

Код тестовой оболочки на языке VHDL: LIBRARY ieee;

USE ieee.std_logic_1164.ALL;

ENTITY tb1 IS

END tb1;

ARCHITECTURE behavior OF tb1 IS

59

COMPONENT code_lab1 PORT(

x : IN std_logic; y : IN std_logic; z : IN std_logic; c : IN std_logic;

res : OUT std_logic );

END COMPONENT;

signal x : std_logic := '0'; signal y : std_logic := '0'; signal z : std_logic := '0'; signal c : std_logic := '0'; signal res : std_logic;

constant clock_period : time := 10 ns;

BEGIN

uut: code_lab1 PORT MAP ( x => x,

y => y, z => z, c => c,

res => res );

stim_proc: process begin

x <= '0'; y <= '0'; z <= '0'; c <= '0'; wait for 20 ns; x <= '0'; y <= '0'; z <= '1'; c <= '0'; wait for 20 ns; x <= '0'; y <= '0'; z <= '0'; c <= '1'; wait for 20 ns; x <= '0'; y <= '0'; z <= '1'; c <= '1'; wait for 20 ns; x <= '0'; y <= '1'; z <= '0'; c <= '0'; wait for 20 ns; x <= '0'; y <= '1'; z <= '0'; c <= '1'; wait for 20 ns;

60

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