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

Podobné dokumenty
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

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

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

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

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

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

Tlačítka. Konektor programování

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

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

Příloha 6. Palety nástrojů

MS Word 2007 Šablony programu MS Word

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

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

PROGRAMOVATELNÉ AUTOMATY FATEK

MIDAM Simulátor Verze 1.5

MS SQL Server 2008 Management Studio Tutoriál

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

Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. PORTÁL KUDY KAM. Manuál pro administrátory. Verze 1.

8.3 Popis dialogových oken

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

Microsoft Office. Word hromadná korespondence

Cvičení 1 Logická hradla

tohoto systému. Můžeme propojit Mathcad s dalšími aplikacemi, jako je Excel, MATLAB, Axum, nebo dokumenty jedné aplikace navzájem.

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

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

PROGRAMOVATELNÁ LOGICKÁ POLE A JAZYKY HDL

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

Microsoft Office. Word vzhled dokumentu

2 PŘÍKLAD IMPORTU ZATÍŽENÍ Z XML

Simulace v Quartus II 13.0sp1

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

Návod ke cvičení předmětu BPGA ControlLogix

Návrh. číslicových obvodů

Omezení funkcionalit v softwaru STATISTICA

ANALYSIS SERVICES PROJEKT VYTVOŘENÍ PROJEKTU A DATOVÉ KOSTKY

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

MANUÁL VÝPOČTOVÉHO SYSTÉMU W2E (WASTE-TO-ENERGY)

Uživatelská příručka Autor: Martin Fiala

VComNet uživatelská příručka. VComNet. Uživatelská příručka Úvod. Vlastnosti aplikace. Blokové schéma. «library» MetelCom LAN

MS OFFICE POWER POINT 2010

