edk – laborator 4-5 - radio.ubm.roradio.ubm.ro/ea/documente/cursuri_laboratoare/proiectare...

14
Numai pentru uz academic EDK – Laborator 4-5 Adăugarea modulelor IP la un proiect hardware

Upload: doanbao

Post on 19-Feb-2018

230 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: EDK – Laborator 4-5 - radio.ubm.roradio.ubm.ro/EA/Documente/Cursuri_Laboratoare/Proiectare cu... · Introducere Acest laborator prezintă procesul adăugării unor module IP suplimentare

Numai pentru uz academic

EDK – Laborator 4-5

Adăugarea modulelor IP la un

proiect hardware

Page 2: EDK – Laborator 4-5 - radio.ubm.roradio.ubm.ro/EA/Documente/Cursuri_Laboratoare/Proiectare cu... · Introducere Acest laborator prezintă procesul adăugării unor module IP suplimentare

Adăugarea modulelor IP la un proiect hardware www.xilinx.com/univ 2-3 Procesorul MicroBlaze [email protected]

Laborator 2: Adăugarea modulelor IP la un proiect hardware

Introducere

Acest laborator prezintă procesul adăugării unor module IP suplimentare la un sistem procesor existent prin utilizarea mediului Xilinx Platform Studio (XPS). Se vor adăuga module IP suplimentare utilizând panoul IP Catalog. La sfârşitul laboratorului, se va crea lista de conexiuni şi se va implementa proiectul.

Obiective

• Adăugarea unor module IP suplimentare la un proiect hardware • Implementarea proiectului utilizând mediul XPS

Procedură

Scopul acestui laborator este extinderea proiectului hardware început în laboratorul 1. Proiectul din laboratorul 1 cuprindea procesorul MicroBlaze, magistrala LMB şi memoria LMB BRAM, un modul GPIO şi un modul de depanare MDM. În laboratorul 2 se va adăuga un alt modul GPIO pentru a extinde proiectul hardware.

În acest laborator, se va utiliza modul de dialog al mediului XPS şi facilităţi ale modului text pentru a adăuga următorul modul IP la un sistem procesor existent (figura 2-1):

• XPS GPIO pentru interfaţarea cu butoanele şi comutatoarele DIP de pe placa Spartan-3E Starter.

De asemenea, se va analiza fişierul system.mhs pentru a înţelege diferitele secţiuni ale specificaţiilor hardware ale sistemului procesor.

Page 3: EDK – Laborator 4-5 - radio.ubm.roradio.ubm.ro/EA/Documente/Cursuri_Laboratoare/Proiectare cu... · Introducere Acest laborator prezintă procesul adăugării unor module IP suplimentare

Adăugarea modulelor IP la un proiect hardware www.xilinx.com/univ 2-4 Procesorul MicroBlaze [email protected]

Figura 2-1. Proiectul complet

Acest laborator cuprinde patru etape principale: adăugarea unui modul IP la sistemul procesor proiectat în laboratorul 1, extinderea sistemului hardware, analizarea fişierului MHS, respectiv adăugarea unei aplicaţii software, generarea şirului de biţi, configurarea circuitului şi verificarea funcţionării.

Pentru fiecare procedură dintr-o etapă principală, există indicaţii generale (puse în evidenţă prin simbolul ). Aceste indicaţii generale reprezintă doar un plan general pentru execuţia procedurii. Sub aceste indicaţii generale, se găsesc instrucţiuni pas cu pas şi figuri ilustrative care oferă detalii suplimentare pentru execuţia procedurii. Dacă se cunoaşte modul de execuţie a unei proceduri, se poate trece peste instrucţiunile pas cu pas şi se poate continua cu următoarea indicaţie generală.

MicroBlaze

BRAM

PLB

PSB

UART

INTC

Timer

GPIO

GPIO

MY IP

LEDs

LCD

MDM

IBA ICON

DIP GPIO

Controler

LMB

BRAM

Controler LMB

BRAM

