Byly zpracovány a na YouTube zveřejněny videozáznamy jednotlivých přednášek z letošního Installfestu.
Během akce Arduino Days 2026 byl publikován Arduino Open Source Report 2025 (pdf) a oznámeno 7 nových produktů kompatibilních s deskou UNO Q (Arduino USB-C Power Supply, USB-C Cable, USB-C Hub, UNO Media Carrier, UNO Breakout Carrier, Bug Hopper, Modulino LED Matrix).
Google v pátek spustil v Česku Vyhledávání Live. Tato novinka umožňuje lidem vést plynulou konverzaci s vyhledávačem v češtině. A to prostřednictvím hlasu, nebo prostřednictvím toho, na co ukážou svým fotoaparátem či kamerou v mobilu. Rozšíření této multimodální funkce je možné díky nasazení Gemini 3.1 Flash Live, nového hlasového a audio modelu, který je od základu vícejazyčný, takže umožňuje lidem po celém světě mluvit na vyhledávač přirozeně a v jazyce, který je jim nejbližší.
Jsongrep je open-source nástroj, který efektivně prohledává JSON dokumenty (editovat je neumí). Kompiluje regulérní jazyk dotazu do podoby deterministického konečného automatu (DFA), díky čemuž prochází strom JSON dokumentu pouze jednou a je v tom tedy rychlejší než jiné nástroje jako jsou například jq, JMESPath nebo jql. Jsongrep je napsaný v programovacím jazyce Rust, zdrojový kód je dostupný na GitHubu.
O víkendu probíhá v Praze na Karlově náměstí 13 konference Installfest 2026. Na programu je celá řada zajímavých přednášek a workshopů. Vstup na konferenci je zcela zdarma, bez nutnosti registrace. Přednášky lze sledovat i online na YouTube.
Mozilla a společnost Mila oznámily strategické partnerství za účelem rozvoje open source a suverénní AI. Cílem je ukázat, že open source AI může konkurovat uzavřeným systémům. Obě organizace chtějí posílit technologickou suverenitu a snížit závislost na hrstce velkých technologických firem.
Adam Rice předvedl, že pomocí DNS lze distribuovat a spustit kompletní hru DOOM. Rozdělil WAD soubory a binárky do téměř 2000 DNS záznamů v Cloudflare zóně (jeden TXT záznam v DNS může nést okolo 2000 znaků textu). Ty pak stáhl PowerShellem, dekomprimoval a spustil přímo v paměti počítače bez nutnosti zápisu na disk, což prakticky dokazuje, že DNS může sloužit jako distribuované úložiště dat a možný kanál pro načítání kódu. Repozitář projektu je na GitHubu.
Dnes a zítra probíhají Arduino Days 2026. Na programu je řada zajímavých přednášek. Sledovat je lze od 17:00 na YouTube. Zúčastnit se lze i lokálních akcí. Dnes v Poličce v městské knihovně a zítra v Praze na Matfyzu.
Byla vydána beta verze Ubuntu 26.04 LTS s kódovým názvem Resolute Raccoon. Přehled novinek v poznámkách k vydání. Dle plánu by Ubuntu 26.04 LTS mělo vyjít 23. dubna 2026.
Byla vydána aktualizována Příručka pro začínající wikipedisty a wikipedistky (pdf).
Prozatím lze všechny příkazy, které jsme si ukazovali, zařadit mezi tzv. souběžné příkazy - všechny se provádí najednou bez ohledu na pořadí. V obvodové realizaci to ukazuje na paralelní obvody. Pomocí procesu můžeme použít příkazy sekvenční, kde naopak pořadí příkazů hraje důležitou roli. Proces sám o sobě je jeden souběžný příkaz.
Sekvenční zpracování příkazů v procesu se řídí následujícími pravidly:
Proces můžeme také chápat jako myšlenkovou přípravu na vytvoření
signálů. Nejlepší bude ukázat si činnost procesu na příkladu.
Předpokládejme dvě různé architektury k entitě example_1
(deklaraci entity neuvádím), která má pouze jeden výstupní signál
O:
ARCHITECTURE arch_1 OF example_1 IS BEGIN O <= '1'; O <= '0'; END arch_1;
ARCHITECTURE arch_2 OF example_1 IS
BEGIN
p_1: process
begin
O <= '1';
O <= '0';
end process;
END arch_2;
V prvním případě se snažíme do výstupního signálu O
napojit současně dvě hodnoty - log. '1' a log. '0'. To by mohlo mít v
reálném obvodu katastrofální následky. Pokud například uvažujeme logiku,
kde log. '1' znamená připojení na +5V a log. '0' připojení na zem,
zapisujeme tímto kódem zkrat. Ve druhém případě se ale příkazy
zpracovávají sekvenčně. Druhý přiřazovací příkaz "přebije" první a na
výstupu O bude '0';
V procesu není možné použít souběžný příkaz when, místo
něj můžeme aplikovat sekvenční příkaz if. Uvažujme příklad
z minulého
dílu, kde jsme vytvořili multiplexor pomocí příkazu
O <= I1 when A = '0' else I2
V procesu by vypadal zápis tohoto multiplexoru následovně:
p_1: process (I1, I2, A)
begin
if A = '0' then
O <= I1;
else
O <= I2;
end if;
end process;