1. Seznamte se s výukovou platformou FITkit (

První kroky s METEL IEC IDE

Formátování pomocí stylů

Aplikační profily v PLC Tecomat

Postupy práce se šablonami IS MPP

Návod ke cvičení předmětu BPGA SLC 500

STATISTICA. Vlastní menu v programu. StatSoft

Lokality a uživatelé

Manuál programu HPSim

Jak vytvořit vlastní ikonu bloku a faceplate v PCS7 V6.x a 7.x

Nápověda k aplikaci EA Script Engine

IBRIDGE 1.0 UŽIVATELSKÝ MANUÁL

Úvod...1 Instalace...1 Popis funkcí...2 Hlavní obrazovka...2 Menu...3 Práce s aplikací - příklad...5

Psaní programu pro PLC SIMATIC S7-300 pomocí STEP 7

Reliance 3 design OBSAH

XC3000(A) / XC3100(A)

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

Na vybraném serveru vytvoříme MySQL databázi. Soubory scratch.jpa, kickstart.php a en-gb.kickstart.ini nahrajeme na vybraný server.

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

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

Návrh ovládání zdroje ATX

Dokument a jeho části oddíly, záhlaví, zápatí

Komunikace se snímačem vlhkosti a teploty po protokolu Modbus RTU - z IDEC SmartAxis Touch

Spuštění a ukončení databázové aplikace Access

CAD library. Spuštění aplikace. Práce s aplikací. Popis okna

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

1 Návod na instalaci prostředí LeJOS-NXJ a přehrání firmwaru NXT kostky

Nástrojová lišta v editačním poli

PicoBlaze lekce 1: assembler, C překladač a simulační prostředí Jiří Svozil, Leoš Kafka, Jiří Kadlec svozil@utia.cas.cz

Co je potřeba k realizaci příkladu

Projektová dokumentace GED 2006

Část 3 Manuál pro správce

Instalační a uživatelská příručka aplikace VHDT

Postup získání a nastavení připojovacího certifikátu pro úložiště SÚKL k použití pro elektronické recepty v systému Mediox

Nastavení hardwarové konfigurace pro CPU 314C-2DP v programu SIMATIC Manager

Digitální učební materiál

Cíle. Teoretický úvod

DŮLEŽITÉ INFORMACE, PROSÍM ČTĚTE!

DUM 06 téma: Tvorba makra pomocí VBA

Pravidla a plánování

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Návod k obsluze výukové desky CPLD

BIOS. Autor: Bc. Miroslav Světlík

Implementace LMS MOODLE. na Windows 2003 Server a IIS 6.0

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

VYUŽITÍ GRAFICKÉHO UŽIVATELSKÉHO ROZHRANÍ MATLABU VE VÝZKUMU A VÝUCE MĚŘENÍ

MIDAM Verze 1.1. Hlavní okno :

Interface LPG / CNG Bluetooth. Instrukce k instalaci a konfiguraci zařízení v1.0 cz. U rozhraní bluetooth není instalace ovladače potřebná.

Instalace SW VIS z internetu - Opakovaná instalace, instalace upgrade

2.3.3 PRÁCE S JEDNÍM A VÍCE DOKUMENTY

Workshop. Vývoj embedded aplikací v systému MATLAB a Simulink. Jiří Sehnal sehnal@humusoft.cz. info@humusoft.cz.

Práce s programem MPVaK

Logické řízení s logickým modulem LOGO!

František Hudek. duben ročník

Instalace Microsoft SQL serveru 2012 Express

Instalace SW VIS z internetu - Nová instalace. Spuštění instalačního programu. Podrobný popis nové instalace SW VIS

Popis programu EnicomD

Tiskové sestavy. Zdroj záznamu pro tiskovou sestavu. Průvodce sestavou. Použití databází

EVIDENCE DOCHÁZKY SE ČTEČKOU INTAGRAL. příručka uživatele

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

Transkript:

Typické postupy při práci s obvody PLD a FPGA Doc. Ing. Jaromír Kolouch, CSc.

Obsah Jak se můžeme seznámit se základními způsoby práce se systémem... 3 Jak se doporučuje zapisovat kód HDL, aby byl dobře syntetizovatelný... 3 Postupy při simulaci...3 Nastavení doby simulace... 3 Jak se simulací zjistí chování čítačů a stavových automatů v nepracovních stavech... 3 Přidání vnitřních signálů do okna Wave simulátoru... 3 Postupy při syntéze a implementaci...4 Jak se definují atributy signálů na vývodech pouzdra... 4 Jak se definuje počáteční stav registrových signálů po připojení napájecího napětí... 5 Jak se zjistí časové parametry vytvořené konstrukce... 6 Jak se definují vstupy a výstupy s diferenčními signály... 6 Použití bloku DCM... 7 Implementace pamětí RAM, ROM... 7 Postupy při programování...7 Programování obvodů CPLD... 7 Programování (konfigurace) obvodů FPGA... 8 Literatura...8 V tomto textu jsou uvedeny některé postupy, které se v laboratořích Ústavu radioelektroniky při práci s návrhovým systémem ISE firmy Xilinx a s programovatelnými obvody této firmy nejčastěji používají. Tyto postupy se týkají práce s uvedeným návrhovým systémem, s obvody CPLD a FPGA firmy Xilinx a se simulátorem ModelSim, pokud není uvedeno jinak. 2

Jak se můžeme seznámit se základními způsoby práce se systémem Na www stránkách firmy Xilinx bývají ke každé verzi systému ISE dokumenty popisující vzorovou konstrukci v tomto systému a příslušné postupy při jejím zpracování. Pro systém ISE verze 7 jsou to dokumenty [ 5 ], [ 6 ]. Jak se doporučuje zapisovat kód HDL, aby byl dobře syntetizovatelný Doporučení pro zápis kódu u systému ISE jsou uvedena v literatuře [ 4 ]. V ní jsou také další obecná doporučení pro použití jazyků HDL i pro další práci s tímto systémem. Šablony pro popis nejpoužívanějších subsystémů a jazykových konstruktů je možno najít přímo v systému: Edit => Language Templates... Postupy při simulaci Nastavení doby simulace Při simulaci spuštěné z okna Processes for Source (v okně Sources in Project je zvýrazněna položka benče) je v ISE automaticky nastavena doba simulace 1 us. Pokud používáme benč, který obsahuje příkazy pro ukončení simulace, je potřebné v ISE nastavit dobu delší, případně neohraničenou. To se provede klepnutím pravým tlačítkem myši na položku simulace v okně Processes for Source, zde se vybere položka Properties... a v řádku Simulation Run time se zadá požadovaná doba, případně -all pro neohraničenou dobu simulace. Jak se simulací zjistí chování čítačů a stavových automatů v nepracovních stavech První možnost: Do konstrukce se přidá vstup pro asynchronní naplnění stavového registru a odpovídající datové vstupy. Tím je možno vyvolat přechod do libovolně zvoleného počátečního stavu, a další chování se zjistí běžným postupem simulace behaviorálního modelu. Druhá možnost: Počáteční stav se definuje prostředky, které umožňuje použitý návrhový systém. Například u systému ISE je možno počáteční stav definovat v deklaraci registrových signálů v popisu jazykem VHDL (viz část Postupy při syntéze a implementaci). Tato definice počátečního stavu se při simulaci behaviorálního modelu akceptuje. Přidání vnitřních signálů do okna Wave simulátoru Předpokládá se, že byl vytvořen benč některým ze standardních postupů, například pomocí HDL Bencheru (grafické rozhraní spuštěné z Project => New Source... => Test Bench Waveform), kde se automaticky zobrazují signály představující brány (porty) simulované entity. Potřebujeme zobrazit další (vnitřní) signály v konstrukci. V okně Structure simulátoru zvýrazníme položku uut (unit under test), čímž se v okně Signals objeví signály v simulované konstrukci. Myší přetáhneme potřebné signály do okna Wave. Tam se ale neobjeví jejich průběhy, protože simulátor během simulace zaznamenává jen hodnoty těch signálů, které jsou v okně Wave 3

zadány. Musíme tedy provést novou simulaci. V okně Wave klepneme na tlačítko Restart a pak spustíme simulaci (obsahuje-li benč příkazy pro ukončení simulace, použijeme tlačítko Run all). Máme-li v úmyslu změnit zdrojový text nebo přidat další vektory a pak provést znovu simulaci s nezměněným oknem Wave, můžeme formát tohoto okna před zavřením simulátoru uložit (File => Save Format...). Nabídne se tím vytvoření souboru Wave.do, formát však uložíme pod označením *.udo, kde * je název souboru, v němž je benč nejsnadněji se to udělá tak, že v okně pro uložení vybereme v menu okénka Uložit jako typ všechny soubory (*.*) a v nabídce vyhledáme název *.udo * je nyní hledané označení, čímž se dosud prázdný soubor typu udo přepíše novým s údaji o formátu). Pozor na to, že někdy okno pro zápis souboru *.udo nabídne jiný adresář než adresář projektu! Při další simulaci se již v okně Wave objeví okno v uspořádání odpovídajícím uloženému uspořádání, kde je k signálům původně zobrazeným přidána skupina složená z přidaných signálů a kopie původně zobrazených signálů (ty je pak vhodné z okna vymazat). Postupy při syntéze a implementaci Jak se definují atributy signálů na vývodech pouzdra Jde o atributy jako přiřazení signálů vývodům, I/O standard, zatížitelnost výstupů (Drive Strength), zakončení (Termination), rychlost přeběhu (Slew), vstupní zpoždění (Delay), případně další (nebo jen některé z uvedených) podle typu cílového obvodu. Přehled atributů je uveden v literatuře [ 1 ]. Obecně jsou nejlepší zkušenosti s automatickým generováním souboru ucf (např. blokem PACE a podobně), jiné možnosti jsou občas problematické z hlediska syntaktické správnosti (chyby či nejasnosti se někdy vyskytují i ve výše uvedené literatuře). Výhodné je také, že se při automatickém generování obvykle nabízejí k výběru možnosti odpovídající zvolenému typu cílového obvodu. Definice v souboru ucf ISE v. 7: Nejpohodlnější možnost je použití programového bloku PACE (Pinout and Area Constraint Editor) Processes for Source => User Constraints => Assign Package Pins. Signály se z okna Design Object List I/O Pins myší přetáhnou na příslušné pozice v okně Package Pins for... (typ cílového obvodu), záložka Package View. V okně Design Object List se po přetažení objeví příslušné číslo vývodu. Dále je pak možno klepnutím na příslušné okénku u signálu vybrat z nabídky další výše uvedené atributy. Přitom se automaticky vytváří (edituje) příslušný soubor ucf. Automatické generování zajišťuje jeho syntaktickou správnost. Přímá editace souboru ucf textovým editorem je možno v tomto souboru zadat různé požadavky omezení (constraints) podle syntaxe uvedené v literatuře [ 1 ]. Například pro přiřazení signálů vývodům se používá příkaz LOC ISE v. 7 viz šablonu, Edit => Language Templates... => UCF => CPLD FPGA => Placement => LOC (Pin Assignment). Soubor ucf je možno vytvořit vnějším textovým editorem nebo otevřít v editoru ISE: Processes for Source => User Constraints => Edit Constraints (Text). 4

