В БД программы хранится описание текущей МОП-схемы.
Для моделирования работы схемы в программе используются структуры данных, приведенные в табл. 3.1.
Имя | Тип | Назначение |
---|---|---|
N | Целое | Количество транзисторов. |
num_nodes | Целое | Количество узлов схемы. |
num_entr | Целое | Количество входных воздействий. |
Tr | Массив целых | Номера транзисторов |
Pr | - / - / - | Параметры, характеризующие геометрию транзисторов (соотношение ширины и длины канала). |
Q1 | - / - / - | Элемент Q2[k] представляет собой номер узла, который является затвором транзистора, соединяющего узлы с номерами Q1[k] и Q3[k]. |
Q2 | - / - / - | |
Q3 | - / - / - | |
T1 | Битовый массив | Вектор (T1[k],T2[k]) используется для кодирования типа k-го транзистора. Коды для n-МОП (p-МОП) транзисторов будут (1,1) ((1,0)), а нагрузочный транзистор обозначим через (0,0) или (0,1). |
T2 | - / - / - | |
X | - / - / - | Поле значений сигналов в узлах схемы. |
Xold | - / - / - | Значение X на предыдущей итерации. |
S0 | - / - / - | Поля значений сигналов силы и состояния в узлах схемы, номера узлов которых содержит массив Q1. |
S1 | - / - / - | |
R | - / - / - | Поле значений сигналов состояния затворов транзисторов, номера узлов которых содержит массив Q2. |
H | - / - / - | Поле значений сигналов силы и состояния в узлах схемы, соответствующих массиву Q3. |
G | - / - / - | |
F | - / - / - | Рабочее поле значений преобразованных сигналов. |
Все массивы (как целые так и битовые), используемые для приведенных выше структур данных, являются динамическими, и их максимальный размер ограничен только объемом свободной памяти.
Поля X, S0, S1, F, (H,G) состоят из 7 компонент (битовых плоскостей), а поле R - из 3 компонент.
Дополнительные структуры данных, используемые в программе, приведены в табл. 3.2.
Имя | Тип | Назначение |
---|---|---|
FNameMop | Строка | Имя файла с описанием МОП-схемы на переключательном уровне. |
FNameEntr | - / - / - | Имя файла, содержащего значения входных сигналов. |
FNameBegState | - / - / - | Имя файла, содержащего исходные состояния узлов схемы. |
bIns | Логическое | Тип моделирования: c добавлением нагрузочных транзисторов (bIns =1) для моделирования задержек в работе схемы или без добавления (bIns =0). |
bExtOut | - / - / - | Форма файла отчета: расширенный (bExtOut=1), полный (bExtOut=0), минимальный (bMinOut=1). |
bMinOut | - / - / - | |
bAllXOut | - / - / - | Вывод в файл отчета значений добавленных узлов. |
bBegState | - / - / - | Моделирование с предварительной установкой исходных состояний узлов схемы и без учета входных сигналов. |
При введенных в предыдущем разделе обозначениях алгоритм моделирования исправных МОП-схем можно записать в следующем виде:
Рассмотрим более подробно назначение основных модулей программы показанных на рис. 3.1.
В системе реализована возможность загрузки из файлов описания МОП-схемы на переключательном уровне, наборов входных сигналов и исходных состояний узлов схемы.
Результаты моделирования записываются в файл отчета, имя которого соответствует имени файла с описанием схемы, но с добавлением расширения ".out". Файл отчета может быть расширенным, полным или минимальным.
Входная и выходная нформация хранится в текстовых файлах, поэтому имеется возможность редактирования их с помощью любого текстового редактора.
В приложении В приведены примеры входных и выходных файлов данных для переключательной модели RS-триггера (рис. 3.2).
Структура файла с описанием МОП-схемы:
Q1[1] Q2[1] Q3[1] Tr[1] Pr[1] T1[1] T2[1] Q1[2] Q2[2] Q3[2] Tr[2] Pr[2] T1[2] T2[2] . . . . Q1[N] Q2[N] Q3[N] Tr[N] Pr[N] T1[N] T2[N]
Структура файла с входными сигналами:
num_entr HG11 HG12 . . . HG1num_entr HG21 HG22 . . . HG2num_entr . . . . HGM1 HGM2 . . . HGMnum_entr (здесь М - количество входных наборов сигналов; HО (D, W, SC, C), GО (0, 1, X, Z)).
Структура файла с исходными состояниями узлов схемы:
HG1 HG2 . . . HGnum_nodes
Структура файла отчета (расширенного):
======== Вход 1 ======== ------------------------------------------------------- X : HGx1 HGx2 . . . HGxnum_nodes S0 : HGs01 HGs02 . . . HGs0num_nodes R : G1 G2 . . . Gnum_nodes HG : HGhg1 HGhg2 . . . HGhgnum_nodes F : HGf1 HGf2 . . . HGfnum_nodes ------------------------------------------------------- X : HGx1 HGx2 . . . HGxnum_nodes S0 : HGs01 HGs02 . . . HGs0num_nodes R : G1 G2 . . . Gnum_nodes HG : HGhg1 HGhg2 . . . HGhgnum_nodes F : HGf1 HGf2 . . . HGfnum_nodes . . . . Количество итераций: x ======== Вход 2 ======== . . . .
Структура файла отчета (полного):
Вход 1 -------- X : HGx1 HGx2 . . . HGxnum_nodes X : HGx1 HGx2 . . . HGxnum_nodes . . . . Количество итераций: x ======== Вход 2 ======== . . . .
Структура файла отчета (минимального):
Вход 1 -------- X : HGx1 HGx2 . . . HGxnum_nodes Количество итераций: x ======== Вход 2 ======== . . . .