Kurzy a školení VHDL

Cílem kurzu je teoretické a praktické seznámení účastníků se základními programovacími technikami v jazyku VHDL a následná implementace do struktur typu FPGA/CPLD (hradlové pole). Předpokládá se doplnění o funkční / časovou simulaci obvodu. Po absolvování kurzu by měl být každý účastník schopen číst, modifikovat a vytvářet základní konstrukce v jazyku VHDL. Součástí kurzu je zapůjčení vývojové platformy s hradlovým polem, programovací USB kabel, referenční příklady a text vlastních přednášek s místem pro poznámky. Vývojová platforma je zapůjčena po celou dobu trvání kurzu pro účely výuky a tvorbu samostatných prací.

Vstupní znalosti: Základní znalosti logických obvodů a sítí.

Obsah kurzu je možno upravit dle požadavků objednatele - pokročilé techniky návrhu FPGA a periferních zařízení (optimalizace, DDR, QDR, LVDS, JESD204, Ethernet a další).

1) Úvod do problematiky jazyků HDL

  • Historie vývoje programovacích technik popisujících logické systémy
  • Proč používat HDL jazyky, jejich přínos, výhody a stinné stránky
  • Stručná zmínka o logických obvodech (kombinační s sekvenční logika)
  • Úvod do jazyka VHDL 93
  • Základní typy popisů obvodů ve VHDL, hierarchie
    • structural
    • dataflow
    • behavioral
  • Entita
  • Architektura
  • Konfigurace
  • Process
  • Package
  • Podprogramy
  • Atributy
  • Definice signálů, proměnných + základní operace
  • Datové typy
  • Hierarchie a struktura
  • Klíčová slova
  • Simulace
  • Základní operace – příklady a praktické cvičení – strukturální popis

2) Hlubší seznámení s problematikou návrhu obvodů ve VHDL

  • Port - in, out, inout
  • Generic
  • Konstanty
  • Operátory a operandy
    • Logické
    • Relační
    • Aritmetické
    • Ostatní
  • Kombinační logika
    • Multiplexery
    • Dekodéry
    • Enkodéry
    • Latch
  • Sekvenční logika
    • Procesy
    • Klopné obvody
    • Čítač – up/down, enable, preset, reset, synchronní, asynchronní
    • Jiné typy čítačů (BCD, Johnson, Gray)

3) Konečné stavové automaty FSM

  • Úvod - Moore a Mealy
  • Implementace pomocí jednoho, dvou nebo tří procesu
  • Výčtový typ, jeho přetěžování
  • Typy kódování FSM (binární, one-hot, auto, user)
  • Simulace, zhodnocení rozdílů a možnosti nasazení jednotlivých typů v praktických aplikacích
  • Praktická část

4) Pokročilé techniky VHDL I

  • Konverze typů
  • Definování nových typů a subtypů
  • Funkce, procedury, for cykly, generic
  • Packages II
  • Simulace, praktická část

5) Pokročilé techniky VHDL II

  • Komponenty
  • Paměti RAM
  • DCM Bloky a frekvenční syntéza
  • Vstup výstupní buňky – standardy, DDR, LVDS
  • Násobičky
  • Další matematické operace
  • Využití vnitřních zdrojů FPGA a jejich optimalizace
  • Simulace a rozdíly mezi syntézou a simulací

Navazující a rozšiřující moduly (po dohodě libovolné téma)

Procesorová jádra ARM (Řady Zynq, SoC)

  • Konfigurace systému
  • Sběrnice AXI, AXI stream
  • Periferní zařízení
  • Tvorba vlastních periferních zařízení, zápis do paměti

Soft core procesor PicoBlaze

  • Architektura
  • Připojení paměti programu
  • Připojování periferních zařízení
  • Simulace
  • Periferie – sériová linka, řadič LCD displeje, čtení unikátních identifikátorů

Soft core procesor Microblaze

  • Architektura
  • Připojení paměti (BRAM, Flash, SRAM, SDRAM, DDR II ...)
  • Připojování periferních zařízení
  • Simulace
  • Periferie – sériová linka, řadič LCD displeje
  • Tvorba nových periferních zařízení

Nástroje pro rychlé generování kódu a funkčních bloků

  • Coregen a připojení do struktury VHDL (netlist)
  • Struktury typu FIFO
  • Generovaní goniometrických funkcí
  • Generování DPS funkcí
  • Simulace a praktické experimenty

Časová omezení designu

  • Přechody mezi časovými doménami
  • Metastabilní stavy
  • Setup a hold time
  • Maximální pracovní frekvence
  • Analýza designu, FPGA editor a ChipScope

Používané nástroje a prostředí

  • Xilinx ISE
  • Xilinx Vivado
  • Xilinx Vivado HLS
  • Altera - Quartus
  • Lattice - Lattice Diamond
  • Lattice - ispLEVER
  • Mentor Graphics - ModelSim