Použití atributů v popisu VHDL syntaxe je uvedena v [ 1 ]. Příklad pro přiřazení signálů vývodům: ATTRIBUTE loc: string; ATTRIBUTE loc OF Rst: SIGNAL IS "P15"; -- prirazeni signalu na vyvod 15 ATTRIBUTE loc OF CntPin: SIGNAL IS "P21 P22 P23"; -- prirazeni vektoru Atributy se uvádějí v deklarativním úseku popisu architektury. Signály mohou být v principu přiřazeny vývodům pouzdra libovolně (pokud samozřejmě respektujeme skutečnost, že některé vývody mají zvláštní určení, například napájecí, zemnicí, konfigurační apod. vývody). Pokud však chceme, aby toto přiřazení nezpůsobilo zhoršení kvality výsledku implementace (snížení rychlosti, zvýšení spotřeby strukturních prvků a podobně), je vhodné při výběru vhodného přiřazení dodržovat určitá pravidla viz například [ 8 ]. V literatuře se doporučuje předepisovat toto přiřazení jen tehdy, je-li to skutečně potřebné. Pokud se přiřazení nepředepíše, může návrhový systém přiřazení automaticky optimalizovat. Jeli to možné, je vhodné aspoň při první implementaci ponechat systému tuto možnost a dále přiřazení měnit jen v případě nezbytnosti. Jak se definuje počáteční stav registrových signálů po připojení napájecího napětí Počáteční stav je možno definovat u registrových signálů, tj. signálů, kterým jsou jejich hodnoty přiřazeny způsobem, který představuje registr řízený hranou nebo latch. Registrovými signály nejsou například vnější signály deklarované s módem OUT v deklaraci entity, kterým jsou hodnoty registrových signálů přiřazeny v popisu architektury prostým přiřazovacím příkazem (obvyklé například u čítačů). Počáteční hodnotu těchto signálů můžeme zajistit definicí počátečního stavu signálů na výstupu příslušného registru, které jsou deklarovány jako vnitřní signály. Definice v souboru ucf ISE v. 7: Používá se k tomu příkaz INIT viz šablonu v ISE (Edit => Language Templates... => UCF => CPLD => MISC => INIT, nebo Edit => Language Templates... => UCF => FPGA => Initialization atd.) Definice v popisu VHDL: ISE v. 6 a vyšší akceptuje definici počátečního stavu v příkazu SIGNAL například: SIGNAL Cnt: std_logic_vector(2 DOWNTO 0) := "011"; Je také možno použít atribut - například: ATTRIBUTE init: string; ATTRIBUTE init OF Cnt: SIGNAL IS "000"; Atributy se uvádějí v deklarativním úseku popisu architektury. Počáteční stav po připojení napájecího napětí je možno definovat u všech paměťových prvků, tedy například i u distribuovaných nebo blokových pamětí RAM obsažených v obvodech FPGA. Způsob inicializace těchto pamětí je uveden například v [ 3 ]. V systému ISE v. 7 můžeme počáteční hodnoty zadat také spuštěním bloku Xilinx Constraints Editor (spuštění např.: User Constraints => Create Timing Constraints), v němž zvolíme záložku Misc a klepneme na některou z položek, které jsou nadepsány INIT Values for. 5

