Тестування цифрового автомата

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2019
Тип роботи:
Лабораторна робота
Предмет:
Тестування та діагностика кіберфізичних систем

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” КАФЕДРА ЕОМ
/ Звіт з лабораторної роботи 3 з дисципліни «Тестування та діагностика кіберфізичних систем» на тему” Тестування цифрового автомата”
Львів – 2019
1 МЕТА РОБОТИ Метою роботи є ознайомлення з загальною схемою тестування цифрової
техніки. Засвоєння методів та засобів тестування цифрових схем з пам’яттю на
прикладі цифрового автомата (ЦА).
2 Очікуваний результат роботи Необхідно розробити програму тестування ЦА, описати поведінку еталонного ЦА (створити еталон), за результатами тестування ЦА знайти прояви помилки, визначити тип несправності (неправильне формування вихідних сигналів, неправильний перехід до наступного стану), визначити причину несправності (обрив або закоротка вхідного чи вихідного сигналу).
3 ТЕОРЕТИЧНА ЧАСТИНА
Особливості тестування цифрових автоматів. Цифровий автомат є прикладом пристрою із пам’яттю. Цифровий автомат характеризується: набором вхідних сигналів {X}; набором вихідних сигналів {Y}; набором внутрішніх станів {A}; початковим станом a0; правилом формування вихідних сигналів; правилом формування наступного внутрішнього стану. Існують такі способи завдання автоматів, які описують залежність, відповідно, наступного стану автомата і його виходу від теперешнього
стану автомата і його входів: табличний
- задаються дві таблиці: станів (переходів) і виходів; за допомогою часових діаграм; аналітичний,
в тому числі на мовах опису апаратної частини цифрових вузлів – Hardware Discription Language (HDL); за допомогою графа
алгоритму роботи автомата; за допомогою графа
автомата (рис. 3.6); опис на звичайній мові. Цифрові автомати поділяються на автомати: Мура, в яких вихідні сигнали залежать тільки від стану автомата; Мілі, в яких вихідні сигнали залежать як від стану автомата, так і від вхідних сигналів. Здебільшого цифрові автомати бувають синхронними, тобто зміна стану автомата здійснюється по фронту синхроімпульсів.
На рис. 3.1 представлений граф синхронного автомата Мура, який має: вісім внутрішніх станів (S0, , S7), які кодуються трьома розрядами (s0, , s2);
три вхідних сигнала (pusk, x0, x1);
два вихідних сигнала (y0,
y1);
Даний автомат переводиться до початкового стану за допомогою асинхронного сигналу скиду (Reset). Синхроімпульси на графі не показані. Основний принцип тестування цифрових автоматів полягає в перевірці того, що автомат: здійснює усі позначені стрілочками на графі переходи і не здійснює не позначених; формує усі позначені на графі вихідні сигнали в потрібних станах і не формує не позначених. Для перевірки усіх цих вимог потрібно декілька разів повертати автомат до початкового стану і повторно проводити його перевірку з іншою послідовністю вхідних сигналів.
/
4 Характеристика робочого місця У даній роботі використовується еталон у вигляді табличної моделі, тобто у файлі SIMUL.CMD у вигляді таблиці зберігаються результати роботи об’єкта при подачі йому на вхід деякого обмеженого набору тестових даних. Робоче місце моделюється за допомогою пакета Foundation Series v2.1i [2] ф.Xilinx, призначеного для проектування програмованих логічних інтегральних схем (ПЛІС) і
описується набором файлів відповідного формату (таблиця 4.1). Таблиця 4.1 Розширення файлів РОЗШИРЕННЯ
ПРИЗНАЧЕННЯ ФАЙЛА .SCH
схема електрична принципова .ABL опис роботи бібліотечного елемента (моделі, на мові ABEL) .CMD
програма моделювання досліджуваного пристрою Структурно модель робочого місця (рис. 4.1 – State_st1.SCH) складається з: досліджуваного пристрою (мікросхема D3); стенда; Досліджуваний пристрій може бути або еталонним (state_s), алгоритм його роботи (рис. 3.6) знаходиться у файлі state_s.asf.
/
Стенд складається з:
зовнішнього генератора тестових послідовностей та еталонних результатів (файл
SIMUL.CMD);
схеми порівняння еталонних результатів та реальних (елемент D16 COMP5); вхідних (IBUF) та вихідних (OBUF) буферів, а також контактів
(IPAD, OPAD). може виконуватися практично без обмежень. Рис. Схема досліджуваного пристрою. Рис. Результат роботи досліджуваного пристрою. Висновки: під час цієї лабораторної роботи, я вивчив принципи тестування пристроїв, моделюючи ці пристрої за допомогою мови VHDL.
Код програми
standart.vhd
library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; use IEEE.std_logic_unsigned.all; use IEEE.std_logic_signed.all;
entity standart is
port (
clk: in STD_LOGIC;
enable: in STD_LOGIC;
pusk: in STD_LOGIC;
reset: in STD_LOGIC;
x0: in STD_LOGIC;
x1: in STD_LOGIC;
k0: out STD_LOGIC;
k1: out STD_LOGIC;
k2: out STD_LOGIC;
y0: out STD_LOGIC;
y1: out STD_LOGIC); end standart;
architecture standart_arch of standart is
-- SYMBOLIC ENCODED state machine: Sreg0 type Sreg0_type is (
S1, S2, S3, S4, S5, S6, S7, S8 ); -- attribute ENUM_ENCODING of Sreg0_type: type is ... -- enum_encoding attribute is not supported for symbolic encoding
signal Sreg0, NextState_Sreg0: Sreg0_type;
-- Declarations of pre-registered internal signals
begin
-- FSM coverage pragmas -- Aldec enum Machine_Sreg0 CURRENT=Sreg0 -- Aldec enum Machine_Sreg0 NEXT=NextState_Sreg0 -- Aldec enum Machine_Sreg0 INITIAL_STATE=S1 -- Aldec enum Machine_Sreg0 STATES=S2,S3,S4,S5,S6,S7,S8 -- Aldec enum Machine_Sreg0 TRANS=S1->S1,S1->S2,S2->S3,S2->S6,S3->S3,S3->S4,S4->S5,S4->S8,S5->S6,S6->S7,S7->S3,S7->S8,S8->S1,S8->S8
-- concurrent signals assignments
-- Diagram ACTION
---------------------------------------------------------------------- -- Machine: Sreg0 ---------------------------------------------------------------------- ------------------------------------ -- Next State Logic (combinatorial) ------------------------------------ Sreg0_NextState: process (pusk, x0, x1, Sreg0) begin
NextState_Sreg0 <= Sreg0;
-- Set default values for outputs and signals
y0 <= '0';
y1 <= '1';
k0 <= '0';
k1 <= '0';
k2
y0<='0';
y1<='1';
k0<='0';
k1<='0';
k2<='0';
if pusk='1' then
NextState_Sreg0 <= S2;
elsif pusk='0' then
NextState_Sreg0
y0<='1';
y1<='0';
k0<='1';
k1<='0';
k2<='0';
if x0='1' then
NextState_Sreg0 <= S3;
elsif x0='0' then
NextState_Sreg0
y0<='1';
y1<='0';
k0<='0';
k1<='1';
k2<='0';
if x0='0' then
NextState_Sreg0 <= S4;
elsif x0='1' then
NextState_Sreg0
y0<='1';
y1<='0';
k0<='1';
k1<='1';
k2<='0';
if x1='0' then
NextState_Sreg0 <= S5;
elsif x1='1' then
NextState_Sreg0
y0<='0';
y1<='0';
k0<='0';
k1<='0';
k2<='1';
NextState_Sreg0
y0<='0';
y1<='1';
k0<='1';
k1<='0';
k2<='1';
NextState_Sreg0
y0<='0';
y1<='0';
k0<='0';
k1<='1';
k2<='1';
if x1='1' then
NextState_Sreg0 <= S8;
elsif x1='0' then
NextState_Sreg0
y0<='0';
y1<='0';
k0<='0';
k1<='0';
k2<='0';
if pusk='0' then
NextState_Sreg0 <= S1;
elsif pusk='1' then
NextState_Sreg0
null; --vhdl_cover_on
end case; end process;
------------------------------------ -- Current State Logic (sequential) ------------------------------------ Sreg0_CurrentState: process (clk) begin
if clk'event and clk = '1' then
if reset='1' then
Sreg0 <= S1;
else
if enable = '1' then
Sreg0 S1,S1->S2,S2->S3,S2->S6,S3->S3,S3->S4,S4->S5,S4->S8,S5->S6,S6->S7,S7->S3,S7->S8,S8->S1,S8->S8
-- concurrent signals assignments
-- Diagram ACTION
---------------------------------------------------------------------- -- Machine: Master ---------------------------------------------------------------------- ------------------------------------ -- Next State Logic (combinatorial) ------------------------------------ Master_NextState: process (pusk, x0, x1, Master) begin
NextState_Master <= Master;
-- Set default values for outputs and signals
y0 <= '0';
y1 <= '0';
k0 <= '0';
k1 <= '0';
k2
y0<='0';
y1<='0';
k0<='0';
k1<='0';
k2<='0';
if pusk='1' then
NextState_Master <= S2;
elsif pusk='0' then
NextState_Master
y0<='1';
y1<='0';
k0<='1';
k1<='0';
k2<='0';
if x0='1' then
NextState_Master <= S3;
elsif x0='0' then
NextState_Master
y0<='1';
y1<='0';
k0<='0';
k1<='1';
k2<='0';
if x0='1' then
NextState_Master <= S3;
elsif x0='0' then
NextState_Master
y0<='1';
y1<='0';
k0<='1';
k1<='1';
k2<='0';
if x1='1' then
NextState_Master <= S8;
elsif x1='0' then
NextState_Master
y0<='0';
y1<='0';
k0<='0';
k1<='0';
k2<='1';
NextState_Master
y0<='0';
y1<='1';
k0<='1';
k1<='0';
k2<='1';
NextState_Master
y0<='0';
y1<='0';
k0<='0';
k1<='1';
k2<='1';
if x1='0' then
NextState_Master <= S3;
elsif x1='1' then
NextState_Master
y0<='1';
y1<='0';
k0<='1';
k1<='1';
k2<='1';
if pusk='0' then
NextState_Master <= S1;
elsif pusk='1' then
NextState_Master
null; --vhdl_cover_on
end case; end process;
------------------------------------ -- Current State Logic (sequential) ------------------------------------ Master_CurrentState: process (clk) begin
if clk'event and clk = '1' then
if reset='1' then
Master <= S1;
else
if enable = '1' then
Master <= NextState_Master;
end if;
end if;
end if; end process;
end diagram_arch;
comparator.vhd
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity Comparator is
port (
k0 : in std_logic;
k1 : in std_logic;
k2 : in std_logic;
y0 : in std_logic;
y1 : in std_logic;
k0s : in std_logic;
k1s : in std_logic;
k2s : in std_logic;
y0s : in std_logic;
y1s : in std_logic;
Output : out std_logic
);
end Comparator;
architecture Arch_Comparator of Comparator is
begin
Output <= '0' when (k0=k0s and k1=k1s and k2=k2s and y0=y0s and y1=y1s) else '1';
end Arch_Comparator;
Антиботан аватар за замовчуванням

01.01.1970 03:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Новини