Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Національний університет “Львівська політехніка”
Кафедра ЕОМ
Звіт по лабораторній роботі №2
з предмету “Теорія і проектування комп'ютерних систем та мереж”
Львів – 2004
Тема робота: генерування VHDL-коду простого пристрою, його компіляція та функціональна симуляція.
Мета роботи: оволодіння засобами, які надає середовище Active-HDL по компіляції VHDL-опису пристрою та його функціональній симуляції.
Структурна схема суматора/віднімач без вхідних та віхідних регістрів.
Структурна схема суматора/віднімач з вхідними та віхідними регістрами.
VHDL – код згенерованого суматора/віднімач з регістрами:
library IEEE;
use IEEE.STD_LOGIC_1164.all;
use IEEE.STD_LOGIC_UNSIGNED.all;
entity addsub is
port (
ADDSUB : in std_logic;
OV : out std_logic;
CO : out std_logic;
A, B : in std_logic_vector (11 downto 0);
Q : out std_logic_vector (11 downto 0);
CLK : in std_logic;
RST : in std_logic
);
end entity;
architecture addsub_arch of addsub is
signal rg_a: std_logic_vector(11 downto 0);
signal rg_b: std_logic_vector(11 downto 0);
signal rg_q: std_logic_vector(11 downto 0);
signal rg_co: std_logic;
signal rg_ov: std_logic;
signal rg_ADDSUB: std_logic;
begin
process (rg_a, rg_b, ADDSUB)
variable TEMP_B : std_logic_vector (11 downto 0);
variable TEMP_RESULT : std_logic_vector (11 downto 0);
variable TEMP_RESULT2 : std_logic_vector (1 downto 0);
begin
if (rg_ADDSUB='1') then
TEMP_B:=rg_b;
else
TEMP_B:=not rg_b;
end if;
TEMP_RESULT:=('0' & rg_a(10 downto 0)) + ('0' & TEMP_B(10 downto 0)) + (not rg_ADDSUB);
TEMP_RESULT2:=('0' & rg_a(11)) + ('0' & TEMP_B(11)) + TEMP_RESULT(11);
rg_q <= TEMP_RESULT2(0) & TEMP_RESULT(10 downto 0);
rg_co <= TEMP_RESULT2(1) xor (not rg_ADDSUB);
rg_ov <= TEMP_RESULT2(1) xor TEMP_RESULT(11);
end process;
RG:process (CLK,RST)
begin
if RST='1' then
rg_a <= "000000000000";
rg_b <= "000000000000";
rg_ADDSUB <= '0';
CO <= '0';
OV <= '0';
Q <= "000000000000";
elsif CLK='1' and CLK'event then
rg_a <= A;
rg_b <= B;
rg_ADDSUB <= ADDSUB;
Q <= rg_q;
CO <= rg_co;
OV <= rg_ov;
end if;
end process;
end architecture addsub_arch;
Текст командного файлу:
restart
force CLK 1 0,0 50000 -r 100000
force RST 1 0,0 50000
force A 16#5
force B 16#4
force ADDSUB 16#1
run 100000
force A 16#8
force B 16#4
force ADDSUB 16#0
run 100000
force A 16#E
force B 16#5
force ADDSUB 16#0
run 100000
force A 16#1
force B 16#9
force ADDSUB 16#1
run 400000
Результати симуляції:
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!