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

Transkript

Úvod do vývojového prostředí Xilinx WebPack
Ú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
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
LCD display
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ů
PS/2 port
pro připojení klávesnice nebo myši
VGA port
pro připojení monitoru
Ethernet port
10/100 Mbit/s
sériové porty
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
SDRAM paměť
flash pamět
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
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č
označení pinu
SW0
L13
SW1
L14
SW2
H18
SW3
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č
označení pinu
LED 0
F12
LED 1
E12
LED 2
E11
LED 3
F11
LED 4
C11
LED 5
D11
LED 6
E9
LED 73
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
označení pinu
BTN_WEST
D18
BTN_NORTH
V4
BTN_EAST
H13
BTN_SOUTH
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č
označení pinu
ROT_A
K18
ROT_B
G18
ROT_CENTER
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
q1 , q2 , q3 , q4
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 Spartan3E. Logická hodnota na výstup qi 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 qi +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. q1 <= not q4 (operátor <= zde má
význam přiřazení signálu, podrobněji viz popis základní syntaxe jazyka VHDL
[1]).
Na výstupu q4 tohoto čítače je hodinový signál podělen, přičemž dělící poměr je
dán vztahem:
k=
1
,
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í
navrhovaného obvodu v simulačním nástroji ISim, jež je přímou
vývojového prostředí Xilinx ISE Design Suite. Funkční simulací je
simulace obvodu z hlediska principu jeho činnosti, tj. bez uvažování
vlastností obvodu.
simulací
součástí
myšlena
reálných
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
COMPONENT johnson
PORT( reset :
IN
clock
:
q4 :
OUT
q1 :
OUT
q2 :
OUT
q3 :
OUT
END COMPONENT;
SIGNAL
SIGNAL
SIGNAL
SIGNAL
SIGNAL
SIGNAL
reset
clock
q4 :
q1 :
q2 :
q3 :
STD_LOGIC;
IN
STD_LOGIC;
STD_LOGIC;
STD_LOGIC;
STD_LOGIC;
STD_LOGIC);
:
STD_LOGIC;
:
STD_LOGIC;
STD_LOGIC;
STD_LOGIC;
STD_LOGIC;
STD_LOGIC;
BEGIN
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
NET
NET
NET
NET
"q1" LOC = F9;
"q2" LOC = E9;
"q3" LOC = D11;
"q4" LOC = C11;
"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

Podobné dokumenty

Open Source Programování - Introduction GNU - Real

Open Source Programování - Introduction GNU - Real The Open Graphics Project ­OGD1 První návrh je prototypová deska pro PCI  sběrnici. Podporuje dva DVI porty a TV  výstup Algoritmy pro zobrazování a akceleraci  grafiky jsou realizované pomoci FPG...

Více

Recepty z olivového oleje a oliv

Recepty z olivového oleje a oliv určitě uţívali a plnili své fotoaparáty, videokamery nebo jen oči obrazy krajin, lidí a staveb, uši nejrůznější změtí jazyků, tónů a zvuků. A váš jazyk určitě ochutnával jídla a nápoje do sytosti, ...

Více

Programovatelné automaty KOYO CLICK

Programovatelné automaty KOYO CLICK Programovatelné automaty KOYOTM CLICK – TECON spol. s.r.o Vrchlabí okno „Contact Normally Open“ ve kterém zvolíme příslušný kontakt. V našem případě se bude jednat o kontakt X1.

Více

Stáhnout - ELCOM, as

Stáhnout - ELCOM, as 1. Studená rezerva - doba prodlevy v dodávce energie do 2 s. Zátěž je napájena přímo ze sítě přes silovou svorkovnici záskokového zdroje. Záskokový zdroj je vypnut a není připojen k baterii. Při vý...

Více

sborník

sborník Modul rozhraní UTOPIA byl navrhován v jazyce VHDL. Ten patří do skupiny jazyků sloužících pro popis číslicových obvodů a je využíván k navrhování zákaznických obvodů typu ASIC a programovatelných l...

Více