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

    Byla vydána nová verze 24.04.28 s kódovým názvem Time After Time svobodného multiplatformního video editoru Shotcut (Wikipedie) a nová verze 7.24.0 souvisejícího frameworku MLT Multimedia Framework. Nejnovější Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.

    Ladislav Hagara | Komentářů: 0
    včera 16:33 | Nová verze Ladislav Hagara | Komentářů: 0
    včera 03:22 | Zajímavý článek

    V aktuálním příspěvku na blogu počítačové hry Factorio (Wikipedie) se vývojář s přezývkou raiguard rozepsal o podpoře Linuxu. Rozebírá problémy a výzvy jako přechod linuxových distribucí z X11 na Wayland, dekorace oken na straně klienta a GNOME, změna velikosti okna ve správci oken Sway, …

    Ladislav Hagara | Komentářů: 0
    včera 00:11 | Nová verze

    Rakudo (Wikipedie), tj. překladač programovacího jazyka Raku (Wikipedie), byl vydán ve verzi #171 (2024.04). Programovací jazyk Raku byl dříve znám pod názvem Perl 6.

    Ladislav Hagara | Komentářů: 5
    27.4. 17:44 | Nová verze

    Společnost Epic Games vydala verzi 5.4 svého proprietárního multiplatformního herního enginu Unreal Engine (Wikipedie). Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    26.4. 17:11 | Nová verze

    Byl vydán Nextcloud Hub 8. Představení novinek tohoto open source cloudového řešení také na YouTube. Vypíchnout lze Nextcloud AI Assistant 2.0.

    Ladislav Hagara | Komentářů: 12
    26.4. 13:33 | Nová verze

    Vyšlo Pharo 12.0, programovací jazyk a vývojové prostředí s řadou pokročilých vlastností. Krom tradiční nadílky oprav přináší nový systém správy ladících bodů, nový způsob definice tříd, prostor pro objekty, které nemusí procházet GC a mnoho dalšího.

    Pavel Křivánek | Komentářů: 9
    26.4. 04:55 | Zajímavý software

    Microsoft zveřejnil na GitHubu zdrojové kódy MS-DOSu 4.0 pod licencí MIT. Ve stejném repozitáři se nacházejí i před lety zveřejněné zdrojové k kódy MS-DOSu 1.25 a 2.0.

    Ladislav Hagara | Komentářů: 45
    25.4. 17:33 | Nová verze

    Canonical vydal (email, blog, YouTube) Ubuntu 24.04 LTS Noble Numbat. Přehled novinek v poznámkách k vydání a také příspěvcích na blogu: novinky v desktopu a novinky v bezpečnosti. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 10. LTS verzi.

    Ladislav Hagara | Komentářů: 14
    25.4. 14:22 | Komunita

    Na YouTube je k dispozici videozáznam z včerejšího Czech Open Source Policy Forum 2024.

    Ladislav Hagara | Komentářů: 3
    KDE Plasma 6
     (75%)
     (8%)
     (2%)
     (15%)
    Celkem 875 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník


    Vložit další komentář
    Yin avatar 1.9.2005 01:53 Yin | skóre: 39 | blog: Yinotopia | Slovesnko, Košice
    Rozbalit Rozbalit vše optimalizácia

    začína to konečne vyzerať, že sa s tým dá niečo robiť... nenapíšete čitateľom nabudúce ukážkový 64bitový procesor? :)))

    A teraz Vážne! Chcel som sa spýtať, či je existujú postupy na optimalizáciu hotových návrhov? Možno niekdo potrebuje usporiť a radšej by použil viacero lacnejších odvodov, ako pár drahšich.

    Nikdy nie je tak zle, aby to jeden poharik nemohol ešte zhorsiť.
    6.9.2005 04:04 Luděk Crha | skóre: 17
    Rozbalit Rozbalit vše Re: optimalizácia
    Pokud jde jenom o tech 64 bitu neni problem, napr. v tomto dile staci zmenit definici signalu na std_logic_vector(63 downto 0) a mame 64 bitove registry :-).

    V tomto serialu se pohybujeme v oblasti navrhu pro hradlova pole FPGA. To znamena, ze cely nas design nahrajeme obvykle do jednoho programovatelneho FPGA.

    Jinak optimalizace provadi syntezator, ktery se snazi o co nejlepsi prevod naseho VHDL kodu do vnitrni struktury FPGA.
    1.9.2005 09:57 Alex
    Rozbalit Rozbalit vše Necitelny kod
    Zdravim,

    Toto je typicka ukazka, jak nema vypadat VHDL kod. Je totiz velmi neprehledny a necitelny.

    1) V deklaraci entity se pise jeden signal na radku. Videl jsem i hruzy, kde vsechny std_logic byly na jedne radce. Tak fakt ne!

    2) Je dobrym pravidlem oddelit kombinacni proces od procesu registroveho. Opet to pomuze lepsi orientaci v kodu pri slozitejsim navrhu.

    Dalsi pravidlem je, ze vystup obvodu by mel mit registrovany, pokud neni duvod specialni duvod, aby nebyl.

    To, ze std_logic_vector signaly nejsou definovany genericky radsi pominu.

    Jinak si myslim, ze tento serial je pro nezasvecene ctenare velmi matouci, protoze procesor se takhle rozhodne nepise. A muzete mi verit, ze o tom neco vim.
    6.9.2005 03:28 Luděk Crha | skóre: 17
    Rozbalit Rozbalit vše Re: Necitelny kod
    1) Prehlednost je vec dost relativni - treba pro me je prehlednejsi urcite signaly dat na jeden radek.

    2) Zrovna tenhle styl zapisu je pro me velmi neprehledny (i kdyz logicky), napr. pri slozitejsim FSM musim behat po kodu abych vedel co dela ktery stav.

    3) Tohle neni cely obvod, ale cast a registr na vystupu je zbytecny a udelal by pekny hokej v casovani.

    Ucelem serialu je to, aby se ctenar zamyslel nad zcela zakladnimi principy funkce procesoru a hardwaroveho navrhu.

    Pokud mate zkusenosti s navrhem procesoru v komercni sfere, podelte se o zkusenosti. Predem diky!
    7.9.2005 13:59 Alex
    Rozbalit Rozbalit vše Re: Necitelny kod
    Zdravim,

    1) Ano prehlednost je relativni, ale jsou urcite pravidla, ktera se dodrzuji. Alespon v komercnim sektoru. Videl jste nejaky kod?

    2) Nechapu co je pro vas neprehledne. Hned na zacatku, aniz bych kod nejak studoval, vim co je registrovany signal a co ne. To je jedna z nejdulezitejsich informaci. Pokud argumentujete slozitejsim FSM, tak se obavam, ze neznate syntezacni nastroje. Hlavne pro ASIC syntezu. Takovy kod by proste neprosel. Nevim co se vam zda neprehledneho na oddeleni registru stavu od prechodu stavu (komb.) a od nastaveni vystupu(komb+reg.).

    Pokud nekdo se ctenaru, ktery opravdu nikdy netusil a ani netusi z ceho se takovy procesor sklada, se neco nauci z tohohle serialu, tak je fakt borec. Nikde jsem napriklad nevidel ani ideove schema jednotlivych casti a jejich navaznost. Takove 'vykriky' jako ALU, registry apod. moc prehledu nedodaji.
    9.9.2005 03:40 Luděk Crha | skóre: 17
    Rozbalit Rozbalit vše Re: Necitelny kod
    Vase komentare beru jako podnetne z hlediska praxe, myslim vsak ze tyhle veci nepatri zacatecnikum. Serial splni ucel, pokud si ctenar uvedomi ze pomoci VHDL opravdu navrhuje HW a nepise program - pro vas samozrejmost, pro nekoho nepochopitelna vec.

    Clanek jsem psal se zamerenim na lidi, kteri maji obecnou predstavu o architekture procesoru, priblizne vi co je to logicky obvod, ale nevi nic o HDL.

    Co se tyce obvodu, ASIC jsem opravdu nikdy nedelal, pracoval jsem hlavne s nekolika typy Virtexu, nejen na akademicke pude.
    9.9.2005 15:19 Alex
    Rozbalit Rozbalit vše Re: Necitelny kod
    Protoze jste se na me na rozdil od jineho cloveka neoboril s chvastanim. Posilam Vam, jak by takovy kod mel vypadat z hlediska obecnosti vzhedem k nejasnemu zadani. S minimalnim zasahem menim velikost a pocet registru.
    LIBRARY ieee;
    USE ieee.std_logic_1164.ALL;
    USE ieee.std_logic_arith.ALL;
    
    
    ENTITY registers IS
      GENERIC (
        data_w   : natural := 8;
        addr_w   : natural := 2;
        num_regs : natural := 4
      );
      PORT ( 
        res      : IN  std_logic;
        clk      : IN  std_logic;
        
        
        wr_en    : IN  std_logic; 
        addr     : IN  std_logic_vector(addr_w-1 DOWNTO 0);
        data_in  : IN  std_logic_vector(data_w-1 DOWNTO 0);
    
        data_out : OUT std_logic_vector(data_w-1 DOWNTO 0)
      );
    END registers;
    
    
    ARCHITECTURE rtl OF registers IS
    
      SUBTYPE  reg_t      IS std_logic_vector(data_w-1 DOWNTO 0);  
      TYPE     reg_arr_t  IS ARRAY (num_regs-1 DOWNTO 0) OF reg_t; 
    
      SIGNAL rg_ar_reg  : reg_arr_t;                               
      SIGNAL rg_ar_cmb  : reg_arr_t;                               
    
      SIGNAL rg_wr_cmb  : std_logic_vector(num_regs-1 DOWNTO 0);
      SIGNAL rg_sel_cmb : std_logic_vector(num_regs-1 DOWNTO 0);
    
    BEGIN
    
    
      gen_reg_array:
      FOR i IN 0 TO num_regs-1 GENERATE
        ----
        -- Registers Array
        ----
        rg_ar_reg_proc:
        PROCESS (res, clk)
        BEGIN
          IF (res = '1') THEN
            rg_ar_reg(i) <= (OTHERS => '0');
          ELSIF (clk'EVENT AND clk ='1') THEN
            rg_ar_reg(i) <= rg_ar_cmb(i);
          END IF;
        END PROCESS rg_ar_reg_proc;
    
        ----
        -- Register selection
        ----
        sel_reg_cmb_proc:
        PROCESS (addr, wr_en)
          VARIABLE sel_v : std_logic_vector(num_regs-1 DOWNTO 0);
        BEGIN
          sel_v := (OTHERS => '0');
          sel_v(conv_integer(unsigned(addr))) := '1';
          
          rg_sel_cmb <= sel_v;
        END PROCESS sel_reg_cmb_proc;
    
        
        ----
        -- Registers array next 
        ----
        rg_ar_cmb_proc:
        PROCESS (data_in, rg_ar_reg, rg_sel_cmb, wr_en)
        BEGIN
          IF (rg_wr_cmb(i)= '1' AND wr_en='1') THEN
            rg_ar_cmb(i) <= data_in;
          ELSE
            rg_ar_cmb(i) <= rg_ar_reg(i);
          END IF;
        END PROCESS rg_ar_cmb_proc;
    
      END GENERATE gen_reg_array;  
    
    
      ----
      -- Data output selection
      ----
      data_sel_cmb_proc:
      PROCESS (rg_ar_reg, addr)
        VARIABLE addr_v : natural;
      BEGIN
        addr_v := conv_integer(unsigned(addr));
    
        data_out <= rg_ar_reg(addr_v);
      END PROCESS;
    
    
    END rtl;
    
    I tady je co vylepsovat. Napriklad registrovat vystup. Vasi poznamku o hokeji v casovani jsem nejak nepochopil. Co pipeline???

    Jinak v tom Vasem kodu je chyba a nejde zkompilovat ("ADDR"!="A").
    29.9.2005 04:31 Luděk Crha | skóre: 17
    Rozbalit Rozbalit vše Re: Necitelny kod
    Moc pekne, diky za ukazku! Trosku mi unika smysl pouziti sel_v, ale to je myslim detail.

    V pristim dile bude schema celeho procesurku. Z nej bude zrejme, ze pokud chci dodrzet pravidlo 1 instrukce / 1 takt, nemuzu si dovolit pipeline.

    Mam ted malo casu, proto trosku delsi cas odezvy - jinak diskusi beru samozrejme jako prinosnou.
    15.11.2005 12:10 Radim
    Rozbalit Rozbalit vše Re: Necitelny kod
    Take diky. Neni nic lepsiho nez mit jednoduchy priklad na pochopeni a ukazku jak by to vypadalo od profika.
    15.11.2005 12:33 Radim
    Rozbalit Rozbalit vše Re: Necitelny kod
    tim jsem samozrejme nechtel rict ze Ludek Crha neni profik... a jemu take velice diky
    26.11.2005 00:41 xipn
    Rozbalit Rozbalit vše Re: Necitelny kod
    Souhlasim s duslednym oddelovanim kombinacnich a sekvencnich procesu. Je to pekny zapis s ohledem na prehlednost a syntezu. Jenom mala poznamka: cely design by neobsahoval ani jeden registr. Ale verim, ze to je jenom male prehlednuti ze strany autora nikoliv zamer.
    Nutny maly zasah:
    zamenit radek
    IF (rg_wr_cmb(i)= '1' AND wr_en='1') THEN
    za
    IF (rg_sel_cmb(i)= '1' AND wr_en='1') THEN
    12.12.2005 16:42 pavel prochazka.zde.cz
    Rozbalit Rozbalit vše Re: Necitelny kod
    Moc pekny, moc pekny.... Ja jsem spis VHDL samouk... Viz moje www stranky :-) A tomu kody co je v clanku velmy dobre rozumim... Ale tomu kodu od profika uz nechapu. Aspom mam co studovat. Uvital bych vic takovych ukazek od profiku aby se clovek mel na cem ucit. Nejlepe aby kod byl komentovani...
    6.9.2005 09:04 koca
    Rozbalit Rozbalit vše Re: Necitelny kod
    souhlasim s autorem.
    U vas me to pripada jako chvastani a takovych chytraku jako vy jsem uz potkal.
    6.9.2005 09:07 koca
    Rozbalit Rozbalit vše Re: Necitelny kod
    myslim tim, ze souhlasim s Ludkem Crhou :)
    7.9.2005 13:47 Alex
    Rozbalit Rozbalit vše Re: Necitelny kod
    To nebylo zadne chvastani. Jen jsem upozornil na nektere neduhy napsaneho kodu. Prislo mi to proste jako ukazka typickeho 'akademickeho stylu'. Ze je dobre (ale nekdy i nutne) oddelovat kombinacni procesy, tak za tim si stojim).

    Tak me prosim zdelte jaky obvod uz jste navrhl. Nemusite konkretne staci jen typ obvodu. Predem diky. Myslim si, ze autor clanku nema napriklad dostatecne zkusenosti ze syntezou. Jinak napr. faze navrhu zacina specifikaci. Proste autor z pocatku zamenil cil za prostredek. Podle nazvu je jednoznacnym cilem navrh procesoru. Jazyk VHDL je jen jednim z prostredku, jak k nemu dojit. Proc nepouzit Verilog, System C atd..?

    Jinak ten clanek na me proste pusobil, takovym dojmem, ze nadsenec se rozhodne udelat procesor a hned zacne 'smolit' VHDL kod, aniz by se definovalo jaky to bude procesor (architetura, intstr. sada atd..). Proste tim navrh zacina. Ne nejakym psanim nesmyslnych kodu.

    Navic autor dole pise, ze nechtel ucit VHDL samo o sobe. Mozna nechtel, ale presne to tak vypada. Co pak ma spolecneho tento kod a predchozi kody s procesorem? Snad je to, ze u obou po synteze budou DFF a kombinacni cleny. To je asi tak vse.
    5.9.2005 14:40 honza
    Rozbalit Rozbalit vše Mala poznamka
    Jeste si dovolim pridat jeden namet k zamysleni pro autora...

    Schvalne si zkuste porovnat vystup syntezy vaseho procesu a verze, kdy misto retezce "if - elsif - elsif - ..." pouzijete "case". Jsem si temer 100% jisty, ze Synopsys Design Compiler (ASIC), Xilinx ISE (FPGA) i Altera Quartus (FPGA) vyprodukuji pro verzi s if prioritni dekoder. Uz pri psani kodu neni spatne mit predstavu o jeho vysledne implementaci a predevsim o pozadavcich na casovani. Tomu by pak mel kod odpovidat. Stejna funkce se da zapsat ruzne, ale rychlost a velikost vysledneho obvodu bude take ruzna.

    Jsem rad, ze se nekdo rozhodl napsat serial v cestine s timto zamerenim, ale musim souhlasit s predchozim prispevkem, ze forma neni zrovna nejvhodnejsi. Zacatecnikum bych doporucil treba knizku "VHDL, Programming by Example" od Douglase L. Perryho, ktera vysvetluje pouziti VHDL od uplnych zakladu, rozumnou formou, ale stale dba na spravnou metodologii digitalniho navrhu.

    A poznamka na zaver (opet podle minuleho prispevku)... procesor se takhle opravdu nepise, ale napsat se tak pravdepodobne da;) A nejspis i funkcni... kdyz bude mit velmi omezenou instrukcni sadu, pobezi na 10MHz...

    Pro autora serialu: myslim, ze by nebylo spatne, oddelit vyuku VHDL a navrh procesoru. Ono totiz vysvetlovat zakladni konstrukce nejakeho HDL a zaroven z toho "lepit" procesor neni zrovna nejlepsi. Stavebni prvky VHDL by asi bylo lepsi vysvetlit na nejakych jednodussich praktickych prikladech. Navrh ukazkoveho CPU by mel byt dalsi serial, pricemz vetsinu by zabrala slusna SYSTEMOVA ANALYZA a maximalne posledni dil by mohl byt venovan komentovanemu kodu s odkazy na jednotlive casti predchozi analyzy.
    6.9.2005 03:47 Luděk Crha | skóre: 17
    Rozbalit Rozbalit vše Re: Mala poznamka
    Diky za pripominky.

    "If" jsem pouzil kvuli jednoduchosti, jde mi predevsim o principy.

    O celkove koncepci serialu jsem celkem dost uvazoval. Samostatny serial jsem zavrhl, ucit VHDL samo o sobe je myslim dobre pro predmet na vysoke skole, tady jsem to chtel popularnejsi.
    Dobry den, nerad otravujem, ale minule ste mi velmi pomohli, tak by som Vas rad este raz poziadal o radu:

    Preco musim robit test pre spravanie aj pre strukturu scitacky? nestaci iba napriklad pre spravanie? bol by som velmi rad keby ste si nasli cas na strucne objasnenie ako je to s tym testovanim. Lebo napriklad u XOR=u, ktory ste mi poradili, som take nieco nenasiel. Dakujem

    PS: K tomu samostatnemu serialu o VHDL - nepremyslali ste skor o napisani aj nejakej knihy, zrozumitelnej aj laickejsej verejnosti so zaujmom o tuto oblast?
    4.10.2005 22:28 cairne
    Rozbalit Rozbalit vše Re: dotaz
    pardon, zabudol som link na zdrojak - jedna sa o uplnu stvorbitovu scitacku, ktory ma byt zlozena zo 4 uplnych jednobitovych scitaciek, tie kazde z dvoch neuplnych jednobit. scitaciek, a ta kazda zlozena pomocou log. funkcii. http://student.fiit.stuba.sk/~stanovsk04/scitaj.txt
    6.10.2005 03:17 Luděk Crha | skóre: 17
    Rozbalit Rozbalit vše Re: dotaz
    Dobry den,

    z otazky a zdrojovych kodu jsem trosku zmateny, tak nevim jestli odpovim spravne na dotaz.

    Zakladni myslenka je ta, ze chcete ve VHDL vytvorit nejaky obvod. Ten ma urcite vstupy a vystupy (entita) a chovani (architektura). Tento vytvoreny obvod muzete nasledne vysyntetizovat a napr. nahrat do specialniho integrovaneho obvodu. Predtim nez to ale udelate, je potreba nejak overit jeho funkci na PC. K tomu vyuzijete simulator (napr ModelSim), ktery dokaze simulovat funkci vaseho obvodu. Je zde ale jeden problem: Vas obvod sam o sobe nebude delat nic, pokud na jeho vstupy neprivedete urcite hodnoty. Pokud budete mit obvod se scitackou, take nebude delat nic, dokud nezacnete menit vstupy obvodu (napr. pomoci DIP-switche). Stejne tak v simulatoru nebude nic delat obvod, na jehoz vstupy nebudete davat urcite signaly. Proto se napise TestBench, ktery funguje jako "simulator" okolniho sveta pro Vas obvod. Muzete napr. simulovat cinnost DIP prepinace tak, ze na vstupy obvodu budete privadet ruzne hodnoty (stejne jako kdybyste menil hodnoty na prepinaci).

    Pokud mate dve enitity se stejnou funkci, rozhodne tedy pro jejich testovani muzete pouzit stejny TestBench.

    Pokud chcete ve VHDL popsat scitacku, je naprosto dostatecne pouzit jediny prikaz

    a <= b + c;

    pokud pouzijete prislusne knihovny. Signaly a, b a c jsou v tomto pripade typu std_logic_vector, tzn. kazdy se sklada z nekolika bitu za sebou.

    Na zdrojove kody scitacky muzete kouknout na strance http://www.fit.vutbr.cz/study/courses/IVH/public/ - radeji si je stahnete, na dalsi semestr se stranka zmeni. Je zde strukturni popis 4-bitove scitacky. Tento popis slouzi pouze pro ukazku strukturniho stylu, jinak v bezne praxi je samozrejme jednodussi pouzit jiz zminovany prikaz a <= b + c;.

    O knize neuvazuji, ale diky :). Obavam se ze zajem siroke verejnosti by byl vcelku minimalni. Doporucil bych napr. skripta Kolouch, J.: Programovatelné logické obvody a modelování císlicových systému v jazycích ABEL a VHDL. Vydala je myslim fakulta elektrotechnicka na VUT Brno.
    6.10.2005 20:48 cairne
    Rozbalit Rozbalit vše Re: dotaz
    Naozaj velmi pekne dakujem, a zaroven sa ospravedlnujem za hlupu otazku - doslo mi vlastne, ze bolo treba otestovat ci "cierna skrinka" (opis spravania sa - opisana IBA log. funkciami) vyhodi to iste co opis struktury(z coho sa ta nasa cierna skrinka sklada). Inak materialy su skvele(urcite neporovnatelne s tym co poskytuju nam). Peter PS: ciernou skrinkou je myslena stvorbitova scitacka. :-)

    Založit nové vláknoNahoru

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

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