This commit is contained in:
dboyarov
2026-09-24 18:31:50 +03:00
parent 787d33d7ea
commit 6d53a2451e
24 changed files with 8106 additions and 25 deletions

12
config/utils.typ Normal file
View File

@@ -0,0 +1,12 @@
#let fill-in(body) = highlight(fill: rgb("#FFF200"), text(style: "italic")[\[#body\]])
#let hdr(..cells) = cells.pos().map(c => table.cell(fill: luma(217), strong(c)))
#let one = rgb("#C6EFCE")
#let zero = rgb("#FFD7D7")
#let placeholder(what) = block(
width: 100%,
height: 5cm,
stroke: 0.6pt,
inset: 8pt,
align(center + horizon, fill-in[Вставьте сюда #what]),
)

View File

@@ -1,12 +1,13 @@
#let student_name = "Иванов И.И." #import "utils.typ": fill-in
#let group = "ФФФ1234"
#let teacher_name = "Александров А.А." #let student_name = "Бояров Данила"
#let group = fill-in[группа]
#let teacher_name = fill-in[И.О. Фамилия]
#let teacher_grade = "старший преподаватель" #let teacher_grade = "старший преподаватель"
#let department = "«Теории электрических цепей»" #let department = "«радиооборудования и схемотехники»"
#let faculty = "того самого" #let faculty = fill-in[факультет]
#let lab_num = 42069
#let discipline = "сложной"
#let theme = "Исследование чего-то там"
#let lab_num = 2601
#let discipline = "«Цифровая схемотехника»"
#let theme = "«Базовые логические элементы»"

BIN
img/mcu-tr.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

BIN
img/nand-sch.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

BIN
img/nand-tr.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

BIN
img/nor-sch.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

BIN
img/nor-tr.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

BIN
img/sdnf-sch.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

BIN
img/sdnf-tr.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -16,9 +16,25 @@
} }
) )
#set text(font: "Times New Roman", lang: "ru", 14pt) #set text(font: "Times New Roman", lang: "ru", 14pt)
#show raw: set text(font: ("Consolas", "DejaVu Sans Mono", "Liberation Mono"), size: 9.5pt)
#show math.equation: set text(font: ("Cambria Math", "New Computer Modern Math"))
#show heading: set align(center) #show heading: set align(center)
#show figure.where(kind: image): set figure(supplement: [Рис.]) #show figure.where(kind: image): set figure(supplement: [Рис.])
#set figure(gap: 0.6em)
#show figure.where(kind: table): set figure.caption(position: top)
#show figure.caption: it => {
set text(size: 12pt)
set par(first-line-indent: 0pt)
if it.kind == table { align(left, it) } else { it }
}
#set figure.caption(separator: [ – ])
#show figure: set block(breakable: true)
#set table(stroke: 0.5pt, inset: (x: 5pt, y: 4pt))
#show table: set text(size: 12pt)
#show table: set par(justify: false, first-line-indent: 0pt)
#show heading: it => { #show heading: it => {
it it
par(first-line-indent: 1.25cm)[#text()[]] par(first-line-indent: 1.25cm)[#text()[]]
@@ -29,7 +45,8 @@
#pagebreak() #pagebreak()
#outline( #outline(
title: [Содержание] title: [Содержание],
depth: 1,
) )
#pagebreak() #pagebreak()

View File

