Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки
Національний університет „Львівська політехніка”
Кафедра EОМ
/
Звіт
з лабораторної роботи № 2
з дисципліни: “ ТЕСТУВАННЯ І ДІАГНОСТИКА
КІБЕРФІЗИЧНИХ СИСТЕМ ”
На тему “Тестування ОЗП”
Львів
2019
МЕТА РОБОТИ
Метою роботи є ознайомлення з загальною схемою тестування цифрової техніки. Засвоєння методів та засобів тестування цифрових схем із пам’яттю на прикладі оперативного запам’ятовуючого пристрою (ОЗП).
Завдання: Дана лабораторна робота виконується у середовищі Aldec Active HDL.
У даній роботі при тестуванні створюються 4 вузли.
1) Генератор тестових послідовностей;
2) Еталонний вузол;
3) Еталонний вузол з наперед заданою помилкою;
4) Вузол порівняння.
Потрібно змоделювати OЗП та протестувати його при різних помилках. Реалізувати відповідно до варіанту вузол генерування тестових послідовностей:
1) шини адреси;
2) шини даних;
3) перевірки на збереження інформації.
Виконання роботи:
Код Еталонного вузла:
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.numeric_std.all;
ENTITY ram IS
GENERIC(
d_width : INTEGER := 8; --width of each data word
size : INTEGER := 8; --number of data words the memory can store
constant N: natural := 1
);
PORT(
oe_ena : IN STD_LOGIC; --output enable
wr_ena : IN STD_LOGIC; --write enable
rd_ena : IN STD_LOGIC; --read enable
addr : IN INTEGER RANGE 0 TO 7; --address to write/read
data_in : IN STD_LOGIC_VECTOR(7 DOWNTO 0); --input data to write
data_out : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); --output data read
cs : IN STD_LOGIC); -- chip select
END ram;
ARCHITECTURE logic OF ram IS
TYPE memory IS ARRAY(size-1 DOWNTO 0) OF STD_LOGIC_VECTOR(d_width-1 DOWNTO 0); --data type for memory
SIGNAL ram : memory; --memory array
--internal address register
BEGIN
PROCESS(data_in, wr_ena, rd_ena, addr, cs)
BEGIN
IF(wr_ena = '1' and rd_ena = '0' and cs = '1') THEN
ram(addr) <= data_in;
END IF;
END PROCESS;
data_out <= ram(addr) WHEN wr_ena = '0' and rd_ena = '1' and oe_ena = '1';
END logic;
Змінений код Еталонного вузла:
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.numeric_std.all;
ENTITY ram IS
GENERIC(
d_width : INTEGER := 8; --width of each data word
size : INTEGER := 8; --number of data words the memory can store
constant N: natural := 1
);
PORT(
oe_ena : IN STD_LOGIC; --output enable
wr_ena : IN STD_LOGIC; --write enable
rd_ena : IN STD_LOGIC; --read enable
addr : IN INTEGER RANGE 0 TO 7; --address to write/read
data_in : IN STD_LOGIC_VECTOR(7 DOWNTO 0); --input data to write
data_out : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); --output data read
cs : IN STD_LOGIC); -- chip select
END ram;
ARCHITECTURE logic OF ram IS
TYPE memory IS ARRAY(size-1 DOWNTO 0) OF STD_LOGIC_VECTOR(d_width-1 DOWNTO 0); --data type for memory
SIGNAL ram : memory; --memory array
--internal address register
BEGIN
PROCESS(data_in, wr_ena, rd_ena, addr, cs)
BEGIN
IF(wr_ena = '1' and rd_ena = '0' and cs = '1') THEN
ram(addr) <= data_in;
data_out <= "ZZZZZZZZ";
ELSE
data_out <= ram(addr);
END IF;
END PROCESS;
END logic;
Код Вузла порівняння:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity Comparator is
port ( First : in std_logic_vector (7 downto 0);
Second : in std_logic_vector (7 downto 0);
Output : out std_logic
);
end Comparator;
architecture Arch_Comparator of Comparator is
begin
Output <= '1' when (First=Second) else '0';
end Arch_Comparator;
Код генератора тестових послідовностей:
LIBRARY ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY generator IS
PORT(
ADDR : OUT INTEGER RANGE 0 TO 7;
DATA : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
WR : OUT STD_LOGIC;
RD : OUT STD_LOGIC;
OE : OUT STD_LOGIC;
CS : OUT STD_LOGIC
);
END generator;
architecture logic of generator IS
BEGIN
PROCESS IS
BEGIN
for jj in 0 to 7 loop
for ii in 0 to 7 loop
CS <= '1';
WR <= '1';
OE <= '1';
RD <= '0';
ADDR <= ii;
DATA <= "00000000" ;
wait for 10 ns;
END loop;
ADDR <= jj;
DATA <= "11111111" ;
wait for 10 ns;
FOR aa IN 0 TO 7 LOOP
RD <= '1';
WR <= '0';
ADDR <= aa;
wait for 10 ns;
END loop;
END loop;
END PROCESS;
END logic;
Часова діаграма роботи системи:
/
Висновок: в даній лабораторній роботі я розробив програму тестування ОЗП, описав поведінку еталонного ОЗП, за результатами тестування ОЗП визначив несправні елементи досліджуваного пристрою, несправні контакти визначених елементів та тип несправності (обрив, закоротка).
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!