Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Скобцовы Моделирование и тестирование

.pdf
Скачиваний:
97
Добавлен:
03.03.2016
Размер:
3.61 Mб
Скачать

обработки кратного события. Здесь на входе элемента И имеет место одновременное изменение двух сигналов a и b. Если эти события обрабатываются в последовательности (b,0), (a,1), то выход элемента y не изменяется и, следовательно, не ставится в очередь будущих событий для последующей обработки. Но если событие (a,1) обрабатывается первым,

то результат (y,1) будет поставлен в момент времени T=4 очереди событий.

Далее обработка события (b,0) вызывает событие (y,0), которое также будет отнесено к моменту времени Т=4. Таким образом, мы имеем

импульс нулевой протяженности”, что не соответствует реальному поведению схемы. Алгоритм, приведенный на рис.2.29 позволяет избежать подобных ситуаций.

Обработка событий текущего момента времени Т ()

{

FOR каждого события (i, vi), связанного с Т /* имеющих события на входах */

{

v(i) = vi' ; /* перепись нового значения*/

FOR каждого элемента jпоследователя обрабатываемого элемента i

{

Изменение значений входов j ; /* перепись с выхода i*/ vj=моделирование элемента (j);

IF v'j lsv( j) THEN

{

T ' = T + d( j) ; IF T ' = lst( j) ;

THEN Устранение события (j, lsv(j)) с момента T очереди;

постановка события (j, vj) в очередь в момент времени T ; lsv(j)=vj;

lst(j)=T ;

}

}

}

}

Рис.2.29 Улучшенный однопроходной алгоритм обработки событий

71

Мы рассмотрели основные алгоритмы событийного логического моделирования с использованием модели номинальных задержек. Но они с небольшими изменениями могут быть использованы и для других более сложных моделей задержек, рассмотренных в разделе 2.6 (различные задержки для переднего и заднего фронтов, разброс задержек,

инерционная задержка).

2.9Анализ состязаний

2.9.1Явление состязания сигналов

Состязания сигналов в реальных ДУ возникают вследствие того, что смена входных сигналов при подаче следующего набора происходит не одновременно и существует разброс задержек элементов в схеме. Схема,

реализующая булеву функцию f(X), содержит статическое (динамическое)

состязание на переходе между двумя двоичными наборами A=(a1,. . .,an) и

B=(b1,. . .,bn), если f(A)=f(B) ( f(A)f(B)) и во время перехода на выходе схемы может возникнуть один или несколько кратковременных импульсов. Статистическое состязание называется 1-состязанием, если

f(A)=f(B)=1 и 0-состязанием, если f(A)=f(B)=0. Динамическое состязание

называется 1-0состязанием, если f(A)=1, f(B)=0 и 0-1состязанием, если

f(A)=0, f(B)=1. Как статистические, так и динамические состязания могут

быть двух типов: функциональные и логические.

 

 

 

 

x1x2

 

 

 

 

 

 

 

 

 

 

00

01

 

11

10

 

 

 

 

 

 

 

x3

0

1a

0b

 

1c

1

 

1

0

1

 

0d

1

Рис.2.30 Карта Карно с функциональным состязанием

72

Рассмотрим пример функционального состязания для булевой функции, представленной на карте Карно рис.2.30. Напомним, что каждая клетка карты соответствует двоичному входному набору. Рассмотрим

переход между следующими двоичными наборами

x3 = 0, x1 = x2 = 0

x3 = 0, x1 = x2 = 1, отмеченными на карте Карно 1а и

14424443

14243

1а

1с

1c. Если значение х2 изменяется раньше чем х1, то на данном переходе возможно кратковременное появление набора x1 = 0, x2 = 1, x3 = 0

(попадание в клетку 0b карты Карно). Это вызывает появление на выходе cхемы, реализующей данную булеву функцию, кратковременного 0-

импульса, то есть происходит статическое 0 состязание. Аналогично при переходе из клетки 1a в 1d карты Карно происходит динамическое

состязание 10 .

Определим более точно функциональное статистическое состязание.