@@ -1,23 +1,507 @@
= Цель работы #import "../config/utils.typ": *
[Цель работы] #par(first-line-indent: 0pt)[#fill-in[Жёлтым маркером отмечены места, которые заполняются по результатам работы на стенде (измерения, осциллограммы, снимки DSView), а также номер группы и ФИО преподавателя]]
= Предварительный расчёт // =====================================================================
= 1 Цель работы
[Предварительный расчёт] Ознакомиться с базовыми логическими элементами, реализующими логические операции НЕ, И-НЕ, ИЛИ-НЕ, и их особенностями на примере микросхем серии 74HC: научиться по таблице истинности строить и минимизировать логическую функцию, реализовывать её в базисах 2И-НЕ и 2ИЛИ-НЕ, моделировать схему в Micro-Cap, измерять задержку распространения сигнала и наблюдать ложные срабатывания (состязания сигналов).
= Экспериментальный расчёт // =====================================================================
= 2 Краткие теоретические сведения
[Экспериментальный расчёт] Логический элемент – схема, выходной сигнал которой (0 или 1) определяется логической функцией от входных сигналов. В работе используются микросхемы серии 74HC (КМОП): 74HC04 – шесть инверторов (НЕ), 74HC00 – четыре элемента 2И-НЕ, 74HC02 – четыре элемента 2ИЛИ-НЕ, 74HC14 – шесть инверторов с триггером Шмитта.
= Обработка результатов машинного эксперимента #figure(
table(columns: (2cm, 2cm, 3cm, 3.5cm, 3.5cm), align: center,
..hdr[A][B][НЕ A][A И-НЕ B][A ИЛИ-НЕ B],
[0], [0], [1], [1], [1],
[0], [1], [1], [1], [0],
[1], [0], [0], [1], [0],
[1], [1], [0], [0], [0]),
caption: [Базовые логические элементы]) <tab:basic>
[Обработка результатов] Элементы И-НЕ и ИЛИ-НЕ называют универсальными: из элементов одного такого типа можно построить любую логическую функцию. Инвертор получают, соединив оба входа элемента вместе: И-НЕ(A, A) = ИЛИ-НЕ(A, A) = $overline(A)$.
= Вывод Для перевода выражения в базис И-НЕ или ИЛИ-НЕ используют правила де Моргана:
$ overline(A dot B) = overline(A) + overline(B), quad quad overline(A + B) = overline(A) dot overline(B). $
[Вывод] Минимизация функции выполняется с помощью карты Карно – таблицы, в которой соседние клетки отличаются значением только одной переменной (строки и столбцы нумеруются кодом Грея 00, 01, 11, 10). Соседние единицы (или нули) объединяются в прямоугольные группы по 2, 4, 8 клеток; переменные, которые внутри группы меняются, из соответствующего слагаемого исчезают. Клетки, значение которых по условию не задано («безразличные», обозначены «–»), можно доопределять нулём или единицей так, как удобнее для укрупнения групп.
= Ответы на вопросы для самопроверки Задержка распространения $t_"pd"$ – время между изменением входного сигнала и соответствующим изменением выходного (измеряется по уровню 50 %). Для 74HC она зависит от напряжения питания: чем оно ниже, тем медленнее переключается элемент. При последовательном включении $N$ элементов задержки складываются.
[Ответы на вопросы] Ложное срабатывание (риск сбоя, «глитч») – короткий импульс на выходе комбинационной схемы, которого не должно быть по таблице истинности. Он возникает, когда при смене входного набора сигналы приходят на входы элемента разными путями с разной задержкой (состязания, гонки сигналов), или когда входные сигналы сами меняются не одновременно. Триггер Шмитта – элемент с гистерезисом: у него разные пороги переключения при нарастании ($V_(T+)$) и спаде ($V_(T-)$) входного напряжения, поэтому короткие «недоросшие» импульсы и шум на медленных фронтах он не пропускает.
// =====================================================================
= 3 Модель индивидуального варианта
== 3.1 Формирование индивидуального варианта
Студент: Бояров Данила. Первые четыре буквы имени: Д, А, Н, И – им соответствует значение $Y = 1$. Первые четыре буквы фамилии: Б, О, Я, Р – им соответствует $Y = 0$.
Номер буквы берётся по алфавиту, номер строки таблицы – как остаток от деления номера буквы на 16. Нумерация выполнена так же, как в примере методички (Пётр Иванов: П = 1, Е = 6, Т = 4, Р = 2, И = 10, В = 3, А = 1, Н = 15). Этот пример получается только при нумерации по полному алфавиту из 33 букв (А = 1, …, Е = 6, Ё = 7, Ж = 8, …, И = 10, …, Я = 33), а указание «удалить букву ё» относится к самим имени и фамилии (Пётр → Петр). Строки таблицы нумеруются с единицы: номер 1 – строка 0000, номер 2 – строка 0001, …, номер 16 (остаток 0) – строка 1111. При совпадении номеров (коллизии) занимается следующая свободная строка. Сначала расставляются буквы имени, затем фамилии.
#figure(
table(columns: (1.6cm, 2.4cm, 2.8cm, 2.6cm, 4.4cm, 1.2cm), align: center + horizon,
..hdr[Буква][Номер в алфавите][Остаток от деления на 16][Строка по номеру][Занятая строка (X4X3X2X1)][Y],
[Д], [5], [5], [5], [5 (0100)], [1],
[А], [1], [1], [1], [1 (0000)], [1],
[Н], [15], [15], [15], [15 (1110)], [1],
[И], [10], [10], [10], [10 (1001)], [1],
[Б], [2], [2], [2], [2 (0001)], [0],
[О], [16], [0], [16], [16 (1111)], [0],
[Я], [33], [1], [1 – занята], [1, 2 заняты → 3 (0010)], [0],
[Р], [18], [2], [2 – занята], [2, 3 заняты → 4 (0011)], [0]),
caption: [Определение строк таблицы истинности]) <tab:letters>
== 3.2 Таблица истинности
#figure(
table(columns: (1.2cm, 1.5cm, 1.5cm, 1.5cm, 1.5cm, 1.5cm, 1.8cm), align: center,
..hdr[№][X4][X3][X2][X1][Y][Буква],
[1], [0], [0], [0], [0], table.cell(fill: one)[1], [А],
[2], [0], [0], [0], [1], table.cell(fill: zero)[0], [Б],
[3], [0], [0], [1], [0], table.cell(fill: zero)[0], [Я],
[4], [0], [0], [1], [1], table.cell(fill: zero)[0], [Р],
[5], [0], [1], [0], [0], table.cell(fill: one)[1], [Д],
[6], [0], [1], [0], [1], [–], [],
[7], [0], [1], [1], [0], [–], [],
[8], [0], [1], [1], [1], [–], [],
[9], [1], [0], [0], [0], [–], [],
[10], [1], [0], [0], [1], table.cell(fill: one)[1], [И],
[11], [1], [0], [1], [0], [–], [],
[12], [1], [0], [1], [1], [–], [],
[13], [1], [1], [0], [0], [–], [],
[14], [1], [1], [0], [1], [–], [],
[15], [1], [1], [1], [0], table.cell(fill: one)[1], [Н],
[16], [1], [1], [1], [1], table.cell(fill: zero)[0], [О],
),
caption: [Таблица истинности индивидуального варианта («–» – значение не задано)]) <tab:truth>
X4 – старший разряд, X1 – младший, т. е. набор X4X3X2X1 – это двоичная запись числа (номер строки минус 1).
== 3.3 Логическое выражение (СДНФ)
Функция равна единице на четырёх наборах: 0000, 0100, 1001, 1110. Для каждого такого набора записывается произведение всех переменных, причём переменная, равная в наборе нулю, берётся с инверсией. Сумма этих произведений – совершенная дизъюнктивная нормальная форма (СДНФ):
$ Y = overline(X_4) thin overline(X_3) thin overline(X_2) thin overline(X_1) + overline(X_4) X_3 overline(X_2) thin overline(X_1) + X_4 overline(X_3) thin overline(X_2) X_1 + X_4 X_3 X_2 overline(X_1). $
== 3.4 Минимизация по единицам (карта Карно)
Строки карты – X2X1, столбцы – X4X3, порядок в коде Грея (00, 01, 11, 10), поэтому любые две соседние клетки, в том числе крайние (карта «сворачивается» в тор), отличаются одной переменной. Замечание: в примере методички строки и столбцы записаны в порядке 00, 01, 10, 11 – группы там объединены правильно по смыслу, но визуально соседние клетки не всегда являются логически соседними, поэтому здесь использован стандартный порядок кода Грея.
#figure(
table(columns: (3.4cm, 2.4cm, 2.4cm, 2.4cm, 2.4cm), align: center,
..hdr[X2X1 \\ X4X3][00][01][11][10],
[00], table.cell(fill: one)[1], table.cell(fill: one)[1], [–], [–],
[01], table.cell(fill: zero)[0], [–], [–], table.cell(fill: one)[1],
[11], table.cell(fill: zero)[0], [–], table.cell(fill: zero)[0], [–],
[10], table.cell(fill: zero)[0], [–], table.cell(fill: one)[1], [–],
),
caption: [Карта Карно исходной функции]) <tab:kmap0>
Безразличные клетки доопределяются единицами там, где это позволяет укрупнить группы, при этом ни одна группа не должна захватить заданный нуль (клетки 0001, 0010, 0011, 1111). Получаются три группы по 4 клетки:
#figure(
table(columns: (3.4cm, 2.4cm, 2.4cm, 2.4cm, 2.4cm), align: center,
..hdr[X2X1 \\ X4X3][00][01][11][10],
[00], table.cell(fill: one)[1], table.cell(fill: one)[1], table.cell(fill: one)[1\*], table.cell(fill: one)[1\*],
[01], [0], [0\*], table.cell(fill: one)[1\*], table.cell(fill: one)[1],
[11], [0], [0\*], [0], [0\*],
[10], [0], [0\*], table.cell(fill: one)[1], table.cell(fill: one)[1\*],
),
caption: [Карта Карно после доопределения (оптимизация по единицам; добавленные единицы отмечены «1\*»)]) <tab:kmap1>
#figure(
table(columns: (1.8cm, 5.2cm, 4.4cm, 3.6cm), align: center + horizon,
..hdr[Группа][Клетки (X4X3X2X1)][Что не меняется][Слагаемое],
[1], [0000, 0100, 1100, 1000], [X2 = 0, X1 = 0], [$overline(X_2) thin overline(X_1)$],
[2], [1000, 1001, 1100, 1101], [X4 = 1, X2 = 0], [$X_4 overline(X_2)$],
[3], [1000, 1010, 1100, 1110], [X4 = 1, X1 = 0], [$X_4 overline(X_1)$]),
caption: [Группы единиц]) <tab:groups1>
Группа 1 покрывает единицы 0000 и 0100, группа 2 – единицу 1001, группа 3 – единицу 1110. Минимальная дизъюнктивная нормальная форма (МДНФ):
$ Y = overline(X_2) thin overline(X_1) + X_4 overline(X_2) + X_4 overline(X_1). $
Переменная X3 из функции исчезла: при выбранном доопределении выход от X3 не зависит. Меньше трёх слагаемых получить нельзя: единицы 1001 и 1110 отличаются тремя разрядами, и единственная группа, содержащая обе клетки ($X_4 = 1$, 8 клеток), захватывает заданный нуль 1111.
== 3.5 Минимизация по нулям
Аналогично объединяются нули; безразличные клетки доопределяются так же (иначе функции по единицам и по нулям не совпадали бы). Каждая группа нулей даёт сомножитель-сумму, в которой переменная, равная в группе единице, берётся с инверсией:
#figure(
table(columns: (3.4cm, 2.4cm, 2.4cm, 2.4cm, 2.4cm), align: center,
..hdr[X2X1 \\ X4X3][00][01][11][10],
[00], [1], [1], [1\*], [1\*],
[01], table.cell(fill: zero)[0], table.cell(fill: zero)[0\*], [1\*], [1],
[11], table.cell(fill: zero)[0], table.cell(fill: zero)[0\*], table.cell(fill: zero)[0], table.cell(fill: zero)[0\*],
[10], table.cell(fill: zero)[0], table.cell(fill: zero)[0\*], [1], [1\*],
),
caption: [Карта Карно, оптимизация по нулям (добавленные нули отмечены «0\*»)]) <tab:kmap2>
#figure(
table(columns: (1.8cm, 5.2cm, 4.4cm, 3.6cm), align: center + horizon,
..hdr[Группа][Клетки (X4X3X2X1)][Что не меняется][Сомножитель],
[1], [0001, 0011, 0101, 0111], [X4 = 0, X1 = 1], [$(X_4 + overline(X_1))$],
[2], [0010, 0011, 0110, 0111], [X4 = 0, X2 = 1], [$(X_4 + overline(X_2))$],
[3], [0011, 0111, 1011, 1111], [X2 = 1, X1 = 1], [$(overline(X_2) + overline(X_1))$]),
caption: [Группы нулей]) <tab:groups0>
$ Y = (X_4 + overline(X_1)) (X_4 + overline(X_2)) (overline(X_2) + overline(X_1)). $
Проверка: раскрыв скобки, получаем то же выражение, что и в п. 3.4. Функция является функцией «большинства» (мажоритарной) от трёх сигналов $X_4$, $overline(X_1)$, $overline(X_2)$: $Y = 1$, когда хотя бы два из них равны единице.
== 3.6 Перевод в базисы 2И-НЕ и 2ИЛИ-НЕ
Доступны только двухвходовые элементы И-НЕ (74HC00) и ИЛИ-НЕ (74HC02); обычные И и ИЛИ недоступны, инверторы делаются из тех же элементов с объединёнными входами. Ниже для краткости используется функциональная запись: И-НЕ(a, b) = $overline(a dot b)$, ИЛИ-НЕ(a, b) = $overline(a + b)$.
+ МДНФ в базисе 2И-НЕ (двойная инверсия и правило де Моргана):
$ Y = overline(overline(overline(X_2) thin overline(X_1)) dot overline(X_4 overline(X_2)) dot overline(X_4 overline(X_1))) = "И-НЕ"_3 ("И-НЕ"(overline(X_2), overline(X_1)), "И-НЕ"(X_4, overline(X_2)), "И-НЕ"(X_4, overline(X_1))). $
Трёхвходовое И-НЕ из двухвходовых требует ещё трёх элементов, итого: 2 инвертора + 3 + 3 = 8 элементов.
+ МДНФ в базисе 2ИЛИ-НЕ: каждое произведение превращается в ИЛИ-НЕ от инверсий ($X_4 overline(X_2)$ = ИЛИ-НЕ($overline(X_4)$, $X_2$) и т. д.), затем нужна сумма трёх слагаемых – итого 8 элементов.
+ МКНФ в базисе 2ИЛИ-НЕ: $Y$ = ИЛИ-НЕ#sub[3]\(ИЛИ-НЕ($X_4$, $overline(X_1)$), ИЛИ-НЕ($X_4$, $overline(X_2)$), ИЛИ-НЕ($overline(X_2)$, $overline(X_1)$)) – 8 элементов.
+ МКНФ в базисе 2И-НЕ: сомножители $X_4 + overline(X_1)$ = И-НЕ($overline(X_4)$, $X_1$) и т. д., затем И трёх сомножителей – 8 элементов.
Число элементов можно уменьшить, если вынести общий множитель за скобки (скобочная форма):
$ Y = X_4 (overline(X_1) + overline(X_2)) + overline(X_1) thin overline(X_2) = X_4 overline(X_1 X_2) + overline(X_1) thin overline(X_2), $
$ Y = (X_4 + overline(X_1) thin overline(X_2)) (overline(X_1) + overline(X_2)). $
Отсюда по правилам де Моргана:
$ Y = "И-НЕ"("И-НЕ"(X_4, "И-НЕ"(X_1, X_2)), "И-НЕ"(overline(X_1), overline(X_2))), quad overline(X_i) = "И-НЕ"(X_i, X_i); $
$ Y = "ИЛИ-НЕ"("ИЛИ-НЕ"(X_4, "ИЛИ-НЕ"(X_1, X_2)), "ИЛИ-НЕ"(overline(X_1), overline(X_2))), quad overline(X_i) = "ИЛИ-НЕ"(X_i, X_i). $
Проверка второй формулы: ИЛИ-НЕ($X_1$, $X_2$) = $overline(X_1) thin overline(X_2)$; ИЛИ-НЕ($X_4$, $overline(X_1) thin overline(X_2)$) = $overline(X_4 + overline(X_1) thin overline(X_2))$; ИЛИ-НЕ($overline(X_1)$, $overline(X_2)$) = $X_1 X_2 = overline(overline(X_1) + overline(X_2))$; внешнее ИЛИ-НЕ двух инверсий даёт произведение $(X_4 + overline(X_1) thin overline(X_2))(overline(X_1) + overline(X_2)) = Y$.
#figure(
table(columns: (4.2cm, 3.4cm, 3.4cm, 2.4cm, 2.6cm), align: center + horizon,
..hdr[Вариант][Базис][Число 2-входовых элементов][Число микросхем][Ступеней в пути],
[МДНФ, «в лоб»], [2И-НЕ], [8], [2], [4],
[МДНФ, «в лоб»], [2ИЛИ-НЕ], [8], [2], [5],
[МКНФ, «в лоб»], [2ИЛИ-НЕ], [8], [2], [4],
[МКНФ, «в лоб»], [2И-НЕ], [8], [2], [5],
[Скобочная форма], [2И-НЕ (7400)], table.cell(fill: one)[6], [2], [3],
[Скобочная форма], [2ИЛИ-НЕ (7402)], table.cell(fill: one)[6], [2], [3]),
caption: [Сравнение вариантов реализации]) <tab:variants>
Наименьшее число действий – 6 элементов – дают скобочные формы, причём в обоих базисах одинаково. То, что меньше шести двухвходовых элементов не бывает, дополнительно проверено полным перебором всех схем из 1…5 элементов И-НЕ (и отдельно ИЛИ-НЕ) на компьютере: ни одна не реализует функцию. Обе схемы имеют одинаковую структуру (@fig:nand-sch и @fig:nor-sch), поэтому промоделированы обе; на стенде можно собрать любую, основной выбрана схема на 2И-НЕ.
#figure(
table(columns: (2.3cm,) + (1.4cm,) * 8, align: center,
..hdr[X4X3X2X1][0000][0001][0010][0011][0100][0101][0110][0111],
[*Y*], [1], [0], [0], [0], [1], [0], [0], [0],
..hdr[X4X3X2X1][1000][1001][1010][1011][1100][1101][1110][1111],
[*Y*], [1], [1], [1], [0], [1], [1], [1], [0],
),
caption: [Полная таблица реализованной функции (с учётом доопределения)]) <tab:full>
== 3.7 Моделирование в Micro-Cap 12
=== 3.7.1 Генератор входных сигналов
На схему помещается генератор Stim4 (Component → Digital Primitives → Stimulus Generators → Stim4). Его выходы подключены так: Out3 → X4 (старший разряд), Out2 → X3, Out1 → X2, Out0 → X1. Атрибут COMMAND = SixteenCount, FORMAT = 1111 (двоичные значения), а на странице Text схемы записана команда из методички:
```
.define SixteenCount
+0ns 0000
+label=start
+100ns Incr By 0001
+200ns goto start Until GE 1111
```
Генератор перебирает наборы 0000 → 1111, каждый держится 100 нс; после 1,5 мкс остаётся 1111. Анализ Transient: Maximum Run Time = 2u, графики d(X4), d(X3), d(X2), d(X1), d(OUT). Number of Points = 4001 (шаг вывода 0,5 нс) – увеличено по сравнению с методичкой, чтобы по числовому выводу точно измерить задержки; на вид графиков это не влияет.
=== 3.7.2 Исходная функция (СДНФ) на цифровых примитивах
Схема собрана из примитивов Inverter, And4, Or4 (модель задержки D0\_GATE – идеальные элементы без задержки): четыре инвертора формируют $overline(X_4)$, $overline(X_3)$, $overline(X_2)$, $overline(X_1)$, четыре элемента 4И реализуют четыре произведения СДНФ, элемент 4ИЛИ их складывает.
#figure(image("../img/sdnf-sch.png", width: 14.5cm), caption: [Схема исходной функции (СДНФ) в Micro-Cap]) <fig:sdnf-sch>
#figure(image("../img/sdnf-tr.png", width: 100%), caption: [Временные диаграммы схемы СДНФ (шаг набора 100 нс)]) <fig:sdnf-tr>
Выход OUT равен единице на интервалах 0–100 нс (набор 0000), 400–500 нс (0100), 900–1000 нс (1001), 1400–1500 нс (1110) и нулю на всех остальных. Это в точности совпадает с таблицей истинности (@tab:truth): все заданные единицы и нули на месте, индивидуальный вариант построен верно. Задержек нет, так как примитивы с моделью D0\_GATE идеальные.
=== 3.7.3 Минимальная функция на элементах 7400 (2И-НЕ)
Схема собрана из моделей реальных микросхем (Component → Digital Library → 74xx00 → 00 → 7400). В Micro-Cap каждый символ 7400 – это один элемент 2И-НЕ из четырёх, имеющихся в корпусе. Элементы X1, X2 – инверторы (входы объединены), X3 = И-НЕ($X_1$, $X_2$) = A, X4 = И-НЕ($overline(X_1)$, $overline(X_2)$) = C, X5 = И-НЕ($X_4$, A) = B, X6 = И-НЕ(C, B) = OUT. Для наглядности на диаграмму выведены и промежуточные сигналы.
#figure(image("../img/nand-sch.png", width: 14.5cm), caption: [Схема минимальной функции в базисе 2И-НЕ (7400)]) <fig:nand-sch>
#figure(image("../img/nand-tr.png", width: 100%), caption: [Временные диаграммы схемы на 7400]) <fig:nand-tr>
=== 3.7.4 Минимальная функция на элементах 7402 (2ИЛИ-НЕ)
Та же структура, но все элементы – 2ИЛИ-НЕ (Digital Library → 74xx00 → 02 → 7402).
#figure(image("../img/nor-sch.png", width: 14.5cm), caption: [Схема минимальной функции в базисе 2ИЛИ-НЕ (7402)]) <fig:nor-sch>
#figure(image("../img/nor-tr.png", width: 100%), caption: [Временные диаграммы схемы на 7402]) <fig:nor-tr>
=== 3.7.5 Анализ результатов моделирования
Значения выхода схем на 7400 и 7402 проверены по числовому выводу Micro-Cap (файл .TNO) в конце каждого 100-наносекундного интервала: на всех 16 наборах они совпадают с полной таблицей реализованной функции (@tab:full), в том числе на всех восьми заданных клетках варианта. Значит, минимизация выполнена верно.
#figure(
table(columns: (5.4cm, 3.6cm, 3.6cm, 3.4cm), align: center + horizon,
..hdr[Схема][Задержка 1 → 0 на выходе, нс][Задержка 0 → 1 на выходе, нс][Ложные срабатывания],
[СДНФ, примитивы D0\_GATE], [0], [0], [нет],
[7400 (2И-НЕ), 3 ступени], [25], [29], [нет],
[7402 (2ИЛИ-НЕ), 3 ступени], [28], [32], [нет]),
caption: [Задержки, полученные при моделировании (по числовому выводу)]) <tab:model-delay>
Задержка схемы на реальных элементах составляет 25–32 нс – это сумма задержек трёх последовательных элементов (около 7–11 нс на элемент у модели ТТЛ-микросхемы 7400). Переход 0 → 1 на выходе дольше, чем 1 → 0, так как у ТТЛ-элементов время включения $t_"PLH"$ больше времени выключения $t_"PHL"$. Выходной сигнал оказывается сдвинутым вправо относительно входных наборов (сравните @fig:sdnf-tr и @fig:nand-tr).
В отличие от примера методички, ложных срабатываний в модели нет. Причина – в устройстве схемы: при смене набора выход может «дёрнуться» только если на входы одного элемента приходят два меняющихся сигнала с разной задержкой. Такие места в схеме есть:
- переход 0001 → 0010 (X1 падает, X2 растёт, $Y = 0 → 0$): на элемент C приходят $overline(X_1)$ (растёт) и $overline(X_2)$ (падает). Если бы $overline(X_1)$ вырос раньше, чем упадёт $overline(X_2)$, на короткое время оба были бы равны 1, $C = 0$, и на выходе появился бы ложный импульс «1». У модели 7400 спад ($t_"PHL" approx 7$ нс) быстрее нарастания ($t_"PLH" approx 11$ нс), поэтому $overline(X_2)$ успевает упасть первым и импульса нет;
- переход 1001 → 1010 ($Y = 1 → 1$): элемент A = И-НЕ($X_1$, $X_2$) получает сразу два меняющихся входа; генератор Stim4 меняет их строго одновременно, поэтому провала нет.
У реальных микросхем 74HC времена $t_"PLH"$ и $t_"PHL"$ почти одинаковы, а входные сигналы от микроконтроллера меняются не одновременно, поэтому на стенде в этих местах ложные срабатывания вполне возможны (см. раздел 7).
// =====================================================================
= 4 Экспериментальная часть: измеренные задержки
Измерения выполняются на лабораторном стенде: на вход цепочки инверторов 74HC04 подаётся меандр 20 кГц с микроконтроллера ESP32-C3 (программа – Приложение А), осциллограф Hantek DSO2D10 подключается каналом CH1 ко входу цепочки, каналом CH2 – к выходу. Задержка измеряется между уровнями 50 % фронтов (курсорами по времени или автоматическим измерением Delay CH1→CH2). Подробный порядок действий – в Приложении Б.
Справочные значения для 74HC04 (Texas Instruments, $C_L = 50$ пФ, 25 °C): $t_"pd"$ тип. = 45 нс при 2 В, 9 нс при 4,5 В, 8 нс при 6 В; максимум 19 нс при 4,5 В. Для 3,3 В в справочнике нет строки – по интерполяции типовое значение порядка 12–15 нс. На плате нагрузка меньше 50 пФ (вход следующего элемента + щуп), поэтому реальные задержки могут быть меньше справочных.
#figure(
table(columns: (2.6cm, 2.2cm, 3.8cm, 3.6cm, 3.6cm), align: center + horizon,
..hdr[Число инверторов][Питание, В][Ожидаемая задержка (оценка), нс][Измеренная задержка, нс][Задержка на один инвертор, нс],
[2], [3,3], [24 … 30], [#fill-in[]], [#fill-in[]],
[2], [5,0], [16 … 18], [#fill-in[]], [#fill-in[]],
[6], [3,3], [72 … 90], [#fill-in[]], [#fill-in[]],
[6], [5,0], [48 … 54], [#fill-in[]], [#fill-in[]]),
caption: [Задержка распространения цепочки инверторов 74HC04]) <tab:delays>
Задержка на один инвертор = измеренная задержка / число инверторов. Ожидается, что: 1) задержка цепочки из 6 инверторов примерно втрое больше, чем из 2; 2) при 3,3 В задержка заметно (в 1,4–1,7 раза) больше, чем при 5 В.
*Важное замечание для измерений при 5 В.* Микроконтроллер выдаёт сигнал 3,3 В, а при питании 74HC от 5 В гарантированный порог «единицы» на входе $V_"IH"$ = 3,5 В. Обычно элемент всё равно переключается (реальный порог около $V_"CC"$/2 ≈ 2,5 В), но задержка первого инвертора при этом может немного отличаться – это стоит отметить при обсуждении результатов.
// =====================================================================
= 5 Осциллограммы сигналов
На каждой осциллограмме должны быть видны вход (CH1) и выход (CH2) цепочки и измеренное значение задержки. Удобно растянуть по времени один фронт (развёртка 10–20 нс/дел.). Снимок экрана осциллографа сохраняется на флешку (кнопка Save/Print) или фотографируется.
#figure(placeholder[осциллограмму: 2 инвертора, 3,3 В], caption: [Вход и выход цепочки из 2 инверторов, питание 3,3 В])
#figure(placeholder[осциллограмму: 2 инвертора, 5 В], caption: [Вход и выход цепочки из 2 инверторов, питание 5 В])
#figure(placeholder[осциллограмму: 6 инверторов, 3,3 В], caption: [Вход и выход цепочки из 6 инверторов, питание 3,3 В])
#figure(placeholder[осциллограмму: 6 инверторов, 5 В], caption: [Вход и выход цепочки из 6 инверторов, питание 5 В])
// =====================================================================
= 6 Временные диаграммы, измеренные через DSView
На плате собирается схема минимальной функции на элементах 2И-НЕ (@fig:nand-sch). Выводы микроконтроллера подключаются к входам: GPIO6 → X1, GPIO7 → X2, GPIO8 → X3 (в схеме не используется, но записывается анализатором), GPIO10 → X4. Логический анализатор DSLogic: каналы 0–3 → X1…X4, канал 4 → выход Y, земля анализатора – на GND платы. Программа перебирает наборы 0000…1111, каждый длится 100 мкс (10 кГц). В DSView частота выборки – не ниже 100 МГц, чтобы были видны короткие (десятки наносекунд) ложные импульсы.
#figure(
table(columns: (5.4cm, 2.0cm, 4.4cm, 3.6cm), align: center + horizon,
..hdr[Элемент схемы][Функция][Входы][Выход],
[X1 (1-й элемент 1-й микросхемы)], [$overline(X_1)$], [X1, X1 (выв. 1, 2)], [$overline(X_1)$ (выв. 3)],
[X2 (2-й элемент 1-й микросхемы)], [$overline(X_2)$], [X2, X2 (выв. 4, 5)], [$overline(X_2)$ (выв. 6)],
[X3 (3-й элемент 1-й микросхемы)], [A], [X1, X2 (выв. 9, 10)], [A (выв. 8)],
[X4 (4-й элемент 1-й микросхемы)], [C], [$overline(X_1)$, $overline(X_2)$ (выв. 12, 13)], [C (выв. 11)],
[X5 (1-й элемент 2-й микросхемы)], [B], [X4, A (выв. 1, 2)], [B (выв. 3)],
[X6 (2-й элемент 2-й микросхемы)], [Y], [C, B (выв. 4, 5)], [Y (выв. 6)]),
caption: [Подключение элементов 74HC00 на плате (пример; номера выводов – по даташиту 74HC00)]) <tab:wiring>
На плате выводы микросхем выведены на штыревые разъёмы (см. разводку в Приложении 2 методички), поэтому соединения делаются перемычками между соответствующими контактами.
#figure(placeholder[снимок DSView: весь цикл 1,6 мс], caption: [Временная диаграмма схемы индивидуального варианта, снятая в DSView (полный перебор 0000…1111)])
#figure(placeholder[снимок DSView: увеличенный фрагмент с ложным импульсом], caption: [Ложное срабатывание крупным планом (DSView)])
#figure(placeholder[снимок DSView после включения 74HC14], caption: [Устранение ложного срабатывания триггером Шмитта 74HC14 (DSView)])
Устранение ложного срабатывания (пп. 29–31 порядка выполнения). Выход схемы подключается ко входу инвертора с триггером Шмитта 74HC14; так как элемент инвертирующий, для получения прямого сигнала $Y$ ставят два таких инвертора последовательно (или анализируют $overline(Y)$). Короткий импульс длительностью в единицы наносекунд не успевает перезарядить входную ёмкость до верхнего порога $V_(T+)$ (≈ 2,5 В при 4,5 В питания), и триггер Шмитта его не пропускает. Если импульс длиннее, между выходом схемы и входом 74HC14 включают RC-цепочку (например, $R = 1$ кОм, $C = 100$ пФ, $tau = 100$ нс): она «растягивает» фронты, а гистерезис триггера Шмитта не даёт медленному фронту вызвать дребезг. Ложные импульсы короче ≈ $tau$ при этом подавляются, а полезный сигнал 10 кГц (100 мкс) лишь задерживается на ≈ 0,1 мкс.
#par(first-line-indent: 0pt)[#fill-in[опишите, какой вариант был выбран, сколько было ложных срабатываний до и после включения 74HC14]]
// =====================================================================
= 7 Сравнение модели с результатом в DSView
Модель Micro-Cap из раздела 3 предполагает, что все входы меняются строго одновременно. Микроконтроллер при записи через `Pin.value()` меняет выводы по очереди, с интервалом в несколько микросекунд. Чтобы предсказать, что покажет DSView, выполнено дополнительное моделирование: генератор меняет X1, X2, X3, X4 по очереди с шагом 8 мкс, новый набор – каждые 100 мкс (10 кГц), схема – та же, на 7400.
#figure(image("../img/mcu-tr.png", width: 100%), caption: [Прогноз для стенда: выводы МК переключаются по очереди (шаг 8 мкс), 10 кГц]) <fig:mcu>
#figure(
table(columns: (3.0cm, 4.2cm, 3.6cm, 5.2cm), align: center + horizon,
..hdr[Переход][Промежуточные наборы][Y по пути][Результат],
[0001 → 0010], [0000], [0 → 1 → 0], table.cell(fill: zero)[ложный импульс «1» ≈ 8 мкс],
[0011 → 0100], [0010, 0000], [0 → 0 → 1 → 1], [выход переключается раньше],
[0101 → 0110], [0100], [0 → 1 → 0], table.cell(fill: zero)[ложный импульс «1» ≈ 8 мкс],
[0111 → 1000], [0110, 0100, 0000], [0 → 0 → 1 → 1 → 1], [выход переключается раньше],
[1001 → 1010], [1000], [1 → 1 → 1], [без изменений],
[1011 → 1100], [1010, 1000], [0 → 1 → 1 → 1], [выход переключается раньше],
[1101 → 1110], [1100], [1 → 1 → 1], [без изменений]),
caption: [Промежуточные наборы при последовательной записи X1 → X2 → X3 → X4]) <tab:seq>
Моделирование (@fig:mcu) подтверждает анализ: на выходе появляются два ложных импульса – в моменты 200 мкс (0001 → 0010) и 600 мкс (0101 → 0110), каждый длительностью ≈ 8 мкс. Если в программе использовать одновременную запись всех четырёх битов в регистр GPIO (переменная `SIMULTANEOUS = True`, Приложение А), эти импульсы исчезают, и остаются только возможные наносекундные ложные срабатывания из-за разных задержек элементов (раздел 3.7.5). Такие импульсы триггер Шмитта (с RC-цепочкой) подавить может, а микросекундные – нет: они по сути являются «настоящими» промежуточными входными наборами.
#figure(
table(columns: (6.2cm, 4.8cm, 5.0cm), align: center + horizon,
..hdr[Параметр][Модель Micro-Cap][DSView (эксперимент)],
[Значения Y на 16 наборах], [совпадают с @tab:full], [#fill-in[]],
[Задержка выхода относительно входа], [25–29 нс (ТТЛ 7400)], [#fill-in[]],
[Ложные срабатывания при одновременной смене входов], [нет], [#fill-in[]],
[Ложные срабатывания при записи битов по очереди], [2 (на 200 и 600 мкс, ≈ 8 мкс)], [#fill-in[]],
[После включения 74HC14], [—], [#fill-in[]]),
caption: [Сравнение модели и эксперимента]) <tab:compare>
#par(first-line-indent: 0pt)[#fill-in[сравните: совпали ли значения Y с моделью, сколько ложных срабатываний и где, их длительность]]
// =====================================================================
= 8 Вывод
1. Для студента Бояров Данила по буквам имени и фамилии построена таблица истинности функции четырёх переменных (единицы на наборах 0000, 0100, 1001, 1110; нули на 0001, 0010, 0011, 1111), записана СДНФ.
2. С помощью карт Карно с доопределением безразличных наборов функция минимизирована по единицам ($Y = overline(X_2) thin overline(X_1) + X_4 overline(X_2) + X_4 overline(X_1)$) и по нулям ($Y = (X_4 + overline(X_1))(X_4 + overline(X_2))(overline(X_2) + overline(X_1))$); функция не зависит от X3. Прямой перевод этих форм в базисы 2И-НЕ и 2ИЛИ-НЕ требует по 8 элементов, а скобочные формы – по 6 элементов; перебором подтверждено, что 6 – минимум.
3. Моделирование в Micro-Cap подтвердило правильность варианта: схема СДНФ на идеальных примитивах и минимальные схемы на 7400 и 7402 дают на всех заданных наборах требуемые значения. У схем на реальных элементах выход запаздывает на 25–29 нс (7400) и 28–32 нс (7402), ложных срабатываний при одновременной смене входов в модели нет. Показано, что при последовательной записи битов микроконтроллером следует ожидать два ложных импульса.
4. Экспериментальная часть: #fill-in[задержка одного инвертора 74HC04 при 3,3 В составила … нс, при 5 В – … нс; задержка растёт пропорционально числу инверторов и уменьшается с ростом напряжения питания; в DSView наблюдалось … ложных срабатываний, после включения триггера Шмитта …]
// =====================================================================
#pagebreak()
= Приложение А. Программы для микроконтроллера
Микроконтроллер – ESP32-C3 Super Mini с MicroPython. Используемые выводы выведены на разъём J1 платы (GPIO6, 7, 8, 9, 10, 20, 21). GPIO20 и GPIO21 заняты последовательным портом (консолью) и не используются.
#par(first-line-indent: 0pt)[*А.1 Меандр 20 кГц (п. 3 порядка выполнения), файл main.py:*]
#block(fill: luma(242), stroke: 0.5pt, inset: 6pt, width: 100%)[
```python
# ЛР2601, п. 3 порядка выполнения: меандр 20 кГц на выводе микроконтроллера
# Плата: ESP32-C3 Super Mini, MicroPython.
# Сигнал снимается с GPIO6 (разъём J1, контакт 8) и подаётся на вход первого инвертора.
#
# Используется аппаратный ШИМ: частота выдерживается точно
# и не зависит от скорости интерпретатора Python.
from machine import Pin, PWM
OUT_PIN = 6 # номер GPIO, при необходимости поменять
FREQ = 20_000 # 20 кГц -> период 50 мкс
pwm = PWM(Pin(OUT_PIN, Pin.OUT), freq=FREQ, duty_u16=32768) # скважность 50 %
# Программа ничего больше не делает: ШИМ работает сам по себе.
# Остановить: pwm.deinit()
# ---------------------------------------------------------------------------
# Вариант только на классе Pin (как в Приложении 3 методички).
# Частота получится НЕ ровно 20 кГц: каждая команда Python на ESP32-C3
# выполняется несколько микросекунд. Используйте, если преподаватель
# требует решение именно через Pin.on()/Pin.off().
#
# from machine import Pin
# import time
# p = Pin(OUT_PIN, Pin.OUT)
# half = 25 # полпериода 25 мкс
# t = time.ticks_us()
# while True:
# p.on()
# t = time.ticks_add(t, half)
# while time.ticks_diff(t, time.ticks_us()) > 0:
# pass
# p.off()
# t = time.ticks_add(t, half)
# while time.ticks_diff(t, time.ticks_us()) > 0:
# pass
```
]
Используется аппаратный ШИМ: частота ровно 20 кГц и не зависит от скорости интерпретатора. Вариант через `Pin.on()`/`Pin.off()` приведён в комментарии – он даст частоту чуть ниже 20 кГц из-за времени выполнения команд Python.
#par(first-line-indent: 0pt)[*А.2 Перебор таблицы истинности с частотой 10 кГц (п. 22), файл main.py:*]
#block(fill: luma(242), stroke: 0.5pt, inset: 6pt, width: 100%)[
```python
# ЛР2601, п. 22 порядка выполнения: перебор таблицы истинности 0000..1111
# с частотой 10 кГц (новый входной набор каждые 100 мкс).
# Плата: ESP32-C3 Super Mini, MicroPython.
#
# Подключение (разъём J1):
# X1 (младший разряд) -> GPIO6 (J1, конт. 8)
# X2 -> GPIO7 (J1, конт. 7)
# X3 -> GPIO8 (J1, конт. 6)
# X4 (старший разряд) -> GPIO10 (J1, конт. 4)
# GPIO20/21 не используем: это UART, через него работает консоль MicroPython.
from machine import Pin
import time
PINS = [6, 7, 8, 10] # X1, X2, X3, X4
STEP_US = 100 # 10 кГц -> 100 мкс на один набор
x = [Pin(n, Pin.OUT, value=0) for n in PINS]
SIMULTANEOUS = True # True - все 4 бита меняются одной записью в регистр
# Регистр выходов GPIO ESP32-C3 (Technical Reference Manual, глава GPIO):
GPIO_OUT_REG = 0x60004004
MASK = 0
for n in PINS:
MASK |= 1 << n
def write_code(code):
if SIMULTANEOUS:
from machine import mem32
v = mem32[GPIO_OUT_REG] & ~MASK
for i, n in enumerate(PINS):
if code >> i & 1:
v |= 1 << n
mem32[GPIO_OUT_REG] = v # все выводы переключаются одновременно
else:
for i, p in enumerate(x): # по очереди X1, X2, X3, X4 (как в Приложении 3)
p.value(code >> i & 1)
t = time.ticks_us()
code = 0
while True:
write_code(code)
code = (code + 1) & 0x0F # 0000 -> 0001 -> ... -> 1111 -> 0000
t = time.ticks_add(t, STEP_US)
while time.ticks_diff(t, time.ticks_us()) > 0:
pass
```
]
При `SIMULTANEOUS = True` все четыре бита меняются одной записью в регистр выходов GPIO (адрес по техническому руководству ESP32-C3), при `False` – по очереди через `Pin.value()`, как в Приложении 3 методички. Сравнение этих двух режимов в DSView наглядно показывает, откуда берутся ложные срабатывания (раздел 7).
// =====================================================================
= Приложение Б. Памятка: как выполнить работу на стенде
#par(first-line-indent: 0pt)[_Порядок соответствует пунктам методички._]
#set par(first-line-indent: 0pt)
+ Получить у преподавателя плату, анализатор DSLogic, провода-перемычки и джамперы.
+ Запустить Visual Studio Code, открыть проект `/home/ros/Documents/DigitalLab`.
+ Создать в проекте файл main.py и вставить в него программу А.1 (меандр 20 кГц на GPIO6).
+ Подключить плату кабелем USB Type-C – USB Type-A к компьютеру, загрузить main.py на микроконтроллер (как именно – по инструктажу преподавателя, обычно кнопка Upload расширения MicroPython/Pymakr). Отключить плату.
+ Перемычками соединить последовательно 2 инвертора в секции «НЕ» (74HC04): выход 1-го → вход 2-го.
+ Джампер J3 поставить в положение 3,3 В (J3 выбирает, от чего питаются микросхемы: 5 В или 3,3 В).
+ Перемычкой соединить GPIO6 (J1) со входом первого инвертора.
+ Осциллограф: CH1 – на вход цепочки, CH2 – на выход, «крокодилы» щупов – на GND платы.
+ Подать питание на плату от блока питания USB Type-C. На осциллографе: синхронизация по CH1, по фронту; развёртка сначала 10 мкс/дел. (видно меандр 20 кГц), затем 10–20 нс/дел. (виден один фронт с задержкой).
+ Измерить задержку курсорами между точками 50 % амплитуды на CH1 и CH2 (или функцией Measure → Delay). Записать в @tab:delays, сохранить снимок экрана.
+ Переставить J3 на 5 В, повторить измерение.
+ Вернуть 3,3 В, собрать цепочку из 6 инверторов, повторить измерения при 3,3 В и 5 В. Вернуть 3,3 В. Отключить питание.
+ Записать в main.py программу А.2. Собрать на элементах 2И-НЕ схему @fig:nand-sch по @tab:wiring (две микросхемы 74HC00: инверторы X1, X2 и элементы A, C в первой, B и Y во второй).
+ Подключить GPIO6/7/8/10 к входам X1/X2/X3/X4, DSLogic: каналы 0–3 на X1–X4, канал 4 на выход Y, GND на GND.
+ Подключить плату к ПК, запустить программу. В DSView выставить частоту выборки 100 МГц или выше, длительность записи ≈ 2–5 мс, пороговое напряжение 1,6 В (для 3,3 В логики), нажать Start, сохранить диаграмму.
+ Повторить для вариантов других студентов бригады; выбрать вариант с наименьшим (но не нулевым) числом ложных срабатываний.
+ Включить после выхода схемы инвертирующий триггер Шмитта 74HC14 (при необходимости – с RC-цепочкой, раздел 6), зафиксировать в DSView, что ложное срабатывание исчезло.
+ Отключить плату от ПК и сдать преподавателю.
_Если ложных срабатываний в режиме `SIMULTANEOUS = True` не видно, переключите `SIMULTANEOUS = False` – по прогнозу (@fig:mcu) появятся два ложных импульса по несколько микросекунд._
// =====================================================================
= Приложение В. Файлы, прилагаемые к отчёту
- *MicroCap/LR2601\_1\_SDNF\_primitives.cir* – исходная функция (СДНФ) на примитивах (@fig:sdnf-sch, @fig:sdnf-tr);
- *MicroCap/LR2601\_2\_min\_7400\_NAND.cir* – минимальная функция на 7400 (@fig:nand-sch, @fig:nand-tr);
- *MicroCap/LR2601\_3\_min\_7402\_NOR.cir* – минимальная функция на 7402 (@fig:nor-sch, @fig:nor-tr);
- *MicroCap/LR2601\_4\_7400\_MCU\_seq.cir* – прогноз для стенда (последовательная запись битов, @fig:mcu);
- *micropython/main\_20kHz.py* – меандр 20 кГц;
- *micropython/main\_truth\_table.py* – перебор таблицы истинности 10 кГц.
Файлы .cir открываются в Micro-Cap 12 (File → Open); анализ запускается через Analysis → Transient → Run (F2).

View File

@@ -32,13 +32,15 @@
#block[ #block[
#set align(left) #set align(left)
Выполнил: студент группы #group факультета #faculty #h(1fr) #student_name \ Выполнил: студент группы #group факультета #faculty \
Проверил: #teacher_grade #h(1fr) #teacher_name #h(1fr) #student_name \
Проверил: #teacher_grade \
#h(1fr) #teacher_name
] ]
#v(1fr) #v(1fr)
#block[ #block[
Москва 2025г. Москва 2026г.
] ]
] ]

