- •Общая классификация методов построения тестов
- •Алгоритмические тесты
- •Псевдослучайные методы построения тестов
- •Детерминированные методы построения тестов
- •1 Построение структурно-функциональной модели
- •2 Выполнение моделирования неисправностей.
- •Алгоритм итеративного двоичного моделирования последовательностных схем
- •Итеративный алгоритм троичного моделирования:
Итеративный алгоритм троичного моделирования:
Выполняется моделирование набора А до получения установившихся значений.
Выполняется моделирование набора А/В. При троичном моделирование этого набора количество значений "X" на линиях схемы только возрастает и моделирование всегда сходится.
Выполняется моделирование набора В, причем в этой процедуре количество значений "X" на линиях схемы уменьшается по сравнению с набором А/В и процесс моделирования также всегда сходится.
Наличие "X" в результатах моделирования набора В говорит о том, что схема не устанавливается в определенное состояние. Наличие значений 1X1 или 0X0 на некоторых линиях схемы (наборы А, А/В, В) квалифицируется как ситуация статического риска сбоя на этих линиях.
Описание примитивов в двух тактах.
/text/tema5/kub.htm
Алфавиты А1 и А2, круговая диаграмма.
Самые примитивные формы описания поведения конечных автоматов является двоичная таблица истинности(переходов), задающая в явном виде импликативные отношения входных, внутренних и выходных булевых переменных на минимально возможном алфавите описания дискретных процессов и явлений, содержащем значения {0,1}.
Существенный недостаток такого описания - большой объем таблиц - может быть сведен к минимуму введением избыточности в алфавит кодирования состояний булевых переменных:
A1 = {0,1,{0,1},U}={0,1,X,U};
Основным компонентом двухтактного кубического исчисления является алфавит А2, который задает все возможные переходы двухтактной автоматной переменной в моменты (t-1,t) универсумом примитивов Y={00,01,10,11}. Определение замкнутого относительно теоретико-множественных операций (пересечение, объединение, дополнение) алфавита связано со взятием булеана (множества всех подмножеств) на универсуме Y. Мощность порождаемого таким образом алфавита определяется выражением K=2n, где n-количество примитивов в семействе Y. В частности, 16 символов двухтактного алфавита имеют следующую интерпретацию:
A2={Q=00, E=01, H=10, J=11, O={Q,H}, I={E,J}, A={Q,E}, B={H,J}, S={Q,J}, P={E,H}, C={E,H,J},
F={Q,H,J}, L={Q,E,J}, V={Q,E,H}, Y={Q,E,H,J}, U}
Круговая диаграмма
Физические значения символов двухтактного алфавита.
Описание каждого символа приведено в таблице изображенной ниже
Двухтактные кубические покрытия логических элементов.
Самые примитивные формы описания поведения конечных автоматов является двоичная таблица истинности(переходов), задающая в явном виде импликативные отношения входных, внутренних и выходных булевых переменных на минимально возможном алфавите описания дискретных процессов и явлений, содержащем значения {0,1}.
Существенный недостаток такого описания - большой объем таблиц - может быть сведен к минимуму введением избыточности в алфавит кодирования состояний булевых переменных:
A1 = {0,1,{0,1},U}={0,1,X,U};
Это однотактное кубическое исчисление(КИ). Практическое использование однотактного КИ для описания и обработки последовательностных схем является нетехнологичным, поэтому используется двухтактное кубическое исчисление (ДКИ) для моментов времени t-1, t.
Рассмотрим построение кубического покрытия (КП) для трехвходовых логических элементов. Если мы обратимся к ссылке, то в открывшемся окне увидим операцию конкатенации, представленную в таблице. Символ U, приведенный в таблице обозначает пустое множество и служит для замыкания алфавита относительно теоретико-множественных операций, для его связи с математическими структурами более высокой иерархии и построения систем доказательств. Символ Z эквивалентен пустому множеству U в одном автоматном такте и задает описание переменной в состоянии высокого импеданса или высокого выходного сопротивления.
Основным компонентом ДКИ является алфавит А2, который задает все возможные переходы двухтактной автоматной переменной в моменты (t-1,t) универсумом примитивов Y={00,01,10,11}. Определение замкнутого относительно теоретико-множественных операций (пересечение, объединение, дополнение) алфавита связано со взятием булеана (множества всех подмножеств) на универсуме Y. Мощность порождаемого таким образом алфавита определяется выражением K=2n, где n-количество примитивов в семействе Y. В частности, 16 символов двухтактного алфавита имеют следующую интерпретацию:
A2={Q=00, E=01, H=10, J=11, O={Q,H}, I={E,J}, A={Q,E}, B={H,J}, S={Q,J}, P={E,H}, C={E,H,J},
F={Q,H,J}, L={Q,E,J}, V={Q,E,H}, Y={Q,E,H,J}, U}
Двухтактное КП RS-триггера, получение.
practica/ru/pz5.htm
Двухтактное КП D-триггера, получение.
practica/ru/pz5.htm
Двухтактное КП JK-триггера, получение.
practica/ru/pz5.htm
Сдвиговый регистр на D-триггерах.
Сдвиговый регистр состоит из D-тригеров с общей синхронизацией, причем прямой выход предыдущего разряда связан с информационным входом D последующего разряда. Установка регистра в 0 (сброс) осуществляется значением сигнала reset=0 в асинхронном режиме. Последовательное занесение информации в в старший разряд регистра (сигнал data) и ее сдвиг осуществляется по переднему фронту синхроимпульса clk, подаваемому на синхровход при значении сигнала reset=1.
Асинхронный счетчик на JK-триггерах.
Синхронный суммирующий счетчик.
Структурная схема модели счетчика
VHDL – модель синхронного суммирующего счетчика на JK-триггерах library IEEE; use IEEE.std_logic_1164.all; entity Count3 is
port (CLK : in STD_LOGIC;
Reset : in STD_LOGIC; Q0 , Q1 , Q2 , Q3 : out STD_LOGIC);
end Count3; architecture Count3_arch ofCount3 is component JK_tr
port (J , K , clk , reset , set : in STD_LOGIC; Q : out STD_LOGIC);
end component ; component and1
port (x1 , x2 : in STD_LOGIC; y : out STD_LOGIC);
end component ; signal q00 , q11 , q22 , p1 , p2 , p3 :std_logic; begin tr1 :JK_tr port map (J=>'1' , K=>'1' , clk=>CLK , reset=>RESET , Q=>Q00 , set=>'1'); Q0<=q00; el1 :and1 port map (x1=>'1' , x2=>Q00 , y=>p1); tr2 :JK_tr port map (J=>p1 , K=>p1 , clk=>CLK , reset=>RESET , Q=>Q11 , set=>'1'); Q1<=q11; el2 :and1 port map (x1=>p1 , x2=>Q11 , y=>p2); tr3 :JK_tr port map (J=>p2 , K=>p2 , clk=>CLK , reset=>RESET , Q=>Q22 , set=>'1'); Q2<=q22; el3 :and1 port map (x1=>p2 , x2=>Q22 , y=>p3); tr4 :JK_tr port map (J=>p3 , K=>p3 , clk=>CLK , reset=>RESET , Q=>Q3 , set=>'1'); end Count3_arch;
Синхронный вычитающий счетчик
Счетные схемы с произвольным коэффициентом пересчета.
Стили языковых описаний цифровых устройств, примеры.
Структурный, поток данных, поведенческая.
Этапы составления HDL-моодели.
Пример составления спецификации и описания заголовка модели.
Пример описания архитектуры, Поведенческий стиль.
architecture JK_tr_arch of JK_tr is begin process(Clk, reset) is vriable Qint : STD_LOGIC; begin
if ( reset = '0' ) then Qint := '0'; elsif (falling_edge(Clk)) then elsif (J='0' and K='0') then Qint:=Qint; elsif (J='1' and K='0') then Qint:='1'; elsif (J='0' and K='1') then Qint:='0';
endif Q<=Qint; end process; end JK_tr_arch;
Пример описания архитектуры, структурный стиль.
architecture registr_arch of registr is component d_tr port (D,Clk,reset :in STD_LOGIC;
Q :out STD_LOGIC); signal Q1,Q2,Q3: STD_LOGIC; begin
tr1:D_tr port_map (D=>DATA, clk=>CLK, reset=>RESET, Q=>q1); tr2:D_tr port_map (D=>q1, clk=>CLK, reset=>RESET, Q=>q2); tr3:D_tr port_map (reset=>RESET, D=>q2, clk=>CLK, Q=>q3); tr4:D_tr port_map (q3, CLK, RESET, Q4);
end registr_arch;
Верификация модели, инструментарий и верифицируемые параметры.
Обозначение и HDL-модель синхронного D-триггера c инверсной асинхронной установкой.
Модель синхронного D-триггера с асинхронной инверсной установкой в 0
library IEEE; use IEEE.STD_LOGIC_1164.all; entity D_tr is port( CLK :in STD_LOGIC;
RESET:in STD_LOGIC; D:in STD_LOGIC; Q:out STD_LOGIC );
end D_tr; architecture D_tr_arch of D_tr is begin
process(clk, reset) is begin if (reset ='0' ) then Q<='0'; elsif(rising_edge(clk)) then Q<=D end if; end process ;
end D_tr_arch ;
Обозначение и HDL-модель синхронного JK-триггера c инверсной асинхронной установкой.
Модель синхронного JK-триггера с асинхронной инверсной установкой в 0
library IEEE; use IEEE.std_logic_1164.all; entity JK_tr is
port (CLK : in STD_LOGIC;
Reset : in STD_LOGIC; J : in STD_LOGIC; K : in STD_LOGIC; Q : out STD_LOGIC);
end JK_tr; architecture JK_tr_arch of JK_tr is begin process(Clk, reset) is vriable Qint : STD_LOGIC; begin
if ( reset = '0' ) then Qint := '0'; elsif (falling_edge(Clk)) then elsif (J='0' and K='0') then Qint:=Qint; elsif (J='1' and K='0') then Qint:='1'; elsif (J='0' and K='1') then Qint:='0';
endif Q<=Qint; end process; end JK_tr_arch;
Структурная HDL-модель сдвигового регистра.
Структурная VHDL-модель синхронного сдвигового регистра
library IEEE; use IEEE.std_logic_1164.all; entity registr is port (CLK : in STD_LOGIC;
data : in STD_LOGIC;
Reset : in STD_LOGIC; q4 : out STD_LOGIC);
end register; architecture registr_arch of registr is component d_tr port (D,Clk,reset :in STD_LOGIC;
Q :out STD_LOGIC); signal Q1,Q2,Q3: STD_LOGIC; begin
tr1:D_tr port_map (D=>DATA, clk=>CLK, reset=>RESET, Q=>q1); tr2:D_tr port_map (D=>q1, clk=>CLK, reset=>RESET, Q=>q2); tr3:D_tr port_map (reset=>RESET, D=>q2, clk=>CLK, Q=>q3); tr4:D_tr port_map (q3, CLK, RESET, Q4);
end registr_arch;
Структурная HDL-модель счетчика.
HDL-модель конечного автомата. Двухпроцессный шаблон.
HDL-модель конечного автомата. Трехпроцессный шаблон.
Общая структура САПР ПЛИС.
Роль и место моделирования в САПР ПЛИС.
