12. VHDL pro verifikaci - Testbench I

Podobné dokumenty
7. Popis konečného automatu

9. Praktická verifikace

14. Složitější konstrukce

Koncept pokročilého návrhu ve VHDL. INP - cvičení 2

2. Entity, Architecture, Process

Příklady popisu základních obvodů ve VHDL

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

1. Seznamte se s výukovou platformou FITkit (

Úvod do jazyka VHDL. Jan Kořenek Návrh číslicových systémů

Jazyk VHDL konstanty, signály a proměnné. Jazyk VHDL paralelní a sekvenční doména. Kurz A0B38FPGA Aplikace hradlových polí

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Vzorový příklad. Postup v prostředí ISE. Zadání: x 1 x 0 y. Rovnicí y = x 1. x 0. Přiřazení signálů: ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

Číslicové obvody a jazyk VHDL

Vzorový příklad. Postup v prostředí ISE. Zadání: x 1 x 0 y Rovnicí y = x 1. Přiřazení signálů:

Návrh ovládání zdroje ATX

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Návrh. číslicových obvodů

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Základní znaky. - Ve srovnání se Spice jsou velmi složité a vyžadují dlouhou dobu na plné osvojení. - Velmi nákladné simulační programy.

Digitální technika. Jazyk VHDL, základy návrhu. Ing. Jakub Št astný, Ph.D. 1

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Simulace číslicových obvodů na hradlové úrovni: model návrhu Jakub Šťastný ASICentrum, s.r.o. Katedra teorie obvodů FEL ČVUT Praha

Souhrn Apendixu A doporučení VHDL

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

PROGRAMOVATELNÁ LOGICKÁ POLE A JAZYKY HDL

Pokročilé využití jazyka VHDL. Pavel Lafata

Organizace předmětu, podmínky pro získání klasifikovaného zápočtu

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

1 Stručný popis jazyku VHDL

Použití jazyka VHDL pro návrh číslicových obvodů

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Sčítačky Válcový posouvač. Demonstrační cvičení 6

Návrh obvodů založených na programovatelných hradlových polích

Násobičky, Boothovo překódování. Demonstrační cvičení 7

Simulace číslicových obvodů: úvod Jakub Šťastný ASICentrum, s.r.o. Katedra teorie obvodů FEL ČVUT Praha

Digitální návrh. Postup návrhu digitálních IO. Co to jsou HDL jazyky? Příklad Verilog kódu pro D klopný obvod

SYSTÉMY NAČIPU MI-SOC

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Cíle. Teoretický úvod

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Implementace čítačů v číslicových systémech 2 Jakub Šťastný ASICentrum, s.r.o. FPGA Laboratoř, Katedra teorie obvodů FEL ČVUT Praha

Návod k obsluze výukové desky CPLD

Úvod do problematiky obvodů FPGA pro integrovanou výuku VUT a VŠB-TUO

Struktura a architektura počítačů (BI-SAP) 3

2. Synchronní číslicové systémy


Unbounded Model Checking

Chapter Základní principy simulace :).

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

