#import "@docs/bmstu:1.0.0":*
#import "@preview/tablex:0.0.8": tablex, rowspanx, colspanx, cellx
#show: student_work.with(
  caf_name: "Компьютерные системы и сети",
  faculty_name: "Информатика и системы управления",
  work_type: "лабораторной работе",
  work_num: "4",
  discipline_name: "Схемотехника",
  theme: "Синхронные одноступенчатые триггеры со статическим",
  themecol2: "и динамическим управлением записью",
  author: (group: "ИУ6-42Б", nwa: "<NAME>"),
  adviser: (nwa: "<NAME>"),
  city: "Москва",
  table_of_contents: true,
)
#let xb = $op("x", limits: #true)^"__"$
#let ab = $op("a", limits: #true)^"__"$
#let bb = $op("b", limits: #true)^"__"$
#let Rb = $op("R", limits: #true)^"___"$
#let Sb = $op("S", limits: #true)^"___"$
#let Qb = $op("Q", limits: #true)^"___"$
#let Cb = $op("C", limits: #true)^"___"$
#let Db = $op("D", limits: #true)^"___"$
#let nt(a,b) = $op((#a), limits: #true)^#b$

= Исследовать работу асинхронного RS-триггера с инверсными входами в статическом режиме

== Таблица переходов

#align(center)[
#tablex(
columns: 4,
inset: 10pt,
align: center + horizon,
$ Rb $,$ Sb $,$Q_t$,$Q_"t+1"$,
$0$,$0$,$0$,$✘$,
$0$,$0$,$1$,$✘$,
$0$,$1$,$0$,$0$,
$0$,$1$,$1$,$0$,
$1$,$0$,$0$,$1$,
$1$,$0$,$1$,$1$,
$1$,$1$,$0$,$0$,
$1$,$1$,$1$,$1$,
)]

Как видно по таблице, чтобы удерживать текущее состояние необходимо просто подавать 0 в R и S. Сигнал будет меняться, если подать логическую единицу на один из этих входов, но не на оба сразу. Если подаем 1 на R то текущее значение становится 0, если на S -- 1.

== Функция переходов

$ Q_"t+1" = Qb_t Rb S or Q_t Rb S or Q_t Rb Sb $
#pagebreak()
== Схема

#img(image("1.png", width: 100%), [Схема асинхронного RS-триггера])

= Исследовать работу синхронного RS-триггера в статическом режиме

== Таблица переходов

#align(center)[
#tablex(
columns: 5,
inset: 10pt,
align: center + horizon,
$C$, $R$, $S$, $Q_t$, $Q_"t+1"$,
$0$, $0$, $0$, $0$, $0$,
$0$, $0$, $0$, $1$, $1$,
$0$, $0$, $1$, $0$, $0$,
$0$, $0$, $1$, $1$, $1$,
$0$, $1$, $0$, $0$, $0$,
$0$, $1$, $0$, $1$, $1$,
$0$, $1$, $1$, $0$, $0$,
$0$, $1$, $1$, $1$, $1$,
$1$, $0$, $0$, $0$, $0$,
$1$, $0$, $0$, $1$, $1$,
$1$, $0$, $1$, $0$, $1$,
$1$, $0$, $1$, $1$, $1$,
$1$, $1$, $0$, $0$, $0$,
$1$, $1$, $0$, $1$, $0$,
$1$, $1$, $1$, $0$, $✘$,
$1$, $1$, $1$, $1$, $✘$,
)]

Как видно из таблицы, в данном случае ситуация схожа с заданием 1, но появляется синхронизирующий бит, если его значение равно 0, то при любых R и S триггер не изменит своего состояния.

== Функция переходов

$ Q_"t+1" = Cb Q_t or C(Qb_t Rb S or Q_t Rb S or Q_t Rb Sb) $

== Схема

#img(image("2.png", width: 100%), [Схема синхронного RS-триггера])

= Исследовать работу синхронного D триггера в статическом режиме

== Таблица переходов

#align(center)[
#tablex(
columns: 4,
inset: 10pt,
align: center + horizon,
$C$, $D$, $Q_t$, $Q_"t+1"$,
$0$, $0$, $0$, $0$, 
$0$, $0$, $1$, $1$, 
$0$, $1$, $0$, $0$, 
$0$, $1$, $1$, $1$, 
$1$, $0$, $0$, $0$, 
$1$, $0$, $1$, $0$, 
$1$, $1$, $0$, $1$, 
$1$, $1$, $1$, $1$, 
)]

Как видно из таблицы, если бит C равен 1, то значение триггера равно D, иначе сохраняется предыдущее.

== Функция переходов

$ Q_"t+1" = Cb Db Q_t or Cb D Q_t or C D Qb_t or C D Q_t = Cb Q_t or C D $
#pagebreak()
== Схема

#img(image("3.png", width: 100%), [Схема синхронного D-триггера])

= Исследовать схему синхронного D-триггера с динамическим управлением записью в статическом режиме

== Таблица переходов

#align(center)[
#tablex(
columns: 4,
inset: 10pt,
align: center + horizon,
$C$, $D$, $Q_t$, $Q_"t+1"$,
$0$, $✘$, $0$, $0$,
$0$, $✘$, $1$, $1$,
$0 arrow 1$, $1$, $✘$, $1$,
$0 arrow 1$, $0$, $✘$, $0$,
$1 arrow 0$, $✘$, $0$, $0$,
$1 arrow 0$, $✘$, $1$, $1$,
)]

C меняется динамически, если меняется в 1, то записываем значение D в триггер, если меняется на 0 значение в D не записывается.

== Схема


#img(image("7.png", width: 100%), [Схема с динамическими сигналами])
#pagebreak()
== Временная диаграмма

#img(image("6.png", width: 100%), [Временная диаграмма])

= Исследовать работу ассинхронного T-триггера

== Таблица переходов 

#align(center)[
#tablex(
columns: 5,
inset: 10pt,
align: center + horizon,
$R$, $S$, $T$, $Q_t$, $Q_"t+1"$, 
$0$, $0$, $0$, $0$, $0$, 
$0$, $0$, $0$, $1$, $1$, 
$0$, $0$, $1$, $0$, $1$, 
$0$, $0$, $1$, $1$, $0$, 
$0$, $1$, $✘$, $✘$, $1$, 
$1$, $0$, $✘$, $✘$, $0$, 
$1$, $1$, $✘$, $✘$, $✘$, 
)]

Таблица переходов похожа на таблицу обычного инвертора, но с некоторой памятью: если T равен 1, то триггер инвертирует предыдущее значение. 
#pagebreak()
== Схема

#img(image("8.png", width: 100%), [Схема T триггера])