Page 4: EDK – Laborator 4-5 - radio.ubm.roradio.ubm.ro/EA/Documente/Cursuri_Laboratoare/Proiectare cu... · Introducere Acest laborator prezintă procesul adăugării unor module IP suplimentare

Adăugarea modulelor IP la un proiect hardware www.xilinx.com/univ Procesorul MicroBlaze [email protected]

Adăugarea unui modul IP la sistemul procesor Etapa 1

Fluxul general pentru acest laborator:

Creaţi un subdirector edk2 în directorul propriu (din directorul D:\Student) şi copiaţi conţinutul directorului edk1 în directorul edk2 pentru a continua proiectul creat în laboratorul precedent. Lansaţi în execuţie Xilinx Platform Studio (XPS) şi deschideţi fişierul proiectului aflat în directorul edk2.

� Pentru a continua proiectul creat în laboratorul 1, creaţi un subdirector edk2 în directorul propriu din directorul D:\Student şi copiaţi conţinutul directorului edk1 în directorul edk2.

� Lansaţi în execuţie XPS selectând Start → All Programs → Xilinx Platform Studio 9.2i → Xilinx Platform Studio.

� Selectaţi File → Open Project şi navigaţi la directorul edk2.

� Selectaţi fişierul system.xmp pentru a deschide proiectul.

Extinderea sistemului hardware Etapa 2

Fluxul general pentru acest laborator:

Adăugaţi următorul modul IP la sistemul procesor utilizând panoul Syst

Assembly View:

o XPS GPIO

XPS permite utilizarea a două metode pentru adăugarea perifericelor la existent. Se va utiliza prima metodă, panoul System Assembly View, penadăuga majoritatea modulelor IP suplimentare şi pentru a le conecta. A metodă constă în editarea manuală a fişierului MHS.

Etapa 1: Adăugarea

modul Isistemproces

Etapa Extindesistemuhardwa

Etapa Analizafişieru

MHS

Etapa Verificafuncţion

Etapa 1: Adăugarea

modul Isistemproces

Etapa Extindesistemuhardwa

Etapa Analizafişieru

MHS

Etapa Verificafuncţion

4: rea ării

3: rea lui

2: rea lui re

unuiP la ul or

4: rea ării

3: rea lui

2: rea lui re

unuiP la ul or

2-5

em

un proiect tru a doua

Page 5: EDK – Laborator 4-5 - radio.ubm.roradio.ubm.ro/EA/Documente/Cursuri_Laboratoare/Proiectare cu... · Introducere Acest laborator prezintă procesul adăugării unor module IP suplimentare

Adăugarea modulelor IP la un proiect hardware www.xilinx.com/univ 2-6 Procesorul MicroBlaze [email protected]

� Selectaţi panoul IP Catalog în fereastra din stânga şi executaţi un clic pe semnul + din dreptul intrării General Purpose IO pentru a se afişa modulele disponibile pentru această categorie (figura 2-2).

Figura 2-2. Panoul IP Catalog

� Executaţi un clic dublu pe modulul XPS General Purpose IO de două ori, pentru a adăuga două instanţe la panoul System Assembly View. De fiecare dată, selectaţi Yes în caseta de dialog Add IP.

� Schimbaţi numele instanţelor pentru perifericele adăugate din xps_gpio_0 în dip şi din xps_gpio_1 în push, prin selectarea perifericului în coloana Name, executarea unui clic suplimentar pe numele său, introducerea noului nume al perifericului şi apăsarea tastei Enter.

În acest moment, panoul Bus Interfaces trebuie să arate ca în figura 2-3.

Figura 2-3. Panoul Bus Interfaces după adăugarea perifericelor

Page 6: EDK – Laborator 4-5 - radio.ubm.roradio.ubm.ro/EA/Documente/Cursuri_Laboratoare/Proiectare cu... · Introducere Acest laborator prezintă procesul adăugării unor module IP suplimentare

Adăugarea modulelor IP la un proiect hardware www.xilinx.com/univ 2-7 Procesorul MicroBlaze [email protected]