View File

@@ -0,0 +1,757 @@
[Main]
FileType=CIR
Version=9.00
Program=Micro-Cap
Screen=1280,1024
MCAPVersion=9.0.1.0
Key ID=208 332 945
NLCnt=2
TXCnt=2
[Circuit]
Window Placement=2,3, -1,-1, -8,-31, 0,0,1400,800
Default Object=Color=#000080
Default Object Font=Height=-15,FStyle=0,Color=#000080,Name=Arial
WinBackGround Color=#FFFFFF
Select Color=#FF0000
Select Box Color=#000080
Grid Text Color=Height=-15,FStyle=0,Color=#0000FF,Name=Arial
Component Color=#0000FF
Attribute Text=Height=-13,FStyle=0,Color=#008000,Name=Arial
Wire Color=#008000
Bus Color=#008000
Pin Connection=Height=-10,FStyle=0,Color=#FF0000,Name=Arial
Node Number=Height=-11,FStyle=0,Color=#FF00FF,Name=Arial
Digital 0 Color=#000000
Digital 1 Color=#FF0000
Digital X Color=#C0C0C0
Digital Z Color=#808080
SpiceType=AMBIGUOUS
Title_Block=False
Show Nodes=False
Show Voltages=False
Show Current=False
Show Power=False
Show Condition=False
Show Pin Connections=False
Show Cross=False
Show Attribute Text=True
Show Grid Text=True
[Comp]
Name=Stim4
Grid=2,2
[Attr]
ONV=4,28,PART,U1
Style=8192
[Attr]
ONV=0,54,FORMAT,1111
[Attr]
ONV=0,68,COMMAND,SixteenCount
[Attr]
ONV=0,82,I/O MODEL,IO_STD
[Attr]
ONV=0,96,TIMESTEP,0
[Attr]
ONV=0,110,IO_LEVEL,0
[Attr]
ONV=0,124,POWER NODE,$G_DPWR
[Attr]
ONV=0,138,GROUND NODE,$G_DGND
[Comp]
Name=Inverter
Grid=26,7
[Attr]
ONV=14,-30,PART,U2
Style=8192
[Attr]
ONV=0,54,TIMING MODEL,D0_GATE
[Attr]
ONV=0,68,I/O MODEL,IO_STD
[Attr]
ONV=0,82,MNTYMXDLY,0
[Attr]
ONV=0,96,IO_LEVEL,0
[Attr]
ONV=0,110,POWER NODE,$G_DPWR
[Attr]
ONV=0,124,GROUND NODE,$G_DGND
[Comp]
Name=Inverter
Grid=26,13
[Attr]
ONV=14,-30,PART,U3
Style=8192
[Attr]
ONV=0,54,TIMING MODEL,D0_GATE
[Attr]
ONV=0,68,I/O MODEL,IO_STD
[Attr]
ONV=0,82,MNTYMXDLY,0
[Attr]
ONV=0,96,IO_LEVEL,0
[Attr]
ONV=0,110,POWER NODE,$G_DPWR
[Attr]
ONV=0,124,GROUND NODE,$G_DGND
[Comp]
Name=Inverter
Grid=26,19
[Attr]
ONV=14,-30,PART,U4
Style=8192
[Attr]
ONV=0,54,TIMING MODEL,D0_GATE
[Attr]
ONV=0,68,I/O MODEL,IO_STD
[Attr]
ONV=0,82,MNTYMXDLY,0
[Attr]
ONV=0,96,IO_LEVEL,0
[Attr]
ONV=0,110,POWER NODE,$G_DPWR
[Attr]
ONV=0,124,GROUND NODE,$G_DGND
[Comp]
Name=Inverter
Grid=26,25
[Attr]
ONV=14,-30,PART,U5
Style=8192
[Attr]
ONV=0,54,TIMING MODEL,D0_GATE
[Attr]
ONV=0,68,I/O MODEL,IO_STD
[Attr]
ONV=0,82,MNTYMXDLY,0
[Attr]
ONV=0,96,IO_LEVEL,0
[Attr]
ONV=0,110,POWER NODE,$G_DPWR
[Attr]
ONV=0,124,GROUND NODE,$G_DGND
[Comp]
Name=And4
Grid=44,30
[Attr]
ONV=14,-20,PART,U6
Style=8192
[Attr]
ONV=0,54,TIMING MODEL,D0_GATE
[Attr]
ONV=0,68,I/O MODEL,IO_STD
[Attr]
ONV=0,82,MNTYMXDLY,0
[Attr]
ONV=0,96,IO_LEVEL,0
[Attr]
ONV=0,110,POWER NODE,$G_DPWR
[Attr]
ONV=0,124,GROUND NODE,$G_DGND
[Comp]
Name=And4
Grid=44,37
[Attr]
ONV=14,-20,PART,U7
Style=8192
[Attr]
ONV=0,54,TIMING MODEL,D0_GATE
[Attr]
ONV=0,68,I/O MODEL,IO_STD
[Attr]
ONV=0,82,MNTYMXDLY,0
[Attr]
ONV=0,96,IO_LEVEL,0
[Attr]
ONV=0,110,POWER NODE,$G_DPWR
[Attr]
ONV=0,124,GROUND NODE,$G_DGND
[Comp]
Name=And4
Grid=44,44
[Attr]
ONV=14,-20,PART,U8
Style=8192
[Attr]
ONV=0,54,TIMING MODEL,D0_GATE
[Attr]
ONV=0,68,I/O MODEL,IO_STD
[Attr]
ONV=0,82,MNTYMXDLY,0
[Attr]
ONV=0,96,IO_LEVEL,0
[Attr]
ONV=0,110,POWER NODE,$G_DPWR
[Attr]
ONV=0,124,GROUND NODE,$G_DGND
[Comp]
Name=And4
Grid=44,51
[Attr]
ONV=14,-20,PART,U9
Style=8192
[Attr]
ONV=0,54,TIMING MODEL,D0_GATE
[Attr]
ONV=0,68,I/O MODEL,IO_STD
[Attr]
ONV=0,82,MNTYMXDLY,0
[Attr]
ONV=0,96,IO_LEVEL,0
[Attr]
ONV=0,110,POWER NODE,$G_DPWR
[Attr]
ONV=0,124,GROUND NODE,$G_DGND
[Comp]
Name=Or4
Grid=56,40
[Attr]
ONV=14,-20,PART,U10
Style=8192
[Attr]
ONV=0,54,TIMING MODEL,D0_GATE
[Attr]
ONV=0,68,I/O MODEL,IO_STD
[Attr]
ONV=0,82,MNTYMXDLY,0
[Attr]
ONV=0,96,IO_LEVEL,0
[Attr]
ONV=0,110,POWER NODE,$G_DPWR
[Attr]
ONV=0,124,GROUND NODE,$G_DGND
[Wire]
Grids=22,7,26,7
[Wire]
Grids=32,7,40,7
[Wire]
Grids=19,13,26,13
[Wire]
Grids=32,13,38,13
[Wire]
Grids=16,19,26,19
[Wire]
Grids=32,19,36,19
[Wire]
Grids=13,25,26,25
[Wire]
Grids=32,25,34,25
[Wire]
Grids=40,30,44,30
[Wire]
Grids=38,31,44,31
[Wire]
Grids=36,33,44,33
[Wire]
Grids=34,34,44,34
[Wire]
Grids=40,37,44,37
[Wire]
Grids=19,38,44,38
[Wire]
Grids=36,40,44,40
[Wire]
Grids=34,41,44,41
[Wire]
Grids=22,44,44,44
[Wire]
Grids=38,45,44,45
[Wire]
Grids=36,47,44,47
[Wire]
Grids=13,48,44,48
[Wire]
Grids=22,51,44,51
[Wire]
Grids=19,52,44,52
[Wire]
Grids=16,54,44,54
[Wire]
Grids=34,55,44,55
[Wire]
Grids=11,4,13,4
[Wire]
Grids=13,4,13,25
[Wire]
Grids=13,25,13,48
[Wire]
Grids=34,25,34,34
[Wire]
Grids=34,34,34,41
[Wire]
Grids=34,41,34,55
[Wire]
Grids=11,3,16,3
[Wire]
Grids=16,3,16,19
[Wire]
Grids=16,19,16,54
[Wire]
Grids=36,19,36,33
[Wire]
Grids=36,33,36,40
[Wire]
Grids=36,40,36,47
[Wire]
Grids=11,2,19,2
[Wire]
Grids=19,2,19,13
[Wire]
Grids=19,13,19,38
[Wire]
Grids=19,38,19,52
[Wire]
Grids=38,13,38,31
[Wire]
Grids=38,31,38,45
[Wire]
Grids=11,1,22,1
[Wire]
Grids=22,1,22,7
[Wire]
Grids=22,7,22,44
[Wire]
Grids=22,44,22,51
[Wire]
Grids=40,7,40,30
[Wire]
Grids=40,30,40,37
[Wire]
Grids=50,32,54,32
[Wire]
Grids=54,32,54,40
[Wire]
Grids=54,40,56,40
[Wire]
Grids=50,39,53,39
[Wire]
Grids=53,39,53,41
[Wire]
Grids=53,41,56,41
[Wire]
Grids=50,46,53,46
[Wire]
Grids=53,43,53,46
[Wire]
Grids=53,43,56,43
[Wire]
Grids=50,53,54,53
[Wire]
Grids=54,44,54,53
[Wire]
Grids=54,44,56,44
[Wire]
Grids=62,42,66,42
[Grid Text]
Text="NX4"
Grid=40,7
CBorder=NONE
[Grid Text]
Text="NX3"
Grid=38,13
CBorder=NONE
[Grid Text]
Text="NX2"
Grid=36,19
CBorder=NONE
[Grid Text]
Text="NX1"
Grid=34,25
CBorder=NONE
[Grid Text]
Text="X1"
Grid=13,4
CBorder=NONE
[Grid Text]
Text="X2"
Grid=16,3
CBorder=NONE
[Grid Text]
Text="X3"
Grid=19,2
CBorder=NONE
[Grid Text]
Text="X4"
Grid=22,1
CBorder=NONE
[Grid Text]
Text="OUT"
Grid=66,42
CBorder=NONE
[Grid Text]
Text="ËÐ2601. Áîÿðîâ Äàíèëà. Èñõîäíàÿ ôóíêöèÿ (ÑÄÍÔ) íà ïðèìèòèâàõ D0_GATE"
Grid=2,59
Height=-15
FStyle=1
Color=#000000
CBorder=NONE
[Grid Text]
Text="Y = ~X4~X3~X2~X1 + ~X4X3~X2~X1 + X4~X3~X2X1 + X4X3X2~X1"
Grid=2,61
Height=-13
FStyle=0
Color=#000000
CBorder=NONE
[Schematic]
CurrentSection 0=0
Scale=2
PrinterScale=1
GridUser=10
ShapeGroups="Main","Euro","DeMorgan","Polarity","Electrolytic"
[Section]
Index=0
Name="Main"
Type=Main
Enable=True
CurrentPage 0=0
[Page]
Index=0
Section=0
Print=True
Enable=True
Name=Page 1
Scale 0=2
Grid=0,0
[Page]
Index=1
Section=0
Type=Text
Print=True
Enable=True
Name=Text
[Page]
Index=2
Section=0
Type=Text
Print=False
Enable=True
Name=Models
[Page]
Index=3
Section=0
Type=Info
Print=False
Enable=True
Name=Info
[Text Area]
Section=0
Page=1
Font=Height=-15,FStyle=0,Color=#000000,Name=Courier New
Comment Color=#008000
Background Color=#FFFFFF
Len=99
.define SixteenCount
+0ns 0000
+label=start
+100ns Incr By 0001
+200ns goto start Until GE 1111
[Text Area]
Section=0
Page=2
Font=Height=-15,FStyle=0,Color=#000000,Name=Courier New
Comment Color=#008000
Background Color=#FFFFFF
Len=0
[Transient]
WinBackGround Color=#FFFFFF
Title
AutoTitle=Yes
Grid Color=#808080
Grid Weight=1
Grid Pattern=Dot
Graph Background=#FFFFFF
OperPoint=True
AutoScaleRanges=True
XAxisGrids=True
YAxisGrids=True
Number of Grids X=10
Number of Grids Y=5
Num Out Write=True
Num Out Write Values=True
Num Out Delimiter=32
[APage]
Analysis=Transient
Name="Main"
[Limits]
Analysis=Transient
TRange=2u
TStep=0
NPts=4001
Temp=27
StateVar=Zero
RunOption=Normal
Temperature Type=Linear
Accumulate Plots=False
[WaveForm]
Analysis=Transient
Plt=1
AliasID=1
XExp=T
YExp=d(X4)
XRng=2e-6,0,2e-7
YRng=N/A
Options=OUTPUT,LINEARX,LINEARY
Line Color=#0000FF
Text Color=#0000FF
Rainbow=False
VFmtX=3
VFmtY=3
ScaleFactorX="None"
ScaleFactorY="None"
ScaleUnitsX="Auto"
ScaleUnitsY="Auto"
SFmtX=2
SFmtY=2
[WaveForm]
Analysis=Transient
Plt=1
AliasID=2
XExp=T
YExp=d(X3)
XRng=2e-6,0,2e-7
YRng=N/A
Options=OUTPUT,LINEARX,LINEARY
Line Color=#FF0000
Text Color=#FF0000
Rainbow=False
VFmtX=3
VFmtY=3
ScaleFactorX="None"
ScaleFactorY="None"
ScaleUnitsX="Auto"
ScaleUnitsY="Auto"
SFmtX=2
SFmtY=2
[WaveForm]
Analysis=Transient
Plt=1
AliasID=3
XExp=T
YExp=d(X2)
XRng=2e-6,0,2e-7
YRng=N/A
Options=OUTPUT,LINEARX,LINEARY
Line Color=#008000
Text Color=#008000
Rainbow=False
VFmtX=3
VFmtY=3
ScaleFactorX="None"
ScaleFactorY="None"
ScaleUnitsX="Auto"
ScaleUnitsY="Auto"
SFmtX=2
SFmtY=2
[WaveForm]
Analysis=Transient
Plt=1
AliasID=4
XExp=T
YExp=d(X1)
XRng=2e-6,0,2e-7
YRng=N/A
Options=OUTPUT,LINEARX,LINEARY
Line Color=#FF00FF
Text Color=#FF00FF
Rainbow=False
VFmtX=3
VFmtY=3
ScaleFactorX="None"
ScaleFactorY="None"
ScaleUnitsX="Auto"
ScaleUnitsY="Auto"
SFmtX=2
SFmtY=2
[WaveForm]
Analysis=Transient
Plt=1
AliasID=5
XExp=T
YExp=d(OUT)
XRng=2e-6,0,2e-7
YRng=N/A
Options=OUTPUT,LINEARX,LINEARY
Line Color=#000000
Text Color=#000000
Rainbow=False
VFmtX=3
VFmtY=3
ScaleFactorX="None"
ScaleFactorY="None"
ScaleUnitsX="Auto"
ScaleUnitsY="Auto"
SFmtX=2
SFmtY=2
[Pane]
Analysis=Transient

