Till KTH:s startsida Till KTH:s startsida

Ändringar mellan två versioner

Här visas ändringar i "Testbänk i ModelSim (sw)" mellan 2016-10-04 09:03 av William Sandqvist och 2016-10-12 14:03 av William Sandqvist.

Visa < föregående ändring.

Testbänk i ModelSim (sw)

sw Testbänk i ModelSim

Automatisera testningen av kodlåset pdf testbench.pdf

Välj rätt programversion - i skolan finns flera olika installerade under startmenyn!

Altera 13.0.1.232 Web edition\ ModelSim-Altera Starter Edition 13.0.1.232\ ModelSim-Altera 10.1d(Quartus II 13.0sp1) Starta ModelSim.

welcomewindow.bmp

Klicka på Jumpstart. Denna gång väljer vi länken "Open Project" för att fortsätta med det gamla MAXsim-projektet.

jumpstartcreate.png

Testbänken Förutom VHDL-koden för låset, behöver vi nu ytterligare en VHDL-fil för testbänkskoden.

newvhdl.gif

Skapa en ny tom VHDL-fil. Kopiera och klistra in innehållet från den givna filen tb_lockmall.vhd och spara sedan filen under samma namn, tb_lockmall.vhd, bland de övriga filerna i projektet.

Alternativt kan man kopiera över hela filen tb_lockmall.vhd till mappen med de övriga filerna i projektet.

testbench.gif tb_lockmall.vhd ( text.gif tb_lockmall.txt )

Lägg till VHDL-filen till projektet

addmenu.gif

addfiletoproject.gif

Projektet har nu två filer. Filen tb_lockmall.vhd är inte kompilerad ännu, vilket syns på det blåa frågetecknet.

twofiles.gif

Välj menyvalet Compile och alternativet Compile All. Nu kompileras filen tb_lockmall.vhd. Av innehållet i den filen framgår att den styr codelock.vhd, så det är därför den har det högsta ordningsnumret.

twocompiled.gif

Ladda Designen till simulatorn.

Vi vill att testbänkens meddelanden ska visas (som pilar) överst i Wave-fönstret. Därför skriver vi i Transcript-fönstret:

VIKTIGT för att få pilarna!

vsim -msgmode both -displaymsgmode both tb_codelock Därefter lägger man till signalerna i Wave-fönstret.

add wave *

Starta simuleringen

I filen tb_codelock.vhd står raden clk <= not clk after 10 ns;. Den skapar de klockpulser med periodtiden 20 ns som vi använt tidigare.

clkfreq.gif

Vi kan direkt starta simuleringen med kommandot run 3us i Transcript-fönstret. Tiden 3 μs räcker för att prova igenom alla tänkbara tangent-tryckningskombinationer.

run 3us

I Transcript-fönstret kan vi läsa det uppmuntrande budskapet Note: Lock tries to open for the right sequence!. I Wave-fönstret väljer man View, Zoom, och Zoom Full och kan då se hela förloppet. (Zoom Last kan också vara användbart).

noerror.gif

De gröna pilarna visar när den önskade händelsen händer! Avsluta nu simuleringen.

endsimulation.gif endsimulationyes.gif

Avslöja den felaktiga koden! changecode.bmp

Nu gäller det att i Project-fönstret dubbelklicka på filen codelock.vhd så att den visas i texteditorn och där går att förändra. Kopiera och klistra in innehållet från filen lockmall_with_error.vhd. Spara sedan filen under samma namn som tidigare och kompilera om allt.

vhdlfile lockmall_with_error.vhd ( text.gif lockmall_with_error.txt )

Simulera sedan på samma sätt som tidigare. I Transcript-fönstret kan Du läsa meddelanden från testbänken när önskade eller oönskade händelser sker.

Den röda pilen i Wave-fönstret visar när den oönskade händelsen händer!

error.gif

VHDL-testbänksfilen Du behöver naturligtvis inte kunna skriva en VHDL-testbänksfil efter en kort första kurs om Digital Design. Tag ändå tillfället i akt att gå igenom filen och se om Du kan förstå hur den är tänkt!