lab1
12
config/utils.typ
Normal 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]),
|
||||
)
|
||||
@@ -1,12 +1,13 @@
|
||||
#let student_name = "Иванов И.И."
|
||||
#let group = "ФФФ1234"
|
||||
#let teacher_name = "Александров А.А."
|
||||
#import "utils.typ": fill-in
|
||||
|
||||
#let student_name = "Бояров Данила"
|
||||
#let group = fill-in[группа]
|
||||
#let teacher_name = fill-in[И.О. Фамилия]
|
||||
#let teacher_grade = "старший преподаватель"
|
||||
|
||||
#let department = "«Теории электрических цепей»"
|
||||
#let faculty = "того самого"
|
||||
|
||||
#let lab_num = 42069
|
||||
#let discipline = "сложной"
|
||||
#let theme = "Исследование чего-то там"
|
||||
#let department = "«радиооборудования и схемотехники»"
|
||||
#let faculty = fill-in[факультет]
|
||||
|
||||
#let lab_num = 2601
|
||||
#let discipline = "«Цифровая схемотехника»"
|
||||
#let theme = "«Базовые логические элементы»"
|
||||
BIN
img/mcu-tr.png
Normal file
|
After Width: | Height: | Size: 31 KiB |
BIN
img/nand-sch.png
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
img/nand-tr.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
img/nor-sch.png
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
img/nor-tr.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
img/sdnf-sch.png
Normal file
|
After Width: | Height: | Size: 42 KiB |
BIN
img/sdnf-tr.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
19
main.typ
@@ -16,9 +16,25 @@
|
||||
}
|
||||
)
|
||||
#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 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 => {
|
||||
it
|
||||
par(first-line-indent: 1.25cm)[#text()[]]
|
||||
@@ -29,7 +45,8 @@
|
||||
#pagebreak()
|
||||
|
||||
#outline(
|
||||
title: [Содержание]
|
||||
title: [Содержание],
|
||||
depth: 1,
|
||||
)
|
||||
|
||||
#pagebreak()
|
||||
|
||||
@@ -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).
|
||||
@@ -32,13 +32,15 @@
|
||||
#block[
|
||||
#set align(left)
|
||||
|
||||
Выполнил: студент группы #group факультета #faculty #h(1fr) #student_name \
|
||||
Проверил: #teacher_grade #h(1fr) #teacher_name
|
||||
Выполнил: студент группы #group факультета #faculty \
|
||||
#h(1fr) #student_name \
|
||||
Проверил: #teacher_grade \
|
||||
#h(1fr) #teacher_name
|
||||
]
|
||||
|
||||
#v(1fr)
|
||||
|
||||
#block[
|
||||
Москва 2025г.
|
||||
Москва 2026г.
|
||||
]
|
||||
]
|
||||
|
||||
757
raw-data/лаба-по-схемачу/MicroCap/LR2601_1_SDNF_primitives.cir
Normal 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
|
||||
|
||||
702
raw-data/лаба-по-схемачу/MicroCap/LR2601_2_min_7400_NAND.cir
Normal 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
|
||||
|
||||
702
raw-data/лаба-по-схемачу/MicroCap/LR2601_3_min_7402_NOR.cir
Normal 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
|
||||
|
||||
763
raw-data/лаба-по-схемачу/MicroCap/LR2601_4_7400_MCU_seq.cir
Normal 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
|
||||
|
||||
2
raw-data/лаба-по-схемачу/desktop.ini
Normal file
@@ -0,0 +1,2 @@
|
||||
[LocalizedFileNames]
|
||||
ËÐ2601.pdf=@ËÐ2601.pdf,0
|
||||
38
raw-data/лаба-по-схемачу/micropython/main_20kHz.py
Normal 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
|
||||
49
raw-data/лаба-по-схемачу/micropython/main_truth_table.py
Normal 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
|
||||
1
raw-data/лаба-по-схемачу/notes.txt
Normal file
@@ -0,0 +1 @@
|
||||
Студент: Бояров Данила
|
||||