View File

@@ -0,0 +1,702 @@
[Main]
FileType=CIR
Version=9.00
Program=Micro-Cap
Screen=1280,1024
MCAPVersion=9.0.1.0
Key ID=208 332 945
NLCnt=2
TXCnt=2
[Circuit]
Window Placement=2,3, -1,-1, -8,-31, 0,0,1400,800
Default Object=Color=#000080
Default Object Font=Height=-15,FStyle=0,Color=#000080,Name=Arial
WinBackGround Color=#FFFFFF
Select Color=#FF0000
Select Box Color=#000080
Grid Text Color=Height=-15,FStyle=0,Color=#0000FF,Name=Arial
Component Color=#0000FF
Attribute Text=Height=-13,FStyle=0,Color=#008000,Name=Arial
Wire Color=#008000
Bus Color=#008000
Pin Connection=Height=-10,FStyle=0,Color=#FF0000,Name=Arial
Node Number=Height=-11,FStyle=0,Color=#FF00FF,Name=Arial
Digital 0 Color=#000000
Digital 1 Color=#FF0000
Digital X Color=#C0C0C0
Digital Z Color=#808080
SpiceType=AMBIGUOUS
Title_Block=False
Show Nodes=False
Show Voltages=False
Show Current=False
Show Power=False
Show Condition=False
Show Pin Connections=False
Show Cross=False
Show Attribute Text=True
Show Grid Text=True
[Comp]
Name=Stim4
Grid=2,2
[Attr]
ONV=4,28,PART,U1
Style=8192
[Attr]
ONV=0,54,FORMAT,1111
[Attr]
ONV=0,68,COMMAND,SixteenCount
[Attr]
ONV=0,82,I/O MODEL,IO_STD
[Attr]
ONV=0,96,TIMESTEP,0
[Attr]
ONV=0,110,IO_LEVEL,0
[Attr]
ONV=0,124,POWER NODE,$G_DPWR
[Attr]
ONV=0,138,GROUND NODE,$G_DGND
[Comp]
Name=7400
Grid=24,8
[Attr]
ONV=14,-20,PART,X1
Style=8192
[Attr]
ONV=34,-20,NAME,7400
Style=8192
[Attr]
ONV=0,68,FILE,
[Attr]
ONV=0,82,PARAMS:,
[Attr]
ONV=0,96,TEXT:,
[Attr]
ONV=0,110,PACKAGE,DIP14
[Comp]
Name=7400
Grid=24,14
[Attr]
ONV=14,-20,PART,X2
Style=8192
[Attr]
ONV=34,-20,NAME,7400
Style=8192
[Attr]
ONV=0,68,FILE,
[Attr]
ONV=0,82,PARAMS:,
[Attr]
ONV=0,96,TEXT:,
[Attr]
ONV=0,110,PACKAGE,DIP14
[Comp]
Name=7400
Grid=24,20
[Attr]
ONV=14,-20,PART,X3
Style=8192
[Attr]
ONV=34,-20,NAME,7400
Style=8192
[Attr]
ONV=0,68,FILE,
[Attr]
ONV=0,82,PARAMS:,
[Attr]
ONV=0,96,TEXT:,
[Attr]
ONV=0,110,PACKAGE,DIP14
[Comp]
Name=7400
Grid=38,11
[Attr]
ONV=14,-20,PART,X4
Style=8192
[Attr]
ONV=34,-20,NAME,7400
Style=8192
[Attr]
ONV=0,68,FILE,
[Attr]
ONV=0,82,PARAMS:,
[Attr]
ONV=0,96,TEXT:,
[Attr]
ONV=0,110,PACKAGE,DIP14
[Comp]
Name=7400
Grid=38,25
[Attr]
ONV=14,-20,PART,X5
Style=8192
[Attr]
ONV=34,-20,NAME,7400
Style=8192
[Attr]
ONV=0,68,FILE,
[Attr]
ONV=0,82,PARAMS:,
[Attr]
ONV=0,96,TEXT:,
[Attr]
ONV=0,110,PACKAGE,DIP14
[Comp]
Name=7400
Grid=52,18
[Attr]
ONV=14,-20,PART,X6
Style=8192
[Attr]
ONV=34,-20,NAME,7400
Style=8192
[Attr]
ONV=0,68,FILE,
[Attr]
ONV=0,82,PARAMS:,
[Attr]
ONV=0,96,TEXT:,
[Attr]
ONV=0,110,PACKAGE,DIP14
[Wire]
Grids=11,2,12,2
[Wire]
Grids=11,1,18,1
[Wire]
Grids=18,1,18,25
[Wire]
Grids=11,3,16,3
[Wire]
Grids=16,3,16,14
[Wire]
Grids=16,14,16,22
[Wire]
Grids=11,4,14,4
[Wire]
Grids=14,4,14,8
[Wire]
Grids=14,8,14,20
[Wire]
Grids=14,8,22,8
[Wire]
Grids=22,8,24,8
[Wire]
Grids=22,8,22,10
[Wire]
Grids=22,10,24,10
[Wire]
Grids=16,14,22,14
[Wire]
Grids=22,14,24,14
[Wire]
Grids=22,14,22,16
[Wire]
Grids=22,16,24,16
[Wire]
Grids=14,20,24,20
[Wire]
Grids=16,22,24,22
[Wire]
Grids=30,9,34,9
[Wire]
Grids=34,9,34,11
[Wire]
Grids=34,11,38,11
[Wire]
Grids=30,15,34,15
[Wire]
Grids=34,13,34,15
[Wire]
Grids=34,13,38,13
[Wire]
Grids=18,25,38,25
[Wire]
Grids=30,21,34,21
[Wire]
Grids=34,21,34,27
[Wire]
Grids=34,27,38,27
[Wire]
Grids=44,12,48,12
[Wire]
Grids=48,12,48,18
[Wire]
Grids=48,18,52,18
[Wire]
Grids=44,26,48,26
[Wire]
Grids=48,20,48,26
[Wire]
Grids=48,20,52,20
[Wire]
Grids=58,19,62,19
[Grid Text]
Text="X3"
Grid=12,2
CBorder=NONE
[Grid Text]
Text="X4"
Grid=18,25
CBorder=NONE
[Grid Text]
Text="X2"
Grid=16,22
CBorder=NONE
[Grid Text]
Text="X1"
Grid=14,20
CBorder=NONE
[Grid Text]
Text="NX1"
Grid=34,9
CBorder=NONE
[Grid Text]
Text="NX2"
Grid=34,15
CBorder=NONE
[Grid Text]
Text="A"
Grid=34,21
CBorder=NONE
[Grid Text]
Text="C"
Grid=48,12
CBorder=NONE
[Grid Text]
Text="B"
Grid=48,26
CBorder=NONE
[Grid Text]
Text="OUT"
Grid=62,19
CBorder=NONE
[Grid Text]
Text="ËÐ2601. Áîÿðîâ Äàíèëà. Ìèíèìàëüíàÿ ôóíêöèÿ â áàçèñå 2È-ÍÅ (7400)"
Grid=2,32
Height=-15
FStyle=1
Color=#000000
CBorder=NONE
[Grid Text]
Text="Y = NAND( NAND(X4, NAND(X1,X2)), NAND(~X1,~X2) )"
Grid=2,34
Height=-13
FStyle=0
Color=#000000
CBorder=NONE
[Schematic]
CurrentSection 0=0
Scale=2
PrinterScale=1
GridUser=10
ShapeGroups="Main","Euro","DeMorgan","Polarity","Electrolytic"
[Section]
Index=0
Name="Main"
Type=Main
Enable=True
CurrentPage 0=0
[Page]
Index=0
Section=0
Print=True
Enable=True
Name=Page 1
Scale 0=2
Grid=0,0
[Page]
Index=1
Section=0
Type=Text
Print=True
Enable=True
Name=Text
[Page]
Index=2
Section=0
Type=Text
Print=False
Enable=True
Name=Models
[Page]
Index=3
Section=0
Type=Info
Print=False
Enable=True
Name=Info
[Text Area]
Section=0
Page=1
Font=Height=-15,FStyle=0,Color=#000000,Name=Courier New
Comment Color=#008000
Background Color=#FFFFFF
Len=99
.define SixteenCount
+0ns 0000
+label=start
+100ns Incr By 0001
+200ns goto start Until GE 1111
[Text Area]
Section=0
Page=2
Font=Height=-15,FStyle=0,Color=#000000,Name=Courier New
Comment Color=#008000
Background Color=#FFFFFF
Len=0
[Transient]
WinBackGround Color=#FFFFFF
Title
AutoTitle=Yes
Grid Color=#808080
Grid Weight=1
Grid Pattern=Dot
Graph Background=#FFFFFF
OperPoint=True
AutoScaleRanges=True
XAxisGrids=True
YAxisGrids=True
Number of Grids X=10
Number of Grids Y=5
Num Out Write=True
Num Out Write Values=True
Num Out Delimiter=32
[APage]
Analysis=Transient
Name="Main"
[Limits]
Analysis=Transient
TRange=2u
TStep=0
NPts=4001
Temp=27
StateVar=Zero
RunOption=Normal
Temperature Type=Linear
Accumulate Plots=False
[WaveForm]
Analysis=Transient
Plt=1
AliasID=1
XExp=T
YExp=d(X4)
XRng=2e-6,0,2e-7
YRng=N/A
Options=OUTPUT,LINEARX,LINEARY
Line Color=#0000FF
Text Color=#0000FF
Rainbow=False
VFmtX=3
VFmtY=3
ScaleFactorX="None"
ScaleFactorY="None"
ScaleUnitsX="Auto"
ScaleUnitsY="Auto"
SFmtX=2
SFmtY=2
[WaveForm]
Analysis=Transient
Plt=1
AliasID=2
XExp=T
YExp=d(X3)
XRng=2e-6,0,2e-7
YRng=N/A
Options=OUTPUT,LINEARX,LINEARY
Line Color=#FF0000
Text Color=#FF0000
Rainbow=False
VFmtX=3
VFmtY=3
ScaleFactorX="None"
ScaleFactorY="None"
ScaleUnitsX="Auto"
ScaleUnitsY="Auto"
SFmtX=2
SFmtY=2
[WaveForm]
Analysis=Transient
Plt=1
AliasID=3
XExp=T
YExp=d(X2)
XRng=2e-6,0,2e-7
YRng=N/A
Options=OUTPUT,LINEARX,LINEARY
Line Color=#008000
Text Color=#008000
Rainbow=False
VFmtX=3
VFmtY=3
ScaleFactorX="None"
ScaleFactorY="None"
ScaleUnitsX="Auto"
ScaleUnitsY="Auto"
SFmtX=2
SFmtY=2
[WaveForm]
Analysis=Transient
Plt=1
AliasID=4
XExp=T
YExp=d(X1)
XRng=2e-6,0,2e-7
YRng=N/A
Options=OUTPUT,LINEARX,LINEARY
Line Color=#FF00FF
Text Color=#FF00FF
Rainbow=False
VFmtX=3
VFmtY=3
ScaleFactorX="None"
ScaleFactorY="None"
ScaleUnitsX="Auto"
ScaleUnitsY="Auto"
SFmtX=2
SFmtY=2
[WaveForm]
Analysis=Transient
Plt=1
AliasID=5
XExp=T
YExp=d(OUT)
XRng=2e-6,0,2e-7
YRng=N/A
Options=OUTPUT,LINEARX,LINEARY
Line Color=#000000
Text Color=#000000
Rainbow=False
VFmtX=3
VFmtY=3
ScaleFactorX="None"
ScaleFactorY="None"
ScaleUnitsX="Auto"
ScaleUnitsY="Auto"
SFmtX=2
SFmtY=2
[WaveForm]
Analysis=Transient
Plt=1
AliasID=6
XExp=T
YExp=d(NX1)
XRng=2e-6,0,2e-7
YRng=N/A
Options=OUTPUT,LINEARX,LINEARY
Line Color=#804000
Text Color=#804000
Rainbow=False
VFmtX=3
VFmtY=3
ScaleFactorX="None"
ScaleFactorY="None"
ScaleUnitsX="Auto"
ScaleUnitsY="Auto"
SFmtX=2
SFmtY=2
[WaveForm]
Analysis=Transient
Plt=1
AliasID=7
XExp=T
YExp=d(NX2)
XRng=2e-6,0,2e-7
YRng=N/A
Options=OUTPUT,LINEARX,LINEARY
Line Color=#008080
Text Color=#008080
Rainbow=False
VFmtX=3
VFmtY=3
ScaleFactorX="None"
ScaleFactorY="None"
ScaleUnitsX="Auto"
ScaleUnitsY="Auto"
SFmtX=2
SFmtY=2
[WaveForm]
Analysis=Transient
Plt=1
AliasID=8
XExp=T
YExp=d(A)
XRng=2e-6,0,2e-7
YRng=N/A
Options=OUTPUT,LINEARX,LINEARY
Line Color=#800080
Text Color=#800080
Rainbow=False
VFmtX=3
VFmtY=3
ScaleFactorX="None"
ScaleFactorY="None"
ScaleUnitsX="Auto"
ScaleUnitsY="Auto"
SFmtX=2
SFmtY=2
[WaveForm]
Analysis=Transient
Plt=1
AliasID=9
XExp=T
YExp=d(B)
XRng=2e-6,0,2e-7
YRng=N/A
Options=OUTPUT,LINEARX,LINEARY
Line Color=#808000
Text Color=#808000
Rainbow=False
VFmtX=3
VFmtY=3
ScaleFactorX="None"
ScaleFactorY="None"
ScaleUnitsX="Auto"
ScaleUnitsY="Auto"
SFmtX=2
SFmtY=2
[WaveForm]
Analysis=Transient
Plt=1
AliasID=10
XExp=T
YExp=d(C)
XRng=2e-6,0,2e-7
YRng=N/A
Options=OUTPUT,LINEARX,LINEARY
Line Color=#000080
Text Color=#000080
Rainbow=False
VFmtX=3
VFmtY=3
ScaleFactorX="None"
ScaleFactorY="None"
ScaleUnitsX="Auto"
ScaleUnitsY="Auto"
SFmtX=2
SFmtY=2
[Pane]
Analysis=Transient