� Executaţi un clic în coloana Bus Connection pentru instanţele push şi dip. Conectaţi aceste instanţe ca dispozitive slave la magistrala PLB selectând mb_plb în loc de No Connection.

În acest moment, panoul Bus Interfaces trebuie să arate ca în figura 2-4.

Figura 2-4. Panoul Bus Interfaces indicând conexiunile la magistrală ale perifericelor adăugate

� Selectaţi panoul Addresses. Se poate asigna manual adresa de bază şi dimensiunea memoriei pentru periferice sau XPS poate genera adresele în mod automat.

� Selectaţi Generate Addresses pentru a se genera în mod automat adresele de bază şi cele superioare pentru perifericele din sistem.

� În coloana Size, modificaţi dimensiunea memoriei pentru instanţele dip şi push la 512.

Adresele de bază şi adresele superioare se vor modifica după cum se ilustrează în figura 2-5.

Figura 2-5. Harta memoriei pentru periferice

� În coloana Size, modificaţi dimensiunea memoriei pentru instanţele dlmb_cntlr şi ilmb_cntlr la 16K.

Page 7: EDK – Laborator 4-5 - radio.ubm.roradio.ubm.ro/EA/Documente/Cursuri_Laboratoare/Proiectare cu... · Introducere Acest laborator prezintă procesul adăugării unor module IP suplimentare

Adăugarea modulelor IP la un proiect hardware www.xilinx.com/univ 2-8 Procesorul MicroBlaze [email protected]

Există patru butoane şi patru comutatoare DIP pe placa Spartan-3E Starter. Se vor configura mai întâi instanţele dip şi push conform acestor parametri, iar apoi se vor seta porturile de date ale fiecărei instanţe ca externe.

� Selectaţi panoul Ports din bara de instrumente a ferestrei System Assembly View.

� Executaţi un clic dublu pe instanţa dip pentru a accesa fereastra de configurare.

De menţionat că perifericul poate fi configurat pentru două canale, dar, deoarece dorim utilizarea unui singur canal, păstraţi opţiunea Enable Channel 2 neselectată.

� Setaţi parametrul GPIO Data Channel Width la 4, deoarece se vor utiliza patru comutatoare DIP de pe placa Spartan-3E Starter.

Setările pentru parametrii Common trebuie să fie conforme cu figura 2-6.

Figura 2-6. Parametrii configurabili ai instanţei dip a perifericului GPIO

� În continuare selectaţi Channel 1 pentru vizualizarea parametrilor configurabili ai primului canal (figura 2-7).

Page 8: EDK – Laborator 4-5 - radio.ubm.roradio.ubm.ro/EA/Documente/Cursuri_Laboratoare/Proiectare cu... · Introducere Acest laborator prezintă procesul adăugării unor module IP suplimentare

Adăugarea modulelor IP la un proiect hardware www.xilinx.com/univ 2-9 Procesorul MicroBlaze [email protected]

Figura 2-7. Setarea parametrilor configurabili ai canalului 1 pentru instanţa dip

� Setaţi primii doi parametri ai canalului 1 astfel: Channel 1 is Input Only la TRUE şi Channel 1 is Bi-directional la FALSE (figura 2-7), iar apoi selectaţi butonul OK.

� Setaţi aceiaşi parametri pentru instanţa push, în modul executat în etapele precedente.

� Expandaţi porturile instanţei dip prin execuţia unui clic pe semnul + de lângă numele instanţei. Selectaţi portul GPIO_in al instanţei dip, iar în coloana Net schimbaţi opţiunea No Connection cu New Connection. Portul GPIO_in va fi conectat la un semnal denumit dip_GPIO_in (figura 2-8).

Figura 2-8. Adăugarea conexiunii portului GPIO_in a instanţei dip

Page 9: EDK – Laborator 4-5 - radio.ubm.roradio.ubm.ro/EA/Documente/Cursuri_Laboratoare/Proiectare cu... · Introducere Acest laborator prezintă procesul adăugării unor module IP suplimentare

