Разработка VHDL-описания последовательных схем с регулярной структурой

Тип синтезируемого устройства: регистр сдвига на синхронных двухступенчатых D-триггерах с запрещающими связями. Синхронный двухступенчатый D-триггер с запрещающими связями. Временные диаграммы и поведенческое описание. Кодировка выходного алфавита.

Рубрика Программирование, компьютеры и кибернетика
Вид отчет по практике
Язык русский
Дата добавления 14.10.2017
Размер файла 269,0 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

"Московский государственный технический университет имени Н.Э. Баумана" (МГТУ им. Н.Э. Баумана)

Факультет "Робототехника и комплексная автоматизация" (РК)

Кафедра "Системы автоматизированного проектирования" (РК 6)

Отчет по домашним лабораторным работам

по дисциплине

"Организация ЭВМ и систем"

Разработка VHDL-описания последовательных схем с регулярной структурой

Выполнил: Кошман А.А.

Москва 2012

Тип синтезируемого устройства: регистр сдвига на синхронных двухступенчатых D-триггерах с запрещающими связями

Структурное описание

Компонент И-НЕ с двумя входами

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity NAND2 is

port (

X1: in STD_LOGIC;

X2: in STD_LOGIC;

Y: out STD_LOGIC

);

end NAND2;

architecture NAND2 of NAND2 is

begin

Y <= not (X1 and X2);

end NAND2;

Компонент И-НЕ с тремя входами

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity NAND3 is

port (

X1: in STD_LOGIC;

X2: in STD_LOGIC;

X3: in STD_LOGIC;

Y: out STD_LOGIC

);

end NAND3;

architecture NAND3 of NAND3 is

begin

Y <= not (X1 and X2 and X3);

end NAND3;

Синхронный двухступенчатый D-триггер с запрещающими связями

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity D is

port (

NSa: in STD_LOGIC;

D: in STD_LOGIC;

C: in STD_LOGIC;

NRa: in STD_LOGIC;

Q: out STD_LOGIC;

NQ: out STD_LOGIC

);

end D;

architecture D of D is

component NAND2

port (

X1: in STD_LOGIC;

X2: in STD_LOGIC;

Y: OUT STD_LOGIC

);

end component;

component NAND3

port (

X1: in STD_LOGIC;

X2: in STD_LOGIC;

X3: in STD_LOGIC;

Y: OUT STD_LOGIC

);

end component;

signal S: STD_LOGIC_VECTOR(1 to 8);

begin

E1: NAND2

port map (D, C, S(1));

E2: NAND2

port map (C, S(1), S(2));

E3: NAND3

port map (NSa, S(1), S(4), S(3));

E4: NAND3

port map (NRa, S(2), S(3), S(4));

E5: NAND3

port map (S(1), S(2), S(3), S(5));

E6: NAND3

port map (S(1), S(2), S(4), S(6));

E7: NAND3

port map (NSa, S(5), S(8), S(7));

E8: NAND3

port map (NRa, S(6), S(7), S(8));

Q <= S(7);

NQ <= S(8);

end D;

Регистр сдвига

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity RG is

generic (

N: integer := 4

);

port (

X_in: in STD_LOGIC_VECTOR(N downto 1);

X_serial: in STD_LOGIC;

Set: in STD_LOGIC;

Shift: in STD_LOGIC;

Reset: in STD_LOGIC;

Q_out: out STD_LOGIC_VECTOR(N downto 1)

);

end RG;

architecture RG of RG is

component D

port (

NSa: in STD_LOGIC;

D: in STD_LOGIC;

C: in STD_LOGIC;

NRa: in STD_LOGIC;

Q: out STD_LOGIC;

NQ: out STD_LOGIC

);

end component;

component NAND2

port (

X1: in STD_LOGIC;

X2: in STD_LOGIC;

Y: OUT STD_LOGIC

);

end component;

signal S,Q,NQ: STD_LOGIC_VECTOR(N downto 1);

begin

INPUT: for i in 1 to N generate

NUMi: NAND2

port map (Set, X_in(i), S(i));

end generate;

TRIG1: D

port map (S(1), X_serial, Shift, Reset, Q(1), NQ(1));

TRIGGERS: for i in 2 to N generate

TRIGi: D

port map (S(i), Q(i-1), Shift, Reset, Q(i), NQ(i));

end generate;

Q_out <= Q;

end RG;

Временные диаграммы

Поведенческое описание

VHDL-код

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity FUN_RG is

generic (

N : integer := 4

);

port(

X_in: in STD_LOGIC_VECTOR(N downto 1);

X_serial: in STD_LOGIC;

Set: in STD_LOGIC;

Shift: in STD_LOGIC;

Reset: in STD_LOGIC;

Q_out: out STD_LOGIC_VECTOR(N downto 1)

);

end FUN_RG;

architecture FUN_RG of FUN_RG is

signal state : STD_LOGIC_VECTOR(N downto 1);

begin

process(Set, Shift, Reset)

begin

if (Reset = '0') then

for i in 1 to N loop

state(i) <= '0';

end loop;

elsif (Set = '1') then

state <= X_in;

