Процессорный модуль

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



Вµм обработки информации, получены практические навыки по проектированию процессорного модуля с использованием языка VHDL.

В результате анализа автоматизированного синтеза устройств можно сделать вывод о правильном и полном выполнении задания к курсовому проектированию, т. к. разработанный процессорный модуль правильно выполняет предусмотренные заданием действия.

Список использованных источников

1. Кораблев Н.М. - Конспект лекций по дисциплине Компьютерная схемотехника - Харьков, 2010 г.

. Кораблев Н.М., Саранча С.Н., Саранча О.Н. - Методические указания к лабораторным работам по дисциплине Компьютерная схемотехника: Часть 2 Проектирование сложных систем - Харьков: ХНУРЭ, 2006 г.

. Бибило П.Н. Синтез логических схем с использованием языка VHDL. - М.: СЛОН-Р, 2002. - 384 с.

.

.

6.

Приложение 1

модель операционного автомата

IEEE;

use IEEE.STD_LOGIC_1164.all;IEEE.STD_LOGIC_unsigned.all;

OA_M is(, rst: in STD_LOGIC;: in STD_LOGIC_VECTOR (13 downto 1);: in STD_LOGIC_VECTOR (7 downto 0);: in STD_LOGIC_VECTOR (7 downto 0);: in STD_LOGIC;: out STD_LOGIC_VECTOR (15 downto 0);: out STD_LOGIC_VECTOR (4 downto 0)

);OA_M;

arch of OA_M is

объявление внутренних сигналовA, B, Arg2: STD_LOGIC_VECTOR (7 downto 0);CF: STD_LOGIC_VECTOR (8 downto 0);C, Arg1, Z: STD_LOGIC_VECTOR (15 downto 0);Cnt: INTEGER;COP: STD_LOGIC;

- сигналы A, B, C, COP - входы соответствующих регистров

сигналы Arg1, Arg2 - шины аргументов

сигнал Cnt - iётчик

begin(clk, rst) isrst='0' then

асинхронный сброс'0');<=0;<='0';rising_edge(clk) then

- синхронная записаь в регистр Аy(1)='1' then A<=d1;if;

синхронная записаь в регистр В

if y(2)='1' then B<=d2;(y(7) or y(12))='1' then B<=Z (7 downto 0);

end if;

синхронная записаь в регистр С

if y(3)='1' then C'0');(y(6) or y(8) or y(11))='1' then C<=Z;

end if;

синхронная запись результата

if y(10)='1' then r<=C (7 downto 0)&B (7 downto 0);y(13)='1' then r<=C;

end if;

синхронная запись в iетчик

if y(4)='1' then Cnt<=8;y(9)='1' then Cnt<=Cnt-1;

end if;

синхронная запись в регистр СОР

if y(5)='1' then COP<=d3;COP<='0';if;if;process;

Шина аргумента 1'0');

Шина аргумента 2<= A when y(6)='1'B when (y(7) or y(12))='1'

else (others=>'0');

Формирование флага переноса

CF<=('0'&A (7 downto 0))+('0'&B (7 downto 0))when y(8)='1';

Шина результата<=Arg1 (15 downto 0)+arg2 (7 downto 0) when y(6)='1'00000000&Arg1 (0)&Arg2 (7 downto 1) when y(7)='1'00000000&CF(8)&Arg1 (7 downto 1) when y(8)='1'Arg1 (14 downto 0)&'0' when y(11)='1'00000000&Arg2 (6 downto 0)&'0' when y(12)='1'

else (others=>'0');

формирование признаков результата

x(1)<=COP;(2)<='1' when B(0)='1' else '0';(3)<='1' when Cnt=0 else '0';(4)<='1' when B(7)='1' else '0';

x(0)<='0';

arch;

Приложение 2

модель управляющего автомата

library IEEE;IEEE.STD_LOGIC_1164.all;

ua_mili is(: in STD_LOGIC; - вход синхронизации: in STD_LOGIC; - вход сброса: in STD_LOGIC_VECTOR (4 downto 1); - входы логических условий: out STD_LOGIC_VECTOR (13 downto 1) - выходы микроопераций

);ua_mili;