r90>25=.nt>+>7z5n2k<1561/+;5n{.57u07k{16;5=.nt>+>7z5n2k<15n>29l.05,90>2/3k5n2k7,50{10;<o5>/>?ˆ581:+z6,561/+;

Příklad č. 1 Přepis informace ze vstupů (SW0 až SW3) na ledky (LEDG0 až LEDG3)

Návrh FPGA systémů. Jazyk VHDL, principy simulace. Ing. Jakub Št astný, Ph.D. 1

Návrh základních kombinačních obvodů: dekodér, enkodér, multiplexor, demultiplexor

Testování a spolehlivost. 3. Laboratoř Program Atalanta, BIST, testování sekvenčních obvodů

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Vývoj VHDL. Verilog HDL

Cíle. Teoretický úvod. BDIO - Digitální obvody Ústav mikroelektroniky Základní logická hradla, Booleova algebra, De Morganovy zákony Student

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

Agenda. Docházka Návrat k minulému praktickému cvičení Zápočtové práce. Dokumentace. Dotazy, přání, stížnosti. Co, jak a proč dokumentovat

Implementace čítačů v číslicových systémech Jakub Šťastný

Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program

OPERAČNÍ PROGRAM PRAHA ADAPTABILITA & EU:

7. Pracovní postupy. Fakulta informačních technologií MI-NFA, zimní semestr 2011/2012 Jan Schmidt

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

3.7.5 Znaménkové operátory Násobící operátory Rùzné operátory Základní objekty Konstanty Sig

Assertions Pokročilé techniky verifikace číslicových obvodů. Jakub Šťastný, Ph.D. ASICentrum s.r.o.

PODOBÁ SE JAZYKU C S NĚKTERÝMI OMEZENÍMI GLOBÁLNÍ PROMĚNNÉ. NSWI162: Sémantika programů 2

Dvoustupňový Operační Zesilovač

Verifikace pomocí assertions: jazyk PSL Jakub Šťastný

Formální Metody a Specifikace (LS 2011) Formální metody pro kyber-fyzikální systémy

1 Digitální zdroje. 1.1 Převod digitálních úrovní na analogový signál. Cílem cvičení je osvojení práce s digitálními zdroji signálu.

ČEMU ROZUMÍ MIKROPROCESOR?

Stefan Ratschan. Fakulta informačních technologíı. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti 1 / 19

Assertions Pokročilé techniky verifikace číslicových obvodů. Jakub Šťastný, Ph.D. ASICentrum s.r.o.

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Vestavné systémy BI-VES Přednáška 5

Jazyk VHDL zápis čísel, znaků a řetězců. Jazyk VHDL základní datové typy a operátory. Kurz A0B38FPGA Aplikace hradlových polí

10. Techniky formální verifikace a validace

Cvičení 9 - Monitory. monitor m; var proměnné... procedure p; begin... end; begin inicializace; end;

Modelování obchodních procesů

Metody návrhu systémů na bázi FPGA

B i b l i o g r a f i c k á c i t a c e

Moderní nástroje pro vývoj elektronických řídicích jednotek

3. Aritmetika nad F p a F 2

Testování sekvenčních obvodů Scan návrh

Boundary Scan JTAG (Joined Test Action Group) IEEE 1149.X Zápis do rozhraní

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE STRUKTURA PŘEKLADAČE

Požadavky Modelování případů užití

Algoritmizace. 1. Úvod. Algoritmus

MPASM a IDE pro vývoj aplikací MCU (Microchip)

Úvod do simulace - 1

Transkript:

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti 12. VHDL pro verifikaci - Testbench I Praktika návrhu číslicových obvodů Dr.-Ing. Martin Novotný Katedra číslicového návrhu Fakulta informačních technologií ČVUT v Praze Miloš Bečvář, Martin Daněk, Jan Schmidt, Martin Novotný, 2006-2011 1

Verifikace a testování Verifikace je proces, který ověří, že obvod byl navržen podle specifikace Testování je proces, který ověří, že obvod byl vyroben podle návrhu. 2

Verifikace Verifikace srovnává specifikaci a implementaci. Bez specifikace není verifikace. Specifikace je typicky textový dokument (neformální specifikace), který popisuje fyzické, elektrické, funkční a časové vlastnosti obvodu, který bude navržen. 3

Formy verifikace verifikace simulací (Modelsim ) verifikace v simulačním prostředí (testbench), který produkuje stimuly a sbírá-kontroluje odezvy formální verifikace (Formality, Conformal) formální důkaz funkčních vlastností obvodu statická časová analýza (STA) (PrimeTime) automatická kontrola časových vlastností obvodu 4

Verifikační prostředí Design under Verification (DUV) generátor stimulů & kontrola odezvy TESTBENCH RTL VHDL funkční verifikace Netlist + SDF časová verifikace 5

Struktura verifikačního prostředí Nejjednodušší: jeden proces, který generuje stimuly a kontroluje odezvu Více procesů může kontrolovat různé části specifikace VHDL konfigurací můžeme volit úroveň detailu popisu (RTL, netlist s časováním) verifikační případ (test case) 6

Rozvinuté verifikační prostředí modely externích bloků Design Under Verification kontrola odezvy generátory stimulů vstupní data řízení verifikace skript výstupní data 7

VHDL konstrukce pro verifikaci Plná forma přiřazení signálů A<='0', '1' after 10 ns, '0' after 20 ns; Procesy bez citlivostních seznamů s příkazy wait wait for for time wait until condition wait on on signal wait ; Textový vstup, výstup; chybové kontroly (aserce) 8

Kontrola předstihu, přesahu entity DFF DFF is is generic (TD, (TD, TSETUP, THOLD THOLD : time time := := 0ns); 0ns); port port (D, (D, CLK CLK : in in std_logic; Q : out out std_logic); end end DFF; DFF; architecture TIME_CHECK of of DFF DFF is is begin begin main: main: process (CLK) (CLK) begin begin if if CLK='1' then then Q <= <= D after after td; td; end end if; if; end end process; check: process (CLK, (CLK, D) D) begin begin if if CLK='1' and and CLK'event then then assert D'stable (tsetup) report "Porusen predstih" severity waring; end end if; if; if if CLK='1' and and D'event then then assert CLK'stable (thold) report "Porusen presah" severity warning; end end if; if; end end process; end end TIME_CHECK; 9

Porušený předstih a přesah: dějí se strašné věci 10

Psaní verifikačního prostředí (testbench) Neomezujte se na psaní stylem RTL-VHDL. Využívejte všechny možnosti VHDL pro psaní přehledného kódu. Chování popisujte pokud možno sekvenčně bez vedlejších efektů. Řádně dokumentujte svůj kód, nejlépe tak, aby po vymazání VHDL příkazů z komentářů bylo stále patrné, jak kód funguje. 11

Psaní testbenchů (2) Příliš složitě psané procesy (např. RTL-VHDL) mohou nadměrně zatěžovat simulátor a zpomalovat simulaci. Pozor na nekonečné smyčky každý proces musí mít alespoň jeden příkaz wait! Procesy s citlivostním seznamem mají na konci implicitní wait s příslušnými signály. 12

Handshake 13

type type STATE_TYP is is (,MAKE_REQ,RELEASE, ); signal STATE,NEXT_STATE: STATE_TYP; COMB: COMB: process (STATE,ACK) Begin Begin NEXT_STATE <= <= STATE; case case STATE STATE is is when when MAKE_REQ => => REQ REQ <= <= '1'; '1'; if if ACK ACK = '1' '1' then then NEXT_STATE <= <= RELEASE; end end if; if; when when RELEASE => => REQ REQ <= <= '0'; '0'; if if ACK ACK = '0' '0' then then NEXT_STATE <= <= ; ; end end if; if; end end case; case; end end process COMB; COMB; Handshake RTL SEQ: SEQ: process (CLK) (CLK) Begin Begin if if CLK'event and and CLK CLK = '1' '1' then then if if RESET RESET = '1' '1' then then STATE STATE <= <= ; ; else else STATE STATE <= <= NEXT_STATE; end end if; if; end end if; if; End End process SEQ; SEQ; 14

Handshake behavioral -- behavioral handshake model -- sets REQ to 1, waits for ACK in 1, sets REQ to 0 -- no timing, example only Process Begin REQ <= '1'; wait until ACK = '1'; REQ <= '0'; wait until ACK = '0'; End process; 15