Byl vydán Debian 13.5, tj. pátá opravná verze Debianu 13 s kódovým názvem Trixie a Debian 12.14, tj. čtrnáctá opravná verze Debianu 12 s kódovým názvem Bookworm. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 13 a Debianu 12 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.
CiviCRM (Wikipedie) bylo vydáno v nové verzi 6.14.0. Podrobnosti o nových funkcích a opravách najdete na release stránce. CiviCRM je robustní open-source CRM systém navržený speciálně pro neziskové organizace, spolky a občanské iniciativy. Projekt je napsán v jazyce PHP a licencován pod GNU Affero General Public License (AGPLv3). Český překlad má nyní 45 % přeložených řetězců a přibližuje se milníku 50 %. Potřebujeme vaši pomoc, abychom se dostali dál. Pokud máte chuť přispět překladem nebo korekturou, přidejte se na platformu Transifex.
Další lokální zranitelností Linuxu je ssh-keysign-pwn. Uživatel si může přečíst obsah souborů, ke kterým má právo ke čtení pouze root, například soubory s SSH klíči nebo /etc/shadow. V upstreamu již opraveno [oss-security mailing list].
Singularity (YouTube) je nejnovější otevřený film od Blender Studia. Jedná se o jejich první 4K HDR film.
Vyšla hra Život Není Krásný: Poslední Exekuce (Steam, ProtonDB). Kreslená point & click adventura ze staré školy plná černého humoru a nekorektního násilí. Vžijte se do role zpustlého exekutora Vladimíra Brehowského a projděte s ním jeho poslední pracovní den. Hra volně navazuje na sérii Život Není Krásný.
Společnost Red Hat představila Fedora Hummingbird, tj. linuxovou distribuci s nativním kontejnerovým designem určenou pro vývojáře využívající AI agenty.
Hru The Legend of Zelda: Twilight Princess od společnosti Nintendo si lze nově díky projektu Dusklight (původně Dusk) a reverznímu inženýrství zahrát i na počítačích a mobilních zařízeních. Vyžadována je kopie původní hry (textury, modely, hudba, zvukové efekty, …). Ukázka na YouTube. Projekt byl zahájen v srpnu 2020.
Byla vydána nová major verze 29.0 programovacího jazyka Erlang (Wikipedie) a související platformy OTP (Open Telecom Platform, Wikipedie). Detailní přehled novinek na GitHubu.
Po zranitelnostech Copy Fail a Dirty Frag přichází zranitelnost Fragnesia. Další lokální eskalace práv na Linuxu. Zatím v upstreamu neopravena. Přiřazeno ji bylo CVE-2026-46300.
Sovereign Tech Agency (Wikipedie) prostřednictvím svého fondu Sovereign Tech Fund podpoří KDE částkou 1 285 200 eur.
Po velmi dlouhé pauze způsobené zraněním a návalem práce jsem se konečně dostal k dokončení kapitoly věnované vývojovým prostředkům pro programovatelné logické obvody. Text opět plynule navazuje na předchozí díly, které najdete zde, zde a zde.
Implementační nástroje zahrnují syntézu, vlastní implementaci, generování programovacích souborů a další podpůrné nástroje používané pro generování pomocných souborů, konfigurování IP jader, vytváření constraints, generování implementačních skriptů a podobně. Výsledkem implementačního procesu je soubor určený pro konfiguraci programovatelného logického obvodu. Ten by měl po nakonfigurování realizovat funkci definovanou popisem použitým jako vstup pro implementaci.
Nástroje pro implementaci je možné rozdělit na front-end, back-end a ostatní podpůrné nástroje. Mezi front-end nástroje patří především syntéza a pak také různé vysokoúrovňové kompilátory a konvertory. Back-end reprezentují implementační nástroje, které překládají výstup syntézy do výsledného konfiguračního souboru. Podpůrné nástroje slouží pro pomocné úlohy související s implementací.
Pro front-end nástroje je typická poměrně dobrá a dostupná specifikace, takže není problém narazit na nástroje různých výrobců a vývojář nemusí být nezbytně závislý na nástrojích dodavatele programovatelných logických obvodů. Vstupem syntézy je například plně standardizovaný HDL a výstupem je netlist opět ve standardním souborovém formátu. Netlist smí obsahovat pouze komponenty výsledného programovatelného logického obvodu, ale ty jsou na této úrovni velmi dobře specifikovány a zdokumentovány přímo výrobcem. Nástroje pro vysokoúrovňové jazyky mají opět k dispozici přesné specifikace jak vstupního HLL, tak výstupního HDL.
Co se týče back-end nástrojů, je uživatel odkázán na výrobce programovatelné logiky. Specifikace skutečné vnitřní struktury PLD, která je pro vývoj back-end nástrojů nutná je přísně střeženým tajemstvím. Situace trochu připomíná back-end nástroje pro návrh integrovaných obvodů. Samotné nástroje jsou sice do jisté míry nezávislé na výrobci konkrétních ASIC, ale ke své funkci potřebují knihovny dodávané právě výrobcem. Kromě interní struktury používané programovatelné součástky musí back-end nástroje znát i charakterizační data obvodu.
Pomocné nástroje slouží pro podporu implementačního procesu. Velmi důležitou skupinu tvoří nástroje pro tvorbu omezujících podmínek – constraints – pro syntézu a implementaci. Tyto nástroje obvykle umožňují jednoduchou formou vyplňováním formulářů nebo pomocí grafického editoru vytvářet různé typy constraints, které pak ukládají ve formátu použitelném implementačními nástroji jako například UCF, SDC nebo XDC. Další skupinou pomocných nástrojů bývají konvertory různých souborových formátů, které slouží například pro převod netlistů z formátu EDIF do vnitřního netlistu konkrétního výrobce a podobně. V rámci implementace se často používají různé analytické a vizualizační nástroje, které usnadní analýzu výsledků implementačního procesu. Umožňují třeba grafické zobrazení výsledku syntézy ve formě schématu, generování různých implementačních statistik a logů nebo vizualizaci kompletně implementovaného projektu v programovatelném obvodu. Některé nástroje umožňují i ruční editaci výsledku implementace.
Velmi významnou skupinu implementačních nástrojů tvoří právě nástroje pro práci s IP jádry. Značná část funkce návrhu pro dnešní velká FPGA je často realizována připravenými hotovými funkčními bloky. Pro zjednodušení jejich konfigurace, parametrizace, modifikace, propojení a integrace existují různé specializované nástroje. Samozřejmě existují i nástroje usnadňující vytváření, balení a distribuci vlastních jader.
Základní nástroje pro práci s jádry umožňují konfiguraci parametrů autonomních IP jader. Výsledkem je obvykle zdrojový kód nebo netlist použitelný společně s ostatními zdroji pro syntézu a verifikaci. Tyto nástroje se používají pro přípravu často používaných běžných funkčních bloků, jako jsou například různé typy pamětí, bloky realizující aritmetické operace, různá specializovaná rozhraní a podobně. Pokud chce například vývojář použít v návrhu FIFO, stačí do projektu vložit IP jádro pro FIFO a v jeho konfiguraci vybrat šířku datových sběrnic, hloubku paměti a nakonfigurovat potřebné řídící signály. Výsledkem je pak obvykle netlist, který se může v návrhu používat jako jakýkoli jiný běžný modul.
S rostoucími možnostmi programovatelné logiky je dnes v FPGA běžné použití procesorů nebo celých procesorových systémů. Specializované nástroje umožňují sestavení a konfiguraci rozsáhlých procesorových systémů, vzájemné propojení jednotlivých bloků pomocí různých sběrnic. Kromě výstupů použitelných pro implementaci a verifikaci umožňují tyto nástroje vygenerovat výstupy pro následný vývoj software. Samozřejmostí bývá možnost společné simulace návrhu hardware a software v době, kdy ještě není k dispozici finální hardware.
Nástroje pro verifikaci návrhu a implementace programovatelné logiky zahrnují jednak klasické digitální simulátory, specifické nástroje svázané s implementačními nástroji konkrétních výrobců a pak vysoce specializované nástroje používané například pro formální verifikaci. Pro programovatelnou logiku specifickým druhem verifikačních nástrojů jsou pak ještě hardwarové nástroje určené pro ladění ve skutečném obvodu.
Digitální simulátory se používají především pro funkční ověření popisu obvodu. Simulace výsledku syntézy a implementace v případě programovatelné logiky není až na výjimky nutná. Vstupem simulátoru jsou obvykle zdrojové soubory v HDL a vlastní testovací prostředí opět v HDL. Pokud je projekt nebo jeho části vytvářen jinými prostředky, je nutné je do HDL zkonvertovat.
Testovací prostředí zvané testbench obvykle zajišťuje propojení vlastního návrhu programovatelného obvodu do celého simulačního systému, generování vstupních signálů a dat pro buzení testovaného modulu a kontrolu výstupů. Kontrola správné funkce může být zajištěna automaticky přímo testovacím prostředím. Funkci jednodušších obvodů je možné provádět například sledováním vstupních a výstupních časových průběhů a stavů jednotlivých signálů v konkrétních místech obvodu a okamžicích simulace.
Řízení průběhu simulace, kompilace vstupních souborů a podobné pomocné úlohy je možné buď ručně z prostředí simulátoru nebo pomocí simulačních skriptů. Většina digitálních simulátorů podporuje skriptování v jazyce TCL.
Digitální simulátory většinou podporují jazyky VHDL, Verilog, SystemVerilog a SystemC pro popis hardwaru a testovací prostředí. Složitější kontroly funkce, časování, posloupnosti signálů a podobně je možné realizovat pomocí assertions v některém z jazyků typu PSL, e, OpenVera, SystemVerilog Assertions. Nejčastěji jsou podporovány assertions v PSL a SystemVerilog.
Do verifikace patří i součásti implementačních nástrojů určené pro analýzu výsledků a mezivýsledků implementačního procesu. Umožňují například vizualizaci či grafické zobrazení výsledných netlistů po jednotlivých implementačních krocích ve formě schémat nebo blokových diagramů. Vývojář si tak může udělat obrázek jak skutečně vypadá hardware vygenerovaný z jeho vysokoúrovňového popisu.
Součástí integrovaných vývojových prostředí jsou dále obvykle prohlížeče usnadňující procházení a analýzu implementačních logů. Záznamy z průběhu implementace jsou většinou obrovské nepřehledné textové soubory, případně strukturované XML. Prohlížeče poskytují možnost strukturovaného prohlížení podle typu informace, specializované vyhledávání, filtrování různých druhů informací jako jsou různé chyby a varování a podobně.
Statická časová analýza je velmi významnou součástí verifikačního procesu. Pro ověření skutečné funkčnosti návrhu je na stejné významové úrovni jako například ověření funkce pomocí simulace. Každý návrh programovatelné logiky musí obsahovat kromě vlastního popisu funkce také soubor omezujících podmínek, tzv. constraints, které definují například přiřazení pinů jednotlivým vstupně-výstupním portům, správné nastavení elektrických parametrů vstupů a výstupů, a kromě jiného také definují časové poměry v obvodu. Z časových constraints je nejdůležitější definice frekvencí hodinových signálů a požadavků na časování vstupních a případně i výstupních pinů. Dále je možné a často i nutné definovat relativní časové vztahy mezi různými hodinovými doménami, případně různé speciální nároky na časování v konkrétních místech obvodu, které nejsou ze samotného funkčního popisu zřejmé.
Nástroje pro statickou časovou analýzu použijí výstup implementace, časové constraints a charakterizační data použitého programovatelného obvodu a provedou kompletní analýzu časování všech použitých synchronních elementů v celém programovatelném obvodu. Výstupní netlist obsahuje kromě propojení jednotlivých obvodových prvků i jejich konkrétní umístění na ploše čipu a použité propojovací prostředky, takže časová analýza je schopná určit zpoždění všech spojů. Díky tomu, že programovatelné logické obvody jsou od výrobců plně charakterizovány včetně přesných modelů časování, stačí pro verifikaci návrhu splnit následující tři podmínky:
Správná funkce návrhu odpovídající specifikaci ověřená funkční simulací
Všechny hodinové vstupní signály mají definované časování (constraints)
Požadavky na časování jsou ověřeny statickou časovou analýzou
Na rozdíl od plně zakázkového vývoje ASIC pak odpadají další časově náročné kroky jako jsou časové simulace po jednotlivých implementačních fázích. Díky plné charakterizaci programovatelných logických obvodů jsou časové simulace plně zastoupeny funkční simulací v kombinaci se statickou časovou analýzou.
Specifická skupina verifikačních nástrojů pro programovatelnou logiku umožňuje ladění a měření návrhu ve skutečném obvodu. Tyto nástroje sestávají ze tří částí. První je IP jádro, které se umístí do návrhu společně s vlastním projektem a zajišťuje přístup z vnějšího světa k jednotlivým signálům v návrhu. Druhou část tvoří hardware pro komunikaci mezi tímto jádrem a PC. Obvykle je tato část realizována pomocí JTAG kabelu. Třetí částí je pak software pro PC, který je schopen komunikovat s jádrem v programovatelném obvodu.
Celý výše popsaný systém se pak chová jako logický analyzátor. Uživatel si může nastavovat různé spouštěcí podmínky a provádět měření interních signálů v programovatelném obvodu. Je tak schopen ověřit výsledky simulace v reálném prostředí nebo odhalit chyby způsobené interakcí se skutečným okolím.
Tiskni
Sdílej:
Zkusil jsem přidat nějaký štítek a nefunguje mi to – ať klikám, jak klikám, nic se nestalo (ani žádná chyba v JS konsoli).