[ca] En aquest projecte el que es vol assolir com a resultat final és la implementació d'un laboratori remot per la programació de FPGAs. L'accés es du a terme via web, per tant una part molt important en aquest projecte és la del desenvolupament web per tal de crear una interfície d'usuari adequada. L'estructura d'aquesta pàgina web ha estat creada amb "HTML" i "PHP", sent aquest últim el llenguatge que ens proporciona les eines adequades per la comunicació que busquem en el nostre disseny. També veurem que, degut a la gran diversitat de característiques que presenta el "backend", ens hem ajudat d'altres llenguatges com "Python", "Javascript", "Bash" o "SQL". Inicialment es va treballar per a la implementació d'un sol lloc de treball. El sistema estava format per una màquina Linux (on està el "backend") connectat a una Raspberry Pi via Ethernet que és la que tindrà comunicació directa a la FPGA. La comunicació entre Raspberry Pi i FPGA s'ha dut a terme mitjançant els ports GPIO de la Raspberry Pi que connecten aquest dispositiu amb el JTAG de la FPGA i amb els seus diferents botons i interruptors. Les funcionalitats bàsiques que s'han de proporcionar a l'usuari amb la interacció amb la FPGA són les de carregar arxius a la FPGA, modificar els estats dels seus interruptors/botons i la visualització dels canvis que aquests provoquen. Això últim s'ha realitzat amb l'emissió en directe d'una càmera de vídeo que està enfocant contínuament a la FPGA assignada. Un cop es va aconseguir realitzar tota aquesta sèrie de objectius, s'ha implementat aquest mateix sistema però amb la capacitat de treballar sobre diverses FPGAs, és a dir, un laboratori remot amb varis llocs de treball amb les mateixes especificacions explicades anteriorment. Per tal de gestionar-ho tot correctament, s'ha implementat una base de dades que emmagatzema la informació que identifica cada lloc de treball i a més a més s'han creat una sèrie de noms d'usuari i contrasenyes per poder-hi accedir.

[en] In this project, the result that we want to achieve is an implementation of a remote laboratory for programming FPGAs. Its access is done via web, which means that a very important part in this project is the one regarding web development with the creation of a suitable user's interface. The main structure of this web page has been created with "HTML" and "PHP", being this last language the one that will provide us the appropriate tools for the communication we are looking for in our design. Nevertheless, we will also see that, due to the diversity of characteristics found in the backend, we will need help from other languages as "Python", "Javascript", "Bash" or "SQL". Initially we worked for the implementation of a single remote workspace, meaning that only one FPGA was accessible. The system was formed by a Linux computer (backend is hosted) connected to via Ethernet to a Raspberry Pi that has direct communication with the FPGA. This communication between the Raspberry Pi and the FPGA was implemented with the GPIOS from the Raspberry Pi, that connected this device to the FPGA's JTAG ports, and to its different buttons and switches. The basic functionalities that this system should be able to offer to the user regarding the communication with the FPGA are: loading files to the FPGA, modifying the state of the buttons/switches and seeing the changes that these produce. This last thing has been implemented with a video camera, that will always be focused on the FPGA assigned to work. Once all of this was done, we extended the concept to work with multiple FPGAs, that meaning that we transformed our system into a laboratory capable of working with several workspaces at a time, respecting the specifications told above. To manage this system, we created a database that has all the information from the workspaces and also some username-password combinations in order to access the webpage and its services.