Revisions for EDK tutorial 1
changed:
-
Komme i gang med Xilix Projekt Studio 7.1i
En enkel men detaljert steg-for-steg veiledning til implementasjon av MicroBlase prosessoren på MEMEC protokort DS-BD-V4LX25MB.
"Tor Aleksander Birk Danielsen", mailto:tordan@ift.uib.no,
*Universitetet i Bergen, Institutt for fysikk og teknologi,*
*Oktober 2005*
Dette er en kort veiledning for å komme i gang med et enkelt microblaze system. Dette oppsettet basere seg på et prototypekort
fra MEMEC samt bruk av "base System Builder" filer. Du vil trenge XPS innstalert på maskinen samt tilgang til hyperterminal eller
annen terminal som kan lese com-portene på PC'en din.
<h1> DEL 1 - Generere Prosjektfiler
</H1>
Innstalere MEMEC repository-files
Før vi kan komme i gang med XPS, må vi sørge for at MEMEC's repository-filer er innstalert på maskinen. Filene kan lastes ned <a href="uploads/Memec_XBD_Files_EDK63h.zip">her</a> som en zip fil hvis de ikke allerede er innstalert
på maskinen. Unzip filene legg dem i en katalog. Husk hvor du har plasert katalogen da du trenger å oppgi plaseringen senere.
Innstalere RS232-USB driver
Vi er også nødt til å ha innstalert USB-driveren hvis vi ønsker å kunne bruke RS232 til USB broen som er på MEMEC-kortet.
Du finner driverene til chipen <a href="uploads/cp2101.zip">her</a>.
Starte Xilinx Project Studio
Start programmet som heter "Xilinx Platform Studio".
Når progammet har startet opp vil du få opp et vindu med spørsmål om lage et nytt prosjekt. Velg "Base System Builder Wizard" og klikk "OK".
I neste vindu får en spøsmål om å lage en ny prosjekt fil. Skriv inn prosjektnavnet "TEST" og bruk browsefunksjonen til å velge en passende
plass å legge prosjektfilene. Klikk så for å velge "User Peripheral Repository search patch for IP....", og bruk "browse" funksjonen til å finne
katalogen hvor du innstalerte MEMEC repository files. Gå så videre med å klikke "ok".
<img src="uploads/EDK_XPS_01.jpg" />
I neste vindu får du to valg. Merk "I would like to create a new design" og klikk "next".
<img src="uploads/EDK_XPS_02.jpg" />
Her merker du "I would like to create a system for the following development board" og velger korekt prtotypekort fra menyen. Trykk så "next".
<img src="uploads/EDK_XPS_03.jpg" />
I neste vindu velger du "MicroBlaze" og trykker "next".
<img src="uploads/EDK_XPS_04.jpg" />
Du vil nå få opp et vindu hvor du kan sepsifisere MicroBlaze prosessorens egenskaper. Referanseklokken skal være 100MHz. Systemklokken
kan settes til 100MHz(eller lavere hvis det skulle være ønskelig). Prosessorconfigurasjonen settes til "On-chip H/W debug module".
Sett "Local data and instruction memory" til ønsket verdi, i vårt tilfelle 32kB. Velg "no cache". Klikk så "next".
<img src="uploads/EDK_XPS_05.jpg" />
Du vil nå få opp et vindu hvor du kan velge I/O interface for prosessoren. Merk vekk "Ethernet MAC" og sett hastigheten på "RS232_USB"
opp til maks (921600). Trykk så "next".
<img src="uploads/EDK_XPS_06.jpg" />
I dette vinduet lar du alt stå som det er og trykker "next".
<img src="uploads/EDK_XPS_07.jpg" />
Her settes minneområdene. La alt sto som det er og trykk "next".
<img src="uploads/EDK_XPS_08.jpg" />
I neste vindu får du spørsmål om å legge til enheter. Ikke gjør noe men trykk "next".
Du vil nå få opp et vindu med spørsmål om hva som skal være standar IO enhet. trykk også på valg for "Memory Test". Velg RS232 og trykk "next2.
<img src="uploads/EDK_XPS_09.jpg" />
I vinduet som nå kommer opp kan du velge hvor du vil plasere intruksjon, data og stack minne. La de valgte verdier stå og trykk "next".
<img src="uploads/EDK_XPS_10.jpg" />
Du vil nå få opp en oversikt over prosessoren og adresser til de forskjellige enhetene koblet til den. Trykk "Generate" og du vil få generert et
prosjekt basert på dine valg.
<img src="uploads/EDK_XPS_11.jpg" />
Du får så opp et vindu som sier at prosjektet er generert. Trykk "Finish".
Du vil nå se at prosjektet blir lastet inn i XPS. Du får også et lite vindu som heter "the next step". Velg "start using platform studio" og trykk "ok".
<img src="uploads/EDK_XPS_12.jpg" />
<h1> DEL 2 - Kjøre en testaplikasjon</H1>
Du har nå fått et komplett MicroBlaze system i ditt prosjekt. Det neste steget blir å kjøre en testaplikasjon som ligger i
prosjektet ditt og på denne
måten få bekreftet at prosessoren kjører som den skal.
Synthesisere prosjektet
For å få generert en prosjektfil som kan lastes ned på FPGA'en må en gå på tools menyen og trykke "Generate Bitstream".
XPS vil nå jobbe i en til to timer.
<img src="uploads/EDK_XPS_16.jpg" />
Når bitmap filen er ferdig vil du få følgende beskjed i outputvinduet:
<pre>
Analyzing file TestApp_Memory/executable.elf...
INFO:MDT - BRAM lmb_bram will be initialized with ELF of processor microblaze_0
Running Data2Mem with the following command:
data2mem -bm implementation/system_bd -bt implementation/system.bit -bd
TestApp_Memory/executable.elf tag lmb_bram -o b implementation/download.bit
Memory Initialization completed successfully.
Done.
</pre>
Eneable XMD debug
Gå på "optionsmenyen" og velg "XMD debug Options". I vinduet som kommer opp merker du av "hardware" og trykker "save".
<img src="uploads/EDK_XPS_19.jpg" />
Kompilere programkoden
Til venstre i XPS åpner en vinduet som heter "Application". Høyreklikk på "xmdstud" og pass på at "mark to initialize BRAMs" er er umarkert. Gjør det samme
med "Project: TestApp_Memory" og sørg for at "mark to initialize BRAMs" er markert.
**** legg til options
I prosjektlista dobbelklikker du på source og åpner filen som ligger der. Du vil da få åpnet kildekoden din i hovedvinduet.
<img src="uploads/EDK_XPS_14.jpg" />
Bla deg ned i TestApp_Memory.c filen og finn main rutinen. Her legger du til "<em>print("Dette er en test av 'ditt navn'\n\r");
</em>".
<pre>
//====================================================
int main (void) {
print("-- Entering main() --\r\n");
print("Dette er en test av 'ditt navn'\n\r");
/*
* MemoryTest routine will not be run for the memory at
* 0x00000000 (dlmb_cntlr)
* because it is being used to hold a part of this application program
*/
</pre>
Trykk på lagre og åpne deretter menyen "tools" og velg "Build All User Aplication". All programkode vil da bli kompilert og du vil få en
utskrift som forteller størrelse på progamkoden.
<img src="uploads/EDK_XPS_13.jpg" />
<pre>
mb-size TestApp_Memory/executable.elf
text data bss dec hex filename
3968 300 8 4276 10b4 TestApp_Memory/executable.elf
Done.
</pre>
Laste over bitfilen til virtex-4
Koble til parallellport-programereren fra xilinx til kortet og koble til en seriellkabel mellom kortet og PC'en.
Start opp hyperterminal eller et alternativt program. Velg com1. I neste vindu setter du baudraten til 9600,
databits til 8, velger "none" på parity, setter stopbit til 1 og velger hardware på "flow control". Trykk så på "apply".
<img src="uploads/EDK_XPS_17.jpg" />
Overføre sowftwaren til MicroBlaze prosessoren
Neste steg er nå å laste over prosessoren på FPGA'en. Slå på strømmen på prototypekortet. Velg så tools menyen og trykk på "Download". Når nedlastingen er
ferdig vil du få opp følgende tekst i outputvinduet:
<pre>
INFO:iMPACT:579 - '1': Completed downloading bit file to device.
INFO:iMPACT:580 - '1':Checking done pin ....done.
'1': Programmed successfully.
Elapsed time = 3 sec.
// *** BATCH CMD : quit
Done.
</pre>
Du vil nå starte kjøringen av programet straks nedlastingen er fredig. I hyperterminal vil du få opp en tekst som sier:
<pre>
-- Entering main() --
Dette er en test av 'ditt navn'
Starting MemoryTest for DDR_SDRAM_32Mx16:
Running 32-bit test...PASSED!
Running 16-bit test...PASSED!
Running 8-bit test...PASSED!
-- Exiting main() --
</pre>
Gratulerer!!! Du har nå implemenetert et enkelt softcore prosessorsytem på FPGA'en.