arch of ua_mili isTState is (a0, a1, a2, a3, a4, a5, a6, a7, a8); - множество внутренних состоянийState: TState;

(clk, rst) is - функция переходовrst='0' then stateif x(3)='1' then state<=a0;state<=a6;if;case;if;process;

(state) is - функция выходовif x(1)='1' thenx(2)='1' then y(6)<='1';if;y(11)<='1';if;

a3=>y(7)if x(3)='1' then y(13)<='1';y(11)<='1';if;case;process;arch;

struct of ua_mili is

signal D, Q:std_logic_Vector (3 downto 0); - входы и выходы регистра состояния

signal a0, a1, a2, a3, a4, a5, a6, a7, a8:STD_LOGIC;

begin(clk, rst) is - процесс описывает 4-хразрядный регистр

beginrst ='0'then Q<= 0001;rising_edge(clk) then<=D;if;process;

дешифратор состояний<=(not Q(3)) and (not Q(2)) and (not Q(1)) and Q(0);<=Q(3) and (not Q(2)) and (not Q(1)) and (not Q(0));<=(not Q(3)) and (not Q(2)) and Q(1) and Q(0);<=(not Q(3)) and (not Q(2)) and (not Q(1)) and (not Q(0));<=(not Q(3)) and Q(2) and Q(1) and (not Q(0));<=(not Q(3)) and Q(2) and (not Q(1)) and Q(0);<=(not Q(3)) and (not Q(2)) and Q(1) and (not Q(0));<=(not Q(3)) and Q(2) and (not Q(1)) and (not Q(0));<=(not Q(3)) and Q(2) and Q(1) and Q(0);

функции возбуждения триггеров(0)<=a1 or a4 or (a5 and x(3)) or a7 or (a8 and x(3));(1)<=a1 or (a2 and not x(1)) or a3 or a7 or (a8 and not x(3));(2)<=a3 or a4 or (a6 and x(4)) or (a6 and not x(4)) or a7;(3)<=a0;

функции выходов(1)<=a0; y(2)<=a0; y(3)<=a0; y(4)<=a0; y(5)<=a1;(6)<=(a2 and x(1) and x(2)) or (a5 and not x(3) and x(2)) or (a6 and x(4));(7)<=a3; y(8)<=a4; y(9)<=a4 or a7; y(10)<=a5 and x(3);(11)<=(a2 and not x(1)) or (a8 and not x(3));(12)<=a7; y(13)<=a8 and x(3);

struct;

Приложение 3

модель процессорного устройства

library IEEE;

use IEEE.STD_LOGIC_1164.all;IEEE.STD_LOGIC_unsigned.all;PM is(, rst: in STD_LOGIC;: in STD_LOGIC_VECTOR (7 downto 0);: in STD_LOGIC_VECTOR (7 downto 0);: in STD_LOGIC;:out STD_LOGIC_VECTOR (15 downto 0)

);PM;

PM of PM is

- компонент - операционный автомат типа М

component OA_M is

port (, rst: in STD_LOGIC;: in STD_LOGIC_VECTOR (13 downto 1);: in STD_LOGIC_VECTOR (7 downto 0);: in STD_LOGIC_VECTOR (7 downto 0);: in STD_LOGIC;:out STD_LOGIC_VECTOR (15 downto 0);: out STD_LOGIC_VECTOR (4 downto 1)

);

end component;

- компонент - управляющий автомат с жесткой логикой типа Мили

component ua_mili is(, rst: in STD_LOGIC;: in STD_LOGIC_VECTOR (4 downto 1);: out STD_LOGIC_VECTOR (13 downto 1)

);

end component;

сигналы, которыми обмениваются ОА и УА.

signal y: STD_LOGIC_VECTOR (13 downto 0);x: STD_LOGIC_VECTOR (3 downto 0);

: OA_M port map (clk, rst, y (13 downto 1), d1, d2, d3, r, x);: ua_mili port map (clk, rst, x, y (13 downto 1));

end PM;