Upload
others
View
65
Download
0
Embed Size (px)
Citation preview
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚBRNO UNIVERSITY OF TECHNOLOGY
FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍÚSTAV AUTOMATIZACE A MĚŘICÍ TECHNIKY
FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATIONDEPARTMENT OF CONTROL AND INSTRUMENTATION
REFERENČNÍ PŘÍKLADY PRO MICROFPGA MODUL.
BAKALÁŘSKÁ PRÁCEBACHELOR'S THESIS
AUTOR PRÁCE TOMÁŠ NOVOTNÝAUTHOR
BRNO 2010
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚBRNO UNIVERSITY OF TECHNOLOGY
FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCHTECHNOLOGIÍÚSTAV AUTOMATIZACE A MĚŘICÍ TECHNIKY
FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATIONDEPARTMENT OF CONTROL AND INSTRUMENTATION
REFERENČNÍ PŘÍKLADY PRO MICROFPGA MODUL.
MICROFPGA MODULE REFERENCE DESIGNS
BAKALÁŘSKÁ PRÁCEBACHELOR'S THESIS
AUTOR PRÁCE TOMÁŠ NOVOTNÝAUTHOR
VEDOUCÍ PRÁCE Ing. SOBĚSLAV VALACHSUPERVISOR
BRNO 2010
VYSOKÉ UČENÍTECHNICKÉ V BRNĚ
Fakulta elektrotechniky a komunikačních technologií
Ústav automatizace a měřicí techniky
Bakalářská prácebakalářský studijní obor
Automatizační a měřicí technika
Student: Tomáš Novotný ID: 72999Ročník: 3 Akademický rok: 2009/2010
NÁZEV TÉMATU:
Referenční příklady pro microFPGA modul.
POKYNY PRO VYPRACOVÁNÍ:
V rámci projektu prostudujte funkce a možnosti microFPGA modulu a navrhněte sadu referenčníchpříkladů a úloh plně využívající funkce modulu. Modul je osazen hradlovým polem Spartan3, práce byměla probíhat v jazyku VHDL nebo Verilog za pomocí Embedded developmet kitu firmy Xilinx.
DOPORUČENÁ LITERATURA:
Termín zadání: 8.2.2010 Termín odevzdání: 31.5.2010
Vedoucí práce: Ing. Soběslav Valach
prof. Ing. Pavel Jura, CSc.Předseda oborové rady
UPOZORNĚNÍ:
Autor bakalářské práce nesmí při vytváření bakalářské práce porušit autorská práva třetích osob, zejména nesmízasahovat nedovoleným způsobem do cizích autorských práv osobnostních a musí si být plně vědom následkůporušení ustanovení § 11 a následujících autorského zákona č. 121/2000 Sb., včetně možných trestněprávníchdůsledků vyplývajících z ustanovení části druhé, hlavy VI. díl 4 Trestního zákoníku č.40/2009 Sb.
ABSTRAKTTato bakalarska prace se zabyva navrhem referencnıch prıkladu pro microFPGA modul.
Prace ukazuje mozne postupy vyuzitı HW prostredku modulu. Bude uvedena ukazka
implementace UART komunikace, soft-core procesoru PicoBlaze v poli, programovanı
PicoBlaze a zvladnutı jeho vstupne/vystupnıch operacı. Dale bude uvedena ukazka im-
plementace soft-core procesoru MicroBlaze a propojenı s IP skrze PLB sbernici. V HW
designu s MicroBlaze je take prıklad multiplexovanı sdılene sbernice RAM a FLASH
pameti.
KLICOVA SLOVABloky DCM, internı pameti, procesor PicoBlaze, procesor Microblaze, sbernice PLB,
externı pameti, VGA controller
ABSTRACTThis bachelor’s thesis demonstrates reference designs for microFPGA module. This thesis
shows possible approaches to the use of module’s HW capabilities. There is an example
of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and
managing its I/O operations. Next, there is an example of soft-core MicroBlaze processor
connection to IP through PLB bus. In the HW design with MicroBlaze there is also an
example of multiplexing the shared bus between RAM and Flash memory.
KEYWORDSDCM blocks, intern memories, PicoBlaze processor, Microblaze processor, PLB bus,
extern memories, VGA controller
NOVOTNY,T Referencnı prıklady pro microFPGA modul : bakalarska prace. Brno:
Vysoke ucenı technicke v Brne, Fakulta elektrotechniky a komunikacnıch technologiı,
Ustav automatizace a merıcı techniky, 2010. 89 s. Vedoucım prace byl Ing. Sobeslav
Valach.
5
Prohlášení
„Prohlašuji, že svou bakalářskou práci na téma referenční příklady pro microFPGA modul jsem vypracoval samostatně pod vedením vedoucího bakalářské práce a s použitím odborné literatury a dalších informačních zdrojů, které jsou všechny citovány v práci a uvedeny v seznamu literatury na konci práce.
Jako autor uvedené bakalářské práce dále prohlašuji, že v souvislosti s vytvořením této bakalářské práce jsem neporušil autorská práva třetích osob, zejména jsem nezasáhl nedovoleným způsobem do cizích autorských práv osobnostních a jsem si plně vědom následků porušení ustanovení § 11 a následujících autorského zákona č. 121/2000 Sb., včetně možných trestněprávních důsledků vyplývajících z ustanovení § 152 trestního zákona č. 140/1961 Sb.“
V Brně dne: 28. května 2010 …………………………podpis autora
Poděkování
Děkuji vedoucímu bakalářské práce Ing. Soběslavu Valachovi za účinnou metodickou, pedagogickou a odbornou pomoc a další cenné rady při zpracování mé bakalářské práce. Své rodině děkuji za všestrannou podporu během studia a potřebné zázemí.
7USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
OBSAH
Uvod 13
1 Popis modulu a jeho soucastı 141.1 MicroFPGA modul GOP XC3S200 . . . . . . . . . . . . . . . . . . . . 14
1.1.1 Platform FLASH pamet’ . . . . . . . . . . . . . . . . . . . . . . 141.1.2 Uzivatelska pamet’ typu FLASH . . . . . . . . . . . . . . . . . . 151.1.3 5V prevodnık urovnı (level shifter) . . . . . . . . . . . . . . . . . 161.1.4 Konektory, uzivatelske LED diody a spınace . . . . . . . . . . . 16
1.2 FPGA pole Spartan3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171.2.1 Configurable Logic Blocks . . . . . . . . . . . . . . . . . . . . . 181.2.2 Input/Output Blocks . . . . . . . . . . . . . . . . . . . . . . . . 191.2.3 Interconnect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191.2.4 Digital Clock Manager . . . . . . . . . . . . . . . . . . . . . . . 19
1.3 Vlastnosti pole Xilinx XC3S200-4VQG100C . . . . . . . . . . . . . . . 23
2 Uvod do jazyka VHDL a ISE WebPack 252.1 Prvnı program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.1.1 Zalozenı noveho projektu s VHDL souborem . . . . . . . . . . . 262.1.2 Implementation Constrains File . . . . . . . . . . . . . . . . . . 272.1.3 Ulozenı konfigurace do pole FPGA . . . . . . . . . . . . . . . . 272.1.4 Vlozenı referencnıch prıkladu do projektu . . . . . . . . . . . . . 27
2.2 Inference syntetizeru . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282.2.1 Kombinacnı logicke obvody . . . . . . . . . . . . . . . . . . . . 282.2.2 Sekvencnı logicke obvody . . . . . . . . . . . . . . . . . . . . . 29
2.3 Styly pro popsanı elektronickych obvodu . . . . . . . . . . . . . . . . . 302.4 Soft-core procesory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3 PicoBlaze a UART komunikace 313.1 Vlastnosti PicoBlaze . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313.2 Popis vstupnıch a vystupnıch operacı . . . . . . . . . . . . . . . . . . . . 32
3.2.1 Vstupnı operace . . . . . . . . . . . . . . . . . . . . . . . . . . 333.2.2 Vystupnı operace . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.3 Obsluha prerusenı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343.4 UART komunikace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.4.1 Resynchronizace . . . . . . . . . . . . . . . . . . . . . . . . . . 363.4.2 Buffer dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363.4.3 Vysılanı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
8USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
3.4.4 Prıjem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373.5 Popis maker a programu . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.5.1 Makra uart rx a uart tx . . . . . . . . . . . . . . . . . . . . . . . 373.5.2 Makro KCPSM3 s UART . . . . . . . . . . . . . . . . . . . . . 373.5.3 Popis programu obsluhujıcı UART . . . . . . . . . . . . . . . . . 38
4 MicroBlaze, PLB, vybrana IP a EDK 414.1 Zakladnı vlastnosti MicroBlaze a jeho HW popis . . . . . . . . . . . . . 414.2 Pripojenı MicroBlaze k periferiım . . . . . . . . . . . . . . . . . . . . . 42
4.2.1 Local Memory Bus . . . . . . . . . . . . . . . . . . . . . . . . . 434.3 Processor Local Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434.4 Vybrana IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.4.1 XPS UART Lite . . . . . . . . . . . . . . . . . . . . . . . . . . 454.4.2 XPS General Purpose Input/Output . . . . . . . . . . . . . . . . 464.4.3 XPS Timer/Counter . . . . . . . . . . . . . . . . . . . . . . . . . 474.4.4 XPS Serial Peripheral Interface (XPS SPI) . . . . . . . . . . . . 504.4.5 XPS Multi-CHannel External Memory Controller (XPS MCH EMC) 53
4.5 Embedded Development Kit . . . . . . . . . . . . . . . . . . . . . . . . 56
5 Referencnı prıklady 575.1 Binarnı cıtac s vystupem na LED . . . . . . . . . . . . . . . . . . . . . . 575.2 Dekadicky cıtac od 0 do 99 . . . . . . . . . . . . . . . . . . . . . . . . . 585.3 Jednoduchy stavovy automat . . . . . . . . . . . . . . . . . . . . . . . . 595.4 Test vystupu se soft-core procesorem PicoBlaze . . . . . . . . . . . . . . 595.5 Zapojenı serioveho portu . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.5.1 Prevodnık TSC232 . . . . . . . . . . . . . . . . . . . . . . . . . 605.6 Regulator urovne jasu LED diody komunikujıcı s PC . . . . . . . . . . . 60
5.6.1 Princip PWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615.6.2 Popis uzivatelskeho rozhranı . . . . . . . . . . . . . . . . . . . . 615.6.3 Resenı z hlediska logiky FPGA . . . . . . . . . . . . . . . . . . 625.6.4 Popis programu rıdıcı PWM . . . . . . . . . . . . . . . . . . . . 635.6.5 Vyuzite zdroje . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5.7 Zmena hodinove frekvence soft-core procesoru PicoBlaze . . . . . . . . 665.7.1 Resenı z hlediska logiky FPGA . . . . . . . . . . . . . . . . . . 675.7.2 Vyuzite zdroje . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.8 Tvorba HW designu pole se soft-core procesorem MicroBlaze . . . . . . 675.9 Ukazka pouzitı modulu XPS GPIO a XPS UART Lite . . . . . . . . . . . 685.10 Regulator urovne jasu LED diody . . . . . . . . . . . . . . . . . . . . . 685.11 Ukazka komunikace s SPI FLASH z asynchronnı pameti RAM . . . . . . 69
9USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
5.12 U-boot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 705.12.1 Prıprava vyvojoveho prostredı . . . . . . . . . . . . . . . . . . . 715.12.2 Kompilace a spustenı . . . . . . . . . . . . . . . . . . . . . . . . 725.12.3 Zdrojove soubory . . . . . . . . . . . . . . . . . . . . . . . . . . 725.12.4 Nektere prıkazy . . . . . . . . . . . . . . . . . . . . . . . . . . . 735.12.5 Navrh zlepsenı prıkladu . . . . . . . . . . . . . . . . . . . . . . 74
6 Zaver 75
Reference 76
Seznam symbolu, velicin a zkratek 80
Seznam prıloh 83
A Rozdıly v syntaxi assembleruKCPSM3 a pBlazIDE 84
B Schemata zapojenı micromodulu[1] 85
C Schema makra KCPSM s UART 87
D Blokove schema HW designu – MicroBlaze 88
E Obsah DVD 89
10USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
SEZNAM OBRAZKU
1.1 Blokovy diagram microFPGA modulu[1] . . . . . . . . . . . . . . . . . 151.2 Blokovy diagram Platform FLASH[4] . . . . . . . . . . . . . . . . . . . 161.3 Zjednodusene schema prevodnık urovnı[12] . . . . . . . . . . . . . . . . 171.4 Architektura rodiny cipu Spartan-3 [2] . . . . . . . . . . . . . . . . . . . 181.5 Zakladnı typy zapojenı sıte v FPGA [2] . . . . . . . . . . . . . . . . . . 201.6 Funkcnı blokovy diagram DCM [3] . . . . . . . . . . . . . . . . . . . . 211.7 Mozny postup vlozenı instance DCM . . . . . . . . . . . . . . . . . . . 233.1 Blokovy diagram procesoru PicoBlaze [5] . . . . . . . . . . . . . . . . . 323.2 Prıklad casovanı vstupnı operace[5] . . . . . . . . . . . . . . . . . . . . 333.3 Prıklad casovanı vystupnı operace[5] . . . . . . . . . . . . . . . . . . . . 343.4 Schema prerusenı s registrem typu D se SET a RESET vstupem[5] . . . . 353.5 UART zprava s jednım s startbitem a jednım stopbitem[8] . . . . . . . . . 363.6 Vyvojovy diagram zakladnı funkce komunikace UART s testovacım retezcem 393.7 Prıklad komunikace z terminalu TeraTerm programu program PWM.psm 404.1 Blokove schema soft-core procesoru MicroBlaze (sede casti jsou volitelne)[15] 424.2 Blokove schema zapojenı PLB s ostatnım zarızenımi[28] . . . . . . . . . 444.3 Datovy a adresovy cyklus PLB[28] . . . . . . . . . . . . . . . . . . . . . 454.4 Blokove schema modul XPS UART Lite[22] . . . . . . . . . . . . . . . . 464.5 Blokove schema jadra GPIO[24] . . . . . . . . . . . . . . . . . . . . . . 484.6 Blokove schema Timer/Counter jadra[25] . . . . . . . . . . . . . . . . . 494.7 Registr TCSR0[25] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494.8 Zakladnı zapojenı SPI sbernice[10] . . . . . . . . . . . . . . . . . . . . . 504.9 Prıklad casovacıho diagramu sbernice pro jeden byte (cervena = ctenı,
modra = zapis)[10] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514.10 Blokove schema XPS SPI modulu[23] . . . . . . . . . . . . . . . . . . . 524.11 Blokove schema XPS MCH EMC modulu[27] . . . . . . . . . . . . . . . 545.1 Schema zapojenı blikace s vystupem na pin P1 . . . . . . . . . . . . . . 585.2 Schema zapojenı citace od 0 do 99 . . . . . . . . . . . . . . . . . . . . . 585.3 Stavovy diagram referencnıho prıkladu . . . . . . . . . . . . . . . . . . . 595.4 Schema zapojenı prevodnıku TTL a RS232 . . . . . . . . . . . . . . . . 605.5 Blokove schema zapojenı PC k modulu pres seriovy port . . . . . . . . . 605.6 Prevodnık TSC232 (vlevo) a modul (vpravo) . . . . . . . . . . . . . . . . 615.7 Blokovy diagram zapojenı referencnıho prıkladu . . . . . . . . . . . . . 635.8 Prıklad simulace PWM s preddelicem a cyklickym modem PWM . . . . 635.9 Ukazka vytvorenı bytu vyslaneho do PWM. Kod je 3F . . . . . . . . . . 645.10 Souhrn vyuzitych prostredku FPGA generovany ISE WebPack . . . . . . 655.11 Schema zapojenı referencnıho prıkladu . . . . . . . . . . . . . . . . . . . 66
11USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
5.12 Blokove schema multiplexovanı signalu adresy SRAM a SPI (0b je uvozenıbitoveho vektoru a spojenı je naznaceno konkantenacı) . . . . . . . . . . 68
5.13 Vyvojovy diagram programu pro komunikaci s SPI FLASH . . . . . . . . 705.14 Rozvrzenı programu a dat v RAM (merıtka os si neodpovıdajı) . . . . . . 735.15 Prıklad vystupu U-bootu na terminal PC . . . . . . . . . . . . . . . . . . 74
12USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
SEZNAM TABULEK
1.1 Prehled vybranych vstupu a vystupu . . . . . . . . . . . . . . . . . . . . 221.2 Popis vybranych atributu . . . . . . . . . . . . . . . . . . . . . . . . . . 221.3 Prehled vlastnostı pole podle kodu na cipu . . . . . . . . . . . . . . . . . 243.1 prehled a popis vstupnıch a vystupnıch signalu maker uart rx a uart tx . . 384.1 Prehled vybranych signalu LMB a jejich popis . . . . . . . . . . . . . . . 434.2 Prehled dulezitych parametru jadra XPS MCH EMC – Parametry jadra[27] 554.3 Prehled dulezitych parametru jadra XPS MCH EMC – Parametry casovanı
pameti [27][29] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555.1 Prehled vyuzitı pole z prıkladu 5.6 a z designu s MicroBlaze . . . . . . . 67
13USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
UVOD
Cılem teto bakalarske prace je vytvorenı referencnıch prıkladu pro microFPGA modul,ktery je osazen programovatelnym hradlovym polem Spartan-3. Prace se zabyva kon-strukcnımi vlastnostmi modulu, predevsım hradloveho pole. Dane hradlove pole se radımezi cenove prijatelne FPGA, tzv. low cost, je ovsem dostatecne robustnı pro jednodussıaplikace.
Referencnı prıklady jsou napsany v jazyce VHDL, urceny pro popis HW konfiguracıpole a ASIC. Programy pro soft-core procesor PicoBlaze byli psany v assembleru speci-fickem pro tento procesor. HW popis procesoru MicroBlaze a IP je v internım jazykufirmy Xilinx a programy pro nej jsou psany v jazyce C. Jako vyvojove prostredı bylopouzito integrovane vyvojove prostredı ISE WebPack firmy Xilinx, ktery je zdarma dos-tupny u vyrobce. Pro tvorbu prıkladu s MicroBlaze bylo pouzito EDK.
S pouzitım jednoduchych elektronickych castı popsanych a spojenych v FPGA muzemeintegrovat cely system pouze do pole. Takovy system oznacujeme zkratkou SoC (Sys-tem on Chip). V textu bude naprıklad popsano integrovanı soft-core procesoru, internıchpametı a vstupne vystupnı logiky na FPGA. Mimo tento system se umist’ujı jen velkoka-pacitnı pameti a konektory pro pripojenı jinych systemu napr. senzory, PC atd. Proto sepro vyvoj a vyrobu zakaznickych obvodu pouzıvajı programovatelna hradlove pole. Vıceo VHDL v [16].
14USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
1 POPIS MODULU A JEHO SOUCASTI
V teto kapitole jsem se zabyval popisem modulu, napr. vstupy a vystupy, asynchronnıpametı, FPGA atd. Dale jsem se v kapitole venoval nekterym castem podrobneji.
1.1 MicroFPGA modul GOP XC3S200
Jednotlive casti modulu jsou
• Programovatelne hradlove pole XC3S200-4VQG100C firmy Xilinx
• Platform FLASH pamet pro ulozenı konfigurace pole
• 4 Mbit asynchronnı staticke pameti RAM v konfiguraci 8x512k, prıstupova dobatAC = 55ns
• 8 Mbit uzivatelske pameti typu FLASH
• Prevodnıky urovnı, ktere zajist’ujı aktivnı uroven napetı na vystupu 5V
• Napet’ove regulatory, ktere zajist’ujı napajenı komponent napr. FPGA vyzaduje 1,2V
• Oscilator umısteny na desce o frekvenci 49,152 MHz
• 2 LED diody indikujıcı stav, 8 nızkoprıkonovych uzivatelskych LED diod, 2 spınace,7 konfiguracnıch propojek
• 9 pinovy testovacı konektor, JTAG konektor, 24 pinovy konektor (2 piny pro napajenı,22 pinu propojenych s FPGA pres prevodnık urovnı), konfiguracnı konektor
Modul byl vyroben na 6ti vrstve desce plosneho spoje. Schema zapojenı je uvedenov prıloze B. Modul take obsahuje ochranu proti spatne polarite napajecıho zdroje pres 24pinovy napajecı konektor i testovacı konektor a ochranu proti spatnemu pripojenı JTAGkonektoru. Modul nenı chranen proti zkopırovanı konfigurace (bitstreamu). Na obrazku1.1 je uvedeno blokove schema modulu. Vıce o obvodu v [1].
1.1.1 Platform FLASH pamet’
Oznacenı na desce: XCF01SJde o FLASH pamet’ o velikosti 1 Mbit, ktera se pro FPGA chova jako programo-
vatelna ROM pamet’. Je v nı ulozena aktualnı konfigurace pole. Vyzaduje zdroj napajenıo 3,3 V. Komunikace s FPGA probıha po seriove lince v rezimu master/slave, kde FLASHpamet’ je slave. Blokovy diagram pameti je na obrazku 1.2. Platform FLASH je taktez vy-bavena JTAG sbernicı. Technicka dokumentace pameti je v [4].
15USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
Obrazek 1.1: Blokovy diagram microFPGA modulu[1]
1.1.2 Uzivatelska pamet’ typu FLASH
Oznacenı na desce: M25P80Flash pamet je elektricky programovatelna pamet’ s libovolnym prıstupem se schop-
nostı uchovat data po vypnutı a naslednem zapnutı napajenı. Tato pamet’ je vybaveni SPI(Serial Peripethal Interface) sbernicı [10], ktera definuje seriovy synchronnı plne duplexnıdatovy prenos. Komunikace je zalozena na principu master/slave, kdy master iniciuje da-tovy prenos. Pamet’ obsahuje 8Mbit FLASH pameti pro ukladanı dat.
16USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
Obrazek 1.2: Blokovy diagram Platform FLASH[4]
Maximalnı frekvence prenosu 75 Mhz. Pamet’ dale obsahuje ochranu proti neopravnenemuctenı. Napajecı napetı se pohybuje mezi 2,7 a 3,6 V. Vıce o pameti je v [13].
1.1.3 5V prevodnık urovnı (level shifter)
Oznacenı: 74CB3T3245Modul obsahuje 3 prevodnıky urovnı pro 24 pinu. 22 pinu je pripojeno pres 24 pinovy
konektor a 2 piny pres testovacı konektor. Tento prevodnık urovnı prevadı napetı pinuFPGA (3,3 V) na uroven 5 V na vystupu a naopak. Spınac je tvoren FET tranzistorem arıdıcım obvodem, ktery v prıpade, ze signal typu ENABLE aktivnı, tak Vystup = Vstup. Tım je umoznen obousmerny datovy tok. Schema prevodnıku urovnı je na obrazku 1.3.Prevodnık umoznuje pripojit k modulu signal az o napetı 7 V. Podrobny popis prevodnıkuje uveden v [12]
1.1.4 Konektory, uzivatelske LED diody a spınace
24 pinovy konektor
Konektor je pripojen ze spodnı strany modulu. 2 piny je pro pripojenı napetı a zemnenı.22 pinu slouzı pro pripojenı FPGA s jinym zarızenım. 2 piny vyuzıvam pro pripojenı kseriovemu portu. Oznacenı je CON1.
JTAG konektor
Joint Test Action Group(JTAG) definovany normou IEEE 1149.1 je rozhranı pro testovanıspoju, programovanı pametı, procesoru atd. Zarızenı jsou pripojena v chainu (retezci).
17USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
Obrazek 1.3: Zjednodusene schema prevodnık urovnı[12]
JTAG zde slouzı pro programovanı Platform FLASH pameti a FPGA. Konektor ma 2mmpinout a 14 pinu. Je umısten seshora desky a oznacen jako CON3. K JTAG portu jsempripojoval Platform USB kabel od Xilinx. Podrobnosti o JTAG v [9].
Testovacı konektor
Tento konektor slouzı predevsım k pripojenı osciloskopu a logickych analyzeru, protoze5 pinu nenı chraneno proti pripojenı vstupnıho napetı, nemajı seriove rezistory. Konektormuze slouzit jako zdroj o napetı 5 V. Zamena polarity napajenecıho zdroje je chranenapojistkou. Konektor jsem pouzıval predevsım k merenı vstupnı frekvence do soft-coreprocesoru a k analyze pulsne sırkove modulace. Konektor ma oznacenı CON3.
LED diody a spınace
Deska obsahuje z hornı strany 2 LED diodyindikujıcı stav modulu urcene k rychle analyzestavu JTAG rozhranı. Dale deska obsahuje 8 nızkoprıkonovych LED diod pro uzivatelskeaplikace naprıklad regulace jasu pomocı PWM. Na desce jsou take 2 spınace, ktere propouzitı potrebujı pullup rezistor nakonfigurovany v FPGA.
1.2 FPGA pole Spartan3
FPGA pole je integrovany obvod skladajıcı se ze vstupne/vystupnıch bloku, logickychbloku a struktur pro jejich propojenı. Rodina obvodu Spartan3 obsahuje 5 zakladnıch
18USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
programovatelnych funkcnıch elementu a propojovacı sıt’:
• Configurable Logic Blocks (CLB)
• Input/Output Blocks (IOB)
• Block RAM – ulozny prostor o velikosti 18 kbit
• Nasobice (multipliers) – provadı binarnı soucin dvou 18 bitovych cısel
• Digital Clock Manager(DCM)
• Interconnect
Na obrazku 1.4 je uvedeno blokove umıstenı soucastı v integrovanem obvodu FPGA.
Obrazek 1.4: Architektura rodiny cipu Spartan-3 [2]
1.2.1 Configurable Logic Blocks
CLB se skladajı ze ctyr rezu (slices). V cipech Spartan3 jsou vzdy vsechny rezy schopnezvladat generovanı logickych funkcı prostrednictvım konfigurovatelnych ctyrvstupovychlookup tabulek. Ovsem pouze dva ze ctyr rezu jsou schopne zvladat operace posunovychregistru nebo distribuovane pameti. Obycejne lookup tabulky jsou schopne zvladat oper-ace sirokovstupych multiplexeru.
19USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
1.2.2 Input/Output Blocks
IOB predstavujı spojenı mezi piny pole a vnitrnı logikou, hlavne CLB. Kazdy IOB jeschopen obousmernych a trıstavovych toku dat a jednoduchych operacı s nimi. IOB jsouorganizovany do 8 banku. IOB ma vzdy tri datove cesty – jednu vstpnı, jednu vystupnıa jednu trıstavovou cestu na ktere je pripojen pamet’ovy element konfigurovatelny jakoklopny obvod typu D nebo jako latch (obvod rızeny urovnı).
Pokud nakonfigurejeme dva vystupnı bloky a dva vstupnı bloky s klopnymi obvodytypu D spolu se specialnım multiplexery, muzeme se spravnym nastavenım synchronizacedosahnout DDR datoveho toku. Kazde IOB obsahuje konfigurovatelny pullup a pulldownrezistor, spınace na modulu jsou jimi ovladany.
Dale IOB podporujı 26 ruznych signalovych standardu. IOB obsahujı obvody diodoveochrany proti elektrostatickemu vyboji, schopnost testovanı spojenı uvnitr obvodu (Bound-ary Scan) a techniky digitalnıho rızenı vstupnı impedance.
1.2.3 Interconnect
Interconnect je programovatelna datova sıt’ mezi ostatnımi zakladnımi bloky FPGA. Blokoveschema typu Interconnectu je na obr. 1.5. Sıt’ je segmentova a lze naprogramovat ctyri za-pojenı sıte pojmenovane:
• Long lines – Pripojuje se ke kazde sestici CLB. Vyznacuje se nızkou parazitnı ka-pacitou, coz ji cinı vhodnou pro prenos vysokofrekvencnıch signalu (obr. 1.5a).
• Hex Lines – Pripojuje kazdou tretı CLB. Jde o kompromisnı resenı mezi LongLines a Double Lines – dobry prenos vysokofrekvencnıch signalu a dobra flexibilitapripojenı (obr. 1.5b).
• Double Lines – Poskytujı nejlepsı flexibilitu propojenı (obr. 1.5c)
• Direct Lines – Zajist’ujı prıme spojenı se sousednımi CLB. Casto jsou vstupnı civystupnı sıtı pro slozitejsı, vyse uvedene sıte (obr. 1.5d).
1.2.4 Digital Clock Manager
DCM, spravce digitalnıch hodin FPGA, zajist’uje pokrocile casovanı v cipech Spartan3.Predevsım jde o:
• Nasobenı a delenı vstupnı frekvence
• Operace fazoveho posunu
20USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
Obrazek 1.5: Zakladnı typy zapojenı sıte v FPGA [2]
• Opravy signalu
• Frekvencnı syntezu
DCM se sklada ze ctyr funkcnıch celku. Jsou jimi Delay Locked Loop (DLL), DigitalFrequency Syntetizer (DFS), Phaze Shifter(PS) a Status Logic. Blokovy diagram je naobrazku 1.6.
Delay Locked Group
DLL provadı opravu vstupnıho signalu CLKIN s nulovym zpozdenım na vystup. Ob-vod kompenzuje zpozdenı moniturovanım vystupnıho signalu z DCM pres zpetnovazebnısmycku jak je to popsano na obrazku 1.4. DLL taktez opravuje hodinovy signal z ex-ternıho zdroje. DLL je schopen generovat frekvence od 18 MHz do 280 MHz.
21USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
Obrazek 1.6: Funkcnı blokovy diagram DCM [3]
Phase Shifter
PS rıdı fazovy posuv vstupnıho hodinoveho kmitoctu CLKIN na vsech devet vystupuz DCM. PS je nastavuje fazovy posuv staticky po kvadrantech 0,90,180,270 nebo populperiodach 0 a 180 anebo dynamicky do 1
256 periody hodinoveho kmitoctu.
Digital Frequency Syntetizer
DFS je schopne generovat velke mnozstvı signalu podle vstupnıho signalu CLKIN a nas-tavenım pomeru dvou vnitrnıch promennych – nasobice (CLKFX MULTIPLY) a delice(CLKFX DIVIDE). Obe dve hodnoty jsou typu integer (cıslo s pevnou radovou carkou).DFS je mozno pouzıt i bez DLL. Rozsah frekvencı je od 1 MHz do 280 MHz. Vystupnısignal CLKFX, resp. CLKFX180 popisuje rovnice:
fCLKFX = fCLKINCLKFX MULT IPLY
CLKFX DIV IDE(1.1)
Pokud je pouzit pouze vystupnı signal CLKFX nenı potreba zpetnovazebnı smyckado vstupu CLKFB.
Dale uvedu popis vybranych vstupu, vystupu a atributu DCM – tabulky 1.1 a 1.2
22USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
Tabulka 1.1: Prehled vybranych vstupu a vystupu
Vstupy/vystupy PopisCLKIN Vstupnı port pro pripojenı hodinoveho kmitoctu, npar. os-
cilatoruCLKFB Vstupnı port zpetnovazebnı smycky pro upravu vystupnıho
signalu CLK0CLK0 Vystupnı port s nulovym fazovym posunem a stejnou
frekvencıCLK90, CLK180, CLK270 Generujı vystupnı signaly s kvadrantovym fazovym po-
sunem, ale stejnou frekvencıCLK2X, CLK2X180 Generujı signaly s dvojnasobnou frekvencı a nulovym, resp.
s fazovym posuvem 180CLKFX, CLKFX180 Generujı signaly s frekvencı podle (1.1) a nulovym, resp. s
fazovym posuvem 180
Tabulka 1.2: Popis vybranych atributu
Atributy PopisCLK_FEEDBACK Definuje frekvenci zpetnovazebnıch hodinCLKDV_DIVIDE Jednoduchy delic kmitoctu s hodnotami od 1,5 do 16 s
krokem 0,5CLKFX_MULTIPLY Nasobic frekvence DFS. Jde o cele cıslo od 2 do 32CLKFX_DIVIDE Delic frekvence DFS. Jde o cele cıslo od 1 do 32
Postup vlozenı instance DCM do projektu
Nastavenı hodnot se provadı rucne vlozenım komponenty v ISE WebPack napr. z Edit/LanguageTemplates v okne vyberu se zvolı VHDL/Device Primitive Instatiation/FPGA/Clock Com-ponents/Digital Clock Manager (DCM)/DCM for Spartan-3 (DCM) a zobrazeny kodnapravo zkopırujte do sveho .vhd souboru a upravte napr. podle obrazku 1.7.
Jeste existuje podrobny obrazovy pruvodce v V ISE WebPack. Project/New Sourcev okne vlevo zvolte IP (CORE Generator & Architecture Wizard), vyplnte polozku FileName a zvolte Next. V zalozkach si nechte zobrazit funkce (View by Function) a zvolteFPGA Features and Design/Clocking/Virtex-2 Pro, Virtex-II, Spartan-3/Single DCM akliknete na Next a v dalsım okne na Finish, tım by se mel spustit obrazovy pruvodceDCM Wizard. – Navod je pro verzi ISE WebPack 11.2. O ISE WebPack vıce zde [15].
23USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
Obrazek 1.7: Mozny postup vlozenı instance DCM
Vıce o FPGA viz. [2], a o DCm viz. [3]
1.3 Vlastnosti pole Xilinx XC3S200-4VQG100C
FPGA pole XC3S200 obsahuje 4320 ekvivalentnıch logickych bunek1. Dale pole ob-sahuje 480 CLB v konfigurace 24 radku na 20 sloupcu (1 CLB = 4 rezy).
LUT se dajı naprogramovat jako distribuovana RAM pamet’ o velikosti 30K bitu2.Pole obsahuje Block RAM o velikosti 216K bitu (12 x 18 kbit), 12 dedikovanych nasobicu,
1Logicka bunka = LUT + klopny obvod typu D = 3840. Zatımco ekvivalentnı logicka bunka = Logickabunka x 1,125
2K = 1024, platı i v nasledujıcım prıpade
24USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
4 DCM a maximalne 64 vyuzitelnych pinu.Vlastnosti pole podle kodu urcuje tabulka 1.3
Tabulka 1.3: Prehled vlastnostı pole podle kodu na cipu
Cast kodu PopisXC3S200 FPGA Xilinx Spartan-3 s 200 000 systemovymi hradly-4 Definuje rychlost zarızenı. Pole ma standardnı rychlostVQ Definuje typ pouzdraG Pole neobsahuje olovo100 Pocet pinuC Definuje rozmezı teploty. 0 - 85 C
25USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
2 UVOD DO JAZYKA VHDL A ISE WEBPACK
VHDL je programovacı jazyk pro popis HW vyvinuty pro modelovanı a simulaci rozsahlychsystemu, coz je znat predevsım v jistych nadbytecnych konstruktech, ktere se syntezounebo simulacı elektronickych obvodu vubec nesouvisı. Jazyk VHDL je otevreny standardu ktereho nenı potreba licence. Umoznuje pracovat na navrhu designu, aniz je znam cılovyobvod (device-independent), je take mozne implementovat design do zakaznickeho cipu.Jedna se o jazyk s hierarchickou strukturou navrhu designu. Bohuzel, je mozne vytvaritneefektivnı konstrukce, ktere se z hlediska algoritmu jevı jako spravne, ale z hlediskasyntezy vytvorı syntetizer neefektivnı nebo spatne zapojenı. U tohota jazyka nenı rozdılmezi psanı malymi a velkymi pısmeny (case insensitive).
ISE WebPack (z balıku ISE Design Suite [15]) je pokrocily navrhovy system firmyXilinx ve kterem je mozne vytvaret designy elektronickych obvodu. Nejdulezitejsı soucastisystemu jsou (v poradı v jakem se s nimi pri vyvoji pracuje):
• Editory (generatory) jazyka pro popis HW. Zejmena obsahuje editory jazyku Ver-ilog, VHDL. Dale obsahuje editor schemat elektronickych obvodu, editor simulacıatd.
• Syntetizer – Nastroj pro prevedenı textove nebo graficky popsaneho designu dosouboru pro dalsı pocıtacove zpracovanı. V ISE WebPack se syntetizer (XST) vyznacujedetekcı primitiv (inferencı) a pokrocilou optimalizacı designu. Syntetizery jsou vo-litelne.
• Implementace designu – Pri implementaci se jiz vytvarı struktura odpovıdajıcı konkretnımucılovemu obvodu (konfigurace pole). Tento blok uz nenı volitelny.
• Simulator – Nenı nutny pro navrh designu, ale velmi doporucen a urychluje vyvojdesignu. Simulaci je mozne provest pred syntezou nebo po implementaci. V ISEWebPack je moznost instalace programu ISim Lite, ktery pro zacınajıcı programatorypostacı. Je volitelny, velmi kvalitnı simulator je napr. ModelSim.
• Generator programovacıho souboru – Nejcasteji bitstreamu FPGA.
• Program pro komunikaci s FPGA – V ISE WebPack je integrovan program Impacts mnoha moznostmi a voleb komunikace.
Chci upozornit, ze tato cast teto prace nema za cıl podrobne vysvetlit VHDL, ale pouzezajistit, ze clovek neznaly VHDL programovanı spustı vytvorene referencnı prıklady aorientuje se v nich.
26USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
2.1 Prvnı program
Obdobou prvnıho programu typu ”Hello world“ je ve VHDL rozsvıcenı LED diody.
2.1.1 Zalozenı noveho projektu s VHDL souborem
V ISE WebPack zvolıme File/New Project, vyplnıme Name (napr. hello world), dole vTop-Level Source Type zvolıme HDL (textove popsany design) a klikneme na Next. Zdenas zajımajı predevsım polozky Syntesis Tool, coz je vyber syntetizeru, prednastavenoXST, a Preferred Language, kde zvolıme VHDL ve kterem jsou psany referencnı prıklady.Je doporuceno zvolit i simulator (prednastaveno ISim). V hornı casti je mozne zvolitcılovy obvod, coz nenı pro zacatek nezbytne nutne, ale lze ho vyplnit podle tabulky 1.3.Nedoporucuji zaskrtavat pole Manual Compile Order, protoze ISE WebPack velmi dobrerozpoznava hierarchii projektu. Dale klikneme na Next. V dalsım okne klikneme na NewSource, kde vlevo vybereme VHDL Module a vyplnıme polozku Name. V dalsım oknevyplnıme nazev portu, napr. LED out, direction zvolıme out a klineme na Next a dale naFinish a znovu na Next. V dalsım okne muzeme pridavat jiz predpripravene soubory. Daleklikneme na Next a pote na Finish. Tım bychom meli mıt pred monitorem neco v tomtosmyslu:
library IEEE; -- v teto knihovne jsou definovany slohy podle IEEE
use IEEE.STD_LOGIC_1164.ALL; -- toto je sloha
use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;
-- Zde je deklaracni cast entity. Deklaruji se zde predevsim brany
entity hello_world is
Port ( LED_out : out STD_LOGIC);end hello_world;
-- Zde se popisuje architektura designu
architecture Behavioral of hello_world is
-- Zde se deklaruji vnitrni signaly a komponenty
begin
-- LED_out <= ’1’; -- Zde jsme na vystup LED diody privedli log. 1
end Behavioral
Pokud odkomentujete radek -- LED_out <= ’1’;, muzeme uz spustit syntezu ob-vodu, ale jeste predtım pridame do designu soubor, ve kterem definujeme propojenı napro-gramovane brany s fyzickou branou (pinem) FPGA.
27USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
2.1.2 Implementation Constrains File
Na stavovem radku zvolte Projects/New Source, pote vlevo zvolıme Implementation Con-strains File (soubor s prıponou .ucf), pojmenujeme ho a klikneme na Next. Zvolıme vhierarchii designu nejvyssı soubor (ISE WebPack ho vetsinou sam rozpozna) a kliknemena Next a pote Finish. V hierarchii designu vlevo si oznacıme .ucf soubor a v okne Pro-cesses klikneme na User Constrains/Edit Constrains. Otevre se prazdne okno do kterehodoplnıme:
NET "LED_out" LOC = "P1";
Zde jsme propojili programovy vystup "LED_out" s pinem P1 FPGA, ktery je v mi-croFPGA modulu pripojen prımo na jednu z LED diod. Design je kompletne hotov.
Take lze vlozit timing constraint, coz je casovy pozadavek na pruchod signalu polem.Tyto pozadavky vyhodnocuje Place & Route behem implementace designu. Vyuzıvajıse v narocnych designech se soft-core procesory a predevsım DCM, kde je mozne, zepruchod signalu nabere zpozdenı a design nebude stabilnı. Prıklad vlozenı timing con-straint je v kapitole 5.7 – zmene hodinove frekvence soft-core procesoru PicoBlaze.
2.1.3 Ulozenı konfigurace do pole FPGA
Ted’ ulozıme konfiguraci pole do FPGA. V okne Hierarchy oznacıme v hierarchii designunejvyssı soubor a v okne Process spustıme Configure Target Device/Manage Configu-ration Process (iMPACT). ISE WebPack nasledne automaticky provede vsechny nutneprocesy k vytvorenı konfiguracnıho bitstreamu (syntezu, implementaci, generovanı bit-streamu). Dalsı cast vyzaduje programovacı kabel (pouzit byl Xilinx USB Platform ka-bel) s 2mm JTAG konektorem. Pokud je vse spravne pripojeno (Platform kabel ma LEDdiodu svıtıcı zelene pokud je zarızenı spravne zapojeno), provede se Boundary Scan mi-croFPGA modulu, ktery detekuje 2 zarızenı v JTAG chainu. Platform FLASH pamet’
FPGA a uzivatelskou FLASH pamet’. Pravym tlacıtkem mysi klikneme na Platform Flasha zvolıme Assign New Configuration File a vybereme v nasem projektu nas bitstream.Nakonec klikneme pravym tlacıtkem mysi na Platform FLASH a zvolıme Program. Nasledneby se mela FLASH pamet’ naprogramovat. Pokud vsechno probehlo spravne, rozsvıtila sejedna LED dioda na microFPGA modulu.
2.1.4 Vlozenı referencnıch prıkladu do projektu
Na prilozenem DVD jsou ulozeny slozky s referencnım prıklady. Stacı pri vytvarenınoveho projektu popsanem v casti 2.1.1 preskocit cast vlozenı noveho zdrojoveho kodu(New source) kliknutım na Next. V dalsım okne klikneme na Add Source, kde vyhledameslozku s referencnım prıkladem a cely jejı obsah pridame do projektu. Klikneme na Next
28USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
a pokracujeme podle navodu. Na zaver se ISE WebPack muze zeptat, ktere soubory se im-plementujı do FPGA a ktere slouzı k simulaci. U techto referencnıch prıkladu se souborypro testovanı uvozujı predponou test . Ve starsıch verzıch ISE WebPack se muze systemzeptat na nejvyssı soubor v hierarchii, ten je pojmenovan podle slozky referencnıho prıkladu.
2.2 Inference syntetizeru
Syntetizer rozpoznava (inference) zakladnı primitivy uvedene v [20]. Jde o akumulatory,hradla, aritmeticke operace, cıtace, komparatory, RAM a ROM pameti, dekodery a enkodery,registry, klopne obvody, trıstavove buffery, multiplexery a stavove automaty. Zakladnırozdelenı primitiv je na kombinacnı a sekvencnı. Zde uvedu jen nejvıce pouzıvane.
2.2.1 Kombinacnı logicke obvody
Hradla
XST podporuje vsechny hradla podle zakonu Boolevy algebry. Jako prıklad je pouzitotrıvstupove hradlo NAND.
OUT <= not ( IN1 and IN2 and IN3)
Multiplexery
Prıklad mutliplexeru (vystup OUT je definovan adresou; A, B, C, D jsou vstupy):
case adresa is
when "00" => OUT <= A;when "01" => OUT <= B;when "10" => OUT <= C;when "11" => OUT <= D;when others "11" => OUT <= A;
end case;
Komparatory
Jsou podporovany tyto verze komparatoru – rovno, vetsı, mensı, vetsı nebo rovno, mensınebo rovno a nerovna se napr. Pokud je A vetsı nebo rovno B potom OUT bude ”1”vjinem prıpade bude ”0”:
OUT <= ’1’ when A >= B else ’0’ ;
29USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
Dekodery a enkodery
Prıklad dekoderu s kodovanım 1 z n (One-hot):
case IN is
when "00" => OUT <= "0001";when "01" => OUT <= "0010";when "10" => OUT <= "0100";when "11" => OUT <= "1000";when others "11" => OUT <= "0000";
end case;
V prıpade enkoderu se zamenı hodnoty napr.
when "0001" => OUT <= "00";
2.2.2 Sekvencnı logicke obvody
Cıtace
Syntetizer podporuje cıtace se synchronnım a asynchronnım setem a resetem, se syn-chronnım a asynchronnım nactenım (LOAD), povolenım cıtanı a ruznymi mody cıtanı(up, down) a jejich kombinacemi. Zde uvedu jednoduchy binarnı cıtac.
if CLK = ’1’ and CLK’event then -- detekce nabezne hrany
-- Je take mozne zapsat detekci nabezne hrany takto: rising_edge(CLK)
count = count + 1; end if ;
Klopne obvody
Az na vyjımky se pouzıvajı klopne obvody typu D nebo T. Prıtomnost latchu je povazovanoza chybne napsany program. Klopny obvod (registr) typu D:
if rising_edge(CLK) then
OUT <= IN; end if ;
Stavove automaty
Jsou podporovany pouze synchronnı automaty typu Mealy a Moore s povinnostı ini-cializace stavovych registru synchronnım nebo asynchronnım signalem. ISE WebPackpouzıva velice pokrocilou syntezu konecnych stavovych automatu s automatickym kodovanımstavu (vyuzıva binarnı, Gray, One-hot, Johnson atd.) nebo navratu z neplatnych stavu cidetekcı nedosazitelnych stavu. Jedna se o pokrocilou programovacı techniku a vyuzitıpredpripravenych sablon v ISE WebPack je doporuceno.
30USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
2.3 Styly pro popsanı elektronickych obvodu
Ve VHDL je mozne popisovat elektronicke obvody, aniz by programator vedel jak pracujı.Postacı, kdyz vı, jak se dany obvod chova. Tomuto programovacımu stylu se rıka behav-ioralnı. Pouzıva se na nejnizsı urovni programovanı a jsou jimi popisovany jednoduchebloky (primitivy) napr. cıtace, komparatory, klopne obvody atd. viz. kapitola 2.2. Nadruhou stranu tu je strukturalnı styl programovanı ve kterem programator definuje propo-jenı bloku (komponenty) nizsı urovne casto popsane behavioralnım stylem. Toto rozdelenıumoznuje proklamovanou hierarchickou strukturu designu, kde na vrcholu designu jevetsinou blok popsany strukturalne. Primitivy, ktere syntetizer rozpozna jsou uvedenyv ISE WebPack v Edit/Language Templates pod VHDL/Syntesis Constructs/Coding Ex-amples. Tyto primitivy lze zkopırovat do sveho designu, pouzıvat je a upravovat dle svelibosti.
Popisovanı zakladnıch, casto opakujıcıch se elektronickych obvodu je casove narocne.Proto firmy (casto i nadsenı jedinci) zabyvajıcı se vyvojem aplikacı pro FPGA, CPLDpotazmo ASIC predvytvorili z primitiv makra s ruznym vyuzitım. Napr. ruzne typy pametı(ROM, RAM, FIFO atd.), prostredky pro komunikaci (UART), ruzne signalove aplikace(DSP, FFT, DFT atd.) ci dokonce samotne procesory. Tyto vyssı celky se take nekdynazyvajı IP.
2.4 Soft-core procesory
Procesorum implementovanych do FPGA se rıka soft-core (nekdy se jim take rıka syn-tetizovatelne procesory). Existuje velke mnozstvı soft-core procesoru od nejjednodussıosmibitovych napr. PicoBlaze, PacoBlaze (Verilog verze PicoBlaze) po slozite 32bitovenapr. MicroBlaze, Nios II, OpenRISC. Casto jsou sıreny zdarma napr. PicoBlaze, Open-RISC nebo jsou k zakoupenı napr. MicroBlaze, TSK3000A, Nios II. Mnoho firem anadsencu take pracovalo na implementaci starsıch procesoru, takze je mozne se setkats designem procesoru napr. Zilog Z80, Intel 8051, Intel 8080 nebo PowerPC. Porovnanınekterych soft-core procesoru z hlediska vykonu v ruznych vypoctech, struktury, konfig-urovatelnosti atd. se zabyvajı tyto dve diplomove prace [18], [19].
Pro dalsı praci jsem si vybral PicoBlaze pro jeho jednoduchy instrukcnı set a malepozadavky na prostredky FPGA. Jde o osvedceny produkt, ktery je zdarma sıren veVHDL, je cılen prımo na FPGA a je k nemu pripravena velmi kvalitnı dokumentace.
Take jsem pouzil i vykonny procesor MicroBlaze, protoze bych s procesorem Pi-coBlaze pravdepodobne nebyl schopen vyuzıt vsechny zdroje modulu.
31USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
3 PICOBLAZE A UART KOMUNIKACE
PicoBlaze je 8 bitovy mikrokontroler s redukovanym instrukcnım souborem (RISC) opti-malizovane pro hradlove typu Spartan-3 a zajist’ujıcı jednoduche rızenı a zpracovanı dat.Mikrokontroler ma velikost 96 rezu bezneho hradloveho pole. Jeho ROM pamet’ dokazeulozit 1024 programovych instrukcı. Podle rychlosti pole je jeho rychlost 44 - 100 MIPS.PicoBlaze je dostupny zdarma na strankach vyrobce a je distribuovan jako syntetizo-vatelny VHDL kod, coz dovoluje migraci kodu na budoucı pole.
K jadru PicoBlaze je dodavan assembler, graficke prostredı pro vyvoj programu ajeho simulaci, zdrojovy kod, ruzne simulacnı modely a nekolik zakladnıch referencnıchprıkladu. Ke generovanı ROM pameti je k dispozici Xilinx KCPSM3 assembler a Medi-atronix pBlazIDE assembler s importem KCPSM3 assembleru. Prace na programech proPicoBlaze probıhaly v programu pBlazIDE. Odlisnosti v assemblerech jsou v prıloze A.Vıce o programu pBlazIDE je uvedeno v [14]. Soubor s PicoBlaze ma nazev KPCSM3.vhd
3.1 Vlastnosti PicoBlaze
Vlastnosti a soucasti PicoBlaze podle obrazku 3.1:
• 16 jednobytovych univerzalnıch registru
• Do ROM lze ulozit 1024 programovych instrukcı
• Aritmeticko-Logicka jednotka (ALU) s prıznaky CARRY a ZERO (flags)
• 64 bytu vnitrnı scratchpad RAM
• 256 vstupnıch a 256 vystupnıch portu
• 10 bitovy programovy cıtac
• zasobnıkova pamet’ o 31 polozkach
• Kazda instrukce trva dve periody, tım je dosazena vysoka predvıdatelnost choduprogramu
• Rychla obsluha prerusenı
PicoBlaze neobsahuje zadne specialnı registry ani akumulatory. Registry jsou uni-verzalnı a vysledky operacı jsou ulkadany do urceneho (oznaceneho) registru.
ALU podporuje zakladnı matematicke operace scıtanı a odcıtanı, logicke operaceAND, OR a XOR, porovnavanı matematickych vysledku a testovanı bitu, a rotacnı apresunovacı operace.
32USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
Obrazek 3.1: Blokovy diagram procesoru PicoBlaze [5]
Schratchpad RAM obsahuje 64 bytu pamet’oveho prostoru adresovatelnych sestibitovouadresou. Obsah pameti se uklada do urceneho registru pomocı instrukcı STORE a FETCH.RAM je mozno prımo adresovat adresou jako konstanta nebo neprımo ulozenım adresydo jineho registru.
Pro vstupnı a vystupnı operace je urcen IN PORT resp. OUT PORT. Adresovanızajist’uje PORT ID. Behem INPUT a OUTPUT operacı se vyuzıvajı registry do kterychje zapsan obsah vstupu resp. je z nich nacten obsah na vystup.
PicoBlaze obsahuje 10 bitovy programovy cıtac3. Uroven cıtace nenı prımo ovlivnitelnaaplikacı, inkrementuje se automaticky a je castecne ovlivnem instrukcemi volanı podpro-gramu, skoku a v prıpadech resetu a prerusenı. Po pretecenı se cıtac nastavı na 0.
Rızenı toku programu je zajisteno instrukcı skoku JUMP, instrukcemi volanı podpro-gramu CALL a RETURN a vyvolanım prerusenı. Instrukce volanı podprogramu ovlivnujı31 urovnovy zasobnık, to umoznuje 31 urovnı podprogramu. Jedna uroven by mela bytrezervovana pro prerusenı a v prıpade pretecenı se poslednı adresy zasobnıku prepısı nanovou hodnotu.
3.2 Popis vstupnıch a vystupnıch operacı
I/O operace jsou zajist’ovany temito porty a signaly:
• PORT ID[7:0] obsah slouzı jako adresa vstupnıho a vystupnıho portu
310 bitu odpovıda 1024 instrukcım, hexadecimalne 000 - 3FF
33USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
• IN PORT[7:0] je vstupnı port
• OUT PORT[7:0] je vystupnı port
• READ STROBE se aktivuje behem druheho cyklu operace ctenı
• WRITE STROBE se aktivuje behem druheho cyklu operace zapisu
I operace ctenı a zapisu jsou aktivnı po dva cykly, proto je doporuceno vkladat registrytypu D mezi PicoBlaze a vstupy a vystupy.
PORT ID je osmibitovy vystupnı port s adresou vstupnıho a vystupnıho portu. Signalna portu je taktez platny po dva cykly, coz je dost casu pro dekodovanı portu nebo proprıstup k asynchronnı RAM. Adresovanı je podobne jako operace se scratchpad RAMprıme (adresa urcena konstantou) nebo neprıme (adresa je obsahem registru). V memprıpade jsem nepotreboval vıce jak 8 vstupnıch nebo vystupnıch portu, proto si na vs-tupu vystacıme s jednım multiplexerem 1 z 8 a na vystupu s kodovanım 1 z n (One HotEncoding).
3.2.1 Vstupnı operace
Pokud je z PicoBlaze vydana instrukce INPUT, na portu PORT ID se objevı adresa IN PORTportu po dva hodinove cykly. V logice FPGA se to resı pripojenım PORT ID na multi-plexor, ktery spojı zdroj s IN PORT portem. Pro zvysenı vykonu se doporuceje vlozitregistr typu D za multiplexer. Pokud je pocet vstupnıch portu vyssı nez 8, doporucuje semultiplexery kaskadovat.
Obrazek 3.2: Prıklad casovanı vstupnı operace[5]
34USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
S Druhym hodinovym cyklem se nastavı impuls READ STROBE vhodny pro pripojenınaprıklad k pameti FIFO, jako sdelenı, ze data byla uspesne prectena a mohla se prectenacast uvolnit4. Na obr. 3.2 je uveden prıklad casovanı vstupnı operace.
3.2.2 Vystupnı operace
Podobne jako u vstupu se na vystupu pri vydanı operace OUTPUT nastavı adresa vystupnıhoportu OUT PORT na portu PORT ID po dva hodinove cykly. Na port OUT PORT jsempripojil registr typu D s povolenım typu ENABLE. Pri enkodovanı vystupu je nutnoprovest operace AND vystupu PORT ID a WRITE STROBE jako dalsı signal typu EN-ABLE na pripojenem registru typu D.
Obrazek 3.3: Prıklad casovanı vystupnı operace[5]
Na obr. 3.3 je uveden prıklad casovanı vystupnı operace. Pokud je vydana instrukceOUTPUT, s cılovym registrem s0 a prımou adresou 65, na OUT PORT se nastavı obsahregistru s0. Druhy cyklus se nastavı signal WRITE STROBE. Po spravne implemntaci seobsah OUT PORT nacte do vystupnı logiky FPGA respektive na vystupnı registr typu D.
3.3 Obsluha prerusenı
PicoBlaze obsahuje jeden vstupnı signal prerusenı. Vıce signalu prerusenı je mozno vytvaretpomocı zdroju FPGA. Povolenı prerusenı je v procesoru zajisteno pomocı instrukce ENABLEINTERRUPT, instrukce pro zakazanı je DISABLE INTERRUPT. Aby byl signal prerusenı
4Pro tuto verzi PicoBlaze byly prave signaly READ STROBE a WRITE STROBE prıdany
35USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
zaznamenan, doporucuje se jeho delka trvanı na dva hodinove cykly. Na obrazku 3.4 jejednoduche doporucene schema prerusenı.
Obrazek 3.4: Schema prerusenı s registrem typu D se SET a RESET vstupem[5]
Pokud je vyvolano prerusenı, provede se z prave provadene instrukce skok na adresu3FF (CALL 3FF), kam se umıst’uje skok na podprogram prerusenı vetsinou oznacovanyISR (Interrupt Service Routine). Obsluha prerusenı automaticky ulozı CARRY a ZEROflags a hodnotu programoveho cıtace ulozı na vrchol zasobnıku, zaroven zakaze prerusenı.
Ukoncenı ISR se provadı instrukcı RETURNI ENABLE nebo RETURNI DISABLE s opetovnympovolenım prerusenı resp. zakazanym prerusenım. Behem teto operace PicoBlaze vyzvednehodnotu programoveho cıtace, prectou se hodnoty CARRY a ZERO a program se vratı zaposlednı provedenou instrukci.
Pocet cyklu od rozpoznanı prerusenı az po vykonanı ISR je v nejhorsım prıpade 5.Soubor s obsluhou prerusenı se jmenuje preruseni.vhd. Vıce o PicoBlaze, jeho vlast-nostech a programovanı v [5].
3.4 UART komunikace
Jedna se o asynchronnı prenos po seriove lince. Pro prenos je potreba jeden vodic provysılanı, jeden pro prijımanı a jeden vodic uzemnenı. Ve stavu, kdy nejsou zadna dataprenasena je linka v urovni “1”. Zacatek zpravy zacına startbitem, ktery uvede linkudo urovne “0”, pote se zacne vysılat dany byte od nejmene vyznamneho bitu (LSB) ponejvıce vyznamny(MSB) a nakonec se vysle stopbit, ktery uvede linku zpet na uroven“1”, jak ukazuje obrazek 3.5.
Zvolene parametru naseho UART komunikatoru jsou:
• 8 seriove prenasenych bitu jako prvnı preneseny je LSB
36USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
Obrazek 3.5: UART zprava s jednım s startbitem a jednım stopbitem[8]
• 1 start bit
• 1 stop bit
• bez parity
• baud rate – 38400 Bd/s
3.4.1 Resynchronizace
Asynchronnı komunikace znamena, ze komunikujıcı zarızenı mezi sebou nejsou synchro-nizovana. Za predpokladu, ze vysılajıcı i prijımajıcı znajı rychlost prenosu a strukturuprenasene zpravy, je mozne vytvorit referencnı signal o takove frekvenci, kde budou datanejvıce stabilnı a tım ”resynchronizovat“ spojenı s malou moznostı chyby5.
Doporucene generovanı referencnıho signalu UART se v nasem prıpade provadı 16xpo dobu jednoho vysılaneho bitu. Syntetizovatelny soubor se jmenuje generator__resynchronizacnich_impulsu.vhd a je koncipovan jako cıtac do hodnoty podle vzorce3.1 jehoz vystupem je EN 16 X BAUD.
Hodnota =CLK
16×baud rate=
4915200016×38400
= 80 (3.1)
3.4.2 Buffer dat
Protoze je asynchronnı komunikace ve sve podstate nepredvıdatelna z hlediska proududat, je nutno data docasne ulozit do rychle pameti – bufferu (v prıpade vysılanı je zpoma-lit, v prıpade prıjmu zrychlit). V nasem prıpade k tomu slouzı FIFO pamet’ o velikosti 16bytu bez parity, ktera se radı pred vysılac a za prijımac.
Soubor ma nazev zde bbfifo_16x8.vhd a je tvoren osmi 16 bitovymi posunovymiregistry a ctyrbitovym cıtacem jako ukazatelem pameti.
3.4.3 Vysılanı
Ve sve podstate je nutno data z FIFO pameti prevest z paralelnıho portu na seriovy port.To je dosazeno za pomocı multiplexeru 1 z 8 a trıbitovym cıtacem jako adresy. Tentosoubor se jmenuje kcuart_tx.vhd.
5Uvadı se pro 10 vysılanych bitu nepresnost max. 5%
37USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
3.4.4 Prıjem
Nez se data ulozı do FIFO pameti, je potreba data prevest na paralelnı tvar a zbavit jestart a stop bitu. To je dosazeno 16 bitovymi posunovymi registry. Tento soubor ma nazevkcuart_rx.vhd.
3.5 Popis maker a programu
3.5.1 Makra uart rx a uart tx
Soubory kcuart rx, kcuart tx a bbfifo 16x8.vhd jsou v makrech zapojene tak, aby bylyprezentovany jako jeden prijımacı a jeden vysılacı soubor (FIFO je v obou makrech). Vtabulce je 3.1 je uveden prehled a popis vstupnıch a vystupnıch signalu obou maker.
Makra se jmenujı uart_tx.vhd respektive uart_tx.vhd. Vıce o UART a popsanychmakrech v [8].
3.5.2 Makro KCPSM3 s UART
Toto makro obsahuje krome vyse uvedenych komponent (KCPSM3, preruseni, genera-tor resynchronizacnih impulsu, uart tx a uart tx) jeste komponenty zajist’ujıcı predevsımvstupne/vystupnı operace a kodovanı a dekodovanı portu popsanych v podkapitole 3.2.Pro kodovanı vstupu i vystupu pouzıvam kod 1 z n (One hot) a to vzestupne u vstupu (01,02, 04 – HEX) a sestupne u vystupu (80, 40, 20 – HEX)
V makru jsou dale tyto komponenty:
• multiplexer.vhd – na vstup multiplexeru je priveden statusovy port UARTu adata od prijımace. Adresa je urcena daty na PORT ID
• registr_vystupu.vhd
• dekoder_cteni_uartu.vhd – pouze AND operace
• registr_vstupu.vhd – registr typu D zapojeny mezi multiplexerem a vystupuIN PORTem
• pipeline_registr.vhd – pipeline registr typu D behem operace ctenı portu rx data
Soubor registr vystupu.vhd
Jde o registr typu D zapojeny na vystupu zvysujıcı vykon zapojenı s povolenım od log-ickeho soucinu WRITE STROBE a PORT ID. V instanci je vygenerovano 8 portu. Naosmy port je vyveden signal na vstup vysılace (uart tx) a na sedmy port je vyveden
38USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
Tabulka 3.1: prehled a popis vstupnıch a vystupnıch signalu maker uart rx a uart tx
Signal Smer PopisSpolecne signalyEN 16 X BAUD Vstup Referencnı casovy signal pro seriovy prenos, vysılan
cca 16x behem kazdeho preneseneho bituRESET BUFFER Vstup Vymaze obsah FIFO pameti. Nedoporucuje se
pouzıvatCLK Vstup Vstupnı hodinovy signalBUFFER FULL Vystup Indikuje, ze FIFO pamet’ je plna a data by se mela
rychle uvolnitBUFFER HALF FULL Vystup FIFO pamet’ je z poloviny zaplnena – 8 bytuSignaly vysılaceDATA IN[7:0] Vstup Data z PicoBlaze respektive jeho vystupnı logikyWRITE BUFFER Vstup Pokud je signal aktivnı, zapısı se data do z
DATA IN[7:0] do FIFO. Je generovan pomocıWRITE STROBE a PORT ID
SERIAL OUT Vystup Vystup ve spravnem tvaru UARTSignaly prijımaceSERIAL IN Vstup Data z jineho zarızenı ve tvaru UART prenosuREAD BUFFER Vstup Pouzıva jako signalizace, ze PicoBlaze data spravne
precetl. Je generovan pomocı READ STROBE aPORT ID
DATA OUT[7:0] Vystup Jde o vystupnı data z prijımaceBUFFER DATAPRESENT
Vystup Ve FIFO pameti je alespon jeden byte
signal pripraveny pro referencnı prıklad c. 1. Ostatnı porty jsou nevyuzity a zruseny syn-tetizerem.
Jmeno makra je KCPSM3_s_UART. V prıloze C je blokovy diagram makraKCPSM3 s UART.
3.5.3 Popis programu obsluhujıcı UART
V teto casti jsou popsany nejdulezitejsı casti programu, ktery je ulozen v souborechPROG ROM.vhd. Na obrazku 3.6 je ukazan vyvojovy diagram popisujıcı chod programu,ktery obsluhuje komunikaci UART s prıkladem vstupu uzivatele jako predstaveny vyslanım
39USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
retezce TEST<CR>.
Obrazek 3.6: Vyvojovy diagram zakladnı funkce komunikace UART s testovacımretezcem
Skokem na COLD START zacına program v nemz jsou vynulovany obsahy registru,nekdy povoleno prerusenı atd.
Hlavnı smycka programu zacına navestım PROMPT INPUT.Dalsım podprogramem je SEND PROMPT, ktery na vystup ze serioveho portu vysle
retezec KCPSM3, coz je zprava typu ”Zarızenı je pripraveno prijımat“.Podprogram RECEIVE STRING je zodpovedny za ctenı dat ze serioveho portu (volanı
podprogramu read from UART), ukladanı dat do scratchpad RAM, analyze statusovehoportu (podprogram receive full test), jednoduche operace s BACKSPACE (zpetna edi-tace, podprogram BS edit) a detekce pretecenı vstupnı FIFO pameti (vyslanı retezceOverflow, zajist’uje podprogram read error). Pokud je nacteny retezec ukoncem znakemCR (Carriage Return), zacne se analyzovat retezec ulozeny ve scratchpad RAM. Pokudse v hlavnı smycce jako prvnı znak detekuje T, skocı program na navestı testovanı TESTu(test for TEST), jinak se vysle chyba syntaxe (navestı send syntax). Dale podprogramtestuje znak za znakem a pokud je cely retezec v poradku, skocı podprogram na navestıPROMPT KANAS, ktery vysle retezec KANASEK a vratı se na navestı PROMPT INPUT.Pokud nenı retezec v poradku, vysle se chyba syntaxe.
40USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
Pri vyslanı zpravy se vola podprogram send to UART, ktery take analyzuje statusovyport, protoze FIFO pamet’ muze byt plna. V tom prıpade skace ve smycce, dokud seneuvolnı.
Pri ctenı ze serioveho portu se v podprogramu RECEIVE STRING vola podprogramread from UART, ktery setrvava v nekonecne smycce, dokud se na vstupu seriovehoportu neobjevı data. Tento podprogram obsahuje skok pro vyslanı echa.
Napr. v souboru \PWM_example\program_PWM.psm je uvedeno pouzitı uvedenychpodprogramu. Soubor je citelny ve vetsine textovych editorech, ale doporucuji vyvojoveprostredı pBlazIDE.
Obrazek 3.7: Prıklad komunikace z terminalu TeraTerm programu program PWM.psm
Na obrazku 3.7 je uveden prıklad komunikace z referencnıho prıkladu 5.66. Vıce oprogramovanı UART v [7]
6Behem vyvoje se vyskytla chyba, kdy je vyslanı echo charakteru zpozdeno o jeden znak. Tuto chybuse mi nepodarilo odstranit. Vyslanım CR charakteru se ”dozobrazı“ chybejıcı znak. Na funkcnost programuchyba nema vliv.
41USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
4 MICROBLAZE, PLB, VYBRANA IP A EDK
4.1 Zakladnı vlastnosti MicroBlaze a jeho HW popis
Soft-core procesor MicroBlaze[21] je vysoce parametrizovatelny 32-bitovy procesor sredukovanym poctem instrukcı (RISC) a Harvardskou architekturou. MicroBlaze pouzıvaBig-Endian (MSB first). Vybrane vlastnosti a soucasti v poslednı verzi (7.20.d) jsou:
• Volitelna sırka pipeline
• Barrel shifter, HW delic a nasobic, FPU
• Fast Simplex Link (az 16 kanalu), Xilinx CacheLink a PLB sbernice
• Hardware debugger
• Memory Management Unit
• Optimalizace podle rychlosti nebo podle umıstenı v poli
• 32 32-bitovym registru
• Sada specialnıch registru
Na obr. 4.1 je blokove schema MicroBlaze.MicroBlaze je poskytovan v ramci EDK firmy Xilinx (soucast balıku ISE Design
Suite[15]). Zdrojove kody MicroBlaze nejsou k dispozici, protoze se jedna komercnı pro-dukt. K HW popisu procesoru slouzı MHS[33] soubor (prıpona .mhs) ve kterem jsou vinternım jazyku popsany vlastnosti MicroBlaze. Napr.:
BEGIN microblaze
PARAMETER INSTANCE = microblaze_0
PARAMETER C_AREA_OPTIMIZED = 1
PARAMETER C_INTERCONNECT = 1
PARAMETER C_DEBUG_ENABLED = 1
PARAMETER HW_VER = 7.20.d
BUS_INTERFACE DPLB = mb_plb
BUS_INTERFACE IPLB = mb_plb
BUS_INTERFACE DEBUG = microblaze_0_mdm_bus
BUS_INTERFACE DLMB = dlmb
BUS_INTERFACE ILMB = ilmb
PORT MB_RESET = mb_reset
PORT INTERRUPT = xps_intc_0_Irq
END
42USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
Obrazek 4.1: Blokove schema soft-core procesoru MicroBlaze (sede casti jsou vo-litelne)[15]
V radcıch mezi BEGIN-END jsou definovany internı propojenı, porty a vlastnosti IP(MicroBlaze je take IP). PARAMETER uvozuje vlastnost IP. Napr. C_AREA_OPTIMIZED = 1
znamena, ze MicroBlaze je optimalizovan na velikost v poli. Radek uvozeny BUS_INTERFACEje definice pripojenı k ostatnım IP a pameti skrze sbernice. Procesor pouzıva Harvard-skou architekturu. Tzn., ze prıstup k datum a instrukcım je oddeleny. Proto jsou dokazde pametı vedeny dva linky sbernice, napr. DLMB = dlmb je pripojenı k datove castipameti pres Local Memory Bus (LMB). PORT definuje pripojenı k externım pripojenınapr. INTERRUPT = xps\_intc\_0\_Irq je pripojenı k jine IP. V tomto pripojenı odradice prerusenı.
4.2 Pripojenı MicroBlaze k periferiım
Pro interakci s periferiemi MicroBlaze vyuzıva nekolik sbernic (vzdy ve dvou variantach– instrukce a data):
• Local Memory Bus (LMB)
• On-chip Peripheral Bus (OPB)
• Fast Simplex Link (FSL)
43USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
• Xilinx Cache Link (XCL)
• Processor Local Bus (PLB)
• Debug a Trace Interface
On-chip Peripheral Bus a Trace Interface prestali byt podporovany (deprecated). FastSimplex Link a Xilinx Cache Link jsem nepouzıval, Debug interface (DEBUG bus) vyuzıvaJTAG rozhranı FPGA a je kontrolovan pres Xilinx Microprocessor Debugger (XMD). Vprıloze D je uveden prıklad blokoveho schematu IP v FPGA generovane v EDK.
4.2.1 Local Memory Bus
Jde o synchronnı sbernici slouzıcı k prıstupu procesoru k pameti umıstene v FPGA vBlockRAM. V tabulce 4.1 je popis signalu z obou interfacu:
Tabulka 4.1: Prehled vybranych signalu LMB a jejich popis
Signal Datovy interface Instrukcnı interface PopisAddr[31:0] Data Addr[0:31] Instr Addr[0:31] Adresova sbernice
Byte Enable[3:0] Byte Enable[3:0] nepouzita Platne datove blokyData Write[0:31] Data Write[0:31] nepouzita Sbernice pro zapis
AS D AS I AS Zacatek transferu datRead Strobe Read Strobe IFetch Indikace ctenıWrite Strobe Data Addr[0:31] nepouzita Indikace zapisu
Data Read[0:31] Data Read[0:31] Instr[0:31] Sbernice pro ctenı
Sbernice vyuzıva minimum rıdıcıch signalu a jednoduchy protokol, aby byl zajistenprıstup v jednom hodinovem cyklu. Vsechny signaly jsou aktivnı v log. 1.
4.3 Processor Local Bus
PLB(v4.6)[28] je vysokorychlostnı sbernice. Datova sbernice je 128-bitova, adresova je64-bitova. Sbernice je multi-master/multi-slave. Vlastnosti sbernice jsou:
• Az 16 master zarızenı a neomezeny pocet slave zarızenı
• 4 urovne priorit pro master zarızenı pro prıstup ke sbernici
• DMA operace
44USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
• DDR podpora
• Podpora atomickych operacı master zarızenı
• Podpora 16, 32 a 64 bitovych datovych operacı
• Moznost parity a prefetch dat
Obrazek 4.2: Blokove schema zapojenı PLB s ostatnım zarızenımi[28]
Na obr. 4.2 je blokove schema zapojenı sbernice s master a slave zarızenı. Slavezarızenı jsou pripojena ke sdılene sbernici. PLB protokol se sklada z datoveho a adresovehocyklu. Adresovy cyklus se sklada z faze pozadavku (request), faze prenosu (transfer)a faze potvrzenı (address acknowledge). PLB prenos zacına vystavenım adresovych aprenosovych signalu (address and transfer qualifiers) a pozadavku na vlastnictvı sbernice(bus ownership). Pote co PLB arbitr potvrdı vlastnictvı sbernice, vystavı PLB arbitr adresovea prenosove signaly na sdılenou sbernici pro slave zarızenı (faze prenosu) a zahajı datovy
45USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
prenos. Prenos je ukoncen vracenım (latch) adresovych a prenosovych signalu zpet masterzarızenı behem faze potvrzenı.
Datovy cyklus ma fazi prenosu a fazi potvrzenı (data acknowledge). Faze prenosuzacına ve stejny okamzik jako faze prenosu adresoveho cyklu. Prenos je okoncen fazipotvrzenı ve stejny okamzik jako adresovy cyklus. Na obr. 4.3 jsou naznaceny adresove adatove cykly PLB sbernice.
Obrazek 4.3: Datovy a adresovy cyklus PLB[28]
4.4 Vybrana IP
V teto casti jsem popsal nektera pouzita IP. Jde o XPS UART Lite, XPS General Pur-pose Input/Output (GPIO), XPS Multi-CHannel External Memory Controller (XPS MCHEMC), XPS Serial Peripheral Interface (SPI) a XPS Timer/Counter. U kazde IP je popsantake jmeno instance a nazev externıho portu v MHS souboru mimo BEGIN-END cast (in-terakce mezi UCF souborem a internı castı IP).
4.4.1 XPS UART Lite
XPS UART Lite[22] je pripojen k PLB sbernici a k seriove sbernici. Vlastnosti modulujsou:
• PLB interface
• 8 bitove prenosy
• Vysılacı a prijımacı kanal (full duplex)
• Vysılacı a prijımacı FIFO pro 16 znaku
• Konfigurovatelny pocet datovych bitu, konfigurovatelna parita a rychlost
Na obr. 4.4 je blokove schema IP. Modul se sklada z PLB interface module, kterazajist’uje obousmernou komunikaci mezi PLB a XPS UART Lite. Dale je prıtomen UARTLite Register Module ve kterem jsou FIFO pameti a rıdıcı a statusovy registr. A nakonec je
46USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
tu UART Control Module ve kterem jsou TX a RX moduly, ktere provadejı serioparalelnıa paralelneseriove operace (obsahuje shift registry), dale je tu 16-ti bitovy parametrizo-vatelny baud rate generator a Control Unit pro inicializaci start a stop bitu. IP generujepouze jeden stop bit. IP muze mıt i prerusenı.
Obrazek 4.4: Blokove schema modul XPS UART Lite[22]
Vlastnosti IP v designu:
• Rychlost – 38400 bd/s
• 8 datovych bitu
• Bez parity
Jmeno instance v designu je RS232 a ma dva externı porty:PORT fpga_0_RS232_RX_pin = fpga_0_RS232_RX_pin, DIR = I
PORT fpga_0_RS232_TX_pin = fpga_0_RS232_TX_pin, DIR = O
Klıcove slovo DIR znamena zkratku pro direction, tedy smer. Nejcasteji pouzıvanehodnoty jsou I pro vstup, O pro vystup a IO pro obousmerny signal. V tomto popisu sejeste casto vyskytuje klıcove slovo VEC (vector) s vektorem signalu napr. VEC = [0:31]
pro 32 bitovy signal.
4.4.2 XPS General Purpose Input/Output
XPS GPIO [24] je jako v prıpade XPS UART Lite slozen ze trı castı. Sklada se z PLBinterface modulu stejne jako XPS UART Lite modul, z vlastnıho generatoru prerusenı avlastnıho jadra GPIO. XPS GPIO je 32-bitova periferie. Klıcove vlastnosti jsou:
• PLB interface
47USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
• Moznost pouzitı jednoho nebo dvou kanalu s nezavislou zmenou sırky GPIO
• Sırka GPIO muze byt od 1 do 32 bitu
• Moznost dynamicke zmeny smeru portu
• Moznost prerusenı
Klıcovou casti modulu je GPIO jadro jehoz blokove schema je na obr. 4.5. Jadro ko-munikuje s PLB Interaface modulem skrze IPIC sbernici. Jadro obsahuje registry a mul-tiplexery pro ctenı a zapis do GPIO vystupnıch registru a nezbytnou logiku pro prerusenı.
V nasem designu je GPIO konfigurovano s jednım kanalem a sırkou osmi bitu bezprerusenı a je pouzito pouze jako vystup na LED diody.
Jmeno instance v designu je Generic_GPIO.
4.4.3 XPS Timer/Counter
XPS Timer/Counter[25] je 32-ti bitovy modul s cıtacem/casovacem a PLB interface mod-ulem (spojeni IPIC interfacem). Klıcove vlastnosti jsou:
• PLB interface
• Dva programovatelne cıtace/casovace s moznostı prerusenı, s generatorem udalostıa logikou pro zachycenı udalosti
• Jeden PWM vystup
• Konfigurovatelna sırka cıtace a smer cıtanı
Blokove schema modulu je na obr. 4.6. Modul muze pracovat ve trech modech:
• Generate – Jde o generator opakujıcıch se signalu na vystup
• Capture – Opacna funkce Generate, cıta prıchozı signaly do modulu
• Pulsne sırkovy modulator (PWM)
V prıkladech vyuzıvam modul jako PWM generator, proto uvadım popis dulezitychregistru:
LOAD Registry (TLR0 a TLR1) – Slouzı pro konfiguraci sırky cıtacu (nejsou potrebav prıpade 32 bitovych cıtacu). Jejich sırka je 32 bitu.
Control a status registry (TCSR0 a TCSR1) – Slouzı pro nastavenı vlastnostı jadra.Umıstenı bitu je na obr. 4.7.
Popis bitu registru TCSR0 (registry TCSR0 a TCSR1 jsou prakticky shodne, protouvadım jenom TCSR0):
48USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
Obrazek 4.5: Blokove schema jadra GPIO[24]
• ENALL – Povolı vsechny cıtace. TCSR0 obsahuje stejny bit pro simultannı nas-tavenı cıtacu/casovacu. Taktez nastavı bity ENT0 a ENT1
• PWMA0 – Povolı PWM pro cıtac/casovac0. Casovac0 nastavuje periodu PWM,casovac1 cas po ktery zustava PWM vystup v log. 1
• T0INT – Indikuje prerusenı cıtace/casovace0. Bit lze cıst i zapisovat (nulovat)
• ENIT0 – Povoluje prerusenı cıtace/casovace0
49USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
Obrazek 4.6: Blokove schema Timer/Counter jadra[25]
Obrazek 4.7: Registr TCSR0[25]
• LOAD0 – Nastavı cıtac/casovace0 hodnotou z registru TLR0
• ARHT0 – V modu Generate specifikuje, zda se cıtac po naplnenı zastavı (log.0) nebo se znovu spustı (log. 1). V modu Capture definuje, zda se ulozı stavajıcınactena hodnota v cıtaci (log. 0) nebo se prepıse a cıtanı se spustı znovu
• CAPT0 – Povolenı externıho spustenı modu Capture pro cıtac/casovace0
• GENT0 – Povolenı externıho spustenı modu Generate pro cıtac/casovace0
• UDT0 – Nastavı smer cıtanı (log. 0 pro dopredny cıtac)
• MDT0 – Nastavı mod cıtace/casovace0 (log. 0 pro Generate mod)
Nastavenı modulu v designu: Sırka cıtacu je 32 bitu, cıtace/casovace jsou dva a prıchozıexternı signaly jsou aktivnı v log. 1.
Jmeno instance v designu je xps_timer_0.
50USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
4.4.4 XPS Serial Peripheral Interface (XPS SPI)
XPS SPI [23] je modul, ktery zprostredovava komunikaci mezi PLB sbernicı a dalsımizarızenımi pripojenych k SPI sbernici v modech master i slave, predevsım jde o FLASHa EEPROM pameti.
SPI sbernice a protokol
SPI je synchronnı seriova sbernice pracujıcı v plne duplexnım rezimu. Architektura jemaster/slave a v zakladnım provedenı jde o ctyrvodicovou sbernici. Na obr. 4.8 je ukazanozakladnı zapojenı sbernice. Datove signaly a signal hodin jsou ve sbernici sdılene s os-tatnımi zarızenı.
Obrazek 4.8: Zakladnı zapojenı SPI sbernice[10]
Popis signalu:
• SCK – Hodiny sbernice pro synchronizaci
• MISO – Datovy vystup od master zarızenı
• MOSI – Datovy vystup od slave zarızenı
• SS – Vybıra aktivnı slave zarızenı (slave select). Signal je typu active low
Signal hodin je konfigurovatelny. Mozne je zmenit frekvenci, polaritu a fazi. Stan-dardem pro znacenı polarity a faze jsou vyrazy CPOL (polarita) a CPHA (faze). Prıkladcasovacıho diagram je na obr. 4.9, kde je videt, ze SPI muze vyuzıvat nabeznou i sestup-nou hranu signalu.
Pro zacatek datoveho prenosu master nakonfiguruje prenosovou rychlost sbernice,ktera je mensı nebo rovna maximalnı frekvenci, kterou slave zarızenı podporuje. Dalesignal slave select nastavı do log. 0. V tomto okamziku muze master zacıt s prenosemdat po lince MISO a zaroven se na lince MOSI objevı data od slave. Bohuzel na MOSI iMISO lince se na mıste cıloveho zarızenı nemusı okamzite objevit platna data.
Zapojenı zarızenı muze byt nezavisle na zarızenı, v tomto prıpade na jeden slave se-lect pripada jedno slave zarızenı a pocet vodicu se zvysuje nebo muze byt zapojeno v
51USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
Obrazek 4.9: Prıklad casovacıho diagramu sbernice pro jeden byte (cervena = ctenı,modra = zapis)[10]
chainu, kdy je jeden signal slave select zapojen na vsechny slave zarızenı a MISO aMOSI signal je prenasen master a slave zarızenı v daisy-chainu. Vetsina slave zarızenıpodporuje operace s ostatnımi slave zarızenımi, tım ze majı trıstavovy MISO vystup, alenenı to pravidlem.
Modul XPS SPI
Modul slouzı pro komunikaci s externımi zarızenımi pripojenych ke sbernici SPI. Jehoklıcove vlastnosti jsou:
• PLB interface
• Podporuje zmenu master i slave operace, full duplex, MSB/LSB prenosy, multimas-ter/musltislave prostredı
• Menitelna polarita a faze, podpora munualnı a automaticke slave select, prenosy osırce 8, 16 a 32 bitu
• Volitelna prijımacı a vysılacı FIFO o 16 elementech. Moznost pripojit az 32 slavezarızenı
Polarita a faze musı byt nastavena stejne na master i slave zarızenı. Velikost frekvencehodin SPI sbernice nesmı byt polovina frekvence PLB v prıpade, ze je jadro v rezimuslave. Velikost frekvence by mela byt, co nejvyssı. Na obr. 4.10 je blokove schema mod-ulu.
Modul se sklada z PLB interface modulu, modulu SPI registru a registru prerusenıa samotneho jadra SPI. Soucastı SPI jadra je baud rate generator, serioparalenı registr(shift register), jehoz velikost je odvozena od poctu prenasenych bitu a rıdıcı jednotka.
52USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
Obrazek 4.10: Blokove schema XPS SPI modulu[23]
Nezakreslenym signalem je vystup prerusenı. V IOB na FPGA se signaly typu MISO T,MISO O a MISO I pripojı na trıstavovy prepınac (IOBUF).
Popis vybranych registru:
• SSR – Zapisem hodnoty 0xA se jadro resetuje
• SPICR – Control registr. Nastavuje polaritu, fazi signalu, MSB/LSB prenos, manualnınebo automaticky slave select, master/slave nastavenı zarızenı a samotne povolenıSPI transakcı
• SPISR – Status registr. Kontroluje stav FIFO pametı, stav prıchozıho a odchozıhoregistru, a chybu nastavenı slave select vodice
• SPIDTR a SPIDRR – Registry prıchozıch a odchozıch dat. Jejich velikost je urcenanastavenım sırky slov.
53USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
• SPISSR – Slave select registr. V prıpade nastavenı manualnıho slave select bitu sev tomto registru vybıra aktivnı slave zarızenı nastavenım log. 0 prıslusneho slaveselectu. Sırka koresponduje s poctem slave zarızenı
• DGIER – Registr globalnıho povolenı prerusenı. Nastavenı log. 1 na LSB bit sepovolı prerusenı
• IPIER a IPISR – IPIER nastavuje povolenı prerusenı a IPISR indikuje prijata prerusenınastavena v registru IPIER. Indikuje stavy registru SPIDTR a SPIDDR, predevsımpretecenı, podtecenı, jestli jsou registry plne nebo prazdne a stav vysılacı FIFO.
Modul ma nastavenou osmibitovou datovou sırku, pocet slave selectu je 1, modul jekonfigurovan bez FIFO pametı a frekvence SPI sbernice je nastavena jako 1
512 frekvencePLB, tedy na 96 kHz.
Jmeno instance v designu je xps_spi_0.
4.4.5 XPS Multi-CHannel External Memory Controller (XPS MCHEMC)
Modul [27] zprostredkovava komunikaci mezi PLB sbernicemi a externımi pametmi typuRAM a FLASH. Jde tedy o radic externıch pameti. Blokove schema modulu je na obr.4.11. Vlastnosti modulu jsou:
• PLB interface o volitelne sıri 32 a 64 bitu
• Nezavisle pripojenı PLB a MCH (az ctyri linky) sbernice
• Podpora pripojenı asynchronnıch i synchronnıch pametı typu SRAM a FLASH
• Podpora az ctyr pamet’ovych banku o sıri datove sbernice 8, 16, 32 a 64 bitu
• Podpora nekolika modu datovych transferu – burst, single-beat, strankovacı (page)
Modul se sklada z MCH PLB interface modulu, ktery poskytuje komunikaci mezihlavnım jadrem EMC (pres IPIC interface) a vnitrnımi sbernicemi. V hlavnım jadre mod-ulu je blok Select Parameters, ktery zajist’uje casovanı pametı a je v nem ulozena typpripojene pameti, dale modul obsahuje Mem State Machine, ktery rıdı operace zapisua ctenı a je zdrojem rıdıcıch signalu pro ostatnı casti modulu. Mem Steer rıdı odesılanıa prıjem dat, taktez posıla signal potvrzenı do PLB MCH interface modulu a AddressCounter Mux zajist’uje adresovanı pametı. V bloku Counters jsou cıtace, ktere poskytujıdelky cyklu ctenı a zapisu. Blok IO Registers je volitelny a vklada se v prıpade, ze pamet’
je spoustena na sestupnou hranu.Popis dulezitych signalu:
54USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
Obrazek 4.11: Blokove schema XPS MCH EMC modulu[27]
• MEM_DQ_I, MEM_DQ_O a MEM_DQ_T – Signaly obousmerne datove sbernice privedenena modul IOBUF v IOB
• MEM_A – Signaly adresove sbernice
• MEM_CEN, MEM_OEN a MEM_WEN – Jde o signaly typu Chip Select (chip enable), Out-put Enable a Write Enable. Jsou to signaly aktivnı v log. 0 (active low). Zajist’ujıvyber pameti, povolenı ctenı a zapisu
Nastavenı tohoto modulu ma velky dopad, jak na funkcnost pripojene pameti (nas-tavenı casovanı), tak i na prostredky pole (CLB i IOB), kdy muze byt zapojeno i 1800LUT. Proto uvadım v tab. 4.2 a 4.3 prehled dulezitych generickych parametru:
Modul vytvarı 32 bitovou adresovou sbernici. FPGA ma k dispozici pouze 64 IOBa pocet skutecnych adresovych pinu je pouze 19. To znamena, ze 13 IOB je nevyuzito,proto je na vystup adresove sbernice pripojen maly modul, ktery rozdelı sbernici.
Jmeno instance v designu je Generic_External_Memory.
55USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
Tabulka 4.2: Prehled dulezitych parametru jadra XPS MCH EMC – Parametry jadra[27]
Oznacenı parametru Popis parametru Povolene hodnotyC NUM BANKS MEM Pocet pripojenych pamet’ovych
banku1 – 4
C INCLUDE PLB IPIF Pripojenı k PLB sbernici 0 – bez PLB, 1 – s PLBC INCLUDE NEGEDGEIOREGS
Vytvorı blok registru pro pametipouzıvajıcı sestupnou hranu
0 – nabezna hrana, 1 –sestupna hrana
C MEM0 WIDTH Sıre datove sbernice 8, 16, 32 a 64 bituC INCLUDE DATAWIDTHMATCHING 0
Pokud sıre datove a PLB(MCH)sbernice nenı stejna, pristoupı dopameti vıcekrat, aby vyrovnalachybejıcı datovou sırku
0 – vlastnost nepouzita,1 – pouzije vlastnost
C SYNCH MEM 0 Vybıra typ pameti 0 – asynchronnı, 1 –synchronnı
Tabulka 4.3: Prehled dulezitych parametru jadra XPS MCH EMC – Parametry casovanıpameti [27][29]
Oznacenı parametru Ekvivalent Popis Hodnota [ps]C TCEDV PS MEM 0 TAC Prıstupova doba (operace ctenı) 55000C TAVDV PS MEM 0 TAA Prıstupova doba adresy 55000C THZCE PS MEM 0 THZ Doba mezi odpojenım Chip Selectu
a vstupem datove sbernice do stavuvysoke impedance
20000
C THZOE PS MEM 0 TOHZ Doba mezi odpojenım Output En-able a vstupem datove sbernice dostavu vysoke impedance
20000
C TWC PS MEM 0 TWC Prıstupova doba (operace zapisu) 55000C TWP PS MEM 0 TWP Doba pulsu k zapisu 40000
C TLZWE PS MEM 0 TWHZ Doba mezi odpojenım Write Enablea vstupem datove sbernice do stavunızke impedance
0
56USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
4.5 Embedded Development Kit
EDK je IDE vytvorene za pomoci systemu Eclipse a pro kompilaci vyuzıva system Cyg-win [30]. EDK tvorı dva programy – Xilinx Platform Studio (XPS) a Xilinx Software De-velopment Kit (XSDK). XPS slouzı pro tvorbu HW designu s MicroBlaze s jednoduchymrozhranım pro tvorbu programu a jeho debugovanım. SDK importuje design z XPS aslouzı predevsım pro tvorbu slozitych programu. Pro dalsı praci si vystacıme pouze sprostredım XPS.
Po spustenı programu se objevı okno pro otevrenı nebo vytvorenı noveho projektu(designu). V prıpade otevrenı jiz vytvoreneho designu (Open a recent project) najdeteprojekt s nazvem system.xmp. Je zvykem pojmenovat projekt system. Po otevrenı projektuse ve spodnı casti inicializuje textovy vystup konzole, vlevo se objevı okno s informacemio projektu (Project), aplikacemi (Applications) a IP katalog.
V okne Project je zobrazen seznam souboru s udaji o projektu. Je zde MHS soubor(viz. kapitola 4.1), MSS[33] soubor, ktery obsahuje SW informace o IP pro generatorknihoven (Libgen generator). Dale je zde UCF soubor (kap. 2.1.2) s popisem pinu a CMDsoubor, ktery slouzı pro program iMPACT a je v nem definovano, jak naprogramovatFPGA.
V okne Applications je seznam programu vytvorenych pro FPGA. Programy jsoupsany jazyce C, zdrojove soubory pro kazdy SW projekt jsou v Sources a v Headers. VCompiler Options je mozne nastavit vlatnosti kompilatoru a Linker Scriptu. Je zde takeumıstenı zkompilovaneho spustitelneho souboru executable.elf. Program se standardneuklada do BlockRAM. V BlockRAM muze byt ulozen pouze jeden program, proto jeu kazdeho SW projektu moznost kliknout pravym tlacıtkem mysi na jmeno projektu aoznacit/odznacit Mark To Initalize BRAMs.
XPS muze oddelene naprogramovat HW konfiguraci pole a ulozit program do Block-RAM. Ve stavovem radku je Device Configuration s moznostı Update Bitstream (pouzeulozenı dat do BlockRAM) a Download Bitstream (provede vsechny operace nutne knaprogramovanı FPGA).
V okne IP Catalog lze pridavat uz predvytvorene IP do designu.
57USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
5 REFERENCNI PRIKLADY
Byli vytvoreny ctyri jednoduche prıklady pro nenarocne vyuzitı modulu, ktere meli hlavneza cıl prozkoumat moznosti modulu, prıklad pripojenı prevodnıku urovnı, dva tezsı prıkladys vyuzitım pokrocilych vlastnostı pole a soft-core procesoru PicoBlaze a nakonec nekolikprıkladu s vyuzitım soft-core procesoru MicroBlaze a zdroju celeho modulu. Jde o tytoprıklady (jsou uvedeny nazvy slozek se soubory prıkladu, prıklady pro MicroBlaze jsouve slozce s jeho designem):
• Binarnı cıtac s vystupem na LED – blikac_example
• Dekadicky cıtac od 0 do 99 – citac_example
• Jednoduchy stavovy automat – FSM_example
• Test vystupu se soft-core procesorem PicoBlaze – blikac_picoblaze_example
• Pripojenı modulu k seriovemu portu – HW prıklad
• Regulator urovne jasu LED diody komunikujıcı s PC – PWM_example
• Zmena hodinove frekvence soft-core procesoru PicoBlaze – DCM_example
• Tvorba HW designu pole se soft-core procesorem MicroBlaze – microblaze_design
• Ukazka pouzitı modulu XPS GPIO a XPS UART Lite
• Regulator urovne jasu LED diody
• Ukazka komunikace s SPI FLASH z asynchronnı pameti RAM
• U-boot
Soubory spustitelne v ISE Webpack (.vhd a .ucf soubory) a v pBlazIDE (.psm soubory)jsou na prıloze DVD spolu s projektem do XPS se soft-core procesorem MicroBlaze.
5.1 Binarnı cıtac s vystupem na LED
Jedna se o binarnı cıtac popsany behavioralnım stylem. Cıtac cıta do 226 a jeho nejvyssıuroven je vyvedena na LED, ktera blika. Po vypoctu s frekvencı oscilatoru je vyslednafrekvence blikace:
Tblik =Tcit
Tosc=
226
149152000
= 1.3653Hz (5.1)
Jde tedy v podstate o preddelic. Zapojenı vyzaduje zanedbatelne prostredky FPGA.Schema obvodu je na obrazku c. 5.1.
58USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
Obrazek 5.1: Schema zapojenı blikace s vystupem na pin P1
5.2 Dekadicky cıtac od 0 do 99
Jako v predchozım prıpade jde o zapojenı s binarnım cıtacem. Vstupem je preddelic,podobny jako v minulem prıpade, ovsem s vystupnım bitem povolenı cıtanı. Teorie kaskadovanıcıtacu ve VHDL doporucuje pouzıvanı bitu povolenı cıtanı (Count Enable). Vystupempreddelice, ktery nam generuje referencnı signal s frekvencı cca 1,35 Hz, jsou dve in-stance (jednotky a desıtky) jednoho binarnıho cıtace se zkracenym cyklem tzv. BCDcıtace. Schema zapojenı na obr. 5.2.
Obrazek 5.2: Schema zapojenı citace od 0 do 99
59USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
5.3 Jednoduchy stavovy automat
Protoze modul ma jenom dva spınace, pouziju pouze jednoduchy konecny automat typuMoore. Jeden spınac pouziju jako globalnı reset pro navrat na prvnı stav. Druhy spınacpouziju pro prechod do dalsıho stavu. Jako indikaci stavu pouziju ctyri LED diody in-dikujıcı ctyri ruzne stavy. Na obr. 5.3 je stavovy diagram prıkladu.
Obrazek 5.3: Stavovy diagram referencnıho prıkladu
Po automaticke inicializaci do stavu s1 se po stisknutı tlacıtka SW1 uvede do stavus2. Po dalsıch dvou stiknutıch se uvede do stavu s4 ze ktereho se muze dostat pouzestisknutım tlacıtka SW2 (reset).
5.4 Test vystupu se soft-core procesorem PicoBlaze
Cılem bylo naucit se zvladat vystupnı operace PicoBlaze, pripojit k PicoBlaze ROMpamet’. Dale zvladnout zaklady programovanı assembleru PicoBlaze v pBlazIDE a tvorbyROM pameti. Vystupnı operace PicoBlaze jsou popsany v casti 3.2.2. Prıklad je co dofunkce podobna prvnımu prıkladu. Programove je operace cıtanı popsana programem vROM pameti v jedne smycce. Frekvence byla nastavena experimentalne a nebyla presnezmerena. Strıdave blikajı rady LED diod.
5.5 Zapojenı serioveho portu
Seriovy port pouziva jinou (vyssı) uroven signalu nez jaky muze modul zvladnout, protoje nutne pouzıt prevodnık urovnı.
60USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
Obrazek 5.4: Schema zapojenı prevodnıku TTL a RS232
5.5.1 Prevodnık TSC232
Byl pouzit prevodnık TSC232 obsahujıcı 2 RS232 vstupy (Receivery), 2 RS232 vystupy(Transmitery), 2 TTL/CMOS vstupy a 2 TTL/CMOS vystupy. Je napajeno vstupnımnapetım o velikosti 5 V a pomocı dvou nabojovych pump zvysuje napetı na +- 10V.Schema zapojenı je na obr. 5.4 . Vıce o prevodnıku pojednava [6]. Blokovy diagram je naobr. 5.5
Obrazek 5.5: Blokove schema zapojenı PC k modulu pres seriovy port
Pro obsluhu portu bylo pouzit makro a program pro PicoBlaze popsany v kapitolu 3.5.Na obr. 5.6 je fotografie se zapojenım prevodnıku a modulu.
5.6 Regulator urovne jasu LED diody komunikujıcı s PC
Pro tento prıklad byla zvolena metoda PWM, komunikace s PC probıhala po seriovemporte a byly zvoleny dve varianty urovne jasu – plynule rozsvecovanı a zhasınanı LED
61USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
Obrazek 5.6: Prevodnık TSC232 (vlevo) a modul (vpravo)
diody dobre viditelne okem a pevne nastavenı urovne jasu. Referencnı prıklad je ulozenv adresari PWM example.
5.6.1 Princip PWM
PWM je nızkoztratova metoda regulace vykonu na zatezi. Prenosovy signal vyuzıva sedvouhodnotove logiky. Hodnota signalu je dana jako pomer mezi dvema stavy, tomutopomeru se rıka strıda (duty cycle, oznacıme s) – vzorec 4.2. Jednomu cyklu, kdy jeprenesena strıda se rıka perioda T, jde tedy o soucet doby signalu Zapnuto (t1) a Vypnuto(t2) – vzorec 4.1. Zmenou strıdy signalu je mozne regulovat vystupnı velicinu v rozsahu0 – 100 %. Doba periody je vzdy konstatnı hodnota.
T = t1 + t2 (5.2)
s =t1t2
(5.3)
Pro cyklicky prubeh signalu je strıda promenna hodnota. Vıce o PWM v [11].
5.6.2 Popis uzivatelskeho rozhranı
PWM regulator ma rozlisenı 6 bitu. Tzn., ze je mozne nastavit az 64 hodnot urovne signaluod 0 (stav Vypnuto) az po 63 (stav Zapnuto). Hodnoty stavu se na terminalu PC zapisujı vhexadecimalnı podobe. Dale byl pro cyklicky regulator stanoven jeden prıznakovy bit po-jmenovany blik. Predpokladem funkce programu je spravna funkce pripojenı k seriovemuportu a prijmutı retezce KCPSM3 na terminal v PC popsany v kapitole 3. Byli implemen-tovany dva mody regulatoru:
62USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
• Pevne nastavena strıda
• Cyklicka strıda
Spustenı podprogramu PWM v PicoBlaze je podmıneno aby retezec vyslany do mod-ulu zacınal vzdy pısmenem P viz. obrazek 3.6 – cast ”Pripraveno pro dalsı funkci“
Pevne nastavena strıda
Spustenı podprogramu PWM s pevne nastavenou strıdou je podmıneno vyslanım retezceo delce dvou az trı znaku. Prvnım znakem je vzdy P, druhy a tretı znak je hodnota urovnesignalu v hexadecimalnı podobe — 00 – 3F .
Pokud budeme chtıt, aby byla LED dioda vypnuta, vysleme retezec P00, pro stav plnezapnuto tedy P3F, pro 50% urovne signalu P1F. Tretı znak je pouze doplnujıcı hodnota,pokud je vyslano pouze P1, automaticky se tretı znak nastavı jako 0, tedy P10.
Jestlize procesor spravne rozpozna retezec, zmenı jas LED diody a vysle na terminalPC retezec PWM set. Pokud ne, vysle retezec Syntax. Uroven PWM jsem kontroloval naosciloskopu a samozrejme jsem provadel vizualnı kontrolu.
Cyklicka strıda
Stejne jako PWM s pevne nastavenou strıdou, je cyklicka strıda uvozena znakem P, druhyznak musı byt 4 (vyslanı P4), tretı znak nema vliv na funkci a je dobrovolny. Tzn, zevyslanı napr. P49 stale nastavı cyklickou strıdu PWM.
Jestlize je vyslany retezec rozpoznan, zacne se LED dioda rozsvecet a zhasınat s ccafrekvencı 1 Hz a vysle se na terminal PC retezec PWM set. Pokud je signal nerozpoznan,poslednı nastavenı je funkcnı a na terminal PC se vysle retezec Syntax napr. P50. Prıkladkomunikace je uveden na obrazku 3.7.
5.6.3 Resenı z hlediska logiky FPGA
Uvodnı predpoklad byl, ze ISR procesoru PicoBlaze bude generovat prijatelnou frekvencihodin pro soubor zajist’ujıcı PWM (viz. podkapitola 3.3). Nastaveno bylo prerusenı generujıcıse kazdou 1 ms. Merenım na osciloskopu bylo zjisteno, ze generovany signal je o frekvencicca 750 kHz, tudız cca 1,3 µs.
S takovou frekvencı by nebylo mozne zajistit dobre viditelne rozsvecovanı a zhasınanıLED diody. Proto byla vytvorena jednoducha delicka vstupnıho hodinoveho impulsu.Generovany signal byl vsak v designu ponechan. Na obrazku 5.7 je blokovy diagramzapojenı PWM.
Komponenta PWM.vhd je tvorena dvemi castmi. Prvnı casti je prevod kodu prijatehoz KCPSM3 s UART na hodnotu delky zapınaneho impulsu a tım pevne nastavı vykon.
63USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
Obrazek 5.7: Blokovy diagram zapojenı referencnıho prıkladu
V druhe casti (cyklicka strıda) je popsano jak se detekuje zmena smeru cyklu a spınanızateze pomocı 63 komparatoru. Bohuzel jsem nevymyslel efektivnejsı algoritmus a zapo-jenı si vyzaduje relativne vysoke zdroje na FPGA.
Na obr. 5.8 je uveden prıklad simulace PWM bez makra KPCSM s UART, protoze sepri simulaci neinicializovalo makro uart tx.
Obrazek 5.8: Prıklad simulace PWM s preddelicem a cyklickym modem PWM
5.6.4 Popis programu rıdıcı PWM
K podprogramum uvedenych v podkapitole 3.5 byli pridany dalsı funkce. Na vyvojovemdiagramu na obrazku 3.6 je uvedena moznost pridanı dalsı funkce, tım je detekce znakuP. Byli pridany tyto podprogramy:
• test_for_PWM – Zajist’uje vyslanı chyby syntaxe. Pokud nenajde hexadecimalnıcıslo mensı nez 4F, vysle zpravu Syntax
• uprava_bytu
• char_to_hex – Porovnava prijate znaky (nastavenı) s ulozenymi ve vlastnı ASCIItabulce uvedene na konci programu
64USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
• blikani_subroutine – Nastavı prıznakovy bit pro cyklicky rezim PWM
• send_PWM_nastaveno – Vysle na terminal PC retezec PWM set
• ISR – Vysıla kazdych cca 1,3 µs data do PWM, zajist’uje povolenı cıtanı internımucıtaci v PWM
Popis podprogramu uprava bytu
PicoBlaze je procesor s redukovanym poctem instrukcı. Pro upravu bytu, ktery vysılamedo PWM nema specialnı instrukce typu ”Uloz spodnı ctyri bity registru sX do hornıch ctyrbitu registru sY“. Uprava se proto provadı operacı bitoveho posunu RL v tomto poradı:
Obrazek 5.9: Ukazka vytvorenı bytu vyslaneho do PWM. Kod je 3F
1. V registru s3 je ulozen prvnı znak v binarnım kodu v dolnıch ctyrech bitech. Jde ocıslo od 00 do 11!
2. Registr s3 zkopırujeme do s4 a provedeme ctyri operace posunu (do hornıch ctyrbitu)
3. Vyvolame druhy znak, nechame ho prevest na hexadecimalnı cıslo a pricteme (ulozıme)ho do registru s4
65USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
4. Provedeme dve operace bitoveho posunu viz. obrazek 5.9
5. Pokud byl prvnı znak 100 (4), byte ”pretece“, nastavı se CARRY a provede se skokna obsluzny podprogram
6. Byte se ulozı do registru, ktery se vysıla do PWM
7. Vysle se zprava PWM set (podprogram send_PWM_nastaveno)
5.6.5 Vyuzite zdroje
Obrazek 5.10: Souhrn vyuzitych prostredku FPGA generovany ISE WebPack
Prehled vyuzitych zdroju FPGA je uveden na obrazku 5.107. Na obrazku je videt, zejsme FPGA nevytızili ani z 20%. Dale byla vyuzita jedna LED dioda, 2 piny na UART
7134 varovanı je dusledek prepisovanı prıkazu generic/parameter jinymi prıkazy napr. attributepouzıvana v makrech od Xilinxu. S tım mohou mıt problem starsı simulatory. Na funkcnost to nema vliv.
66USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
komunikaci a tri testovacı piny na konektoru CON4.
5.7 Zmena hodinove frekvence soft-core procesoru PicoBlaze
Cılem referencnıho prıkladu je vyuzıt instanci DCM popsanou v casti 1.2.4 ke zvysenıhodinove frekvence jadra PicoBlaze a tım ho zrychlit. Frekvenci jsem uspesne zvysilna cca 75 Mhz a overil na osciloskopu (signaly s predponou test na konektoru CON4).Tento prıklad (narozdıl od uvodnıch prıkladu) je narocny na pruchod vysokofrekvencnıhosignalu polem, proto je nutne do UCF souboru vlozit Timing Constraint, ktery docılıoptimalnıho casovanı. Radky v UCF by mel vypadat takto:
NET "CLKIN" = TNM_NET = CLKIN;
TIMESPEC TS_CLKIN = PERIOD "CLKIN" 10 ns HIGH 50% ;
Frekvenci jsem nastavil podle vzorce 1.1 a podle atributu v tabulce 1.2. CLKFX_DIVIDEjsem nastavil na 4 a CLKFX_MULTIPLY jsem postupne zvysoval frekvenci (6 pro 75 MHz)Pro vyssı frekvenci (CLKFX_MULTIPLY = 7 pro 87,5 Mhz) Place & Route nenı schopenvytvorit HW konfiguraci pole, ktera by splnovala timing constraint.
Soubory jsou ulozene ve slozce PWM example. Byl pouzit zakladnı program obsluhyserioveho kanalu popsany v podkapitole 3.5 ulozeny v ROM pameti PicoBlaze.
Obrazek 5.11: Schema zapojenı referencnıho prıkladu
67USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
5.7.1 Resenı z hlediska logiky FPGA
Na obrazku 5.11 je schema zapojenı vygenerovane systemem ISE WebPack 11.2. Je videt,ze je zapojeny jenom vystup CLKFX (Clock Feedback – CLKFB nema na funkcnostvliv), ktery yvz3uje frekvenci CLKIN. Pro spravnou funkci UART komunikace je nutne vsouboru generator resynchronizacnıh impulsu.vhd zmenit maximalnı hodnotu cıtace po-dle vzorce 3.1. Nova hodnota je 120.
5.7.2 Vyuzite zdroje
Oproti predchozımu prıpadu byli naroky na pole polovicnı, dale jsem vyuzil zmınenyDCM, dva testovacı piny a dva piny pro UART komunikaci.
5.8 Tvorba HW designu pole se soft-core procesorem Mi-croBlaze
V kapitole 4 jsem popsal nejdulezitejsı pouzite IP, ktere jsem pouzil v designu. Designjsem vytvoril v EDK firmy Xilinx (kap. 4.5).
Zakladem je procesor MicroBlaze, ke kteremu se pripojujı periferie. Vzhledem kvelikosti pole jsem nemohl pridat vetsinu volitelnych vlastnostı procesoru. Procesor jeproto bez MMU, FPU, delicky a Cache pametı. V FPGA jsem navıc mohl pouzıt pouze8 kB BlockRAM pro data 8 kB BlockRAM pro instrukce. U ostatnıch IP jsem vyuzıvalminimalnı datove sırky, konfiguroval jsem je bez FIFO pametı atd. V prıloze D je blokoveschema vytvoreneho designu.
V tabulce 5.1 je porovnanı vyuzitı pole z prıkladu 5.6 a z designu s procesorem Mi-croBlaze
Tabulka 5.1: Prehled vyuzitı pole z prıkladu 5.6 a z designu s MicroBlaze
– – pr. 5.6 MicroBlaze designSoucast Max Vyuzito % Vyuzito %Slices 1920 272 14 1785 92IOB 63 7 11 43 63
DCM 4 0 0 1 25BUFGMUX 8 2 25 2 25
RAMB16 12 1 8 8 66
Vystupem z radice pametı je 32 bitovy adresovy vektor. Protoze pamet’ ma ve skutecnostijen 19 pinu, tak je v designu zarazen modul pro rozdelenı sbernic util_bus_split_0
68USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
Vytvorenı designu komplikovala spolecna sbernice SPI a SRAM. Proto je v designu mul-tiplexor util_io_mux_0. Dale je tady navıc radic prerusenı oznaceny jako xps_intc_0
nutny pro funkci SPI v rezimu prerusenı, DCM oznacena jako clock_generator_0, ob-sluha resetu MicroBlaze proc_system_reset_0 a debugovacı modul mdm_0.
Na obr. 5.12 je blokove schema multiplexovanı signalu z XPS MCH EMC a XPS SPI,protoze signaly pouzıvajı stejnou sbernici a bez multiplexeru bychom je nemohli pouzıvatnajednou. Pro vyber zarızenı pouzıvam chip select signal od pameti.
Obrazek 5.12: Blokove schema multiplexovanı signalu adresy SRAM a SPI (0b jeuvozenı bitoveho vektoru a spojenı je naznaceno konkantenacı)
5.9 Ukazka pouzitı modulu XPS GPIO a XPS UART Lite
Jedna se o zakladnı program, ktery overı spravnou implementaci designu a vytvorenehoprogramu. Je overen vystup na terminal PC skrze XPS UART Lite modul a vystup naLED diody prostrednictvım modulu XPS UART Lite. V SW casti jde o jednoduchousmycku podobnou jako u blikace na soft-core procesoru PicoBlaze (kap. 5.4), ale kazdyprıkaz spoustı jinou LED diodu v jedne rade za sebou se zpozdenım cca 0,5 s, ktere bylonastaveno experimentalne. Program by mel vypsat na terminal: Hello World}.
5.10 Regulator urovne jasu LED diody
V tomto prıklade je uvedeno vyuzitı modulu XPS Timer/Counter v PWM modu. Predevsımbylo nutne nastavit Control/Status registry TCSR0 a TCSR1. Popisy registru a modulujsou v kap. 4.4.3. Je nutne nastavit tyto bity do log. 1 v obou registrech: PMWAx, GENTx,
69USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
UDTx, kde x je cıslo cıtace/casovace. Je take potreba nastavit alespon v jednom TCSRregistru bit povolenı operacı s cıtacem/casovacem – bit ENALL. Hexadecimalne to jsouhodnoty 0x0206 a 0x0606 jako hodnoty typu WORD v Big Endianu.
Periodu a dobu (High Time) po kterou je vystup v log. 1 urcuje hodnota, kterouvlozıme do Load registru TLR0 resp. TLR1. Vzorce 5.4 a 5.5 urcujı tyto hodnoty:
Perioda = (T LR0+2) ·PLB CLOCK PERIOD (5.4)
HighTime = (T LR1+2) ·PLB CLOCK PERIOD (5.5)
, kde PLB CLOCK PERIOD je perioda PLB sbernice. Hodnoty TLR0 a TLR1 mohoubyt az 32 bitove cıslo.
Program je vhodne zacyklen tak, aby simuloval cyklickou zmenu strıdy podobne jakov kapitole 5.6. Hodnoty registru TLR0 a TLR1 jsou nastaveny experimentalne.
5.11 Ukazka komunikace s SPI FLASH z asynchronnıpameti RAM
Vzhledem k tomu, ze je sbernice sdılena, bylo nutne vyzkouset funkcnost designu na pro-gramu, ktery bude pristupovat jak do asynchronnı RAM, tak i do SPI FLASH pameti. Pro-gram pro komunikaci s FLASH byl prevzat z referencnıch prıkladu EDK. Jde o jednoduchyprogram s inicializacı ovladace, mazanım sektoru, zapisem a ctenım dat. Vyvojovy dia-gram je na obr. 5.13.
Uvedu jeste prıklad, jak vypada zprava pro zapis dat.
Write Enable Page Program adresa (24 bitu) Data0x06 0x02 0x00000 1 page
Kapacita FLASH je 8Mbit (1 MB). Na pameti je 16 sektoru, kazdy sektor o velikosti512kbit (64 kB) ma 256 stranek (page) o velikosti 4 kbit (256 B). Poslednı ctyri bityadresy jsou ignorovany. Je doporuceno, aby byla pamet’ programovana po strankach, tedy256 bytech. Program pracuje v modu prerusenı (interrupt mode). FLASH podporuje nas-tavenı CPOL a CPHA na hodnotach (0,0) nebo (1,1)
Program lze zavest do BlockRAM, ale pro vyzkousenı spravne funkce multiplexerujej zavedeme do asynchronnı RAM. Proto odznacıme v XPS v okne Applications pro-gram, ktery zavedeme do BlockRAM. Pote si nechame v projektu spi vygenerovat LinkerScript, pokud tam jeste nenı (ve statovem radku Software/Generate Linker Script). V oknepro generovanı linker skriptu v castech Section View a Heap and Stack View zmenımehodnotu Memory v kazde sekci (section) z ilmb_cntlr_dlbm_cntlr na
70USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
Obrazek 5.13: Vyvojovy diagram programu pro komunikaci s SPI FLASH
Generic_External_Memory_C_MEM0_BASEADDR. Pri prıstım spustenı programu uz budeMicroBlaze soucasti programu hledat v asynchronnı RAM.
Ted’ uz zbyva jen program zavest do asynchronnı RAM a spustit jej. K tomu slouzıdebugovacı program nazvany XMD. Jedna se o konzolovy program. Spoustı se v kon-zolovem radku prıkazem XMD nebo ve stavovem radku XPS v Debug/Launch XMD.Pokud XMD detekuje MicroBlaze a pripojı se k nemu, ohlası to ve stavovem radku.Pokud jste si jistı, ze je modul spravne pripojen a je v nem ulozen HW design s Mi-croBlaze, muzete se zkusit pripojit rucne prostrednictvım prıkazu connect mb mdm.
V prıpade, ze je XMD spravne pripojeno k MicroBlaze, stacı vypsat prıkaz ke stazenıprogramu dow spi/executable.elf a spustit program prıkazem run. Program by melskoncit zhruba po 1,5 s, kdy provede operace s FLASH pametı a vypıse na terminal PCsekvenci 123456 podle toho, jak probıha program.
5.12 U-boot
U-boot je zkratka pro Universal Boot Loader. Jde o program, ktery obsluhuje zakladnıHW prostredky desek na kterem je spusten. U-boot umoznuje operace s RAM, FLASH,umoznuje spoustenı mıstnıch i vzdalenych souboru atd. U-boot slouzı predevsım k bootovanı
71USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
operacnıch systemu Linux. Modul bohuzel nema dostatecne prostredky pro spoustenıoperacnıch systemu, ale male programy lze spoustet. Proces se sklada z prıpravy vyvojovehoprostredı, tvorby zdrojovych souboru pro modul, kompilace, samotneho spustenı U-bootua nekterych prıkazu. Prıklad muzeme doplnit zavedenım U-boot do SPI FLASH a pote hozavest do hlavnı pameti.
5.12.1 Prıprava vyvojoveho prostredı
U-boot se kompiluje v operacnıch systemech Linux nebo v prostredı Linuxu emulovanem.Standardne je doporucovana distribuce PetaLinux s kompletne pripravenym prostredım.Ja jsem pouzil prostredı Cygwin, ktere dobre emuluje prostredı Linuxu na operacnıchsystemech Windows. Dale je potreba mıt funkcnı toolchain (soubor nastroju pro kom-pilaci) a cross-kompilator. Kazda kvalitnı distribuce Linuxu ma kompletnı toolchain, vCygwinu lze casti toolchainu volit, ale doporucuji plnou instalaci.
Cross-kompilator je soucastı kazde instalace EDK nebo je nativnı soucastı nekterychdistribucı linuxu napr. PetaLinux. Jsou jım kompilovany programy pro MicroBlaze. Daleje potreba mıt samotny MicroBlaze U-boot a U-BOOT EDK generator. Tyto dve veci lzestahnout z [32].
U-BOOT EDK generator je nutne vlozit do projektu a do MSS souboru prepsat cast soperacnım systemem takhle:
BEGIN OS
PARAMETER OS_NAME = uboot
PARAMETER OS_VER = 4.00.c
PARAMETER PROC_INSTANCE = microblaze_0
PARAMETER stdin = RS232
PARAMETER stdout = RS232
PARAMETER timer = xps_timer_0
PARAMETER main_memory = Generic_External_Memory
END
Ted’ je nutne si vygenerovat knihovny a BSP (ve stavovem radku zvolit Software/GenerateLibraries and BSP’s). Coz v projektu v adresarı microblaze 0/libsrc/uboot v ... vytvorısoubory config.mk a xparameters.h, ktere zkopırujeme do adresare board/gop xc3s200v MicroBlaze U-boot, kde uz jsou pripraveny ostatnı zdrojove soubory pro modul. Pouspesne vygenerovanych knihovnach je mozne vratit MSS do puvodnıho stavu napr. vXPS zvolit Software/Software Platform Settings v OS & Library Settings zmenit polozkuv OS z uboot na standalone nebo prepsat samotny MSS soubor.
72USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
5.12.2 Kompilace a spustenı
U-boot standardne nepodporuje SPI FLASH pameti, proto v souboru xparameters.h
nedefinoval adresy FLASH pameti, ktere jsou nutne ke kompilaci. Do souboru tedy vloztetyto dva radky, ktere chybu odstranı (na hodnotach moc nezalezı).
#define XILINX_FLASH_START 0x89000000
#define XILINX_FLASH_SIZE 0x00800000
Prejdeme k samotne kompilaci. U-boot se kompiluje z prıkazove radky. V XPS lzespustit konzoli spustenım Project/Launch Xilinx Bash Shell ve stavovem radku nebospustenım prıkazu xbash. Dale se musı nastavit spravne promenne prostredı (enviromentvariables). Predevsım architektura – export ARCH=microblaze, a cross-kompilator –export CROSS_COMPILE = mb- v prıpade Cygwin, v PetaLinuxu by byl cross-kompilatorexport CROSS_COMPILE = microblaze-uclinux-.
Pro kompilaci specificke desky pouzijeme prıkaz make gop_xc3s200s_config anakonec prıkaz make, ktery rozebehne samotnou kompletnı kompilaci U-bootu. Po uspesnekompilaci by melo byt vytvoreno nekolik souboru U-bootu. Predevsım jde o souborytypu ELF (bez prıpony!), S-record (.srec) a BIN (.bin). Pripraveny U-boot je urcen kbehu v asynchronnı RAM pameti. Lze ho tam zavest za pomoci XMD. Postup je stejnyjako v predchozım referencnım prıklade (kap. 5.11). V XMD stahnete program do pametiprıkazem dow u_boot\u-boot, program by se mel zavest spustit prıkazem run. Na ter-minalu PC by se mel objevit inicializace U-bootu a pote jeho prıkazova radka.
5.12.3 Zdrojove soubory
Modul nenı v distribuci U-bootu podporovan. Proto je nutne spravne upravit generickezdrojove soubory v U-bootu
V MicroBlaze U-boot adresari board/gop xc3s200 je krome jiz zminovanych dvousouborech jeste soubor gop xc3s200.c ve kterem je inicializace nekterych sbernic, nebylotreba jej menit. Dulezitejsı soubor je gop xc3s200.h v adresari include/configs. Jsou v nemdefinovany adresy vlastnosti pouzitych IP, je tady definovano rozvrzenı operacnı pameti(memory layout) a nektere doplnkove vlastnosti. Zde bylo nutne vytvorit nove rozlozenıpameti viz. obr. 5.14, protoze se pamet’ dat a programu navzajem prepisovala a odstranitmoznost vkladanı modulu pracujıcıch s FLASH pametı, coz se provede vlozenım #undef
CONFIG_CMD_FLASH pred poslednı programovy radek.Poslednım souborem pro upravu je hlavnı Makefile v hlavnım adresari MicroBlaze U-
boot. Je nutne za cast, kde se definuje sekvence uvozena microblaze-generic_config,vlozit nasledujıcı kod:
73USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
Obrazek 5.14: Rozvrzenı programu a dat v RAM (merıtka os si neodpovıdajı)
gop_xc3s200_config: unconfig
@mkdir -p $(obj)include
@echo "#define CONFIG_GOP_XC3S200 1" > $(obj)include/config.h
@$(MKCONFIG) -a $(@:_config=) microblaze microblaze gop_xc3s200
Kod je nutne zkopırovat presne z PDF souboru, protoze syntaxe Makefile je velmiprısna na mezery a tabelatory.
5.12.4 Nektere prıkazy
Prıkaz help vypıse seznam prıkazu. Prıkaz help <prıkaz> vypıse napovedu pro danyprıkaz a jeho pouzitı. Vsechny hodnoty, ktere se zadavajı jsou v hexadecimalnım tvaruaz na nektere starsı funkce (napr. Sleep). Pro jednoduchy pamet’ovy test slouzı prıkazmtest. Prototyp je:
mtest [start [end [pattern [iterations]]]]
napr. mtest 0x100000 0x200000 3 3 definuje start na adrese 0x100000 a konecna adrese 0x200000. Prıkaz prepisuje hodnoty v pameti, zvolili jsme pomerne velkou castpameti na test, takze v tomto prıpade prepıse cast programu v RAM a program skoncı vnekonecne smycce. Na obr. 5.15 je prıklad vystupu U-bootu na terminal PC
74USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
Obrazek 5.15: Prıklad vystupu U-bootu na terminal PC
5.12.5 Navrh zlepsenı prıkladu
Spoustenı U-bootu pres XMD je pomerne neefektivnı. Cılem by bylo spoustenı auto-maticky z FLASH pameti. Proto je nutne napsat zavadec, ktery z PC ulozı U-boot naFLASH. Pole je pripojeno pres JTAG a UART. Bohuzel pole nenı podporovano pro prımenaprogramovanı pres JTAG programem iMPACT, proto doporucuji naprogramovanı presseriovou linku s vyuzitım terminalu PC a referencnıho prıkladu 5.11. Jako obraz diskudoporucuji pouzıt vygenerovany S-record soubor.
Po uspesnem ulozenı je nutne napsat FS-Boot (First Stage Bootloader), ktery zavedeU-boot z FLASH do RAM. FS-boot musı byt nutne inicializovan do BlockRAM. EDKobsahuje generator FS-bootu s kostrou pro dekodovanı S-record souboru. GenerovaneFS-booty nepodporujı SPI FLASH, proto je nutne do FS-Boot pripsat funkce pro ctenı zFLASH napr. z pr. 5.11. Predpokladam, ze program se bude pohybovat na hranici dos-tupnych pamet’ovych prostredku, proto bude nutne program optimalizovat.
Pokud vse uspesne funguje, doporucuji ulozit HW konfiguraci i s obsahem pameti FS-bootu do Platform FLASH, odkud se bude automaticky po pripojenı napajenı spoustet.
Nakonec doporucuji dopsat do samotneho U-bootu vrstvu, ktera bude prevadet data zSPI FLASH na paralelnı FLASH pameti a obracene. Pozor na prepisovanı obrazu U-bootuve FLASH.
75USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
6 ZAVER
Kapitola 1 je vytah z technicke dokumentace vyrobcu a popisuje vlastnosti pouziteho HW.Zacatek kapitoly 2 popisuje casti vyvojoveho prostredı ISE WebPack a vlozenı vlastnıhodesignu. Dale se kapitola venuje zakladnım programovacım technikam a zaver je venovanmakrum. Uvod kapitoly 3 predstavuje strucny uvod do problematiky soft-core proce-soru PicoBlaze, hlavne obsluhy I/O portu a systemu prerusenı. V podkapitole 3.4 jsemse teoreticky venoval UART komunikaci a na zaver kapitoly jsem podle referencnıchprıkladu firmy Xilinx popsal implementaci UART komunikace z hlediska FPGA a pro-gramu ulozenem v ROM pameti. V kapitole 4 jsem se venoval vykonnemu soft-core pro-cesoru MicroBlaze, prostredı ve kterem je implementovan a dulezitymi moduly, kterejsem pripojoval s nastinem resenı.
V teto praci jsem realizoval HW cast systemu, kde jsem nejdrıve implementovaljednoduche prıklady vyzadujıcı zakladnı znalosti jazyka VHDL, pote jsem do designuvlozil soft-core procesor, dale jsem implementoval logiku FPGA pro UART komunikacia upravil referencnı prıklad obsluhy UART komunikace soft-core procesorem. Blokoveschema je uvedeno v prıloze C. Nakonec jsem se venoval navrhu vlastnıch referencnıchprıkladu v kapitolye 5. Prvnı polovina kapitoly 5 jsou zakladnı programy ve VHDL apote se soft-core procesorem PicoBlaze. V druhe polovine kapitoly jsou prıklady se soft-core procesorem MicroBlaze a predevsım prıklad U-boot, ktery je schopen plne vyuzıtprostredky pole, bohuzel jsem z casovych duvodu nebyl schopen dopsat dalsı funkce.
76USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
REFERENCE
[1] OHO-ELEKTRONIK. GOP XC3S200 USER’S MANUAL OHO-Elektronik,Dachau, Nemecko [online]. 2005, poslednı aktualizace 16. 8. 2009 [cit. 7. 12.2009]. Dostupne z URL: <http://www.oho-elektronik.de/pics/UM XC3S200.pdf>.
[2] XILINX. Spartan-3 FPGA Family Data Sheet Xilinx, Inc. [online]. 2003,poslednı aktualizace 4. 12. 2009 [cit. 7. 12. 2009]. Dostupne z URL:<http://www.xilinx.com/support/documentation/data sheets/ds099.pdf>.
[3] XILINX. Using Digital Clock Managers (DCMs) in Spartan-3 FPGAs Xilinx, Inc.[online]. 2003, poslednı aktualizace 5. 1. 2006 [cit. 8. 12. 2009]. Dostupne z URL:<http://www.xilinx.com/support/documentation/application notes/xapp462.pdf>.
[4] XILINX. Platform Flash PROM User Guide Xilinx, Inc. [online]. 2005,poslednı aktualizace 26. 10. 2009 [cit. 7. 12. 2009]. Dostupne z URL:<http://www.xilinx.com/support/documentation/user guides/ug161.pdf>.
[5] XILINX. PicoBlaze 8-bit Embedded Microcontroller User Guide Xilinx, Inc. [on-line]. 2004, poslednı aktualizace 11. 11. 2009 [cit. 10. 12. 2009]. Dostupne z URL:<http://www.xilinx.com/support/documentation/ip documentation/ug129.pdf>.
[6] TELEDYNE TECHNOLOGIES. DUAL RS232 TRANSMITTER/RECEIVER ANDPOWER SUPPLY Teledyne Technologies, Inc. [online]. 1988, poslednı aktualizace1988 [cit. 7. 12. 2009]. Dostupne z URL: <http://www.datasheetarchive.com/pdf-datasheets/Datasheets-35/DSA-699827.pdf>.
[7] XILINX. KCPSM3 Reference Design UART Real Time Clock Xilinx, Inc.[online]. 2003, poslednı aktualizace zarı 2003 [cit. 12. 12. 2009]. Dos-tupne z URL: <http://www.xilinx.com/ipcenter/processor central/picoblaze/-member/KCPSM3.zip>. Jde o soubor UART real time clock.pdf. Prıstup jen proregistrovane uzivatele.
[8] XILINX. UART Transmitter and Receiver Macros Xilinx, Inc. [on-line]. 2003, poslednı aktualizace leden 2003 [cit. 12. 12. 2009]. Dos-tupne z URL: <http://www.xilinx.com/ipcenter/processor central/picoblaze/-member/KCPSM3.zip>. Jde o soubor UART Manual.pdf. Prıstup jen proregistrovane uzivatele.
[9] WIKIPEDIA. Joint Test Action Group Wikimedia Foundation, Inc. [online].2004, poslednı aktualizace 3. 12. 2009 [cit. 7. 12. 2009]. Dostupne z URL:<http://en.wikipedia.org/wiki/Joint Test Action Group>.
77USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
[10] WIKIPEDIA. Serial Peripheral Interface Bus Wikimedia Foundation, Inc. [on-line]. 2003, poslednı aktualizace 3. 12. 2009 [cit. 7. 12. 2009]. Dostupne z URL:<http://en.wikipedia.org/wiki/Serial Peripheral Interface Bus>.
[11] WIKIPEDIA. Pulse Width Modulation Wikimedia Foundation, Inc. [online].2002, poslednı aktualizace 2. 12. 2009 [cit. 14. 12. 2009]. Dostupne z URL:<http://en.wikipedia.org/wiki/Pulse-width modulation>.
[12] TEXAS INSTRUMENTS. SN74CB3T3245 8-BIT FET BUS SWITCH Texas Instru-ments, Inc. [online]. 2003, poslednı aktualizace brezen 2008 [cit. 7. 12. 2009]. Dos-tupne z URL: <http://focus.ti.com/lit/ds/symlink/sn74cb3t3245.pdf>.
[13] Numonyx. M25P80 8 Mbit, low voltage, serial Flash memorywith 75 MHz SPI bus interface Numonyx, B. V.. [online]. 2006,poslednı aktualizace 30. 6. 2009 [cit. 7. 12. 2009]. Dostupne z URL:<http://www.numonyx.com/Documents/Datasheets/M25P80.pdf>.
[14] MEDIATRONIX. pBlazIDE [Pocıtacovy program] Ver. 3.74 Beta, Hoofddorp, TheNetherlands. 2005, poslednı aktualizace 1. 5. 2006 [cit. 7. 12. 2009]. Nastroj pro sim-ulaci Dostupne z URL: <http://www.mediatronix.com/tools/pBlazIDE374.zip>.
[15] XILINX. ISE Design Suite [Pocıtacovy program] Ver.11.4, San Jose, USA, 2010 [cit. 17. 5. 2010]. Dostupnez URL: <http://www.xilinx.com/support/download/index.htm>
Download po registraci uzivatele. Navod na instalaci aprehled podporovanych systemu je uveden na teto URL :<http://www.xilinx.com/support/documentation/sw manuals/xilinx11/irn.pdf>.Velikost instalace muze dosahnout i 20 GB.
[16] KOLOUCH, J. Programovatelne logicke obvody. Prednasky. 2nd ed. Brno : VUT vBrne, FEKT, Ustav radioelektroniky, 2005. ISBN 80-214-2986-0.
[17] KOLOUCH, J. Programovatelne logicke obvody a navrh jejich aplikacı v jazykuVHDL. Pocıtacove cvicenı. 1st ed. Brno : VUT v Brne, FEKT, Ustav radioelektron-iky, 2005. ISBN 80-214-2997-6.
[18] Mattsson, Christenson. Evaluation of synthesizable CPU cores Daniel Mattson,Marcus Christensen [Online]. Master’s Thesis in Computer Science and Engi-neering Program Gothenburg : CHALMERS UNIVERSITY OF TECHNOLOGY,Division of Computer Engineering, 2004 [cit. 18. 12. 2009]. Dostupne z URL:<http://www.gaisler.com/doc/Evaluation of synthesizable CPU cores.pdf>.
78USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
[19] Westerlund. Compsarison of synthesizable Processor cores Klas Westerlund [on-line] Master’s Thesis in Computer Science and Engineering Program Gothen-burg : CHALMERS UNIVERSITY OF TECHNOLOGY, Division of ComputerEngineering, 2004 [cit. 18. 12. 2009]. Nastroj pro simulaci Dostupne z URL:<http://gaisler.com/doc/CoSCPU.pdf>.
[20] XILINX. XST User Guide Xilinx, Inc. [online]. 2004, poslednıaktualizace 16. 9. 2009 [cit. 18. 12. 2009]. Dostupne z URL:<http://www.xilinx.com/support/documentation/sw manuals/xilinx11/xst.pdf>.
[21] XILINX. MicroBlaze Reference Guide Xilinx, Inc. [online]. 2002,poslednı aktualizace 26. 10. 2009 [cit. 17. 5. 2010]. Dostupne z URL:<http://www.xilinx.com/support/documentation/sw manuals/xilinx11/mb ref guide.pdf>.
[22] XILINX. XPS UART Lite v1.01 Xilinx, Inc. [online]. 2007, poslednıaktualizace 2. 12. 2009 [cit. 17. 5. 2010]. Dostupne z URL:<http://www.xilinx.com/support/documentation/ip documentation/xps uartlite.pdf>.
[23] XILINX. XPS Serial Peripheral Interface (SPI) (v2.01b) Xilinx, Inc. [online].2008, poslednı aktualizace 7. 17. 2009 [cit. 17. 5. 2010]. Dostupne z URL:<http://www.xilinx.com/support/documentation/ip documentation/xps spi.pdf>.
[24] XILINX. XPS General Purpose Input/Output (GPIO) (v2.00a) Xilinx, Inc. [on-line]. 2006, poslednı aktualizace 2. 12. 2009 [cit. 17. 5. 2010]. Dostupne z URL:<http://www.xilinx.com/support/documentation/ip documentation/xps gpio.pdf>.
[25] XILINX. XPS Timer/Counter (v1.01b) Xilinx, Inc. [online]. 2006,poslednı aktualizace 2. 10. 2009 [cit. 17. 5. 2010]. Dostupne z URL:<http://www.xilinx.com/support/documentation/ip documentation/xps timer.pdf>.
[26] XILINX. XPS Interrupt Controller (v2.00a) Xilinx, Inc. [online]. 2004,poslednı aktualizace 2. 12. 2009 [cit. 17. 5. 2010]. Dostupne z URL:<http://www.xilinx.com/support/documentation/ip documentation/xps intc.pdf>.
[27] XILINX. XPS Multi-CHannel External Memory Controller (XPSMCH EMC) (v3.01a) Xilinx, Inc. [online]. 2004, poslednı ak-tualizace 16. 9. 2009 [cit. 17. 5. 2010]. Dostupne z URL:<http://www.xilinx.com/support/documentation/ip documentation/xps mch emc.pdf>.
[28] IBM. Processor Local Bus (128-bit) IBM, Corp. [online]. 2007, poslednıaktualizace 2. 5. 2007 [cit. 17. 5. 2010]. Dostupne z URL: <https://www-01.ibm.com/chips/techlib/techlib.nsf/techdocs/3BBB27E5BCC165BA87256A2B0064FFB4>.
79USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
[29] RENESAS TECHNOLOGY. DUAL RS232 TRANSMITTER/RECEIVERAND POWER SUPPLY Renesas Technolgy, Corp. [online]. 2003,poslednı aktualizace 25. 5. 2004 [cit. 17. 5. 2010]. Dostupne z URL:<http://documentation.renesas.com/eng/products/memory/rej03c0098 r1lv0408c.pdf>.
[30] RED HAT. Cygwin [Pocıtacovy program] Ver. 1.7.5-1, Raleigh, USA, 2010 [cit. 17.5. 2010]. Dostupne z URL: <http://www.cygwin.com/setup.exe> Doporucuji zvolitbehem instalace v okne Select Packages volbu All Install mısto All Default
[31] DENX Software Engineering. U-boot [Pocıtacovy program] Ver.2009.08-rc2, Groebenzell, Nemecko, 2009 [cit. 17. 5. 2010]. Dostupnez URL: <http://git.denx.de/?p=u-boot/u-boot-microblaze.git;a=snapshot;-h=eb1a4d0a471505c169bef19a73a60f8641f0b875;sf=tgz>
[32] SIMEK M. U-BOOT for Xilinx FPGA [online]. 2009, poslednıaktualizace 18. 3. 2010 [cit. 17. 5. 2010]. Dostupne z URL:<http://www.monstr.eu/wiki/doku.php?id=uboot:uboot>.
[33] XILINX. Platform Specification Format Reference Manual Xilinx, Inc. [online].2004, poslednı aktualizace 19. 9. 2008 [cit. 18. 5. 2010]. Dostupne z URL:<http://www.xilinx.com/support/documentation/sw manuals/edk10 psf rm.pdf>.
80USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
SEZNAM SYMBOLU, VELICIN A ZKRATEK
ALU Arithmetic Logic Unit – Aritmeticko logicka jednotka
ASIC application-specific integrated circuit – Integrovany obvod se specifickoustrukturou
CLB Configurable Logic Block – Konfigurovatelny logicky blok
CMOS Complementary Metal–Oxide–Semiconductor – Technologie pro vyrobu cipu
CPHA Clock Phase – Faze hodin
CPLD complex programmable logic device – komplexnı programovatelna hradlovapole
CPOL Clock Polarity – Polarita hodin
CR Carriage Return – ”Navrat vozıku“ – posune kurzor na dalsı radek
DFT Discrete Fourier Transform – Diskretnı Fourierova Transformace
EDK Embedded Development Kit – Sada vyvojovych nastroju
EEPROM Electrically Erasable Programmable Read-Only Memory – Elektrickyprogramovatelna pamet’ pro ctenı
FFT Fast Fourier Transform – Rychla Fourierova Transformace
FIFO First In First Out – Pamet’ s frontou dat
FPGA Field programmable gate array – Programovatelna hradlova pole
FPU Floating Poit Unit – Jednotka pro operace s pohyblivou carkou
FSL Fast Simplex Link – Rychla seriova sbernice
GPIO General Purpose Input Output – Vıceucelove paralelnı rozhranı
IOB Input Output Block – Vstupne vystupnı blok v FPGA
IP Intellectual Property – Dusevnı vlastnictvı
IPIC Interconnect Port Interface Controller – Rozhranı mezi internımi moduly
ISR Interrupt Service Routine – Podprogram vyvolany prerusenım
81USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
JTAG Joint Test Action Group – standard pro testovanı a programovanıelektronickych zarızenı
KCPSM Constant(K) Coded Programmable State Machine drıve znamy jako KenChapman’s PSM – Jde o drıvejsı nazev Soft-core procesoru PicoBlazevyvinuty Kenem Chapmanem. PSM znamena Programovatelny StavovyAutomat
LED Light Emitting Diode – Svetlo vyzarujıcı dioda
LMB Logical Memory Bus – Pamet’ova sbernice
LSB Least Significant Bit – Nejmene vyznamny bit, bit nejvıce napravo
MHS Microprocessor Hardware Specification – HW specifikace v internım jazykufirmy Xilinx
MIPS Million Instructions Per Second – Jde o jednotku vykonu podle poctu operacıza sekundu
MISO Master Input Slave Output – Datovy signal od otroka pro pana po seriove lince
MOSI Master Output Slave Input – Datovy signal od pana pro otroka po seriove lince
MSB Most Significant Bit – Nejvıce vyznamny bit, bit nejvıce nalevo
MSS Microprocessor Software Specification – SW specifikace v internım jazykufirmy Xilinx
OPB On-Chip Peripheral Bus – Starsı typ sbernice
PLB Processor Local Bus – Rychla sbernice z rodiny CoreConnect
PWM Pulse Width Modulation – Pulsne sırkova modulace signalu
RAM Random Access Memory – Pamet’ s libovolnym prıstupem
RISC Reduced Instruction Set Computer – Redukovany instrukcnı set pocıtace
ROM Read Only Memory – Pamet’ pouze pro ctenı
RS232 Recommended Standard 232 – Komunikacnı rozhranı se seriovou linkou
SCK Serial Clock – Hodiny od pana
SDK Software Development Kit – SW vyvojovy nastroj
82USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
SoC System on a Chip – Vsechny elektronicke obvody jsou integrovany dojednoho integrovaneho obvodu
SPI Serial Peripethal Interface – Seriove rozhranı pro komunikaci meziintegrovanymi obvody
SS Slave Select – Signal urcujıcı cılove zarızenı
UART Universal Asynchronous Receiver Transmitter – Protokol pro komunikaci poseriove lince
UCF Implementations Constraints File – viz. kap. 2.1.2
VHDL VHSIC hardware description language – Jazyk pro popis HW
VHSIC Very High Speed Integrated Circuit – Velmi rychle integrovane obvody
XCL Xilinx CacheLink – Internı seriova sbernice od firmy Xilinx
XMD Xilinx Microprocessor Debugger – Debugovacı program od Xilinx
XPS Xilinx Platform Studio – HW vyvojovy nastroj
83USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
SEZNAM PRILOH
A Rozdıly v syntaxi assembleruKCPSM3 a pBlazIDE 84
B Schemata zapojenı micromodulu[1] 85
C Schema makra KCPSM s UART 87
D Blokove schema HW designu – MicroBlaze 88
E Obsah DVD 89
84USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
A ROZDILY V SYNTAXI ASSEMBLERUKCPSM3 A PBLAZIDE
InstrukceInstrukce KCPSM3 Instrukce pBlazIDERETURN RET
RETURN C RET C
RETURN NC RET NC
RETURN Z RET Z
RETURN NZ RET NZ
RETURNI ENABLE RETI ENABLE
RETURNI DISABLE RETI DISABLE
ADDCY ADDC
SUBCY SUBC
INPUT sX, (sY) INPUT sX, sY (bez zavorek)
INPUT sX, kk INPUT sX, kk
OUTPUT sX, (sY) OUTPUT sX, sY (bez zavorek)
OUTPUT sX, kk OUTPUT sX, kk
ENABLE INTERRUPT EINT
DISABLE INTERRUPT DINT
COMPARE COMP
FETCH sX, (sY) FETCH sX, sY (bez zavorek)
STORE sX, (sY) STORE sX, sY (bez zavorek)
DirektivyFunkce Directiva KCPSM3 Instrukce pBlazIDEPoloha instrukce ADDRESS 3FF ADDRESS $3FFPrejmenovanı registru NAMEREG s5, myregname myregname EQU s5Deklarace konstant CONSTANT myconstant, 80 myconstant EQU $80Pojmenovanı ROMpameti
Pojmenovano podle zdro-joveho souboru assembleru
VHDL ”template.vhd“, ”tar-get.vhd“, ”entity name“
85USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
B SCHEMATA ZAPOJENI MICROMODULU[1]
86USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
87USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
C SCHEMA MAKRA KCPSM S UART
88USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
D BLOKOVE SCHEMA HW DESIGNU – MICROBLAZE
89USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı
Vysoke ucenı technicke v Brne
E OBSAH DVD/
blikac example. .................Zdrojove soubory k prıkladu 5.1 ve VHDLblikac picoblaze example.......Zdrojove soubory k prıkladu 5.4 ve VHDLcitac example. .................. Zdrojove soubory k prıkladu 5.2 ve VHDLDCM example......................Zdrojove soubory k prıkladu 5.7 ve VHDLFSM example......................Zdrojove soubory k prıkladu 5.3 ve VHDLmicroblaze design................Projekt do XPS s designem s MicroBlaze
data. ..........................Aktualnı UCF soubor pro projekt do XPSPWM GPIO example.................UCF soubor pro prıklady 5.9 a 5.10U-boot SPI......................UCF soubor pro prıklady 5.11 a 5.12
gpio................................Zdrojovy soubor pro prıklad 5.9 v Cpwm................................Zdrojovy soubor pro prıklad 5.10 v Cspi................................Zdrojovy soubor pro prıklad 5.11 v Cu boot. ..................................S-record a ELF obraz U-bootu
PWM example......................Zdrojove soubory k prıkladu 5.6 ve VHDLu-boot-microblaze..................Zdrojove soubory U-bootu pro Cygwin