ParallelBusEmulator

=ParallelBusEmulator=

For at kunne test vores design på en simpel måde, har jeg valgt at lave en Avalon bus emulator. Emulatoren tager inputs fra skydekontakterne på DE-2 boardet og bruger disse til hhv read- og write cycles på Avalon bussen.



Trykknapperne på DE-2 boardet genererer en aktiv-lav puls.

Testbench'en benytter BrdWrite og BrdRead, disse genererer som tryk-knapperne en aktiv-lav puls på hhv BrdRd og BrdRd signalerne.

I selve parallelbus emulatoren har jeg dog valgt at bruge positiv logik, dvs. konsekvent aktiv-høje signaler (dette bruges også på Avalon bussen, her er WR, RD og CS også aktivt-høje signaler). Derfor skal BrdRd- og BrdWr signalerne inverteres inden at de går ind i ParallelBusEmulatoren.

Nogle af jer har måske undret jer over følgende fejl når I sumulerer en Avalon-Read sekvens : code ModelSim: # ** Warning: NUMERIC_STD.TO_INTEGER: metavalue detected, returning 0

code Denne type warnings kommer når man forsøger at lave en type konvertering med andet end '1' eller '0'. Vi husker at std_logic kan blive både 'Z', 'U' mm og kan ikke omsættes til integer, hvorfor ModelSim sætter integerværdien til nul.

I dette tilfælde får vi fejlen fordi at vi forsøger at lave en læsning fra Avalon bussen, men uden at vi har en enhed tilkoblet som kan levere data. Dette sker først i step 3 hvor vi forbinder ParallelBusEmulatoren sammen med registret i amve.

7) Får I fejl her, dvs. den samme fejl som i step 1, så skulle I måske prøve at kigge på hvilke adresser som bliver skrevet til i test benchen (amve_tb). TinyRegister sidder på cs(0) som har adresseområdet 0x00 til 0x0F