elsif(Shift = '0') and (Shift'last_value = '1') then

for i in N downto 2 loop

state(i) <= state(i-1);

end loop;

state(1) <= X_serial;

end if;

end process;

Q_out <= state;

end FUN_RG;

Временные диаграммы

Управляющие автоматы

Входные сигналы

Состояния

a1

a2

a3

a4

z1

a3 / w5

a2 / w1

a2 / w2

a1 / w5

z2

a4 / w5

a2 / w5

a4 / w3

a3 / w3

z3

a3 / w5

a1 / w4

a1 / w4

a1 / w5

Таблица задания функционирования конечного автомата

Введем следующую кодировку входного и выходного алфавитов:

Входной сигнал

Двоичный код

Десятичное значение

Выходной сигнал

Двоичный код

Десятичное значение

z1

01

1

w1

001

1

z2

10

2

w2

010

2

z3

11

3

w3

011

3

w4

100

4

w5

101

5

Поведенческое описание

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity Mealy is

port(синхронный синтезируемый триггер

clock, reset: in STD_LOGIC;

data_in: in STD_LOGIC_VECTOR(0 to 1);

data_out: out STD_LOGIC_VECTOR(0 to 2)

);

end Mealy;

architecture Mealy of Mealy is

type state_values is (a1,a2,a3,a4);

signal pres_state, next_state: state_values;

begin

-- FSM register

statereg: process(clock, reset)

begin

if (reset = '0') then

pres_state <= a1;

elsif (clock'event and clock = '1') then

pres_state <= next_state;

end if;

end process statereg;

-- FSM combinational block

fsm: process(pres_state, data_in)

begin

case pres_state is

when a1 =>

case data_in is

when "01" | "11" => data_out <= "101";

next_state <= a3;

when "10" => data_out <= "101";

next_state <= a4;

when others => data_out <= "000";

next_state <= a1;

end case;

when a2 =>

case data_in is

when "01" => data_out <= "001";

next_state <= a2;

when "10" => data_out <= "101";

next_state <= a2;

when "11" => data_out <= "100";

next_state <= a1;

when others => data_out <= "000";

next_state <= a1;

end case;

when a3 =>

case data_in is

when "01" => data_out <= "010";

next_state <= a2;

when "10" => data_out <= "011";

next_state <= a4;

when "11" => data_out <= "100";

next_state <= a1;

when others => data_out <= "000";

next_state <= a1;

end case;

when a4 =>

case data_in is

when "01" | "11" => data_out <= "101";

next_state <= a1;

when "10" => data_out <= "011";

next_state <= a3;

when others => data_out <= "000";

next_state <= a1;

end case;

when others => data_out <= "000";

next_state <= a1;

end case;

end process fsm;

end Mealy;

Временные диаграммы

Размещено на Allbest.ru


Подобные документы

  • Определение принципов работы с САПР Xilinx WebPACK. Особенности проектирования простейших комбинационных схем на базе ПЛИС. Описание устройства на языке VHDL, набор тестовых воздействий и временные диаграммы его работы. Размещение устройства на кристалле.

    лабораторная работа [318,7 K], добавлен 28.05.2012

  • Проектирование арифметико-логических устройств (АЛУ). Отладка описания логических схем на языке VHDL. Классификация АЛУ по способу представления чисел, характеру использования элементов и узлов. Список стандартных функций АЛУ, его описание на языке VHDL.

    лабораторная работа [633,4 K], добавлен 11.03.2014

  • Идентификаторы, объекты и операции языка VHDL. Последовательные и параллельные операторы. Описание интерфейса устройства. Синтез схем по описаниям на языке VHDL. Последовательность букв и цифр произвольной длины. Цифровое устройство и его модель.

    курсовая работа [132,5 K], добавлен 28.06.2009

  • Изучение логических операций и правил их преобразований. Моделирование цифровых схем, состоящих из логических вентилей. Способы описания работы логического устройства - таблицы истинности, временные диаграммы, аналитические функции, цифровые схемы.

    лабораторная работа [2,1 M], добавлен 02.03.2011

  • Триггер — логическое устройство, способное хранить 1 бит данных. В основе любого триггера находится кольцо из двух инверторов. Определение типа триггера по его характеристическому уравнению. Временные диаграммы наблюдаемые на экране осциллографа.

    лекция [88,1 K], добавлен 05.02.2009

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

    курсовая работа [172,6 K], добавлен 22.10.2014

  • Разработка устройства управления процессора для выполнения команд сложения, вычитания и поразрядного логического "или", с использованием способов адресации операндов: регистр-регистр, регистр - непосредственно операнд, регистр - прямая адресация памяти.

    курсовая работа [72,8 K], добавлен 21.11.2011

  • Принцип работы процессора (одномагистральная структура). Временные диаграммы, описывающие выполнение микроопераций для каждой команды. Структурная схема управляющего автомата на основе памяти с одним полем адреса. Описание процессора на языке Active VHDL.

    курсовая работа [621,0 K], добавлен 24.09.2010

  • Информация и информационные процессы. Содержательный и алфавитный подходы к измерению количества информации. Определение мощности алфавита информационного сообщения. Описания компьютерной кодировки русских и латинских букв. Использование двоичной системы.

    лабораторная работа [35,3 K], добавлен 04.09.2014

  • Проектирование многофункционального регистра, выполняющего заданный набор микроопераций как основного узла синтезируемого операционного автомата. Описание элементной базы. Описание принципиальной схемы на элементах малой и средней степени интеграции.

    курсовая работа [104,9 K], добавлен 24.09.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.