Adăugarea modulelor IP la un proiect hardware www.xilinx.com/univ 2-10 Procesorul MicroBlaze [email protected]

� Executaţi un clic în coloana Net a portului GPIO_in pentru instanţa dip şi selectaţi Make

External.

� Expandaţi porturile instanţei push, creaţi o nouă conexiune la portul GPIO_in şi setaţi portul ca extern.

Observaţie: Porturile se vor conecta extern în circuitul FPGA şi apar acum în câmpul External Ports cu domeniul [0:3] (figura 2-9).

Figura 2-9. Porturile externe ale instanţelor push şi dip

Generaţi bibliotecile. Adăugaţi un program C existent pentru a implementa funcţiile butoanelor şi LED-urilor. Specificaţi conexiunile semnalelor la pinii circuitului FPGA. Compilaţi programul C.

� În fereastra Project Information Area, selectaţi panoul Applications. Executaţi un clic pe

butonul sau selectaţi Software → Generate Libraries and BSPs pentru a genera bibliotecile şi fişierul xparameters.h sub intrarea Processor.

� Sub intrarea Sources a panoului Applications executaţi un clic cu butonul din dreapta pe fişierul TestApp_Memory.c şi selectaţi Remove.

� Executaţi un clic cu butonul din dreapta pe intrarea Sources şi adăugaţi fişierul lab2.c disponibil în arhiva edk-lab2.zip. Figura 2-10 ilustrează conţinutul fişierului lab2.c.

Page 10: EDK – Laborator 4-5 - radio.ubm.roradio.ubm.ro/EA/Documente/Cursuri_Laboratoare/Proiectare cu... · Introducere Acest laborator prezintă procesul adăugării unor module IP suplimentare

Adăugarea modulelor IP la un proiect hardware www.xilinx.com/univ 2-11 Procesorul MicroBlaze [email protected]

Figura 2-10. Codul sursă din fişierul lab2.c

� În panoul Project, executaţi un clic dublu pe fişierul system.ucf şi adăugaţi liniile din figura 2-11 pentru asignarea pinilor la butoane şi comutatoarele DIP. Aceleaşi linii se pot găsi în fişierul lab2.ucf disponibil în arhiva edk-lab2.zip. Salvaţi şi închideţi fişierul .ucf.

Figura 2-11. Asignarea pinilor pentru butoane şi comutatoarele DIP

Page 11: EDK – Laborator 4-5 - radio.ubm.roradio.ubm.ro/EA/Documente/Cursuri_Laboratoare/Proiectare cu... · Introducere Acest laborator prezintă procesul adăugării unor module IP suplimentare

Adăugarea modulelor IP la un proiect hardware www.xilinx.com/univ 2-12 Procesorul MicroBlaze [email protected]

� În panoul Application, executaţi un clic dublu pe Compiler Options, selectaţi panoul Debug

and Optimization şi setaţi opţiunea Optimization Level la No Optimization (figura 2-12).

Aceasta va asigura ca bucla for (utilizată pentru o întârziere software) din codul sursă să nu fie eliminată prin optimizare.

Figura 2-12. Setarea opţiunii Optimization Level

� Selectaţi Software → Generate Linker Script pentru a actualiza fişierul script pentru editorul de legături.

� Executaţi un clic pe butonul sau selectaţi Software → Build All User Applications pentru a compila fişierul sursă. Asiguraţi-vă că fişierul este compilat fără erori.

Page 12: EDK – Laborator 4-5 - radio.ubm.roradio.ubm.ro/EA/Documente/Cursuri_Laboratoare/Proiectare cu... · Introducere Acest laborator prezintă procesul adăugării unor module IP suplimentare

Adăugarea modulelor IP la un proiect hardware www.xilinx.comProcesorul MicroBlaze [email protected]

Analizarea fişierului MHS Etapa 3

Fluxul general pentru acest laborator:

Deschideţi fişierul system.mhs, studiaţi conţinutulurmătoarele întrebări.

