Разработка функциональных узлов ЭВМ

Автор работы: Пользователь скрыл имя, 18 Января 2013 в 05:18, курсовая работа

Краткое описание

Исходные данные к проекту: Спроектировать 12-и разрядный сдвиговый регистр с возможностью или последовательной загрузки или параллельной загрузки через 4х контактный разъем за 12 и 3 такта соответственно. Организовать возможность поразрядного сдвига уже загруженной информации вправо. Организовать 4 режима индикации: Загрузка, сдвиг, ошибка, индикация состояния регистра.

Содержание

Алгоритм работы устройства 3
Введение 4
Анализ задачи 7
Перечень выбранных электронных компонентов 8
Синтез
Синтез логических функций для ПЗУ 15
Синтез КС 19
Моделирование
Структурное моделирование устройства 21
Поведенческое моделирование 21
Временные диаграммы
Временные диаграммы структурного описания 31
Временные диаграммы поведенческого описания 35
Анализ Временных задержек 40
Заключение 41
Библиографический список 42

Вложенные файлы: 1 файл

Курсач.docx

— 1.11 Мб (Скачать файл)

        R  : in  STD_LOGIC_VECTOR(1 downto 0);

           Q  : out STD_LOGIC_VECTOR(3 downto 0) );

end SN7492;

 

architecture Behavioral of SN7492 is

signal Qn : STD_LOGIC_VECTOR(3 downto 0); 

signal S0 : STD_LOGIC_VECTOR(11 downto 0) := "010101010101"; 

signal S1 : STD_LOGIC_VECTOR(11 downto 0) := "001100001100";

signal S2 : STD_LOGIC_VECTOR(11 downto 0) := "000011000011";

signal S3 : STD_LOGIC_VECTOR(11 downto 0) := "000000111111";

signal i  : INTEGER := 10;

signal j  : INTEGER := 10;

 

 

 

 


begin Изм.

Лист

№ докум.

Подпись

Дата

Лист

26

Анисимов А. В. КП. ВМ-91.090700505


 

