Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
statnice:bakalar:b0b35lsp [2026/06/02 07:14] – [Ochrana vstupů] mates1nstatnice:bakalar:b0b35lsp [2026/06/02 08:46] (current) – [Popis FSM] mates1n
Line 406: Line 406:
 {{:statnice:bakalar:screenshot_from_2025-05-31_19-28-26.png?350|Mealy a Moore ilustrace}} {{:statnice:bakalar:screenshot_from_2025-05-31_19-28-26.png?350|Mealy a Moore ilustrace}}
 === Popis FSM  === === Popis FSM  ===
-Používají se všude, kde systém závisí na sekvenci událostí v čase, ne jen na aktuálním vstupu.+Používají se všude, kde systém závisí na sekvenci událostí v čase, ne jen na aktuálním vstupu. 
  
 == Moore == == Moore ==
-**Výstupy nezávisí na vstupech**, tj. **výstupy** se efektivně generují ze **stavu**, v němž se právě nachází automat. Má více stavů a stabilní výstup, je pomalejší.+**Výstupy** se generují ze **stavu**, v němž se právě nachází automat. Výstup se změní, pokud se změní stav. Má více stavů a stabilní výstup, je pomalejší. 
  
 == Mealy == == Mealy ==
-**Výstupy** se generují **ze současného stavu a okamžitého vstupu**, tj. **výstupy** se tvoří v době přípravy automatu na **přechod** z jednoho stavu do druhého. Má méně stavů, je rychlejší, ale je citlivější. +**Výstupy** se generují **ze současného stavu a okamžitého vstupu**, tj. **výstupy** se tvoří v době přípravy automatu na **přechod** z jednoho stavu do druhého (výstup reaguje na změnu vstupu okamžitě). Má méně stavů, je rychlejší, ale je citlivější. 
  
  
Line 549: Line 549:
   * **Phase/Frequency Detector (PFD)** – porovnává fázi a frekvenci referenčního a zpětnovazebního signálu..   * **Phase/Frequency Detector (PFD)** – porovnává fázi a frekvenci referenčního a zpětnovazebního signálu..
   * **Charge Pump (CP)** – generuje řídicí proudové impulsy.   * **Charge Pump (CP)** – generuje řídicí proudové impulsy.
-  * **Loop Filter (LPF)** – integruje proudy → hladké napětí ($V_{tune}$).+  * **Low Pass Filter (LPF)** – integruje proudy → hladké napětí ($V_{tune}$).
   * **VCO (Voltage-Controlled Oscillator)** – oscilátor řízený buď napětím ($V_{tune}$), nebo digitálně.   * **VCO (Voltage-Controlled Oscillator)** – oscilátor řízený buď napětím ($V_{tune}$), nebo digitálně.
   * **Dividers** $N$ (u reference) a $M$ (ve zpětné vazbě).   * **Dividers** $N$ (u reference) a $M$ (ve zpětné vazbě).
Line 574: Line 574:
 Plovoucí vstup (floating input) vede k náhodnému rušení a vyššímu odběru proudu -> nepoužívané vstupy se **nesmí nechávat nezapojené**. Plovoucí vstup (floating input) vede k náhodnému rušení a vyššímu odběru proudu -> nepoužívané vstupy se **nesmí nechávat nezapojené**.
 === Práce s pomalými náběžnými hranami === === Práce s pomalými náběžnými hranami ===
-Pomalé změny signálu mohou způsobit opakované překročení logického prahu, vznik metastability, nebo zvýšený proud ve vstupních tranzistorech.+**Pomalé změny signálu** mohou způsobit opakované **překročení logického prahu****vznik metastability**, nebo **zvýšený proud** ve vstupních tranzistorech.
  
-Filtrujeme je buď Schmittovými vstupy či bufferujeme, synchronizujeme do hodin pomocí flip-flopů, aby se vyhnuli metastabilitě.+Filtrujeme je buď **Schmittovými vstupy** či **bufferujeme****synchronizujeme do hodin** pomocí flip-flopů, aby se vyhnuli metastabilitě.
  
 +
 +Schmittův vstup - vstup s hysterezí - má dva napěťové prahy, mezi nimi "šedá zóna", kde nedochází ke změně logické hodnoty (tj. $V_{in} < V_{th-} \implies 0, V_{in} > V_{th+} \implies 1$). 
 === Debouncing === === Debouncing ===
  
Line 583: Line 585:
  
 Dají se ošetřit dvěma způsoby: Dají se ošetřit dvěma způsoby:
-  * Hardwarově: RC článek + Schmitt/invertor (τ ≈ 1 ms) potlačí zákmitové pulsy (zahladí křivku).  +  * **Hardwarově**: RC článek + Schmitt/invertor (τ ≈ 1 ms) potlačí zákmitové pulsy (zahladí křivku).  
-  * Softwarově: ve FPGA čítačový filtr nebo FSM se vzorkováním po definované době -> změna je přijata až po dostatečně dlouhé době.+  * **Softwarově**: ve FPGA čítačový filtr nebo FSM se vzorkováním po definované době -> změna je přijata až po dostatečně dlouhé době.
  
 ===Chránění výstupů se zátěží === ===Chránění výstupů se zátěží ===