View File

@@ -0,0 +1,702 @@
[Main]
FileType=CIR
Version=9.00
Program=Micro-Cap
Screen=1280,1024
MCAPVersion=9.0.1.0
Key ID=208 332 945
NLCnt=2
TXCnt=2
[Circuit]
Window Placement=2,3, -1,-1, -8,-31, 0,0,1400,800
Default Object=Color=#000080
Default Object Font=Height=-15,FStyle=0,Color=#000080,Name=Arial
WinBackGround Color=#FFFFFF
Select Color=#FF0000
Select Box Color=#000080
Grid Text Color=Height=-15,FStyle=0,Color=#0000FF,Name=Arial
Component Color=#0000FF
Attribute Text=Height=-13,FStyle=0,Color=#008000,Name=Arial
Wire Color=#008000
Bus Color=#008000
Pin Connection=Height=-10,FStyle=0,Color=#FF0000,Name=Arial
Node Number=Height=-11,FStyle=0,Color=#FF00FF,Name=Arial
Digital 0 Color=#000000
Digital 1 Color=#FF0000
Digital X Color=#C0C0C0
Digital Z Color=#808080
SpiceType=AMBIGUOUS
Title_Block=False
Show Nodes=False
Show Voltages=False
Show Current=False
Show Power=False
Show Condition=False
Show Pin Connections=False
Show Cross=False
Show Attribute Text=True
Show Grid Text=True
[Comp]
Name=Stim4
Grid=2,2
[Attr]
ONV=4,28,PART,U1
Style=8192
[Attr]
ONV=0,54,FORMAT,1111
[Attr]
ONV=0,68,COMMAND,SixteenCount
[Attr]
ONV=0,82,I/O MODEL,IO_STD
[Attr]
ONV=0,96,TIMESTEP,0
[Attr]
ONV=0,110,IO_LEVEL,0
[Attr]
ONV=0,124,POWER NODE,$G_DPWR
[Attr]
ONV=0,138,GROUND NODE,$G_DGND
[Comp]
Name=7402
Grid=24,8
[Attr]
ONV=14,-20,PART,X1
Style=8192
[Attr]
ONV=34,-20,NAME,7402
Style=8192
[Attr]
ONV=0,68,FILE,
[Attr]
ONV=0,82,PARAMS:,
[Attr]
ONV=0,96,TEXT:,
[Attr]
ONV=0,110,PACKAGE,DIP14
[Comp]
Name=7402
Grid=24,14
[Attr]
ONV=14,-20,PART,X2
Style=8192
[Attr]
ONV=34,-20,NAME,7402
Style=8192
[Attr]
ONV=0,68,FILE,
[Attr]
ONV=0,82,PARAMS:,
[Attr]
ONV=0,96,TEXT:,
[Attr]
ONV=0,110,PACKAGE,DIP14
[Comp]
Name=7402
Grid=24,20
[Attr]
ONV=14,-20,PART,X3
Style=8192
[Attr]
ONV=34,-20,NAME,7402
Style=8192
[Attr]
ONV=0,68,FILE,
[Attr]
ONV=0,82,PARAMS:,
[Attr]
ONV=0,96,TEXT:,
[Attr]
ONV=0,110,PACKAGE,DIP14
[Comp]
Name=7402
Grid=38,11
[Attr]
ONV=14,-20,PART,X4
Style=8192
[Attr]
ONV=34,-20,NAME,7402
Style=8192
[Attr]
ONV=0,68,FILE,
[Attr]
ONV=0,82,PARAMS:,
[Attr]
ONV=0,96,TEXT:,
[Attr]
ONV=0,110,PACKAGE,DIP14
[Comp]
Name=7402
Grid=38,25
[Attr]
ONV=14,-20,PART,X5
Style=8192
[Attr]
ONV=34,-20,NAME,7402
Style=8192
[Attr]
ONV=0,68,FILE,
[Attr]
ONV=0,82,PARAMS:,
[Attr]
ONV=0,96,TEXT:,
[Attr]
ONV=0,110,PACKAGE,DIP14
[Comp]
Name=7402
Grid=52,18
[Attr]
ONV=14,-20,PART,X6
Style=8192
[Attr]
ONV=34,-20,NAME,7402
Style=8192
[Attr]
ONV=0,68,FILE,
[Attr]
ONV=0,82,PARAMS:,
[Attr]
ONV=0,96,TEXT:,
[Attr]
ONV=0,110,PACKAGE,DIP14
[Wire]
Grids=11,2,12,2
[Wire]
Grids=11,1,18,1
[Wire]
Grids=18,1,18,25
[Wire]
Grids=11,3,16,3
[Wire]
Grids=16,3,16,14
[Wire]
Grids=16,14,16,22
[Wire]
Grids=11,4,14,4
[Wire]
Grids=14,4,14,8
[Wire]
Grids=14,8,14,20
[Wire]
Grids=14,8,22,8
[Wire]
Grids=22,8,24,8
[Wire]
Grids=22,8,22,10
[Wire]
Grids=22,10,24,10
[Wire]
Grids=16,14,22,14
[Wire]
Grids=22,14,24,14
[Wire]
Grids=22,14,22,16
[Wire]
Grids=22,16,24,16
[Wire]
Grids=14,20,24,20
[Wire]
Grids=16,22,24,22
[Wire]
Grids=30,9,34,9
[Wire]
Grids=34,9,34,11
[Wire]
Grids=34,11,38,11
[Wire]
Grids=30,15,34,15
[Wire]
Grids=34,13,34,15
[Wire]
Grids=34,13,38,13
[Wire]
Grids=18,25,38,25
[Wire]
Grids=30,21,34,21
[Wire]
Grids=34,21,34,27
[Wire]
Grids=34,27,38,27
[Wire]
Grids=44,12,48,12
[Wire]
Grids=48,12,48,18
[Wire]
Grids=48,18,52,18
[Wire]
Grids=44,26,48,26
[Wire]
Grids=48,20,48,26
[Wire]
Grids=48,20,52,20
[Wire]
Grids=58,19,62,19
[Grid Text]
Text="X3"
Grid=12,2
CBorder=NONE
[Grid Text]
Text="X4"
Grid=18,25
CBorder=NONE
[Grid Text]
Text="X2"
Grid=16,22
CBorder=NONE
[Grid Text]
Text="X1"
Grid=14,20
CBorder=NONE
[Grid Text]
Text="NX1"
Grid=34,9
CBorder=NONE
[Grid Text]
Text="NX2"
Grid=34,15
CBorder=NONE
[Grid Text]
Text="A"
Grid=34,21
CBorder=NONE
[Grid Text]
Text="C"
Grid=48,12
CBorder=NONE
[Grid Text]
Text="B"
Grid=48,26
CBorder=NONE
[Grid Text]
Text="OUT"
Grid=62,19
CBorder=NONE
[Grid Text]
Text="ËÐ2601. Áîÿðîâ Äàíèëà. Ìèíèìàëüíàÿ ôóíêöèÿ â áàçèñå 2ÈËÈ-ÍÅ (7402)"
Grid=2,32
Height=-15
FStyle=1
Color=#000000
CBorder=NONE
[Grid Text]
Text="Y = NOR( NOR(X4, NOR(X1,X2)), NOR(~X1,~X2) )"
Grid=2,34
Height=-13
FStyle=0
Color=#000000
CBorder=NONE
[Schematic]
CurrentSection 0=0
Scale=2
PrinterScale=1
GridUser=10
ShapeGroups="Main","Euro","DeMorgan","Polarity","Electrolytic"
[Section]
Index=0
Name="Main"
Type=Main
Enable=True
CurrentPage 0=0
[Page]
Index=0
Section=0
Print=True
Enable=True
Name=Page 1
Scale 0=2
Grid=0,0
[Page]
Index=1
Section=0
Type=Text
Print=True
Enable=True
Name=Text
[Page]
Index=2
Section=0
Type=Text
Print=False
Enable=True
Name=Models
[Page]
Index=3
Section=0
Type=Info
Print=False
Enable=True
Name=Info
[Text Area]
Section=0
Page=1
Font=Height=-15,FStyle=0,Color=#000000,Name=Courier New
Comment Color=#008000
Background Color=#FFFFFF
Len=99
.define SixteenCount
+0ns 0000
+label=start
+100ns Incr By 0001
+200ns goto start Until GE 1111
[Text Area]
Section=0
Page=2
Font=Height=-15,FStyle=0,Color=#000000,Name=Courier New
Comment Color=#008000
Background Color=#FFFFFF
Len=0
[Transient]
WinBackGround Color=#FFFFFF
Title
AutoTitle=Yes
Grid Color=#808080
Grid Weight=1
Grid Pattern=Dot
Graph Background=#FFFFFF
OperPoint=True
AutoScaleRanges=True
XAxisGrids=True
YAxisGrids=True
Number of Grids X=10
Number of Grids Y=5
Num Out Write=True
Num Out Write Values=True
Num Out Delimiter=32
[APage]
Analysis=Transient
Name="Main"
[Limits]
Analysis=Transient
TRange=2u
TStep=0
NPts=4001
Temp=27
StateVar=Zero
RunOption=Normal
Temperature Type=Linear
Accumulate Plots=False
[WaveForm]
Analysis=Transient
Plt=1
AliasID=1
XExp=T
YExp=d(X4)
XRng=2e-6,0,2e-7
YRng=N/A
Options=OUTPUT,LINEARX,LINEARY
Line Color=#0000FF
Text Color=#0000FF
Rainbow=False
VFmtX=3
VFmtY=3
ScaleFactorX="None"
ScaleFactorY="None"
ScaleUnitsX="Auto"
ScaleUnitsY="Auto"
SFmtX=2
SFmtY=2
[WaveForm]
Analysis=Transient
Plt=1
AliasID=2
XExp=T
YExp=d(X3)
XRng=2e-6,0,2e-7
YRng=N/A
Options=OUTPUT,LINEARX,LINEARY
Line Color=#FF0000
Text Color=#FF0000
Rainbow=False
VFmtX=3
VFmtY=3
ScaleFactorX="None"
ScaleFactorY="None"
ScaleUnitsX="Auto"
ScaleUnitsY="Auto"
SFmtX=2
SFmtY=2
[WaveForm]
Analysis=Transient
Plt=1
AliasID=3
XExp=T
YExp=d(X2)
XRng=2e-6,0,2e-7
YRng=N/A
Options=OUTPUT,LINEARX,LINEARY
Line Color=#008000
Text Color=#008000
Rainbow=False
VFmtX=3
VFmtY=3
ScaleFactorX="None"
ScaleFactorY="None"
ScaleUnitsX="Auto"
ScaleUnitsY="Auto"
SFmtX=2
SFmtY=2
[WaveForm]
Analysis=Transient
Plt=1
AliasID=4
XExp=T
YExp=d(X1)
XRng=2e-6,0,2e-7
YRng=N/A
Options=OUTPUT,LINEARX,LINEARY
Line Color=#FF00FF
Text Color=#FF00FF
Rainbow=False
VFmtX=3
VFmtY=3
ScaleFactorX="None"
ScaleFactorY="None"
ScaleUnitsX="Auto"
ScaleUnitsY="Auto"
SFmtX=2
SFmtY=2
[WaveForm]
Analysis=Transient
Plt=1
AliasID=5
XExp=T
YExp=d(OUT)
XRng=2e-6,0,2e-7
YRng=N/A
Options=OUTPUT,LINEARX,LINEARY
Line Color=#000000
Text Color=#000000
Rainbow=False
VFmtX=3
VFmtY=3
ScaleFactorX="None"
ScaleFactorY="None"
ScaleUnitsX="Auto"
ScaleUnitsY="Auto"
SFmtX=2
SFmtY=2
[WaveForm]
Analysis=Transient
Plt=1
AliasID=6
XExp=T
YExp=d(NX1)
XRng=2e-6,0,2e-7
YRng=N/A
Options=OUTPUT,LINEARX,LINEARY
Line Color=#804000
Text Color=#804000
Rainbow=False
VFmtX=3
VFmtY=3
ScaleFactorX="None"
ScaleFactorY="None"
ScaleUnitsX="Auto"
ScaleUnitsY="Auto"
SFmtX=2
SFmtY=2
[WaveForm]
Analysis=Transient
Plt=1
AliasID=7
XExp=T
YExp=d(NX2)
XRng=2e-6,0,2e-7
YRng=N/A
Options=OUTPUT,LINEARX,LINEARY
Line Color=#008080
Text Color=#008080
Rainbow=False
VFmtX=3
VFmtY=3
ScaleFactorX="None"
ScaleFactorY="None"
ScaleUnitsX="Auto"
ScaleUnitsY="Auto"
SFmtX=2
SFmtY=2
[WaveForm]
Analysis=Transient
Plt=1
AliasID=8
XExp=T
YExp=d(A)
XRng=2e-6,0,2e-7
YRng=N/A
Options=OUTPUT,LINEARX,LINEARY
Line Color=#800080
Text Color=#800080
Rainbow=False
VFmtX=3
VFmtY=3
ScaleFactorX="None"
ScaleFactorY="None"
ScaleUnitsX="Auto"
ScaleUnitsY="Auto"
SFmtX=2
SFmtY=2
[WaveForm]
Analysis=Transient
Plt=1
AliasID=9
XExp=T
YExp=d(B)
XRng=2e-6,0,2e-7
YRng=N/A
Options=OUTPUT,LINEARX,LINEARY
Line Color=#808000
Text Color=#808000
Rainbow=False
VFmtX=3
VFmtY=3
ScaleFactorX="None"
ScaleFactorY="None"
ScaleUnitsX="Auto"
ScaleUnitsY="Auto"
SFmtX=2
SFmtY=2
[WaveForm]
Analysis=Transient
Plt=1
AliasID=10
XExp=T
YExp=d(C)
XRng=2e-6,0,2e-7
YRng=N/A
Options=OUTPUT,LINEARX,LINEARY
Line Color=#000080
Text Color=#000080
Rainbow=False
VFmtX=3
VFmtY=3
ScaleFactorX="None"
ScaleFactorY="None"
ScaleUnitsX="Auto"
ScaleUnitsY="Auto"
SFmtX=2
SFmtY=2
[Pane]
Analysis=Transient