Jak se zjistí časové parametry vytvořené konstrukce Mezi nejdůležitější časové parametry patří nejvyšší kmitočet hodinových signálů, zpoždění mezi změnou vstupních signálů a ustálením výstupních signálů a podobné údaje. Popíšeme, jak se zjistí uvedený kmitočet statickou časovou analýzou. U dalších parametrů se postupuje analogicky. Údaje o kmitočtu se vyskytují na různých místech výpisů generovaných při zpracování popisu. Obecně platí pravidlo: Čím větší je stupeň zpracování konstrukce, tím více se tyto údaje blíží skutečným parametrům naprogramovaného cílového obvodu. U obvodů FPGA dává nejpřesnější informace statická časová analýza provedená po etapě Place and Route: Implement Design => Place & Route => Generate Post-Place & Route Static Timing => Text-Based Post-Place&Route Static Timing Report. Aby se v tomto výpisu objevila informace o kmitočtu, musíme dát systému před syntézou na vědomí, že nás tato informace zajímá. To můžeme učinit v ISE v. 7 zadáním nějakého (snadno splnitelného) požadavku na tento kmitočet: v okně Sources in Project vybereme vrcholovou jednotku, v okně Processes for Source pokračujeme volbami User Constraints => Create Timing Constraints. Tím se spustí blok Xilinx Constraints Editor. Zvolíme záložku Global, na níž je již uvedeno označení hodinového signálu použitého v konstrukci (samozřejmě pokud je použit). V okénku Period zadáme např. 100 a pak klikneme např. do okénka Pad to Setup, čímž se automaticky v okénku Period doplní jednotky (ns) a střída 50%. V okně Constraints můžeme sledovat, co se přitom generuje v souboru *.ucf. Po uložení se při statické časové analýze vytvoří údaj o nejvyšším přípustném kmitočtu, který bude zobrazen v uvedeném výpisu. Jak se definují vstupy a výstupy s diferenčními signály Chceme-li použít u vstupních a výstupních signálů diferenční standard, musíme zajistit převod mezi vnitřním nesymetrickým signálem a vnějším signálem diferenčním. K tomu se používají speciální bufery, které je do konstrukce možno vložit jako komponenty. Odpovídající primitivy jsou obsaženy ve sloze VComponents, která je v ISE dostupná v knihovně UNISIM (na knihovnu i na slohu je nutno uvést v popisu konstrukce odkaz). Označení a šablonu pro vložení najdeme například v [ 2 ]. Hledáme-li například vstupní bufer pro řadu Spartan-3, najdeme zde všechny primitivy a makra pod záložkou Architecture Specific Information => Spartan-3. V seznamu vyhledáme položku IBUFDS (pro hodinové signály IBUFGDS) a poklepem na ni otevřeme příslušnou stránku manuálu. Zde se můžeme přesvědčit, zda je příslušný standard dostupný pro zamýšlený cílový obvod, a v kladném případě najdeme odpovídající šablonu pro vložení (VHDL Instantiation Template). Z této šablony je zřejmé, že musíme mít dva vstupní vývody, jejichž signály (předpokládejme, že jde o hodinový signál) můžeme označit například ClkA a ClkB (budou to obě větve diferenčního signálu). Ty připojíme ke vstupním signálům deklarovaným ve vložené komponentě buferu. Výstup buferu pak bude představovat hodinový signál pro buzení vstupů registrů v konstrukci, který můžeme označit například Clk (nutno deklarovat v popisu architektury). Bufer musíme vložit do konstrukce strukturálním stylem, tj. v deklarativní části popisu architektury bude deklarace komponenty IBUFGDS (ze šablony v LIB.pdf). Označení vstupních a výstupních signálů v deklaraci komponenty neměníme, odpovídá jejich označení ve sloze VComponents. V příkazové části bude její vložení (opět podle šablony), kde signály user_o, user_i a user_ib budou představovat skutečné signály v naší konstrukci. Pro výstupní signály je postup obdobný, primitiva má označení OBUFDS. 6

