Úvod do vývojového prostředí Xilinx WebPack. Petr Hampl



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

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

Práce v návrhovém prostředí Xilinx ISE WebPack 9.2i

Práce v návrhovém prostředí Xilinx ISE WebPack 10.1 BDOM UMEL FEKT Šteffan Pavel

Práce v návrhovém prostředí Xilinx ISE WebPack 12 BDOM UMEL FEKT Šteffan Pavel

Tlačítka. Konektor programování

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

Použití schematického editoru pro návrh kombinační logiky. Pavel Lafata

1. Seznamte se s výukovou platformou FITkit (

Vytvoření nového projektu ve vývojovém prostředí Quartus II Version 9.1 Servise Pack 2

Cvičení 1 Logická hradla

Cíle. Teoretický úvod

Popis programu: Popis přípon důležitých souborů: *.qpf projektový soubor Quartusu

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

Návod k obsluze výukové desky CPLD

Richard Šusta, verze 1.0 ze dne 10. září 2014, publikováno pod GNU Free Documentation License

Návrh. číslicových obvodů

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

Návrh ovládání zdroje ATX

Manuál přípravku FPGA University Board (FUB)

PRESTO. USB programátor. Uživatelská příručka

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

ASYNCHRONNÍ ČÍTAČE Použité zdroje:

Programátor AVRProg USB v3 MK II Eco Manuál


... sekvenční výstupy. Obr. 1: Obecné schéma stavového automatu

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

GREE Text Parser. GREE Diagnostický program - manuál

PROGRAMOVATELNÉ LOGICKÉ OBVODY

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

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

A4300BDL. Ref: JC

2.1.2 V následujícím dialogovém okně zvolte Instalovat ze seznamu či daného umístění. stiskněte tlačítko Další

Uživatelský manuál A4000BDL

SB485. Převodník rozhraní USB na linku RS485 nebo RS422. s galvanickým oddělením. Převodník SB485. RS485 nebo RS422 USB. přepínače PWR TXD RXD

12. VHDL pro verifikaci - Testbench I

POZOR!!! INSTALACE POD WINDOWS 200 / XP / VISTA PROBÍHÁ VE DVOU ETAPÁCH A JE NUTNÉ DOKON

Návod pro řešení typických problémů se stabilitou AMČR

Návod pro připojení telefonu Sony Ericsson P900 jako modem přes datový kabel a pro Windows 2000/XP

BDIO - Digitální obvody

První kroky s METEL IEC IDE

PROGRAMOVATELNÉ AUTOMATY FATEK

Doporučené nastavení prohlížeče MS Internet Explorer 7 a vyšší pro Max Homebanking PS s využitím čipové karty

Řada Prestige 630-C. ADSL USB Modem. Příručka pro rychlou orientaci

1. 5. Minimalizace logické funkce a implementace do cílového programovatelného obvodu CPLD

Základní popis Toolboxu MPSV nástroje

Aplikace. Hlásič SMS

PK Design. MB-S2-150-PQ208 v1.4. Základová deska modulárního vývojového systému MVS. Verze dokumentu 1.0 ( )

Neřízené usměrňovače reálné vlastnosti

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

Vzdálené ovládání dotykového displeje IDEC HG3G pomocí routeru VIPA TM-C VPN

Projekt: Přístupový terminál

VY_32_INOVACE_OV_2.ME_CISLICOVA_TECHNIKA_19_SPOJENI KOMBINACNICH_A_SEKVENCNICH_OBVODU Střední odborná škola a Střední odborné učiliště, Dubno

Programovací software ConfigTool. Základní obsluha a postup připojení k zařízení přes USB a GPRS. Verze 2.00

SEKVENČNÍ LOGICKÉ OBVODY

PK Design. MB-XC3SxxxE-TQ144 v1.1. Uživatelský manuál. Základová deska modulárního vývojového systému MVS. Verze dokumentu 1.0 (10.10.

PŘÍLOHY. PRESTO USB programátor

Klopný obvod typu D, dělička dvěma, Johnsonův kruhový čítač

Návod pro připojení k síti VŠPJ prostřednictvím VPN Vysoká škola polytechnická Jihlava

Stručný postup k použití programu PL7 Junior (programování TSX Micro)

P D S - 5 P. Psychologický diagnostický systém. Instalační manuál. Popis instalace a odinstalace programu Popis instalace USB driverů

1 Smíšené digitálně-analogové simulace

2. Entity, Architecture, Process

Typické postupy při práci s obvody PLD a FPGA

Zprovoznění kitu Xilinx Spartan-6 FPGA Industrial Video Processing Kit

Logické řízení výšky hladiny v nádržích

EUSSO UPE 4100-BR. Fast Ethernet PCMCIA Card 32 bitová 10/100 Mbps síťová PCMCIA karta. Uživatelský manuál

3 Editor Capture. 3.1 Práce s projekty. Analýza elektronických obvodů programem PSpice 9

Základní popis Toolboxu MPSV nástroje

Převodník PRE 10/20/30

Bakalářská práce Realizace jednoduchého uzlu RS485 s protokolem MODBUS

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

Programovatelné relé Easy (Moeller), Logo (Siemens)

eliška 3.04 Průvodce instalací (verze pro Windows 7) w w w. n e s s. c o m

Sentech AL 7000 C. Instalace a ovládání programu BREATH

Návod pro programovatelný ovladač

2.9 Čítače Úkol měření:

Integrované obvody. Obvody malé, střední a velké integrace Programovatelné obvody

Řadiče periferií pro vývojovou desku Spartan3E Starter Kit Jaroslav Stejskal, Jiří Svozil, Leoš Kafka, Jiří Kadlec.

Číslicové obvody a jazyk VHDL

Informace o produktu Instalace programu MMS 3910 W. Konfigurační sada. Datum Platí pro Konfiguarční program MMS 3910W Version 2.01 f.f.

Doporučené nastavení prohlížeče Mozilla Firefox 3.6 pro Max Homebanking PS s využitím čipové karty

XC3000(A) / XC3100(A)

Inovace a zkvalitnění výuky směřující k rozvoji odborných kompetencí žáků středních škol CZ.1.07/1.5.00/

Změna USB driveru. Návod, jak změnit typ nainstalovaného USB driveru. 21. března 2006 w w w. p a p o u c h. c o m

Souhrn Apendixu A doporučení VHDL

PROGRAMOVATELNÁ LOGICKÁ POLE

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

TIA Selection Tool manuál pro použití

První krůčky se SAS Enterprise Miner 6.2. Zaškrtněte Personal Workstation a přihlašte se jako localhost\sasdemo.

PK Design. Uživatelský manuál. Modul USB-FT245BM v2.2. Přídavný modul modulárního vývojového systému MVS. Verze dokumentu 1.0 (7. 11.

Cíle. Teoretický úvod. BDIO - Digitální obvody Ústav mikroelektroniky Sekvenční logika - debouncer, čítače, měření doby stisknutí tlačítka Student

Pokladna CHD - Jak nainstalovat USB ovladač CHD7

B. TVORBA DOKUMENTACE NA PC- EAGLE

9. Rozšiřující desky Evb_Display a Evb_keyboard

Data Transfer Software

Stručný Průvodce (Čeština)

ATAVRDRAGON-návod k použití

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.

Sylabus kurzu Elektronika

Transkript:

Úvod do vývojového prostředí Xilinx WebPack Petr Hampl

Autor: Petr Hampl Název díla: Úvod do vývojového prostředí Xilinx WebPack Zpracoval(a): České vysoké učení technické v Praze Fakulta elektrotechnická Kontaktní adresa: Technická 2, Praha 6 Inovace předmětů a studijních materiálů pro e-learningovou výuku v prezenční a kombinované formě studia Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

VYSVĚTLIVKY Definice Zajímavost Poznámka Příklad Shrnutí Výhody Nevýhody

ANOTACE Tento modul seznamuje studenty se základy ovládání vývojového prostředí WebPack firmy Xilinx. CÍLE V následujícím textu budete na jednoduchém příkladu seznámeni s jednotlivými fázemi návrhu jednoduchého sekvenčního logického obvodu. V první části textu jsou stručně popsány jednotlivé komponenty a periferie použitého vývojového kitu, Xilinx Spartan3E. V další části je na jednoduchém příkladu Johnsonova čítače demonstrováno, jak v tomto komplexním systému založit nový projekt, jak ověřit správnost návrhu behaviorální simulací. V poslední fázi je celý návrh implementován do zvoleného FPGA obvodu. Text je koncipován jako detailní návod, přičemž se předpokládá, že student má k dispozici vývojové prostředí Xilinx ISE Design Suite (doporučená verze 13.3). LITERATURA [1] LAFATA, Pavel; HAMPL, Petr; PRAVDA, Michal. Digitální technika. Praha: ČVUT, 2011. 164 s. ISBN 978-80-01-04914-3. [2] STRNAD, Ladislav. Základy číslicové techniky: cvičení. 1. vydání. Praha: ČVUT, 1996. 124 s. ISBN 80-01-01433-9. [3] HAVLAN, Martin. Konstrukce telekomunikačních zařízení: cvičení. Praha: ČVUT, 2004. 199 s. ISBN 80-01-03035-0. [4] PINKER, Jiří; POUPA, Martin. Číslicové systémy a jazyk VHDL. Praha: BEN - technická literatura, 2006. 349 s. ISBN 80-7300-198-5. [5] ŠŤASTNÝ, Jakub. FPGA prakticky: realizace číslicových systémů pro programovatelná hradlová pole. Praha : BEN - technická literatura, 2010. 199 s. ISBN 978-80-7300-261-9. [6] Spartan-3 Generation Configuration User Guide. In Spartan-3 Generation Configuration User Guide, Extended Spartan-3A, Spartan-3E, and Spartan-3 FPGA Families [online]. verze 1.6, 26. října, 2009 [cit. 2011-08-08]. Dostupné z WWW: <http://www.xilinx.com/support/documentation/user_guides/ug332.pdf>.

Obsah 1 Vývojový kit Spartan-3E... 6 1.1 Seznámení s přípravkem Xilinx Spartan-3E... 6 1.2 Rozmístění klíčových komponent přípravku... 7 1.3 Přehled a připojení základních vstupních/výstupních periferií přípravku 1/2... 8 1.4 Přehled a připojení základních vstupních/výstupních periferií přípravku 2/2... 10 2 Specifikace zadání... 12 2.1 Realizujte čtyřbitový Johnsonův čítač... 12 2.2 Schéma zapojení... 13 3 Úvod do prostředí Xilinx WebPack... 14 3.1 Založení nového projektu... 14 3.2 Volba cílové platformy a simulátoru... 15 3.3 Realizace Johnsonova čítače... 17 3.4 Popis schematického editoru... 18 3.5 Pojmenování logických členů... 19 3.6 Pojmenování spojnic, definice vstupně/výstupních portů... 21 4 Simulace... 22 4.1 Behaviorální simulace... 22 4.2 Vytvoření testovacího souboru Test Bench... 24 4.3 VHDL Test Bench... 25 4.4 Spuštění simulátoru... 28 4.5 Simulace činnosti čítače... 29 5 Ověření funkce na reálném obvodu FPGA... 30 5.1 Zapojení přípravku... 30 5.2 Režim Implementace... 32 5.3 PlanAhead... 34 5.4 Syntéza a implementace pro zvolenou architekturu FPGA obvodu... 36 5.5 Příklad odstranění chyby vypsané v procesu Place & Route... 38 5.6 Konfigurace obvodu programem impact... 40 5.7 Ověření funkčnosti obvodu... 42 5.8 Test... 43 5.9 Přehled... 46

1 Vývojový kit Spartan-3E 1.1 Seznámení s přípravkem Xilinx Spartan-3E Pro urychlení vývoje výrobci programovatelných obvodů často nabízí přípravky tzv. vývojové kity, jež disponují mimo vlastního programovatelného obvodu i řadou dalších doplňkových periferií. Typickým příkladem takového vývojového přípravku je Spartan-3E FPGA Starter Kit Board. Stručná charakteristika vybavení přípravku Komponenta FPGA: Spartan 3E CPLD: CoolRunner Xilinx 4 Mbit Flash SDRAM paměť flash pamět LCD display PS/2 port VGA port Ethernet port sériové porty USB port zdroje taktu rozšiřující konektory A/D a D/A převodníky přepínače a tlačítka LED diody Popis Xilinx XC3S500E, 232 využitelných I/O, 320 pinové FBGA pouzdro, více než 10.000 logických buněk Xilinx XC2C64A, 64 makrobuněk konfigurační paměť PROM 64 MByte (512 Mbit) DDR SDRAM paměti, x16 datové rozhraní, 100+ MHz 16 MByte (128 Mbit) paralelní NOR Flash paměti (Intel StrataFlash) + 16 Mbits SPI serial Flash (STMicro) pro uložení konfigurace FPGA a uložení MicroBlaze kódu 2 řádky, 16 znaků pro připojení klávesnice nebo myši pro připojení monitoru 10/100 Mbit/s RS-232, dvojice 9 pinových konektorů 1xDTE+1xDCE USB rozhranní pro konfiguraci a ladění FPGA, CPLD a dalších obvodů vnitřní oscilátor 50 MHz, SMA vstup pro externí zdroj taktu, osmi pinová DIP patice pro přídavný oscilátor Hirose FX2, trojice 6 pinových rozšiřujících konektorů Digilent 4 výstupní D/A konvertory 2 vstupní A/D konvertory s programovatelným předzesílením 1 x otočný spínač s tlačítkovou funkcí, 4 x přepínač, 4 x tlačítko (mikrospínač) 8 indikačních LED diod

1.2 Rozmístění klíčových komponent přípravku Rozmístění hlavních komponent přípravku 7

1.3 Přehled a připojení základních vstupních/výstupních periferií přípravku 1/2 Na následujícím obrázku je uveden detailní pohled na jednodušší periferie přípravku. Popis a označení vstupně/výstupních pinů přepínačů a LED diod Posuvné přepínače Každý přepínač je připojen prostřednictvím plošného spoje k některému z pinů obvodu Spartan-3E. Pokud je přepínač v poloze 1 (ON) je na příslušný pin přivedeno napětí 3,3 V, v opačném případě je daný pin uzemněn. Součástí zapojení není obvod odstraňující vliv zákmitů kontaktů. Odpovídající obvod je doporučeno implementovat přímo do FPGA. 8

Připojení přepínačů ke vstupům obvodu Spartan-3E Přepínač SW0 SW1 SW2 SW3 označení pinu L13 L14 H18 N17 8 LED diod Přehled výstupů, ke kterým jsou připojeny jednotlivé diody, je uveden v následující tabulce. Připojení LED diod k výstupům obvodu Spartan-3E LED diodač LED 0 LED 1 LED 2 LED 3 LED 4 LED 5 LED 6 LED 73 označení pinu F12 E12 E11 F11 C11 D11 E9 F9 9

1.4 Přehled a připojení základních vstupních/výstupních periferií přípravku 2/2 Popis a označení vstupně/výstupních pinů mikrospínačů a otočného přepínače Tlačítka (mikrospínače) Tlačítka přípravku jsou připojena obdobným způsobem jako přepínače. V případě použití tlačítek je nebytné aktivovat interní pull-down rezistor, který zajistí připojení nulového napětí na vstup v době, kdy je kontakt mikrospínače rozpojen a odpovídající vstup FPGA obvodu je pak nezapojen. Uvedený problém není nutné řešit u posuvných přepínačů, pokud nepožadujeme ošetření vstupů i v době přepnutí přepínače. Připojení tlačítek ke vstupům obvodu Spartan-3E tlačítko BTN_WEST BTN_NORTH BTN_EAST BTN_SOUTH označení pinu D18 V4 H13 K17 10

Tlačítkový otočný přepínač V případě ROT_A a ROT_B kontaktů otočného přepínače je nezbytné aktivovat pool-up rezistor. Detailní rozbor zapojení obou kontaktů lze dohledat v uživatelském manuálu [6]. Připojení kontaktů otočného přepínače ke vstupům obvodu Spartan-3E otočný spínač ROT_A ROT_B ROT_CENTER označení pinu K18 G18 V16 V předchozím textu jste se seznámili s uspořádáním klíčových komponent vývojového kitu Xilinx Spartan-3E se způsobem připojení základních periferií. Přičemž pro další návrh je nezbytné znát obvodové propojení těchto komponent s programovatelným obvodem Sparten-3E (FPGA). Nyní můžeme přistoupit k další části textu, návrhu a realizaci jednoduchého sekvenčního obvodu. 11

2 Specifikace zadání 2.1 Realizujte čtyřbitový Johnsonův čítač V následujícím textu se budeme zabývat realizací jednoduchého sekvenčního logického obvodu. Konkrétně půjde o realizaci čtyřbitového čítače čítajícího v Johnsonově kódu. V tabulce jsou uvedeny požadované stavy čítače. Jde o čítač modulo 8. Z tabulky je zřejmé, že jde o jistý druh kruhového posuvného registru. Johnsonův kód N q 1, q 2, q 3, q 4 0 0 0 0 0 1 1 0 0 0 2 1 1 0 0 3 1 1 1 0 4 1 1 1 1 5 0 1 1 1 6 0 0 1 1 7 0 0 0 1 12

2.2 Schéma zapojení Návrh tohoto typu obvodu lze za předpokladu znalosti principu činnosti základních typů klopných obvodů provést intuitivně. Podrobný popis činnosti klopných obvodů lze nalézt např. v [1] nebo [4]. Pro vlastní realizaci zvolme klopné obvody typu D, jež jsou přímo součástí použitého FPGA obvodu Spartan- 3E. Logická hodnota na výstup q i je v případě prvních tří klopných obvodů i = 1, 2, 3 přenesena s dalším hodinovým pulzem na výstup q i + 1 následujícího klopného obvodu. Na vstup prvního klopného obvodu je pak přivedena negace výstupu posledního klopného obvodu, tj. q 1 <= not q 4 (operátor <= zde má význam přiřazení signálu, podrobněji viz popis základní syntaxe jazyka VHDL [1]). Na výstupu q 4 tohoto čítače je hodinový signál podělen, přičemž dělící poměr je dán vztahem: 1 k =, 2n kde n je počet bitů, resp. klopných obvodů, čítače. Je tak možné vytvořit děliče kmitočtů se střídou výstupního signálu 1:1. Schéma zapojení čtyřbitového Johnsonova čítače modulo 8 13

3 Úvod do prostředí Xilinx WebPack 3.1 Založení nového projektu V době vytváření tohoto textu je k dispozici verze 13.3 vývojového prostředí ISE Design Suite. Dále uvedený postup je vytvořen pro tuto verzi, přičemž jej lze využít i pro starší a pravděpodobně i novější verze tohoto prostředí. Spusťte vývojové prostředí Xilinx ISE prostřednictvím zástupce v nabídce start: Start > Všechny programy > Xilinx ISE Design Suite 13.3 > ISE Design Tools > 64-bit Project Navigator nebo přímo zástupcem Xilinx ISE Design Suite 13.3 na ploše. Po otevření vývojového prostřední bývá ve výchozí konfiguraci načten poslední otevřený projekt. Toto chování lze změnit volbou Always open last project v okně nastavení: Edit > Preferences > ISE General. Vzhledem k tomu, že budeme vytvářet nový projekt, volbou z menu: File\Close Project stávající projekt uzavřeme a vytvoříme nový projekt: File > New Project s názvem Johnson například v adresáři předmětu: D:\A2B99DIT\Po0915 viz obrázek. Protože náš první projekt bude vycházet ze schematického popisu navrhovaného obvodu, zvolte v seznamu Top-level source type: položku Schematic a pokračujte tlačítkem Next. Výchozí volba HDL je vhodná pro případ, kdy je projekt založen na popisu obvodu prostřednictvím některého z jazyků HDL (Hardware Description Language). Konkrétně lze použít jazyk VHDL (VHSIC Hardware Description Language) nebo Verilog. 14

3.2 Volba cílové platformy a simulátoru Vzhledem k tomu, že vývojové prostředí je totožné pro všechny programovatelné obvody firmy Xilinx, je nutné v následujícím okně zvolit cílovou platformu, na které bude náš projekt vyvíjen. Je možné vybrat jak konkrétní obvod (položky: Family, Device, Package, Speed), tak i celou vývojovou desku. Volbou: Evaluation Development Board: Spartan-3E Starter Board dojde k automatickému nastavení správného typu obvodu FPGA, tj. Spartan-3E (Family), označení obvodu (Device): XC3S500E, pouzdro (Package): FG320 a hodnota položky Speed, která globálně popisuje možnosti časování jednotlivých částí obvodu. Položka Simulator určuje typ simulačního nástroje, který bude v projektu použit. Je možné volit mezi následujícími simulátory: ISim: simulátor firmy Xilinx, Modelsim: simulátor firmy Mentor Graphics, Questa: simulátor firmy Mentor Graphics s podobnými vlastnostmi jako Modelsim, navíc umožňuje provádět pokročilé analýzy obvodu (Advanced Verification Methods). V našem projektu zvolíme simulátor ISim (VHDL/Verilog) a jako preferovaný jazyk vybereme VHDL. Zbývající položky necháme ve výchozím nastavení, viz obrázek. 15

Pokračováním, tlačítko Next, je zobrazeno okno s přehledem dosud zadaných parametrů, jehož potvrzením, tlačítko Finish, je ukončen proces vytvoření nového projektu. 16

3.3 Realizace Johnsonova čítače Při implementaci modulu Johnsonova čítače použijeme schematický popis navrhovaného obvodu. Do projektu vložíme nový soubor se schématem. V okně Design klikneme pravým tlačítkem na název projektu a z kontextového menu vybereme první položku New Source, případně je možné použít i ikonu z panelu nástrojů okna Desing. V následujícím dialogovém okně je možné zvolit typ nového souboru (modulu). Mezi nejčastěji využívané moduly patří: Schematic: soubor se schématem, vytvořený v integrovaném schematickém editoru, VHDL Modul: soubor s VHDL kódem, popisujícím funkci obvodu, VHDL Library: obsahuje soubor předpřipravených a odladěných VHDL kódů, VHDL Test Bench: soubor sloužící například k otestování navrhovaného modulu. Zvolte typ Schematic a nově vytvářený soubor pojmenujte například johnson. Tlačítky Next a následně Finish ukončete průvodce přidáním nového souboru. Dále můžete pokračovat v tvorbě vlastního schématu. 17

3.4 Popis schematického editoru Na následujícím obrázku je okno s integrovaným editorem schémat. Současně jsou vyznačeny potřebné ovládací prvky nezbytné k vytvoření schématu. Nejprve umístíme prostřednictvím nástroje Add Symbol na pracovní plochu potřebné logické členy: 4x FDR: bistabilní klopný obvod typu D se synchronním resetem, 1x INV: invertor. Jednotlivé logické členy jsou po výběru nástroje Add Symbol zobrazeny formou seznamu v podokně Symbols, kde jsou roztříděny do jednotlivých kategorií. Standardní logické členy naleznete v kategorii Logic, klopné obvody pak v kategorii Flip_Flop. 18

3.5 Pojmenování logických členů Logické členy jsou pojmenovány standardním způsobem (and, nand, or, nor, xor, inv, xnor), přičemž číslo v názvu součástky vyjadřuje počet vstupů součástky. Vyskytuje-li se v názvu součástky po čísle ještě písmeno b, za nímž následuje další číslo, označuje pak toto číslo počet negovaných vstupů. Např. nand3b1 představuje označení třívstupého hradla NAND s jedním negovaným vstupem. K dispozici jsou tři různé typy klopných obvodu: D, JK a T s různými variantami synchronních a asynchronních vstupů. Značení se skládá z několika písmen, např.: FDPE_1, Význam písmen ve zkratce je následující: F: klopný obvod (Flip-Flop), D: klopný obvod typu D, JK: klopný obvod typu JK, T: klopný obvod typu T, P: asynchronní vstup Preset, C: asynchronní vstup Clear, S: synchronní vstup Set, R: synchronní vstup Reset, E: vstup clock enable, _1: negovaný hodinový vstup. V projektu využijeme klopný obvod typu D se synchronním vstupem Reset: FDR. K dispozici jsou i další zajímavé kategorie předpřipravených modulů: Arithmetic: různé varianty sčítaček a násobiček, Comparator: různé verze komparátorů (větší/menší - GT/LT, rovno - EQ), Counter: různé varianty čítačů, např. Binary (B), BCD (D), Binary Carry Logic (C), Johnson (J), Ripple (R), Decoders: dekodéry Flip_Flop: klopné obvody řízené hranou hodinového pulzu, viz popis výše, General: obecné symboly, např. GND, VCC, PullDown, PullUP, Latch: klopné obvody řízené úrovní 19

Logic: základní členy kombinační logiky (AND, NAND, OR, NOR, XOR, ), Memory: paměti s různou délkou slova (1, 2, 4,8 bitů), Mux: multiplexery, Shift_Registers: posuvné registry. V dalším kroku jednotlivé součástky propojíme prostřednictvím nástroje Add Wire. Vytvoření uzlu je ve schématu označeno modrým čtvercem. 20

3.6 Pojmenování spojnic, definice vstupně/výstupních portů Po vykreslení celého zapojení Johnsonova čítače je nutné pojmenovat jednotlivé vstupy a výstupy navrhovaného obvodu. Editor každé nově vytvořené spojnici přiřadí automatický název ve formátu: XLXN_34, kde číslo za podtržítkem vyjadřuje pořadové číslo spojnice ve schématu. Pro snadnější orientaci v návrhu je vhodné jednotlivé spoje přejmenovat tak, aby jejich název odpovídal signálu, který přenáší (např.: clock, reset, q1, q2, q3, q4). Volbou nástroje Add Net Name se současně automaticky stane aktivní záložka Options v panelech nástrojů, kde je možné zapsat nový název spojnice, např. clock. Kliknutím na spojnici dojde k jejímu přejmenování. V posledním kroku je nutné dodefinovat vstupní a výstupní porty prostřednictvím nástroje Add I/O Marker. Celé schéma je možné automaticky zkontrolovat nástrojem: Tools > Check Schematic. Kontrola však neodhalí funkční chyby návrhu. Případné chyby ve schématu jsou vypsány v okně Console. 21

4 Simulace 4.1 Behaviorální simulace V další části návrhu se budeme zabývat funkční Behavioralní simulací navrhovaného obvodu v simulačním nástroji ISim, jež je přímou součástí vývojového prostředí Xilinx ISE Design Suite. Funkční simulací je myšlena simulace obvodu z hlediska principu jeho činnosti, tj. bez uvažování reálných vlastností obvodu. Vývojové prostředí umožňuje provádět simulace v různých fázích návrhu. Jednotlivé fáze návrhu je možné vidět v režimu Implementace v panelu Proceses (záložka Design): Desing Summary/Reports: statistiky návrhu (například využití jednotlivých částí komponent obvodu), Design Utilities: umožňuje například zobrazit realizaci schématického popisu ve VHDL kódu, User Constraints: v této části se provádí mapování vstupně výstupních pinů k jednotlivým signálům Synthesize XST: syntéza navrhovaného obvodu, zobrazení RTL, Implement Design: Translate, Map, Place & Route, Generate Programming File: vytvoření souboru pro konfiguraci FPGA, Configure Target Device: naprogramování obvodu, Analyze Design Using ChipScope: Analýza návrhu programem ChipScope. 22

23

4.2 Vytvoření testovacího souboru Test Bench Test Bench: je testovací soubor umožňující simulovat (testovat) chování navrhovaného obvodu, za předem stanovených podmínek. Pro zápis tohoto souboru se zpravidla používá syntaxe jazyka VHDL případně Verilog. Soubor definuje hodnoty a časování vstupních signálů, dále může obsahovat popis očekávaných výstupních hodnot umožňující automatizovat celý testovací proces. Nejprve přepněte prostředí z režimu Implementace do režimu Simulace. Přepnutím do režimu simulace je zpřístupněno menu pro výběr úrovně simulace, od nejjednodušší funkční (Behaviorální) až po simulaci s využitím modelu reálného obvodu po implementaci (Post-Route). Prozatím zvolte nejjednodušší metodu Behavioral. Připravte nový testovací soubor, VHDL testbench. Stejným způsobem jako v případě souboru se schématem využijte průvodce pro přidání nového souboru. Nejprve klikněte na ikonu New Source. V následujícím okně tentokráte zvolte jako typ nově vyvářeného souboru VHDL Test Bench. Po doplnění názvu souboru, např. johnson_testbench pokračujte tlačítkem Next. V následujícím okně je možné vybrat zdrojový soubor modulu, pro který bude testbench vytvořen. Tlačítky Next a Finish v následujícím okně potvrďte ukončení průvodce. 24

4.3 VHDL Test Bench V předchozím kroku vytvořilo vývojové prostředí kostru pro nově vytvářený testbench. V takto vytvořeném VHDL modulu je použita komponenta johnson vycházející z vytvořeného schématu jako testovaná jednotka UUT - Unit Under Test. Strukturu a syntaxi vytvořeného souboru prostudujte. V kostře takto automaticky vytvořeného souboru nalezněte sekci začínající řádkem: -- *** Test Bench - User Defined Section *** a končící řádkem: -- *** End Test Bench - User Defined Section *** Tato část souboru je určena pro definici vstupních signálu pro naši testovanou jednotku UUT johnson. VHDL kód mezi výše uvedenými řádky nahraďte následujícím kódem: reset_gen : PROCESS BEGIN reset <= '1'; WAIT FOR 95 ns; reset <= '0'; WAIT; -- will wait forever END PROCESS; clock_gen : PROCESS BEGIN clock <= '1'; WAIT FOR 50 ns; clock <= '0'; WAIT FOR 50 ns; END PROCESS; Výše uvedený kód popisuje dva procesy, přičemž první definuje vstupní signál reset a druhý hodinový signál clock. Detailní popis syntaxe lze nalézt například v literatuře [1] nebo [4]. 25

Obsah celého souboru johnson_testbench.vhd je k nahlédnutí zde: -- Vhdl test bench created from schematic D:\A2B99DIT\Po0915\Johnson\johnson.sch - Tue Jan 03 21:18:45 2012 -- -- Notes: -- 1) This testbench template has been automatically generated using types -- std_logic and std_logic_vector for the ports of the unit under test. -- Xilinx recommends that these types always be used for the toplevel -- I/O of a design in order to guarantee that the testbench will bind -- correctly to the timing (post-route) simulation model. -- 2) To use this template as your testbench, change the filename to any -- name of your choice with the extension.vhd, and use the "Source->Add" -- menu in Project Navigator to import the testbench. Then -- edit the user defined section below, adding code to generate the -- stimulus for your design. -- LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.numeric_std.all; LIBRARY UNISIM; USE UNISIM.Vcomponents.ALL; ENTITY johnson_johnson_sch_tb IS END johnson_johnson_sch_tb; ARCHITECTURE behavioral OF johnson_johnson_sch_tb IS 26

BEGIN COMPONENT johnson PORT( reset : IN STD_LOGIC; clock : IN STD_LOGIC; q4 : OUT STD_LOGIC; q1 : OUT STD_LOGIC; q2 : OUT STD_LOGIC; q3 : OUT STD_LOGIC); END COMPONENT; SIGNAL reset : STD_LOGIC; SIGNAL clock : STD_LOGIC; SIGNAL q4 : STD_LOGIC; SIGNAL q1 : STD_LOGIC; SIGNAL q2 : STD_LOGIC; SIGNAL q3 : STD_LOGIC; UUT: johnson PORT MAP( reset => reset, clock => clock, q4 => q4, q1 => q1, q2 => q2, q3 => q3 ); -- *** Test Bench - User Defined Section *** reset_gen : PROCESS BEGIN reset <= '1'; WAIT FOR 95 ns; reset <= '0'; WAIT; -- will wait forever END PROCESS; clock_gen : PROCESS BEGIN clock <= '1'; WAIT FOR 50 ns; clock <= '0'; WAIT FOR 50 ns; END PROCESS; -- *** End Test Bench - User Defined Section *** END; 27

4.4 Spuštění simulátoru V předchozím bodu návrhu jsme vytvořili testovací soubor pro navrhovaný čítač. Nyní tento soubor využijte pro spuštění simulačního programu ISim. Důležité je, aby v okně Hierarchy byl označen soubor obsahující testbench johnson_testbench.vhd a nikoliv soubor s testovaným modulem johnson.sch. Poklepáním na položku Simulate Behavioral Model spusťte simulační program ISim. Při vytváření projektu jsme zvolili jako simulační nástroj, program ISim. Pokud bychom v tomto kroku návrhu zvolili například simulátor Modelsim, spustil by se stejným způsobem i tento nástroj. 28

4.5 Simulace činnosti čítače Ve výchozím nastavení je po spuštění simulátoru odsimulováno prvních 1 000 ns. Tuto výchozí hodnotu je možné změnit ve vlastnostech (Properties) procesu Simulate Behavioral Model Prozkoumejte jednotlivé panely nástrojů, primárně se zaměřte na panely vyznačené na obrázku.. Prostřednictvím ikony Zoom to Full View, zobrazte celý průběh všech signálů. Simulátor je možné ovládat i z příkazové řádky, okno Console. Například příkazem: # run 1.00us je možné pokračovat v simulaci další mikrosekundu. Výsledek simulace odpovídá požadované činnosti obvodu, viz tabulka s Johnsonovým kódem. Pro přeuspořádání pořadí jednotlivých signálů je možné jednotlivé průběhy přesunout na požadované pozice. Vyzkoušejte si použití kurzorů, snažte se změřit periodu navrženého čítače, viz obrázek. Dále určete v jakém poměru je kmitočet hodinového signálu a výstupů jednotlivých klopných obvodů. 29

5 Ověření funkce na reálném obvodu FPGA 5.1 Zapojení přípravku Po úspěšném návrhu a ověření správnosti zapojení můžeme přistoupit k vlastnímu procesu implementace našeho čítače do reálného obvodu. Pro implementaci bude použit přípravek Spartan-3E FPGA Starter Kit Board popsaný v první části tohoto výukového modulu. Připojte napájení, použijte 5 V napájecí zdroj dodaný k přípravku. Pokud je přepínač napájení (SWP) v poloze ON měla by se rozsvítit červená LED dioda (PWR LED). Zdroj a způsob načtení konfigurace se volí nastavením tří propojek J30 (jumper) na desce, podrobněji viz [6]. Konfigurace obvodu Spatran-3E může být po připojení napájení načtena například z některé z flash pamětí (Platform Flash PROM, SPI Serial Flash PROM, StrataFlash parallel Flash PROM) nebo prostřednictvím rozhraní JTAG. Pro naše testovací účely zvolíme poslední možnost. Propojeny by měly být pouze piny označené M1. Rozhraní JTAG je návrhovému nástroji zpřístupněné prostřednictvím konfiguračního USB portu. Dodaným USB kabelem propojte přípravek (strana kabelu s USB konektorem Typu B) s počítačem (konektor typu A). 30

Před první připojením přípravku k PC je doporučeno nejprve nainstalovat software Xilinx ISE Design Suite včetně ovladačů pro toto rozhraní. Po prvním připojení přípravku k PC je automaticky nainstalován a aktivován odpovídající ovladač. Pokud výše uvedený postup není dodržen, může se stát, že dojde k instalaci jiného ovladače, který neumožňuje korektně programovat obvod. Pokud proběhla správně inicializace USB portu, rozsvítí se zelená LED dioda (LD-G) umístěná v jeho blízkosti. 31

5.2 Režim Implementace V dalším kroku návrhu musíme specifikovat, ke kterým vstupům, resp. výstupům (piny FPGA obvodu), budou připojeny jednotlivé signály. Způsob připojení jednodušších periferií je popsán v úvodní části tohoto modulu. Detailnější popis lze dohledat v dokumentaci k přípravku [6]. Připojení výstupních portů Pro zobrazení stavu čítače zvolte libovolné čtyři diody z bloku osmi indikačních LED diod. Např. Volba výstupních pinů Připojení vstupních portů Navrhovaný čítač disponuje pouze dvěma vstupními signály, reset a clock. Vstupní signál reset ovládejte například přepínačem SW3 a signál clock generujte například jedním z kontaktů otočného přepínače. Volba vstupních pinů Přepněte vývojové prostředí z režimu simulace zpět do režimu implementace (Implementation). 32

Pro přiřazení jednotlivých vstupních/výstupních signálů jednotlivým pinům FPGA obvodu je ve vývojovém prostředí připraven speciální program PlanAhead. Pro jeho spuštění rozbalte v záložce Design položku User Constraints a dvakrát klikněte na Floorplan Area/IO/Logic (PlanAhead). Následující okno informující o přidání nového souboru UCF (User Constraint File) do projektu potvrďte. 33

5.3 PlanAhead Program PlanAhead umožňuje detailně definovat, které signály budou připojeny na jednotlivé vývody (piny) FPGA obvodu. Ve výchozí konfiguraci programu není zobrazen pohled na pouzdro a jednotlivé piny obvodu. Volbou pokožky menu Window > Package je možné tento, pro návrháře plošného spoje, zajímavý pohled zapnout. Vlastní přiřazení jednotlivých signálu se provádí ve spodní části obrazovky, záložka I/O Ports. Klíčové prvky nezbytné pro tento úkol jsou opět vyznačeny v následujícím obrázku. K jednotlivým signálům je nutné doplnit odpovídající vývody pouzdra, sloupec Site. Dále pak je nutné pro vstupní porty specifikovat ve sloupci PullType charakter vstupu (PullUu, PullDown, ), viz kapitola popisující periferie přípravku. Zavřete okno programu PlanAhead, v následujícím dialogu potvrďte uložení nově vytvořeného UCF souboru. Výstupem programu PlanAhead je textový soubor UCF (User Constraint File) jehož obsah je možné zobrazit například v textovém editoru přímo v prostředí WebPack. Příklad výpisu obsahu souboru johnson.ucf NET "clock" LOC = D18; 34

NET "q1" LOC = F9; NET "q2" LOC = E9; NET "q3" LOC = D11; NET "q4" LOC = C11; NET "reset" LOC = N17; NET "clock" PULLDOWN; NET "reset" PULLDOWN; 35

5.4 Syntéza a implementace pro zvolenou architekturu FPGA obvodu Dalšími kroky návrhu jsou syntéza (Synthesize), mapování na použitou technologii (Map) a rozmístění a propojení (Place & Route). Syntéza (Synthesize) je proces, při kterém návrhový software realizuje požadovaný obvod na základě z vysoce abstraktního zápisu většinou ve formě VHDL kódu. Při tomto procesu se syntetizátor (program provádějící syntézu) snaží optimálně ve zdrojovém VHDL kódu detekovat základní stavební bloky logických obvodů (kombinační logické obvody, registry, ), dochází zde například k volbě kódování vnitřních stavů sekvenčních logických obvodů. Mapování (Map) je proces, při kterém dochází ke konverzi mapování technologicky nezávislého popisu obvodu (popsaného např. prostřednictvím netlistu), do struktur logických bloků dostupných ve zvoleném cílovém obvodu. Rozmístění a propojení (Place & Route). V tomto procesu dochází k výslednému rozmístění jednotlivých logických bloků získaných předchozím procesem mapování do matice zvoleného FPGA obvodu. Dále dochází k vytváření vhodné propojovací struktury mezi těmito bloky. Spusťte jednotlivé kroky návrhu postupně dvojklikem na příslušný proces v záložce Design. Pokud daný proces návrhu proběhl korektně, je před jeho názvem zelené zatržítko. Při výskytu varovných hlášení se před daným procesem objeví symbol žlutého trojúhelníku s vykřičníkem, chyba je indikována červeným křížkem. Současně je vhodné sledovat výstupy jednotlivých kroků návrhu v okně Console. Pokud jste postupovali dle pokynů, měla by se v průběhu procesu (Place & Route) objevit následující chyba, viz obrázek. 36

Pokuste se vlastními silami (Internet, literatura,...) vyhledat řešení, podrobný popis problému lze nalézt v okně Console. V případě, že se Vám řešení nepodaří nalézt v následujících 10 minutách, neztrácejte drahocenný čas a podívejte se na následující obrazovku. 37

5.5 Příklad odstranění chyby vypsané v procesu Place & Route Pokud jste chybové hlášení dočetli až do konce, pravděpodobně jste nalezli i řešení problému, jež vznikl v průběhu zpracování procesu Place & Route. Důvodem vzniku chyby je nestandartní propojení signálu clock přímo na jeden ze vstupů FPGA obvodu. Pro ověření funkce obvodu jsme se totiž rozhodli použít poněkud nevhodný zdroj hodinového signálu, jeden z kontaktů otočného přepínače. Návrhový software toto, pro praxi neobvyklé zapojení, označuje jako chybné, protože předpokládá použití v obvodu integrované architektury pro rozvod hodinového signálu. Řešení Řešením je povolení takto nestandartního návrhu doplněním příslušného řádku: NET "clock" CLOCK_DEDICATED_ROUTE = FALSE; do souboru UCF, viz následující obrázek. Další spuštění procesu Place & Route by již mělo proběhnout bez chyb. Pro jistotu se podívejte do logu a zjistěte počet varovných a chybových hlášení. Předposledním krokem návrhu je vygenerování konfiguračního souboru, spusťte proces Generate Programming File. 38

Dále pak pokračujte vlastním naprogramování FPGA obvodu prostřednictvím rozhraní JTAG. Pro vlastní konfiguraci je v prostředí opět připravena speciální aplikace impact. Pro její spuštění aktivujte proces Manage Configuration Proces (impact). 39

5.6 Konfigurace obvodu programem impact Program impact umožňuje konfiguraci programovatelných obvodů na přípravku prostřednictvím rozhraní JTAG. Prostřednictvím položky z menu: Edit > Launch Wizard spusťte průvodce. V následujícím okně použijte výchozí nastavení, viz obrázek. Pokud je přípravek připojen k PC proběhne jeho detekce a otevře se dialog pro výběr konfiguračního souboru pro FPGA obvod. Program si bohužel pamatuje poslední pracovní adresář, ujistěte se proto, že jste v adresáři správného projektu a vyberte soubor s příponou *.bit: johnson.bit. Volbu potvrďte tlačítkem Open. V dalším dialogu zamítněte konfiguraci Flash PROM tlačítkem No. Průvodce dále pokračuje dotazem na přiřazení konfiguračních souborů pro Flash paměť a obvod CPLD. V obou případech zamítněte volbu konfiguračního souboru tlačítkem Bybass. Poslední dialogové okno průvodce potvrďte tlačítkem OK. Klikněte pravým tlačítkem na první z obvodů a z kontextového menu vyberte první položku Program. Tímto krokem je dokončen proces programování FPGA obvodu. 40

Pokud byl proces programování úspěšný, objeví se v hlavním okně programu impact zpráva Program Succeeded. Současně dojte i k rozsvícení oranžové diody označené XC-DONE. 41

5.7 Ověření funkčnosti obvodu Po naprogramování přípravku ověřte správnou činnost navrhovaného obvodu pootočením přepínače. Jaký je závěr z Vašeho testování? Pokud jste objevili nějaký problém, pokuste se identifikovat jeho příčinu. 42

5.8 Test 1. Zvolte správné pořadí při návrhu následujících procesů: mapování (Map), rozmístění a propojení (Place & Route), syntéza (Synthesize)? a) mapování (Map), rozmístění a propojení (Place & Route), syntéza (Synthesize) b) syntéza (Synthesize), mapování (Map), rozmístění a propojení (Place & Route) c) rozmístění a propojení (Place & Route), mapování (Map), syntéza (Synthesize) správné řešení: b 2. K čemu slouží soubor UCF (User Constraint File)? a) Obsahuje celý výpis (log) procesu návrhu (od procesu mapování až po syntézu) b) Obsahuje výstup automatizovaného procesu Place&Route, tj. rozmístění a propojení automaticky zvolených bloků. c) Přiřazuje jednotlivé signály jednotlivým vývodům FPGA obvodu. správné řešení: c 3. Jaký jazyk byl v právě vytvářené projektu použit pro tvorbu testovacího modulu (testbench file)? a) VHDL b) Žádný, použili jsme schéma c) Verilog správné řešení: a 4. Který z režimů simulace poskytuje přesnější výsledky, tj. více se přibližuje reálné činnosti obvodu? a) Behavioral b) Post Route c) Post-Map správné řešení: b 43