View File

@@ -0,0 +1,763 @@
[Main]
FileType=CIR
Version=9.00
Program=Micro-Cap
Screen=1280,1024
MCAPVersion=9.0.1.0
Key ID=208 332 945
NLCnt=2
TXCnt=2
[Circuit]
Window Placement=2,3, -1,-1, -8,-31, 0,0,1400,800
Default Object=Color=#000080
Default Object Font=Height=-15,FStyle=0,Color=#000080,Name=Arial
WinBackGround Color=#FFFFFF
Select Color=#FF0000
Select Box Color=#000080
Grid Text Color=Height=-15,FStyle=0,Color=#0000FF,Name=Arial
Component Color=#0000FF
Attribute Text=Height=-13,FStyle=0,Color=#008000,Name=Arial
Wire Color=#008000
Bus Color=#008000
Pin Connection=Height=-10,FStyle=0,Color=#FF0000,Name=Arial
Node Number=Height=-11,FStyle=0,Color=#FF00FF,Name=Arial
Digital 0 Color=#000000
Digital 1 Color=#FF0000
Digital X Color=#C0C0C0
Digital Z Color=#808080
SpiceType=AMBIGUOUS
Title_Block=False
Show Nodes=False
Show Voltages=False
Show Current=False
Show Power=False
Show Condition=False
Show Pin Connections=False
Show Cross=False
Show Attribute Text=True
Show Grid Text=True
[Comp]
Name=Stim4
Grid=2,2
[Attr]
ONV=4,28,PART,U1
Style=8192
[Attr]
ONV=0,54,FORMAT,1111
[Attr]
ONV=0,68,COMMAND,MCU
[Attr]
ONV=0,82,I/O MODEL,IO_STD
[Attr]
ONV=0,96,TIMESTEP,0
[Attr]
ONV=0,110,IO_LEVEL,0
[Attr]
ONV=0,124,POWER NODE,$G_DPWR
[Attr]
ONV=0,138,GROUND NODE,$G_DGND
[Comp]
Name=7400
Grid=24,8
[Attr]
ONV=14,-20,PART,X1
Style=8192
[Attr]
ONV=34,-20,NAME,7400
Style=8192
[Attr]
ONV=0,68,FILE,
[Attr]
ONV=0,82,PARAMS:,
[Attr]
ONV=0,96,TEXT:,
[Attr]
ONV=0,110,PACKAGE,DIP14
[Comp]
Name=7400
Grid=24,14
[Attr]
ONV=14,-20,PART,X2
Style=8192
[Attr]
ONV=34,-20,NAME,7400
Style=8192
[Attr]
ONV=0,68,FILE,
[Attr]
ONV=0,82,PARAMS:,
[Attr]
ONV=0,96,TEXT:,
[Attr]
ONV=0,110,PACKAGE,DIP14
[Comp]
Name=7400
Grid=24,20
[Attr]
ONV=14,-20,PART,X3
Style=8192
[Attr]
ONV=34,-20,NAME,7400
Style=8192
[Attr]
ONV=0,68,FILE,
[Attr]
ONV=0,82,PARAMS:,
[Attr]
ONV=0,96,TEXT:,
[Attr]
ONV=0,110,PACKAGE,DIP14
[Comp]
Name=7400
Grid=38,11
[Attr]
ONV=14,-20,PART,X4
Style=8192
[Attr]
ONV=34,-20,NAME,7400
Style=8192
[Attr]
ONV=0,68,FILE,
[Attr]
ONV=0,82,PARAMS:,
[Attr]
ONV=0,96,TEXT:,
[Attr]
ONV=0,110,PACKAGE,DIP14
[Comp]
Name=7400
Grid=38,25
[Attr]
ONV=14,-20,PART,X5
Style=8192
[Attr]
ONV=34,-20,NAME,7400
Style=8192
[Attr]
ONV=0,68,FILE,
[Attr]
ONV=0,82,PARAMS:,
[Attr]
ONV=0,96,TEXT:,
[Attr]
ONV=0,110,PACKAGE,DIP14
[Comp]
Name=7400
Grid=52,18
[Attr]
ONV=14,-20,PART,X6
Style=8192
[Attr]
ONV=34,-20,NAME,7400
Style=8192
[Attr]
ONV=0,68,FILE,
[Attr]
ONV=0,82,PARAMS:,
[Attr]
ONV=0,96,TEXT:,
[Attr]
ONV=0,110,PACKAGE,DIP14
[Wire]
Grids=11,2,12,2
[Wire]
Grids=11,1,18,1
[Wire]
Grids=18,1,18,25
[Wire]
Grids=11,3,16,3
[Wire]
Grids=16,3,16,14
[Wire]
Grids=16,14,16,22
[Wire]
Grids=11,4,14,4
[Wire]
Grids=14,4,14,8
[Wire]
Grids=14,8,14,20
[Wire]
Grids=14,8,22,8
[Wire]
Grids=22,8,24,8
[Wire]
Grids=22,8,22,10
[Wire]
Grids=22,10,24,10
[Wire]
Grids=16,14,22,14
[Wire]
Grids=22,14,24,14
[Wire]
Grids=22,14,22,16
[Wire]
Grids=22,16,24,16
[Wire]
Grids=14,20,24,20
[Wire]
Grids=16,22,24,22
[Wire]
Grids=30,9,34,9
[Wire]
Grids=34,9,34,11
[Wire]
Grids=34,11,38,11
[Wire]
Grids=30,15,34,15
[Wire]
Grids=34,13,34,15
[Wire]
Grids=34,13,38,13
[Wire]
Grids=18,25,38,25
[Wire]
Grids=30,21,34,21
[Wire]
Grids=34,21,34,27
[Wire]
Grids=34,27,38,27
[Wire]
Grids=44,12,48,12
[Wire]
Grids=48,12,48,18
[Wire]
Grids=48,18,52,18
[Wire]
Grids=44,26,48,26
[Wire]
Grids=48,20,48,26
[Wire]
Grids=48,20,52,20
[Wire]
Grids=58,19,62,19
[Grid Text]
Text="X3"
Grid=12,2
CBorder=NONE
[Grid Text]
Text="X4"
Grid=18,25
CBorder=NONE
[Grid Text]
Text="X2"
Grid=16,22
CBorder=NONE
[Grid Text]
Text="X1"
Grid=14,20
CBorder=NONE
[Grid Text]
Text="NX1"
Grid=34,9
CBorder=NONE
[Grid Text]
Text="NX2"
Grid=34,15
CBorder=NONE
[Grid Text]
Text="A"
Grid=34,21
CBorder=NONE
[Grid Text]
Text="C"
Grid=48,12
CBorder=NONE
[Grid Text]
Text="B"
Grid=48,26
CBorder=NONE
[Grid Text]
Text="OUT"
Grid=62,19
CBorder=NONE
[Grid Text]
Text="ËÐ2601. Ïðîãíîç äëÿ ñòåíäà: ÌÊ ìåíÿåò X1..X4 ïî î÷åðåäè (øàã 8 ìêñ), 10 êÃö"
Grid=2,32
Height=-15
FStyle=1
Color=#000000
CBorder=NONE
[Grid Text]
Text="Y = NAND( NAND(X4, NAND(X1,X2)), NAND(~X1,~X2) )"
Grid=2,34
Height=-13
FStyle=0
Color=#000000
CBorder=NONE
[Schematic]
CurrentSection 0=0
Scale=2
PrinterScale=1
GridUser=10
ShapeGroups="Main","Euro","DeMorgan","Polarity","Electrolytic"
[Section]
Index=0
Name="Main"
Type=Main
Enable=True
CurrentPage 0=0
[Page]
Index=0
Section=0
Print=True
Enable=True
Name=Page 1
Scale 0=2
Grid=0,0
[Page]
Index=1
Section=0
Type=Text
Print=True
Enable=True
Name=Text
[Page]
Index=2
Section=0
Type=Text
Print=False
Enable=True
Name=Models
[Page]
Index=3
Section=0
Type=Info
Print=False
Enable=True
Name=Info
[Text Area]
Section=0
Page=1
Font=Height=-15,FStyle=0,Color=#000000,Name=Courier New
Comment Color=#008000
Background Color=#FFFFFF
Len=882
.define MCU
+0us 0000
+100us 0001
+108us 0001
+116us 0001
+124us 0001
+200us 0000
+208us 0010
+216us 0010
+224us 0010
+300us 0011
+308us 0011
+316us 0011
+324us 0011
+400us 0010
+408us 0000
+416us 0100
+424us 0100
+500us 0101
+508us 0101
+516us 0101
+524us 0101
+600us 0100
+608us 0110
+616us 0110
+624us 0110
+700us 0111
+708us 0111
+716us 0111
+724us 0111
+800us 0110
+808us 0100
+816us 0000
+824us 1000
+900us 1001
+908us 1001
+916us 1001
+924us 1001
+1000us 1000
+1008us 1010
+1016us 1010
+1024us 1010
+1100us 1011
+1108us 1011
+1116us 1011
+1124us 1011
+1200us 1010
+1208us 1000
+1216us 1100
+1224us 1100
+1300us 1101
+1308us 1101
+1316us 1101
+1324us 1101
+1400us 1100
+1408us 1110
+1416us 1110
+1424us 1110
+1500us 1111
+1508us 1111
+1516us 1111
+1524us 1111
+1600us 1110
+1608us 1100
+1616us 1000
+1624us 0000
[Text Area]
Section=0
Page=2
Font=Height=-15,FStyle=0,Color=#000000,Name=Courier New
Comment Color=#008000
Background Color=#FFFFFF
Len=0
[Transient]
WinBackGround Color=#FFFFFF
Title
AutoTitle=Yes
Grid Color=#808080
Grid Weight=1
Grid Pattern=Dot
Graph Background=#FFFFFF
OperPoint=True
AutoScaleRanges=True
XAxisGrids=True
YAxisGrids=True
Number of Grids X=10
Number of Grids Y=5
Num Out Write=True
Num Out Write Values=True
Num Out Delimiter=32
[APage]
Analysis=Transient
Name="Main"
[Limits]
Analysis=Transient
TRange=1.7m
TStep=0
NPts=17001
Temp=27
StateVar=Zero
RunOption=Normal
Temperature Type=Linear
Accumulate Plots=False
[WaveForm]
Analysis=Transient
Plt=1
AliasID=1
XExp=T
YExp=d(X4)
XRng=1.7e-3,0,1e-4
YRng=N/A
Options=OUTPUT,LINEARX,LINEARY
Line Color=#0000FF
Text Color=#0000FF
Rainbow=False
VFmtX=3
VFmtY=3
ScaleFactorX="None"
ScaleFactorY="None"
ScaleUnitsX="Auto"
ScaleUnitsY="Auto"
SFmtX=2
SFmtY=2
[WaveForm]
Analysis=Transient
Plt=1
AliasID=2
XExp=T
YExp=d(X3)
XRng=1.7e-3,0,1e-4
YRng=N/A
Options=OUTPUT,LINEARX,LINEARY
Line Color=#FF0000
Text Color=#FF0000
Rainbow=False
VFmtX=3
VFmtY=3
ScaleFactorX="None"
ScaleFactorY="None"
ScaleUnitsX="Auto"
ScaleUnitsY="Auto"
SFmtX=2
SFmtY=2
[WaveForm]
Analysis=Transient
Plt=1
AliasID=3
XExp=T
YExp=d(X2)
XRng=1.7e-3,0,1e-4
YRng=N/A
Options=OUTPUT,LINEARX,LINEARY
Line Color=#008000
Text Color=#008000
Rainbow=False
VFmtX=3
VFmtY=3
ScaleFactorX="None"
ScaleFactorY="None"
ScaleUnitsX="Auto"
ScaleUnitsY="Auto"
SFmtX=2
SFmtY=2
[WaveForm]
Analysis=Transient
Plt=1
AliasID=4
XExp=T
YExp=d(X1)
XRng=1.7e-3,0,1e-4
YRng=N/A
Options=OUTPUT,LINEARX,LINEARY
Line Color=#FF00FF
Text Color=#FF00FF
Rainbow=False
VFmtX=3
VFmtY=3
ScaleFactorX="None"
ScaleFactorY="None"
ScaleUnitsX="Auto"
ScaleUnitsY="Auto"
SFmtX=2
SFmtY=2
[WaveForm]
Analysis=Transient
Plt=1
AliasID=5
XExp=T
YExp=d(OUT)
XRng=1.7e-3,0,1e-4
YRng=N/A
Options=OUTPUT,LINEARX,LINEARY
Line Color=#000000
Text Color=#000000
Rainbow=False
VFmtX=3
VFmtY=3
ScaleFactorX="None"
ScaleFactorY="None"
ScaleUnitsX="Auto"
ScaleUnitsY="Auto"
SFmtX=2
SFmtY=2
[WaveForm]
Analysis=Transient
Plt=1
AliasID=6
XExp=T
YExp=d(NX1)
XRng=1.7e-3,0,1e-4
YRng=N/A
Options=OUTPUT,LINEARX,LINEARY
Line Color=#804000
Text Color=#804000
Rainbow=False
VFmtX=3
VFmtY=3
ScaleFactorX="None"
ScaleFactorY="None"
ScaleUnitsX="Auto"
ScaleUnitsY="Auto"
SFmtX=2
SFmtY=2
[WaveForm]
Analysis=Transient
Plt=1
AliasID=7
XExp=T
YExp=d(NX2)
XRng=1.7e-3,0,1e-4
YRng=N/A
Options=OUTPUT,LINEARX,LINEARY
Line Color=#008080
Text Color=#008080
Rainbow=False
VFmtX=3
VFmtY=3
ScaleFactorX="None"
ScaleFactorY="None"
ScaleUnitsX="Auto"
ScaleUnitsY="Auto"
SFmtX=2
SFmtY=2
[WaveForm]
Analysis=Transient
Plt=1
AliasID=8
XExp=T
YExp=d(A)
XRng=1.7e-3,0,1e-4
YRng=N/A
Options=OUTPUT,LINEARX,LINEARY
Line Color=#800080
Text Color=#800080
Rainbow=False
VFmtX=3
VFmtY=3
ScaleFactorX="None"
ScaleFactorY="None"
ScaleUnitsX="Auto"
ScaleUnitsY="Auto"
SFmtX=2
SFmtY=2
[WaveForm]
Analysis=Transient
Plt=1
AliasID=9
XExp=T
YExp=d(B)
XRng=1.7e-3,0,1e-4
YRng=N/A
Options=OUTPUT,LINEARX,LINEARY
Line Color=#808000
Text Color=#808000
Rainbow=False
VFmtX=3
VFmtY=3
ScaleFactorX="None"
ScaleFactorY="None"
ScaleUnitsX="Auto"
ScaleUnitsY="Auto"
SFmtX=2
SFmtY=2
[WaveForm]
Analysis=Transient
Plt=1
AliasID=10
XExp=T
YExp=d(C)
XRng=1.7e-3,0,1e-4
YRng=N/A
Options=OUTPUT,LINEARX,LINEARY
Line Color=#000080
Text Color=#000080
Rainbow=False
VFmtX=3
VFmtY=3
ScaleFactorX="None"
ScaleFactorY="None"
ScaleUnitsX="Auto"
ScaleUnitsY="Auto"
SFmtX=2
SFmtY=2
[Pane]
Analysis=Transient