Line 602: Line 604:
  
 == Důležité jevy == == Důležité jevy ==
-  * Propagation delay – konečné zpoždění šíření signálu, +  * **Propagation delay** – konečné zpoždění šíření signálu, 
-  * Inertial delay – krátké impulsy se nemusí přenést, +  * **Inertial delay** – krátké impulsy se nemusí přenést, 
-  * Transport delay – ideální čisté zpoždění, +  * **Transport delay** – ideální čisté zpoždění, 
-  * Odrazy (reflections) – vznikají při nepřizpůsobené impedanci +  * **Odrazy** (reflections) – vznikají při nepřizpůsobené impedanci 
-  * Jitter – časové kolísání hran signálu, +  * **Jitter** – časové kolísání hran signálu, 
-  * Crosstalk – rušení mezi sousedními vodiči - nutnost impedance‐match a krátké trasy.+  * **Crosstalk** – rušení mezi sousedními vodiči - nutnost impedance‐match a krátké trasy. 
 == Pravidla návrhu == == Pravidla návrhu ==
   * Řídit fan-out buffery a minimalizovat kapacitní zatížení kvůli zpoždění    * Řídit fan-out buffery a minimalizovat kapacitní zatížení kvůli zpoždění 
Line 616: Line 619:
  
 === FPGA Technologie === === FPGA Technologie ===
-== SRAM-based FPGA== +== SRAM-based FPGA - Volatile== 
-  * 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 +  * 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** (volatilní) 
 +  * Řešení: externí Flash–EEPROM čip, který po zapnutí automaticky nahraje bitstream do SRAM buněk 
  
 ^Výhody^Nevýhody^ ^Výhody^Nevýhody^
Line 626: Line 630:
  
  
-== Flash-based FPGA== +== Flash-based FPGA - Non-volatile== 
-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í.+Princip: Konfigurační buňky jsou vnitřní **Flash** buňky (NAND nebo NOR). Obsah si pamatují i po vypnutí napájení (nevolatilní) 
 + 
 +  * NOR flash - přístup k jednotlivým bytům/slovům (tj. random access) - vhodná pro firmware/boot 
 +  * NAND flash - přístup k blokům/stránkám - vhodná pro větší objem dat
  
 ^Výhody^Nevýhody^ ^Výhody^Nevýhody^
Line 635: Line 642:
 | Vyšší odolnost proti částečné radiaci než SRAM FPGA. | Omezený počet přepisovacích cyklů Flash buněk. | | Vyšší odolnost proti částečné radiaci než SRAM FPGA. | Omezený počet přepisovacích cyklů Flash buněk. |
  
-== Antifuse-based FPGA== +== Antifuse-based FPGA - ROM== 
-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) +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^Nevýhody^ ^Výhody^Nevýhody^
Line 650: Line 657:
   * Paměťové bloky (M4K / M9K)   * Paměťové bloky (M4K / M9K)
   * Každý blok je krokovatelný na různé šířky a hloubky:   * 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 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. +    * 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ů; při změně adresy se data objeví na výstupu s typickým zpožděním ~1–2 cyklů CLK, proto se doporučuje přidat i výstupní registr (pipeline) pro zajištění správného časování čtení .+  * Uvnitř: statická CMOS SRAM matice, každý bit uložen v buketě CMOS tranzistorů; při změně adresy se data objeví na výstupu s typickým zpožděním ~1–2 cyklů  CLK, proto se doporučuje přidat i výstupní registr (pipeline) pro zajištění správného časování čtení. 
 +    * Používá DFF
  
 ==Jednoportová (Single-Port) SRAM== ==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.+Má **jednu adresní sběrnici**, jedno data‐in a jedno data‐out, a jeden řídicí vstup např. „Write Enable (WE)“ + hodinový vstup.
  
 Operace: Operace:
Line 668: Line 676:
  
 ==Dvouportová (Dual-Port) SRAM== ==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.+Obsahuje **dvě nezávislé adresní sběrnice** (adresy A, B), každou se samostatným datovým vstupem, výstupem a hodinou.
  
 Operace: Operace:
   * Obě strany (porty) mohou libovolně číst či psát současně.   * 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, který port má prioritu (typicky „write first“ nebo „read first“).+  * Pokud se snaží oba porty přistoupit k téže buňce zároveň, je definováno, který **port má prioritu** (typicky „write first“ nebo „read first“).
  
 ^Výhody^Nevýhody^ ^Výhody^Nevýhody^
Navigation

Playground

QR Code
QR Code statnice:bakalar:b0b35lsp (generated for current page)