5. Jaké značení bude mít v knihovně součástek hradlo AND se třemi vstupy a jednou negací na výstupu? a) and1b3 b) and3b1 c) nand3 správné řešení: c 6. Klopný obvod JK s asynchronním resetem bude v knihovně označen: a) fdce b) fjkc c) ftc správné řešení: b 7. Klopný obvod D se synchronním resetem bude v knihovně označen: a) fdc b) fjkc c) ftce správné řešení: a 8. Tříbitový Johnsonův čítač bude: a) dělit hodinový kmitočet šesti. b) násobit hodinový kmitočet třemi. c) dělit hodinový kmitočet třemi. správné řešení: a 9. Soubor Testbench je: a) definičním souborem pro program Benchmark umožňující otestovaní výkonu FPGA obvodu b) VHDL soubor sloužící k ověření správné činnosti zvoleného modulu c) binárním souborem pro program impact, umožňující naprogramování a ověření funkce FPGA obvodu. správné řešení: b 44

10. VHDL modul je: a) textový soubor s VHDL kódem popisujícím činnost obvodu b) textový soubor s binárním kódem popisujícím činnost obvodu c) nástroj umožňující vytvořit čítač s libovolným počtem stavů X (čítač modulo X) správné řešení: a 11. Projekt v prostředí Xilinx ISE Project Navigator může obsahovat: a) Pouze jeden modul od každého typu b) Libovolný počet modulů o libovolném typu c) Pouze moduly shodného typu správné řešení: b 12. Pro definování vstupu a výstupů se v schematickém editoru používá nástroj: a) Add I/O Net b) Add I/O Block c) Add I/O Marker správné řešení: c 13. Rozhraní JTAG se u přípravku používá: a) pro konfiguraci jednotlivých programovatelných obvodů b) k distribuci taktovacího signálu c) rozvodu napájení správné řešení: a 14. Čítač modulo 4 a) je složen ze čtyř klopných obvodů b) cyklicky prochází čtyřmi stavy c) čítá v přímém kódu od hodnoty 000 do hodnoty 100 správné řešení: b 45

5.9 Přehled V průběhu tohoto krátkého textu jste se seznámili s realizací jednoduchého sekvenčního logického obvodu Johnsonova čítače. Prostudovali jste dostupnou součástkovou základnu obvodu Spartan-3E. Na základě schematického popisu se Vám podařilo vytvořit ve schematickém editoru odpovídající realizaci navrhovaného obvodu. V další části jste se seznámili s možnostmi simulace navrhovaného obvodu v programu ISim. Osvojili jste si základní postupy práce v komplexním návrhovém prostředí Xilinx ISE Design Suite. Na praktickém příkladu jste dospěli k závěru, že mimo vlastního ověření funkčnosti obvodu simulací, je nezbytné obvod otestovat i po vlastní implementaci na zvolené cílové platformě. 46