Vlákno názorů k článku Navrhujeme a vyrábíme vlastní CPU: software pro náš vlastní procesor od peci1 - Kdyz uz jste nakousl ty bugy v navrhu:...

  • Článek je starý, nové názory již nelze přidávat.
  • 1. 6. 2025 23:01

    RDa

    Ano.. jmenuje se to test-bench, nebo testovaci vektory, a u slusneho vyvoje jejich psani tvori i 80-90% casu na projektu :D

    Vsechny HDL veci ktere jdou do kremiku se simuluji jako ze fakt poradne.

    Temer vsechno sloziteho HDL se testuje skrze simulace.

    Bez simulaci se daji delat jednoduche veci - a presto sem tam udelat chybu.

    Rekl bych ze jsem delal tak prumerne slozite veci (kamerove rozhrani, formatovani dat, zpracovani obrazu, baleni/paketizaci) bez testovani - ale pristupoval jsem k tomu hodne rozdrobene, abych drzel tu jednoduchost/ne-slozitost na uzde - a jeste mel k dispozici hw pro hardware in a loop vyvoj.. ale presto se nasel bug jednou za tyden kde to bylo jasny z logickeho analyzatoru a pohledem do kodu a jednou za mesic jsem "potupne" musel prepsat onen selhavajici pripad, protoze to zrejme nebylo - ale pak jak to clovek muze testovat v ramci vterin na cyklus, nez puvodnich 30min skrze hw.. tak pak bug najde celkem rychle.

    Ano, je to neprofesionalni pristup, ale ve vysledku je trial&error rychlejsi, protoze pozadavek co se vyrabi nebyl pevne danej a vznikalo to postupne - pokud ale existuje velice exaktni specifikace, je mozne si naplanovat vyvoj vcetne simulaci. Idealne aby je ale udelal nekdo jinej - aby se predeslo dvojitym chybam.

  • 2. 6. 2025 17:50

    Martin Beran

    Kdyz uz jste nakousl ty bugy v navrhu: da se to VHDL nejak unit testovat?

    Ano, existuje několik možností, jak testovat návrh obvodu ve VHDL.

    • Simulace. Existují simulátory, často integrované do vývojového prostředí. Jako vstup berou popis obvodu a testbench, což je další kus VHDL kódu, definující průběhy vstupních signálů a podmínky (asserts) testující požadované hodnoty výstupů. Simulátor spustí testbench, otestuje splnění podmínek a také umí zobrazit časové průběhy externích i interních signálů v obvodu.
    • Logický analyzátor. Vývojové prostředí umožňuje do obvodu přidat IP blok definující logický analyzátor. Ten zaznamenává průběhy vybraných signálů v obvodu a přes JTAG rozhraní je předá do IDE, kde se dají zobrazit a dále analyzovat.
    • Ladění pomocí výstupních periferií. Toto je obdoba přidání ladicích výpisů do počítačového programu. Jednoduše vizualizujeme nějaký stav obvodu, který nás zajímá, pomocí dostupných výstupů. Např. na vývojovém kitu rozsvítíme LED, když nastane "zajímavý" stav.