Булева функция f на переходе A B (для определенности пусть

изменяются значения

первых r переменных A = (a1,. . .ar ,ar+1,..., an ) ,

B = (

 

,. . .

 

,ar+1,..., an )

 

a1

ar

содержит функциональное статистическое

состязание f(A)=f(B) , если среди 2r входных наборов с зафиксированными значениями хr+1=ar+1, …, хn=an найдутся хотя бы два набора C и D такие,

что f(C)f(D).

Таким образом, функциональное состязание отражает свойства данной булевой функции, а не ее схемной реализации. Очевидно, что на соседних наборах, отличающихся значениями только одной переменной,

функционального состязания быть не может. Никакая реализация булевой функции не может устранить функциональное состязание.

Логические состязания определяются структурой логической схемы,

реализующей данную булеву функцию. Рассмотрим это явление на примере функции, представленной на карте Карно рис.2.31.

73

 

 

 

 

x1x2

 

 

 

 

 

 

 

 

 

 

 

00

01

 

11

10

 

 

 

 

 

 

 

 

x3

0

0

0

 

1

0

 

 

 

 

 

 

 

 

 

1

0

1a

 

 

1b

0

 

 

 

 

 

 

 

 

 

 

 

Рис.2.31 Карта Карно функции для иллюстрации логического состязания

Для перехода x1=0, x2=1, x3=1 x1=1, x2=1, x3=1 у логической схемы, реализующей данную булеву функцию, которая представлена на рис.2.32, значения выхода схемы f=1 одинаковы на начальном и конечном входных наборах этого перехода. Однако, если значение выхода нижнего вентиля И изменится раньше чем верхнего, то на выходе схемы появится кратковременный нулевой импульс. Таким образом, здесь присутствует статическое логическое состязание.

 

 

x2=1

 

01

 

 

 

 

 

&

 

 

 

 

 

 

 

 

 

 

101

 

 

 

 

 

 

 

 

 

 

 

 

1

f 1

x1

 

&

 

 

 

 

0

1

 

 

 

 

 

&

10

x3=1

Рис.2.32 Пример логического состязания

Отметим, что поскольку на этом переходе изменяется значение только одной переменной, то функциональное состязание на нем в принципе невозможно. Кроме этого, данное логическое состязание

74

присуще именно этой схемной реализации. Так, если в схеме рис.2.32

добавить в первом уровне третий элемент конъюнкции (соответствующий третьей простой импликанте данной булевой функции), то состязание в полученной схеме рис.2.33 (реализующей ту же булеву функцию) на рассматриваемом переходе отсутствует.

x2

&

x1

&

 

1

 

 

&

x3

1

&1

1

Рис.2.33 Избыточная схема без логического состязания

Определим более строго логическое состязание. Комбинационная схема, реализующая булеву функцию f, содержит статическое логическое

состязание на переходе

AB, если

на всех 2r

наборах с

зафиксированными значениями хr+1,…, хn

значения функции одинаковы

f(A)=f(B), но во время перехода может появиться кратковременный импульс на выходе схемы. Аналогично определяется и динамическое логическое состязание для случая f(A) f(B). Известно, что если схема свободна от статистических состязаний, то она свободна и от динамических состязаний. Состязания сигналов особенно опасны для последовательностных схем, потому что могут в них вызвать

75

непредсказуемые переключения элементов памяти. Такая ситуация показана на рис.2.34, где состязание на выходе вентиля z может привести к установке триггера в неправильное (и непредсказуемое) состояние.

Разработана и более тонкая классификация состязаний (особенно для последовательностных схем) [48].

a

 

 

 

z

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

&

 

 

R

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Q

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис.2.34 Пример схемы с возможным непредсказуемым переключением триггера

2.9.2 Анализ состязаний по методу Эйхельбергера

На практике большое распространение получили системы логического моделирования в троичном алфавите E3. Моделирование в троичном алфавите последовательностных схем в простейшем случае используется для проверки, является ли данная входная последовательность установочной, т. е. переводит ли она схему из неопределенного начального состояния в некоторое определенное.

Поскольку перед началом моделирования схема находится в произвольном состоянии, то сигнал на каждой линии может иметь значение как 0, так и 1.

Поэтому перед началом моделирования всем линиям схемы присваивается неопределенное значение u. Далее выполняется моделирование на последовательности входных наборов (имеющих двоичные значения 0, 1) с

помощью одного из рассмотренных алгоритмов. При этом используются троичные модели логических элементов. Если по окончании моделирования все линии схемы принимают определенные значения (0,1),

то входная последовательность является установочной (в терминах теории экспериментов с автоматами синхронизирующей последовательностью

76

см. раздел 7). На практике часто надо получить определенные значения не на всех линиях, а только на некоторых. Очевидно, описанный метод позволяет проверить, является ли входная последовательность установочной для некоторого подмножества линий.

Моделирование в троичном алфавите E3 с успехом используется и для анализа состязаний сигналов, которые могут вызвать неправильное функционирование ДУ (перевести его в непредусмотренное состояние).

Поэтому при проектировании ДУ стараются не допустить состязаний на подмножестве входных рабочих последовательностей (применяют противогоночное кодирование, вводят специальные задержки и т. д.). Но проверяющие тесты строятся не только на рабочих наборах. Поэтому даже для «хорошо» спроектированных ДУ (без состязаний на рабочих воздействиях) отсутствие анализа тестов на состязания может при тестировании привести к пропуску неисправности, либо, наоборот, к ее ложному обнаружению.

При синхронном моделировании в двоичном алфавите нельзя обнаружить состязания. При асинхронном моделировании в этом алфавите их можно обнаруживать только в некоторых случаях (например, при возникновении режима генерации).

Для анализа состязаний широкое распространение получил метод Эйхельбергера [50], который основан на предположении, что соотношение задержек в элементах и линиях связей произвольно. Символ u при этом означает не только неизвестный сигнал, но и смену сигналов 01 или

10.

В методе Эйхельбергера моделирование входного набора Xt

выполняется в два этапа. Сначала формируется промежуточный набор δX t ,

в котором всем входным переменным, изменившим значение по сравнению с набором Xt–1, присваивается неопределенное значение u (остальные значения остаются неизменными и равны 0 или 1) так, как это

77

показано в табл.2.10 для схемы рис.2.35. Затем выполняется

моделирование в троичном алфавите на промежуточном наборе δX t (при

этом, естественно, используются троичные модели логических элементов).

На этом этапе моделируется переходный процесс, во время которого всем линиям, которые существенно зависят от изменившихся входов на данном наборе, присваиваются неопределенные значения u. При этом неопределенные значения распространяются от внешних входов к выходам и переменным состояния до тех пор, пока значения сигналов не стабилизируются. Свойства троичных функций таковы, что значение сигнала на каждом элементе либо остается неизменным (0,1), либо изменяется (с 0 или 1 на u). Поэтому процедура имеет линейную сложность (пропорционально числу элементов n в ДУ).

Таблица 2.10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Набор

х1

х2

х3

х4

х5

х6

х7

х8

х9

 

 

 

 

 

 

 

 

 

 

u

u

u

u

u

u

u

u

u

 

 

 

 

 

 

 

 

 

 

Х1

1

1

0

0

1

0

1

1

0

 

 

 

 

 

 

 

 

 

 

δХ2

u

1

0

u

1

u

u

u

U

 

 

 

 

 

 

 

 

 

 

Х2

0

1

0

1

1

1

0

0

1

δХ3

u

1

0

1

1

u

0

u

1

 

 

 

 

 

 

 

 

 

 

Х3

1

1

0

1

1

0

0

1

1

 

 

 

 

 

 

 

 

 

 

δХ4

1

1

u

1

u

u

u

u

u

 

 

 

 

 

 

 

 

 

 

Х4

1

1

1

1

0

1

1

u

u

 

 

 

 

 

 

 

 

 

 

На втором этапе ДУ моделируется на основном наборе Xt (значения всех входов которого двоичные). При этом от входов к выходам происходит «снятие» неопределенности. Вследствие свойства троичных функций на каждом логическом элементе сигнал либо остается

78

постоянным, либо изменяется с u на 0 или 1. Поэтому на втором этапе сложность процедуры также линейна. Если по окончании второго этапа на некоторых линиях ДУ остались неопределенные значения u, то это свидетельствует о возможности опасных состязаний на этих линиях. На линиях, получивших после второго этапа определенные значения,

состязания в схеме на данном наборе невозможны. Если все линии ДУ получили определенные значения, состязания в схеме на моделируемом переходе между двумя наборами заведомо отсутствуют.

Отметим, что в данном методе анализ выполняется чисто логическими средствами без задания каких-либо значений задержек элементов. Метод основан на анализе логической зависимости элементов схемы от изменившихся входов. Простота метода и линейная сложность обусловили его широкое применение на практике. Пример моделирования в троичном алфавите методом Эйхельбергера приведен для схемы на рис.2.35 [1].

Х1

&

&

 

 

Х6

Х8

Х2

&

Х5

Х3

&

&

Х7

Х9

Х4

Рис. 2.35 Пример схемы для анализа состязаний

Результаты моделирования, представленные в табл. 2.10,

показывают, что набор X1 является установочным, на переходах между наборами X1, X2, Х3 состязания отсутствуют, а при переходе с X3 на Х4

79

возникают опасные состязания. Доказано [50], что моделирование методом Эйхельбергера на обоих этапах сходится за конечное число итераций.

Поэтому при реализации единственным критерием окончания моделирования на наборе (промежуточном и основном) является совпадение результатов двух соседних итераций. При этом результаты не зависят от порядка обработки элементов. Отметим, что троичное моделирование в данном методе может выполняться с помощью простейшей (и быстродействующей) модели элементов нулевой задержки.

Троичное моделирование по методу Эйхельбергера позволяет обнаружить любые опасные состязания, которые могут быть в ДУ на данной входной последовательности. Однако этот метод имеет существенный недостаток он может показывать наличие состязаний в тех случаях, когда их нет в реальном устройстве. Это обусловлено принятым допущением о произвольном соотношении задержек элементов и линий связи. В действительности обычно задержки в линиях связи существенно меньше задержек логических элементов. Соотношение между задержками элементов также не всегда произвольно. Ложные состязания метод Эйхельбергера может показывать в схемах, содержащих сходящиеся разветвления, искусственные линии задержки из цепочек элементов и,

особенно, в счетных структурах, где любое переключение счетного входа приводит к обнаружению состязаний [48].

В какой-то мере этот недостаток устранен в методе моделирования,

получившем название ∆-троичного [48] и являющегося модификацией предыдущего. Суть метода заключается в том, что моделирование на промежуточном наборе ограничивается сверху некоторым числом итераций q. Параметр q задается заранее и косвенно отражает степень разброса задержек элементов в схеме. При этом распространение неопределенных значений u искусственно прекращается, не дожидаясь,

80