Процессорный модуль
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
Вµм обработки информации, получены практические навыки по проектированию процессорного модуля с использованием языка 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;