Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
statnice:bakalar:b0b35lsp [2025/06/01 08:11] – petrstep | statnice:bakalar:b0b35lsp [2025/06/14 13:22] (current) – [Úplná sčítačka] petrstep | ||
---|---|---|---|
Line 33: | Line 33: | ||
+ | === CMOS Invertor === | ||
+ | {{: | ||
+ | |||
+ | === CMOS NAND === | ||
+ | |||
+ | * PMOS paralelne nahore | ||
+ | * NMOS serie dole | ||
+ | {{: | ||
+ | |||
+ | === CMOS NOR === | ||
+ | |||
+ | * PMOS seriove nahore | ||
+ | * NMOS pralelne dole | ||
+ | |||
+ | {{: | ||
+ | |||
+ | === CMOS AND === | ||
+ | |||
+ | {{: | ||
+ | |||
+ | === CMOS OR === | ||
+ | |||
+ | {{: | ||
+ | |||
+ | === CMOS XOR === | ||
+ | |||
+ | {{: | ||
====== Minimalizace log. funkcí v Karnaughových mapách, teoretické zázemí, logická krychle, grayovy kódy, skupinová minimalizace. Hazardy v kombinačních obvodech. ====== | ====== Minimalizace log. funkcí v Karnaughových mapách, teoretické zázemí, logická krychle, grayovy kódy, skupinová minimalizace. Hazardy v kombinačních obvodech. ====== | ||
Line 50: | Line 77: | ||
* Vždy tak, aby se měnila pouze jedna hodnota | * Vždy tak, aby se měnila pouze jedna hodnota | ||
- | ==== Hazardy?? ==== | + | ==== Hazardy ==== |
- | | + | //GPT podle skript// |
- | + | | |
+ | * V běžných FPGA nelze hazardy zcela odstranit pouze změnou booleovského zápisu – nástroje je sice mohou potlačit, ale kvůli teplotním či výrobním variacím, různým délkám cest a LUT implementaci je riziko vždy přítomné. | ||
+ | * Pro plně spolehlivou synchronní logiku je klíčové: vzorkovat výstup kombinační s dostatečným časovým posunem (t_wp), minimalizovat rozdíly v zpoždění (fan-out, buffery), a používat pouze edge-triggered D-FF (nikoli latch). | ||
====== | ====== | ||
Line 115: | Line 143: | ||
==== Úplná sčítačka ==== | ==== Úplná sčítačka ==== | ||
- | {{: | + | {{: |
* je ze dvou Half Adderů | * je ze dvou Half Adderů | ||
* má 3 vstupy | * má 3 vstupy | ||
Line 518: | Line 546: | ||
====== | ====== | ||
+ | |||
+ | * Všechny vstupy FPGA musí mít definovanou logickou úroveň (pull-up/ | ||
+ | |||
+ | |||
+ | * Pomalé hrany filtreujeme Schmittovými vstupy či buffrujeme, synchronizujeme do hodiny, aby se vyhnuli metastabilitě | ||
+ | |||
+ | |||
+ | * Debouncing mechanických tlačítek: | ||
+ | * Hardwarový: | ||
+ | * Softwarový: | ||
+ | |||
+ | |||
+ | * Indukční zátěže (cívky, motory, relé): | ||
+ | * Flyback dioda pro DC cívky; RC snubber nebo TVS dioda pro AC/rychlé spínání. | ||
+ | |||
+ | |||
+ | * Výkonové zátěže (LED pásky, velké proudy): | ||
+ | * Oddělit výstup FPGA dedikovaným driverem (MOSFET, buffer) s ochranným RC, | ||
+ | * Řídit dI/dt (slew-rate), | ||
+ | |||
+ | |||
+ | * Fyzické (analogové) chování logického signálu na vodiči: | ||
+ | * Inertial delay: potlačení krátkých impulsů, | ||
+ | * Transport delay: čisté zpoždění na ideálním vodiči, | ||
+ | * Odrazy/ | ||
+ | * Řídit fan-out buffery a minimalizovat kapacitní zatížení kvůli zpoždění | ||
+ | * Do hodinových cest nevkládat další hradla, aby se vyhnuli clock skew | ||
+ | |||
+ | |||
+ | ====== | ||
+ | |||
+ | //Celé GPT// | ||
+ | |||
+ | === FPGA Technologie === | ||
+ | |||
+ | * SRAM-based FPGA | ||
+ | * Princip: Konfigurační buňky tvoří klasické CMOS SRAM buňky (8–12 tranzistorů na buňku). Po programování (napájecím pulzu) drží hodnotu, dokud je FPGA zapnuté, ale po vypnutí se vymažou. Řešení: externí Flash–EEPROM čip, který po zapnutí automaticky nahraje bitstream do SRAM buněk | ||
+ | * Výhody: | ||
+ | * Rychlá a neomezeně opakovatelná rekonfigurace. | ||
+ | * Velké množství LUT/CLB a embedovaných SRAM bloků (např. Cyclone IV: 3981312 bitů ve 432 blocích M9K, vs. Cyclone II: 483840 bitů ve 105 blocích M4K) . | ||
+ | * Digitální PLL pro násobení frekvencí, DSP bloky, rychlé carry-chainy aj. | ||
+ | * Relativně nízká cena (např. Cyclone II od ~$20, Cyclone IV od ~$65, rok 2022) | ||
+ | * Nevýhody: | ||
+ | * Citlivost na radiaci (ztráta konfigurace) → pro kosmické aplikace se vyrábějí verze “radiation-hardened” (umožňují vzdálené dožití softwaru). | ||
+ | * Po ztrátě napájení je nutná opětovná konfigurace (boot time). | ||
+ | |||
+ | |||
+ | * Flash-based FPGA | ||
+ | * Princip: Konfigurační buňky jsou vnitřní Flash buňky (nesmí se zaměnit s typy pro SSD). Obsah si pamatují i po vypnutí napájení. | ||
+ | * Výhody: | ||
+ | * Po zapnutí ihned naloží konfiguraci (bez externí Flash GOP). | ||
+ | * Nízká klidová spotřeba (Flash je nevolatilní). | ||
+ | * Méně citlivé na radiaci než čistě SRAM FPGA. | ||
+ | * Nevýhody: | ||
+ | * Pomalejší rekonfigurace než SRAM, ale rychlejší než antifuse. | ||
+ | * O něco vyšší náklady než čisté SRAM verze. | ||
+ | |||
+ | |||
+ | * Antifuse-based FPGA | ||
+ | * Princip: Konfigurační prvek je antifuse prvek (připomíná pojistku, ve výchozím stavu otevřený, programovacím pulzem se neprůstřelně „přepálí” a vytvoří pevný vodivý spoj) | ||
+ | * Výhody: | ||
+ | * Velmi odolné vůči radiaci (vhodné pro satelity, kosmické sondy). | ||
+ | * Jednou naprogramované, | ||
+ | * Nevýhody: | ||
+ | * Nepřekonatelně pomalá a navždy jednosměrná konfigurace – desítky minut pro programování. | ||
+ | * Nelze rekonfigurovat v cílovém systému (vyžaduje speciální napěťové pulzy, nutné předem otestovat). | ||
+ | |||
+ | |||
+ | == Struktura SRAM pamětí v FPGA == | ||
+ | |||
+ | * Paměťové bloky (M4K / M9K) | ||
+ | * Každý blok je krokovatelný na různé šířky a hloubky: | ||
+ | * Cyclone II: M4K bloky (4 kbit + 512 paritních) → lze použít například jako 4 kb × 1, 2 kb × 2, 512 B × 8, apod. . | ||
+ | * Cyclone IV: M9K bloky (8 kbit + 1024 paritních) → větší kapacita a širší vnitřní sběrnice. | ||
+ | * Uvnitř: statická CMOS SRAM matice, každý bit uložen v buketě CMOS tranzistorů; | ||
+ | |||
+ | |||
+ | * Jednoportová (Single-Port) SRAM | ||
+ | * Má jednu adresní sběrnici, jedno data‐in a jedno data‐out, a jeden řídicí vstup např. „Write Enable (WE)“ + hodinový vstup. | ||
+ | * Operace: | ||
+ | * Čtení: Adresa se na chvíli drží konstantní (v registru), po ~1–2 CLK se na datovou sběrnici objeví obsah. | ||
+ | * Zápis: Při aktivním WE se během jednoho cyklu do vybrané buňky zapíše data. | ||
+ | * Výhoda: Jednoduše se postaví, má nižší spotřebu a menší plochu. | ||
+ | * Nevýhoda: Nelze současně číst a zapisovat; pokud se během jednoho taktu provádí zápis, čtení je buď blokováno, nebo vrací předchozí data. | ||
+ | |||
+ | |||
+ | |||
+ | * Dvouportová (Dual-Port) SRAM | ||
+ | * Obsahuje dvě nezávislé adresní sběrnice (adresy A, B), každou se samostatným datovým vstupem, výstupem a hodinou. | ||
+ | * Operace: | ||
+ | * Obě strany (porty) mohou libovolně číst či psát současně. | ||
+ | * Pokud se snaží oba porty přistoupit k téže buňce zároveň, je definováno, | ||
+ | * Výhoda: Velká flexibilita – může sloužit pro dvoukanálové (FIFO) bufferování mezi dvěma hodinovými doménami. | ||
+ | * Nevýhoda: Dvojnásobná logika k řízení přístupu, větší spotřeba a plocha. | ||
+ | |||
+ | |||
+ | * Víceportové (Multi-Port) SRAM | ||
+ | * Některé FPGA umožňují 4portové či 8portové bloky (především uvnitř vestavěných procesorů). Každý port samostatně může číst či zapisovat. Softwarově se konfiguruje, |