Použití bloku DCM Blok DCM se v systému ISE vkládá nejsnadněji pomocí průvodce: Project => New Source... => IP (CoreGen & Architecture Wizard). Otevře se okno, kde je potřebné pojmenovat vytvářenou komponentu lze použít např. název DCM1 (nedoporučuje se samotné DCM, je to rezervovaný symbol). Další postup závisí na účelu, pro který má být DCM použit. Průvodce nabízí volby, které uživateli napovídají, je však v mnoha případech potřebné o nich vědět více pro obvody rodiny Spartan-3 je velmi dobrou pomůckou aplikační zpráva [ 7 ], pro obvody řady Virtex-II, Virtex-II Pro a další jsou podobné informace uvedeny v příslušných uživatelských příručkách (User Guides, dostupné na ). Doporučuje se přečíst si ze zprávy aspoň to, co se vztahuje k zamýšlenému použití bloku DCM, nevhodná volba může vést k nespolehlivé funkci. Pro vložení komponenty DCM1 do popisu konstrukce můžeme použít šablonu v okně Processes for Source DCM1 => View HDL Instantiation Template. Blok DCM se obvykle používá ve vrcholové jednotce. Pokud je tato tvořena schématem, musíme pro jeho vložení mít k dispozici schématický symbol (Create Schematic Symbol). Přehled zvolených parametrů můžeme vidět, vygenerujeme-li popis bloku v jazyku VHDL: Processes for Source: DCM1 => View HDL Source. Tento text však nemusíme do konstrukce přidávat, DCM je zde reprezentován položkou xaw v okně Sources in Project. Při standardním použití bloku DCM pro zpracování hodinového signálu zavedeného do FPGA z vnějšího vývodu není pak tento signál přímo dostupný pro použití v dalších prvcích konstrukce. Místo něj je možno použít výstup CLKIN_IBUFG_OUT, který jej reprodukuje. Tato skutečnost není v literatuře běžně uváděna (aspoň v době psaní tohoto textu) a bývá často příčinou obtíží. Implementace pamětí RAM, ROM Tyto paměti se v obvodech FPGA implementují jako distribuované nebo blokové. Paměť ROM lze implementovat stejně jako paměť RAM, pouze se musí definovat její počáteční obsah (viz výše) a dále se do ní nezapisuje. Je několik způsobů, jak paměti můžeme vložit do konstrukce. Patří mezi ně inference z behaviorálního popisu a vložení pomocí CORE Generatoru. Šablony pro behaviorální popis v jednoduchých případech lze najít přímo v ISE: Edit => Language Templates => VHDL => Synthesis Templates => RAM. Podrobný popis mnoha variant vložených pamětí je uveden např. v [ 3 ], mnoho dalších příkladů lze najít v [ 9 ]. Použití CORE Generatoru dovolí využít ještě dalších možností, které jinak nejsou dostupné. Postupy při programování Programování obvodů CPLD Pro naprogramování obvodů CPLD je potřebné vytvořit programovací soubor *.JED (tzv. soubor JEDEC) obsahující popis požadovaného stavu propojek v naprogramovaném cílovém obvodu. Tento soubor se získá provedením procesu Implement Design => Generate Programming File. Při programování v systému paralelním kabelem nebo kabelem USB (předpokládá se, že je kabel připojen k PC a zapojen do programovacího konektoru a že je 7

zapojeno napájecí napětí programovaného obvodu) se dále pokračuje procesem Configure Device (Impact), kde se zvolí Boundary-Scan Mode a dále se pokračuje podle nápovědy. Obvody CPLD firmy Xilinx jsou nevolatilní, naprogramovaný obvod má podle údajů v katalogu udržet svou funkci mnoho let. Programování (konfigurace) obvodů FPGA Obvody FPGA firmy Xilinx jsou volatilní. Naprogramovat můžeme buď samotný obvod FPGA (místo termínu programování se zde obvykle používá termín konfigurace) s tím, že se tato konfigurace musí vykonat znovu po každém připojení napájecího napětí, nebo můžeme naprogramovat nevolatilní konfigurační paměť, je-li na desce osazena, a z té se po připojení napájecího napětí konfigurační soubor vždy automaticky přetáhne do připojeného FPGA. Obvyklejší je druhá z těchto možností, kterou budeme dále uvažovat. Poklepáním na položku Generate PROM, ACE, or JTAG File se spustí programovací blok impact v módu generování programovacích souborů. Potřebujeme vytvořit soubor *.mcs pro naprogramování konfigurační paměti, tedy z nabídky, která se objeví, vybereme PROM File a dále druh paměti a formát MCS. Zvolíme název a umístění programovacího souboru, který má být vygenerován, v následujícím okně typové označení paměti a klepneme na tlačítko Add. Vygenerování programovacího souboru *.mcs pak dokončíme podle nápovědy systému. Nyní můžeme spustit nové okno bloku impact poklepáním na položku procesu Configure Device (Impact) nebo pokračovat v dosavadním okně tím, že je přepneme do konfiguračního módu. Navolíme zde vygenerovaný soubor *.mcs a pak pokračujeme podle nápovědy. Literatura [ 1 ] Constraints Guide (cgd.pdf). Dokumentace k návrhovému systému ISE, dostupné na [ 2 ] Libraries Guide (lib.pdf). Dokumentace k návrhovému systému ISE, dostupné na [ 3 ] XST User Guide (xst.pdf). Dokumentace k návrhovému systému ISE, dostupné na [ 4 ] Synthesis and Verification Design Guide (sim.pdf). Dokumentace k návrhovému systému ISE, dostupné na [ 5 ] ISE Quick Start Tutorial (qst.pdf). Dokumentace k návrhovému systému ISE, dostupné na [ 6 ] ISE 7 In-Depth Tutorial (http://direct.xilinx.com/direct/ise7_tutorials/ise7tut.pdf) [ 7 ] Using Digital Clock Managers (DCMs) in Spartan-3 FPGAs. Aplikační zpráva XAPP462, Xilinx, dostupné na [ 8 ] Creating Pin-Out Prior to Implementation with PACE. Aplikační zpráva XAPP423, Xilinx, dostupné na [ 9 ] Using Block RAM in Spartan -3 FPGAs. Aplikační zpráva XAPP463, Xilinx, dostupné na Poznámka: Uvedené dokumenty k návrhovému systému ISE v. 7 jsou dostupné na: http://toolbox.xilinx.com/docsan/xilinx7/books/manuals.pdf 8