Микроэлектроника, 2019, T. 48, № 5, стр. 371-378

Формальное описание функционирования цифровых управляющих систем и его использование при проектировании

А. Л. Стемпковский 1, А. Д. Иванников 1*

1 Институт проблем проектирования в микроэлектронике Российской АН
124365 Зеленоград, Москва, ул. Советская, 3, Россия

* E-mail: adi@ippm.ru

Поступила в редакцию 03.04.2019
После доработки 03.04.2019
Принята к публикации 03.04.2019

Полный текст (PDF)

Аннотация

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

Ключевые слова: моделирование цифровых систем, отладка проектов, модель цифровой системы, стационарные динамические системы, допустимые взаимодействия

ВВЕДЕНИЕ

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

В связи с вышеизложенным математической моделью внешнего поведения проектируемой цифровой системы может служить семейство стационарных динамических систем, что впервые предложено в [1].

Будем использовать приведенное в [2] определение динамической системы в виде

$\Sigma = {\text{ }}({\mathbf{T}},{\mathbf{X}},{\mathbf{U}},\Omega ,{\mathbf{Y}},\Gamma ,\varphi ,\eta ),$
где T – множество моментов времени, в общем случае действительная полуось {t|t ≥ 0}; X – множество внутренних состояний; U – множество мгновенных значений входных воздействий, называемое также множеством входных состояний; Ω – множество отображений ω: TU – допустимых входных воздействий; Y – множество мгновенных значений выходных воздействий, называемое также множеством выходных состояний; Γ – множество отображений γ: TY – возможных выходных воздействий; φ: T × T × X × ΩX – переходная функция состояния, значениями которой служат внутренние состояния x(t) = φ(t, τ, x, ω), x(t) ∈ X, в которых оказывается система в момент времени t, tT, если в начальный момент времени τ, τ ∈ T, она была в начальном состоянии x(τ) ∈ X и если на нее действовало входное воздействие ω ∈ Ω; η: T × XY – выходное отображение, определяющее выходные воздействия y(t) = η(t, x(t)).

Динамическая система является стационарной, если ее реакция на заданный отрезок входного воздействия при условии, что система находится в заданном внутреннем состоянии, не зависит от начального момента времени [2]. В частности, переходная функция принимает вид φ: T × X × ΩX, ее значениями служат состояния x(t) = φ(t, x, ω), где x – состояние системы в момент t = 0, выходное отображение η: XY не зависит от времени.

В приведенном определении динамической системы каждому внутреннему состоянию x однозначно соответствует мгновенное значение выходного воздействия y. Более удобным для нас является использование выходного отображения в виде η: XY, предложенное в [3]. Такой вид выходного отображения не искажает приведенного выше определения стационарной динамической системы и позволяет получить в качестве частного случая последней конечный автомат Мили.

МОДЕЛЬ ВНЕШНЕГО ПОВЕДЕНИЯ ЦИФРОВОЙ СИСТЕМЫ

Математически описание внешнего поведения семейства стационарных динамических систем, являющегося математической моделью цифровой системы, включает следующее.