� În panoul Project, executaţi un clic dublu pe fişierul sys

� Studiaţi prima secţiune în care sunt definite porturile ext

1. Completaţi următoarele:

Numărul porturilor externe: Numărul porturilor externe care sunt ieşiri:Numărul porturilor externe care sunt intrărNumărul porturilor externe care sunt bidire

� Studiaţi întregul fişier system.mhs.

2. Listaţi instanţele la care este conectat semn

__________________________________

__________________________________

Listaţi perifericele conectate la magistrala

__________________________________

__________________________________

� Închideţi programul XPS.

?

?

Etapa 1: Adăugarea

modul Isistemproces

Etapa Extindesistemuhardwa

Etapa Analizafişieru

MHS

Etapa 4: Verificarea funcţionării

3: rea lui

2: rea lui re

unuiP la ul or

/univ 2-13 om

său şi răspundeţi la

tem.mhs pentru deschiderea acestuia.

erne.

i: cţionale:

alul sys_clk_s.

______________________________

______________________________

mb_plb.

______________________________

______________________________

Page 13: EDK – Laborator 4-5 - radio.ubm.roradio.ubm.ro/EA/Documente/Cursuri_Laboratoare/Proiectare cu... · Introducere Acest laborator prezintă procesul adăugării unor module IP suplimentare

Adăugarea modulelor IP la un proiect hardware www.xilinx.com/univ Procesorul MicroBlaze [email protected]

Verificarea funcţionării Etapa 4

Fluxul general pentru acest laborator:

Configuraţi circuitul xc3s500e de pe placa Spartan-3E cu şirul de biţi.

� În fereastra XPS, selectaţi Device Configuration � Update Bitstream.

Aceasta poate necesita câteva minute pentru sinteza proiectului, implementarea agenerarea şirului de biţi pentru configurare.

� Lansaţi o sesiune HyperTerminal prin executarea unui clic dublu pe fişierul hype

disponibil în arhiva edk-lab2.zip.

� Conectaţi la calculator şi alimentaţi placa Spartan-3E Starter.

� Configuraţi circuitul FPGA selectând Device Configuration ���� Download Bitstrea

Observaţie: După configurarea circuitului, trebuie ca LED-ul DONE să se aprindsă se afişeze un mesaj în fereastra HyperTerminal, după cum se ilustrează în figur

Figura 2-13. Fereastra HyperTerminal după configurarea circuitului

� După apăsarea butoanelor şi modificarea poziţiei comutatoarelor, trebuie să se aficorespunzătoare în fereastra HyperTerminal (figura 2-14).

Etapa 1: Adăugarea

modul Isistemproces

Etapa Extindesistemuhardwa

Etapa Analizafişieru

MHS

Etapa Verificafuncţion

4: rea ării

3: rea lui

2: rea lui re

unuiP la ul or

2-14

cestuia şi

rterm.ht

m.

ă şi trebuie a 2-13.

şeze valorile

Page 14: EDK – Laborator 4-5 - radio.ubm.roradio.ubm.ro/EA/Documente/Cursuri_Laboratoare/Proiectare cu... · Introducere Acest laborator prezintă procesul adăugării unor module IP suplimentare

Adăugarea modulelor IP la un proiect hardware www.xilinx.com/univ 2-15 Procesorul MicroBlaze [email protected]

Figura 2-14. Afişarea stării butoanelor şi a comutatoarelor DIP în fereastra HyperTerminal

� Deconectaţi legătura serială şi închideţi fereastra HyperTerminal.

Concluzie

Mediul Xilinx Platform Studio (XPS) poate crea un fişier MHS reprezentând sistemul procesor. Se poate configura sistemul prin specificarea unor parametri pentru periferice şi prin controlul porturilor interne şi externe. După definirea sistemului, se poate crea lista de conexiuni a sistemului procesor.

În următoarele laboratoare, se vor adăuga module utilizator şi un program la sistem, se va simula proiectul, se va depana programul şi se va verifica funcţionarea proiectului complet pe placa Spartan-3E.