process (C,R)

  begin

  if (R = "11") then

   Qn <= "0000";

  elsif (C(1)'event and C(1) = '0') then 

   Qn(0) <= S0(i); 

   i <= i - 1;

   if (i = 0) then i <= 11; end if; 

  end if;

  if (R = "11") then

   Qn <= "0000";

  elsif (C(0)'event and C(0) = '0') then

    Qn(1) <= S1(j);

    Qn(2) <= S2(j);

    Qn(3) <= S3(j);

    j <= j - 1; 

    if (j = 0) then j <= 11; end if;  

  end if;

end process;

 

Q <= Qn;

end Behavioral;

 

Листинг итоговой схемы CW.vhd

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

 

entity RG12 is

    Port ( SI : in  STD_LOGIC;

            PE : in  STD_LOGIC;

 


Изм.

Лист

№ докум.

Подпись

Дата

Лист

27

Анисимов А. В. КП. ВМ-91.090700505


 

     SE : in  STD_LOGIC;

  PB : in  STD_LOGIC;

           C : in  STD_LOGIC_VECTOR(1 downto 0);

           D  : in  STD_LOGIC_VECTOR(3 downto 0);

           Q  : out STD_LOGIC_VECTOR(20 downto 0) );

end RG12;

 

architecture Behavioral of RG12 is

 

component SN7495 is

    Port ( SI : in  STD_LOGIC;

           PE : in  STD_LOGIC;

           C  : in  STD_LOGIC_VECTOR(1 downto 0);

           D  : in  STD_LOGIC_VECTOR(3 downto 0);

           Q  : out STD_LOGIC_VECTOR(3 downto 0) );

end component SN7495;

 

component S8223 is

    Port ( X:   in    STD_LOGIC_VECTOR (4 downto 0);

        PB:  in    STD_LOGIC;

           LED: out   STD_LOGIC_VECTOR (7 downto 0) );

end component S8223;

 

component SN7492 is

    Port ( C  : in  STD_LOGIC_VECTOR(1 downto 0);

        R  : in  STD_LOGIC_VECTOR(1 downto 0);

           Q  : out STD_LOGIC_VECTOR(3 downto 0) );

end component SN7492;

 

 

component SN74153 is

     Port ( A  : in  STD_LOGIC_VECTOR(1 downto 0);

        D_1  : in  STD_LOGIC_VECTOR(3 downto 0);

              D_0  : in  STD_LOGIC_VECTOR(3 downto 0);


Изм.

Лист

№ докум.

Подпись

Дата

Лист

28

Анисимов А. В. КП. ВМ-91.090700505


        TE : in STD_LOGIC;

        Q_1 : out STD_LOGIC;

        Q_0 : out STD_LOGIC );

end component SN74153;

 

signal r_2   :  STD_LOGIC_VECTOR(3  downto 0) := "0000";

signal r_1   :  STD_LOGIC_VECTOR(3  downto 0) := "0000";

signal r_0   :  STD_LOGIC_VECTOR(3  downto 0) := "0000";

signal m_2   :  STD_LOGIC_VECTOR(4  downto 0);

signal m_1   :  STD_LOGIC_VECTOR(4  downto 0);

signal m_0   :  STD_LOGIC_VECTOR(4  downto 0);

signal d_2   :  STD_LOGIC_VECTOR(4  downto 0);

signal d_1   :  STD_LOGIC_VECTOR(4  downto 0);

signal d_0   :  STD_LOGIC_VECTOR(4  downto 0);

signal l_2   :  STD_LOGIC_VECTOR(7  downto 0);

signal l_1   :  STD_LOGIC_VECTOR(7  downto 0);

signal l_0   :  STD_LOGIC_VECTOR(7  downto 0);

signal CI    :  STD_LOGIC_VECTOR(1  downto 0); -- загрузка/сдвиг

signal C_ct  :  STD_LOGIC_VECTOR(1  downto 0);

signal R_ct  :  STD_LOGIC_VECTOR(1  downto 0);

signal Q_ct  :  STD_LOGIC_VECTOR(3  downto 0);

signal A     :  STD_LOGIC_VECTOR(1  downto 0); --управление мультиплексора

signal ZS    :  STD_LOGIC;

signal mi_14 :  STD_LOGIC_VECTOR(3  downto 0); --входы в мультиплексоры

signal mi_13 :  STD_LOGIC_VECTOR(3  downto 0);

signal mi_12 :  STD_LOGIC_VECTOR(3  downto 0);

signal mi_11 :  STD_LOGIC_VECTOR(3  downto 0);

signal mi_10 :  STD_LOGIC_VECTOR(3  downto 0);

signal mi_9  :  STD_LOGIC_VECTOR(3  downto 0);

signal mi_8  : STD_LOGIC_VECTOR(3  downto 0);

signal mi_7  :  STD_LOGIC_VECTOR(3  downto 0);

signal mi_6  :  STD_LOGIC_VECTOR(3  downto 0);

signal mi_5  :  STD_LOGIC_VECTOR(3  downto 0);

signal mi_4  :  STD_LOGIC_VECTOR(3  downto 0);


Изм.

Лист

№ докум.

Подпись

Дата

Лист

29

Анисимов А. В. КП. ВМ-91.090700505


 

signal mi_3  :  STD_LOGIC_VECTOR(3  downto 0);

signal mi_2  :  STD_LOGIC_VECTOR(3  downto 0);

signal mi_1  :  STD_LOGIC_VECTOR(3  downto 0);

signal mi_0  :  STD_LOGIC_VECTOR(3  downto 0);

 

begin

 

CI(1) <= PE and not SE;

CI(0) <= SI and not SE;

 

rg_2    : SN7495  port map(CI(0),CI(1),C,D,r_0);

rg_1    : SN7495  port map(r_0(3),CI(1),C,r_0,r_1);

rg_0    : SN7495  port map(r_1(3),CI(1),C,r_1,r_2);

 

R_ct(1) <= not SE;

R_ct(0) <= R_ct(1);

C_ct(1) <= C(1);

C_ct(0) <= Q_ct(0);

cnt_12  : SN7492  port map(C_ct,R_ct,Q_ct);

 

mi_14(3) <= '0';  mi_14(2) <= '0';     mi_14(1) <= '0';  mi_14(0) <= '1';

mi_13(3) <= '1';  mi_13(2) <= r_2(3);  mi_13(1) <= '0';  mi_13(0) <= '0';

mi_12(3) <= '1';  mi_12(2) <= r_2(2);  mi_12(1) <= '1';  mi_12(0) <= '0';

mi_11(3) <= '1';  mi_11(2) <= r_2(1);  mi_11(1) <= '0';  mi_11(0) <= '0';

mi_10(3) <= '0';  mi_10(2) <= r_2(0);  mi_10(1) <= '1';  mi_10(0) <= '0';

 

mi_9(3)  <= '1';  mi_9(2)  <= '0';     mi_9(1)  <= '1';  mi_9(0)  <= '0';

mi_8(3)  <= '0';  mi_8(2)  <= r_1(3);  mi_8(1)  <= '0';  mi_8(0)  <= '0';

mi_7(3)  <= '0';  mi_7(2)  <= r_1(2);  mi_7(1)  <= '0';  mi_7(0)  <= '0';

mi_6(3)  <= '1';  mi_6(2)  <= r_1(1);  mi_6(1)  <= '0';  mi_6(0)  <= '0';

 

 

 

 

 

mi_5(3)  <= '0';  mi_5(2)  <= r_2(0);  mi_5(1)  <= '1';  mi_5(0)  <= '0';


mi_4(3)  <= '1';  mi_4(2)  <= '0';     mi_4(1)  <= '0';  mi_4(0)  <=Изм.

Лист

№ докум.

Подпись

Дата

Лист

30

Анисимов А. В. КП. ВМ-91.090700505


'0';

mi_3(3)  <= '0';  mi_3(2)  <= r_0(3);  mi_3(1)  <= '1';  mi_3(0)  <= '1';

mi_2(3)  <= '0';  mi_2(2)  <= r_0(2);  mi_2(1)  <= '1';  mi_2(0)  <= '0';

mi_1(3)  <= '1';  mi_1(2)  <= r_0(1);  mi_1(1)  <= '1';  mi_1(0)  <= '1';

mi_0(3)  <= '0';  mi_0(2)  <= r_0(0);  mi_0(1)  <= '1';  mi_0(0)  <= '0';

 

ZS <= not (r_2(3) or r_2(2) or r_2(1) or r_2(0) or r_1(3) or r_1(2) or r_1(1) or r_1(0) or r_0(3) or r_0(2) or r_0(1) or r_0(0));

A(1) <= (PB and not SE) or (Q_ct(3) and not C(1) and SE) or (ZS and SE);

A(0) <= SE;

mux_7   : SN74153 port map(A,mi_14,mi_13,'0',m_2(4),m_2(3));

mux_6   : SN74153 port map(A,mi_12,mi_11,'0',m_2(2),m_2(1));

mux_5   : SN74153 port map(A,mi_10,mi_9,'0',m_2(0),m_1(4));

mux_4   : SN74153 port map(A,mi_8,mi_7,'0',m_1(3),m_1(2));

mux_3   : SN74153 port map(A,mi_6,mi_5,'0',m_1(1),m_1(0));

mux_2   : SN74153 port map(A,mi_4,mi_3,'0',m_0(4),m_0(3));

mux_1   : SN74153 port map(A,mi_2,mi_1,'0',m_0(2),m_0(1));

mux_0   : SN74153 port map(A,mi_0,"0000",'0',m_0(0),open);

 

DCseg_2 : S8223   port map(m_2,PB,l_2);

DCseg_1 : S8223   port map(m_1,PB,l_1);

DCseg_0 : S8223   port map(m_0,PB,l_0);

 

Q(20) <= l_2(6);

Q(19) <= l_2(5);

Q(18) <= l_2(4);

Q(17) <= l_2(3);

Q(16) <= l_2(2);

Q(15) <= l_2(1);

Q(14) <= l_2(0);

Q(13) <= l_1(6);

Q(12) <= l_1(5);

 

Q(11) <= l_1(4);

Q(10) <= l_1(3);

Q(9)  <= l_1(2);

Q(8)  <= l_1(1);

Q(7)  <= l_1(0);

Q(6)  <= l_0(6);

Q(5)  <= l_0(5);

Q(4)  <= l_0(4);

Q(3)  <= l_0(3);

Q(2)  <= l_0(2);

Q(1)  <= l_0(1);

Q(0)  <= l_0(0);

end Behavioral;

 


Изм.

Лист

№ докум.

Подпись

Дата

Лист

31

Анисимов А. В. КП. ВМ-91.090700505


Временные диаграммы  структурного описания:

На представленных диаграммах:

SI – последовательный вход регистра

SE – вход разрешения сдвига

PE – выбор режима работы последовательный/параллельный

PB – разрешение индикации

D3-D0 – параллельные входы регистра

C1-C0 – синхроимпульсы

Q14-Q0 – выходы регистра

 

 

 

 

 

 

 

 

 

 


Изм.

Лист

№ докум.

Подпись

Дата

Лист

32

Анисимов А. В. КП. ВМ-91.090700505


Рис. 14. Последовательная загрузка, параллельная загрузка, сдвиг, ошибка

 

 


Изм.

Лист

№ докум.

Подпись

Дата

Лист

33

Волошин М. А. КП. ВМ-81.080700020.ПЗ


 

Рис. 15. Последовательная неполная загрузка, сдвиг, ошибка

 


Спроектированное  устройство работает по спаду синхроимпульса. На рисунке 14 предствлена первая временная диаграмма работы регистра. На ней видно что изначально регистр в состоянии отображения загруженной информации (PB=1), в начальный момент времени это все нули. Далее идет последовательная загрузка со входа SI=1. По окончании последовательно загрузки идет два такта (два спада синхроимпульса) параллельной, со входов D3-D0 в регистр записываются нули. Во время записи второй части снимается сигнал «Разрешение индикации» Далее, на дисплее начинает отображаться сообщение «Сдвиг». После загрузки в регистре будет находится число 111100000000. Через 12 тактов сдвига вправо старший разряд счетчика выставится в 1, что вызовет переход в состояние отображения произошедшей ошибки. По снятии сигнала SE регистр будет находится в режиме загрузки с соответствующей индикацией.Изм.

Лист

№ докум.

Подпись

Дата

Лист

34

Анисимов А. В. КП. ВМ-91.090700505


 

 

 На рисунке 15 представлена вторая временная диаграмма на которой видна неполная последовательная загрузка единиц в восемь младших разрядов регистра. По завершении загрузки включается режим сдвига длинной в 8 тактов. Результатом сдвига числа 000011111111 будут все нули, что вызовет ошибку и срабатывание индикации Err с сохранением состояния регистра, пока не будет снят сигнал SE «Разрешение сдвига». После снятия сигнала SE на дисплее будет отображаться буквенный код LOA соответствующий режиму загрузки

 

 

 

 

 

 

 

 

Временные диаграммы  поведенческого описания:

 

На представленных диаграммах(рисунки 16 и 17):

SI – последовательный вход регистра

SE – вход разрешения сдвига

PE – выбор режима работы последовательный/параллельный


PB – разрешение индикацииИзм.

Лист

№ докум.

Подпись

Дата

Лист

35

Анисимов А. В. КП. ВМ-91.090700505


 

D3-D0 – параллельные входы регистра

C1-C0 – синхроимпульсы

Q14-Q0 – выходы регистра

 

На представленных диаграммах(рисунки 18 и 19):

SI – последовательный вход регистра

SE – вход разрешения сдвига

PE – выбор режима работы последовательный/параллельный


PB – разрешение индикацииИзм.

Лист

№ докум.

Подпись

Дата

Лист

35


 

D3-D0 – параллельные входы регистра

C1-C0 – синхроимпульсы

Q20-Q0 – выходы дешифратора семисегментного дисплея(К155РЕ3)

 

 

 

 

 

 

 

 

 

 

 

 


Изм.

Лист

№ докум.

Подпись

Дата

Лист

36

Анисимов А. В. КП. ВМ-91.090700505


 

Рис. 16. Последовательная загрузка, параллельная загрузка, сдвиг, ошибка

 


Изм.

Лист

№ докум.

Подпись

Информация о работе Разработка функциональных узлов ЭВМ