View File

@@ -0,0 +1,2 @@
[LocalizedFileNames]
ËÐ2601.pdf=@ËÐ2601.pdf,0

View File

@@ -0,0 +1,38 @@
# ЛР2601, п. 3 порядка выполнения: меандр 20 кГц на выводе микроконтроллера
# Плата: ESP32-C3 Super Mini, MicroPython.
# Сигнал снимается с GPIO6 (разъём J1, контакт 8) и подаётся на вход первого инвертора.
#
# Используется аппаратный ШИМ: частота выдерживается точно
# и не зависит от скорости интерпретатора Python.
from machine import Pin, PWM
OUT_PIN = 6 # номер GPIO, при необходимости поменять
FREQ = 20_000 # 20 кГц -> период 50 мкс
pwm = PWM(Pin(OUT_PIN, Pin.OUT), freq=FREQ, duty_u16=32768) # скважность 50 %
# Программа ничего больше не делает: ШИМ работает сам по себе.
# Остановить: pwm.deinit()
# ---------------------------------------------------------------------------
# Вариант только на классе Pin (как в Приложении 3 методички).
# Частота получится НЕ ровно 20 кГц: каждая команда Python на ESP32-C3
# выполняется несколько микросекунд. Используйте, если преподаватель
# требует решение именно через Pin.on()/Pin.off().
#
# from machine import Pin
# import time
# p = Pin(OUT_PIN, Pin.OUT)
# half = 25 # полпериода 25 мкс
# t = time.ticks_us()
# while True:
# p.on()
# t = time.ticks_add(t, half)
# while time.ticks_diff(t, time.ticks_us()) > 0:
# pass
# p.off()
# t = time.ticks_add(t, half)
# while time.ticks_diff(t, time.ticks_us()) > 0:
# pass

