Logické obvody

Booleova algebra, Booleovské funkce a vazba na kombinační obvody.

Booleova algebra je binární algebra (má jen dvě konstanty 0 a 1) a využívá tři základní operace:
  • Negace - NOT
  • Logický součin - AND
  • Logický součet - OR
Pomocí Booleovy algebry můžeme minimalizovat logické funkce dle daných zákonů a pravidel:
  • Komutativní: a + b = b + a
  • Asociativní: a + (b + c) = (a + b) + c
  • Distributivní: a x (b + c) = (a x b) + (a x c)
  • Indepotentní:
    • a + a = a
    • a x a = a
    • -----------
    • a + 1 = 1
    • a x 1 = a
    • -----------
    • a + 0 = a
    • a x 0 = 0
Pro vyjádření pravdivostních hodnot logických funkcí existuje několik metod.
  • Rovnice / předpis funkcí
    • P = a x b x c
    • P nabude stavu log 1 když budou všechny proměné (a,b,c) ve stavu log 1
  • Pravdivostní tabulka
  • Karnaughova mapa
    • Grafický zápis pravdivostní tabulky, kde každému řádku odpovídá nějaké políčko (2^N políček, kde N je pořet proměných)

Zobrazování celých čísel a odpovídající aritmetika (dvojkový doplněk, kód s posunutou nulou (offset binary), BCD kód.

  • Celá čísla (Z) se skládají z kladných i záporných čísel, včetně 0.
  • Problém tedy je pomocí bitů vyjádřit jak kladná tak záporná čísla -> bit s největší váhou (most left) tedy označuje jestli se jedná o kladné číslo (0) nebo o záporné (1).
  • Nevýhoda je, že máme dva stavy i pro nulu, záporná a kladná nula.
  • Komplikuje aritmetické operace -> jsou potřeba odlišné algoritmy pro kladná a záporná čísla
  • Tato metoda se nazývá Přímý kód
Dvojkový doplněk
  • Dvojkový doplňkový kód je nejrozšířenějším způsobem reprezentace celých čísel se znaménkem v počítači.
  • Způsob kódování celých čísel tak, že ALU používá stejné aritmetické algoritmy pro kladné/záporné čísla, ale jinak je čte.
  • Odstraňuje problém s kladnou a zápornou nulou
  • Odečítání se realizuje jako: první číslo + dvojkový doplněk druhého čísla
  • Při použití dvojkového doplňku se opačné číslo získá tak, že se znegují všechny bity čísla a k výsledku se přičte jednička
  • Příklad:
    • 0111 nebo-li číslo 7
    • provedeme negaci bitů: 1000
    • Přičteme 1: 1001 a máme -7
Kód s posunutou nulou (offset binary)
  • k číslu připočítáváme nějakou známou konstantu kterou si stanovíme.
  • většinou se jedná o konstantu v půlce intervalu. Např. pro 8bitové čísla, která mohou nabývat 256 hodnot, zvolíme hodnotu 128 (10000000).
  • K čislu, které pak chceme znázornit přičteme stanovenou konstantu.
  • Kladné čísla pak mají na začátku 0 a záporné 1. (naopak než přímý kod!, vyplývá to z výpočtu)
  • Nevýhodou tohoto zápisu je, že kladná čísla se liší od bezznaménkové reprezentace čísel.
Binary Coded Decimal (BCD) kód
  • způsob kódování celých čísel s využitím pouze desítkových číslic (0-9) v jednom nibblu (4bity)
  • existuje 2^4(16) kombinací nibblu, a desítkových číslic je jen deset, je šest kombinací nevyužito --> neúspornéééé
  • Příklad: Číslo 29 se pomocí BCD kóduje jako "0010 1001", každá čtveřice bitů odpovídá jedné decimální číslici.
  • BCD is very common in electronic systems where a numeric value is to be displayed, especially in systems consisting solely of digital logic, and not containing a microprocessor.

Zobrazení čísel s pevnou řádovou čárkou, aritmetika.

  • To samé co výše.

Zobrazení čísel s pohyblivou řádovou čárkou (IEEE 754-2008, binární a decimální základ), aritmetika.

  • Pro zobrazení velkých nebo desetinných čísel.
  • X = S M*B^E (-5.97 x 10^47)
    • S je znaménko
    • M je mantisa (část za desetinnou čárkou)
    • B je základ
    • E je exponent
  • Lze zobrazit v několika přesnostech
    • Jednoduchá (32bitů)
    • Dvojnásobná (64bitů)
    • Rozšířená (80bitů)
  • Standard IEEE 754-2008 rozšířil tyto přesnosti ještě o čísla s poloviční a čtyřnásobnou přesností

Kódování znaků, ASCII, Unicode

ASCII
  • Tabulka, která definuje znaky anglické abecedy a další znaky
  • 7bitová, tzn 2^7 (128) znaků.
  • Dle potřeby rozšíření na 8bitů (256znaků) pro další národy než jen Amíky. Prvních 128 bitů je shodných s ASCII a zbytek doplněn o extra. Pro češtinu Windows-1250 nebo ISO 8859-2
  • Tl;dr vznikl bordel a chaos, proto Unicode
Unicode
  • Sjednocená tabulka všech abeced různých jazyků
  • V současnosti přes 100.000 znaků, možnost až 1 114 112 znaků do budoucna.
  • Verze UTF-8, UTF-16, UTF-32, podle počtu bitů sloužícím k zakodování znaku (je to však velikost minimální, některé znaky mohou být kódovány i vyšším počtem bitů.)
  • Výhoda: obsahuje všechny znaky
  • Nevýhoda: větší velikost a náročnost kodování

Automat s konečným počtem stavů, Moore a Mealy automat.

Automat s konečným počtem stavů
  • Nebo-li DFA --> UTI
Moore
  • Výstup se projeví až po přechodu, tedy v dalším stavu.
Mealy
  • Výstup není ve stavu ale při přechodu na další stav.
  • Díky tomu často vyžaduje méně stavů.