1. Конечное множество терминальных переменных P, описывающих внешние линии и шины цифровой системы. Переменная pP всегда имеет одно из значений конечного множества ${{{\mathbf{Z}}}_{p}},$ причем ${{{\mathbf{Z}}}_{p}} = {\mathbf{Z}}_{p}^{*} \times {\text{DI}}{{{\text{R}}}_{p}},$ где ${\mathbf{Z}}_{p}^{*}\quad$ – множество логических значений переменной p, в частности, для шины из n линий имеется 2n значений или 2n + 1 значений, если шина имеет состояние с высоким выходным сопротивлением; $\quad{\text{DI}}{{{\text{R}}}_{p}}$ – множество направлений передачи сигнала. В множестве P можно выделить три непересекающихся подмножества: ${\mathbf{P}}{\text{'}} = \quad\left\{ {p{\text{|DI}}{{{\text{R}}}_{p}} = \left\{ 1 \right\}} \right\};$ ${\mathbf{P}}{\text{''}} = \left\{ {p{\text{|DI}}{{{\text{R}}}_{p}} = \left\{ 0 \right\}} \right\};$ P''' = $\left\{ {p{\text{|DI}}{{{\text{R}}}_{p}} = \left\{ {0.1} \right\}} \right\},$ причем P = $P{\text{'}} \cup {\mathbf{P}}{\text{''}} \cup {\;}\quad{\mathbf{P}}{\text{'''}}{\text{.}}$ Терминальные переменные подмножеств ${\mathbf{P}}{\text{',}}$ описывают входные, выходные и двунаправленные шины и линии цифровой системы соответственно; направление передачи ${\text{di}}{{{\text{r}}}_{p}}$ = 1 указывает на входной, а ${\text{di}}{{{\text{r}}}_{p}}$ = 0 – на выходной сигнал. Состояние шины или линии p с высоким выходным сопротивлением представляется значением из множества ${\mathbf{Z}}_{p}^{{}}$ при ${\text{di}}{{{\text{r}}}_{p}}$ = 0.

Множество мгновенных значений терминальных переменных, то есть внешних состояний цифровой системы, есть Q = $\prod\nolimits_{p \in {\mathbf{P}}} {{{{\mathbf{Z}}}_{p}}} .$

2. Множество моментов времени T = $\left\{ {t{\text{|}}t \geqslant 0} \right\}.$

3. Множество Ψ допустимых взаимодействий с внешней средой, каждое из которых есть отображение ψ: [0, t) → Q, tT. Каждое ψ может быть представлено как конечное множество отображений ${{\psi }_{p}}{\text{:}}$ [0, t) → $\quad{{{\mathbf{Z}}}_{p}},$ pP, tT.

Отличие допустимых взаимодействий друг от друга может быть обусловлено:

− различной длительностью взаимодействий;

− различной последовательностью функций, выполняемых цифровой системой в зависимости от внешних сигналов;

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

− разбросом временных параметров составляющих цифровой системы, что обуславливает разброс моментов времени появления выходных сигналов, и разбросом временных параметров внешней среды, что обуславливает различное время реакции внешней среды на выходные сигналы цифровой системы.

Таким образом, внешнее поведение семейства стационарных динамических систем, являющихся математической моделью цифровой системы, при известных T, P, $\left\{ {{{{\mathbf{Z}}}_{p}}{\text{|}}p \in {\mathbf{P}}} \right\}$ задается множеством допустимых взаимодействий Ψ.

МОДЕЛЬ ДОПУСТИМЫХ ВЗАИМОДЕЙСТВИЙ ЦИФРОВОЙ СИСТЕМЫ

Рассмотрим подробнее задание допустимых взаимодействий ψ: [0, t) → Q. Событием по переменной p назовем изменение переменной p со значения ${{z}_{1}}$${{{\mathbf{Z}}}_{p}}$ на значение ${{z}_{2}}$${{{\mathbf{Z}}}_{p}}$ в момент времени t. Обозначим такое событие $\chi _{{p,{{z}_{1}},{{z}_{2}}\quad}}^{t}.$

В цифровых системах для каждого конечного временного интервала количество событий по терминальным переменным, то есть количество изменений их значений, конечно. В связи с этим любое допустимое взаимодействие ψ ∈ Ψ может быть представлено в виде вектора ($z_{{{{p}_{1}},\quad \ldots ,}}^{{\text{н }}}z_{{{{p}_{k}}}}^{{\text{н }}}$) начальных значений переменных ${{p}_{1}},$…,${{p}_{k}}$ (k – мощность множества Р) в момент времени t = 0 и последовательности событий по переменным множества Р с конечным числом событий за любой конечный интервал времени:

(1)
$\psi = \left( {z_{{{{p}_{{1,\quad \ldots ,}}}}}^{{\text{н }}}z_{{{{p}_{k}}}}^{{\text{н }}}} \right),\,\,\,\,\chi _{{{{p}_{{{{i}_{1}}}}},{{z}_{{{{j}_{1}}}}},{{z}_{{{{j}_{2}}}}}\quad}}^{{{{t}_{1}}}},\,\,\,\,\chi _{{{{p}_{{{{i}_{2}}}}},{{z}_{{{{j}_{3}}}}},{{z}_{{{{j}_{4}}}}}\quad}}^{{{{t}_{2}}}},\,\,\,\,\chi _{{{{p}_{{{{i}_{3}}}}},{{z}_{{{{j}_{5}}}}},{{z}_{{{{j}_{6}}}}}\quad}}^{{{{t}_{3}}}}\,\,\,\,...,$
где ${{t}_{1}}$${{t}_{2}}$${{t}_{3}}$ ≤ … – упорядоченная последовательность времен событий;

${{p}_{{{{i}_{1}}\quad}}},$ ${{p}_{{{{i}_{2}}}}},\quad{{p}_{{{{i}_{3}}}}},$ … – переменные, принадлежащие множеству P;

${{z}_{{{{j}_{{1\quad}}}}}},$ ${{z}_{{{{j}_{{3\quad}}}}}},$ ${{z}_{{{{j}_{{5\quad}}}}}},$ … – значения переменных непосредственно перед событием;

${{z}_{{{{j}_{{2\quad}}}}}},$ ${{z}_{{{{j}_{{4\quad}}}}}},$ ${{z}_{{{{j}_{{6\quad}}}}}},$ … – значения переменных непосредственно после события,

причем при выделении из (1) начального значения любой терминальной переменной ${{p}_{{i\quad}}}$ и подпоследовательности событий по этой переменной получаем отображение ${{\psi }_{{{{p}_{i}}}}}{\text{:}}$[0, t) → ${{{\mathbf{Z}}}_{{{{p}_{i}}}}},$ которое имеет вид:

${{\psi }_{{{{p}_{i}}}}} = \left( {z_{{{{p}_{i}}}}^{{\text{н }}}} \right),\,\,\,\,\chi _{{{{p}_{i}},{{z}_{1}},{{z}_{2}}}}^{{{{\tau }_{1}}}},\,\,\,\,\chi _{{{{p}_{i}},{{z}_{2}},{{z}_{3}}\quad}}^{{{{\tau }_{2}}}},\,\,\,\,\chi _{{{{p}_{i}},{{z}_{3}},{{z}_{4}}\quad}}^{{{{\tau }_{3}}}}\,\,...,$
где $z_{{{{p}_{i}}}}^{{\text{н }}}$ – начальные значения переменной ${{p}_{i}};$

${{\tau }_{1}} < {{\tau }_{2}} < {{\tau }_{{3\quad}}} < \ldots $ – упорядоченная последовательность времен событий по данной переменной;

${{z}_{1}},$ ${{z}_{2}},\,\,{{z}_{3}},$ … – значения переменной ${{p}_{{i\quad}}}$ из множества ${{{\mathbf{Z}}}_{{{{p}_{i}}}}}.$

Представим последовательность (1) в виде двух подпоследовательностей: последовательности входных для цифровой системы событий – входного воздействия

(2)
$\omega = \left( {z_{{{{p}_{1}},\quad \ldots ,}}^{{\text{н }}}z_{{{{p}_{n}}}}^{{\text{н }}}} \right),\,\,\,\,\chi _{{{{p}_{{{{i}_{1}}}}},{{z}_{{{{j}_{1}}}}},{{z}_{{{{j}_{2}}}}}\quad}}^{{'{{t}_{1}}}},\,\,\,\,\chi _{{{{p}_{{{{i}_{2}}}}},{{z}_{{{{j}_{3}}}}},{{z}_{{{{j}_{4}}}}}\quad}}^{{'{{t}_{2}}}},\,\,\,\,\chi _{{{{p}_{{{{i}_{3}}}}},{{z}_{{{{j}_{5}}}}},{{z}_{{{{j}_{6}}}}}\quad}}^{{'{{t}_{3}}}}\,\,...,$
где $z_{{{{p}_{1}},\quad \ldots ,}}^{{\text{н }}}z_{{{{p}_{n}}}}^{{\text{н }}}$ – начальные значения переменных множества причем для переменных множества логические значения задаются только в том случае, если в начальный момент времени у них ${\text{di}}{{{\text{r}}}_{p}}$ = 1; в противном случае для них достаточно задания направления передачи ${\text{di}}{{{\text{r}}}_{p}}$ = 0;

n – количество переменных множества

$\chi _{{{{p}_{{{{i}_{1}}}}},{{z}_{{{{j}_{1}}}}},{{z}_{{{{j}_{2}}}}}\quad}}^{{'{{t}_{1}}}},$ $\chi _{{{{p}_{{{{i}_{2}}}}},{{z}_{{{{j}_{3}}}}},{{z}_{{{{j}_{4}}}}}\quad}}^{{'{{t}_{2}}}},$ $\chi _{{{{p}_{{{{i}_{3}}}}},{{z}_{{{{j}_{5}}}}},{{z}_{{{{j}_{6}}}}}\quad}}^{{'{{t}_{3}}}}\,\,...$ – события по переменным множества ${\mathbf{P}}{\text{'}},$ а также события по переменным множества ${\mathbf{P}}{\text{''',}}$ для которых начальное, конечное или оба значения в событии имеет ${\text{di}}{{{\text{r}}}_{p}}$ = 1;

${{t}_{1}}$${{t}_{2}}$${{t}_{3}}$ ≤ … – упорядоченная последовательность времен входных событий, и последовательности выходных событий – выходного воздействия

(3)
$\gamma = \left( {z_{{{{p}_{1}},\quad \ldots ,}}^{{\text{н }}}z_{{{{p}_{m}}}}^{{\text{н }}}} \right),\,\,\,\,\chi _{{{{p}_{{{{i}_{1}}}}},{{z}_{{{{j}_{1}}}}},{{z}_{{{{j}_{2}}}}}\quad}}^{{''{{t}_{1}}}},\,\,\,\,\chi _{{{{p}_{{{{i}_{2}}}}},{{z}_{{{{j}_{3}}}}},{{z}_{{{{j}_{4}}}}}\quad}}^{{''{{t}_{2}}}},\,\,\,\,\chi _{{{{p}_{{{{i}_{3}}}}},{{z}_{{{{j}_{5}}}}},{{z}_{{{{j}_{6}}}}}\quad}}^{{''{{t}_{3}}}}\,\,...,$
где $z_{{{{p}_{1}},\quad \ldots ,}}^{{\text{н }}}z_{{{{p}_{m}}}}^{{\text{н }}}$ – начальные значения переменных множества причем для переменных множества логические значения задаются только в том случае, если в начальный момент времени у них ${\text{di}}{{{\text{r}}}_{p}}$ = 0; в противном случае для них достаточно задания направления передачи ${\text{di}}{{{\text{r}}}_{p}}$ = 1;

m – количество переменных множества

$\chi _{{{{p}_{{{{i}_{1}}}}},{{z}_{{{{j}_{1}}}}},{{z}_{{{{j}_{2}}}}}\quad}}^{{''{{t}_{1}}}},\,\,\,\,\chi _{{{{p}_{{{{i}_{2}}}}},{{z}_{{{{j}_{3}}}}},{{z}_{{{{j}_{4}}}}}\quad}}^{{''{{t}_{2}}}},\,\,\,\,\chi _{{{{p}_{{{{i}_{3}}}}},{{z}_{{{{j}_{5}}}}},{{z}_{{{{j}_{6}}}}}\quad}}^{{''{{t}_{3}}}},\,\,\,\,...$

– события по переменным множества ${\mathbf{P}}{\text{'',}}$ а также события по переменным множества ${\mathbf{P}}{\text{''',}}$ для которых начальное, конечное или оба значения в событии имею ${\text{di}}{{{\text{r}}}_{p}}$ = 0;

${{t}_{1}}$${{t}_{2}}$${{t}_{3}}$ ≤ … – упорядоченная последовательность времен выходных событий.

Полученные входное ω и выходное γ воздействия могут содержать одинаковые события $\chi _{{{{p}_{i}},{{z}_{{{{j}_{1}}}}},{{z}_{{{{j}_{2}}}}}\quad}}^{t}$ по переменным множества если одно из значений ${{z}_{{{{j}_{1}}}}},$ ${{z}_{{{{j}_{2}}}}}$ имеет ${\text{di}}{{{\text{r}}}_{p}}$ = 1, а другое ${\text{di}}{{{\text{r}}}_{p}}$ = 0.

Входное воздействие есть

U – множество мгновенных значений входных воздействий, называемое также множеством входных состояний; состояние переменной p равное 0, указывает на передачу сигнала на выход и не определяет логического значения переменной.

Выходное воздействие есть

Y – множество мгновенных значений выходных воздействий, называемое также множеством выходных состояний; состояние переменной pP, равное 1, указывает на передачу сигнала на вход и не определяет логического значения переменной.

Часто моменты подачи входных сигналов на цифровую систему определяются готовностью системы принять эти сигналы, на что указывают определенные выходные сигналы системы. Выполнение какой-либо операции, например, считывания данных цифровой системой, может инициироваться не сигналами внешней среды, а самой системой. В связи с этим использование в качестве аргументов функционирования цифровой системы входных воздействий не всегда удобно.

Выделим из последовательности событий (1) – взаимодействия ψ последовательность выходных событий, которые по заданному протоколу обмена обуславливают моменты времени входных событий. Назовем переменные, по которым происходят эти выходные события, переменными управления обменом ${{{\mathbf{P}}}^{{\text{o}}}},$ Выделенную из (1) подпоследовательность событий вместе с начальными значениями переменных управления обменом назовем выходным воздействием управления обменом

(4)
${{\gamma }^{{{о \;}}}} = \left( {z_{{{{p}_{1}},\quad \ldots ,}}^{{\text{н }}}z_{{{{p}_{q}}}}^{{\text{н }}}} \right),\,\,\,\,\chi _{{{{p}_{{{{i}_{1}}}}},{{z}_{{{{j}_{1}}}}},{{z}_{{{{j}_{2}}}}}\quad}}^{{{\text{о }}{{t}_{1}}}},\,\,\,\,\chi _{{{{p}_{{{{i}_{2}}}}},{{z}_{{{{j}_{3}}}}},{{z}_{{{{j}_{4}}}}}\quad}}^{{{\text{о }}{{t}_{2}}}},\,\,\,\,\chi _{{{{p}_{{{{i}_{3}}}}},{{z}_{{{{j}_{5}}}}},{{z}_{{{{j}_{6}}}}}\quad}}^{{{\text{о }}{{t}_{3}}}}\,\,\,\,...,$
где $z_{{{{p}_{1}},\quad \ldots ,}}^{{\text{н }}}z_{{{{p}_{q}}}}^{{\text{н }}}$ – начальные значения переменных множества ${{{\mathbf{P}}}^{{\text{о }}}};$

q – мощность множества ${{{\mathbf{P}}}^{{\text{о }}}};$

$\chi _{{{{p}_{{{{i}_{1}}}}},{{z}_{{{{j}_{1}}}}},{{z}_{{{{j}_{2}}}}}\quad}}^{{{\text{о }}{{t}_{1}}}},\,\,\,\,\chi _{{{{p}_{{{{i}_{2}}}}},{{z}_{{{{j}_{3}}}}},{{z}_{{{{j}_{4}}}}}\quad}}^{{{\text{о }}{{t}_{2}}}},\,\,\,\,\chi _{{{{p}_{{{{i}_{3}}}}},{{z}_{{{{j}_{5}}}}},{{z}_{{{{j}_{6}}}}}\quad}}^{{{\text{о }}{{t}_{3}}}}\,\,...,$
– события по переменным множества ${{{\mathbf{P}}}^{{\text{о }}}};$

${{t}_{1}}$${{t}_{2}}$${{t}_{3}}$ ≤ … – упорядоченная последовательность времен выходных событий управления обменом.

Выходное воздействие управления обменом есть

${{{\mathbf{Y}}}^{{\text{о }}}}$ – множество мгновенных значений выходных воздействий управления обменом.

Объединим подпоследовательности событий входного воздействия ω (2) и выходного воздействия обмена ${{\gamma }^{{\text{o}}}}$ (4) одного и того же ψ и вместе с начальными значениями соответствующих переменных назовем полученную подпоследовательность событий входным взаимодействием

(5)
$\mu = \left( {z_{{{{p}_{1}},...,}}^{{\text{н }}}z_{{{{p}_{{n + q}}}}}^{{\text{н }}}} \right),\,\,\,\,\chi _{{{{p}_{{{{i}_{1}}}}},{{z}_{{{{j}_{1}}}}},{{z}_{{{{j}_{2}}}}}\quad}}^{{{{t}_{1}}}},\,\,\,\,\chi _{{{{p}_{{{{i}_{2}}}}},{{z}_{{{{j}_{3}}}}},{{z}_{{{{j}_{4}}}}}\quad}}^{{{{t}_{2}}}},\,\,\,\,\chi _{{{{p}_{{{{i}_{3}}}}},{{z}_{{{{j}_{5}}}}},{{z}_{{{{j}_{6}}}}}\quad}}^{{{{t}_{3}}}}\,\,\,\,...,$

где

$\chi _{{{{p}_{{{{i}_{1}}}}},{{z}_{{{{j}_{1}}}}},{{z}_{{{{j}_{2}}}}}\quad}}^{{{{t}_{1}}}},\,\,\,\,\chi _{{{{p}_{{{{i}_{2}}}}},{{z}_{{{{j}_{3}}}}},{{z}_{{{{j}_{4}}}}}\quad}}^{{{{t}_{2}}}},\,\,\,\,\chi _{{{{p}_{{{{i}_{3}}}}},{{z}_{{{{j}_{5}}}}},{{z}_{{{{j}_{6}}}}}\quad}}^{{{{t}_{3}}}}\,\,...$
– входные события и выходные события управления обменом; ${{t}_{1}}$${{t}_{2}}$${{t}_{3}}$ ≤ … – упорядоченная последовательность времен событий входного взаимодействия.

Входное взаимодействие есть μ: [0, t) → U × ${{{\mathbf{Y}}}^{{\text{o}}}},$ tT.

В дальнейшем в качестве аргументов функционирования цифровых систем будем использовать входные взаимодействия, что дает возможность рассматривать режимы работы, инициируемые как внешними входными сигналами, так и самими цифровыми системами. В простейшем случае, когда подача сигналов на проектируемую систему не зависит от ее выходных сигналов, множество выходных переменных управления обменом ${{{\mathbf{P}}}^{{\text{o}}}}$ пусто и входное взаимодействие μ совпадает с входным воздействием ω.

При известных T, P, $\left\{ {{{{\mathbf{Z}}}_{p}}{\text{|}}p \in {\mathbf{P}}} \right\}$ каждое допустимое взаимодействие ψ описанным выше образом определяет входное ω и выходное γ воздействия, выходное воздействие управления обменом ${{\gamma }^{{\text{o}}}}$ и входное взаимодействие ω на общем интервале времени [0, t). Тогда множество допустимых взаимодействий Ψ задает множество входных воздействий Ω, выходных воздействий Γ, выходных воздействий управления обменом ${{\Gamma }^{{\text{о }}}}$ и входных взаимодействий Μ. Кроме того, на Ω × Γ, Ω × ${{\Gamma }^{{\text{о }}}}$ и Μ × Γ определены отношения b, b' и b'' соответственно: (ω, γ) ∈ b, если ω и γ образуют допустимое взаимодействие ψ ∈ Ψ; (ω, γ0) ∈ b', если ω и γ0 образуют входное взаимодействие μ ∈ Μ; (μ, γ) ∈ b'', если μ и γ образуют допустимое взаимодействие ψ ∈ Ψ. Множество допустимых взаимодействий может быть задано как Ψ = (Ω, Γ, b) или как Ψ = = (Μ, Γ, b''); множество входных взаимодействий – как Μ = (Ω, Γо, b').

Каждому допустимому входному взаимодействию μ соответствует непустое множество выходных воздействий ${{\Gamma }_{\mu }}$ = {γ|b''(μ, γ)}. Все элементы $\gamma \in {{\Gamma }_{\mu }}$ различаются только моментами времени выходных событий в допустимых пределах и, возможно, значениями выходных переменных на определенных отрезках времени, если эти значения безразличны. При известных T, P, $\left\{ {{{{\mathbf{Z}}}_{p}}{\text{|}}p \in {\mathbf{P}}} \right\}$ множество допустимых взаимодействий

(6)
$\Psi = \left( {{\rm M},\left. {\{ {{\Gamma }_{\mu }}} \right|\mu \in {\rm M}\} } \right),$
причем при μ ∈ Μ, ${{\Gamma }_{\mu }} \ne \emptyset .$

УЧЕТ ПОСЛЕДОВАТЕЛЬНОСТИ ВЫПОЛНЯЕМЫХ ФУНКЦИЙ И ВРЕМЕННЫХ ОГРАНИЧЕНИЙ В МОДЕЛИ ДОПУСТИМЫХ ВЗАИМОДЕЙСТВИЙ

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

Обозначим через f конечную последовательность функций, а через F в общем случае счетное множество конечных последовательностей f. Каждая последовательность функций f, начинающаяся с момента времени t = 0 (например, включения питания), задается по крайней мере одним входным взаимодействием ${{\mu }^{f}} \in M.$ Этот факт следует из того, что M содержит все допустимые входные взаимодействия для любой допустимой последовательности функций цифровой системы.

В большинстве случаев одни и те же функции могут выполняться цифровой системой с различными наборами данных, что обуславливает задание различными μ одной и той же последовательности функций f. В связи с тем, что для различных экземпляров цифровой системы задержки выходных событий управления обменом относительно входных событий различаются в определенных пределах, а также в связи с допустимостью варьирования моментов времени входных событий относительно друг друга и относительно выходных событий управления обменом, множество Μ содержит континуальное подмножество ${{M}^{f}} \subset M$ входных взаимодействиий, каждое из которых вызывает выполнение цифровой системой конечной последовательности функций f. Множество входных взаимодействий может быть представлено в виде

(7)

Входное взаимодействие μ ∈ ${{M}^{f}}$ содержит конечное множество событий

(8)
$\left\{ {\chi _{{{{p}_{{{{i}_{1}}}}},{{z}_{{{{j}_{1}}}}},{{z}_{{{{j}_{2}}}}}\quad}}^{{{{t}_{1}}}},\,\,...,\,\,\chi _{{{{p}_{{{{i}_{n}}}}},{{z}_{{{{j}_{{2n - 1}}}}}},{{z}_{{{{j}_{{2n}}}}}}\quad}}^{{{{t}_{n}}}}} \right\},$
где n – количество событий в μ.

Множество ${{M}^{f}}$ содержит также входные взаимодействия, времена событий в которых (событий множества (8)) различаются в определенных пределах. Ограничения на эти различия могут быть заданы в виде:

(9)
$t_{{{\text{min}}}}^{{l,m}}\quad < {{t}_{m}}--{{t}_{l}} < t_{{{\text{max}}}}^{{l,m}},\,\,\,\,\left( {l,m} \right) \in {\mathbf{C}},\,\,\,\,{\mathbf{C}} \subset \{ 1,2, \ldots ,n\} \{ 1,2, \ldots ,n\} ,$
где $t_{{{\text{min}}}}^{{l,m}},$ – минимально и максимально допустимые промежутки времени между l-м и m-м событиями;

C – конечное множество пар событий множества (8), для которых заданы временные ограничения.

Входное взаимодействие μ множества ${{M}^{f}}$ кроме событий (8) может содержать на определенных интервалах времени безразличные события, не влияющие на функционирование цифровой системы. Пригодный для практики метод задания всего класса ${{M}^{f}}$ должен быть рассмотрен отдельно, а сейчас отметим, что в множестве ограничений (9) фигурируют времена существенных событий, то есть событий множества (8).

Выделим в C все пары (l, m), для которых tm есть время выходного события управления обменом, в множество Cout, а все пары (l, m), для которых tm есть время входного события, в множество Cin. Тогда ограничения на моменты времени выходных событий обмена есть

(10)
$t_{{{\text{min}}}}^{{l,m}}\quad \leqslant {{t}_{m}} - {{t}_{l}} \leqslant t_{{\max }}^{{l,m}},\,\,\,\,\left( {l,m} \right) \in {{C}_{{{\text{out}}}}},$

а ограничения на моменты времени входных событий

(11)
$t_{{{\text{min}}}}^{{l,m}}\quad \leqslant {{t}_{m}} - {{t}_{l}} \leqslant t_{{\max }}^{{l,m}},\,\,\,\,\left( {l,m} \right) \in {{C}_{{{\text{in}}}}}.$

Рассмотрим пространство G = = $\prod\nolimits_{{{C}_{{{\text{out}}}}}} {\left\{ {\left. {{{t}_{m}} - {{t}_{l}}} \right|{{t}_{m}} - {{t}_{l}} \geqslant 0} \right\}} .$ Каждая точка gG определяет конкретные значения задержек выходных событий управления обменом. В пространстве G выделим область GfG, для всех точек которой выполняются ограничения (10). Область Gf определяет задержки выходных событий управления обменом, допустимые по техническому заданию. Если техническое задание непротиворечиво, а мы рассматриваем именно такой случай, то Gf ≠ ∅.

Для любой точки gGf в связи с допустимостью таких задержек выходных событий управления обменом существует непустое множество входных взаимодействий $M_{g}^{f},$ обеспечивающих выполнение системой последовательности функций f.

${{M}^{f}} = \bigcup\limits_{g \in {{{\mathbf{G}}}_{f}}{\;}} {M_{g}^{f}} ,\,\,\,\,M_{g}^{f} \ne \emptyset ,$
где $M_{g}^{f}$ – множество входных взаимодействий, обеспечивающих выполнение цифровой системой конечной последовательности функций f при фиксированных задержках выходных событий управления обменом, определяемых gGf.

Таким образом, множество допустимых входных взаимодействий представимо в виде

(12)
$\begin{gathered} M = \bigcup\limits_{f \in F{\;}} {{{M}^{f}}} ;\,\,\,\,{{M}^{{f{\kern 1pt} {\text{'}}}}} \cap {{M}^{{f{\kern 1pt} ''}}} = \emptyset \,\,{\text{п р и }}\,\,f{\kern 1pt} {\text{'}} \ne f{\kern 1pt} {\text{''}}; \\ {{{\mathbf{M}}}^{f}} = \bigcup\limits_{g \in {{G}_{f}}{\;}} {M_{g}^{f}} ;\,\,\,\,{{G}_{f}} = \emptyset ;\,\,\,\,M_{g}^{f} \ne \emptyset \,\,{\text{п р и }}\,\,f \in F. \\ \end{gathered} $

Структура множества входных взаимодействий (12) вместе с представлением множества взаимодействий (6) позволяют сформулировать задачу отладки цифровых систем на этапе проектирования в терминах теории динамических систем.

ЗАДАЧА ОТЛАДКИ В ТЕРМИНАХ ТЕОРИИ ДИНАМИЧЕСКИХ СИСТЕМ

Пусть техническим заданием определено требуемое поведение цифровой системы в виде (T,P,{Zp|pP},Μ,{Γμ|μ ∈ Μ}), то есть для каждого допустимого входного взаимодействия μ определено непустое множество возможных выходных воздействий Γμ. Задано также множество конечных последовательностей выполняемых цифровой системой функций F, причем $M = \bigcup\nolimits_{f \in {\mathbf{F}}} {{{M}^{f}}} ;$ ${{M}^{{f{\kern 1pt} {\text{'}}}}} \cap {{M}^{{f{\kern 1pt} '{\text{'}}}}} = \emptyset $ при f  ' ≠ f  ". Кроме того, для любого f

${{M}^{f}} = \bigcup\limits_{g \in {{{\mathbf{G}}}_{f}}{\;}} {M_{g}^{f}} ,\,\,\,\,{{G}_{f}} \ne \emptyset ;\,\,\,\,M_{g}^{f} \ne \emptyset .$

В свою очередь спроектированная цифровая система задается в виде принципиальной схемы Sc технических средств и текста программно или микропрограммного обеспечения Sf, то есть в виде пары (Sc, Sf).

Схема технических средств

(13)
$\quad{\mathbf{Sc}} = ({\mathbf{Bl}},{\mathbf{Nt}},{\mathbf{P}},\left\{ {{\mathbf{Z}}p{\text{|}}p \in {\mathbf{P}}} \right\},\left. \xi \right\},$
где Bl – конечный комплект цифровых блоков; Nt – конечное множество узлов принципиальной схемы; Р – множество переменных в терминальных узлах (шинах и линиях) схемы, P $ \in $ У; Zp – конечное множество значений переменной р. Причем Zp = ${\mathbf{Z}}_{p}^{*} \times {\text{DI}}{{{\text{R}}}_{p}},$ где ${\mathbf{Z}}_{p}^{*}$ – множество логических значений, ${\text{DI}}{{{\text{R}}}_{p}}$ – множество направлений передачи сигнала. Для входных шин и линий ${\text{DI}}{{{\text{R}}}_{p}}$ = {1}, для выходных ${\text{DI}}{{{\text{R}}}_{p}}$ = {0}, для двунаправленных ${\text{DI}}{{{\text{R}}}_{p}}$ = {0.1}; $\xi $ – отображение множества выводов цифровых блоков в множество узлов.

В (13) для всех переменных p, описывающих шины из нескольких линий, под узлом у понимается соединение нескольких шин с одинаковым количеством линий, что физически соответствует количеству узлов, равному количеству линий в шинах.

Программное или микропрограммное обеспечение

$Sf = \left( {Mc\left\{ {{{z}_{c}}{\text{|}}c \in {\mathbf{Mc}}} \right\}} \right),$
где Mc – конечное множество ячеек памяти, хранящих программу или микропрограмму; ${{z}_{c}}$ – состояние ячейки памяти c.

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

Спроектированную цифровую систему в целом можно представить как

(14)
$\left( {{\mathbf{Sc}},{\mathbf{Sf}}} \right) = ({\mathbf{Bl}},{\mathbf{Nt}},{\mathbf{P}},\left\{ {{{{\mathbf{Z}}}_{p}}{\text{|}}p \in {\mathbf{P}}} \right\},\,\,\,\,\xi ,{\mathbf{Mc}},\left\{ {{{z}_{c}}{\text{|}}c \in {\mathbf{Mc}}} \right\}.$

Спроектированная цифровая система (Sc, Sf), представленная в виде (14), определяет некоторое семейство M стационарных динамических систем, которое может быть задано своим внешним поведением в виде (6), (7). Будем обозначать множество входных взаимодействий и выходных воздействий семейства динамических систем M как ΜM и ΓM соответственно, а множество возможных выходных воздействий для заданного входного взаимодействия μ как ${{\Gamma }_{{\mu {\text{M}}}}}.$ При сравнении внешнего поведения спроектированной цифровой системы с требуемым по техническому заданию будем считать, что в обоих случаях используются одинаковые T, P,{Zp|pP}.

Цифровая система может быть спроектирована таким образом (хотя это является ошибкой), что при каких-то допустимых сочетаниях задержек блоков, в какие-то интервалы времени на одном или нескольких выходах логические сигналы будут не определены. Дополним множество значений переменных множеств P'' и P''' значением u (неопределенный сигнал) следующим образом:

Тогда и в случае отсутствия в какие-то интервалы времени определенных логических сигналов на выходах цифровой системы выходные воздействия представимы в виде (3), если вместо {Zp|pP} использовать {$\widetilde {{\mathbf{Z}}p}$|pP}. Множество возможных выходных воздействий при известном μ, рассматриваемых в алфавитах $\widetilde {{\mathbf{Z}}p}$ будем обозначать $\widetilde {{{\Gamma }_{{\mu {\text{M}}}}}}.{\;}$ При этом для каждого μ ∈ ΜM существует непустое множество $\widetilde {{{\Gamma }_{{\mu {\text{M}}}}}},$ состоящее из выходных воздействий, соответствующих различным сочетаниям задержек блоков цифровой системы. Выходные воздействия управления обменом по-прежнему будут рассматриваться в алфавитах Zp. В случае, если в какой-то последовательности событий логическое значение выходной переменной управления обменом pPо не определено, будем считать, что такая последовательность входным взаимодействием не является.

Пусть пара (Sc, Sf) определяет

$\quad{\mathbf{T}},{\mathbf{P}},\left\{ {\left. {{{{\mathbf{Z}}}_{p}}} \right|p \in {\mathbf{P}}} \right\},\,\,\,\,\left\{ {\left. {\widetilde {{\mathbf{Z}}p}} \right|p \in {\mathbf{P}}} \right\},\,\,\,\,{{{\mathbf{M}}}_{{\text{M}}}},\left\{ {\left. {\widetilde {{{\Gamma }_{{\mu {\text{M}}}}}}} \right|\mu \in {{{\mathbf{M}}}_{{\text{M}}}}} \right\},$
а также FM, такое, что

Обозначим через τ вектор задержек множества блоков, входящих в схему технических средств цифровой системы, а через $\Im $ множество векторов возможных задержек блоков системы. Каждому τ ∈ $\Im $ соответствуют свои задержки выходных событий управления обменом. Следовательно, существует отображение af: $\Im $G. Если при каких-либо значениях задержек, то есть при каком-либо τ ∈ $\Im $, логическое значение выходной переменной, участвующей во входном взаимодействии, не определено, то af(τ) не существует. Таким образом, отображение af в общем случае является частичным.

Для того, чтобы при любых возможных сочетаниях задержек блоков выполнялись ограничения (12), необходимо, чтобы при

$\tau \in \Im \,\,\,\,{{a}_{f}}(\tau ) \in {{{\mathbf{G}}}_{f}}.$

Для каждого τ ∈ $\Im $ существует свое множество допустимых входных взаимодействий

${\mathbf{M}}_{{t{\text{M}}}}^{f}\,\,{\text{и }}{\mathbf{M}}_{{\text{M}}}^{f} = \bigcup\limits_{t \in T} {{\mathbf{M}}_{{t{\text{M}}}}^{f}} ,\,\,\,\,{\mathbf{M}}_{{t{\text{M}}}}^{f} \ne \emptyset .$

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

${{{\mathbf{F}}}_{{\mathbf{M}}}} \supseteq {\mathbf{F}}\,\,\,\,{\text{п р и }}\,\,\,\,\tau \in \Im ,\,\,\,\,{\mathbf{M}}_{{t{\text{M}}}}^{f} \supseteq {\mathbf{M}}_{{{\text{a}}f\left( {\text{t}} \right)}}^{f}.$

Кроме того, при правильном проектировании цифровой системы $\widetilde {{{\Gamma }_{{\mu {\text{M}}}}}} \subset {{\Gamma }_{\mu }}$ для всех μ ∈ ΜΜM, где ΜΜM = $\bigcup\nolimits_{f \in {\mathbf{F}}} {\bigcup\nolimits_{{\text{t}} \in {\text{T}}} {M_{{{\text{a}}f\left( {\text{t}} \right)}}^{f}} } .$ Выполнение этого соотношения в качестве необходимого условия требует, чтобы выходные воздействия γ, где γ ∈ $\widetilde {{{{\mathbf{\Gamma }}}_{{\mu {\text{M}}}}}},$ не содержали значения u (не определено) какой-либо переменной.

Задача отладки проекта цифровой системы может быть сформулирована следующим образом.

Доказать, что

(15)
${{{\mathbf{F}}}_{{\mathbf{M}}}} \supseteq {\mathbf{F}},$
(16)
${{a}_{f}}(\tau ) \in {{G}_{f}}\,\,и \,\,M_{{t{\text{M}}}}^{f} \supseteq M_{{af({\text{t}})}}^{f}\,\,{\text{п р и }}\,\,\tau \in \Im ,\,\,f \in F{\text{;}}$
(17)
$\widetilde {{{{\mathbf{\Gamma }}}_{{\mu {\text{M}}}}}} \subset {{{\mathbf{\Gamma }}}_{\mu }}\,\,{\text{п р и }}\,\,\mu \in \bigcup\limits_{f \in {\mathbf{F}}} {\bigcup\limits_{{\text{t}} \in {\text{T}}} {{\mathbf{M}}_{{{\text{a}}f\left( {\text{t}} \right)}}^{f}} .} $

В случае, если это неверно, внести в (Sc, Sf) такие исправления, чтобы соотношения (15)–(17) выполнялись.

ПОДЗАДАЧИ ОТЛАДКИ ЦИФРОВЫХ СИСТЕМ

Для того, чтобы выполнить отладку проекта цифровой системы, необходимо решить следующие подзадачи:

1) проверить включение FMF;

2) выбрать такое конечное множество подмножеств входных взаимодействий ${{{\mathbf{M}}}^{{{{f}_{j}}}}},\,\,j = 1,...,n,$ что:

а) из того, что при t$\Im $ ${{а }_{{{{f}_{j}}}}}$(t) ∈ ${{{\mathbf{G}}}_{{{{f}_{j}}}}},$ ${\mathbf{M}}_{{t{\text{M}}}}^{{{{f}_{j}}}}$${\mathbf{M}}_{{{\text{a}}f\left( {\text{t}} \right)}}^{{{{f}_{j}}}}$ для всех j следует, что при t$\Im $ af(t) ∈ Gf и ${\mathbf{M}}_{{t{\text{M}}}}^{f}$ ⊇ ⊇ ${\mathbf{M}}_{{{\text{a}}f\left( {\text{t}} \right)}}^{f}$ для всех fF;

б) из того, что $\widetilde {{{{\mathbf{\Gamma }}}_{{\mu {\text{M}}}}}} \subset {{{\mathbf{\Gamma }}}_{\mu }}$ для μ ∈ $\bigcup\nolimits_{{\text{t}} \in \Im } {{\mathbf{M}}_{{{\text{a}}{{f}_{j}}({\text{t}})}}^{{{{f}_{j}}}}} $ и всех j, следует, что $\widetilde {{{{\mathbf{\Gamma }}}_{{\mu {\text{M}}}}}} \subset {{{\mathbf{\Gamma }}}_{\mu }}$ для всех μ ∈ ∈ $\bigcup\nolimits_{f \in {\mathbf{F}}} {\bigcup\nolimits_{{\text{t}} \in \Im } {{\mathbf{M}}_{{{\text{a}}{{f}_{j}}({\text{t}})}}^{{{{f}_{j}}}}} } ;$

3) проверить соотношения ${{а }_{{{{f}_{j}}}}}$(t) ∈ ${{{\mathbf{G}}}_{{{{f}_{j}}}}}$ и ${\mathbf{M}}_{{t{\text{M}}}}^{{{{f}_{j}}}}$ ⊇ ⊇ ${\mathbf{M}}_{{{\text{a}}{{f}_{j}}\left( {\text{t}} \right)}}^{{{{f}_{j}}}}$ при τ ∈ $\Im $ и j = 1,…, n;

4) проверить соотношения $\widetilde {{{{\mathbf{\Gamma }}}_{{\mu {\text{M}}}}}} \subset {{{\mathbf{\Gamma }}}_{\mu }}$ при μ ∈ ∈ $\bigcup\nolimits_{{\text{t}} \in \Im } {{\text{M}}_{{{\text{a}}{{f}_{j}}\left( {\text{t}} \right)}}^{{{{f}_{j}}}}} $ для j = 1,…, n;

5) при невыполнении условий, проверяемых в пп. 1, 3, 4 иметь возможность локализовать ошибки в (Sc, Sf) и исправить их, а затем повторить указанные действия.

Подзадача 2 решается путем представления технического задания в виде формальной спецификации, по которой осуществляется выбор конечного числа ${{{\mathbf{{\rm M}}}}^{{{{f}_{j}}}}},\,\,j = 1, \ldots ,\,\,n,$ исходя из требуемого внешнего поведения цифровой системы.

Практическое решение подзадачи 1 основывается на проверке внутренних состояния цифровой системы, в которые последняя приходит после выполнения различных функций. При отладке эта подзадача решается во время моделирования цифровой системы на выбранном уровне.

Решения подзадачи 3 заключается в проверке появления выходных сигналов управления обменом и соблюдения ограничений на моменты переключений сигналов вида (9) во входных взаимодействиях при всех возможных сочетаниях задержек. Такая проверка должна проводиться для всех подмножеств входных взаимодействий ${{{\mathbf{{\rm M}}}}^{{{{f}_{k}}}}},{\;}k = 1, \ldots ,{\;}n.$

Подзадача 3 представляет собой задачу верификации временных диаграмм работы цифровой системы и осуществляется путем моделирования схемы с учетом разброса задержек блоков [4].

Для решения подзадачи 4 осуществляется проверка включений $\widetilde {{{{\mathbf{\Gamma }}}_{{\mu {\text{M}}}}}} \subset {{{\mathbf{\Gamma }}}_{\mu }}$ для μ ∈ $\bigcup\nolimits_{{\text{t}} \in \Im } {{\text{M}}_{{{\text{a}}{{f}_{j}}\left( {\text{t}} \right)}}^{{{{f}_{j}}}}} $ и конечного множества j осуществляется путем подачи на вход объекта отладки отладочных тестов и анализа получаемых реакций.

Наиболее полным решением подзадачи 4 является путь формального доказательства. При этом в наиболее общем случае необходимо осуществить символическое вычисление $\widetilde {{{{\mathbf{\Gamma }}}_{{\mu {\text{M}}}}}}$ одновременно для всех μ ∈ $\bigcup\nolimits_{{\text{t}} \in \Im } {{\text{M}}_{{{\text{a}}f\left( {\text{t}} \right)}}^{f}} ,$ а полученное $\widetilde {{{{\mathbf{\Gamma }}}_{{\mu {\text{M}}}}}}$ сравнить с ${{{\mathbf{\Gamma }}}_{\mu }},$ заданным формальной спецификацией также символически. Отладочным тестом в этом случае являлось бы все множество $\bigcup\nolimits_{{\text{t}} \in \Im } {{\text{M}}_{{{\text{a}}f\left( {\text{t}} \right)}}^{f}} = {\mathbf{M}}_{{\text{M}}}^{f} \cap {{{\mathbf{M}}}^{f}}.$ При таком подходе, назовем его полным символическим тестированием, необходимо проводить одновременное символическое вычисление как моментов времени выходных событий с учетом диапазонов задержек блоков, так и логических значений сигналов. Теоретически это возможно путем символического моделирования логики работы цифровой системы с нарастающей неопределенностью моментов времени событий.

ЗАКЛЮЧЕНИЕ

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

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

Список литературы

  1. Иванников А.Д. Моделирование как средство отладки микропроцессорных систем // Микроэлектроника и полупроводниковые приборы / Под ред. Васенкова А.А. и Я.А. Федотова. М., 1984. Вып. 9. С. 289–300.

  2. Калман Р., Фалб П., Арбиб М. Очерки по математической теории систем. М.: Мир, 1971. 400 с.

  3. Заде Л. Понятие состояния в теории систем. В кн.: Общая теория систем. М.: Мир. 1966. С. 49–65.

  4. Стемпковский А.Л., Гаврилов С.В., Глебов А.Л. Методы логического и логико-временного анализа цифровых КМОП СБИС. М.: Наука. 2007. 220 с.

Дополнительные материалы отсутствуют.