abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 18:55 | Nová verze

    Bylo vydáno Eclipse IDE 2025-12 aneb Eclipse 4.38. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.

    Ladislav Hagara | Komentářů: 0
    dnes 17:44 | Nová verze

    U příležitosti oslav osmi let prací na debianím balíčku vyšlo GPXSee 15.6. Nová verze přináší především podporu pro geotagované MP4 soubory, včetně GoPro videí. Kdo nechce čekat, až nová verze dorazí do jeho distribuce, nalezne zdrojové kódy na GitHubu.

    Martin Tůma | Komentářů: 1
    dnes 09:22 | Nová verze

    Monado, tj. multiplatformní open source implementace standardu OpenXR specifikujícího přístup k platformám a zařízením pro XR, tj. platformám a zařízením pro virtuální realitu (VR) a rozšířenou realitu (AR), bylo vydáno ve verzi 25.1.0. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    dnes 02:44 | Nová verze

    Byla vydána listopadová aktualizace aneb nová verze 1.107 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.107 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 0
    včera 19:22 | Zajímavý článek

    Pornhub zveřejnil podrobné statistiky za rok 2025. V části věnované zařízením a technologiím se lze dočíst, že 87 % přenášených dat směrovalo na telefony, 2 % na tablety a 11 % na desktopy. Operační systém Linux běžel na 6,3 % desktopů. O 22,4 % více než před rokem. Firefox má na desktopu 8,4 % podíl.

    Ladislav Hagara | Komentářů: 7
    včera 13:11 | Pozvánky

    Chcete vědět, co se odehrálo ve světě techniky za poslední měsíc? Nebo si popovídat o tom, co zrovna bastlíte? Pak dorazte na prosincovou Virtuální Bastlírnu s mikrofonem a kamerou, nalijte si něco k pití a ponořte se s strahovskými bastlíři do diskuze u virtuálního piva o technice i všem možném okolo. O čem budou tentokrát strahováci referovat? Téměř každý už si všiml významného zdražení RAM a SSD, jsou zde ale i příjemnější zprávy. Průša uvádí

    … více »
    bkralik | Komentářů: 0
    včera 12:55 | Bezpečnostní upozornění

    Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) podporuje vyjádření partnerů ze Spojeného království, kteří upozorňují na škodlivé aktivity společností Anxun Information Technology (též „I-S00N“) (pdf) a Beijing Integrity Technology (též „Integrity Tech“) působících v kyberprostoru a sídlících v Čínské lidové republice (ČLR). Tyto společnosti jsou součástí komplexního ekosystému soukromých subjektů v ČLR,

    … více »
    Ladislav Hagara | Komentářů: 12
    včera 04:55 | IT novinky

    Společnost Pebble představila (YouTube) prsten s tlačítkem a mikrofonem Pebble Index 01 pro rychlé nahrávání hlasových poznámek. Prsten lze předobjednat za 75 dolarů.

    Ladislav Hagara | Komentářů: 8
    včera 04:22 | IT novinky

    Společnost JetBrains v listopadu 2021 představila nové IDE s názvem Fleet. Tento týden oznámila jeho konec. Od 22. prosince 2025 již nebude možné Fleet stáhnout.

    Ladislav Hagara | Komentářů: 3
    9.12. 21:22 | Nová verze

    Byl vydán Mozilla Firefox 146.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 146 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    Jaké řešení používáte k vývoji / práci?
     (34%)
     (48%)
     (19%)
     (17%)
     (22%)
     (15%)
     (24%)
     (15%)
     (17%)
    Celkem 456 hlasů
     Komentářů: 19, poslední dnes 20:04
    Rozcestník

    Jak se píše procesor - 3 (Procesy)

    26. 8. 2005 | Luděk Crha | Programování | 7757×

    Minule jsme navrhli jednoduchou ALU a ukázali si, jak ji odsimulovat. Dnešní článek bude o procesech.

    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:

    1. Pokud jednomu signálu přiřazujeme různé hodnoty, předchozí příkazy jsou přepsány posledním z nich.
    2. Pokud signál využíváme jako vstup i výstup, jeho hodnota se mění až po ukončení procesu

    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;

    mux

    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.

    Jak psát design

    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.

    reg_log

    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:

    latch

    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.

           

    Hodnocení: 92 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    26.8.2005 08:43 Robert
    Rozbalit Rozbalit vše Obrazky
    Nemate neco s obrazkama, 1. a 3. nelze zobrazit (FF ani IE)?
    26.8.2005 09:21 Robert Krátký | skóre: 94 | blog: Robertův bloček
    Rozbalit Rozbalit vše Re: Obrazky
    Mohl bys prosím upřesnit, co znamená "nelze zobrazit"? Právě jsem vyzkoušel jak FF, tak IE a v obou to bylo bez problému... Co se stane, když zkusíš zobrazit tohle: http://www.abclinuxu.cz/images/clanky/crha/vhdl3-latch.png?
    29.8.2005 09:37 Robert
    Rozbalit Rozbalit vše Re: Obrazky
    No prave ze se nezobrazi nic. Je to divny. Prostredni obrazek bez problemu, misto 1. a 3. prazdne ramecky.
    29.8.2005 10:04 Robert Krátký | skóre: 94 | blog: Robertův bloček
    Rozbalit Rozbalit vše Re: Obrazky
    No, a ten uváděný odkaz také nezobrazí nic?
    30.8.2005 08:17 Robert
    Rozbalit Rozbalit vše Re: Obrazky
    Vubec nic. Je divne ze jeden obrazek je v poradku a dalsi 2 se nezobrazi.

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.