Till KTH:s startsida Till KTH:s startsida

Ändringar mellan två versioner

Här visas ändringar i "Testbänk i ModelSim (sw)" mellan 2014-11-05 14:39 av William Sandqvist och 2014-11-05 14:44 av William Sandqvist.

Visa < föregående | nästa > ändring.

Testbänk i ModelSim (sw)

sw Testbänk i ModelSim

[IMAGE]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.

[IMAGE]

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

[IMAGE]

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

[IMAGE]

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.

[IMAGE] tb_lockmall.vhd (tb_lockmall.txt)

Lägg till VHDL-filen till projektet

[IMAGE]

[IMAGE]

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

[IMAGE]

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.

[IMAGE]

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:

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.

[IMAGE]

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.

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.

[IMAGE]

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

[IMAGE] [IMAGE]

Avslöja den felaktiga koden! [IMAGE]

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.

[IMAGE] lockmall_with_error.vhd (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!

[IMAGE]

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!