View File

@@ -0,0 +1,49 @@
# ЛР2601, п. 22 порядка выполнения: перебор таблицы истинности 0000..1111
# с частотой 10 кГц (новый входной набор каждые 100 мкс).
# Плата: ESP32-C3 Super Mini, MicroPython.
#
# Подключение (разъём J1):
# X1 (младший разряд) -> GPIO6 (J1, конт. 8)
# X2 -> GPIO7 (J1, конт. 7)
# X3 -> GPIO8 (J1, конт. 6)
# X4 (старший разряд) -> GPIO10 (J1, конт. 4)
# GPIO20/21 не используем: это UART, через него работает консоль MicroPython.
from machine import Pin
import time
PINS = [6, 7, 8, 10] # X1, X2, X3, X4
STEP_US = 100 # 10 кГц -> 100 мкс на один набор
x = [Pin(n, Pin.OUT, value=0) for n in PINS]
SIMULTANEOUS = True # True - все 4 бита меняются одной записью в регистр
# Регистр выходов GPIO ESP32-C3 (Technical Reference Manual, глава GPIO):
GPIO_OUT_REG = 0x60004004
MASK = 0
for n in PINS:
MASK |= 1 << n
def write_code(code):
if SIMULTANEOUS:
from machine import mem32
v = mem32[GPIO_OUT_REG] & ~MASK
for i, n in enumerate(PINS):
if code >> i & 1:
v |= 1 << n
mem32[GPIO_OUT_REG] = v # все выводы переключаются одновременно
else:
for i, p in enumerate(x): # по очереди X1, X2, X3, X4 (как в Приложении 3)
p.value(code >> i & 1)
t = time.ticks_us()
code = 0
while True:
write_code(code)
code = (code + 1) & 0x0F # 0000 -> 0001 -> ... -> 1111 -> 0000
t = time.ticks_add(t, STEP_US)
while time.ticks_diff(t, time.ticks_us()) > 0:
pass

View File

@@ -0,0 +1 @@
Студент: Бояров Данила

File diff suppressed because it is too large Load Diff