Instrukcja zdalnej realizacji laboratoriów FPGA w sali EA308 – zdalna praca z układami FPGA

Po podłączeniu do pulpitu zdalnego praca z Vivado nie różni się od pracy lokalnie. Dodatkowo każdy zdalny zestaw komputerowy został wyposażony w kamerę do monitorowania stanu płytki oraz tzw. „wirtualne przyciski”. Narzędzie fpga_remote_lab emuluje zachowanie przełączników, przycisków oraz klawiatury za pomocą połączenia szeregowego.

  • Uruchomić  Device Manager systemu Windows i wyszukać numer portu szeregowego COM urządzenia o nazwie „Silicon Labs CP210x USB to UART Bridge”. Dla każdego komputera numer portu COM może być inny.
  • Uruchomić emulator przycisków fpga_remote_lab  (ikona na pulpicie) i połączyć się ze znalezionym powyżej portem szeregowym. Po poprawnym połączeniu, powienien pojawić się komunikat "Hardware is connected", jak pokazano poniżej: 

  • Możemy emulować 8 przełączników: SW0-SW7 oraz 4 przyciski BTN0-BTN3 za pomocą naciśnięcia myszki.  Dla przycisków BTN możemy dodatkowo korzystać z klawiatury (klawisze F1-F4).
  • Domyślnie włączona jest emulacja drgań przycisków SW/BTN bouncing, którą można wyłączyć.
  • Urządzenie ma dwa tryby pracy: emulacji przycisków oraz emulacji klawiatury, które przełącza się przez zmianę opcji Keyboard Mode. Klawiatura korzysta z tych samych linii co SW6 i SW7, więc w trybie klawiatury te dwa przełączniki będa niedostępne.
  • Opcja Long key-press emulation powoduje wielokrotne wysyłanie tego samego znaku w losowych odstępach. Stosowane to jest w celu przetestowania poprawnego odbierania sygnału BREAK.
  • Co zrobić, gdy program Virtual Buttons nie znajduje portu COM

Plik constraint dla wirtualnych przycisków

set_property -dict { PACKAGE_PIN H14 IOSTANDARD LVCMOS33 } [get_ports sw_virtual_i[0] ]; #virtual SW0
set_property -dict { PACKAGE_PIN G16 IOSTANDARD LVCMOS33 } [get_ports sw_virtual_i[1] ]; #virtual SW1
set_property -dict { PACKAGE_PIN F16 IOSTANDARD LVCMOS33 } [get_ports sw_virtual_i[2] ]; #virtual SW2
set_property -dict { PACKAGE_PIN D14 IOSTANDARD LVCMOS33 } [get_ports sw_virtual_i[3] ]; #virtual SW3
set_property -dict { PACKAGE_PIN G18 IOSTANDARD LVCMOS33 } [get_ports sw_virtual_i[4] ]; #virtual SW4
set_property -dict { PACKAGE_PIN F18 IOSTANDARD LVCMOS33 } [get_ports sw_virtual_i[5] ]; #virtual SW5
set_property -dict { PACKAGE_PIN E17 IOSTANDARD LVCMOS33 } [get_ports sw_virtual_i[6] ]; #virtual SW6
set_property -dict { PACKAGE_PIN D17 IOSTANDARD LVCMOS33 } [get_ports sw_virtual_i[7] ]; #virtual SW7

set_property -dict { PACKAGE_PIN C17 IOSTANDARD LVCMOS33 } [get_ports btn_virtual_i[0] ]; #virtual BTN0
set_property -dict { PACKAGE_PIN D18 IOSTANDARD LVCMOS33 } [get_ports btn_virtual_i[1] ]; #virtual BTN1
set_property -dict { PACKAGE_PIN E18 IOSTANDARD LVCMOS33 } [get_ports btn_virtual_i[2] ]; #virtual BTN2
set_property -dict { PACKAGE_PIN G17 IOSTANDARD LVCMOS33 } [get_ports btn_virtual_i[3] ]; #virtual BTN3

set_property -dict { PACKAGE_PIN D17   IOSTANDARD LVCMOS33 } [get_ports { ps2_clk_virtual_i }]; 
set_property -dict { PACKAGE_PIN E17   IOSTANDARD LVCMOS33 } [get_ports { ps2_data_virtual_i }];

Realizacja zadań laboratoryjnych

Strona laboratorium zawiera informacje na temat możliwości realizacji poszczególnych zadań laboratoryjnych w formie zdalnej. Treść ćwiczeń nieznacznie się różni od przeznaczonych do realizacji lokalnie. Zmiany dotyczą głównie:

  • Zmian w plikach constraints, niezbędnych do działania wirtualnych przycisków;
  • Drobnych modyfikacji zadań w celu umożliwienia ich zdalnej realizacji;
  • Zmiany oprogramowania projektowego (w przypadku niektórych grup);
  • Zmiany płytek na których realizowane są zadania (w przypadku niektórych grup).