Zaměřme se nyní více na syntaxi procesu. Před klíčovým slovem
process je návěští, v našem případě p_1. To je
důležité pro případnou identifikaci procesu v průběhu simulace nebo
syntézy. Za klíčovým slovem process je tzv. sensitivity
list. V něm říkáme simulátoru, kdy má proces spustit a obnovit hodnoty
výstupních signálů. Tento výpočet provede simulátor právě při změně
libovolného signálu obsaženého v sensitivity listu. V praxi to znamená, že
do sensitivity listu je třeba zapsat všechny signály, které do procesu
vstupují. V našem případě jsou to signály I1, I2
a A.
Vezměme nyní následující proces:
p_1: process (I1, I2, A)
begin
O <= I2;
if A = '0' then
O <= I1;
end if;
end process;
Tento zápis je zcela identický s předchozím procesem. Nejdříve do
výstupního signálu O přiřazujeme signál I2, ale
v případě, že je hodnota signálu A '0', dostane se ke slovu
přiřazovací příkaz O <= I1. Výsledek je tedy
opět stejný multiplexor.
Nyní uděláme malou odbočku k tomu, jakým způsobem psát design. Budeme
hovořit o synchronním designu, tzn. v obvodu se vyskytuje jediný hodinový
signál clk. Dnešním standardem je jasně rozdělit design na
registry (paměťové prvky, realizovatelné např. klopným obvodem D) a
kombinační logiku (prvky AND, OR, NOT...) bez cyklů. Registry jsou všechny
taktovány na stejnou (např. náběžnou) hranu clk. V okamžiku
této náběžné hrany se přepíše signál ze vstupu registru na výstup.
Následuje cesta signálu přes kombinační logiku, než dorazí na vstup
dalšího registru. Jakmile všechny signály projdou přes logiku a ustálí se,
může přijít další náběžná hrana hodin a celý proces se opakuje.

Z toho vyplývá i maximální frekvence hodin. Jejich perioda musí být minimálně taková, aby se signál ustálil i na nejdelší cestě v celém obvodu. Pokud tedy taktujeme např. procesor na 1600 MHz, znamená to, že nejdelší cestou (mezi dvěma registry spojenými pouze logikou) v jeho designu projde signál za méně než 0,625 nanosekundy.
Podívejme se nyní na následující proces:
p_1: process (I1, I2, A)
begin
if A = '0' then
O <= I1;
end if;
end process;
Pokud má signál A hodnotu '0', bude na výstupu
I1. Co ale když bude A '1'? To potom znamená
zachovat na výstupu aktuální hodnotu. A zde se dostáváme k jádru problému.
K zachování hodnoty potřebujeme paměťový prvek. V tomto konkrétním případě
bude tvořen zpětnou vazbou, např. takto:

A právě tato zpětná vazba (latch) není přípustná. Proč je vlastně zpětná vazba v logice problém? Např. může zmást syntezátor při počítání délky cesty v obvodu. Obvod potom může fungovat, ale také nemusí (což většinou nastane v nejméně vhodnou dobu).
Jaký z toho plyne závěr? V příkazu if (pokud proces
netvoří registr, ukážeme si příště) je třeba vždy pokrýt všechny stavy
vstupních signálů pro výstupní signály. Jinými slovy, každý výstupní
signál musí mít jasně definovanou hodnotu pouze v závislosti na vstupních
signálech. Podobný problém může nastat i u souběžného signálu
when - tam je také vhodné vždy uvádět klauzuli
else.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej: