ERK'2020, Portorož, 433-437 433 Virtualni laboratorij za pouˇ cevanje digitalnih sistemov Janez Perš, Andrej Trost Fakulteta za elektrotehniko, Univerza v Ljubljani, Tržaška 25, 1000 Ljubljana E-pošta: andrej.trost@fe.uni-lj.si Virtual laboratory for Digital Systems Education The paper describes a digital system teaching method- ology, based on online software tools and virtual lab- oratory. The tools are freely available and enable ef- fective remote learning in a course with a limited time frame. A teaching and student experience with the pro- posed methodology implemented in an introductory elec- trical engineering course Programmable Digital Systems is presented. 1 Uvod Obravnava digitalnih sistemov je pomembna za študente elektrotehnike, ki se bodo v praksi sreˇ cevali s snovanjem ali programiranjem digitalnih naprav [1]. Praktiˇ cno zna- nje pridobivajo z naˇ crtovanjem vezij na razvojih plošˇ cah s programirljivimi vezji FPGA [2]. Pri delu potrebujemo industrijska orodja proizvajalcev FPGA, ki so optimizi- rana za razvoj kompleksnih vezij, obravnava manjših, uˇ c- nih primerov vezij pa je relativno zahtevna in zamudna. Za razliko od programske opreme, smo pri izbiri orodij za razvoj vezij FPGA zelo omejeni [3]. Na laboratorij- skih vajah je potrebno poenostaviti postopek naˇ crtovanja za študente z osnovnim poznavanjem raˇ cunalniških oro- dij in omejenim ˇ casom izvedbe naloge. Vaje za študente prvih letnikov smo do sedaj izvajali z vnaprej pripravljenimi projekti in poudarkom na shemat- skem naˇ crtovanju vezij. Vaje smo prenovili z vkljuˇ citvijo spletnega orodja in virtualnega laboratorija, ki omogoˇ ca opravljanje poskusov iz domaˇ cega raˇ cunalnika. Digitalne sisteme naˇ crtujemo shematsko ali pa v stan- dardnem jeziku VHDL oz. Verilog [4]. Razlaga jezika, kot je VHDL, zaradi posebnosti sintakse ni primerna za izbirni predmet z manjšim obsegom pedagoških ur. Re- šitev vidimo v poenostavljenem jeziku, ki vkljuˇ cuje le osnovne koncepte in vodi naˇ crtovalca digitalnega vezja k pravilni uporabi stavkov pri opisu vezja [5]. Poeno- stavljen jezik s spletnim prevajalnikom in simulatorjem omogoˇ ca utrjevanje snovi in delo od doma. Virtualni la- boratorij pa dopolnjuje ali celo nadomešˇ ca izvedbo vaj in poskusov v pravem laboratoriju [6]. V prispevku bomo predstavili: posodobitev pouˇ cevanja digitalnih sistemov s spletnimi orodji, vzpostavitev virtualnega laboratorija in izkušnje pedagogov in študentov pri izvedbi laborato- rijskih vaj. Obravnavan pristop smo uporabili pri pred- metu Programirljivi digitalni sistemi (PDS) v prvem le- tniku študijske smeri Aplikativna Elektrotehnika. 2 Orodja za naˇ crtovanje vezij Na laboratorijskih vajah predmeta PDS utrjujemo preda- vano snov z izvedbo praktiˇ cnih primerov kombinacijskih in sekvenˇ cnih vezij, sekvenˇ cnih strojev in digitalnih sis- temov s procesorjem. Primere preizkušamo na razvojnih plošˇ cah Altera DE0 Nano [7]. Digitalna vezja naˇ crtujemo in prevajamo z orodjem Intel/Altera Quartus Prime, ki je na voljo brezplaˇ cno za nekomercialne namene. Orodje omogoˇ ca risanje sheme, prevajanje vezja iz jezikovnega opisa, upravljanje razvojnih plošˇ c in simulacijo z zuna- njim programom, kot je npr. Modelsim. Industrijsko orodje zahteva skrbno pripravo navodil študentom in vodenje ali demonstracijo uporabe. Izde- lavo vezja z risanjem sheme študenti usvojijo hitro, ven- dar je praktiˇ cno uporabna le za nekatera osnovna vezja ali izdelavo sistemov iz vnaprej pripravljenih komponent (npr. vmesniki, jedra CPU). Slika 1: Simulirana razvojna plošˇ ca v spletnem orodju SHDL in potek signalov pri izvedbi vaje elektronska kljuˇ cavnica. Strojno-opisni jeziki omogoˇ cajo bolj uˇ cinkovito naˇ cr- tovanje, zahtevajo pa obsežnejšo razlago sintakse in ve- liko praktiˇ cnih vaj. Pri predmetu prvega letnika smo zato uvedli poenostavljen jezik SHDL, ki omogoˇ ca naˇ crtova- nje v spletnem orodju in povezavo z industrijskimi orodji za preizkus na vezjih FPGA [5]. Spletno orodje omogoˇ ca izdelavo in simulacijo modelov vezij brez zamudnega namešˇ canja zahtevne programske opreme. Kombinacijska vezja opišemo s prireditvenimi stavki, ki vsebujejo logiˇ cne in aritmetiˇ cne izraze in pogojnimi stavki. Sintaksa operatorjev je povzeta po jeziku VHDL, podatkovni tipi pa so le eno- bitni ali celoštevilski vektorji. Deklaracije prikljuˇ ckov in notranjih signalov nadomestimo z vnosom signalov v tabelo. Opis sinhronih sekvenˇ cnih gradnikov (flip- flopi, registri) naredimo s posebnim prireditvenim operatorjem. Sintaktiˇ cna pravila so zaradi omejenega 434 nabora konstruktov jezika SHDL izjemno poenostavljena in omogoˇ cajo hitro izdelavo modelov kombinacijskih ter sekvenˇ cnih vezij, pri katerih so naˇ crtovalci osredotoˇ ceni na pomen (semantiko) stavkov strojno-opisnega jezika. Simulacijo modela naredimo v spletnem orodju tako, da doloˇ cimo število simulacijskih ciklov, v vsakem ciklu grafiˇ cno nastavimo vrednosti vhodov, izvedemo simulacijo in pregledamo rezultat. Spletno orodje smo nadgradili še z grafiˇ cnim prika- zom razvojne plošˇ ce na kateri lahko pritiskajo tipke, vr- tijo kodirnik in opazujejo izhod na 7-segmentnih prika- zovalnikih (slika 1). S spletnim orodjem študenti izva- jajo eksperimente in so sposobni samostojno rešiti vajo naˇ crtovanja digitalnega vezja, saj poenostavljen jezik ne zahteva veliko razlage in vodenja. 3 Virtualni laboratorij V pravi uˇ cilnici, v kateri se izvajajo vaje s programirlji- vimi vezji, je za študente na voljo veˇ c kot 20 raˇ cunalni- kov, in 20 prilagojenih razvojnih plošˇ c DE0-Nano, zgra- jenih okrog programirljivega vezja Altera/Intel Cyclone IV . Vaje izvajamo v skupinah, ki štejejo od 15 do 20 štu- dentov. V ˇ casu, ko izvajanje vaj v laboratoriju ni bilo mogoˇ ce, smo analizirali veˇ c možnosti izvajanja vaj na da- ljavo, in sicer: Oddaljeni dostop do obstojeˇ cih raˇ cunalnikov zahteva najmanj tehniˇ cnih posegov, vendar pa ostane problem povratne informacije – študenti ne morejo videti rezultatov svojega dela na razvojnih plošˇ cah. Rešitev tega problema bi zahtevala najmanj 15 spletnih kamer, za vsako delovno mesto eno, poleg tega pa bi bilo treba konfigurirati oddaljen dostop za vse raˇ cunalnike v uˇ cilnici. Delo na domu z razvojnimi plošˇ cami je bilo nemogoˇ ce izvesti, saj je na voljo 20 plošˇ c ob 45 vpisanih študentih, vaje pa so bile naˇ crtovane v treh ciklih. Virtualni strežnik je ponujal najveˇ c prednosti – ob uporabi dovolj zmogljive strojne opreme je bilo treba konfigurirati samo en fiziˇ cni raˇ cunalnik, ter ga kombinirati z eno samo kamero visoke loˇ cljivosti. Ves virtualni laboratorij je tako zavzemal le 2 m 2 prostora in je prikazan na sliki 2. 3.1 Virtualni strežnik Uporabljen je bil visoko zmogljiv osebni raˇ cunalnik v naslednji konfiguraciji: 64 GB RAM, 6-jedrni procesor Intel(R) Core(TM) i7-8700K z delovno frekvenco 3.70 GHz, SSD disk 500 GB ter dva magnetna diska 2 TB. Dve grafiˇ cni kartici NVIDIA RTX-2080Ti v okviru virtualnega laboratorija nista bili uporabljeni. Na strežniku je tekel OS Ubuntu Linux 18.04 LTS, ki smo ga uposobili za virtualizacijo s pomoˇ cjo emulatorja QEMU (angl. Quick Emulator, [8]) in modula jedra KVM (angl. kernel virtual machine, [9]), obe v standardnih verzijah za Ubuntu Linux 18.04 LTS. QEMU Slika 2: Postavitev virtualnega laboratorija. Zmogljiv strežnik je pod mizo. Vidnih je 15 razvojnih plošˇ c in IP kamera visoke loˇ cljivosti na stojalu. V ˇ casu delovanja virtualnega laboratroija so bile okenske žaluzije zaprte in prižgane stropne fluorescentne luˇ ci, da smo zagotovili ˇ cimbolj konstantne svetlobne razmere, ki bi drugaˇ ce vplivale na vidnost prikazovalnikov na razvojnih plošˇ cah. je sicer emulator za vrsto razliˇ cnih arhitektur, vendar pa lahko na platformah z arhitekturo x86/x64 uporablja KVM in s tem deluje kot pravi hipervizor. V nadaljevanju ˇ clanka pri uporabi termina ”hipervizor” torej mislimo na kombinacijo OS Ubuntu ter orodij QEMU in KVM. 3.2 Virtualizacija študentskih raˇ cunalnikov Na strežniku je s pomoˇ cjo KVM teklo 15 virtualnih raˇ cunalnikov z OS Windows 7. Vsak virtualni raˇ cunalnik je imel na razpolago 3 GB RAM, 120 GB magnetnega diska (za sistemsko particijo) in 5 GB diska SSD (za namizje, ki je služilo kot delovni prostor za študente). V vsakem virtualnem raˇ cunalniku je bila namešˇ cena programska oprema Altera/Intel Quartus, razliˇ cica 18, skupaj z USB gonilniki za razvojne plošˇ ce DE0-Nano. V virtualnih raˇ cunalnikih so bili namešˇ ceni optimi- zirani gonilniki, ki jih ponuja standard VirtIO [11], to- rej gonilnik za virtualni grafiˇ cni vmesnik (”grafiˇ cno kar- tico”), gonilnik za virtualni omrežni vmesnik, gonilnik za virtualni disk, ter gonilnik, ki omogoˇ ca hipervizorju, da virtualnemu raˇ cunalniku odvzame neuporabljen, a dode- ljen pomnilnik (angl. VirtIO Baloon driver). Tako hiper- vizorju, kot tudi vsakemu virtualnemu raˇ cunalniku je bil dodeljen IP naslov v naslovnem prostoru, dostopnem štu- dentom in asistentom preko povezave VPN (angl. virtual private network). 435 Dostop do virtualnih raˇ cunalnikov je bil možen na tri naˇ cine: Preko specializiranega vmesnika SPICE [10], ki omo- goˇ ca optimalno uporabniško izkušnjo. Neposredno je povezan z hipervizorjevim delom virtualizirane grafiˇ cne kartice (pri povezavi navedemo IP naslov hipervizorja, ne virtualnega raˇ cunalnika, vsak vir- tualni raˇ cunalnik pa zahteva svoja IP vrata na hiper- vizorju), kar omogoˇ ca zelo optimiziran prenos gra- fiˇ cnega prikaza tudi preko omrežnih povezav, ven- dar le enemu uporabniku (v tem primeru študentu). Takšen naˇ cin povezave recimo omogoˇ ca tudi, da se ob spremembi velikosti okna klienta SPICE (na študentovem raˇ cunalniku) odrazi v loˇ cljivosti, ki jo grafiˇ cni gonilnik v Windows 7 sporoˇ ca aplikaci- jam, kar zelo poveˇ ca ergonomiˇ cnost dela. Protokol SPICE uporablja tudi video kodiranje slike za dele ekrana, na katerih se dogajajo hitre spremembe. Deljena mapa pod OS Windows, v namen prenaša- nja datotek. Poleg tega tudi protokol SPICE omo- goˇ ca prenos datotek po sistemu ”povleci in spusti” (angl. drag and drop), ki so ga študenti tudi najpo- gosteje uporabljali. Preko namešˇ cenega strežnika VNC, ki je bil namenjen asistentom. Kombinacija vmesnikov SPICE in VNC je omogo- ˇ cala, da so imeli študenti neposreden in hiter grafiˇ cni do- stop, ki je omogoˇ cal tudi naˇ crtovanje (”risanje”) vezij, asistent pa se je lahko v primeru vprašanj povezal na nji- hov virtualni raˇ cunalnik, ne da bi vmesnik SPICE preki- nil povezavo s študentom. 3.3 Povezava razvojnih plošˇ c v virtualiziran sistem Razvojne plošˇ ce DE0-Nano imajo USB vmesnik, ki rabi ustrezen gonilnik na strani operacijskega sistema (v našem primeru Windows 7). Hipervizor omogoˇ ca neposredno povezavo USB (angl. USB passthrough) fiziˇ cne naprave z virtualnim raˇ cunalnikom, pri ˇ cemer gonilniki za hipervizor niso potrebni. Fiziˇ cni priklop 15 razvojnih plošˇ c je zahteval dva razdelilca USB (angl. USB hub) z lastnim napajanjem. Problem, ki se pojavi pri veliko USB napravah je, da so vse naprave fiziˇ cno, elektriˇ cno in programsko povsem enake, zato hipervizor ne more doloˇ citi, katera razvojna plošˇ ca (to je, katero študentsko delovno mesto) je bilo ob katerem trenutku priklopljeno v USB vmesnik. Delo s takšnim sistemom je vseeno možno, ˇ ce konfiguracijo virtualnih raˇ cunalnikov (konfiguracijske datoteke za QEMU, KVM in povezane knjižnice) dokonˇ cno nastavimo po priklopu vseh plošˇ c. V primeru izklopa raˇ cunalnika, ponovnega zagona hipervizorja, ali izpada elektrike pa je vrstni red dodeljenih številk povsem nakljuˇ cen, kar zahteva ponovno rekonfiguracijo. Problem se da nasloviti, ˇ ce imamo možnost nastaviti unikatno serijsko številko vsaki od razvojnih plošˇ c, ˇ cesar pa se zaradi ˇ casovne stiske nismo lotili. V dveh mesecih delovanja virtualnega laboratorija v našem Slika 3: Nastavljanje virtualnih pogledov v spletnem vmesniku kamere. Ker kamera omogoˇ ca najveˇ c 8 pogledov, smo v en pogled zajeli dve ali tri plošˇ cice, kar še vedno pomeni radikalno zmanjšanje potrebne pasovne širine za prenos videa do študentov. primeru ni bilo dogodkov, ki bi povzroˇ cili potrebo po rekonfiguriranju. Drugih nastavitev, kot le ID številke USB naprave za vsak virtualni raˇ cunalnik hipervizor ne rabi. V virtualnem raˇ cunalniku je tako prikljuˇ cena razvojna plošˇ ca razpoznana tako, kot ˇ ce bi jo priklopili v fiziˇ cni raˇ cunalnik brez posredovanja hipervizorja. 3.4 Kamera za vizualno povratno informacijo štu- dentom Bistven del virtualnega laboratorija je možnost, da študenti vidijo, kako se razvojna plošˇ ca odzove na naloženo vezje. Pri vajah v pravi uˇ cilnici smo uporabljali 8 LED diod in matriˇ cni LED prikazovalnik, zato je bilo treba zagotoviti enako funkcionalnost tudi v virtualnem laboratoriju. To smo storili s pomoˇ cjo ene same IP kamere visoke loˇ cljivosti (Axis P1346), ki je delovala v polni loˇ cljivosti 5 megapikslov. Kamera v svoji vgrajeni programski opremi omogoˇ ca doloˇ canje do osmih virtualnih pogledov, s katerimi dosežemo, da ni treba vsakemu od študentov prenašati videa visoke loˇ cljivosti, ampak le manjši del, ki prikazuje tisto razvojno plošˇ co s katero dela – vsak pogled je namreˇ c dostopen preko unikatnega URL naslova video toka. Definicija pogledov za naš primer s 15 razvojnimi plošˇ cami je prikazan na sliki 3. 3.5 Krmiljenje virtualnih vhodnih signalov Pri delu na daljavo so študentom nedostopne tudi tipke na razvojni plošˇ ci, zato je potrebna drugaˇ cna rešitev. Orodje Quartus ponuja ”In system Sources and Probes Editor”, ki ga prikazuje slika 4. S pomoˇ cjo tega vmesnika v orodju Quartus so lahko študenti spreminjali vrednost vhodnih signalov tudi na daljavo ob minimalnih spremembah v shemi vezja. 4 Izvedba laboratorijskih vaj Vaje v virtualnem laboratoriju so potekale tako, da so se študenti zbrali v ”virtualni uˇ cilnici”, ki jo ponuja orodje za uˇ cenje na daljavo e.fe, sicer namenjeni predavanjem, in tam dobili vsa potrebna navodila. Ves ˇ cas vaj sta bila prisotna tako asistent kot laborant. Izkaže 436 Slika 4: Vmesnik v orodju Quartus, ki nadomesti pritiskanje fiziˇ cnih tipk na razvojni plošˇ ci. se namreˇ c, da delo v virtualnem svetu zahteva veˇ c naporov s strani pedagoškega osebja. Poleg pomoˇ ci študentom pri sami izvedbi vaj je laborant skrbel tudi za administrativna opravila, ki smo jih zbrali v spletni tabeli. V njej je laborant beležil prisotnost, dodeljevanje virtualnih raˇ cunalnikov študentom ter evidentiral ocene, ki jih je sporoˇ cal asistent. Asistent se je tako lahko povsem posvetil študentom brez pogostega brskanja po dokumentaciji, kar lahko zaradi pomanjkanja prostora na zaslonu zelo upoˇ casni delovni proces. Pred uporabo virtualne uˇ cilnice smo naredili posku- sno vajo z nekaj študenti - prostovoljci, s katerimi smo preverili delovanje sistema. Prostovoljci so skupaj z do- datnim pedagoškim osebjem pomagali pri prvi vaji v vir- tualnem laboratoriju, kjer smo predvsem reševali težave z nastavitvami programske opreme na njihovih raˇ cunal- nikih. Z uporabo deljenja zaslona na spletni uˇ cilnici smo zaˇ cetne težave uspešno rešili, ob zakljuˇ cku vaje pa so študenti uˇ cilnico uporabili tudi za kratek zagovor vsake opravljene vaje. 5 Zakljuˇ cek Konfiguracija virtualnega laboratorija se je izkazala za primerno, in je omogoˇ cala udobno delo, ˇ ce so študenti prevanjanje vezij izvedli na svojem raˇ cunalniku, in uporabili virtualne raˇ cunalnike le za nalaganje prevedenih datotek na razvojne plošˇ ce. Soˇ casno prevajanje na veˇ c kot 5 delovnih mestih lahko strežnik popolnoma upoˇ casni, po naši analizi pa so ozko grlo vhodno/izhodne operacije orodja Quartus. Takšen laboratorij bi v idealnem primeru deloval na 3-5 SSD diskih, pri ˇ cemer bi na vsakem bili namešˇ ceni virtualni diski 3-5 virtualnih raˇ cunalnikov. Laboratorijske vaje je v zaˇ cetku semestra obiskovalo 45 študentov. Uvodne tri vaje smo izvedli na Fakulteti, sedem pa v virtualnem laboratoriju. Vse vaje je uspešno opravilo 39 študentov (87%), kar je podoben delež kot v letih, ko smo imeli obiˇ cajno izvedbo vaj. Po izvedenih laboratorijskih vajah smo naredili anketo med študenti pri kateri smo prejeli 21 odgovorov. Študenti so zelo dobro ocenili delo v virtualnem laboratoriju (ocena 4.4 od 5), možnost dela doma izven terminov vaj (4.1) in spletno orodje (4.5). Delo s programi virtualnega laboratorija in spletnim orodjem so ocenili kot enostavno, uporabo orodja Quartus pa zahtevnejše. V odzivu so posebej pohvalili možnost dela od doma v naroˇ cenem terminu. Slika 5: Pogled na virtualno uˇ cilnico, kot ga vidi študent. Levo je preko odjemalca (prikazovalnika) SPICE prikazano namizje virtualnega raˇ cunalnika, pod njim pa deljena mapa z virtualnim raˇ cunalnikom.Desno zgoraj je okno, kjer se prikazuje video iz uˇ cilnice v realnem ˇ casu – vidni sta dve razvojni plošˇ ci. Desno spodaj je nabor skriptnih datotek, ki priklopijo študenta na izbrano delovno mesto v uˇ cilnici. 437 Literatura [1] M. M. R. Mano, M. D. Ciletti, “Digital Design, Global Edition”, Pearson Education Limited, Harlow, UK, 2018. [2] D. Zhang, P. Qian, L. Wang, Y . Guo, C. Sun, Experimental Case Design of Digital Logic Based on Through-Type Teaching, 13th International Conference on Computer Science & Education (ICCSE), Colombo, 2018, pp. 552- 555 [3] K. Morris, The FPGA Tool Problem Why Not Open Source?, Electronic Engineering Journal, October 6, 2016 [4] H. A. Ochoa, M. V . Shirvaikar, A Survey of Digital Systems Curriculum and Pedagogy in Electrical and Computer Engineering Programs, ASEE Gulf-Southwest Section Annual Conference, Austin, 2018 [5] A. Trost, A. Žemva, Poenostavljen strojno-opisni jezik, Zbornik osemindvajsete mednarodne Elektrotehniške in raˇ cunalniške konference ERK 2019, 339-342, September 2019, Portorož, Slovenija [6] N. Fujii and N. Koike, "A time-sharing remote laboratory for hardware design and experiment with shared resour- ces and service management,"2005 6th International Con- ference on Information Technology Based Higher Educa- tion and Training, Santo Domingo, 2005, pp. T2B/5-T2B10 [7] Altera Programirljiva vezja in razvojne plošˇ ce, FE, 2020, https://lniv.fe.uni-lj.si/altera/ [8] F. Bellard, QEMU, a Fast and Portable Dynamic Translator, Proceedings of the USENIX Annual Technical Conference 2005, Anaheim, CA, 2005, str. 41. [9] Linux KVM, https://www.linux-kvm.org/ page/Main_Page. Dostopano 25.7.2020. [10] SPICE project,https://www.spice-space.org/ index.html. Dostopano 25.7.2020. [11] Libvirt virtualization API: virtIO, https://wiki. libvirt.org/page/Virtio. Dostopano 25.7.2020.