Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти та науки України
Національний університет «Львівська політехніка»
/
ЗВІТ
З лабораторної роботи №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;
Моделювання:
/
Висновок:
На даній лабораторній роботі я навчився проектувати арифметико-логічний пристрій та промоделював його роботу.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!