89
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 COMMUNICATION DEPARTMENT OF CONTROL AND INSTRUMENTATION REFERENČNÍ PŘÍKLADY PRO MICROFPGA MODUL. BAKALÁŘSKÁ PRÁCE BACHELOR'S THESIS AUTOR PRÁCE TOMÁŠ NOVOTNÝ AUTHOR BRNO 2010

VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

  • Upload
    others

  • View
    65

  • Download
    0

Embed Size (px)

Citation preview

Page 1: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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

Page 2: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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

Page 3: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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.

Page 4: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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

Page 5: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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

Page 6: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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í.

Page 7: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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

Page 8: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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

Page 9: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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

Page 10: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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

Page 11: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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

Page 12: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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

Page 13: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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].

Page 14: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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].

Page 15: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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.

Page 16: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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).

Page 17: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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

Page 18: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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.

Page 19: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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

Page 20: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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.

Page 21: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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

Page 22: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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].

Page 23: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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

Page 24: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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

Page 25: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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.

Page 26: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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.

Page 27: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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

Page 28: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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’ ;

Page 29: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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.

Page 30: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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.

Page 31: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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.

Page 32: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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

Page 33: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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]

Page 34: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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

Page 35: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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

Page 36: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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%

Page 37: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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

Page 38: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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

Page 39: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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.

Page 40: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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.

Page 41: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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

Page 42: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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)

Page 43: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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

Page 44: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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

Page 45: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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

Page 46: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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

Page 47: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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):

Page 48: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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

Page 49: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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.

Page 50: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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

Page 51: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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.

Page 52: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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.

Page 53: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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:

Page 54: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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.

Page 55: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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

Page 56: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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.

Page 57: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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.

Page 58: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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

Page 59: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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ı.

Page 60: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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

Page 61: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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:

Page 62: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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.

Page 63: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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

Page 64: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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

Page 65: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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.

Page 66: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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

Page 67: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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

Page 68: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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,

Page 69: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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

Page 70: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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ı

Page 71: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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.

Page 72: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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:

Page 73: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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

Page 74: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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.

Page 75: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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.

Page 76: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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>.

Page 77: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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>.

Page 78: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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>.

Page 79: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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>.

Page 80: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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

Page 81: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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

Page 82: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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

Page 83: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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

Page 84: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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“

Page 85: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

85USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı

Vysoke ucenı technicke v Brne

B SCHEMATA ZAPOJENI MICROMODULU[1]

Page 86: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

86USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı

Vysoke ucenı technicke v Brne

Page 87: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

87USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı

Vysoke ucenı technicke v Brne

C SCHEMA MAKRA KCPSM S UART

Page 88: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

88USTAV AUTOMATIZACE A MERICI TECHNIKYFakulta elektrotechniky a komunikacnıch technologiı

Vysoke ucenı technicke v Brne

D BLOKOVE SCHEMA HW DESIGNU – MICROBLAZE

Page 89: VYSOKÉ UÈENÍ TECHNICKÉ V BRNÌ - CORE · of UART communication, soft-core processor PicoBlaze, programming PicoBlaze and managing its I/O operations. Next, there is an example

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