Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти та науки України
Національний університет «Львівська політехніка»
/
ЗВІТ
З лабораторної роботи №1
з дисципліни: «Архітектура спеціалізованих комп’ютерних систем»
на тему:
«Розробка та моделювання арифметико-логічного пристрою»
Мета: Отримати навички проектування арифметико-логічного пристрою.
Теоретичні матеріали:
Арифметико-логічний пристрій (АЛП) (англ. Arithmetic Logic Unit, ALU) — блок процесора, що служить для виконання арифметичних та логічних перетворень над даними, що іменуються операндами. Цей пристрій є фундаментальною частиною будь-якого обчислювача, навіть найпростіші мікроконтролери мають його в складі свогоядра. Центральний процесор та відеопроцесор можуть мати кілька АЛП, що відрізняються своїм функціональним призначенням або типом оброблюваних даних.
Хід роботи:
В даній лабораторній роботі було розроблено простий арифметико-логічний пристрій.
/
Рис. 1 Блок-схема розроблюваного пристрою
АЛУ отримує два вхідних 8-ми бітних операнда «А» та «В». Результат позначаеться буквою «R».
Код пристрою:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;
entity simple_alu is
port( Clk : in std_logic; --âõ³ä ñèíõðîí³çàö³¿
A,B : in signed(63 downto 0); --âõ³äí³ îïåðàíäè
R : out signed(63 downto 0); --âèõ³ä ÀËÓ
RST : in bit
);
end simple_alu;
architecture Behavioral of simple_alu is
signal Reg1,Reg2,Reg3 : signed(63 downto 0);
begin
Reg1 <= A;
Reg2 <= B;
R <= Reg3;
process(Clk)
begin
if RST='0'
then Reg3 <= not Reg1;
else
Reg3 <="0000000000000000000000000000000000000000000000000000000000000000";
end if;
end process;
end Behavioral;
Тестовий стенд для АЛУ:
-- Stimulus signals - signals mapped to the input and inout ports of tested entity
signal Clk : std_logic;
signal A : SIGNED(63 downto 0);
signal B : SIGNED(63 downto 0);
signal RST : BIT;
-- Observed signals - signals mapped to the output ports of tested entity
signal R : SIGNED(63 downto 0);
--Signal is used to stop clock signal generators
signal END_SIM: BOOLEAN:=FALSE;
-- Add your code here ...
begin
-- Unit Under Test port map
UUT : simple_alu
port map (
Clk => Clk,
A => A,
B => B,
R => R,
RST => RST
);
--Below VHDL code is an inserted .\compile\Waveform Editor 1.vhs
--User can modify it ....
STIMULUS: process
begin -- of stimulus process
--wait for <time to next event>; -- <current time>
RST <= '0';
A <= "0000000000000000000000000000000000000000000000000111100000111000";
wait for 50 ns; --0 fs
RST <= '1';
wait for 50 ns; --50 ns
RST <= '0';
wait for 100 ns; --100 ns
END_SIM <= TRUE;
-- end of stimulus events
wait;
end process; -- end of stimulus process
CLOCK_Clk : process
begin
--this process was generated based on formula: 0 0 ns, 1 50 ns -r 100 ns
--wait for <time to next event>; -- <current time>
if END_SIM = FALSE then
Clk <= '0';
wait for 50 ns; --0 fs
else
wait;
end if;
if END_SIM = FALSE then
Clk <= '1';
wait for 50 ns; --50 ns
else
wait;
end if;
end process;
-- Add your stimulus here ...
end TB_ARCHITECTURE;
configuration TESTBENCH_FOR_simple_alu of simple_alu_tb is
for TB_ARCHITECTURE
for UUT : simple_alu
use entity work.simple_alu(behavioral);
end for;
end for;
end TESTBENCH_FOR_simple_alu;
Моделювання:
/
Висновок:
На даній лабораторній роботі я навчився проектувати арифметико-логічний пристрій та промоделював його роботу.