Hardware/Software Codesign with SystemC: Practicum Opdracht 2

© Mathias Spiessens, Dimitri Verstreken en Harry Broeders.

Deze pagina is bestemd voor studenten van de Haagse Hogeschool - Faculteit Technologie, Innovatie & Samenleving groep E-EMSYS.

Opdracht 2a

Het bij opdracht 1 geanalyseerde algoritme moet op het DE2-70 bord gebruikt worden. Je hoeft, in eerste instantie, geen eigen hardware te ontwikkelen. Je kunt (om te beginnen) gebruik maken van dezelfde hardware die je bij het practicum Embedded Software van John Visser gebruikt.

Er zijn twee manieren om het input plaatje naar het DE2-70 bord te sturen en de output plaatje van het DE2-70 bord weer naar de PC te sturen:

  1. Je kunt het plaatje "meecompileren" in je programma (als een array gevuld met pixelwaarden). Het resultaat kun je wegschrijven naar de console en dan met knippen en plakken in een file plaatsen.
  2. Je kunt gebruik maken van de (debug) functionaliteit in de HAL om het host file system te gebruiken (zie http://www.altera.com/literature/hb/nios2/n2sw_nii5v2.pdf pagina 6-15).

Begin met een zo eenvoudig mogelijk programma. Meet hoe lang de uitvoering van de binarization bewerking duurt (het versturen van het plaatje van het bord naar de PC moet je niet meerekenen). Je kunt dit heel nauwkeurig meten door een performance counter te gebruiken. Zie de sheets van les 9 NiosII en http://www.altera.com/literature/hb/nios2/qts_qii55001.pdf .

Voor het geval dat je te weinig RAM hebt: ftp://ftp.altera.com/up/pub/Altera_Material/11.0/Tutorials/VHDL/DE2-70/Using_the_SDRAM.pdf .

Opdracht 2b

Probeer nu het algoritme zo snel mogelijk uit te voeren. Je kunt de software optimaliseren maar je kunt ook delen van de software in hardware implementeren. Hierbij kun je gebruik maken van de C2H tool van Altera. Let op: in 2012 werkte C2H niet lekker in lokaal 1.052, ik heb geen tijd gehad om dit uitgebreid te testen. Indien nodig kun je gebruik maken van lokaal 1.049). Zie de sheets van les 9  en

De 3 snelste implementaties verdienen een bonuspunt!

Schrijf een kort designreport waarin je de implementatie bespreekt en ook de meetresultaten, zoals in de sheets van les 9 , geeft. Als plaatje voor de meting moet je input3.pgm als input gebruiken. Je implementatie moet natuurlijk wel correct werken voor alle plaatjes die bij opdracht 1 gegeven zijn. Het laden van het plaatje en het wegschrijven van het resultaat hoef je niet te meten. Het maken van het histogram en het toepassen van de threshold waarde moet je wel timen. Vermeld ook in het designreport welke problemen je bent tegengekomen en hoe je die hebt opgelost.

Minimale vereiste om deze opdracht met een voldoende af te ronden:

Thuisgebruik C2H

Als je C2H thuis wil gebruiken moet je de volgende software installeren: